所以我一直在阅读RFC3261,并试图找出这个特殊问题。
假设UAC为192.168.1.42
,注册商为192.168.1.1
。
根据RFC,它表示To字段应包含您正在注册的实体的记录地址。 AoR定义为指向具有位置服务的域的URI,该位置服务将此URI映射到用户可用的另一个URI。
所以我没有使用域名,所以问题是To标头应该是Alice<sip:alice@192.168.1.42>
还是Alice<sip:alice@192.168.1.1>
。我有一个模拟注册商的SIP一致性套件,它似乎认为它是前者。阅读这样的RFC似乎让我相信它是后者。
谢谢!
答案 0 :(得分:2)
To标头应该是您正在连接的注册的AOR。通常,这意味着To标头具有与From标头相同的URI。
在这种情况下,它应该是&lt; sip:alice@192.168.1.42>。
编辑:viraptor和我正在从不同的假设工作。我没有假设“正常”的SIP设置。 (我没有做任何事情,我可以看到上面的答案完全可以接受的设置。但是......)所以,如果你的UA坐在192.168.1.42上,你的注册商+代理人在内部坐在192.168.1.1上,它的服务example.com域名,您的REGISTER将具有允许调用&lt; sip:alice@example.com>最终在SIP UA坐在192.168.1.42。
RFC 3261第10.2节,位于第56页底部和第57页顶部:
To: The To header field contains the address of record whose registration is to be created, queried, or modified. The To header field and the Request-URI field typically differ, as the former contains a user name. This address-of-record MUST be a SIP URI or SIPS URI. From: The From header field contains the address-of-record of the person responsible for the registration. The value is the same as the To header field unless the request is a third- party registration.
编辑:提问者的问题是关于特定的设置。通常,您的记录地址(“您是谁”)将不具有IP地址:&lt; sip:alice@example.com>,而不是&lt; sip:alice@192.168.1.42>。提问者的设置特别奇怪,因为AOR不可全局路由(192.168.0.0/16是专用网络块)。
记录地址是“人”的逻辑标识符。它说你是谁。联系URI说明您的位置。注册商为SIP代理提供位置服务。也就是说,代理人说“我怎么能联系这个AOR?”和位置服务(可能是也可能不是注册商!)说“在这个地址,在这个端口,使用这个传输”。注册器允许SIP UA维护此AOR /位置表,而不是管理配置的位置服务。因此,将私有地址范围内的IP地址作为AOR非常不寻常,因为局域网外的任何内容都不知道如何与您联系。
答案 1 :(得分:1)
假设您的设备具有IP PHONE1,PHONE2,REGISTRAR。在您的情况下,To
标头应设置为alice@DOMAIN
- 这可能等于alice@REGISTRAR
,但不一定是To
。如果您的注册商恰好是路由流量/做位置服务的代理,则它们是相同的。以下是它的工作原理:
代理进行注册:
在这种情况下,您正在使用alice@DOMAIN
标题等于Contact
和alice@PHONE1
等于To
来注册您的手机。 alice
创建一个其他用户可能知道的名称。它是您的逻辑标识符,而不是物理位置。
代理执行用户查找:
当有人试图拨打PHONE2
时,他们不会直接向手机发送请求,而是向域名代理发送请求。这意味着,他们在alice@DOMAIN
上使用的请求URI是alice@PHONE1
。当数据包到达域的代理并且URI被重写到已注册的联系人sip:bob@biloxi.com
并转发到正确的位置(即注册的电话本身或注册链中的另一个代理)。
查看RFC 3261,“24.1注册”一章。电话注册为sip:bob@192.0.2.4
,即使其位置为{{1}}。
答案 2 :(得分:0)
听起来应该是Alice<sip:alice@192.168.1.1>
。
SIP注册器将使用SIP请求中的URI来查找尝试注册联系人的SIP帐户。您问题的最终答案取决于您的SIP注册商使用的领域。如果它是192.168.1.1那么<sip:alice@192.168.1.1>
将是有效的AoR。如果它是192.168.1.42那么<sip:alice@192.168.1.42>
将是有效的AoR。
大多数注册商都会删除显示名称部分,这样您就可以关闭Alice,除非您尝试测试某些特定的一致性问题。