SIP服务器为何不要求此INVITE授权?

时间:2019-04-16 16:38:32

标签: sip

我在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头。但是,服务器永远不会通过407 Proxy Authentication Required响应来挑战该请求。通话总是直接进行。

另一方面,当我使用另一个SIP客户端时,服务器总是发送Proxy Authentication Required响应。

电话有什么用,可以避免拨打电话时进行身份验证?

其他信息:

  • 启动后,软件电话将发送REGISTER请求并接收到401 Unathorized响应,然后使用Authorization标头重新发送REGISTER
  • 将REGISTER请求发送到91.121.209.194,这是域sip.linphone.org(呼叫者的域)的A记录
  • 但是,INVITE请求被直接发送到91.121.30.149,这是sip.antisip.com域(被呼叫者的域)的A记录。

1 个答案:

答案 0 :(得分:1)

这是传入的INVITE中的标题:

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标头中)是错误的吗?如果将Telephone配置为直接发送到sip.antisip.com,则该呼叫将由sip.antisip.com转发,不带407。

作为sip.antisip.com的所有者,如果他们似乎不是来自From头服务,则可以(应该?)拒绝对用户的传入呼叫。但是我还没有实施这种反垃圾邮件政策。我很乐意在策略中添加一些限制,以防止进行不必要的配置,但是我的用户会抱怨...即使他们错了!

一些读物:

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