为什么 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 做了什么可以在拨打电话时避免身份验证?

附加信息:

以下是传入 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 政策。我很想在我的策略中添加一些限制以防止不需要的配置,但我的用户会抱怨......即使他们错了!

一些阅读:

  • rfc5039 - Session 发起协议 (SIP) 和垃圾邮件
  • rfc8197 - 不需要的呼叫的 SIP 响应代码