libosip  5.3.0
osip.h
Go to the documentation of this file.
1 /*
2  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)
3  Copyright (C) 2001-2020 Aymeric MOIZARD amoizard@antisip.com
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19 
20 #ifndef _OSIP_H_
21 #define _OSIP_H_
22 
23 #include <osipparser2/osip_const.h>
24 
25 /* Time-related functions and data types */
26 #include <osip2/osip_time.h>
27 
28 #ifdef __sun
29 #include <sys/types.h>
30 #endif
31 
33 #include <osip2/osip_fifo.h>
34 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
56 typedef enum _state_t {
57  /* STATES for invite client transaction */
58  ICT_PRE_CALLING,
59  ICT_CALLING,
60  ICT_PROCEEDING,
61  ICT_COMPLETED,
62  ICT_TERMINATED,
63 
64  /* STATES for invite server transaction */
65  IST_PRE_PROCEEDING,
66  IST_PROCEEDING,
67  IST_COMPLETED,
68  IST_CONFIRMED,
69  IST_TERMINATED,
70 
71  /* STATES for NON-invite client transaction */
72  NICT_PRE_TRYING,
73  NICT_TRYING,
74  NICT_PROCEEDING,
75  NICT_COMPLETED,
76  NICT_TERMINATED,
77 
78  /* STATES for NON-invite server transaction */
79  NIST_PRE_TRYING,
80  NIST_TRYING,
81  NIST_PROCEEDING,
82  NIST_COMPLETED,
83  NIST_TERMINATED,
84 
85 #ifndef DOXYGEN
86  DIALOG_EARLY,
87  DIALOG_CONFIRMED,
88  DIALOG_CLOSE /* ?? */
89 #endif
91 
109 typedef enum type_t {
110  /* TIMEOUT EVENTS for ICT */
115  /* TIMEOUT EVENTS for NICT */
120  /* TIMEOUT EVENTS for IST */
125  /* TIMEOUT EVENTS for NIST */
128  /* FOR INCOMING MESSAGE */
136  /* FOR OUTGOING MESSAGE */
145  UNKNOWN_EVT
147 
156 typedef enum osip_fsm_type_t {
157  ICT,
158  IST,
160  NIST
162 
163 #ifndef DEFAULT_T1
168 #define DEFAULT_T1 500 /* 500 ms */
169 #endif
170 #ifndef DEFAULT_T1_TCP_PROGRESS
180 #define DEFAULT_T1_TCP_PROGRESS 500 /* 500ms */
181 #endif
182 #ifndef DEFAULT_T2
187 #define DEFAULT_T2 4000 /* 4s */
188 #endif
189 #ifndef DEFAULT_T4
194 #define DEFAULT_T4 5000 /* 5s */
195 #endif
196 
201 typedef struct osip_ict osip_ict_t;
202 
207 struct osip_ict {
209  struct timeval timer_a_start;
211  struct timeval timer_b_start;
213  struct timeval timer_d_start;
214  char *destination;
215  int port;
216 };
217 
222 typedef struct osip_nict osip_nict_t;
223 
228 struct osip_nict {
230  struct timeval timer_e_start;
232  struct timeval timer_f_start;
234  struct timeval timer_k_start;
235  char *destination;
236  int port;
237 };
238 
243 typedef struct osip_ist osip_ist_t;
244 
249 struct osip_ist {
251  struct timeval timer_g_start;
253  struct timeval timer_h_start;
255  struct timeval timer_i_start;
256 };
257 
262 typedef struct osip_nist osip_nist_t;
263 
268 struct osip_nist {
270  struct timeval timer_j_start;
271 };
272 
277 typedef struct osip_srv_entry osip_srv_entry_t;
278 
285  char srv[512];
286  int priority;
287  int weight;
288  int rweight;
289  int port;
290  char ipaddress[512];
291  struct timeval srv_is_broken;
292 };
293 
294 #define OSIP_SRV_STATE_UNKNOWN 0
295 #define OSIP_SRV_STATE_RETRYLATER 2
296 #define OSIP_SRV_STATE_COMPLETED 3
297 #define OSIP_SRV_STATE_NOTSUPPORTED 4
303 typedef struct osip_srv_record osip_srv_record_t;
304 
310  char name[1024];
311  int srv_state;
312  char flag[256];
313  char protocol[1024];
314  char regexp[1024];
315  char replacement[1024];
316  int order;
318  int index;
320 };
321 
322 #define OSIP_NAPTR_STATE_UNKNOWN 0
323 #define OSIP_NAPTR_STATE_INPROGRESS 1
324 #define OSIP_NAPTR_STATE_NAPTRDONE 2
325 #define OSIP_NAPTR_STATE_SRVINPROGRESS 3
326 #define OSIP_NAPTR_STATE_SRVDONE 4
327 #define OSIP_NAPTR_STATE_RETRYLATER 5
328 #define OSIP_NAPTR_STATE_NOTSUPPORTED 6
334 typedef struct osip_naptr osip_naptr_t;
335 
340 struct osip_naptr {
341  char domain[512];
342  char AUS[64];
344  void *arg;
352 };
353 
358 typedef struct osip_transaction osip_transaction_t;
359 
381  time_t birth_time;
382  time_t completed_time;
383  struct timeval created_time;
384  struct timeval destroyed_time;
386  int in_socket;
389  void *config;
399  void *reserved1;
400  void *reserved2;
401  void *reserved3;
402  void *reserved4;
403  void *reserved5;
404  void *reserved6;
405 };
406 
479 
491 
503 
508 typedef void (*osip_message_cb_t)(int type, osip_transaction_t *, osip_message_t *);
513 typedef void (*osip_kill_transaction_cb_t)(int type, osip_transaction_t *);
518 typedef void (*osip_transport_error_cb_t)(int type, osip_transaction_t *, int error);
519 
520 struct osip_dialog;
521 
526 typedef struct ixt ixt_t;
527 
532 struct ixt {
533  /* any ACK received that match this context will set counter to -1 */
534  struct osip_dialog *dialog;
537  struct timeval start;
538  int interval;
539  char *dest;
540  int port;
541  int sock;
542  int counter;
543 };
544 
552 typedef struct osip osip_t;
553 
558 struct osip {
566  void *id_mutex;
569  /* list of transactions for ict, ist, nict, nist */
581  int (*cb_send_message)(osip_transaction_t *, osip_message_t *, char *, int, int);
587 };
588 
596 
604 
612 
621 typedef struct osip_event osip_event_t;
622 
627 struct osip_event {
631 };
632 
640 int osip_transaction_init(osip_transaction_t **transaction, osip_fsm_type_t ctx_type, osip_t *osip, osip_message_t *request);
645 int osip_transaction_free(osip_transaction_t *transaction);
654 
662 void osip_response_get_destination(osip_message_t *response, char **address, int *portnum);
672 int osip_ict_set_destination(osip_ict_t *ict, char *destination, int port);
673 
683 int osip_nict_set_destination(osip_nict_t *nict, char *destination, int port);
684 
712 int osip_transaction_set_your_instance(osip_transaction_t *transaction, void *ptr);
713 
725 int osip_transaction_set_reserved1(osip_transaction_t *transaction, void *ptr);
732 int osip_transaction_set_reserved2(osip_transaction_t *transaction, void *ptr);
733 
740 int osip_transaction_set_reserved3(osip_transaction_t *transaction, void *ptr);
741 
748 int osip_transaction_set_reserved4(osip_transaction_t *transaction, void *ptr);
749 
756 int osip_transaction_set_reserved5(osip_transaction_t *transaction, void *ptr);
757 
764 int osip_transaction_set_reserved6(osip_transaction_t *transaction, void *ptr);
765 
772 
778 
784 
790 
796 
802 
808 
816 int osip_transaction_get_destination(osip_transaction_t *transaction, char **ip, int *port);
817 
825 
833 
840 int osip_transaction_set_in_socket(osip_transaction_t *transaction, int sock);
847 int osip_transaction_set_out_socket(osip_transaction_t *transaction, int sock);
848 
853 int osip_init(osip_t **osip);
858 void osip_release(osip_t *osip);
859 
866 void osip_set_application_context(osip_t *osip, void *pointer);
867 
874 
881 
902 
911 void osip_timers_gettimeout(osip_t *osip, struct timeval *lower_tv);
912 
933 
934 /* Take care of mutlithreading issuewhile using this method */
941 
942 #ifndef DOXYGEN
950 #ifdef OSIP_MONOTHREAD
951 osip_transaction_t *osip_find_transaction(osip_t *osip, osip_event_t *evt);
952 #endif
953 
954 osip_transaction_t *__osip_find_transaction(osip_t *osip, osip_event_t *evt, int consume);
955 #endif
956 
964 
971 
977 osip_event_t *osip_parse(const char *buf, size_t length);
978 
984 
992 void osip_start_200ok_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *msg200ok, int sock);
993 
1003 void osip_start_ack_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *ack, char *dest, int port, int sock);
1004 
1011 
1020 
1026 
1031 void osip_event_free(osip_event_t *event);
1032 
1038 void osip_set_cb_send_message(osip_t *cf, int (*cb)(osip_transaction_t *, osip_message_t *, char *, int, int));
1039 
1040 /* FOR INCOMING TRANSACTION */
1045 #define EVT_IS_RCV_INVITE(event) (event->type == RCV_REQINVITE)
1050 #define EVT_IS_RCV_ACK(event) (event->type == RCV_REQACK)
1055 #define EVT_IS_RCV_REQUEST(event) (event->type == RCV_REQUEST)
1060 #define EVT_IS_RCV_STATUS_1XX(event) (event->type == RCV_STATUS_1XX)
1065 #define EVT_IS_RCV_STATUS_2XX(event) (event->type == RCV_STATUS_2XX)
1070 #define EVT_IS_RCV_STATUS_3456XX(event) (event->type == RCV_STATUS_3456XX)
1071 
1072 /* FOR OUTGOING TRANSACTION */
1077 #define EVT_IS_SND_INVITE(event) (event->type == SND_REQINVITE)
1082 #define EVT_IS_SND_ACK(event) (event->type == SND_REQACK)
1087 #define EVT_IS_SND_REQUEST(event) (event->type == SND_REQUEST)
1092 #define EVT_IS_SND_STATUS_1XX(event) (event->type == SND_STATUS_1XX)
1097 #define EVT_IS_SND_STATUS_2XX(event) (event->type == SND_STATUS_2XX)
1102 #define EVT_IS_SND_STATUS_3456XX(event) (event->type == SND_STATUS_3456XX)
1107 #define EVT_IS_INCOMINGMSG(event) (event->type >= RCV_REQINVITE && event->type <= RCV_STATUS_3456XX)
1112 #define EVT_IS_INCOMINGREQ(event) (EVT_IS_RCV_INVITE(event) || EVT_IS_RCV_ACK(event) || EVT_IS_RCV_REQUEST(event))
1117 #define EVT_IS_INCOMINGRESP(event) (EVT_IS_RCV_STATUS_1XX(event) || EVT_IS_RCV_STATUS_2XX(event) || EVT_IS_RCV_STATUS_3456XX(event))
1122 #define EVT_IS_OUTGOINGMSG(event) (event->type >= SND_REQINVITE && event->type <= SND_STATUS_3456XX)
1127 #define EVT_IS_OUTGOINGREQ(event) (EVT_IS_SND_INVITE(event) || EVT_IS_SND_ACK(event) || EVT_IS_SND_REQUEST(event))
1132 #define EVT_IS_OUTGOINGRESP(event) (EVT_IS_SND_STATUS_1XX(event) || EVT_IS_SND_STATUS_2XX(event) || EVT_IS_SND_STATUS_3456XX(event))
1133 
1138 #define EVT_IS_MSG(event) (event->type >= RCV_REQINVITE && event->type <= SND_STATUS_3456XX)
1144 #define EVT_IS_KILL_TRANSACTION(event) (event->type == KILL_TRANSACTION)
1145 
1146 #ifdef __cplusplus
1147 }
1148 #endif
1150 #endif
void * osip_transaction_get_reserved4(osip_transaction_t *transaction)
Definition: osip_transaction.c:533
void osip_event_free(osip_event_t *event)
Definition: osip_event.c:157
int osip_transaction_init(osip_transaction_t **transaction, osip_fsm_type_t ctx_type, osip_t *osip, osip_message_t *request)
Definition: osip_transaction.c:115
int osip_transaction_set_reserved2(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:465
void osip_timers_ist_execute(osip_t *osip)
Definition: osip.c:1533
int osip_transaction_free(osip_transaction_t *transaction)
Definition: osip_transaction.c:284
int osip_ict_set_destination(osip_ict_t *ict, char *destination, int port)
Definition: ict.c:182
osip_message_callback_type
Definition: osip.h:410
osip_event_t * osip_parse(const char *buf, size_t length)
Definition: osip_event.c:28
int osip_transaction_get_destination(osip_transaction_t *transaction, char **ip, int *port)
Definition: osip_transaction.c:412
void(* osip_transport_error_cb_t)(int type, osip_transaction_t *, int error)
Definition: osip.h:518
void osip_response_get_destination(osip_message_t *response, char **address, int *portnum)
Definition: osip.c:32
int osip_transaction_set_in_socket(osip_transaction_t *transaction, int sock)
Definition: osip_transaction.c:562
osip_event_t * osip_new_outgoing_sipmessage(osip_message_t *sip)
Definition: osip_event.c:90
int osip_transaction_execute(osip_transaction_t *transaction, osip_event_t *evt)
Definition: osip_transaction.c:363
void(* osip_message_cb_t)(int type, osip_transaction_t *, osip_message_t *)
Definition: osip.h:508
int osip_set_kill_transaction_callback(osip_t *osip, int type, osip_kill_transaction_cb_t cb)
Definition: osip.c:1699
int osip_nict_execute(osip_t *osip)
Definition: osip.c:1173
void osip_stop_retransmissions_from_dialog(osip_t *osip, struct osip_dialog *dialog)
Definition: osip.c:221
int osip_transaction_set_reserved1(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:457
enum osip_message_callback_type osip_message_callback_type_t
void osip_timers_nist_execute(osip_t *osip)
Definition: osip.c:1613
void osip_start_ack_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *ack, char *dest, int port, int sock)
Definition: osip.c:173
osip_kill_callback_type
Definition: osip.h:483
void osip_retransmissions_execute(osip_t *osip)
Definition: osip.c:259
int osip_remove_transaction(osip_t *osip, osip_transaction_t *ict)
Definition: osip.c:480
void osip_timers_gettimeout(osip_t *osip, struct timeval *lower_tv)
Definition: osip.c:1297
int osip_transaction_set_your_instance(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:449
enum _state_t state_t
void osip_set_cb_send_message(osip_t *cf, int(*cb)(osip_transaction_t *, osip_message_t *, char *, int, int))
Definition: osip.c:1639
int osip_init(osip_t **osip)
Definition: osip.c:980
int osip_transaction_set_reserved4(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:481
int osip_set_message_callback(osip_t *osip, int type, osip_message_cb_t cb)
Definition: osip.c:1688
int osip_transaction_free2(osip_transaction_t *transaction)
Definition: osip_transaction.c:301
osip_transaction_t * osip_transaction_find(osip_list_t *transactions, osip_event_t *evt)
Definition: osip.c:866
osip_transaction_t * osip_create_transaction(osip_t *osip, osip_event_t *evt)
Definition: osip.c:808
int osip_transaction_set_reserved3(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:473
enum osip_transport_error_callback_type osip_transport_error_callback_type_t
void * osip_get_application_context(osip_t *osip)
Definition: osip.c:1042
void osip_timers_ict_execute(osip_t *osip)
Definition: osip.c:1488
int osip_transaction_set_out_socket(osip_transaction_t *transaction, int sock)
Definition: osip_transaction.c:570
void * osip_transaction_get_reserved6(osip_transaction_t *transaction)
Definition: osip_transaction.c:547
void osip_timers_nict_execute(osip_t *osip)
Definition: osip.c:1573
void * osip_transaction_get_reserved2(osip_transaction_t *transaction)
Definition: osip_transaction.c:519
void osip_set_application_context(osip_t *osip, void *pointer)
Definition: osip.c:1038
void * osip_transaction_get_reserved1(osip_transaction_t *transaction)
Definition: osip_transaction.c:512
int osip_ict_execute(osip_t *osip)
Definition: osip.c:1049
int osip_transaction_add_event(osip_transaction_t *transaction, osip_event_t *evt)
Definition: osip_transaction.c:351
int osip_transaction_set_reserved5(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:489
int osip_transaction_set_srv_record(osip_transaction_t *transaction, osip_srv_record_t *record)
Definition: osip_transaction.c:433
void(* osip_kill_transaction_cb_t)(int type, osip_transaction_t *)
Definition: osip.h:513
int osip_transaction_set_reserved6(osip_transaction_t *transaction, void *ptr)
Definition: osip_transaction.c:497
struct osip_dialog * osip_stop_200ok_retransmissions(osip_t *osip, osip_message_t *ack)
Definition: osip.c:191
enum osip_kill_callback_type osip_kill_callback_type_t
void osip_release(osip_t *osip)
Definition: osip.c:1024
int osip_ist_execute(osip_t *osip)
Definition: osip.c:1111
_state_t
Definition: osip.h:56
void osip_start_200ok_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *msg200ok, int sock)
Definition: osip.c:157
int osip_nict_set_destination(osip_nict_t *nict, char *destination, int port)
Definition: nict.c:164
type_t
Definition: osip.h:109
void * osip_transaction_get_your_instance(osip_transaction_t *transaction)
Definition: osip_transaction.c:505
int osip_transaction_set_naptr_record(osip_transaction_t *transaction, osip_naptr_t *record)
Definition: osip_transaction.c:441
int osip_set_transport_error_callback(osip_t *osip, int type, osip_transport_error_cb_t cb)
Definition: osip.c:1709
int osip_find_transaction_and_add_event(osip_t *osip, osip_event_t *evt)
Definition: osip.c:696
int osip_nist_execute(osip_t *osip)
Definition: osip.c:1235
osip_fsm_type_t
Definition: osip.h:156
void * osip_transaction_get_reserved3(osip_transaction_t *transaction)
Definition: osip_transaction.c:526
void * osip_transaction_get_reserved5(osip_transaction_t *transaction)
Definition: osip_transaction.c:540
osip_transport_error_callback_type
Definition: osip.h:495
@ OSIP_NICT_REQUEST_SENT_AGAIN
Definition: osip.h:445
@ OSIP_MESSAGE_CALLBACK_COUNT
Definition: osip.h:477
@ OSIP_NICT_REGISTER_SENT
Definition: osip.h:437
@ OSIP_ICT_STATUS_5XX_RECEIVED
Definition: osip.h:420
@ OSIP_NICT_SUBSCRIBE_SENT
Definition: osip.h:443
@ OSIP_NICT_STATUS_2XX_RECEIVED_AGAIN
Definition: osip.h:448
@ OSIP_NICT_STATUS_2XX_RECEIVED
Definition: osip.h:447
@ OSIP_NIST_REQUEST_RECEIVED_AGAIN
Definition: osip.h:464
@ OSIP_NIST_STATUS_6XX_SENT
Definition: osip.h:471
@ OSIP_NICT_NOTIFY_SENT
Definition: osip.h:442
@ OSIP_ICT_STATUS_6XX_RECEIVED
Definition: osip.h:421
@ OSIP_NIST_INFO_RECEIVED
Definition: osip.h:458
@ OSIP_NICT_STATUS_6XX_RECEIVED
Definition: osip.h:452
@ OSIP_NIST_STATUS_1XX_SENT
Definition: osip.h:465
@ OSIP_NIST_REGISTER_RECEIVED
Definition: osip.h:455
@ OSIP_NIST_STATUS_2XX_SENT
Definition: osip.h:466
@ OSIP_NICT_STATUS_3XX_RECEIVED
Definition: osip.h:449
@ OSIP_NICT_STATUS_3456XX_RECEIVED_AGAIN
Definition: osip.h:453
@ OSIP_NIST_BYE_RECEIVED
Definition: osip.h:456
@ OSIP_NICT_STATUS_5XX_RECEIVED
Definition: osip.h:451
@ OSIP_NICT_BYE_SENT
Definition: osip.h:438
@ OSIP_ICT_STATUS_1XX_RECEIVED
Definition: osip.h:415
@ OSIP_NIST_SUBSCRIBE_RECEIVED
Definition: osip.h:461
@ OSIP_NIST_STATUS_2XX_SENT_AGAIN
Definition: osip.h:467
@ OSIP_NICT_STATUS_1XX_RECEIVED
Definition: osip.h:446
@ OSIP_ICT_INVITE_SENT_AGAIN
Definition: osip.h:412
@ OSIP_NICT_OPTIONS_SENT
Definition: osip.h:439
@ OSIP_IST_STATUS_6XX_SENT
Definition: osip.h:434
@ OSIP_NIST_STATUS_5XX_SENT
Definition: osip.h:470
@ OSIP_ICT_STATUS_TIMEOUT
Definition: osip.h:474
@ OSIP_ICT_ACK_SENT
Definition: osip.h:413
@ OSIP_ICT_STATUS_4XX_RECEIVED
Definition: osip.h:419
@ OSIP_IST_ACK_RECEIVED
Definition: osip.h:426
@ OSIP_ICT_STATUS_2XX_RECEIVED
Definition: osip.h:416
@ OSIP_ICT_STATUS_3456XX_RECEIVED_AGAIN
Definition: osip.h:422
@ OSIP_NIST_UNKNOWN_REQUEST_RECEIVED
Definition: osip.h:463
@ OSIP_ICT_INVITE_SENT
Definition: osip.h:411
@ OSIP_IST_ACK_RECEIVED_AGAIN
Definition: osip.h:427
@ OSIP_NICT_STATUS_4XX_RECEIVED
Definition: osip.h:450
@ OSIP_ICT_STATUS_2XX_RECEIVED_AGAIN
Definition: osip.h:417
@ OSIP_IST_STATUS_3XX_SENT
Definition: osip.h:431
@ OSIP_NICT_UNKNOWN_REQUEST_SENT
Definition: osip.h:444
@ OSIP_NIST_NOTIFY_RECEIVED
Definition: osip.h:460
@ OSIP_NICT_CANCEL_SENT
Definition: osip.h:441
@ OSIP_ICT_ACK_SENT_AGAIN
Definition: osip.h:414
@ OSIP_NIST_STATUS_4XX_SENT
Definition: osip.h:469
@ OSIP_IST_INVITE_RECEIVED
Definition: osip.h:424
@ OSIP_NICT_INFO_SENT
Definition: osip.h:440
@ OSIP_NIST_STATUS_3456XX_SENT_AGAIN
Definition: osip.h:472
@ OSIP_NIST_OPTIONS_RECEIVED
Definition: osip.h:457
@ OSIP_IST_STATUS_4XX_SENT
Definition: osip.h:432
@ OSIP_NIST_STATUS_3XX_SENT
Definition: osip.h:468
@ OSIP_IST_INVITE_RECEIVED_AGAIN
Definition: osip.h:425
@ OSIP_IST_STATUS_2XX_SENT
Definition: osip.h:429
@ OSIP_NICT_STATUS_TIMEOUT
Definition: osip.h:475
@ OSIP_ICT_STATUS_3XX_RECEIVED
Definition: osip.h:418
@ OSIP_NIST_CANCEL_RECEIVED
Definition: osip.h:459
@ OSIP_IST_STATUS_1XX_SENT
Definition: osip.h:428
@ OSIP_IST_STATUS_3456XX_SENT_AGAIN
Definition: osip.h:435
@ OSIP_IST_STATUS_5XX_SENT
Definition: osip.h:433
@ OSIP_IST_STATUS_2XX_SENT_AGAIN
Definition: osip.h:430
@ OSIP_ICT_KILL_TRANSACTION
Definition: osip.h:484
@ OSIP_NIST_KILL_TRANSACTION
Definition: osip.h:487
@ OSIP_IST_KILL_TRANSACTION
Definition: osip.h:485
@ OSIP_NICT_KILL_TRANSACTION
Definition: osip.h:486
@ OSIP_KILL_CALLBACK_COUNT
Definition: osip.h:489
@ SND_REQACK
Definition: osip.h:138
@ TIMEOUT_E
Definition: osip.h:116
@ RCV_STATUS_2XX
Definition: osip.h:133
@ RCV_STATUS_1XX
Definition: osip.h:132
@ TIMEOUT_J
Definition: osip.h:126
@ RCV_STATUS_3456XX
Definition: osip.h:134
@ TIMEOUT_B
Definition: osip.h:112
@ RCV_REQUEST
Definition: osip.h:131
@ TIMEOUT_H
Definition: osip.h:122
@ SND_STATUS_3456XX
Definition: osip.h:142
@ TIMEOUT_G
Definition: osip.h:121
@ SND_REQUEST
Definition: osip.h:139
@ SND_REQINVITE
Definition: osip.h:137
@ TIMEOUT_D
Definition: osip.h:113
@ TIMEOUT_I
Definition: osip.h:123
@ UNKNOWN_EVT
Definition: osip.h:145
@ RCV_REQACK
Definition: osip.h:130
@ TIMEOUT_A
Definition: osip.h:111
@ SND_STATUS_2XX
Definition: osip.h:141
@ SND_STATUS_1XX
Definition: osip.h:140
@ KILL_TRANSACTION
Definition: osip.h:144
@ RCV_REQINVITE
Definition: osip.h:129
@ TIMEOUT_K
Definition: osip.h:118
@ TIMEOUT_F
Definition: osip.h:117
@ NICT
Definition: osip.h:159
@ IST
Definition: osip.h:158
@ ICT
Definition: osip.h:157
@ NIST
Definition: osip.h:160
@ OSIP_IST_TRANSPORT_ERROR
Definition: osip.h:497
@ OSIP_TRANSPORT_ERROR_CALLBACK_COUNT
Definition: osip.h:501
@ OSIP_ICT_TRANSPORT_ERROR
Definition: osip.h:496
@ OSIP_NIST_TRANSPORT_ERROR
Definition: osip.h:499
@ OSIP_NICT_TRANSPORT_ERROR
Definition: osip.h:498
oSIP fifo Routines
oSIP SIP Parser additionnal Routines
Definition: osip.h:532
int interval
Definition: osip.h:538
int counter
Definition: osip.h:542
struct timeval start
Definition: osip.h:537
osip_message_t * msg2xx
Definition: osip.h:535
int port
Definition: osip.h:540
osip_message_t * ack
Definition: osip.h:536
int sock
Definition: osip.h:541
struct osip_dialog * dialog
Definition: osip.h:534
char * dest
Definition: osip.h:539
Definition: osip_call_id.h:44
Definition: osip_cseq.h:44
Definition: osip_dialog.h:54
Definition: osip.h:627
type_t type
Definition: osip.h:628
int transactionid
Definition: osip.h:629
osip_message_t * sip
Definition: osip.h:630
Definition: osip_fifo.h:62
Definition: osip_from.h:47
Definition: osip.h:207
struct timeval timer_a_start
Definition: osip.h:209
char * destination
Definition: osip.h:214
struct timeval timer_d_start
Definition: osip.h:213
struct timeval timer_b_start
Definition: osip.h:211
int timer_a_length
Definition: osip.h:208
int port
Definition: osip.h:215
int timer_d_length
Definition: osip.h:212
int timer_b_length
Definition: osip.h:210
Definition: osip.h:249
struct timeval timer_h_start
Definition: osip.h:253
int timer_g_length
Definition: osip.h:250
int timer_h_length
Definition: osip.h:252
struct timeval timer_i_start
Definition: osip.h:255
int timer_i_length
Definition: osip.h:254
struct timeval timer_g_start
Definition: osip.h:251
Definition: osip_list.h:87
Definition: osip_message.h:54
Definition: osip.h:340
struct osip_srv_record sipsctp_record
Definition: osip.h:350
struct osip_srv_record siptcp_record
Definition: osip.h:347
struct osip_srv_record siptls_record
Definition: osip.h:348
struct osip_srv_record sipdtls_record
Definition: osip.h:349
struct osip_srv_record sipudp_record
Definition: osip.h:346
char domain[512]
Definition: osip.h:341
char AUS[64]
Definition: osip.h:342
int naptr_state
Definition: osip.h:343
struct osip_srv_record sipenum_record
Definition: osip.h:351
void * arg
Definition: osip.h:344
int keep_in_cache
Definition: osip.h:345
Definition: osip.h:228
int timer_e_length
Definition: osip.h:229
char * destination
Definition: osip.h:235
int timer_f_length
Definition: osip.h:231
struct timeval timer_e_start
Definition: osip.h:230
struct timeval timer_k_start
Definition: osip.h:234
int port
Definition: osip.h:236
int timer_k_length
Definition: osip.h:233
struct timeval timer_f_start
Definition: osip.h:232
Definition: osip.h:268
struct timeval timer_j_start
Definition: osip.h:270
int timer_j_length
Definition: osip.h:269
Definition: osip.h:284
char srv[512]
Definition: osip.h:285
struct timeval srv_is_broken
Definition: osip.h:291
int rweight
Definition: osip.h:288
char ipaddress[512]
Definition: osip.h:290
int priority
Definition: osip.h:286
int port
Definition: osip.h:289
int weight
Definition: osip.h:287
Definition: osip.h:309
int index
Definition: osip.h:318
char replacement[1024]
Definition: osip.h:315
osip_srv_entry_t srventry[10]
Definition: osip.h:319
char flag[256]
Definition: osip.h:312
char name[1024]
Definition: osip.h:310
int srv_state
Definition: osip.h:311
char protocol[1024]
Definition: osip.h:313
int order
Definition: osip.h:316
int preference
Definition: osip.h:317
char regexp[1024]
Definition: osip.h:314
Definition: osip.h:364
osip_fifo_t * transactionff
Definition: osip.h:367
osip_message_t * last_response
Definition: osip.h:376
osip_nist_t * nist_context
Definition: osip.h:395
void * reserved1
Definition: osip.h:399
osip_naptr_t * naptr_record
Definition: osip.h:398
void * config
Definition: osip.h:389
void * reserved5
Definition: osip.h:403
void * reserved4
Definition: osip.h:402
osip_srv_record_t record
Definition: osip.h:397
int in_socket
Definition: osip.h:386
void * reserved3
Definition: osip.h:401
osip_via_t * topvia
Definition: osip.h:369
void * reserved2
Definition: osip.h:400
osip_message_t * orig_request
Definition: osip.h:375
osip_call_id_t * callid
Definition: osip.h:372
state_t state
Definition: osip.h:379
int transactionid
Definition: osip.h:366
osip_ist_t * ist_context
Definition: osip.h:393
void * your_instance
Definition: osip.h:365
int out_socket
Definition: osip.h:387
osip_message_t * ack
Definition: osip.h:377
time_t completed_time
Definition: osip.h:382
struct timeval created_time
Definition: osip.h:383
struct timeval destroyed_time
Definition: osip.h:384
osip_fsm_type_t ctx_type
Definition: osip.h:391
osip_to_t * to
Definition: osip.h:371
void * reserved6
Definition: osip.h:404
time_t birth_time
Definition: osip.h:381
osip_nict_t * nict_context
Definition: osip.h:394
osip_from_t * from
Definition: osip.h:370
osip_ict_t * ict_context
Definition: osip.h:392
osip_cseq_t * cseq
Definition: osip.h:373
Definition: osip_via.h:46
Definition: osip.h:558
void * ist_fastmutex
Definition: osip.h:562
osip_transport_error_cb_t tp_error_callbacks[OSIP_TRANSPORT_ERROR_CALLBACK_COUNT]
Definition: osip.h:579
void * nict_fastmutex
Definition: osip.h:563
osip_list_t osip_ict_transactions
Definition: osip.h:570
void * application_context
Definition: osip.h:559
osip_list_t osip_nist_transactions
Definition: osip.h:573
void * osip_ict_hastable
Definition: osip.h:583
void * ict_fastmutex
Definition: osip.h:561
void * osip_nist_hastable
Definition: osip.h:586
osip_message_cb_t msg_callbacks[OSIP_MESSAGE_CALLBACK_COUNT]
Definition: osip.h:577
int transactionid
Definition: osip.h:567
void * osip_ist_hastable
Definition: osip.h:584
int(* cb_send_message)(osip_transaction_t *, osip_message_t *, char *, int, int)
Definition: osip.h:581
osip_list_t osip_nict_transactions
Definition: osip.h:572
osip_list_t ixt_retransmissions
Definition: osip.h:575
osip_kill_transaction_cb_t kill_callbacks[OSIP_KILL_CALLBACK_COUNT]
Definition: osip.h:578
void * id_mutex
Definition: osip.h:566
void * nist_fastmutex
Definition: osip.h:564
void * osip_nict_hastable
Definition: osip.h:585
osip_list_t osip_ist_transactions
Definition: osip.h:571
void * ixt_fastmutex
Definition: osip.h:565