2017-09-20 48 views
1

我的應用程序模擬具有相同記錄地址的多個SIP實例,因此我可以支持對該URI的同時傳入呼叫。 我也想這些實例是唯一可尋址的。因此,我希望從註冊服務商那裏獲得每個這些SIP實例的GRUU。獲取具有相同本地SIP URI的多個實例的GRUU

我使用OpenSips v2.3.1作爲註冊商。當應用程序在註冊服務器上註冊時,收到的響應僅包含一個與GRUU的聯繫地址,用於其中一個SIP實例(見下文)。當我使用具有不同本地SIP URI的SIP實例時,響應包含每個聯繫地址的GRUU。

我已經通過RFC5627(GRUU機制)進行了搜索,但找不到此行爲的原因。

這是正確的行爲還是這可能是這個OpenSips版本的問題?

謝謝您的回覆。

-

的REGISTER請求發送看起來像這樣:

REGISTER sip:192.168.1.178 SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.237:5060;branch=z9hG4bKde764961a60b4e2f8e809470a5c20f78 
Max-Forwards: 70 
From: sip:[email protected];tag=d455cae0a95f4229bcd2153dac7b3c5b 
To: sip:[email protected] 
Call-ID: f8e77f1a8a604cc98a505bb7017045e4 
CSeq: 22 REGISTER 
Contact: <sip:[email protected]>;+sip.instance="<urn:uuid:2f33883736cc4a3d91570e8c06df9b06-002>" 
Contact: <sip:[email protected]>;+sip.instance="<urn:uuid:55372b9295824de19c98a9db63386160-001>" 
Supported: gruu 
Expires: 600 
Content-Length: 0 

從OpenSips註冊器接收到的REGISTER響應看起來像這樣:

SIP/2.0 200 OK 
Via: SIP/2.0/UDP 192.168.1.237:5060;branch=z9hG4bKde764961a60b4e2f8e809470a5c20f78 
From: sip:[email protected];tag=d455cae0a95f4229bcd2153dac7b3c5b 
To: sip:[email protected];tag=672eb56ff27ea055e14e7cc9d1cbeb13.6345 
Call-ID: f8e77f1a8a604cc98a505bb7017045e4 
CSeq: 22 REGISTER 
Contact: <sip:[email protected]>;expires=600;pub-gruu="sip:[email protected]:5060;gr=urn:uuid:55372b9295824de19c98a9db63386160-001";temp-gruu="sip:tgruu.AUUDWmUJQ2QCSRNfYwBAc0UCXVQmRBk3CkUGXWQDEmoCSQZWYQUUNgFJUFdrUEk3U[email protected]192.168.1.178:5060;gr";+sip.instance="urn:uuid:55372b9295824de19c98a9db63386160-001" 
Server: OpenSIPS (2.3.1 (x86_64/linux)) 
Content-Length: 0 
+0

您是否嘗試爲每個sip.instance發送單獨的REGISTER? –

+0

是的,我有。第二個REGISTER請求只是刷新註冊,而不是添加另一個綁定。看來OpensSips將SIP URI作爲主鍵值。我認爲,在使用GRUUs時,實例ID將成爲更好的主鍵,或者可能是兩個值的組合。 – Bucq

+0

+ sip.instance機制在rfc5626中描述。正如我所看到的 - 要分開註冊,您需要提供不同的註冊ID。可能沒有這個參數會使服務器迷惑 –

回答

0

兩個+sip.instance=reg-id= Contact頭字段參數由RFC 5626定義,OpenSIPS目前不支持,因此第二次聯繫的原因在您的註冊嘗試期間覆蓋第一個。

+0

謝謝,這回答我的問題。 – Bucq

相關問題