为什么 SIP 服务器不需要对此 INVITE 进行授权?
Why doesn't a SIP server require authorization for this INVITE?
我在 macOS 上使用 Telephone 网络电话。拨打电话时,它发送以下 INVITE 请求:
INVITE sip:login@sip.antisip.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.13:63980;rport;branch=z9hG4bKPj1J2vaemfz28guXCjwsCNuCM4K7AGksTF
Max-Forwards: 70
From: "Andriy Makukha" <sip:nickname@sip.linphone.org>;tag=CK3y0yotv2v1AclTF2sBahkYcA721X7t
To: <sip:login@sip.antisip.com>
Contact: "Andriy Makukha" <sip:nickname@192.168.1.13:63980;ob>
Call-ID: Tu2FDGIveVVM1BZFKY1IUYFxkxuBWZU5
CSeq: 18057 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, norefersub
User-Agent: Telephone 1.4
Content-Type: application/sdp
Content-Length: 541
...
如您所见,请求既没有 Proxy-Authorization
也没有 Authorization
header。但是,服务器从不使用 407 Proxy Authentication Required
响应来挑战此请求。电话总是直接接通。
另一方面,当我使用另一个 SIP 客户端时,服务器总是发送 Proxy Authentication Required 响应。
Telephone 做了什么可以在拨打电话时避免身份验证?
附加信息:
- 启动后,软电话发送一个 REGISTER 请求并收到一个
401 Unathorized
响应,然后使用 Authorization
header 重新发送 REGISTER
- REGISTER 请求发送到 91.121.209.194,这是 A-record 域 sip.linphone.org(调用方的域)
- 然而,INVITE 请求被直接发送 到 91.121.30.149,这是域 sip.antisip.com(被叫方的域)的 A-record .
以下是传入 INVITE 中的 header:
From: "Andriy Makukha" <sip:nickname@sip.linphone.org>;tag=...
To: <sip:login@sip.antisip.com>
理论上,上面的INVITE应该是:
- 先发给sip.linphone.org
- 受到 sip.linphone.org
的 407 挑战
- 使用凭据
发送到sip.linphone.org
- 从 sip.linphone.org 转发到 sip.antisip.com
- 未受到 sip.antisip.com
的挑战
阅读您对问题的描述,您可能错误配置了您的应用程序并且您的 SIP 身份(在 From header 中)是错误的?如果 Telephone 配置为直接发送到 sip.antisip.com 那么,呼叫将由 sip.antisip.com 转发而不用 407。
作为 sip.antisip.com 的所有者,我可以(应该?)拒绝来电,如果他们似乎不是来自 From header 的服务。但是我没有实施这样的 anti-spam 政策。我很想在我的策略中添加一些限制以防止不需要的配置,但我的用户会抱怨......即使他们错了!
一些阅读:
我在 macOS 上使用 Telephone 网络电话。拨打电话时,它发送以下 INVITE 请求:
INVITE sip:login@sip.antisip.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.13:63980;rport;branch=z9hG4bKPj1J2vaemfz28guXCjwsCNuCM4K7AGksTF
Max-Forwards: 70
From: "Andriy Makukha" <sip:nickname@sip.linphone.org>;tag=CK3y0yotv2v1AclTF2sBahkYcA721X7t
To: <sip:login@sip.antisip.com>
Contact: "Andriy Makukha" <sip:nickname@192.168.1.13:63980;ob>
Call-ID: Tu2FDGIveVVM1BZFKY1IUYFxkxuBWZU5
CSeq: 18057 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, norefersub
User-Agent: Telephone 1.4
Content-Type: application/sdp
Content-Length: 541
...
如您所见,请求既没有 Proxy-Authorization
也没有 Authorization
header。但是,服务器从不使用 407 Proxy Authentication Required
响应来挑战此请求。电话总是直接接通。
另一方面,当我使用另一个 SIP 客户端时,服务器总是发送 Proxy Authentication Required 响应。
Telephone 做了什么可以在拨打电话时避免身份验证?
附加信息:
- 启动后,软电话发送一个 REGISTER 请求并收到一个
401 Unathorized
响应,然后使用Authorization
header 重新发送 REGISTER
- REGISTER 请求发送到 91.121.209.194,这是 A-record 域 sip.linphone.org(调用方的域)
- 然而,INVITE 请求被直接发送 到 91.121.30.149,这是域 sip.antisip.com(被叫方的域)的 A-record .
以下是传入 INVITE 中的 header:
From: "Andriy Makukha" <sip:nickname@sip.linphone.org>;tag=...
To: <sip:login@sip.antisip.com>
理论上,上面的INVITE应该是:
- 先发给sip.linphone.org
- 受到 sip.linphone.org 的 407 挑战
- 使用凭据 发送到sip.linphone.org
- 从 sip.linphone.org 转发到 sip.antisip.com
- 未受到 sip.antisip.com 的挑战
阅读您对问题的描述,您可能错误配置了您的应用程序并且您的 SIP 身份(在 From header 中)是错误的?如果 Telephone 配置为直接发送到 sip.antisip.com 那么,呼叫将由 sip.antisip.com 转发而不用 407。
作为 sip.antisip.com 的所有者,我可以(应该?)拒绝来电,如果他们似乎不是来自 From header 的服务。但是我没有实施这样的 anti-spam 政策。我很想在我的策略中添加一些限制以防止不需要的配置,但我的用户会抱怨......即使他们错了!
一些阅读: