註冊過程圖
carol使用記錄位址「sip:[email protected]」在sip註冊伺服器的chicago.com域註冊。chicago.com域的**伺服器將使用carol的註冊,將carol的記錄位址拿到定位服務中查詢,找到真實終端位址,然後路由到carol的真實終端。
註冊描述
如果使用者要發起和另乙個使用者的會話,sip必須發現可到達目的使用者的當前主機。(**伺服器和重定向伺服器——他們負責接收請求,決定要傳送請求的使用者位置,然後傳送到相應位置。)
這就需要特定域的位址繫結,這些位址繫結將輸入的sip和sips uri(如sip:[email protected])對映到想要的使用者更近的乙個或者多個uri(如sip:[email protected])。
然後**查詢定位服務,找到使用者**。
乙個使用者可能註冊多個**,register請求可以進行新增、刪除和查詢繫結(200ok時候會返回繫結列表)。
request-uri:註冊伺服器指明的定位服務域,不能出現sips uri的userinfo和@元件。
to:記錄位址(乙個記錄位址可以繫結多個sip終端),該字段和request-uri主要不同在於該欄位包含使用者名稱(要和使用者繫結肯定要加使用者名稱),該欄位相當於key,每次發請求時候的to其實就是這個key,通過這個key來查詢繫結的終端。
from:如果不是第三方註冊,就和to欄位保持一致。
call-id:對於同一使用者的同一終端,註冊和解綁時候的該字段是一致的。
cseq:每個使用相同call-id的請求,每次逐一增加該字段值。
contact:要繫結的sip終端(可以理解為真實位址),即value,乙個to繫結多個contact。該字段有乙個引數expires
-expires:表示ua繫結有效時間。單位:秒。如果不提供該引數,則使用expires頭字段的值代替。不規範的值視為3600(即一小時)。
record-route:該欄位必須忽略。
contact欄位為「*」表示用於所有註冊,此時expires頭欄位只能用0表示,即「*」只能用於解綁
-register請求成功的響應會包含所有現有繫結。
-根據contact欄位expires引數進行比較更新過期時間
檢查request-uri,確定是否可以訪問該欄位指定域的繫結,如果不能,可以當做**伺服器進行**。
認證uac
判斷當前使用者是否有權修改記錄位址的註冊,如果不行,返回403
從to欄位取出記錄位址,如果記錄位址不可用於r-u域,那麼註冊伺服器傳送404結束。
檢查contact
依次處理contact頭欄位每個聯絡位址,每個位址按照如下方法更新過期時間
欄位有expires引數,此值當做過期時間
沒有該引數,但是有expires欄位,此值作為過期時間
都沒有,本地配置預設時間當做請求到期時間
搜尋當前繫結列表,如果繫結不存在,暫時新增。如果繫結存在,檢查call-id值,如果現有繫結的call-id值與請求中的call-id不同,如果過期時間間隔為0或者有其他更新,必須刪除繫結。如果相同,比較cseq值,如果高於繫結的值,就要進行更新了。
下面是兩個客戶端1和2,客戶端都位於139,註冊伺服器位於168
使用者2向註冊伺服器發起請求
-request-uri:168域(註冊伺服器域)
-contact:表示要繫結的sip客戶端位址
-expires:10分鐘過期
-to:客戶名@168域,from和to一致
-call-id:sip客戶端一致時保證該欄位一致
-cseq:1
註冊成功響應返回
contact:返回現有繫結列表
使用者2向伺服器註冊另乙個客戶端位址
-contact:新的客戶端位址
-call-id:繫結新的客戶端位址,所以產生新的該字段
-cseq:1
使用者2註冊第二個位址成功的響應
contact:返回現有列表,可以看出來新增了繫結
使用者1註冊第二個位址(第乙個未擷取圖,所以cseq是2)
使用者1註冊成功返回響應
使用者2解綁5060埠的客戶端
-call-id:跟之前的5060埠註冊時候一樣
-expires:為0表示解綁
-cseq:在之前的基礎上加1
解綁成功響應
-contact:比之前少了乙個繫結位址
最終建立通話時候使用的目的位址to都是位址記錄(即key),如sip:[email protected]
,sip:[email protected]
,定位服務進行解析查詢繫結的實際客戶端位址,使用實際位址去建立通話連線,如sip:[email protected]:5060
,sip:[email protected]:61509
,sip:[email protected]:5060
。
wireshark分析SIP協議 註冊
sip 是voip目前非常流行的一種協議。有關協議的詳細原理參照相關文件。根據sip協議原理,sip終端,也就是本文中的數字家庭產品,實現了uac user agent client 和uas useragent server 的功能。sipserver 本文選用asterisk 實現了 伺服器 重...
sip 註冊流程
基本註冊流程示意圖 註冊流程描述如下 1 sip 向sip伺服器傳送register請求 2 sip伺服器向sip 傳送響應401,並在響應的訊息頭www authenticate欄位中給出適合sip 的認證體制和引數 3 sip 重新向sip伺服器傳送register請求,在請求的authoriz...
SIP協議簡介(三)之註冊(REGISTER)過程
註冊服務是另乙個常用的sip操作。登記服務是biloxi.com 伺服器知道bob當前位址的乙個方法。在初始化的時候,或者每隔一段時間,bob的sip 傳送register訊息給biloxi.com的乙個註冊伺服器。register訊息包含了bob當前登陸伺服器的sip或者sips的uri sip ...