osip.h File Reference

oSIP fsm Routines More...

#include <osipparser2/osip_const.h>
#include <osip2/osip_time.h>
#include <osipparser2/osip_parser.h>
#include <osip2/osip_fifo.h>

Go to the source code of this file.

Classes

struct  osip_ict
struct  osip_nict
struct  osip_ist
struct  osip_nist
struct  osip_srv_entry
struct  osip_srv_record
struct  osip_transaction
struct  ixt_t
struct  osip
struct  osip_event

Defines

#define DEFAULT_T1   500
#define DEFAULT_T2   4000
#define DEFAULT_T4   5000
#define EVT_IS_RCV_INVITE(event)   (event->type==RCV_REQINVITE)
#define EVT_IS_RCV_ACK(event)   (event->type==RCV_REQACK)
#define EVT_IS_RCV_REQUEST(event)   (event->type==RCV_REQUEST)
#define EVT_IS_RCV_STATUS_1XX(event)   (event->type==RCV_STATUS_1XX)
#define EVT_IS_RCV_STATUS_2XX(event)   (event->type==RCV_STATUS_2XX)
#define EVT_IS_RCV_STATUS_3456XX(event)   (event->type==RCV_STATUS_3456XX)
#define EVT_IS_SND_INVITE(event)   (event->type==SND_REQINVITE)
#define EVT_IS_SND_ACK(event)   (event->type==SND_REQACK)
#define EVT_IS_SND_REQUEST(event)   (event->type==SND_REQUEST)
#define EVT_IS_SND_STATUS_1XX(event)   (event->type==SND_STATUS_1XX)
#define EVT_IS_SND_STATUS_2XX(event)   (event->type==SND_STATUS_2XX)
#define EVT_IS_SND_STATUS_3456XX(event)   (event->type==SND_STATUS_3456XX)
#define EVT_IS_INCOMINGMSG(event)
#define EVT_IS_INCOMINGREQ(event)
#define EVT_IS_INCOMINGRESP(event)
#define EVT_IS_OUTGOINGMSG(event)
#define EVT_IS_OUTGOINGREQ(event)
#define EVT_IS_OUTGOINGRESP(event)
#define EVT_IS_MSG(event)
#define EVT_IS_KILL_TRANSACTION(event)   (event->type==KILL_TRANSACTION)

Typedefs

typedef enum _state_t state_t
typedef struct osip_ict osip_ict_t
typedef struct osip_nict osip_nict_t
typedef struct osip_ist osip_ist_t
typedef struct osip_nist osip_nist_t
typedef struct osip_srv_entry osip_srv_entry_t
typedef struct osip_srv_record osip_srv_record_t
typedef struct osip_transaction osip_transaction_t
typedef enum
osip_message_callback_type 
osip_message_callback_type_t
typedef enum
osip_kill_callback_type 
osip_kill_callback_type_t
typedef enum
osip_transport_error_callback_type 
osip_transport_error_callback_type_t
typedef void(* osip_message_cb_t )(int type, osip_transaction_t *, osip_message_t *)
typedef void(* osip_kill_transaction_cb_t )(int type, osip_transaction_t *)
typedef void(* osip_transport_error_cb_t )(int type, osip_transaction_t *, int error)
typedef struct ixt_t ixt_t
typedef struct osip osip_t
typedef struct osip_event osip_event_t

Enumerations

enum  _state_t {
  ICT_PRE_CALLING, ICT_CALLING, ICT_PROCEEDING, ICT_COMPLETED,
  ICT_TERMINATED, IST_PRE_PROCEEDING, IST_PROCEEDING, IST_COMPLETED,
  IST_CONFIRMED, IST_TERMINATED, NICT_PRE_TRYING, NICT_TRYING,
  NICT_PROCEEDING, NICT_COMPLETED, NICT_TERMINATED, NIST_PRE_TRYING,
  NIST_TRYING, NIST_PROCEEDING, NIST_COMPLETED, NIST_TERMINATED
}
enum  type_t {
  TIMEOUT_A, TIMEOUT_B, TIMEOUT_D, TIMEOUT_E,
  TIMEOUT_F, TIMEOUT_K, TIMEOUT_G, TIMEOUT_H,
  TIMEOUT_I, TIMEOUT_J, RCV_REQINVITE, RCV_REQACK,
  RCV_REQUEST, RCV_STATUS_1XX, RCV_STATUS_2XX, RCV_STATUS_3456XX,
  SND_REQINVITE, SND_REQACK, SND_REQUEST, SND_STATUS_1XX,
  SND_STATUS_2XX, SND_STATUS_3456XX, KILL_TRANSACTION, UNKNOWN_EVT
}
enum  osip_fsm_type_t { ICT, IST, NICT, NIST }
enum  osip_message_callback_type {
  OSIP_ICT_INVITE_SENT = 0, OSIP_ICT_INVITE_SENT_AGAIN, OSIP_ICT_ACK_SENT, OSIP_ICT_ACK_SENT_AGAIN,
  OSIP_ICT_STATUS_1XX_RECEIVED, OSIP_ICT_STATUS_2XX_RECEIVED, OSIP_ICT_STATUS_2XX_RECEIVED_AGAIN, OSIP_ICT_STATUS_3XX_RECEIVED,
  OSIP_ICT_STATUS_4XX_RECEIVED, OSIP_ICT_STATUS_5XX_RECEIVED, OSIP_ICT_STATUS_6XX_RECEIVED, OSIP_ICT_STATUS_3456XX_RECEIVED_AGAIN,
  OSIP_IST_INVITE_RECEIVED, OSIP_IST_INVITE_RECEIVED_AGAIN, OSIP_IST_ACK_RECEIVED, OSIP_IST_ACK_RECEIVED_AGAIN,
  OSIP_IST_STATUS_1XX_SENT, OSIP_IST_STATUS_2XX_SENT, OSIP_IST_STATUS_2XX_SENT_AGAIN, OSIP_IST_STATUS_3XX_SENT,
  OSIP_IST_STATUS_4XX_SENT, OSIP_IST_STATUS_5XX_SENT, OSIP_IST_STATUS_6XX_SENT, OSIP_IST_STATUS_3456XX_SENT_AGAIN,
  OSIP_NICT_REGISTER_SENT, OSIP_NICT_BYE_SENT, OSIP_NICT_OPTIONS_SENT, OSIP_NICT_INFO_SENT,
  OSIP_NICT_CANCEL_SENT, OSIP_NICT_NOTIFY_SENT, OSIP_NICT_SUBSCRIBE_SENT, OSIP_NICT_UNKNOWN_REQUEST_SENT,
  OSIP_NICT_REQUEST_SENT_AGAIN, OSIP_NICT_STATUS_1XX_RECEIVED, OSIP_NICT_STATUS_2XX_RECEIVED, OSIP_NICT_STATUS_2XX_RECEIVED_AGAIN,
  OSIP_NICT_STATUS_3XX_RECEIVED, OSIP_NICT_STATUS_4XX_RECEIVED, OSIP_NICT_STATUS_5XX_RECEIVED, OSIP_NICT_STATUS_6XX_RECEIVED,
  OSIP_NICT_STATUS_3456XX_RECEIVED_AGAIN, OSIP_NIST_REGISTER_RECEIVED, OSIP_NIST_BYE_RECEIVED, OSIP_NIST_OPTIONS_RECEIVED,
  OSIP_NIST_INFO_RECEIVED, OSIP_NIST_CANCEL_RECEIVED, OSIP_NIST_NOTIFY_RECEIVED, OSIP_NIST_SUBSCRIBE_RECEIVED,
  OSIP_NIST_UNKNOWN_REQUEST_RECEIVED, OSIP_NIST_REQUEST_RECEIVED_AGAIN, OSIP_NIST_STATUS_1XX_SENT, OSIP_NIST_STATUS_2XX_SENT,
  OSIP_NIST_STATUS_2XX_SENT_AGAIN, OSIP_NIST_STATUS_3XX_SENT, OSIP_NIST_STATUS_4XX_SENT, OSIP_NIST_STATUS_5XX_SENT,
  OSIP_NIST_STATUS_6XX_SENT, OSIP_NIST_STATUS_3456XX_SENT_AGAIN, OSIP_ICT_STATUS_TIMEOUT, OSIP_NICT_STATUS_TIMEOUT,
  OSIP_MESSAGE_CALLBACK_COUNT
}
enum  osip_kill_callback_type {
  OSIP_ICT_KILL_TRANSACTION, OSIP_IST_KILL_TRANSACTION, OSIP_NICT_KILL_TRANSACTION, OSIP_NIST_KILL_TRANSACTION,
  OSIP_KILL_CALLBACK_COUNT
}
enum  osip_transport_error_callback_type {
  OSIP_ICT_TRANSPORT_ERROR, OSIP_IST_TRANSPORT_ERROR, OSIP_NICT_TRANSPORT_ERROR, OSIP_NIST_TRANSPORT_ERROR,
  OSIP_TRANSPORT_ERROR_CALLBACK_COUNT
}

Functions

int osip_set_message_callback (osip_t *osip, int type, osip_message_cb_t cb)
int osip_set_kill_transaction_callback (osip_t *osip, int type, osip_kill_transaction_cb_t cb)
int osip_set_transport_error_callback (osip_t *osip, int type, osip_transport_error_cb_t cb)
int osip_transaction_init (osip_transaction_t **transaction, osip_fsm_type_t ctx_type, osip_t *osip, osip_message_t *request)
int osip_transaction_free (osip_transaction_t *transaction)
int osip_transaction_free2 (osip_transaction_t *transaction)
void osip_response_get_destination (osip_message_t *response, char **address, int *portnum)
int osip_ict_set_destination (osip_ict_t *ict, char *destination, int port)
int osip_nict_set_destination (osip_nict_t *nict, char *destination, int port)
int osip_transaction_add_event (osip_transaction_t *transaction, osip_event_t *evt)
int osip_transaction_execute (osip_transaction_t *transaction, osip_event_t *evt)
int osip_transaction_set_your_instance (osip_transaction_t *transaction, void *instance)
void * osip_transaction_get_your_instance (osip_transaction_t *transaction)
int osip_transaction_get_destination (osip_transaction_t *transaction, char **ip, int *port)
int osip_transaction_set_srv_record (osip_transaction_t *transaction, osip_srv_record_t *record)
int osip_transaction_set_in_socket (osip_transaction_t *transaction, int sock)
int osip_transaction_set_out_socket (osip_transaction_t *transaction, int sock)
int osip_init (osip_t **osip)
void osip_release (osip_t *osip)
void osip_set_application_context (osip_t *osip, void *pointer)
void * osip_get_application_context (osip_t *osip)
int osip_remove_transaction (osip_t *osip, osip_transaction_t *ict)
int osip_ict_execute (osip_t *osip)
int osip_ist_execute (osip_t *osip)
int osip_nict_execute (osip_t *osip)
int osip_nist_execute (osip_t *osip)
void osip_timers_gettimeout (osip_t *osip, struct timeval *lower_tv)
void osip_timers_ict_execute (osip_t *osip)
void osip_timers_ist_execute (osip_t *osip)
void osip_timers_nict_execute (osip_t *osip)
void osip_timers_nist_execute (osip_t *osip)
osip_transaction_tosip_transaction_find (osip_list_t *transactions, osip_event_t *evt)
int osip_find_transaction_and_add_event (osip_t *osip, osip_event_t *evt)
osip_transaction_tosip_create_transaction (osip_t *osip, osip_event_t *evt)
osip_event_tosip_parse (const char *buf, size_t length)
void osip_retransmissions_execute (osip_t *osip)
void osip_start_200ok_retransmissions (osip_t *osip, struct osip_dialog *dialog, osip_message_t *msg200ok, int sock)
void osip_start_ack_retransmissions (osip_t *osip, struct osip_dialog *dialog, osip_message_t *ack, char *dest, int port, int sock)
struct osip_dialogosip_stop_200ok_retransmissions (osip_t *osip, osip_message_t *ack)
void osip_stop_retransmissions_from_dialog (osip_t *osip, struct osip_dialog *dialog)
osip_event_tosip_new_outgoing_sipmessage (osip_message_t *sip)
void osip_event_free (osip_event_t *event)
void osip_set_cb_send_message (osip_t *cf, int(*cb)(osip_transaction_t *, osip_message_t *, char *, int, int))


Detailed Description

oSIP fsm Routines


Generated on Wed Feb 13 01:03:29 2008 for libosip by  doxygen 1.5.4