亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? osip.h

?? SIP協議棧實現
?? H
?? 第 1 頁 / 共 3 頁
字號:
 * NOTE: This method MUST NEVER be called within another call * of this method. (For example, you can't call osip_transaction_execute() * in a callback registered in the osip_t element.) * @param transaction The element to free. * @param evt The element to consume. */  int osip_transaction_execute (osip_transaction_t * transaction, osip_event_t * evt);/** * Set a pointer to your personal context associated with this transaction. * NOTE: this is a very useful method that allow you to avoid searching * for your personal context inside the registered callbacks. * You can initialise this pointer to your context right after * the creation of the osip_transaction_t element. Then, you'll be * able to get the address of your context by calling * osip_transaction_get_your_instance(). * @param transaction The element to work on. * @param instance The address of your context. */  int osip_transaction_set_your_instance (osip_transaction_t * transaction,				     void *instance);/** * Get a pointer to your personal context associated with this transaction. * @param transaction The element to work on. */  void *osip_transaction_get_your_instance (osip_transaction_t * transaction);/** * Get target ip and port for this request. * (automaticly set by osip_transaction_init() for ict and nict) * @param transaction The element to work on. * @param ip The ip of host where to send initial request. * @param port The port where to send initial request. */  int osip_transaction_get_destination(osip_transaction_t * transaction, char **ip, int *port);#ifndef DOXYGEN/** * Set the socket for incoming message. * NOTE: THIS HAS NEVER TESTED! Please send feedback. * @param transaction The element to work on. * @param sock The socket for incoming message. */  int osip_transaction_set_in_socket (osip_transaction_t * transaction, int sock);/** * Set the socket for outgoing message. * NOTE: THIS HAS NEVER TESTED! Please send feedback. * @param transaction The element to work on. * @param sock The socket for outgoing message. */  int osip_transaction_set_out_socket (osip_transaction_t * transaction, int sock);#if 0/** * Check if the first 2 parameters match the other ones. * NOTE: THIS IS AN INTERNAL METHOD ONLY * @param to1 The initial to header. * @param from1 The initial from header. * @param to2 The new to header. * @param from2 The new from header. */  int callleg_match (osip_to_t * to1, osip_from_t * from1, osip_to_t * to2, osip_from_t * from2);#endif#endif				/* endif DOXYGEN *//**  * Allocate an osip_t element. * @param osip the element to allocate. */  int osip_init (osip_t ** osip);/** * Free all resource in a osip_t element. * @param osip The element to release. */  void osip_release (osip_t * osip);/** * Set a pointer in a osip_t element. * This help to find your application layer in callbacks. * @param osip The element to work on. * @param pointer The element to set. */  void osip_set_application_context (osip_t * osip, void *pointer);/** * Get a pointer in a osip_t element. * This help to find your application layer in callbacks. * @param osip The element to work on. */  void *osip_get_application_context (osip_t * osip);/** * Remove a transaction from the osip stack. * @param osip The element to work on. * @param ict The transaction to add. */  int osip_remove_transaction (osip_t * osip, osip_transaction_t * ict);/** * Consume ALL pending osip_event_t previously added in the fifos of ict transactions. * @param osip The element to work on. */  int osip_ict_execute (osip_t * osip);/** * Consume ALL pending osip_event_t previously added in the fifos of ist transactions. * @param osip The element to work on. */  int osip_ist_execute (osip_t * osip);/** * Consume ALL pending osip_event_t previously added in the fifos of nict transactions. * @param osip The element to work on. */  int osip_nict_execute (osip_t * osip);/** * Consume ALL pending osip_event_t previously added in the fifos of nist transactions. * @param osip The element to work on. */  int osip_nist_execute (osip_t * osip);/** * Check if an ict transactions needs a timer event. * @param osip The element to work on. */  void osip_timers_ict_execute (osip_t * osip);/** * Check if an ist transactions needs a timer event. * @param osip The element to work on. */  void osip_timers_ist_execute (osip_t * osip);/** * Check if a nict transactions needs a timer event. * @param osip The element to work on. */  void osip_timers_nict_execute (osip_t * osip);/** * Check if a nist transactions needs a timer event. * @param osip The element to work on. */  void osip_timers_nist_execute (osip_t * osip);/* Take care of mutlithreading issuewhile using this method *//** * Search for a transaction that match this event (MUST be a MESSAGE event). * @param transactions The list of transactions to work on. * @param evt The element representing the SIP MESSAGE. */  osip_transaction_t *osip_transaction_find (osip_list_t * transactions,					     osip_event_t * evt);  #ifndef DOXYGEN/** * Some race conditions can happen in multi threaded applications. * Use this method carefully. * <BR>Search for a transaction that match this event (MUST be a MESSAGE event). * @param osip The element to work on. * @param evt The element representing the SIP MESSAGE. */#ifndef OSIP_MT  osip_transaction_t *osip_find_transaction (osip_t * osip, osip_event_t * evt);#endif  osip_transaction_t *__osip_find_transaction (osip_t * osip,					       osip_event_t * evt,					       int consume);#endif/** * Search for a transaction that match this event (MUST be a MESSAGE event) * and add this event if a transaction is found.. * @param osip The element to work on. * @param evt The element representing the SIP MESSAGE. */  int osip_find_transaction_and_add_event (osip_t * osip, osip_event_t * evt);/** * Create a transaction for this event (MUST be a SIP REQUEST event). * @param osip The element to work on. * @param evt The element representing the new SIP REQUEST. */  osip_transaction_t *osip_create_transaction (osip_t * osip, osip_event_t * evt);/** * Create a sipevent from a SIP message string. * @param buf The SIP message as a string. */  osip_event_t *osip_parse (char *buf);#ifdef OSIP_RETRANSMIT_2XX  void osip_retransmissions_execute(osip_t *osip);/** * Start out of fsm 200 Ok retransmissions. This is usefull for user-agents. * @param osip The osip_t structure. * @param dialog The dialog the 200 Ok is part of. * @param msg200ok The 200 ok response. * @param sock The socket to be used to send the message. (optional). */  void osip_start_200ok_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *msg200ok, int sock);/** * Start out of fsm ACK retransmissions. This is usefull for user-agents. * @param osip The osip_t structure. * @param dialog The dialog the ACK is part of. * @param ack The ACK that has just been sent in response to a 200 Ok. * @param dest The destination host. * @param sock The destination port. * @param sock The socket to be used to send the message. (optional). */  void osip_start_ack_retransmissions(osip_t *osip, struct osip_dialog *dialog, osip_message_t *ack, char *dest, int port, int sock);/** * Stop the out of fsm 200 Ok retransmissions matching an incoming ACK. * @param osip The osip_t structure. * @param ack  The ack that has just been received. */  void osip_stop_200ok_retransmissions(osip_t *osip, osip_message_t *ack);/** * Stop out of fsm retransmissions (ACK or 200 Ok) associated to a given dialog. * This function must be called before freeing a dialog if out of fsm retransmissions * have been scheduled. * @param osip The osip_t structure * @param dialog The dialog. */  void osip_stop_retransmissions_from_dialog(osip_t *osip, struct osip_dialog *dialog);#endif/** * Allocate a sipevent (we know this message is an OUTGOING SIP message). * @param sip The SIP message we want to send. */  osip_event_t *osip_new_outgoing_sipmessage (osip_message_t * sip);/** * Free all ressource in a sipevent. * @param event The event to free. */  void osip_event_free( osip_event_t *event );/** * Register the callback used to send SIP message. * @param cf The osip element attached to the transaction. * @param cb The method we want to register. */  void osip_set_cb_send_message (osip_t * cf,				 int (*cb) (osip_transaction_t *,					    osip_message_t *, char *,					    int, int));/* FOR INCOMING TRANSACTION *//** * Check if the sipevent is of type RCV_REQINVITE. * @param event the event to check. */#define EVT_IS_RCV_INVITE(event)       (event->type==RCV_REQINVITE)/** * Check if the sipevent is of type RCV_REQACK. * @param event the event to check. */#define EVT_IS_RCV_ACK(event)          (event->type==RCV_REQACK)/** * Check if the sipevent is of type RCV_REQUEST. * @param event the event to check. */#define EVT_IS_RCV_REQUEST(event)      (event->type==RCV_REQUEST)/** * Check if the sipevent is of type RCV_STATUS_1XX. * @param event the event to check. */#define EVT_IS_RCV_STATUS_1XX(event)   (event->type==RCV_STATUS_1XX)/** * Check if the sipevent is of type RCV_STATUS_2XX. * @param event the event to check. */#define EVT_IS_RCV_STATUS_2XX(event)   (event->type==RCV_STATUS_2XX)/** * Check if the sipevent is of type RCV_STATUS_3456XX. * @param event the event to check. */#define EVT_IS_RCV_STATUS_3456XX(event)   (event->type==RCV_STATUS_3456XX)/* FOR OUTGOING TRANSACTION *//** * Check if the sipevent is of type SND_REQINVITE. * @param event the event to check. */#define EVT_IS_SND_INVITE(event)       (event->type==SND_REQINVITE)/** * Check if the sipevent is of type SND_REQACK. * @param event the event to check. */#define EVT_IS_SND_ACK(event)          (event->type==SND_REQACK)/** * Check if the sipevent is of type SND_REQUEST. * @param event the event to check. */#define EVT_IS_SND_REQUEST(event)      (event->type==SND_REQUEST)/** * Check if the sipevent is of type SND_STATUS_1XX. * @param event the event to check. */#define EVT_IS_SND_STATUS_1XX(event)   (event->type==SND_STATUS_1XX)/** * Check if the sipevent is of type SND_STATUS_2XX. * @param event the event to check. */#define EVT_IS_SND_STATUS_2XX(event)   (event->type==SND_STATUS_2XX)/** * Check if the sipevent is of type SND_STATUS_3456XX. * @param event the event to check. */#define EVT_IS_SND_STATUS_3456XX(event)   (event->type==SND_STATUS_3456XX)/** * Check if the sipevent is of an incoming SIP MESSAGE. * @param event the event to check. */#define EVT_IS_INCOMINGMSG(event)      (event->type>=RCV_REQINVITE \                	               &&event->type<=RCV_STATUS_3456XX)/** * Check if the sipevent is of an incoming SIP REQUEST. * @param event the event to check. */#define EVT_IS_INCOMINGREQ(event)      (EVT_IS_RCV_INVITE(event) \                                       ||EVT_IS_RCV_ACK(event) \                                       ||EVT_IS_RCV_REQUEST(event))/** * Check if the sipevent is of an incoming SIP RESPONSE. * @param event the event to check. */#define EVT_IS_INCOMINGRESP(event)     (EVT_IS_RCV_STATUS_1XX(event) \                                       ||EVT_IS_RCV_STATUS_2XX(event) \				       ||EVT_IS_RCV_STATUS_3456XX(event))/** * Check if the sipevent is of an outgoing SIP MESSAGE. * @param event the event to check. */#define EVT_IS_OUTGOINGMSG(event)      (event->type>=SND_REQINVITE \                	               &&event->type<=SND_STATUS_3456XX)/** * Check if the sipevent is of an outgoing SIP REQUEST. * @param event the event to check. */#define EVT_IS_OUTGOINGREQ(event)      (EVT_IS_SND_INVITE(event) \                                       ||EVT_IS_SND_ACK(event) \                                       ||EVT_IS_SND_REQUEST(event))/** * Check if the sipevent is of an outgoing SIP RESPONSE. * @param event the event to check. */#define EVT_IS_OUTGOINGRESP(event)     (EVT_IS_SND_STATUS_1XX(event) \                                       ||EVT_IS_SND_STATUS_2XX(event) \				       ||EVT_IS_SND_STATUS_3456XX(event))/** * Check if the sipevent is a SIP MESSAGE. * @param event the event to check. */#define EVT_IS_MSG(event)              (event->type>=RCV_REQINVITE \                	               &&event->type<=SND_STATUS_3456XX)/** * Check if the sipevent is of type KILL_TRANSACTION. * NOTE: THIS IS AN INTERNAL METHOD ONLY * @param event the event to check. */#define EVT_IS_KILL_TRANSACTION(event) (event->type==KILL_TRANSACTION)#ifdef __cplusplus}#endif/** @} */#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品亚洲精品| 亚洲国产中文字幕| 91精品久久久久久久91蜜桃| 色国产综合视频| 91黄色在线观看| 91美女精品福利| 色综合色综合色综合| 色综合久久久久网| 欧美网站一区二区| 制服.丝袜.亚洲.中文.综合| 91精品国产综合久久蜜臀| 日韩欧美高清在线| 精品久久久久99| 日本一区二区三区电影| 国产精品国产精品国产专区不片| 中文字幕亚洲欧美在线不卡| 亚洲色图欧洲色图婷婷| 亚洲综合一区二区| 青青青伊人色综合久久| 国产成人在线色| 97aⅴ精品视频一二三区| 欧美在线免费观看亚洲| 欧美一区二区精品久久911| 精品久久久久久久久久久久久久久| 久久亚洲精精品中文字幕早川悠里| 久久久不卡影院| 一区二区三区四区乱视频| 日韩中文字幕区一区有砖一区| 美腿丝袜亚洲色图| a亚洲天堂av| 欧美久久一区二区| 欧美国产一区视频在线观看| 亚洲一二三四久久| 国产精品一区二区视频| 91日韩精品一区| 精品日韩在线一区| 亚洲色图视频网| 国产精品一二三四五| 欧美四级电影网| 久久久久久久久久久久久夜| 一区二区三国产精华液| 国产精品1024| 欧美猛男男办公室激情| 国产精品国模大尺度视频| 蜜乳av一区二区| 欧美色区777第一页| 国产日韩欧美制服另类| 婷婷六月综合亚洲| 91网上在线视频| www国产亚洲精品久久麻豆| 亚洲一区二区三区视频在线| 国产成人日日夜夜| 日韩西西人体444www| 亚洲综合图片区| 国产美女精品人人做人人爽| 成人免费观看av| 久久久亚洲欧洲日产国码αv| 性欧美大战久久久久久久久| 91丨九色丨蝌蚪丨老版| 国产免费观看久久| 免费高清在线一区| 欧美精品1区2区3区| 亚洲最快最全在线视频| 91视频在线看| 国产精品国产三级国产专播品爱网 | 国产欧美日韩不卡| 日韩精品91亚洲二区在线观看 | 欧美日韩精品高清| 亚洲摸摸操操av| 不卡的av在线播放| 亚洲欧洲日产国码二区| 成人激情电影免费在线观看| 国产日韩欧美高清| 国产一区在线视频| 久久久久国产精品人| 国产美女一区二区三区| 国产精品―色哟哟| aa级大片欧美| 亚洲欧洲综合另类在线| 色视频成人在线观看免| 亚洲美女一区二区三区| 欧美综合欧美视频| 日韩成人精品在线观看| 欧美日韩午夜影院| 日本人妖一区二区| 欧美一区二区高清| 国产中文一区二区三区| 日本一区二区视频在线观看| 成人精品视频一区二区三区尤物| 国产精品久久久久婷婷二区次| www.66久久| 亚洲一区在线观看网站| 欧美老肥妇做.爰bbww| 国内外精品视频| 亚洲欧美偷拍另类a∨色屁股| 91香蕉视频污在线| 青青草精品视频| 国产午夜一区二区三区| 91免费观看在线| 日本不卡不码高清免费观看| 久久天天做天天爱综合色| av激情综合网| 亚洲国产精品久久艾草纯爱| 日韩精品资源二区在线| 成人国产精品免费观看视频| 亚洲伊人色欲综合网| 日韩你懂的电影在线观看| 99久久婷婷国产综合精品| 亚洲电影一级黄| 国产日韩影视精品| 欧美麻豆精品久久久久久| 国产毛片一区二区| 亚洲777理论| 亚洲国产精品99久久久久久久久| 在线视频综合导航| 国产91高潮流白浆在线麻豆| 亚洲国产一区视频| 日本一区二区三区在线观看| 欧美日韩一卡二卡三卡 | 国产精品久久久久7777按摩| 日韩一区二区三区在线视频| 97久久人人超碰| 国产福利一区在线| 亚洲成a人片综合在线| 国产精品久久久爽爽爽麻豆色哟哟| 67194成人在线观看| 91丝袜国产在线播放| 国产成人免费视频网站 | 日韩一级欧美一级| 色哟哟一区二区在线观看| 国产一区二区在线影院| 日本亚洲最大的色成网站www| 一区二区三区四区在线播放| 国产精品久久久久久久久搜平片| 在线电影国产精品| 欧美综合视频在线观看| 99riav一区二区三区| 成人午夜激情视频| 国产一区二区三区综合| 久久99国产精品久久99| 日韩av在线免费观看不卡| 亚洲第一福利视频在线| 亚洲一级不卡视频| 一区二区三区精品视频| 亚洲美女区一区| 亚洲人成网站精品片在线观看| 国产精品欧美久久久久无广告| 亚洲精品一区二区三区香蕉| 欧美成人女星排名| 精品三级在线看| 欧美成人精精品一区二区频| 欧美va亚洲va| 精品久久久久99| 久久久激情视频| 国产精品美女久久久久久2018| 国产日本欧美一区二区| 久久久一区二区三区| 国产欧美一区二区精品久导航| 日韩精品一区二区三区在线播放| 4438亚洲最大| 欧美成人午夜电影| 国产午夜亚洲精品不卡| 国产欧美视频一区二区| 国产精品乱码一区二区三区软件| 亚洲欧洲精品天堂一级| 亚洲日本va午夜在线电影| 亚洲综合丁香婷婷六月香| 亚洲亚洲精品在线观看| 美女网站色91| 国产乱子伦视频一区二区三区 | 午夜私人影院久久久久| 男男gaygay亚洲| 国产福利一区在线观看| 91网站视频在线观看| 欧美精品粉嫩高潮一区二区| 欧美xxxx老人做受| 亚洲欧美在线高清| 亚洲妇女屁股眼交7| 精品影视av免费| av亚洲产国偷v产偷v自拍| 欧美性生活一区| 精品国产三级a在线观看| 国产精品久久久久久久午夜片| 亚洲自拍偷拍网站| 久久99国产乱子伦精品免费| 成人app在线观看| 欧美日韩国产在线观看| 精品久久久久久无| 亚洲毛片av在线| 蜜桃91丨九色丨蝌蚪91桃色| 99国产精品久久| 精品国产一区二区三区不卡| 亚洲黄色av一区| 国模少妇一区二区三区| 欧洲亚洲国产日韩| 国产精品嫩草99a| 蜜臀av性久久久久蜜臀av麻豆| www.久久久久久久久| 日韩欧美的一区二区| 亚洲综合一二区|