为具有相同本地 SIP URI 的多个实例获取 GRUU

Obtain GRUU for multiple instances with same local SIP URI

我的应用程序模拟多个具有相同记录地址的 SIP 实例,因此我可以支持对该 URI 的同时传入呼叫。 我还希望这些实例是唯一可寻址的。因此,我想为每个 SIP 实例从注册商那里获得一个 GRUU。

我使用 OpenSips v2.3.1 作为注册器。当应用程序在注册商处注册时,收到的响应仅包含一个 SIP 实例的联系地址和 GRUU(见下文)。当我使用具有不同本地 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:1010@192.168.1.178;tag=d455cae0a95f4229bcd2153dac7b3c5b
To: sip:1010@192.168.1.178
Call-ID: f8e77f1a8a604cc98a505bb7017045e4
CSeq: 22 REGISTER
Contact: <sip:1010@192.168.1.237>;+sip.instance="<urn:uuid:2f33883736cc4a3d91570e8c06df9b06-002>"
Contact: <sip:1010@192.168.1.237>;+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:1010@192.168.1.178;tag=d455cae0a95f4229bcd2153dac7b3c5b
To: sip:1010@192.168.1.178;tag=672eb56ff27ea055e14e7cc9d1cbeb13.6345
Call-ID: f8e77f1a8a604cc98a505bb7017045e4
CSeq: 22 REGISTER
Contact: <sip:1010@192.168.1.237>;expires=600;pub-gruu="sip:1010@192.168.1.178:5060;gr=urn:uuid:55372b9295824de19c98a9db63386160-001";temp-gruu="sip:tgruu.AUUDWmUJQ2QCSRNfYwBAc0UCXVQmRBk3CkUGXWQDEmoCSQZWYQUUNgFJUFdrUEk3UkYAXWsHQWUAXQNeYhEWa1VHBAhiUEgyBkAHDTAISDIFQAYMMQZAYgdAB1s2BQ==@192.168.1.178:5060;gr";+sip.instance="urn:uuid:55372b9295824de19c98a9db63386160-001"
Server: OpenSIPS (2.3.1 (x86_64/linux))
Content-Length: 0

+sip.instance=reg-id=联系人header字段参数均由RFC 5626定义,OpenSIPS目前不支持,因此第二个联系人覆盖第一个联系人的原因您的注册尝试。