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

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

2018-12-13 16:19:41   作者:james.zhu   來源:CTI論壇   評論:0  點擊:


  第三層是事務(wù)層。事務(wù)是SIP的基礎(chǔ)核心模塊。事務(wù)是一個由用戶端事務(wù)對服務(wù)器端事務(wù)發(fā)送的請求,用戶端使用傳輸層對服務(wù)器端發(fā)送事務(wù)請求,所有的服務(wù)器端事務(wù)所攜帶響應(yīng)消息返回到客戶端。事務(wù)層處理應(yīng)用層的重傳,對請求響應(yīng)的匹配和應(yīng)用層超時管理。任何由用戶代理(UAC)完成的任務(wù)通過使用一系列的事務(wù)來觸發(fā)。具體的關(guān)于事務(wù)的討論在Section 17有討論。用戶代理包含了一個事務(wù)層,就像是一個狀態(tài)代理。無狀態(tài)代理沒有包含事務(wù)層。事務(wù)層包含一個用戶端模塊(稱之為用戶事務(wù))和一個服務(wù)器端事務(wù)模塊(稱之為服務(wù)器端模塊),每個模塊通過各自的有限狀態(tài)機來呈現(xiàn),狀態(tài)機來處理每個特別的請求。
  事務(wù)的概念非常難以理解,網(wǎng)上有很多這方面的資料,讀者可以查閱。
  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ù)加以簡單說明(RINGING 是 1xx 響應(yīng),OK是 2xx 響應(yīng),所以是兩個事務(wù)),非rfc3261官方資料。
  在事務(wù)層上面的是事務(wù)用戶(TU)。每個SIP實體,除了無狀態(tài)代理都是一個事務(wù)用戶。當一個TU希望發(fā)送一個請求時,它會創(chuàng)建一個用戶事務(wù)實例,然后把這個實例傳遞給這個請求,并且攜帶目的地IP地址,端口和傳輸請求。一個創(chuàng)建了用戶事務(wù)的TU也可以取消這個用戶事務(wù)。當用戶取消了一個事務(wù)時,它會請求服務(wù)器停止進一步的處理,變換到退出的狀態(tài),這個狀態(tài)是這個事務(wù)初始化前的退出狀態(tài),并且生成對這個事務(wù)生成錯誤響應(yīng)消息。這個處理過程是通過一個CANCEL 請求來處理,它構(gòu)成了屬于自己的事務(wù),但是僅針對這個被取消的事務(wù)(Section 9)。
  事務(wù)的處理包括了多種不同的狀態(tài),主要包括以下六種(非官方資料)狀態(tài):
  • SIP 要素也就是用戶代理用戶測,服務(wù)器,無狀態(tài)代理,有狀態(tài)代理和注冊。SIP要素包含了一個核心模塊,這個核心模塊來對各自其要素進行區(qū)別處理。在核心要素模塊中,除了無狀態(tài)代理以外,其他的要素都是事務(wù)用戶。這里,UAC和UAS的核心處理流程越來于method。關(guān)于methods支持了多種規(guī)則和定義(Section 8)。對于UAS來說,這些規(guī)則控制請求的結(jié)構(gòu);對于UAS來說,這些規(guī)則控制請求的流程和生成響應(yīng)消息。因為,注冊在SIP協(xié)議中扮演著一個非常重要的角色,一個處理注冊的UAS會設(shè)定一個特別的名稱注冊。在Section 10中描述了UAC和UAS核心的對REGISTER method的處理方式。Section 11描述了UAC和UAS核心對OPTIONS method的處理方式,它決定UA的支持能力。
  • 某些其他的請求是在dialog中發(fā)送。一個dialog是一個介于用戶代理之間的peer-to-peer SIP關(guān)系,這種關(guān)系存在于一定時間內(nèi)。這個dialog支持介于用戶代理之間的消息的順序傳遞和正確的請求路由。在這個細節(jié)規(guī)定中,INVITE method 是唯一的方法來創(chuàng)建dialog。當一個UAC在dialog中發(fā)送一個請求時,它會遵守一般的UAC規(guī)則,這些規(guī)則在Section 8會加以討論,它也會遵守 mid-dialog 請求時的規(guī)則。Section 12討論在dialog和表述它們的結(jié)構(gòu)和維護流程。
  • 在SIP協(xié)議中,最重要的method是INVITE method,它用來創(chuàng)建參與方之間的會話。一個會話是參與方的匯總和它們之間通信的的媒體流交互。Section 13討論了如何實現(xiàn)會話發(fā)起,這些導(dǎo)致了一個或者多個SIP dialog生成。Section 14討論了如何在一個dialog中通過INVITE用法來修改會話屬性。最后,在section 15中討論如何結(jié)束一個會話。
  • 章節(jié)8,10,11,12,13,14,和15的流程完整討論了UAcore(Section 9描述了取消流程,這個取消流程支持都支持UA core 和 proxy core)。Section 16討論代理的要素,這些要素支持了介于兩個用戶代理之間的信息路由。
  參考資料:
  https://www.rfc-editor.org/rfc/pdfrfc/rfc3262.txt.pdf
  關(guān)注微信公眾號:asterisk-cn,獲得有價值的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

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

專題