• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種新的面向IMS網(wǎng)絡(luò)的SIP協(xié)議棧*

    2012-10-08 01:58:28季光獻
    電信科學 2012年4期
    關(guān)鍵詞:狀態(tài)機事務(wù)消息

    季光獻

    (麗水職業(yè)技術(shù)學院 麗水 323000)

    1 引言

    IMS(IP multimedia subsystem,IP 多媒體子系統(tǒng))是第三代移動通信伙伴組織(3GPP)在R5版本標準中提出的支持IP多媒體業(yè)務(wù)的子系統(tǒng)。它基于SIP(session initiation protocol,會話初始化協(xié)議)的體系,使用SIP呼叫控制機制來創(chuàng)建、管理和終結(jié)各種類型的多媒體業(yè)務(wù)。各種類型的客戶端通過IMS都可以建立起端到端的IP通信,并可獲得所需要的服務(wù)質(zhì)量。在網(wǎng)絡(luò)融合的發(fā)展趨勢下,IMS技術(shù)為基于IP的移動和固定通信融合提供了基礎(chǔ),并被業(yè)界認為是網(wǎng)絡(luò)演進的一個重要階段[1]。

    SIP是由IETF制定的面向Internet會議和電話的應(yīng)用層控制協(xié)議,用于建立、修改和終止多媒體會話。最初版本是1999年形成的RFC2543,之后不斷更新,最新的版本是2002年6月提出來的RFC3261。所謂多媒體會話是指多媒體發(fā)送者、接收者和從發(fā)送者到接收者的數(shù)據(jù)流的集合。在基于SIP的應(yīng)用中,每一個會話可以是各種不同的數(shù)據(jù),如普通的文本、經(jīng)過數(shù)字化處理的音頻、視頻數(shù)據(jù)等,應(yīng)用具有很大的靈活性[2,3]。

    SIP是一個基于ASCII碼的端到端的協(xié)議,參與會話的成員可以通過多播方式、單播連網(wǎng)或者兩者結(jié)合的形式進行通信。作為一個應(yīng)用層的控制協(xié)議,SIP可以用來建立、修改和終止多媒體會話(或者會議),如 Internet電話;也可以邀請參與者參加已經(jīng)存在的會話,如多方會議。媒體可以在一個已經(jīng)存在的會話中方便地增加(或者刪除)。SIP支持名字映射和重定向服務(wù),可用于支持個人移動業(yè)務(wù)——用戶可以使用一個唯一的外部標志而不用關(guān)心他們的實際網(wǎng)絡(luò)地點。

    SIP在建立和維持終止多媒體會話協(xié)議上,支持以下5個方面的功能。

    ·用戶定位:檢查終端用戶的位置,用于通信。

    ·用戶有效性:檢查用戶參與會話的意愿程度。

    ·用戶能力:檢查媒體和媒體的參數(shù)。

    ·建立會話:在呼叫方和被叫方間建立會話參數(shù)。

    ·會話管理:包括發(fā)送和終止會話,修改會話參數(shù),激活服務(wù)等[4]。

    SIP是IETF多媒體數(shù)據(jù)和控制體系結(jié)構(gòu)的一部分,該協(xié)議大量借鑒了成熟的HTTP協(xié)議,并且具有易擴展、易實現(xiàn)等特點。SIP信令的特點如下[6]。

    ·基于文本,便于用Java、Perl等面向?qū)ο笳Z言實現(xiàn),易于調(diào)測排錯,結(jié)構(gòu)靈活,便于擴展。

    ·中性的底層傳輸協(xié)議:可用TCP或UDP,推薦首選UDP。TCP是通過證實機制保證可靠傳送的,在網(wǎng)絡(luò)負載較大的情況下,常會發(fā)生超時,導致建立信令通道時延較大,采用UDP后,可以用應(yīng)用層控制協(xié)議消息的定時和重發(fā),并可方便地利用多播機制并行搜索目的用戶,無需為每一次搜索建立一個TCP連接。

    ·呼叫和媒體信息同時發(fā)送:SIP在傳送呼叫控制信令的同時,還可以在消息本體中傳送呼叫的媒體類型和格式等信息,以加快呼叫的建立速度。

    ·充分利用和組合Internet已有的協(xié)議:SIP容易與其他協(xié)議組合起來提供服務(wù),如DNS用于地址解析、SDP用于會話和媒體流描述、RTP用于實時多媒體傳送、RSVP和RTCP用于QoS質(zhì)量保證等。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,只需更新相關(guān)的協(xié)議,有利于系統(tǒng)的優(yōu)化和對新業(yè)務(wù)的靈活、快速反應(yīng)。

    ·SIP使用統(tǒng)一資源定位器給出SIP資源的地址:SIP URI的格式和Web及E-mail系統(tǒng)中使用的格式是相同的,這給SIP重定向以巨大的靈活性,并且能將多種通信格式整合起來。

    SIP的消息機制[7]使用ISO0646字符集UTF-8格式,除了字符集的區(qū)別以外,SIP的許多消息語法都與HTTP/1.1相同,也是一個請求/應(yīng)答協(xié)議。需要注意的是,SIP并不是HTTP的擴展。SIP消息可以是客戶端發(fā)給服務(wù)器的請求或服務(wù)器對客戶端的響應(yīng)。SIP客戶端是指產(chǎn)生請求的SIP實體,而SIP服務(wù)器是指接收請求和返回應(yīng)答的SIP實體,按照這個定義,當兩個用戶代理交換SIP消息的時候,發(fā)送請求的用戶代理就是用戶代理客戶端(UAC),而返回應(yīng)答的用戶代理就是用戶代理服務(wù)器 (UAS)。一個SIP請求連同它所出發(fā)的所有應(yīng)答稱為一個SIP事務(wù)。

    SIP消息分為兩種:從客戶端到服務(wù)器的請求;從服務(wù)器返回網(wǎng)絡(luò)客戶端的響應(yīng)。SIP請求和響應(yīng)消息都使用RFC2822規(guī)定的通用消息格式,包括開始行、一個或多個消息頭、一個空行(CRLF,表示消息頭結(jié)束)以及一個可選消息體。

    SIP消息=開始行

    *消息頭

    空行(CRLF)

    [消息體]

    開始行=請求行|狀態(tài)行

    消 息 頭=(通 用 頭 (general-header)|請 求 頭 (requestheader)|響應(yīng)頭(response-header)|實體頭(entity-header))

    SIP協(xié)議中的請求消息提供了6種方法,見表1。

    表1 SIP請求消息

    SIP的響應(yīng)消息和請求消息結(jié)構(gòu)類似,但格式中第一行由狀態(tài)碼構(gòu)成,代表服務(wù)器不同的響應(yīng)狀態(tài)。RFC3261中使用nXX(n從1到6)的格式對狀態(tài)碼進行定義,n用來表示不同的響應(yīng)類型,XX用來對響應(yīng)類型進行進一步的描述。響應(yīng)消息中的相關(guān)應(yīng)答碼及其含義見表2。

    SIP的協(xié)議結(jié)構(gòu)如圖1所示。SIP是一個分層的協(xié)議,由多個處理層次組成。協(xié)議分成不同層次來描述是為了能夠更清晰地表達。

    最底層的是語法和編碼層。編碼方式是采用擴展的Backus-Naur Form Grammar(BNF 范式)。

    第二層是傳輸層。它定義了一個客戶端如何發(fā)送請求和接收應(yīng)答以及一個服務(wù)器如何接收請求和發(fā)送應(yīng)答。所有的SIP要素都包含一個通信層。

    表2 SIP響應(yīng)消息

    第3層是事務(wù)層。事務(wù)是SIP的基本組成部分。一個事務(wù)是客戶發(fā)送一個請求事務(wù)(通過通信層)到一個服務(wù)器事務(wù),連同服務(wù)器事務(wù)的所有該請求的應(yīng)答發(fā)送回客戶端事務(wù)。事務(wù)層處理應(yīng)用服務(wù)層的重發(fā),匹配請求的應(yīng)答以及應(yīng)用服務(wù)層的超時。任何一個用戶代理客戶端完成的事情都是由一組事務(wù)構(gòu)成的。用戶代理包含一個事務(wù)層來實現(xiàn)有狀態(tài)的代理服務(wù)器。無狀態(tài)的代理服務(wù)器并不包含事務(wù)層。事務(wù)層包含一個客戶元素(可以認為是一個客戶事務(wù))和一個服務(wù)器元素(可以認為是一個服務(wù)器事務(wù)),它們都可以用一個有限狀態(tài)機來處理特定的請求。

    在事務(wù)層之上是事務(wù)用戶(TU)。每一個SIP實體,除了無狀態(tài)代理,都是一個事務(wù)用戶。當一個TU發(fā)出一個請求,它首先創(chuàng)建一個客戶事務(wù)實例 (client transaction instance)并且和請求一起發(fā)送,這包括了目標IP地址、端口號以及發(fā)送請求的設(shè)備。TU可以創(chuàng)建客戶事務(wù),也可以取消客戶事務(wù)。當客戶取消一個事務(wù),它請求服務(wù)器終止正在處理的事務(wù),并且回滾狀態(tài)到該事務(wù)開始前的狀態(tài),并且產(chǎn)生指定的該事務(wù)的錯誤報告。這是由cancel請求完成的,這個請求有自己的事務(wù),并且包含一個被取消的事務(wù)[3]。

    在本文中,設(shè)計了一個穩(wěn)定、高效的SIP協(xié)議棧,其實現(xiàn)方式主要通過提供SIP操作所需的基本數(shù)據(jù)結(jié)構(gòu)和應(yīng)用程序編程接口(API),包括用于表示SIP中的各類對象(如SIP消息、SDP消息體以及各種頭域、計時器等)的數(shù)據(jù)結(jié)構(gòu)以及對消息、消息體進行解析的API和實現(xiàn)4類有限狀態(tài)機的API。為驗證信令協(xié)議棧的可靠性和SIP軟終端的通信功能,本文對局域網(wǎng)內(nèi)SIP軟終端的信令流程進行測試,采用Wireshark軟件抓取分組,并分析所捕獲數(shù)據(jù)分組的內(nèi)容,結(jié)果表明本文提出的SIP協(xié)議棧是有效的。

    2 提出的SIP協(xié)議棧

    oSIP是按照RFC3261和RFC2327標準,使用ANSIC編寫的開源協(xié)議棧。它結(jié)構(gòu)簡單小巧,支持線程安全,可用于多線程及單線程的編程模式,eXosip是oSIP的一個擴展協(xié)議集,它在oSIP基礎(chǔ)上對SIP消息的API做了較高級的封裝。eXosip可方便地創(chuàng)建一個完整的SIP程序,適用于SIP終端開發(fā)。

    鑒于上述特性,本終端的SIP協(xié)議棧在oSIP/eXosip協(xié)議?;A(chǔ)上,通過引入有限狀態(tài)機進行修改和二次開發(fā)來實現(xiàn),包括4大模塊:狀態(tài)機模塊、解析器模塊、工具模塊和上層封裝接口層。其模塊結(jié)構(gòu)如圖2所示。

    解析器模塊主要完成對SIP消息的語法解析,SIP中以事務(wù)為單位來描述各種請求和響應(yīng)的交互過程。狀態(tài)機模塊的功能就是完成UAS或UAC對接收到的某個事務(wù)的響應(yīng),完成對該事務(wù)(注冊過程、呼叫過程等)的狀態(tài)記錄,并在特定狀態(tài)下觸發(fā)相應(yīng)的事件或回調(diào)函數(shù)。工具模塊主要是提供一些進行SDP協(xié)商和對話管理的API。上層封裝接口層根據(jù)MVC模式中的Model層的調(diào)用方式,提供了面向Model層簡便易用的操作協(xié)議棧接口。

    2.1 狀態(tài)機

    2.1.1 事務(wù)

    事務(wù)是SIP最基本的元素,事務(wù)是指SIP客戶端向SIP服務(wù)器發(fā)起的一次請求以及針對此次請求產(chǎn)生的所有應(yīng)答的處理過程。

    事務(wù)分為客戶事務(wù)和服務(wù)器事務(wù)兩大類??蛻羰聞?wù)是指發(fā)起請求一端(即客戶端)的處理過程,服務(wù)器事務(wù)是指接收請求一端(即服務(wù)器端)的處理過程。事務(wù)還可以根據(jù)發(fā)起事務(wù)的請求是否為invite分為invite事務(wù)和non-invite事務(wù)。因此,事務(wù)可以分為4類:invite客戶事務(wù)、non-invite客戶事務(wù)、invite服務(wù)器事務(wù)和non-invite服務(wù)器事務(wù)。

    結(jié)構(gòu)體transaction_t主要用于管理事務(wù),同時在這個結(jié)構(gòu)中記錄事務(wù)的相關(guān)信息。協(xié)議棧在開始一個對話時(如創(chuàng)建一個invite transaction來發(fā)送invite請求)分配該數(shù)據(jù)結(jié)構(gòu)。在transaction_t的數(shù)據(jù)結(jié)構(gòu)中,transactionid是事務(wù)處理鏈表中每個個體的唯一標識,transactionff是一個FIFO結(jié)構(gòu),用以標識此事務(wù)處理的事件,事務(wù)的狀態(tài)則由state來說明。

    2.1.2 有限狀態(tài)機

    SIP UA的核心就是事務(wù)處理,UA中事務(wù)的處理可以用有限狀態(tài)機來表示。

    一個事務(wù)和一個狀態(tài)機有關(guān)。每一時刻狀態(tài)機(發(fā)送方或接收方)總處于一個特定的狀態(tài),其狀態(tài)是由所有變量值組成的,包括計數(shù)器在內(nèi),其執(zhí)行于事務(wù)層。每個狀態(tài)機都有一個初始狀態(tài),當有消息到來時,判斷是哪種狀態(tài)機的事件,根據(jù)消息的類型和狀態(tài)機的狀態(tài),在狀態(tài)機的鏈表中查找需要執(zhí)行的操作函數(shù)的地址進行處理,并設(shè)置事件完成后的狀態(tài)。狀態(tài)機使用鏈表結(jié)構(gòu)而不是單一對象,是為了在多事務(wù)同時處理環(huán)境下的應(yīng)用(SIP服務(wù)器以及支持多方會議的SIP電話)。

    事務(wù)有4大類,因此對事務(wù)的處理就由4種有限狀態(tài)機來表示,分別為ICT(請求客戶端事務(wù)的狀態(tài))、IST(請求服務(wù)器端事務(wù)的狀態(tài))、NICT(非請求客戶端事務(wù)的狀態(tài))和NIST(非請求服務(wù)器端事務(wù)的狀態(tài))。其執(zhí)行函數(shù)分別為 osip_ict_execute (manager→config)、 osip_nist_execute(manager→config)、osip_ist_execute(manager→config)、osip_nist_execute(manager→config)。

    2.1.3 事件

    狀態(tài)機內(nèi)部的狀態(tài)跳轉(zhuǎn)是由事件觸發(fā)的。事件是應(yīng)用程序與狀態(tài)機通信的手段。所有的從網(wǎng)絡(luò)上收取的數(shù)據(jù)分組都視為狀態(tài)機的事件,這些事件將被存儲在狀態(tài)機結(jié)構(gòu)相關(guān)的事件隊列里。

    一個事件主要包含事件類型和關(guān)聯(lián)的事務(wù)兩部分內(nèi)容,事件類型指導致狀態(tài)機狀態(tài)跳轉(zhuǎn)的各類事件的具體類型,如超時事件、收到invite請求等??梢哉f,外界與SIP模塊通信的載體是SIP消息和程序指令;在SIP模塊內(nèi),協(xié)議棧外圍程序與內(nèi)核狀態(tài)機通信的載體則是事件。

    在有限狀態(tài)機中有3種事件:發(fā)送SIP消息(請求和應(yīng)答)、接收SIP消息(請求和應(yīng)答)、計時器事件(重傳和上下文刪除或結(jié)束)。

    事件的結(jié)構(gòu)定義如下:

    struct sipevent_t

    {

    type_t type; //事件的類型

    int transactionid; //關(guān)聯(lián)的事務(wù)的標識號

    sip_t*sip; //SIP消息結(jié)構(gòu)

    };

    2.1.4 回調(diào)函數(shù)

    在SIP協(xié)議棧中,對各類事件的響應(yīng)都是以回調(diào)函數(shù)的方式實現(xiàn)的。回調(diào)函數(shù)本身是函數(shù)指針的形式,它在狀態(tài)機內(nèi)部狀態(tài)跳轉(zhuǎn)時被事務(wù)處理函數(shù)調(diào)用,事務(wù)處理函數(shù)的其余部分完成對該事件的默認響應(yīng)行為。所以說回調(diào)函數(shù)是SIP協(xié)議棧留給外界的用戶接口,用戶需要定義自己UA相關(guān)的處理內(nèi)容。

    本協(xié)議棧定義了osip_t對象作為所有回調(diào)函數(shù)的管理對象,外圍UA應(yīng)用程序必須通過該對象實現(xiàn)對協(xié)議?;卣{(diào)函數(shù)的使用。osip_t除了管理所有的回調(diào)函數(shù),也包含了4個狀態(tài)機事務(wù)對象的相關(guān)信息。在使用協(xié)議棧前必須調(diào)用函數(shù)osip_init()分配該結(jié)構(gòu)并進行初始化。在系統(tǒng)運行期間,該結(jié)構(gòu)存儲的內(nèi)容是動態(tài)變化的,而這些變化主要是基于事務(wù)的建立或結(jié)束。

    2.2 解析器模塊

    解析器模塊可以分為3個部分:URI解析器、SIP解析器和SDP解析器。它主要實現(xiàn)將收到的SIP消息從文本解析成一個SIP消息結(jié)構(gòu)體(sip_t),處理完畢后將待發(fā)送的sip_t結(jié)構(gòu)還原成SIP文本消息然后發(fā)送的功能。在使用語法解析器之前必須先對它進行初始化:int parser_init()。

    sip_t中存儲著發(fā)送或接收到的SIP消息的詳細結(jié)構(gòu),包含SIP協(xié)議定義的各個頭域以及SIP消息體,而這些解析后的頭域本身也是一些結(jié)構(gòu)體,解析器在解析整個消息的同時也將消息中的頭域分別解析成對應(yīng)的結(jié)構(gòu)。解析的作用在于方便應(yīng)用程序內(nèi)部對消息及各個頭域進行操作。下面給出sip_t結(jié)構(gòu)的部分內(nèi)容:

    struct sip_t

    {

    startline_t*strtline;

    from_t*from;

    to_t*to;

    call_id_t*call_id;

    list_t*contacts;

    content_type_t*content_type;

    ......

    }

    sip_t的數(shù)據(jù)結(jié)構(gòu)定義分3部分。第一部分是起始行,其結(jié)構(gòu)單獨定義為startline_t,當此消息是SIP請求時,其為請求的方法和請求源的URI;當此消息是SIP應(yīng)答時,它為應(yīng)答狀態(tài)碼。第二部分是一些SIP消息頭域的結(jié)構(gòu)列表,這是由于頭域的個數(shù)是可變的原因,故采用列表來存放。最后一部分是一些其他頭域字段、消息體(list_t*bodies)以及對消息的描述字段。

    sip_t中的一些成員(不包括char*message)為null時表示該SIP消息不含該字段。協(xié)議棧在要發(fā)送SIP消息或接收到SIP消息時創(chuàng)建sip_t,并填寫好相應(yīng)的信息,發(fā)送完后或處理完之后釋放該結(jié)構(gòu)。

    sip_t結(jié)構(gòu)中各個變量的值是從界面的用戶輸入或系統(tǒng)配置中讀取的,然后通過函數(shù)將讀取的值存放到sip_t結(jié)構(gòu)中。如int msg_setbody(sip_t*sip,char*buf)就是設(shè)定sip_t結(jié)構(gòu)中body的值。相應(yīng)地,也可以從結(jié)構(gòu)中根據(jù)名字獲取各個參數(shù),實現(xiàn)函數(shù)的名稱類似對應(yīng)的函數(shù)中的set改為 get,如 int msg_getbody(sip_t*sip,char*buf)就是獲得body的值。

    對于消息結(jié)構(gòu)體sip_t的操作包括以下5種操作。

    (1)初始化結(jié)構(gòu)體

    利用msg_init函數(shù)對結(jié)構(gòu)體進行初始化,目的是為結(jié)構(gòu)體分配存儲空間。

    (2)釋放結(jié)構(gòu)體

    利用msg_free函數(shù)釋放初始化時分配給結(jié)構(gòu)體的存儲空間。

    (3)將結(jié)構(gòu)體變成字符串的形式

    利用msg_2char函數(shù)將結(jié)構(gòu)體轉(zhuǎn)化為符合SIP消息規(guī)范的字符串的形式。

    (4)將消息的字符串格式轉(zhuǎn)化為結(jié)構(gòu)體的存儲形式

    利用msg_parse函數(shù)分析消息的字符串,將相應(yīng)的字符存儲到結(jié)構(gòu)體實例的相應(yīng)字段中。

    (5)拷貝結(jié)構(gòu)體

    利用msg_clone函數(shù)創(chuàng)建結(jié)構(gòu)體實例的副本。

    2.2.1 SIP消息的解析

    SIP消息的解析流程如圖3所示。

    (1)解析起始行

    對起始行的分析首先是判斷第一個參數(shù),如果是sipversion(字符是SIP/2.0),則該消息是響應(yīng)消息,這時從起始行中獲得狀態(tài)碼和原因短語,并將結(jié)構(gòu)體中的成員sipmethod 和 rquri設(shè)為 null;如果是 sipmehtod(invite、Ack、bye、register、cancel、options共 6 種方法),則該消息是請求消息,這時從起始行中獲得請求方法、請求URI和版本號,并將statuscode和reasonphrase設(shè)為 null。

    (2)解析 SIP 頭域

    頭域采用通用格式,其結(jié)構(gòu)體定義如下:

    typedef struct_header_t{

    char*hname;

    char*hvalue;

    }header_t;

    字段的值可以有多個參數(shù),參數(shù)之間用分號";"來分隔。對頭域的分析可有以下兩種情況:

    ·對于僅僅為單個參數(shù)的成員,根據(jù)頭域字段的名字調(diào)用相應(yīng)字段的分析函數(shù),分析字符串來獲得該頭域字段的值;

    ·對于可以有多個參數(shù)的成員,由于是采用鏈表的形式存儲,直接將字段名字和字段的值相分離,根據(jù)字段名字的屬性將字段的值賦給相應(yīng)的成員。

    (2)解析 SIP 消息體

    根據(jù)content type(編碼類型)和 content length(編碼長度)兩個標題頭的值來判斷消息體部分是否有值,這兩個標題頭的參數(shù)表明消息體中是否存在消息體,如果有,則把這些數(shù)據(jù)拷貝到消息體的結(jié)構(gòu)體中。

    2.2.2 SIP消息的構(gòu)造

    相對于SIP消息的解析過程,SIP消息的構(gòu)造也是通過調(diào)用解析器模塊的相關(guān)函數(shù)和工具模塊的相關(guān)函數(shù)來完成的。

    當SIP服務(wù)器想發(fā)送一個消息時,通知解析器模塊開始操作。首先對起始行、頭域等結(jié)構(gòu)體進行初始化;隨后調(diào)用各個功能函數(shù)對SIP消息結(jié)構(gòu)體中的各項內(nèi)容分別進行添加和設(shè)定;然后調(diào)用sipmsg_2char函數(shù)將SIP消息結(jié)構(gòu)體中的信息轉(zhuǎn)化為可以發(fā)送的字符串,調(diào)用sipmsg_clone函數(shù)為sipmsg_t結(jié)構(gòu)創(chuàng)建副本 (以備重發(fā));最后對各結(jié)構(gòu)體的信息進行釋放。

    2.3 工具模塊

    工具模塊提供了比較完善的SDP協(xié)商機制,包括SDP結(jié)構(gòu)體的定義、各類SDP字段的添加設(shè)置以及根據(jù)預(yù)定義的本地SDP環(huán)境產(chǎn)生針對某個SDP結(jié)構(gòu)體的應(yīng)答。SDP協(xié)商指主被叫用戶交換關(guān)于呼叫的一些相關(guān)媒體信息(如媒體編解碼方式、媒體流傳輸所用的端口號等)的行為。SDP協(xié)商主要采用offer/answer的模式,而協(xié)議棧中的SDP協(xié)商工具(SDP negotiator)主要提供了一種從SDP offer去構(gòu)建SDP answer的方法,如通過分析invite請求消息中消息體SDP部分的媒體參數(shù)描述去構(gòu)造對于invite請求的響應(yīng)消息200OK中的SDP消息體部分。

    此外,工具模塊還提供了基本的對話(dialog)處理機制。對話就是指持續(xù)一段時間的兩個UA之間對等的一種SIP會話關(guān)系。對話可以幫助管理UA的消息排序和UA之間正確的路由。在dialog中,可以動態(tài)地創(chuàng)建新的事務(wù)來開始端點之間的SIP通信過程。在UA中,對話用dialog ID標識。一個dialog ID由SIP消息中的Call-ID、一個本地tag(local tag)和一個遠程 tag(remote tag)組成。在同一個對話中,UA的本地tag就是對等 UA的遠程tag,反之,遠程tag就是對等UA的本地tag?;镜膁ialog處理機制包括dialog結(jié)構(gòu)體的定義、按照兩種方式建立的dialog(被叫方callee和主叫方caller)、對話的更新維護、對話的拆除。本協(xié)議棧中的對話管理工具主要用來創(chuàng)建dialog并對dialog信息進行管理。

    2.4 上層封裝接口層

    eXosip封裝了大部分的SIP協(xié)議調(diào)用接口,一般的應(yīng)用都不需要直接調(diào)用oSIP的接口函數(shù)。上層封裝接口層在其基礎(chǔ)上進一步封裝,供上層Model層調(diào)用,使用幾行代碼就可以實現(xiàn)一個具有音視頻功能的呼叫。下面對其處理呼叫的關(guān)鍵接口進行定義。

    (1)OWPL_RESULT owplLineAdd (const char *displayname,constchar* sipUsername,constchar*sipServer,const char*sipProxy,OWPL_TRANSPORT_PROTOCOL sipTransport,int regTimeout,OWPL_LINE*phLine)

    方法功能描述:添加一條虛擬線路,即向服務(wù)器注冊。

    參數(shù)說明:displayname:SIP實體要顯示的名字,對應(yīng)于“displayname”;sipUsername 和sipServer對應(yīng)于上述格式;sipProxy是代理服務(wù)器地址;sipTransport為傳輸層協(xié)議;regTimeout為注冊超時時間;phLine指向新建立的虛擬線路。

    (2)OWPL_RESULT owplLineDelete(OWPL_LINE hLine,unsigned int skipUnregister)

    方法功能描述:刪除一條虛擬線路。

    參數(shù)說明:hLine代表要刪除的虛擬線路;skipUnregister值為1時表示在刪除虛擬線路時跳過注銷,為0時強制刪除虛擬線路,無需注銷。

    (3)OWPL_RESULT owplLineRegister(const OWPL_LINE hLine,const int bRegister)

    方法功能描述:注冊一條虛擬線路。

    參數(shù)說明:hLine代表要注冊的虛擬線路;bRegister值為1時注冊該虛擬線路,為0時注銷該虛擬線路。

    (4)OWPL_RESULT owplCallCreate(const OWPL_LINE hLine,OWPL_CALL*hCall)

    方法功能描述:建立一個呼叫對象。

    參數(shù)說明:hLine代表要建立呼叫對象的虛擬線路;hCall指向建立好的呼叫對象。

    (5)OWPL_RESULT owplCallConnect(const OWPL_CALL hCall,const char*szAddress,int mediaStreams)

    方法功能描述:呼叫連接。

    參數(shù)說明:hCall代表要進行連接的呼叫對象;szAddress呼叫對端的SIP地址;mediaStreams表示媒體流種類。

    (6)OWPL_RESULT owplCallAccept(constOWPL_CALL hCall,int mediaStreams)

    方法功能描述:接收一個呼叫。

    參數(shù)說明:hCall代表要接收的呼叫對象;mediaStreams表示媒體流種類。

    (7)OWPL_RESULT owplCallAnswer(const OWPL_CALL hCall,int mediaStreams)

    方法功能描述:對到來的一個呼叫應(yīng)答。

    參數(shù)說明:hCall代表要應(yīng)答的呼叫對象;mediaStreams表示媒體流種類。

    (8)OWPL_RESULT owplCallReject(const OWPL_CALL hCall,const int errorCode,const char*szErrorText)

    方法功能描述:拒絕到來的一個呼叫。

    參數(shù)說明:hCall代表要拒絕的呼叫對象;errorCode指SIP消息的錯誤碼;szErrorText是對應(yīng)錯誤碼的文本信息。

    (9)OWPL_RESULT owplCallHold(const OWPL_CALL hCall)

    方法功能描述:掛起一個呼叫。

    參數(shù)說明:hCall代表要掛起的呼叫對象。

    (10)OWPL_RESULT owplCallUnhold(constOWPL_CALL hCall)

    方法功能描述:恢復一個呼叫。

    參數(shù)說明:hCall代表要恢復的呼叫對象。

    (11)OWPL_RESULT owplCallDisconnect(OWPL_CALL hCall)

    方法功能描述:結(jié)束一個呼叫。

    參數(shù)說明:hCall代表要結(jié)束的呼叫對象。

    3 仿真實驗

    為驗證信令協(xié)議棧的設(shè)計實現(xiàn)的可靠性和SIP軟終端的通信功能,本文對局域網(wǎng)內(nèi)SIP軟終端的信令流程進行測試,采用Wireshark軟件抓取分組,并分析所捕獲數(shù)據(jù)分組的內(nèi)容。實驗的目的是為了驗證提出的協(xié)議棧的有效性,對其中呼叫建立的基本交互流程不做詳細說明,且由于版面的限制,有關(guān)SIP協(xié)議交互流程的更多交互信息見參考文獻[3]。

    3.1 實驗建立

    如圖4所示,測試環(huán)境包括分別部署在兩臺PC(IP地址分別為***.***.156.225和***.***.158.730)上的兩個SIP軟終端以及一臺IP地址為***.***.158.230的SIP服務(wù)器。

    3.2 注冊功能

    注冊功能測試用例見表3。

    表3 注冊功能測試用例

    3.3 通話功能

    通話功能測試用例見表4。

    表4 通話功能測試用例

    圖5展示了本SIP軟終端通話功能的實際效果。大的視頻窗口顯示對方的影像,右下角的視頻窗口顯示本地攝像頭采集的影像。

    3.4 呼叫建立時間

    呼叫建立時間測試用例見表5。

    3.5 長時通話

    長時通話測試用例見表6。

    表5 呼叫建立時間測試用例

    表6 長時通話測試用例

    由表3~表6及圖5,驗證了本文所設(shè)計的軟終端能夠使用SIP信令建立連接,可以完成實時視音頻通信功能,并且具備一定的可靠性,表明本文提出的SIP協(xié)議棧的設(shè)計思路和實現(xiàn)方法是合理的、切實可行的。

    4 結(jié)束語

    IMS網(wǎng)絡(luò)使用SIP呼叫控制機制來創(chuàng)建、管理和終結(jié)各種類型的多媒體業(yè)務(wù)。各種類型的客戶端通過SIP都可以建立起端到端的通信,并可獲得所需要的服務(wù)質(zhì)量。本文提出了一種新的SIP協(xié)議棧,并依照該協(xié)議棧實現(xiàn)了SIP軟終端,具備基于SIP的視頻和音頻通話功能。經(jīng)過驗證,該軟終端具有良好的穩(wěn)定性和實用性,能較好地運行于IMS網(wǎng)絡(luò)環(huán)境下,實現(xiàn)雙方通信。

    1 王尚廣,孫其博,楊放春.IMS網(wǎng)絡(luò)中的SIP洪泛攻擊檢測.軟件學報,2011,22(4):761~772

    2 胡成喆.一種基于MVC架構(gòu)的SIP軟終端的設(shè)計與實現(xiàn).北京郵電大學碩士學位論文,2010

    3 孫建勇.基于SIP協(xié)議的軟終端的研究與實現(xiàn).北京郵電大學碩士學位論文,2004

    4 鄧挺,李小兵.SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用.安防科技,2007(8)

    5 Gonzalo Camarillo著.白建軍,彭暉,田敏等譯.SIP揭密.北京:人民郵電出版社,2003

    6 趙慧玲,葉華.以軟交換為核心的下一代網(wǎng)絡(luò)技術(shù).北京:人民郵電出版社,2002

    7 Session Initiation Protocol RFC3261.IETF Network Working Group,2002

    猜你喜歡
    狀態(tài)機事務(wù)消息
    “事物”與“事務(wù)”
    基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計與實現(xiàn)
    河湖事務(wù)
    一張圖看5G消息
    基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
    消息
    消息
    消息
    SQLServer自治事務(wù)實現(xiàn)方案探析
    FPGA設(shè)計中狀態(tài)機安全性研究
    黑龍江科學(2011年2期)2011-03-14 00:39:36
    亚洲成人久久性| 深爱激情五月婷婷| 国产精品香港三级国产av潘金莲| 三级国产精品欧美在线观看| 国产高清视频在线播放一区| 两个人的视频大全免费| 日韩精品中文字幕看吧| 韩国av一区二区三区四区| 国产伦一二天堂av在线观看| 亚洲中文日韩欧美视频| 欧美精品啪啪一区二区三区| av在线蜜桃| 在线观看66精品国产| 麻豆久久精品国产亚洲av| 欧美又色又爽又黄视频| 在线视频色国产色| 欧美bdsm另类| 黄片小视频在线播放| 亚洲专区中文字幕在线| 亚洲av五月六月丁香网| 999久久久精品免费观看国产| 日韩欧美 国产精品| 亚洲乱码一区二区免费版| 热99在线观看视频| 国产黄a三级三级三级人| 国产一区二区三区在线臀色熟女| 丝袜美腿在线中文| 十八禁人妻一区二区| 亚洲精品国产精品久久久不卡| 黄片小视频在线播放| 国产蜜桃级精品一区二区三区| 美女高潮喷水抽搐中文字幕| 综合色av麻豆| 午夜亚洲福利在线播放| 成人特级av手机在线观看| 男女之事视频高清在线观看| 午夜精品在线福利| 免费在线观看亚洲国产| 国产成人啪精品午夜网站| 真人做人爱边吃奶动态| 国产精品99久久久久久久久| 天天一区二区日本电影三级| 成年女人看的毛片在线观看| 婷婷精品国产亚洲av在线| 最新中文字幕久久久久| 欧美一区二区国产精品久久精品| 99国产精品一区二区蜜桃av| 亚洲人与动物交配视频| 欧美另类亚洲清纯唯美| 一区二区三区国产精品乱码| av天堂中文字幕网| 99国产极品粉嫩在线观看| 久久婷婷人人爽人人干人人爱| 亚洲精品粉嫩美女一区| 免费搜索国产男女视频| 18禁黄网站禁片午夜丰满| svipshipincom国产片| 欧美乱码精品一区二区三区| 少妇高潮的动态图| 12—13女人毛片做爰片一| 国产真人三级小视频在线观看| 久久久久久久久久黄片| 舔av片在线| 日韩高清综合在线| 美女高潮的动态| 校园春色视频在线观看| 免费人成在线观看视频色| 国产精品国产高清国产av| 免费在线观看影片大全网站| 国产av在哪里看| 搡女人真爽免费视频火全软件 | 搡老妇女老女人老熟妇| 国产成人啪精品午夜网站| 免费观看人在逋| 人人妻,人人澡人人爽秒播| 久久亚洲精品不卡| 国产三级中文精品| 啦啦啦免费观看视频1| 在线观看av片永久免费下载| 两性午夜刺激爽爽歪歪视频在线观看| 亚洲成人久久性| 亚洲美女视频黄频| 亚洲av一区综合| 给我免费播放毛片高清在线观看| 狂野欧美激情性xxxx| 成人欧美大片| 又紧又爽又黄一区二区| 亚洲成人精品中文字幕电影| 欧美黄色片欧美黄色片| 亚洲av熟女| 在线免费观看不下载黄p国产 | 久久久久久人人人人人| 亚洲精品日韩av片在线观看 | 免费人成视频x8x8入口观看| 亚洲五月婷婷丁香| 很黄的视频免费| 尤物成人国产欧美一区二区三区| 国产亚洲精品一区二区www| 小说图片视频综合网站| 国产午夜精品久久久久久一区二区三区 | 国产爱豆传媒在线观看| eeuss影院久久| 亚洲内射少妇av| 中亚洲国语对白在线视频| 99在线视频只有这里精品首页| 国产精品久久久久久久久免 | 亚洲成av人片免费观看| 精品日产1卡2卡| 真人做人爱边吃奶动态| 午夜两性在线视频| 日韩欧美精品v在线| 亚洲激情在线av| 九九热线精品视视频播放| 国产成人aa在线观看| 尤物成人国产欧美一区二区三区| 久久久久免费精品人妻一区二区| 国产99白浆流出| 色噜噜av男人的天堂激情| 久久精品综合一区二区三区| 色播亚洲综合网| 成人18禁在线播放| 一级a爱片免费观看的视频| 成人精品一区二区免费| 99国产精品一区二区三区| 国产一级毛片七仙女欲春2| 久久久成人免费电影| 日韩av在线大香蕉| e午夜精品久久久久久久| 99久久精品一区二区三区| 国产精品亚洲一级av第二区| av中文乱码字幕在线| 久久香蕉国产精品| 久久午夜亚洲精品久久| 成熟少妇高潮喷水视频| 欧美日韩国产亚洲二区| 波野结衣二区三区在线 | 啦啦啦韩国在线观看视频| 一区二区三区国产精品乱码| 老汉色∧v一级毛片| 五月伊人婷婷丁香| 99在线人妻在线中文字幕| 国产亚洲精品久久久com| 精品久久久久久成人av| 精品久久久久久久久久免费视频| 国内精品一区二区在线观看| 亚洲国产精品sss在线观看| 国产精品爽爽va在线观看网站| 毛片女人毛片| 国产高清videossex| 免费看a级黄色片| 欧美日韩中文字幕国产精品一区二区三区| 成年人黄色毛片网站| 久久久久久久亚洲中文字幕 | 国产99白浆流出| 亚洲精品美女久久久久99蜜臀| 精品欧美国产一区二区三| 亚洲在线观看片| 亚洲一区二区三区色噜噜| 久久99热这里只有精品18| 嫩草影院入口| 色综合欧美亚洲国产小说| 99久久99久久久精品蜜桃| 国产三级中文精品| 哪里可以看免费的av片| 国产亚洲精品久久久com| 精品久久久久久久久久免费视频| 亚洲国产高清在线一区二区三| 欧美黄色片欧美黄色片| 桃红色精品国产亚洲av| 天堂影院成人在线观看| 国产视频一区二区在线看| 亚洲美女视频黄频| 男女之事视频高清在线观看| 老司机午夜福利在线观看视频| 两性午夜刺激爽爽歪歪视频在线观看| 3wmmmm亚洲av在线观看| 亚洲七黄色美女视频| 人妻久久中文字幕网| 又黄又粗又硬又大视频| 亚洲精品日韩av片在线观看 | 国产综合懂色| 亚洲中文字幕日韩| 久久中文看片网| 最近在线观看免费完整版| 国产 一区 欧美 日韩| 精品国产超薄肉色丝袜足j| 免费电影在线观看免费观看| 国模一区二区三区四区视频| 老司机福利观看| 少妇熟女aⅴ在线视频| 五月伊人婷婷丁香| av在线天堂中文字幕| 亚洲五月婷婷丁香| 久久伊人香网站| 欧美日韩综合久久久久久 | 国产成人a区在线观看| 麻豆久久精品国产亚洲av| 亚洲无线在线观看| 99久久精品国产亚洲精品| 又黄又粗又硬又大视频| 少妇人妻一区二区三区视频| 国产精品精品国产色婷婷| www国产在线视频色| 亚洲最大成人中文| 色噜噜av男人的天堂激情| 俺也久久电影网| 日日夜夜操网爽| 国产乱人视频| 免费观看人在逋| 精品午夜福利视频在线观看一区| 一个人看的www免费观看视频| 久久亚洲精品不卡| 国产亚洲av嫩草精品影院| 99热精品在线国产| 亚洲av成人不卡在线观看播放网| 国产一区二区亚洲精品在线观看| bbb黄色大片| 午夜免费男女啪啪视频观看 | 老鸭窝网址在线观看| 国内久久婷婷六月综合欲色啪| 999久久久精品免费观看国产| 国产一区二区在线av高清观看| 18禁黄网站禁片午夜丰满| 国产午夜精品论理片| 嫩草影视91久久| 国产亚洲欧美在线一区二区| 俺也久久电影网| 脱女人内裤的视频| av天堂在线播放| 国产精品日韩av在线免费观看| 在线看三级毛片| 国产成+人综合+亚洲专区| 3wmmmm亚洲av在线观看| 一区二区三区免费毛片| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 国产综合懂色| 精品国产亚洲在线| 国产精品免费一区二区三区在线| 亚洲电影在线观看av| 男女午夜视频在线观看| 狠狠狠狠99中文字幕| svipshipincom国产片| 日本黄大片高清| 国产一区二区亚洲精品在线观看| 亚洲一区高清亚洲精品| 岛国在线观看网站| 色综合亚洲欧美另类图片| 午夜精品在线福利| 免费一级毛片在线播放高清视频| 国产一级毛片七仙女欲春2| 久久久久久大精品| 老司机午夜十八禁免费视频| 国产成+人综合+亚洲专区| 久久99热这里只有精品18| 日本一二三区视频观看| 国产色婷婷99| 免费在线观看影片大全网站| 亚洲无线在线观看| 久久精品国产99精品国产亚洲性色| 欧美乱色亚洲激情| 国产真人三级小视频在线观看| 在线观看午夜福利视频| 欧美最黄视频在线播放免费| 国产男靠女视频免费网站| 成人午夜高清在线视频| 午夜免费观看网址| 久久精品国产清高在天天线| 久久6这里有精品| 精品日产1卡2卡| 在线观看66精品国产| 他把我摸到了高潮在线观看| 最近最新免费中文字幕在线| 亚洲国产色片| 久久久久精品国产欧美久久久| www日本在线高清视频| 亚洲欧美日韩无卡精品| 18禁美女被吸乳视频| 黑人欧美特级aaaaaa片| 国产精品久久久久久精品电影| 欧美丝袜亚洲另类 | 看片在线看免费视频| 亚洲成人中文字幕在线播放| 一本久久中文字幕| 小蜜桃在线观看免费完整版高清| 男女午夜视频在线观看| 免费搜索国产男女视频| 制服人妻中文乱码| 国产老妇女一区| 日韩欧美一区二区三区在线观看| 中国美女看黄片| www国产在线视频色| 日本熟妇午夜| 又粗又爽又猛毛片免费看| 超碰av人人做人人爽久久 | 在线天堂最新版资源| 波多野结衣高清作品| 欧美色视频一区免费| 欧美最黄视频在线播放免费| 欧美又色又爽又黄视频| 午夜亚洲福利在线播放| 99热6这里只有精品| 99国产精品一区二区三区| 久久婷婷人人爽人人干人人爱| 午夜免费激情av| 国产精品电影一区二区三区| 欧美av亚洲av综合av国产av| 桃红色精品国产亚洲av| 99久久精品一区二区三区| 88av欧美| 丰满人妻熟妇乱又伦精品不卡| 精华霜和精华液先用哪个| 国内精品久久久久久久电影| av天堂在线播放| 国产成人aa在线观看| 三级国产精品欧美在线观看| 色精品久久人妻99蜜桃| 波野结衣二区三区在线 | 久久久久免费精品人妻一区二区| 精品久久久久久久毛片微露脸| 国产欧美日韩精品一区二区| 亚洲精品国产精品久久久不卡| 国产成人a区在线观看| 午夜免费观看网址| 九色国产91popny在线| 日韩欧美一区二区三区在线观看| 级片在线观看| 免费电影在线观看免费观看| 国产在线精品亚洲第一网站| 五月玫瑰六月丁香| 看免费av毛片| 亚洲国产欧美人成| 看片在线看免费视频| 99在线人妻在线中文字幕| 亚洲在线自拍视频| 五月玫瑰六月丁香| 欧美最黄视频在线播放免费| 国产一区二区亚洲精品在线观看| 在线国产一区二区在线| 亚洲av电影在线进入| a级一级毛片免费在线观看| 一二三四社区在线视频社区8| 亚洲人成网站高清观看| 99精品欧美一区二区三区四区| 中文在线观看免费www的网站| 亚洲成人中文字幕在线播放| 精品99又大又爽又粗少妇毛片 | 日本与韩国留学比较| 亚洲人成伊人成综合网2020| 中文字幕人妻熟人妻熟丝袜美 | 成人欧美大片| 免费电影在线观看免费观看| 国产视频内射| 999久久久精品免费观看国产| 黄色视频,在线免费观看| 国产aⅴ精品一区二区三区波| 伊人久久大香线蕉亚洲五| 母亲3免费完整高清在线观看| 一本精品99久久精品77| 国产视频一区二区在线看| 极品教师在线免费播放| 欧美另类亚洲清纯唯美| 国内精品美女久久久久久| 超碰av人人做人人爽久久 | 精品一区二区三区视频在线观看免费| 90打野战视频偷拍视频| 蜜桃久久精品国产亚洲av| 欧美一区二区精品小视频在线| 亚洲av一区综合| 一本精品99久久精品77| 亚洲精品亚洲一区二区| 日韩欧美免费精品| 国产高清三级在线| 久久久久久九九精品二区国产| 69人妻影院| 最新美女视频免费是黄的| 美女大奶头视频| 桃色一区二区三区在线观看| 亚洲国产精品999在线| 老司机午夜福利在线观看视频| 97人妻精品一区二区三区麻豆| 久久草成人影院| 美女大奶头视频| 精品日产1卡2卡| 午夜a级毛片| 国内久久婷婷六月综合欲色啪| 国产精品久久久久久精品电影| 中文字幕人妻熟人妻熟丝袜美 | 欧美另类亚洲清纯唯美| 亚洲中文字幕一区二区三区有码在线看| 亚洲av熟女| 国产精品电影一区二区三区| 欧美在线黄色| 中文字幕精品亚洲无线码一区| 日韩中文字幕欧美一区二区| 国产伦人伦偷精品视频| 欧美最黄视频在线播放免费| 久久久久久久久大av| 国产成人欧美在线观看| 精品电影一区二区在线| 性色avwww在线观看| 欧美精品啪啪一区二区三区| 欧美一区二区国产精品久久精品| 国产在视频线在精品| av国产免费在线观看| 成人av在线播放网站| 小说图片视频综合网站| а√天堂www在线а√下载| 一级毛片高清免费大全| 国产免费一级a男人的天堂| 亚洲精品影视一区二区三区av| 亚洲无线观看免费| 淫秽高清视频在线观看| 精品久久久久久久人妻蜜臀av| 床上黄色一级片| 午夜精品一区二区三区免费看| 国产91精品成人一区二区三区| 国产单亲对白刺激| 日韩人妻高清精品专区| 日韩高清综合在线| 亚洲人成网站在线播放欧美日韩| av女优亚洲男人天堂| 男人舔奶头视频| 国产视频内射| 成人三级黄色视频| 51国产日韩欧美| 国产一级毛片七仙女欲春2| 久久精品91无色码中文字幕| 欧美+日韩+精品| 少妇的逼好多水| 51午夜福利影视在线观看| 两人在一起打扑克的视频| 一区二区三区高清视频在线| 搡老妇女老女人老熟妇| 亚洲国产日韩欧美精品在线观看 | 在线观看免费午夜福利视频| 国产伦精品一区二区三区四那| 色吧在线观看| 高清在线国产一区| 国产一区在线观看成人免费| 成年免费大片在线观看| 国产男靠女视频免费网站| 久久久久性生活片| 又粗又爽又猛毛片免费看| 别揉我奶头~嗯~啊~动态视频| 日本黄色视频三级网站网址| 免费人成视频x8x8入口观看| 看片在线看免费视频| 宅男免费午夜| 欧美另类亚洲清纯唯美| 亚洲精品日韩av片在线观看 | 久久精品国产综合久久久| 有码 亚洲区| 亚洲欧美日韩高清在线视频| 99久久精品热视频| 老司机午夜福利在线观看视频| 亚洲精品在线观看二区| 亚洲人成电影免费在线| 成人特级黄色片久久久久久久| 国产精品久久视频播放| 激情在线观看视频在线高清| 观看美女的网站| 在线观看舔阴道视频| or卡值多少钱| 麻豆一二三区av精品| 成年女人永久免费观看视频| 国产精品 欧美亚洲| 亚洲精品一区av在线观看| 午夜福利视频1000在线观看| 国产精品1区2区在线观看.| 日本a在线网址| 国产成人a区在线观看| 他把我摸到了高潮在线观看| 国产精品久久电影中文字幕| 婷婷精品国产亚洲av在线| 午夜福利视频1000在线观看| 少妇高潮的动态图| 欧美成人性av电影在线观看| 亚洲无线观看免费| av在线天堂中文字幕| 中文字幕av在线有码专区| 天堂动漫精品| 国产又黄又爽又无遮挡在线| 久久亚洲精品不卡| 亚洲久久久久久中文字幕| 欧美激情久久久久久爽电影| 露出奶头的视频| 免费一级毛片在线播放高清视频| 床上黄色一级片| 国产精品电影一区二区三区| 日韩欧美三级三区| 国产 一区 欧美 日韩| 欧美午夜高清在线| 中文字幕人妻熟人妻熟丝袜美 | 亚洲精品456在线播放app | 精品一区二区三区av网在线观看| 一个人免费在线观看的高清视频| 国语自产精品视频在线第100页| 午夜精品久久久久久毛片777| 在线视频色国产色| 男女那种视频在线观看| 深爱激情五月婷婷| 一区二区三区激情视频| 热99re8久久精品国产| 午夜a级毛片| 日日夜夜操网爽| 两个人视频免费观看高清| 欧美日韩黄片免| 无人区码免费观看不卡| 人人妻,人人澡人人爽秒播| e午夜精品久久久久久久| 2021天堂中文幕一二区在线观| 亚洲成a人片在线一区二区| 国产三级在线视频| 国产69精品久久久久777片| 欧美av亚洲av综合av国产av| 久久草成人影院| 最新中文字幕久久久久| 欧洲精品卡2卡3卡4卡5卡区| 国产精品av视频在线免费观看| 丰满人妻熟妇乱又伦精品不卡| 岛国视频午夜一区免费看| 欧美乱码精品一区二区三区| a在线观看视频网站| 人人妻人人澡欧美一区二区| 最近最新中文字幕大全电影3| 黄色视频,在线免费观看| 99视频精品全部免费 在线| 很黄的视频免费| 一进一出好大好爽视频| 在线观看舔阴道视频| 99riav亚洲国产免费| 国产av在哪里看| 最新美女视频免费是黄的| 18禁在线播放成人免费| 精品国产超薄肉色丝袜足j| 久99久视频精品免费| 免费看a级黄色片| 久久精品国产99精品国产亚洲性色| 亚洲成人精品中文字幕电影| www国产在线视频色| 一a级毛片在线观看| www.熟女人妻精品国产| 在线免费观看的www视频| 亚洲av成人精品一区久久| 波多野结衣高清作品| 亚洲av中文字字幕乱码综合| 叶爱在线成人免费视频播放| 又黄又粗又硬又大视频| 给我免费播放毛片高清在线观看| 亚洲国产精品999在线| 免费在线观看日本一区| 色播亚洲综合网| 亚洲av成人不卡在线观看播放网| 噜噜噜噜噜久久久久久91| 激情在线观看视频在线高清| 黄色片一级片一级黄色片| 国产精品久久久人人做人人爽| 91在线观看av| 十八禁人妻一区二区| 国产精品影院久久| 男女那种视频在线观看| 91在线精品国自产拍蜜月 | 99久久综合精品五月天人人| 亚洲精品粉嫩美女一区| 亚洲专区国产一区二区| 最新在线观看一区二区三区| 88av欧美| 欧美不卡视频在线免费观看| x7x7x7水蜜桃| 久久精品夜夜夜夜夜久久蜜豆| 最新美女视频免费是黄的| 亚洲内射少妇av| 麻豆一二三区av精品| 综合色av麻豆| 成人永久免费在线观看视频| 亚洲精华国产精华精| 国产免费一级a男人的天堂| 美女 人体艺术 gogo| av中文乱码字幕在线| 国产单亲对白刺激| 91麻豆精品激情在线观看国产| 窝窝影院91人妻| 欧美日韩乱码在线| 成人高潮视频无遮挡免费网站| 一区二区三区激情视频| 最后的刺客免费高清国语| 日韩欧美 国产精品| 美女 人体艺术 gogo| 亚洲成人精品中文字幕电影| 欧美成人免费av一区二区三区| 国内揄拍国产精品人妻在线| 两个人看的免费小视频| 露出奶头的视频| 国产毛片a区久久久久| 一进一出好大好爽视频| 国内久久婷婷六月综合欲色啪| 亚洲av美国av| 午夜免费男女啪啪视频观看 | 美女 人体艺术 gogo| 久久国产乱子伦精品免费另类| 亚洲久久久久久中文字幕| 88av欧美| 麻豆一二三区av精品| 国产精品精品国产色婷婷| 国产精品99久久99久久久不卡| 一本久久中文字幕| 日韩人妻高清精品专区| 少妇的丰满在线观看| 午夜福利欧美成人| 真实男女啪啪啪动态图| 亚洲精品粉嫩美女一区| netflix在线观看网站| 国产高清有码在线观看视频| 黄色成人免费大全| 真人一进一出gif抽搐免费|