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

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

?? osip_dialog.h

?? SIP協議棧實現
?? H
字號:
/*  The oSIP library implements the Session Initiation Protocol (SIP -rfc2543-)  Copyright (C) 2001  Aymeric MOIZARD jack@atosc.org    This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Lesser General Public  License as published by the Free Software Foundation; either  version 2.1 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public  License along with this library; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifndef _DIALOG_H_#define _DIALOG_H_#include <osip2/osip.h>/** * @file dialog.h * @brief oSIP dialog Routines * * 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. * answering 200 OK to an INVITE). * <BR> * 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. * 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 * this case won't probably happen several times a month... * <BR> * There is two ways of creating a dialog. In one case, you are the CALLER * and in the other case, you will be the CALLEE. * <UL> * <LI>Creating a dialog as a CALLER * <BR>In this case, you have to create a dialog each time you receive * an answer with a code between 101 and 299. The best place in oSIP to * actually create a dialog is of course in the callback that announce * such SIP messages. Of course, each time you receive a response, you have * to check for an existing dialog associated to this INVITE that can have * been created by earlier SIP answer coming from the same User Agent. The * code in the callback will look like the following: * <BR> void cb_rcv1xx(osip_transaction_t *tr,osip_message_t *sip) * <BR> { * <BR>   osip_dialog_t *dialog; * <BR>   if (MSG_IS_RESPONSEFOR(sip, "INVITE")&&!MSG_TEST_CODE(sip, 100)) { * <BR>     dialog = my_application_search_existing_dialog(sip); * <BR>     if (dialog==NULL) //NO EXISTING DIALOG * <BR>       { * <BR>        i = osip_dialog_init_as_uac(&dialog, sip); * <BR>        my_application_add_existing_dialog(dialog); * <BR>       } * <BR>   } else { * <BR>     // no dialog establishment for other REQUEST * <BR> } * </LI> * <LI>Creating a dialog as a CALLEE * <BR>In this case, you will have to create a dialog upon receiving the first * transmission of the INVITE request. The correct place to do that is inside * the callback previously registered to announce new INVITE. First, you will * build a SIP answer like 180 or 200 and you'll be able to create a dialog * by calling the following code: * <BR>osip_dialog_t *dialog; * <BR>osip_dialog_init_as_uas(&dialog, original_invite, response_that_you_build); * <BR>To make things working, you MUST create a VALID response: do not * forget to create a new tag and put it in the 'To' header. The dialog * management heavily depends on this tag. * </LI> * </UL> * <P>The dialog management is compliant with the latest SIP draft * (rfc2543bis-09). It should handle successfully most cases where * a remote UA is not compliant (no tag in the To of a final response!) * But for example, if you receive 2 answers from 2 uncompliant * UA, they will be detected as being related to the same dialog... * Do not change any code in oSIP or in your application... instead, you * should boycott such implementation. :- *//** * @defgroup oSIP_DIALOG oSIP dialog Handling * @ingroup oSIP * @{ */#ifdef __cplusplusextern "C"{#endif#ifndef DOXYGEN  typedef enum _osip_dialog_type_t  {    CALLER,    CALLEE  }  osip_dialog_type_t;#endif/** * Structure for referencing a dialog. * @var osip_dialog_t */  typedef struct osip_dialog osip_dialog_t;/** * Structure for referencing a dialog. */  struct osip_dialog  {    /*  char *dialog_id; ***implied*** *//* call-id:local_tag:remote-tag */    char *call_id;    char *local_tag;    char *remote_tag;    osip_list_t *route_set;    int local_cseq;    int remote_cseq;    osip_to_t *remote_uri;    osip_from_t *local_uri;    osip_contact_t *remote_contact_uri;    int secure;    /* type of dialog (CALLEE or CALLER) */    osip_dialog_type_t type;    state_t state;		/* DIALOG_EARLY || DIALOG_CONFIRMED || DIALOG_CLOSED */  };/** * Allocate a osip_dialog_t element as a UAC. * <UL><LI>NOTE1: Only INVITE transactions can create a dialog.</LI> * <LI>NOTE2: The dialog should be created when the first response is received. *        (except for a 100 Trying)</LI> * <LI>NOTE3: Remote UA should be compliant! If not (not tag in the to header?) *        the old mechanism is used to match the request but if 2 uncompliant *        UA both answer 200 OK for the same transaction, they won't be detected. *        This is a major BUG in the old rfc.</LI></UL> * @param dialog The element to allocate. * @param response The response containing the informations. */  int osip_dialog_init_as_uac (osip_dialog_t ** dialog, osip_message_t * response);/** * Allocate a osip_dialog_t element as a UAC. * <UL><LI>This could be used to initiate dialog with a NOTIFY coming * before the answer for a subscribe has reached us.</LI> * @param dialog The element to allocate. * @param next_request The response containing the informations. * @param local_cseq The local cseq */  int osip_dialog_init_as_uac_with_remote_request (osip_dialog_t ** dialog, osip_message_t *next_request, int local_cseq);/** * Allocate a osip_dialog_t element as a UAS. * NOTE1: Only INVITE transactions can create a dialog. * NOTE2: The dialog should be created when the first response is sent. *        (except for a 100 Trying) * @param dialog The element to allocate. * @param invite The INVITE request containing some informations. * @param response The response containing other informations. */  int osip_dialog_init_as_uas (osip_dialog_t ** dialog, osip_message_t * invite,			  osip_message_t * response);/** * Free all resource in a osip_dialog_t element. * @param dialog The element to free. */  void osip_dialog_free (osip_dialog_t * dialog);/** * Set the state of the dialog. * This is useful to keep information on who is the initiator of the call. * @param dialog The element to work on. * @param type The type of dialog (CALLEE or CALLER). */  void osip_dialog_set_state (osip_dialog_t * dialog, state_t type);/** * Update the Route-Set as UAS of a dialog. * NOTE: bis-09 says that only INVITE transactions can update the route-set. * NOTE: bis-09 says that updating the route-set means: update the contact *       field only (AND NOT THE ROUTE-SET). This method follow this behaviour. * NOTE: This method should be called for each request (except 100 Trying) *       received for a dialog. * @param dialog The element to work on. * @param invite The invite received. */  int osip_dialog_update_route_set_as_uas (osip_dialog_t * dialog, osip_message_t * invite);/** * Update the CSeq (remote cseq) during a UAS transaction of a dialog. * NOTE: All INCOMING transactions MUST update the remote CSeq. * @param dialog The element to work on. * @param request The request received. */  int osip_dialog_update_osip_cseq_as_uas (osip_dialog_t * dialog, osip_message_t * request);/** * Match a response received with a dialog. * @param dialog The element to work on. * @param response The response received. */  int osip_dialog_match_as_uac (osip_dialog_t * dialog, osip_message_t * response);/** * Update the tag as UAC of a dialog?. (this could be needed if the 180 * does not contains any tag, but the 200 contains one. * @param dialog The element to work on. * @param response The response received. */  int osip_dialog_update_tag_as_uac (osip_dialog_t * dialog, osip_message_t * response);/** * Update the Route-Set as UAC of a dialog. * NOTE: bis-09 says that only INVITE transactions can update the route-set. * NOTE: bis-09 says that updating the route-set means: update the contact *       field only (AND NOT THE ROUTE-SET). This method follow this behaviour. * NOTE: This method should be called for each request (except 100 Trying) *       received for a dialog. * @param dialog The element to work on. * @param response The response received. */  int osip_dialog_update_route_set_as_uac (osip_dialog_t * dialog, osip_message_t * response);/** * Match a request (response sent??) received with a dialog. * @param dialog The element to work on. * @param request The request received. */  int osip_dialog_match_as_uas (osip_dialog_t * dialog, osip_message_t * request);#ifndef DOXYGEN  int osip_dialog_is_originator (osip_dialog_t * dialog);  int osip_dialog_is_callee (osip_dialog_t * dialog);#endif#ifdef __cplusplus}#endif/** @} */#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看一区| 日本丰满少妇一区二区三区| 亚洲成人动漫在线观看| 中文字幕一区二区在线播放| 中文字幕电影一区| 国产午夜精品久久| 中文字幕亚洲一区二区av在线| 国产亚洲欧美日韩在线一区| 国产日韩av一区二区| 国产亚洲精品久| 国产精品人妖ts系列视频| 国产精品三级在线观看| 亚洲美女少妇撒尿| 五月综合激情网| 国产在线不卡视频| www.欧美日韩国产在线| 在线亚洲一区二区| 日韩一区二区三区高清免费看看| 日韩久久精品一区| 国产精品免费丝袜| 亚洲国产精品久久不卡毛片| 日韩电影在线观看电影| 麻豆国产精品一区二区三区| 成人综合激情网| av在线不卡免费看| 欧美日韩国产大片| 国产亚洲污的网站| 亚洲一卡二卡三卡四卡无卡久久| 日本强好片久久久久久aaa| 国产综合色在线视频区| 91在线云播放| 欧美v亚洲v综合ⅴ国产v| 国产精品午夜久久| 丝袜国产日韩另类美女| 国产精品一区二区久激情瑜伽| 色综合中文综合网| 91麻豆视频网站| 在线综合视频播放| 国产精品国产精品国产专区不片 | 91精品福利视频| 精品国产精品网麻豆系列 | 日韩不卡免费视频| 成人免费av在线| 欧美久久高跟鞋激| 亚洲人成小说网站色在线| 日本欧美在线观看| 欧美色欧美亚洲另类二区| 国产欧美日产一区| 奇米影视一区二区三区| 91麻豆视频网站| 欧美激情一区二区三区四区| 天堂久久一区二区三区| 一本一道久久a久久精品| www日韩大片| 青椒成人免费视频| 91行情网站电视在线观看高清版| 2022国产精品视频| 男男视频亚洲欧美| 欧美精品自拍偷拍| 亚洲精品视频在线观看网站| 高清久久久久久| 精品国一区二区三区| 视频一区在线视频| 精品视频一区三区九区| 亚洲欧美日韩国产手机在线| 成人动漫中文字幕| 国产欧美一区二区精品秋霞影院 | 亚洲精品一卡二卡| 成人激情免费网站| 中文字幕欧美区| 国产精品99久久不卡二区| 欧美成人激情免费网| 久久精品国产一区二区| 日韩美女视频在线| 韩国精品免费视频| 久久久99精品久久| 大桥未久av一区二区三区中文| 国产亚洲女人久久久久毛片| 国产精品一品二品| 欧美韩国日本不卡| 99久久久久久| 亚洲麻豆国产自偷在线| 在线观看91视频| 免费在线观看精品| 欧美xxxx老人做受| 国产很黄免费观看久久| 国产精品美女久久久久久久久| 成人av综合一区| 亚洲男同性视频| 在线播放中文一区| 精品制服美女久久| 欧美国产激情二区三区| 一本到不卡免费一区二区| 午夜电影网亚洲视频| 精品999在线播放| 成人app网站| 亚洲国产成人av网| 精品日韩av一区二区| av一本久道久久综合久久鬼色| 亚洲欧美日韩国产综合| 欧美日韩的一区二区| 国产美女精品人人做人人爽| 亚洲天堂福利av| 欧美一卡二卡三卡四卡| 国产成人av网站| 亚洲高清一区二区三区| 精品国产伦一区二区三区免费| 成人h动漫精品一区二区| 午夜精品久久久久久久久| 久久色在线观看| 色哟哟国产精品| 国产九色sp调教91| 亚洲电影视频在线| 国产清纯白嫩初高生在线观看91| 91精彩视频在线观看| 精品一区二区国语对白| 亚洲精品欧美在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久久久国色av免费看影院| 色丁香久综合在线久综合在线观看| 日韩不卡在线观看日韩不卡视频| 国产亚洲一二三区| 日韩无一区二区| 91猫先生在线| 成人一级片在线观看| 精品一区二区三区免费毛片爱| 亚洲综合免费观看高清完整版在线| 欧美sm极限捆绑bd| 欧美日韩视频专区在线播放| 99久久精品免费看国产免费软件| 奇米精品一区二区三区在线观看一| 亚洲视频一区在线| 国产欧美一二三区| 久久免费看少妇高潮| 日韩精品中午字幕| 欧美精品tushy高清| 在线视频一区二区三| 99久久免费精品| 播五月开心婷婷综合| 国产一区二区三区在线观看免费| 免费精品视频在线| 日韩精品亚洲一区| 一二三四区精品视频| 亚洲视频你懂的| 一区免费观看视频| 中文字幕一区三区| 国产精品国产三级国产aⅴ中文| 国产亚洲欧美日韩在线一区| 久久久精品黄色| 久久久久综合网| 中文字幕的久久| 亚洲欧洲精品一区二区三区不卡 | 伊人一区二区三区| 亚洲日韩欧美一区二区在线| 国产精品嫩草影院com| 国产精品午夜在线观看| 中文字幕一区二区三区色视频| 国产精品国产三级国产普通话三级 | 一二三区精品福利视频| 亚洲伦理在线免费看| 亚洲最大的成人av| 亚洲成人午夜电影| 青青草精品视频| 国产精品一区二区x88av| 国产一区二区电影| a亚洲天堂av| 欧美影院一区二区| 日韩亚洲欧美中文三级| 精品成人一区二区三区四区| 国产欧美日韩三级| 亚洲欧美一区二区三区久本道91 | 91亚洲资源网| 欧美午夜精品一区二区蜜桃| 欧美午夜精品电影| 日韩欧美电影一二三| 久久精品亚洲国产奇米99| 国产精品美女一区二区三区 | 国产精品久久久久影院亚瑟| 亚洲婷婷在线视频| 日本大胆欧美人术艺术动态| 激情伊人五月天久久综合| 成人黄色网址在线观看| 欧美亚洲免费在线一区| 日韩一区二区在线看| 欧美韩国日本一区| 午夜国产不卡在线观看视频| 韩国视频一区二区| 91久久线看在观草草青青| 日韩一区二区三区在线| 国产精品国产自产拍高清av王其| 亚洲国产视频a| 国产乱人伦偷精品视频不卡| 欧美午夜片在线看| 欧美精品一区二区三区蜜桃视频| 国产精品电影一区二区三区| 午夜精品影院在线观看| 丰满放荡岳乱妇91ww| 欧美日韩精品一区二区| 国产精品国产精品国产专区不蜜| 日精品一区二区|