我的应用程序模拟具有相同记录地址的多个 SIP 实例,因此我可以支持同时传入该 URI。我还希望这些实例是唯一可寻址的。因此,我想从注册商那里获得每个 SIP 实例的 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: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