【问题标题】:asterisk Unable to connect SIP socket to ip:port Connection timed out星号无法将 SIP 套接字连接到 ip:port 连接超时
【发布时间】:2014-01-08 20:45:13
【问题描述】:

我正在开发一个 sip 客户端 - 星号服务器。我正在使用 tcp 连接。

作为第一个测试,客户端是 Zoiper。 注册和拨出电话按预期工作,但在注册过程或拨出电话 3-4 分钟后,在测试来电时,我确实在服务器上收到此消息:

tcptls.c:446 ast_tcptls_client_start: 无法将 SIP 套接字连接到 ip:port: 连接超时

邀请消息(来电)永远不会到达客户端(Zoiper 软件电话)。

为什么会出现这个错误? 从我的假设中出现这种情况的原因是因为客户端或服务器都没有发送保持活动消息,因此在 tcp 套接字超时后,将无法从服务器端访问位于 nat 后面的客户端。

【问题讨论】:

    标签: tcp sip asterisk


    【解决方案1】:

    出现此错误是因为您的 NAT(如果您使用 3g,则为 3g)断开连接。因此,无法再使用相同的连接了。

    您的应用程序的正确行为 - 发送 SIP OPTIONS 消息,如果超时 - 再次注册。

    是的,您需要发送 keepalives(推荐方法 - OPTIONS 消息)或在星号侧设置 keepalive,并在您的正确答案中设置。

    【讨论】:

    • 感谢您的重播。我每 10 分钟重新注册一次客户。但是在这 10 分钟之间,客户端和服务器上都没有保持活动机制。服务器是否可以为 nat 后面的客户端打开一个新套接字?有什么办法吗?如果不使用,我不想让服务器上的 tcp 套接字保持打开状态。在这种情况下,您能给我一些建议吗?
    • P.S 我想在新的重新注册之前使连接超时,因为正如我所提到的,我不想在服务器上保持打开的连接。对于大量的 oof sip 客户来说,它效率不高,是吗?
    • 不,SERVER没有任何办法!!!!打开客户端上的套接字!!!。如果您不想要保持连接,请使用隧道,或使用 udp 或编写自己的专用 nat-server。
    • 眩晕怎么样?是否可以配置一个 stun 向客户端发送保持活动消息以保持套接字打开,并且当有传入消息时,服务器将能够将数据包发送到客户端,以防路由器具有映射表?
    • 您认为这是一个解决方案吗?谢谢你的时间:)
    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多