SIP Witch 1.9.15
|
Data Structures | |
struct | osip_dialog |
Structure for referencing a dialog. More... | |
Macros | |
#define | osip_dialog_set_instance(dialog, instance) (dialog)->your_instance = (void*)(instance) |
Link osip dialog to application. More... | |
#define | osip_dialog_get_instance(dialog) (dialog)->your_instance |
Retrieve application instance from dialog. More... | |
Typedefs | |
typedef enum _osip_dialog_type_t | osip_dialog_type_t |
typedef struct osip_dialog | osip_dialog_t |
Structure for referencing a dialog. More... | |
Enumerations | |
enum | _osip_dialog_type_t { CALLER, CALLEE } |
Functions | |
int | osip_dialog_init_as_uac (osip_dialog_t **dialog, osip_message_t *response) |
Allocate a osip_dialog_t element as a UAC. More... | |
int | osip_dialog_init_as_uac_with_remote_request (osip_dialog_t **dialog, osip_message_t *next_request, int local_cseq) |
Allocate a osip_dialog_t element as a UAC. More... | |
int | osip_dialog_init_as_uas (osip_dialog_t **dialog, osip_message_t *invite, osip_message_t *response) |
Allocate a osip_dialog_t element as a UAS. More... | |
void | osip_dialog_free (osip_dialog_t *dialog) |
Free all resource in a osip_dialog_t element. More... | |
void | osip_dialog_set_state (osip_dialog_t *dialog, state_t type) |
Set the state of the dialog. More... | |
int | osip_dialog_update_route_set_as_uas (osip_dialog_t *dialog, osip_message_t *invite) |
Update the Route-Set as UAS of a dialog. More... | |
int | osip_dialog_update_osip_cseq_as_uas (osip_dialog_t *dialog, osip_message_t *request) |
Update the CSeq (remote cseq) during a UAS transaction of a dialog. More... | |
int | osip_dialog_match_as_uac (osip_dialog_t *dialog, osip_message_t *response) |
Match a response received with a dialog. More... | |
int | osip_dialog_update_tag_as_uac (osip_dialog_t *dialog, osip_message_t *response) |
Update the tag as UAC of a dialog?. More... | |
int | osip_dialog_update_route_set_as_uac (osip_dialog_t *dialog, osip_message_t *response) |
Update the Route-Set as UAC of a dialog. More... | |
int | osip_dialog_match_as_uas (osip_dialog_t *dialog, osip_message_t *request) |
Match a request (response sent?) received with a dialog. More... | |
int | osip_dialog_is_originator (osip_dialog_t *dialog) |
Is dialog initiated by as CALLER. More... | |
int | osip_dialog_is_callee (osip_dialog_t *dialog) |
Is dialog initiated by as CALLEE. More... | |
#define osip_dialog_get_instance | ( | dialog | ) | (dialog)->your_instance |
#include <osip_dialog.h>
Retrieve application instance from dialog.
dialog | The osip dialog |
Definition at line 91 of file osip_dialog.h.
#define osip_dialog_set_instance | ( | dialog, | |
instance | |||
) | (dialog)->your_instance = (void*)(instance) |
#include <osip_dialog.h>
Link osip dialog to application.
dialog | The osip dialog |
instance | The application instance |
Definition at line 84 of file osip_dialog.h.
#include <osip_dialog.h>
Structure for referencing a dialog.
Definition at line 53 of file osip_dialog.h.
typedef enum _osip_dialog_type_t osip_dialog_type_t |
#include <osip_dialog.h>
enum _osip_dialog_type_t |
void osip_dialog_free | ( | osip_dialog_t * | dialog | ) |
#include <osip_dialog.h>
Free all resource in a osip_dialog_t element.
dialog | The element to free. |
int osip_dialog_init_as_uac | ( | osip_dialog_t ** | dialog, |
osip_message_t * | response | ||
) |
#include <osip_dialog.h>
Allocate a osip_dialog_t element as a UAC.
NOTE1: The dialog should be created when the first response is received. (except for a 100 Trying) NOTE2: Remote UA should be compliant! If not (not tag in the to header?) the old mechanism is used to match the request but if 2 uncompliant UA both answer 200 OK for the same transaction, they won't be detected. This is a major BUG in the old rfc.
dialog | The element to allocate. |
response | The response containing the informations. |
int osip_dialog_init_as_uac_with_remote_request | ( | osip_dialog_t ** | dialog, |
osip_message_t * | next_request, | ||
int | local_cseq | ||
) |
#include <osip_dialog.h>
Allocate a osip_dialog_t element as a UAC.
dialog | The element to allocate. |
next_request | The response containing the informations. |
local_cseq | The local cseq |
int osip_dialog_init_as_uas | ( | osip_dialog_t ** | dialog, |
osip_message_t * | invite, | ||
osip_message_t * | response | ||
) |
#include <osip_dialog.h>
Allocate a osip_dialog_t element as a UAS.
NOTE1: The dialog should be created when the first response is sent. (except for a 100 Trying)
dialog | The element to allocate. |
invite | The INVITE request containing some informations. |
response | The response containing other informations. |
int osip_dialog_is_callee | ( | osip_dialog_t * | dialog | ) |
int osip_dialog_is_originator | ( | osip_dialog_t * | dialog | ) |
int osip_dialog_match_as_uac | ( | osip_dialog_t * | dialog, |
osip_message_t * | response | ||
) |
#include <osip_dialog.h>
Match a response received with a dialog.
dialog | The element to work on. |
response | The response received. |
int osip_dialog_match_as_uas | ( | osip_dialog_t * | dialog, |
osip_message_t * | request | ||
) |
#include <osip_dialog.h>
Match a request (response sent?) received with a dialog.
dialog | The element to work on. |
request | The request received. |
void osip_dialog_set_state | ( | osip_dialog_t * | dialog, |
state_t | type | ||
) |
#include <osip_dialog.h>
Set the state of the dialog.
This is useful to keep information on who is the initiator of the call.
dialog | The element to work on. |
type | The type of dialog (CALLEE or CALLER). |
int osip_dialog_update_osip_cseq_as_uas | ( | osip_dialog_t * | dialog, |
osip_message_t * | request | ||
) |
#include <osip_dialog.h>
Update the CSeq (remote cseq) during a UAS transaction of a dialog.
NOTE: All INCOMING transactions MUST update the remote CSeq.
dialog | The element to work on. |
request | The request received. |
int osip_dialog_update_route_set_as_uac | ( | osip_dialog_t * | dialog, |
osip_message_t * | response | ||
) |
#include <osip_dialog.h>
Update the Route-Set as UAC of a dialog.
NOTE: bis-09 says that only INVITE transactions can update the route-set. NOTE: bis-09 says that updating the route-set means: update the contact field only (AND NOT THE ROUTE-SET). This method follow this behaviour. NOTE: This method should be called for each request (except 100 Trying) received for a dialog.
dialog | The element to work on. |
response | The response received. |
int osip_dialog_update_route_set_as_uas | ( | osip_dialog_t * | dialog, |
osip_message_t * | invite | ||
) |
#include <osip_dialog.h>
Update the Route-Set as UAS of a dialog.
NOTE: bis-09 says that only INVITE transactions can update the route-set. NOTE: bis-09 says that updating the route-set means: update the contact field only (AND NOT THE ROUTE-SET). This method follow this behaviour. NOTE: This method should be called for each request received for a dialog.
dialog | The element to work on. |
invite | The invite received. |
int osip_dialog_update_tag_as_uac | ( | osip_dialog_t * | dialog, |
osip_message_t * | response | ||
) |
#include <osip_dialog.h>
Update the tag as UAC of a dialog?.
(this could be needed if the 180 does not contains any tag, but the 200 contains one.
dialog | The element to work on. |
response | The response received. |