【问题标题】:PJSIP transport parameter in sip contactSIP 联系人中的 PJSIP 传输参数
【发布时间】:2018-02-08 02:36:40
【问题描述】:

我正在将 PJSIP 用于 SIP 应用程序并且遇到以下问题。当我使用注册 URI“sip:test@172.31.5.153:5060”通过 UDP 注册时,注册工作正常。当 SipPhone 通过 UDP 呼叫时,它工作正常,但是当 SoftPhone 通过 TCP 呼叫时,应用程序以 SIP OK 应答,其中 SIP OK 的联系中缺少“transport=tcp”参数,因此 Softphone 拒绝呼叫。有人知道这个问题并且知道一个简单的解决方案吗?谢谢

【问题讨论】:

    标签: tcp udp sip pjsip


    【解决方案1】:

    您描述的行为听起来可能是 SIP RFC 中定义的完全“有效”的 sip 代理行为,具体取决于代理支持的内容与您在 pjsip 中设置的内容。

    我的猜测是你没有在 pjsip 设置中正确设置 UDP 传输?

    您必须记住的是,代理完全有效地向“联系人”地址发送对话框消息。

    通常情况下,即使默认使用 UDP,您也必须为 pjsip 设置 UDP 和 TCP 传输,因为 SIP 消息的大小对于 UDP 来说可能会变得太大,并且必须使用 TCP 连接。

    如果您想始终通过 TCP 连接,您必须在帐户 pjsua_acc_config::id 字段中添加“;tansport=tcp”,您可以在其中设置帐户的 sip 地址。

    我还建议,如果 pjsip 客户端通过 NAT 通过 Internet 连接,那么您也打开 rport 支持(并希望代理服务器正确支持 rport),因为 sip 服务器可能无法当您位于 NAT 之后时,创建一个 TCP/UDP 连接返回给您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多