亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁 > 新聞 > 國內(nèi) >
 首頁 > 新聞 > 國內(nèi) >

SIP協(xié)議與應(yīng)用場景技術(shù)分享筆記-卷1-rfc3261-4

2019-01-02 09:19:15   作者:james.zhu   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  SIP 定義
  以下定義對(duì)SIP協(xié)議非常重要。
  Address-of-Record: 一個(gè) address-of-record (AOR) 是一個(gè)SIP或者SIPS URI地址,它指到了一個(gè)域,同時(shí)它支持定位服務(wù)。定位服務(wù)可以映射這個(gè)URL到其他的URL,其他的URL可能綁定了用戶的有效性和可用性。典型的示例是定位服務(wù)通過注冊來實(shí)現(xiàn)。AOR 經(jīng)常被認(rèn)為是一個(gè)用戶的“公開地址”。
  Back-to-Back User Agent:背靠背用戶代理(B2BUA)是一個(gè)邏輯實(shí)體,它作為一個(gè)UAS來接收一個(gè)請求,處理這個(gè)請求。為了決定如何應(yīng)答這個(gè)請求,它的工作方式又類似于一個(gè)user agent client (UAC)來生成請求。不像代理服務(wù)器,它會(huì)保持dialog狀態(tài),并且必須介入到整個(gè)它所創(chuàng)建的dialogs中發(fā)送的所有請求。因?yàn)椋约罕旧砭褪且粋(gè)UAC和UAS的結(jié)合體,本身并不需要特別明確的定義來定義它的行為。
  Call:呼叫是一個(gè)非正式的名稱,它指的是介于終端之間的通信,通常情況下創(chuàng)建呼叫的目的是為了多媒體的溝通。
  Call Leg:dialog另外的名稱[31];已不在此規(guī)定中使用。
  Call Stateful: 一個(gè)代理是有狀態(tài)呼叫,它具有這樣的特征。如果它保持dialog整個(gè)狀態(tài),這個(gè)狀態(tài)一直持續(xù)從初始化INVITE開始到BYE請求結(jié)束。一個(gè)call stateful 代理總是一個(gè)事務(wù)狀態(tài),但是事務(wù)狀態(tài)不一定是一個(gè)有狀態(tài)呼叫代理。
  Client:終端用戶是任何一個(gè)網(wǎng)絡(luò)的要素,它發(fā)送SIP請求和接收SIP響應(yīng)。用戶端可能,或不可能直接和真人用戶進(jìn)行互動(dòng)。用戶代理終端和代理是終端。
  Conference:一個(gè)對(duì)媒體會(huì)話,它包含了多個(gè)參與方。
  Core:Core 指定了某些功能,這些功能專門針對(duì)某些SIP實(shí)體的參與方類型。例如,具體指定了是一個(gè)狀態(tài)或者非狀態(tài)代理,用戶代理或者注冊。除了某些非狀態(tài)代理以外,所有的core功能都是事務(wù)用戶。
  Dialog:dialog是一種端對(duì)端的SIP關(guān)系,它介于兩個(gè)UA之間,這兩個(gè)UA在一定時(shí)間內(nèi)維持著某種綁定關(guān)系。一個(gè)dialog的創(chuàng)建是通過SIP消息,例如對(duì)INVITE請求的2xx 響應(yīng)。一個(gè)Dialog是通過一個(gè)call identifier, local tag,和一個(gè)remote tag來定義的。Dialog以前稱之為一個(gè)call leg,call leg在RFC2543定義。
  Downstream:在事務(wù)內(nèi)的一個(gè)消息前轉(zhuǎn)的,它涉及到了一個(gè)請求流程,這個(gè)請求流程是從用戶代理客戶端到用戶代理服務(wù)器端的處理方向。
  Final Response: 是一個(gè)響應(yīng)消息,它結(jié)束SIP事務(wù),相反的,一個(gè)provisional response(臨時(shí)響應(yīng))則不會(huì)結(jié)束事務(wù)。所有All 2xx,3xx,4xx,5xx 和 6xx responses 都是最終響應(yīng)消息。
  Header: 頭是SIP消息的組件,它傳遞消息的信息。它由一系列的頭域值構(gòu)成。
  Header Field:頭是SIP消息的組件。一個(gè)頭域可以表現(xiàn)為一個(gè)或多個(gè)頭域值。每一行頭域值包含頭域值名稱和一個(gè)或者多個(gè)頭域值。如果有多個(gè)頭域值的話,可以通過逗號(hào)分開。一些頭域值僅有單行頭域,它總是以單行頭域出現(xiàn)。
  Header Field Value: 一個(gè)頭域是一個(gè)單個(gè)數(shù)值;它由零個(gè)或多個(gè)頭域值構(gòu)成。
  Home Domain:主機(jī)域?qū)IP用戶提供服務(wù)。典型的解釋是,這是一個(gè)域名,它出現(xiàn)在注冊AOR的URL中。
  Informational Response:類似于一個(gè)臨時(shí)響應(yīng)。
  Initiator, Calling Party, Caller: 一方發(fā)起一個(gè)會(huì)話(和dialog),它帶著一個(gè)INVITE請求。一個(gè)呼叫方始終保持一個(gè)角色,這個(gè)角色從它開始發(fā)送這個(gè)初始的INVITE開始計(jì)算,這個(gè)INVITE創(chuàng)建了一個(gè)dialog,一直到結(jié)束這個(gè)dialog。
  Invitation:一個(gè)INVITE請求。
  Invitee, Invited User, Called Party, Callee: 一方接收一個(gè)INVITE請求,這個(gè)請求的目的是為了創(chuàng)建一個(gè)新的會(huì)話。被呼叫方始終保持這個(gè)角色,這個(gè)角色從它開始接收這個(gè)INVITE開始計(jì)算,一直到dialog結(jié)束,這個(gè)dialog是由那個(gè)INVITE創(chuàng)建。
  Location Service:定位服務(wù)用來支持一個(gè) SIP 重定位或代理服務(wù)器來獲得關(guān)于被呼叫方可能存在的地址信息。它包含一個(gè)綁定的address-of-record列表數(shù)值,這些從從零個(gè)到多個(gè)contact 地址。這個(gè)綁定關(guān)系可以通過多種方式來創(chuàng)建或者刪除;此協(xié)議細(xì)節(jié)中定義了一個(gè)REGISTER method來更新綁定關(guān)系。
  Loop:一個(gè)已到達(dá)代理的請求,經(jīng)過前轉(zhuǎn)以后,后來又返回到同樣的代理。當(dāng)這個(gè)請求第二次到達(dá)代理時(shí),這個(gè)請求的Request-URI確認(rèn)是第一次的請求,并且其他影響代理操作的頭域值不會(huì)改變,因此代理會(huì)在這個(gè)請求中做出和第一次同樣的處理決定。回環(huán)的請求是一種錯(cuò)誤,流程會(huì)檢測回環(huán)請求,通過協(xié)議本身來處理這種回環(huán)請求。
  Loose Routing:如果代理遵守本規(guī)范來處理路由頭域,代理會(huì)被告知是一個(gè)松散路由。這些流程從一系列的代理中分開了目的地請求(出現(xiàn)在Request-URL中),代理所遵守的機(jī)制被稱之為松散路由。
  Message: 消息是在SIP要素之間發(fā)送的數(shù)據(jù),它是協(xié)議的一部分。SIP消息可以是請求或者響應(yīng)。
  Method: method是一個(gè)基本功能,一個(gè)請求在服務(wù)器端被激活。Method在請求自己的消息中傳輸。常見的methods是INVITE和BYE。
  Outbound Proxy: 它是一個(gè)代理,負(fù)責(zé)接收從客戶端發(fā)出的請求,即使它可能不是一個(gè)通過Request-URI解析度服務(wù)器。 通常情況下,一個(gè)UA 可以通過outbound  proxy手動(dòng)配置,或通過自動(dòng)配置協(xié)議進(jìn)行學(xué)習(xí)。
  Parallel Search:在并行查詢中,一個(gè)代理會(huì)對(duì)可能存在的用戶位置發(fā)送幾個(gè)請求,這些可能存在的用戶位置用來接收請求。而且,并行查詢也不是發(fā)送一個(gè)請求,然后等待收到這個(gè)請求的最后響應(yīng),然后發(fā)送接下來的請求。它不會(huì)等到前面的請求響應(yīng)收到以后再發(fā)送下一個(gè)請求。
  Provisional Response: 它是臨時(shí)響應(yīng),臨時(shí)響應(yīng)表示服務(wù)器端的處理進(jìn)程,但是臨時(shí)響應(yīng)不會(huì)結(jié)束SIP事務(wù)。1xx是臨時(shí)響應(yīng),其他的響應(yīng)是最終響應(yīng)。
  Proxy, Proxy Server:代理是一個(gè)中間實(shí)體,它的工作方式既是一個(gè)服務(wù)器端,又是一個(gè)客戶端,作為客戶端的作用是支持其他客戶端發(fā)起請求。代理服務(wù)器基本功能是扮演路由的角色,它的工作就是確保請求被發(fā)送到比較接近目標(biāo)用戶的其他實(shí)體。代理也可以執(zhí)行一些強(qiáng)制的策略(例如,確保用戶被允許呼叫)。代理可以解析請求消息的部分消息內(nèi)容,如果必要的話,在一個(gè)請求消息被前轉(zhuǎn)之前,代理可以重寫請求消息的部分參數(shù)內(nèi)容。
  Recursion:遞歸處理。當(dāng)用戶在響應(yīng)中的Contact 頭域中產(chǎn)生一個(gè)或多個(gè)URLS的新請求時(shí),用戶會(huì)在3xx響應(yīng)中產(chǎn)生遞歸。
  • Redirect Server:重定向服務(wù)器是一個(gè)用戶代理服務(wù)器,它會(huì)對(duì)接收的請求產(chǎn)生3xx 響應(yīng),重新定向用戶,讓用戶聯(lián)系其他可選的URL列表中的URI地址。
  • Registrar: 注冊服務(wù)是一個(gè)注冊服務(wù)器,它用來接受REGISTER請求,負(fù)責(zé)把注冊服務(wù)器接受的信息保存到定位服務(wù)所支持的domain,這個(gè)domain是注冊服務(wù)器負(fù)責(zé)。
  • Regular Transaction:正常事務(wù)是任何帶method的事務(wù),帶INVITE, ACK,或者CANCEL的method的除外。
  • Request::請求是一個(gè)由用戶端發(fā)送到服務(wù)器的SIP消息,請求的目的是觸發(fā)一個(gè)特別的操作。
  • Response:響應(yīng)是一個(gè)由服務(wù)器端發(fā)送到用戶端的SIP消息,其目的是說明請求發(fā)送后服務(wù)器端回復(fù)的狀態(tài)。
  • Ringback:回鈴是一種信令音(回鈴音),它是由呼叫方應(yīng)用程序生成,用來表示被呼叫方已經(jīng)被提示(被呼叫方正在振鈴狀態(tài))。
  • Route Set:路由集是一組有序SIP或者SIPS URI的集和,它用來表示當(dāng)發(fā)送一個(gè)特別的請求時(shí)所經(jīng)過的代理列表。路由集通過路由頭,例如Record-Route或者經(jīng)過配置后獲得。
  • Server:服務(wù)器是網(wǎng)絡(luò)中的一個(gè)要素,它用來接收請求,然后對(duì)其進(jìn)行服務(wù)支持,并且對(duì)其請求返回響應(yīng)消息。服務(wù)器的實(shí)例包括代理,用戶終端服務(wù)器,重定位服務(wù)器和注冊服務(wù)器。
  • Sequential Search:在順序查詢中,代理服務(wù)器按照順序嘗試查詢每個(gè)contact地址,并且,只有當(dāng)上一個(gè)查詢返回最終響應(yīng)后才進(jìn)行下一個(gè)查詢的新的處理。  2xx或者6xx 的最終響應(yīng)總是結(jié)束順序查詢處理。
  • Session: 在SDP規(guī)范中:"一個(gè)媒體會(huì)話是一系列媒體發(fā)送方和媒體接收方,以及從發(fā)送方到接收方之間的媒體數(shù)據(jù)流。一個(gè)媒體會(huì)議就是一個(gè)媒體會(huì)話的舉例。" (RFC 2327[1]) (對(duì)SDP定義的會(huì)話來說,一個(gè)會(huì)話由一個(gè)或多個(gè)RTP 會(huì)話構(gòu)成)。就像定義中的那樣,對(duì)于同一會(huì)話來說,一個(gè)被呼叫方可以被不同的呼叫方多次邀請。如果使用了SDP,會(huì)話通過SDP 用戶名稱,會(huì)話ID,網(wǎng)絡(luò)類型,地址類型和在地址單元中的原始值域構(gòu)成。
  • SIP Transaction: 一個(gè)SIP 事務(wù)會(huì)發(fā)生在客戶端和服務(wù)器端之間,它由第一個(gè)由客戶端發(fā)出的請求開始到服務(wù)器端最終響應(yīng)的所有消息構(gòu)成(非1xx消息)。如果請求是INVITE,并且最終響應(yīng)是一個(gè)非-2xx消息的話,這個(gè)事務(wù)也會(huì)對(duì)這個(gè)響應(yīng)包括一個(gè)ACK。這個(gè)對(duì)于200 OK(INVITE的響應(yīng))的ACK來說,它是一個(gè)獨(dú)立的事務(wù)處理。
  關(guān)于SIP事務(wù)的定義,除了rfc3261中定義以外,筆者為了幫助讀者能夠比較完整地了解事務(wù)的真正概念,除了在老師文檔中有過介紹以外,特別添加了圖例來進(jìn)一步說明什么是SIP的事務(wù),另外,讀者一定要注意官方定義中的加粗部分內(nèi)容的解釋。
  • SIP Transaction:A SIP transaction occurs between a client and a server and comprises all messages from the first request sent from the client to the server up to a final (non-1xx) response sent from the server
  to the client. If the request is INVITE and the final response is a non-2xx, the transaction also includes an ACK to the response. The ACK for a 2xx response to an INVITE request is a separate transaction
  另外,事務(wù)有分為客戶端事務(wù)和服務(wù)器端事務(wù)處理方式。在不同的環(huán)境中扮演不同的角色。
  配合rfc3261對(duì)事務(wù)的定義,我們通過以下圖例詳細(xì)說明一下事務(wù)的定義。通過rfc的定義,我們看出,以下呼叫流程包括了三個(gè)事務(wù)處理的流程。這里大家應(yīng)該注意到是,如果請求是INVITE情況下的問題。第一個(gè)是INNITE到200 OK的流程,它是一個(gè)非200 OK的情況。因此,第二個(gè)是ACK,它是一個(gè)獨(dú)立分離的事務(wù)處理。第三個(gè)事務(wù)是一個(gè)非INVITE請求,客戶端發(fā)送到是BYE,然后回復(fù)200 OK。因此,從簡單的流程中可以看出,這個(gè)dialog 包括了三個(gè)事務(wù)處理。
  當(dāng)然,每個(gè)事務(wù)都有各自的ID和其他屬性來區(qū)別于其他的事務(wù)。每個(gè)事務(wù)的ID包括以下幾個(gè)方面的屬性:
  • 通過Via-header 添加到branch ID
  • Cseg header
  • rfc 3261定義的branch ID 起始前綴“z9hG4bK”
  以下是一個(gè)INVITE中的定義示例:
  參考資料:
  https://www.rfc-editor.org/rfc/pdfrfc/rfc3262.txt.pdf
  http://www.aboutsip.com/aboutsip-intro_transactions_and_dialogs.pdf

 
  關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的Asterisk行業(yè)分享
  Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
  Asterisk freepbx技術(shù)文檔: www.freepbx.org.cn
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
  Asterisk/FreePBX中國合作伙伴,官方qq技術(shù)分享群(3000千人):589995817

【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題

CTI論壇會(huì)員企業(yè)

永靖县| 永丰县| 仁怀市| 荔波县| 新密市| 同心县| 绥江县| 嘉荫县| 从化市| 莱芜市| 左贡县| 汉寿县| 邯郸县| 关岭| 望谟县| 湖口县| 黔江区| 崇明县| 旅游| 泗阳县| 长垣县| 城口县| 邵东县| 黑山县| 北海市| 睢宁县| 潼关县| 宾川县| 顺昌县| 康平县| 乌鲁木齐市| 山阳县| 嵊泗县| 成安县| 龙岩市| 周口市| 开化县| 凤山市| 桐乡市| 郑州市| 沧州市|