SIP協議 註冊過程概述

2021-07-31 09:04:13 字數 3258 閱讀 5067

註冊過程圖

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]:5060sip:[email protected]:61509sip:[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 ...