为什么SIP服务器不需要此INVITE的授权?

安德烈·马库卡

我正在macOS上使用电话软件电话。拨打电话时,它将发送以下INVITE请求:

INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.1.13:63980;rport;branch=z9hG4bKPj1J2vaemfz28guXCjwsCNuCM4K7AGksTF
Max-Forwards: 70
From: "Andriy Makukha" <sip:[email protected]>;tag=CK3y0yotv2v1AclTF2sBahkYcA721X7t
To: <sip:[email protected]>
Contact: "Andriy Makukha" <sip:[email protected]: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记录。
艾美

这是传入的INVITE中的标题:

From: "Andriy Makukha" <sip:[email protected]>;tag=...
To: <sip:[email protected]>

从理论上讲,上面的INVITE应该是:

  • 首先发送到sip.linphone.org
  • sip.linphone.org挑战407
  • 发送到sip.linphone.org的凭据
  • 从sip.linphone.org转发到sip.antisip.com
  • 不受sip.antisip.com的挑战

阅读您对问题的描述后,可能是您配置了错误的应用程序,并且您的SIP身份(在From标头中)错了吗?如果将“电话”配置为直接发送到sip.antisip.com,则该呼叫将由sip.antisip.com转发,不带407。

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

一些阅读:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么“ typeof”不需要括号?

为什么Java需要接口而Smalltalk不需要接口?

为什么此分配不需要显式强制转换?

为什么编译器需要.java后缀,但解释器不需要.class后缀?

为什么某些应用程序需要使用其他Web服务器(例如Apache),而node或express却不需要?

Spring Boot->为什么我不需要在服务中捕获异常?

为什么for循环不需要可变的迭代器?

为什么`head`需要`()`和`shape`不需要?

为什么数据集的foreach方法不需要编码器,而map需要?

为什么授权请求在OAuth2授权代码授予流程中不需要客户端机密?

为什么不需要开玩笑?

* ngFor为什么不需要括号?

为什么不需要staticmethod装饰器?

为什么我不需要在邮件中指定SMTP服务器?

为什么我们在添加html服务器控制器时不需要编译asp.net代码

为什么我们不需要像Windows一样在Ubuntu上启动Apache服务器?

为什么需要SMTP服务器?

为什么在使用GLFW时不需要加载着色器?

为什么C编程需要编译器而shell脚本不需要?

为什么在xpra中得到“原因是:此服务器不需要身份验证”

使用SSH在远程服务器上启动进程-不需要后台进程

为什么UDP服务器不需要多线程即可同时为多个客户端提供服务?

为什么某些远程桌面服务不需要您设置端口转发?

服务器不需要GPU吗?

从主机访问 Docker MySQL 服务器,不需要容器的 IP 地址

将数据提交给 node.js 服务器,无需表单。不需要不需要导入,它们不起作用

服务器正在响应不需要的响应?

为什么链接器正在寻找不需要的库

有没有什么方法可以在浏览器页面中打开python的数据而不需要创建服务器?