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 { 00030 #endif 00031 00032 00033 void __osip_message_callback (int type, osip_transaction_t *, 00034 osip_message_t *); 00035 void __osip_kill_transaction_callback (int type, osip_transaction_t *); 00036 void __osip_transport_error_callback (int type, osip_transaction_t *, 00037 int error); 00038 00046 int __osip_ict_init (osip_ict_t ** ict, osip_t * osip, 00047 osip_message_t * invite); 00053 int __osip_ict_free (osip_ict_t * ict); 00054 00055 00063 osip_event_t *__osip_ict_need_timer_a_event (osip_ict_t * ict, 00064 state_t state, 00065 int transactionid); 00073 osip_event_t *__osip_ict_need_timer_b_event (osip_ict_t * ict, 00074 state_t state, 00075 int transactionid); 00083 osip_event_t *__osip_ict_need_timer_d_event (osip_ict_t * ict, 00084 state_t state, 00085 int transactionid); 00086 00094 int __osip_nict_init (osip_nict_t ** nict, osip_t * osip, 00095 osip_message_t * request); 00101 int __osip_nict_free (osip_nict_t * nict); 00102 00103 00111 osip_event_t *__osip_nict_need_timer_e_event (osip_nict_t * nict, 00112 state_t state, 00113 int transactionid); 00121 osip_event_t *__osip_nict_need_timer_f_event (osip_nict_t * nict, 00122 state_t state, 00123 int transactionid); 00131 osip_event_t *__osip_nict_need_timer_k_event (osip_nict_t * nict, 00132 state_t state, 00133 int transactionid); 00134 00142 int __osip_ist_init (osip_ist_t ** ist, osip_t * osip, 00143 osip_message_t * invite); 00149 int __osip_ist_free (osip_ist_t * ist); 00150 00158 osip_event_t *__osip_ist_need_timer_g_event (osip_ist_t * ist, 00159 state_t state, 00160 int transactionid); 00168 osip_event_t *__osip_ist_need_timer_h_event (osip_ist_t * ist, 00169 state_t state, 00170 int transactionid); 00178 osip_event_t *__osip_ist_need_timer_i_event (osip_ist_t * ist, 00179 state_t state, 00180 int transactionid); 00181 00189 int __osip_nist_init (osip_nist_t ** nist, osip_t * osip, 00190 osip_message_t * request); 00191 00197 int __osip_nist_free (osip_nist_t * nist); 00198 00199 00206 osip_event_t *__osip_nist_need_timer_j_event (osip_nist_t * nist, 00207 state_t state, 00208 int transactionid); 00209 00216 int 00217 __osip_transaction_matching_response_osip_to_xict_17_1_3 00218 (osip_transaction_t * tr, osip_message_t * resp); 00219 00226 int 00227 __osip_transaction_matching_request_osip_to_xist_17_2_3 00228 (osip_transaction_t * tr, osip_message_t * request); 00229 00230 00231 00237 int osip_ict_lock (osip_t * osip); 00243 int osip_ict_unlock (osip_t * osip); 00249 int osip_ist_lock (osip_t * osip); 00255 int osip_ist_unlock (osip_t * osip); 00261 int osip_nict_lock (osip_t * osip); 00267 int osip_nict_unlock (osip_t * osip); 00273 int osip_nist_lock (osip_t * osip); 00279 int osip_nist_unlock (osip_t * osip); 00280 00287 int __osip_add_ict (osip_t * osip, osip_transaction_t * ict); 00294 int __osip_add_ist (osip_t * osip, osip_transaction_t * ist); 00301 int __osip_add_nict (osip_t * osip, osip_transaction_t * nict); 00308 int __osip_add_nist (osip_t * osip, osip_transaction_t * nist); 00309 00315 int __osip_remove_ict_transaction (osip_t * osip, osip_transaction_t * ict); 00321 int __osip_remove_ist_transaction (osip_t * osip, osip_transaction_t * ist); 00327 int __osip_remove_nict_transaction (osip_t * osip, 00328 osip_transaction_t * nict); 00334 int __osip_remove_nist_transaction (osip_t * osip, 00335 osip_transaction_t * nist); 00336 00343 osip_event_t *__osip_event_new (type_t type, int transactionid); 00344 00345 00350 osip_event_t *osip_new_outgoing_sipmessage (osip_message_t * sip); 00351 00352 #ifdef __cplusplus 00353 } 00354 #endif 00355 00356 #endif