【问题标题】:Cannot reach SIP server无法访问 SIP 服务器
【发布时间】:2023-03-08 04:01:02
【问题描述】:

我正在使用 SIP 协议开发 VoIP IOS 应用程序。我有自己的 SIP 解析器库,我使用 GCDAsyncUDPSocket 向服务器发送数据。

问题是我的应用无法通过双 NAT 访问服务器。我 PING 并且服务器立即响应 PONG,但是当我发送 SIP 包时,我什至无法到达服务器。

我尝试使用其他客户端(如 Zoiper 或 Media5)访问服务器,并且运行良好。所以我觉得我做错了什么。

【问题讨论】:

    标签: ios objective-c sip voip nat


    【解决方案1】:

    确保:

    • 在联系人和通过标头中包含您的私有 IP:端口(不是错误的公共地址)
    • 将 rport 属性添加到 Via
    • 确保 REGISTER 消息格式正确(是有效的 SIP 消息)

    如果仍然无法正常工作,请检查服务器日志。如果仍然无法正常工作或您无权访问服务器日志,请让我查看您的 REGISTER 消息。

    【讨论】:

    • 实际上,我完全确定我将我的私有 IP 和端口包括在内,当我检查服务器日志时,端口无缘无故地发生了变化(我猜调制解调器正在做那)。我将 rport 包含在 Via 中,并且正在使用从 Zoiper 获取的 REGISTER 消息进行测试。还是不行
    • 很多路由器/调制解调器都有类似 SIP-alg 的东西,试图变得聪明,但大多数时候只是制造问题。在这种情况下,您应该将您的服务器配置为始终使用心理地址(从 UDP 套接字接收 sip 消息的位置)而不是 sip 信号中显示的地址。
    • 我可以给你看一条我的注册信息吗?我仍然不知道为什么 Zoiper 可以正常工作而我的应用却不能。
    • 是的,给我看看你的注册信息(也让我知道你的服务器地址是什么:端口)
    • 注册 sip:00000001-107-exten@proxy1.cloudvoice.mx SIP/2.0 Via: SIP/2.0/UDP 192.168.123.135:52602;rport;branch=z9hG4bKZVjSvIB Max-Forwards: 70 来自: <00000001-107-exten><00000001-107-exten>
    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2021-01-03
    • 2021-04-10
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多