【问题标题】:Why doesn't a SIP server require authorization for this INVITE?为什么 SIP 服务器不需要对此 INVITE 的授权?
【发布时间】:2019-04-16 16:38:31
【问题描述】:

我在 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 响应。

Telephone 做了什么来避免在拨打电话时进行身份验证?

其他信息:

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

【问题讨论】:

    标签: sip


    【解决方案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 响应代码

    【讨论】:

    • 除了添加 Linphone 帐户外,我没有配置 Telephone。但你是对的:Telephone 直接将 INVITE 请求发送给 Antisip,这很奇怪。并且 From 标题是正确的。
    猜你喜欢
    • 2013-04-01
    • 2018-05-07
    • 1970-01-01
    • 2017-02-06
    • 2021-11-03
    • 2019-09-10
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    相关资源
    最近更新 更多