售前電話
135-3656-7657
售前電話 : 135-3656-7657
一、基于會話啟動協(xié)議的事件通告機制
1.事件通告機制的概念
所謂事件通告機制是指網(wǎng)絡中的一些實體可以訂閱網(wǎng)絡中某些資源或呼叫的狀態(tài)信息, 當那些被訂閱的資源的狀態(tài)發(fā)生改變時,負責這一資源的網(wǎng)絡實體將向訂閱者發(fā)送通告,通 報當前資源狀態(tài)的變化情況。
為了實現(xiàn)這一機制,Internet工程任務組(IETF)的SIP工作組對基本的會話啟動協(xié)議進 行了擴充,提出了基于會話啟動協(xié)議的事件通告機制規(guī)范:RFC 3265。在規(guī)范中定義了兩個 擴展方法:訂閱(SUBSCRIBE)和通告(NOTIFY)。SUBSCRIBE方法用于發(fā)起訂閱請求, NOTIFY方法用于通告當前資源狀態(tài)。
會話啟動協(xié)議事件通告機制涉及以下幾個概念:
♦訂閱者
訂閱者負責接收NOTIFY消息的會話啟動協(xié)議用戶代理(SIP UA)。這些NOTIFY消息中 包含訂閱者訂閱的資源信息。訂閱者典型的動作是向通告者發(fā)送SUBSCRIBE消息以請求創(chuàng)建 一次訂閱關系。
♦通告者
通告者負責產(chǎn)生NOTIFY請求的SIPUAo通告者在NOTIFY消息中向訂閱者回饋當前資 源的狀態(tài)。通告者典型的動作是接收SUBSCRIBE消息并創(chuàng)建相應的訂閱關系。
♦訂閱
所謂訂閱就是一組與某個對話相關聯(lián)的應用狀態(tài)的集合。訂閱關系既存在于訂閱者中, 又存在于通告者中。
♦事件包
事件包是通告者向訂閱者發(fā)送的一組資源的狀態(tài)信息。RFC 3265中給出了抽象的事件包 模板定義,對應具體業(yè)務可定義相應的事件包類型,例如:在席事件包、對話事件包等,這 些事件包可使用不同的語法并具有各自的語義。這種框架賦予會話啟動協(xié)議事件通告機制極 大的生命力和靈活性,有助于快速提供新的業(yè)務。
2.事件通告機制的流程
典型的會話啟動協(xié)議事件通告機制流程如圖3-2所示。
SUBSCRIBE方法和會話啟動協(xié)議基本規(guī)范中定義的邀請(INVITE)方法都可以創(chuàng)建一 個對話。當訂閱者想得到網(wǎng)絡中某一資源的狀態(tài)時,便向負責這一資源的會話啟動協(xié)議實體 發(fā)起SUBSCRIBE請求,如圖3-2中的F1所示。SUBSCRIBE消息中的請求統(tǒng)一資源標識符 (Request-URI)就是所要請求的資源的統(tǒng)一資源標識符(URI),這一 URI同時還為會話啟動 協(xié)議代理服務器路由請求提供線索。SUBSCRIBE請求中必須包含一個擴展的Event頭部,其 中注明要訂閱的事件類型,即事件包標記,如,dialog (用于代答業(yè)務)、refer (用于呼叫轉交) 等。還可包含擴展的Allowed-Event頭部,指示本節(jié)點能夠支持的事件包類型。如果在一個對 話中有多次訂閱,則如圖3-3所示,在Event頭部還要增設標識參數(shù)ID予以區(qū)分。
對于訂閱者來說,它總是在一定的時間段內對它感興趣的某一資源進行觀察。因此, SUBSCRIBE消息中應包含expires頭部,這一頭部值表明訂閱者期望的有效訂閱時長。為了 延長某一訂閱的時間,訂閱者可以在有效期內再次發(fā)送SUBSCRIBE消息來刷新這一訂閱。具 體某次訂閱的有效時長,最終是由對SUBSCRIBE請求的2XX響應中的expires •頭部值或 NOTIFY消息中的Subscription-State頭部的expires參數(shù)決定的。expires頭部值等于0的 SUBSCRIBE請求表示撤銷訂閱。如果訂閱關系能夠建立,SUBSCRIBE消息將會觸發(fā)通告資 源狀態(tài)的NOTIFY消息立即回送。訂閱者想要獲得的資源狀態(tài)信息封裝在后繼通告消息 NOTIFY的消息體中,為了能夠正確地解釋這部分信息,訂閱者應該向通告者指明自己支持的 消息體格式,因此,在SUBSCRIBE消息中應攜帶Accept頭部,例如,Accept: application/dialog-info+xml,這表明訂閱者支持用可擴展標識語言(XML)描述的對話事件包, 實際上就是一種通用Internet郵件擴展(MIME)格式消息體。如果SUBSCRIBE消息中沒有 攜帶Accept頭部,則通告者根據(jù)SUBSCRIBE消息中Event頭部指明的事件包標記選擇默認 的格式傳送資源狀態(tài)信息。
SUBSCRIBE請求通過2XX響應確認,如圖3-2中的F2所示。不同的2XX響應具有不 同的語義:
•200 OK表示訂閱已被接受且用戶已被授權訂閱請求的資源.
•202 Accepted (接受)是事件通知機制擴展的響應碼,表示訂閱請求已被理解,但是 否授權給訂閱者未確定。