libosip 3.6.0

xixt.h

00001 /*
00002   The oSIP library implements the Session Initiation Protocol (SIP -rfc2543-)
00003   Copyright (C) 2001  Aymeric MOIZARD jack@atosc.org
00004   
00005   This library is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Lesser General Public
00007   License as published by the Free Software Foundation; either
00008   version 2.1 of the License, or (at your option) any later version.
00009   
00010   This library is distributed in the hope that it will be useful,
00011   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   Lesser General Public License for more details.
00014   
00015   You should have received a copy of the GNU Lesser General Public
00016   License along with this library; if not, write to the Free Software
00017   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 */
00019 
00020 
00021 #ifndef _XIXT_H_
00022 #define _XIXT_H_
00023 
00024 #include <osipparser2/osip_const.h>
00025 #include <osipparser2/osip_port.h>
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030 
00031 
00032         void __osip_message_callback(int type, osip_transaction_t *, osip_message_t *);
00033         void __osip_kill_transaction_callback(int type, osip_transaction_t *);
00034         void __osip_transport_error_callback(int type, osip_transaction_t *,
00035                                                                                  int error);
00036 
00044         int __osip_ict_init(osip_ict_t ** ict, osip_t * osip, osip_message_t * invite);
00050         int __osip_ict_free(osip_ict_t * ict);
00051 
00052 
00060         osip_event_t *__osip_ict_need_timer_a_event(osip_ict_t * ict,
00061                                                                                                 state_t state, int transactionid);
00069         osip_event_t *__osip_ict_need_timer_b_event(osip_ict_t * ict,
00070                                                                                                 state_t state, int transactionid);
00078         osip_event_t *__osip_ict_need_timer_d_event(osip_ict_t * ict,
00079                                                                                                 state_t state, int transactionid);
00080 
00088         int __osip_nict_init(osip_nict_t ** nict, osip_t * osip,
00089                                                  osip_message_t * request);
00095         int __osip_nict_free(osip_nict_t * nict);
00096 
00097 
00105         osip_event_t *__osip_nict_need_timer_e_event(osip_nict_t * nict,
00106                                                                                                  state_t state, int transactionid);
00114         osip_event_t *__osip_nict_need_timer_f_event(osip_nict_t * nict,
00115                                                                                                  state_t state, int transactionid);
00123         osip_event_t *__osip_nict_need_timer_k_event(osip_nict_t * nict,
00124                                                                                                  state_t state, int transactionid);
00125 
00133         int __osip_ist_init(osip_ist_t ** ist, osip_t * osip, osip_message_t * invite);
00139         int __osip_ist_free(osip_ist_t * ist);
00140 
00148         osip_event_t *__osip_ist_need_timer_g_event(osip_ist_t * ist,
00149                                                                                                 state_t state, int transactionid);
00157         osip_event_t *__osip_ist_need_timer_h_event(osip_ist_t * ist,
00158                                                                                                 state_t state, int transactionid);
00166         osip_event_t *__osip_ist_need_timer_i_event(osip_ist_t * ist,
00167                                                                                                 state_t state, int transactionid);
00168 
00176         int __osip_nist_init(osip_nist_t ** nist, osip_t * osip,
00177                                                  osip_message_t * request);
00178 
00184         int __osip_nist_free(osip_nist_t * nist);
00185 
00186 
00193         osip_event_t *__osip_nist_need_timer_j_event(osip_nist_t * nist,
00194                                                                                                  state_t state, int transactionid);
00195 
00202         int
00203          __osip_transaction_matching_response_osip_to_xict_17_1_3
00204                 (osip_transaction_t * tr, osip_message_t * resp);
00205 
00212         int
00213          __osip_transaction_matching_request_osip_to_xist_17_2_3
00214                 (osip_transaction_t * tr, osip_message_t * request);
00215 
00216 
00217 
00223         int osip_ict_lock(osip_t * osip);
00229         int osip_ict_unlock(osip_t * osip);
00235         int osip_ist_lock(osip_t * osip);
00241         int osip_ist_unlock(osip_t * osip);
00247         int osip_nict_lock(osip_t * osip);
00253         int osip_nict_unlock(osip_t * osip);
00259         int osip_nist_lock(osip_t * osip);
00265         int osip_nist_unlock(osip_t * osip);
00266 
00273         int __osip_add_ict(osip_t * osip, osip_transaction_t * ict);
00280         int __osip_add_ist(osip_t * osip, osip_transaction_t * ist);
00287         int __osip_add_nict(osip_t * osip, osip_transaction_t * nict);
00294         int __osip_add_nist(osip_t * osip, osip_transaction_t * nist);
00295 
00301         int __osip_remove_ict_transaction(osip_t * osip, osip_transaction_t * ict);
00307         int __osip_remove_ist_transaction(osip_t * osip, osip_transaction_t * ist);
00313         int __osip_remove_nict_transaction(osip_t * osip, osip_transaction_t * nict);
00319         int __osip_remove_nist_transaction(osip_t * osip, osip_transaction_t * nist);
00320 
00327         osip_event_t *__osip_event_new(type_t type, int transactionid);
00328 
00329 
00334         osip_event_t *osip_new_outgoing_sipmessage(osip_message_t * sip);
00335 
00336 #ifdef __cplusplus
00337 }
00338 #endif
00339 #endif