rfc3261-10REGISTER翻譯2

設置自身內部時鐘

如果註冊響應中包含Data頭域,客戶端可以按此設置自身時間

 

發現註冊服務(器)(Request-URI的設置)

三種方案:直接設置 ,To頭域的主機部分(For example, the UA for the user"sip:[email protected]" addresses the REGISTER request to"sip:chicago.com".)廣播"sip.mcast.net" (224.0.1.75 for IPv4,IpV6自己決定),注意廣播註冊是不一定響應的,而且有時候不恰當

 

發送註冊消息

(如Section 8.1.2發送給事務層(直譯交易層))

如果事務層發生超時錯誤,UAC不能馬上重試(等等再試)!

 

錯誤響應(423)

若收到423(間隔太短 Interval Too Brief),需將超時設爲大於等於423響應中的Min-Expires 頭域內容

 

處理REGISTER請求

Registrar是個特殊UAS(行爲如Section8.2 and Section 17.2),僅處理REGISTER requests.,不會發送6xx responses.

註冊請求可被重定向

註冊請求包中Record-Routeheader必須忽略,返回中也不能含Record-Route header

註冊要麼徹底成功,要麼徹底失敗

具體步驟

1)       檢查Request-URI能否註冊。不能但UAS是轉發代理,則按照Section16轉發。

2)       檢查是否包含Section 8.2.2的頭域和值

3)       按Session22驗證UAC,不需驗證的則假設From爲請求發生者

4)       驗證請求發生者有無更改權限,無回403(Forbidden),跳過接下步驟

5)       從To中取address-of-record,如果它不符合Request-URI中的域,必須發送404 (Not Found) response andskip the remaining steps。取出的URI轉爲標準URI(去除轉義字符和參數),然後作爲綁定列表的索引

6)       檢查Contact header field ,沒有則跳最後步。檢查是否有’*’和Expires頭域,如果Contact header field有其他內容或者Expires!=0,必須返回400 (Invalid Request),然後結束。然後比較綁定的Call-ID和包中Call-ID是否一致。不一致則更新綁定,否則再檢查CSeq,只有它高於儲存的值才更新。其他情況都必須放棄並返回錯誤。

7)       處理Contact header field中contact address,按照規則(見rfc33261-10.3)。注意這些地址要麼全部綁定成功,要麼全部失敗(刪除,然後返回500(Server Error))

8)       返回200(OK),必須包含Contact header field values enumerating all current         bindings.  Each Contact value MUST feature an"expires"parameter indicating its expiration interval chosen by theregistrar.  The response SHOULD include aDate header field.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章