| osip.h | | osip.h | |
| | | | |
| skipping to change at line 446 | | skipping to change at line 446 | |
| | | | |
| /** | | /** | |
| * Structure for INVITE CLIENT TRANSACTION (outgoing INVITE transaction). | | * Structure for INVITE CLIENT TRANSACTION (outgoing INVITE transaction). | |
| * @defvar osip_ict_t | | * @defvar osip_ict_t | |
| */ | | */ | |
| typedef struct osip_ict osip_ict_t; | | typedef struct osip_ict osip_ict_t; | |
| | | | |
| struct osip_ict | | struct osip_ict | |
| { | | { | |
| /* state machine is implied... */ | | /* state machine is implied... */ | |
|
| | | #ifdef NEW_TIMER | |
| | | int timer_a_length; /* A=T1, A=2xT1... (unreliable tr only) | |
| | | */ | |
| | | struct timeval timer_a_start; | |
| | | int timer_b_length; /* B = 64* T1 | |
| | | */ | |
| | | struct timeval timer_b_start; /* fire when transaction timeouts | |
| | | */ | |
| | | int timer_d_length; /* D >= 32s for unreliable tr (or 0) | |
| | | */ | |
| | | struct timeval timer_d_start; /* should be equal to timer H | |
| | | */ | |
| | | #else | |
| int timer_a_length; /* A=T1, A=2xT1... (unreliable transport
only) */ | | int timer_a_length; /* A=T1, A=2xT1... (unreliable transport
only) */ | |
| time_t timer_a_start; | | time_t timer_a_start; | |
| int timer_b_length; /* B = 64* T1
*/ | | int timer_b_length; /* B = 64* T1
*/ | |
| time_t timer_b_start; /* fire when transaction timeouts
*/ | | time_t timer_b_start; /* fire when transaction timeouts
*/ | |
| int timer_d_length; /* D >= 32s for unreliable transport (else = 0)
*/ | | int timer_d_length; /* D >= 32s for unreliable transport (else = 0)
*/ | |
|
| time_t timer_d_start; /* should be equal to timer H */ | | time_t timer_d_start; /* should be equal to timer H | |
| | | */ | |
| | | #endif | |
| char *destination; /* url used to send requests */ | | char *destination; /* url used to send requests */ | |
| int port; /* port of next hop */ | | int port; /* port of next hop */ | |
| | | | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * Structure for NON-INVITE CLIENT TRANSACTION (outgoing NON-INVITE transac
tion). | | * Structure for NON-INVITE CLIENT TRANSACTION (outgoing NON-INVITE transac
tion). | |
| * @defvar osip_nict_t | | * @defvar osip_nict_t | |
| */ | | */ | |
| typedef struct osip_nict osip_nict_t; | | typedef struct osip_nict osip_nict_t; | |
| | | | |
| struct osip_nict | | struct osip_nict | |
| { | | { | |
| /* state machine is implied... */ | | /* state machine is implied... */ | |
| | | | |
|
| | | #ifdef NEW_TIMER | |
| | | int timer_e_length; /* A=T1, A=2xT1... (unreliable tr. only) | |
| | | */ | |
| | | struct timeval timer_e_start; /* (else = -1) not active | |
| | | */ | |
| | | int timer_f_length; /* B = 64* T1 | |
| | | */ | |
| | | struct timeval timer_f_start; /* fire when transaction timeouts | |
| | | */ | |
| | | int timer_k_length; /* K = T4 (else = 0) | |
| | | */ | |
| | | struct timeval timer_k_start; | |
| | | #else | |
| int timer_e_length; /* A=T1, A=2xT1... (unreliable transport only)
*/ | | int timer_e_length; /* A=T1, A=2xT1... (unreliable transport only)
*/ | |
| time_t timer_e_start; /* (else = -1) not active
*/ | | time_t timer_e_start; /* (else = -1) not active
*/ | |
| int timer_f_length; /* B = 64* T1
*/ | | int timer_f_length; /* B = 64* T1
*/ | |
| time_t timer_f_start; /* fire when transaction timeouts
*/ | | time_t timer_f_start; /* fire when transaction timeouts
*/ | |
| int timer_k_length; /* K = T4 (else = 0)
*/ | | int timer_k_length; /* K = T4 (else = 0)
*/ | |
| time_t timer_k_start; | | time_t timer_k_start; | |
|
| | | #endif | |
| char *destination; /* url used to send requests */ | | char *destination; /* url used to send requests */ | |
| int port; /* port of next hop */ | | int port; /* port of next hop */ | |
| | | | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * Structure for INVITE SERVER TRANSACTION (incoming INVITE transaction). | | * Structure for INVITE SERVER TRANSACTION (incoming INVITE transaction). | |
| * @defvar osip_ist_t | | * @defvar osip_ist_t | |
| */ | | */ | |
| typedef struct osip_ist osip_ist_t; | | typedef struct osip_ist osip_ist_t; | |
| | | | |
| struct osip_ist | | struct osip_ist | |
| { | | { | |
|
| | | #ifdef NEW_TIMER | |
| | | int timer_g_length; /* G=MIN(T1*2,T2) for unreliable trans. | |
| | | */ | |
| | | struct timeval timer_g_start; /* 0 when reliable transport is used! | |
| | | */ | |
| | | int timer_h_length; /* H = 64* T1 | |
| | | */ | |
| | | struct timeval timer_h_start; /* fire when if no ACK is received | |
| | | */ | |
| | | int timer_i_length; /* I = T4 for unreliable transport (or 0 | |
| | | )*/ | |
| | | struct timeval timer_i_start; /* absorb all ACK | |
| | | */ | |
| | | #else | |
| int timer_g_length; /* G=MIN(T1*2,T2) for unreliable transport */ | | int timer_g_length; /* G=MIN(T1*2,T2) for unreliable transport */ | |
| time_t timer_g_start; /* else = 0 when reliable transport is used! */ | | time_t timer_g_start; /* else = 0 when reliable transport is used! */ | |
| int timer_h_length; /* H = 64* T1
*/ | | int timer_h_length; /* H = 64* T1
*/ | |
| time_t timer_h_start; /* fire when if no ACK is received */ | | time_t timer_h_start; /* fire when if no ACK is received */ | |
| int timer_i_length; /* I = T4 for unreliable transport (else =
0) */ | | int timer_i_length; /* I = T4 for unreliable transport (else =
0) */ | |
| time_t timer_i_start; /* absorb all ACK */ | | time_t timer_i_start; /* absorb all ACK */ | |
|
| | | #endif | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * Structure for NON-INVITE SERVER TRANSACTION (incoming SERVER transaction
). | | * Structure for NON-INVITE SERVER TRANSACTION (incoming SERVER transaction
). | |
| * @defvar osip_nist_t | | * @defvar osip_nist_t | |
| */ | | */ | |
| typedef struct osip_nist osip_nist_t; | | typedef struct osip_nist osip_nist_t; | |
| | | | |
| struct osip_nist | | struct osip_nist | |
| { | | { | |
|
| | | #ifdef NEW_TIMER | |
| | | int timer_j_length; /* J = 64*T1 (else 0) */ | |
| | | struct timeval timer_j_start; | |
| | | #else | |
| int timer_j_length; /* J = 64*T1 (else 0) */ | | int timer_j_length; /* J = 64*T1 (else 0) */ | |
| time_t timer_j_start; | | time_t timer_j_start; | |
|
| | | #endif | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * Structure for transaction handling. | | * Structure for transaction handling. | |
| * @defvar osip_transaction_t | | * @defvar osip_transaction_t | |
| */ | | */ | |
| typedef struct osip_transaction osip_transaction_t; | | typedef struct osip_transaction osip_transaction_t; | |
| | | | |
| struct osip_transaction | | struct osip_transaction | |
| { | | { | |
| | | | |
| skipping to change at line 894 | | skipping to change at line 919 | |
| * Consume ALL pending osip_event_t previously added in the fifos of nict t
ransactions. | | * Consume ALL pending osip_event_t previously added in the fifos of nict t
ransactions. | |
| * @param osip The element to work on. | | * @param osip The element to work on. | |
| */ | | */ | |
| int osip_nict_execute (osip_t * osip); | | int osip_nict_execute (osip_t * osip); | |
| /** | | /** | |
| * Consume ALL pending osip_event_t previously added in the fifos of nist t
ransactions. | | * Consume ALL pending osip_event_t previously added in the fifos of nist t
ransactions. | |
| * @param osip The element to work on. | | * @param osip The element to work on. | |
| */ | | */ | |
| int osip_nist_execute (osip_t * osip); | | int osip_nist_execute (osip_t * osip); | |
| | | | |
|
| | | #ifdef NEW_TIMER | |
| | | /** | |
| | | * Retreive the minimum timer value to be used by an application | |
| | | * so that the osip_timer_*_execute method don't have to be called | |
| | | * often. | |
| | | * | |
| | | * @param osip The element to work on. | |
| | | * @param lower_tv The minimum timer when the application should wake up. | |
| | | */ | |
| | | void osip_timers_gettimeout(osip_t * osip, struct timeval *lower_tv); | |
| | | #endif | |
| /** | | /** | |
| * Check if an ict transactions needs a timer event. | | * Check if an ict transactions needs a timer event. | |
| * @param osip The element to work on. | | * @param osip The element to work on. | |
| */ | | */ | |
| void osip_timers_ict_execute (osip_t * osip); | | void osip_timers_ict_execute (osip_t * osip); | |
| /** | | /** | |
| * Check if an ist transactions needs a timer event. | | * Check if an ist transactions needs a timer event. | |
| * @param osip The element to work on. | | * @param osip The element to work on. | |
| */ | | */ | |
| void osip_timers_ist_execute (osip_t * osip); | | void osip_timers_ist_execute (osip_t * osip); | |
| | | | |
End of changes. 9 change blocks. |
| 8 lines changed or deleted | | 61 lines changed or added | |
|
| osip_dialog.h | | osip_dialog.h | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| License along with this library; if not, write to the Free Software | | License along with this library; if not, write to the Free Software | |
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
| #ifndef _DIALOG_H_ | | #ifndef _DIALOG_H_ | |
| #define _DIALOG_H_ | | #define _DIALOG_H_ | |
| | | | |
| #include <osip2/osip.h> | | #include <osip2/osip.h> | |
| | | | |
| /** | | /** | |
|
| * @file dialog.h | | * @file osip_dialog.h | |
| * @brief oSIP dialog Routines | | * @brief oSIP dialog Routines | |
| * | | * | |
| * Dialog management is a powerful facility given by oSIP. This feature is | | * Dialog management is a powerful facility given by oSIP. This feature is | |
| * needed by SIP end point who has the capability to answer calls. (i.e. | | * needed by SIP end point who has the capability to answer calls. (i.e. | |
| * answering 200 OK to an INVITE). | | * answering 200 OK to an INVITE). | |
| * <BR> | | * <BR> | |
| * A Dialog is a context for a call establishment in oSIP. It's not useless | | * A Dialog is a context for a call establishment in oSIP. It's not useless | |
| * to say that ONE invite request can lead to several call establishment. | | * to say that ONE invite request can lead to several call establishment. | |
| * This can happen if your call has been forked by a proxy and several | | * This can happen if your call has been forked by a proxy and several | |
| * user agent was contacted and replied at the same time. It is true that | | * user agent was contacted and replied at the same time. It is true that | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| osip_negotiation.h | | osip_negotiation.h | |
| | | | |
| skipping to change at line 26 | | skipping to change at line 26 | |
| License along with this library; if not, write to the Free Software | | License along with this library; if not, write to the Free Software | |
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | | */ | |
| | | | |
| #ifndef _SDP_NEGOC_H_ | | #ifndef _SDP_NEGOC_H_ | |
| #define _SDP_NEGOC_H_ | | #define _SDP_NEGOC_H_ | |
| | | | |
| #include <osipparser2/sdp_message.h> | | #include <osipparser2/sdp_message.h> | |
| | | | |
| /** | | /** | |
|
| * @file sdp_negoc.h | | * @file osip_negotiation.h | |
| * @brief oSIP and SDP offer/answer model Routines | | * @brief oSIP and SDP offer/answer model Routines | |
| * | | * | |
| * The SDP offer/answer model is where most SIP interoperability issue | | * The SDP offer/answer model is where most SIP interoperability issue | |
| * comes from. The SDP specification (rfc2327.txt) is often not fully | | * comes from. The SDP specification (rfc2327.txt) is often not fully | |
| * respected. As an example, most SIP applications forget to add the | | * respected. As an example, most SIP applications forget to add the | |
| * mandatory 's' field in the SDP packet. Another mistake is to assume | | * mandatory 's' field in the SDP packet. Another mistake is to assume | |
| * that an SDP packet don't need a 'p' and a 'e' field. Even if they | | * that an SDP packet don't need a 'p' and a 'e' field. Even if they | |
| * are both optional, at least of those is mandatory! I have never | | * are both optional, at least of those is mandatory! I have never | |
| * seen ONE implementation that send at least one 'p' or 'e' field!! | | * seen ONE implementation that send at least one 'p' or 'e' field!! | |
| * <BR>For all the reasons, that make negotiation a hard task, I have | | * <BR>For all the reasons, that make negotiation a hard task, I have | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|