【问题标题】:RTP audio stream works only in one direction in a SIP callRTP 音频流在 SIP 呼叫中仅在一个方向上工作
【发布时间】:2015-12-29 04:21:44
【问题描述】:

我正在为 Session Boarder Controller (SBC) 开发软件功能。 我正在尝试使用两个 SIP 客户端和一个 Session Boarder Controller (SBC) 建立一个 SIP 呼叫。星号用作软开关。

当我打电话时,SIP 信号工作正常。但我只在一个方向上获得音频。我使用wireshark在所有接口上捕获了rtp数据包。我观察到一个方向的 rtp 数据包被星号丢弃。

注意:任何 SIP/SDP 消息中都没有仅发送属性。

我想知道星号中是否有任何可能导致此问题的设置?

我想知道的另一件事是,SIP 客户端从何处获取 RTP 连接信息。端口信息存在于媒体属性中

m=audio 16388 RTP/AVP 8 0 101

客户端从哪里获得传输 IP 地址?是来自 SDP 中的“o=”字段或“c=”字段还是 SDP 或 SIP 中的任何其他字段?

【问题讨论】:

  • 不是编程问题,媒体是在 SDP 中使用 c= 连接的,(当没有 ICE 时)请联系 Asterisk 论坛并提供 SIP 日志。
  • @spicyramen 谢谢!很抱歉在这里发布这个问题。我没有找到另一个合适的地方来问这个问题。我只是想,除了程序员,还有谁能回答这个问题。

标签: asterisk sip voip rtp


【解决方案1】:

您应该通过使用 Wireshark 捕获完整的呼叫来解决问题。然后仔细看:

  • 客户端 A 初始 INVITE:它期望媒体在哪个端口(m= 行)上它期望媒体在哪个地址(c= 行)
  • 为客户 A 初始邀请的 SBC:如果 SBC 正在锚定媒体(我假设是这样),请检查 m / c 行
  • 客户端 B 的 SBC 初始 INVITE:哪个端口/ip(m/c 线路)是客户端 A 的 SBC,期望媒体打开
  • 客户端 B 初始 INVITE:哪个端口/ip(m/c 线路)是客户端 B 的 SBC,期望媒体打开

这个方向上的所有节点是否都将媒体发送到正确的端口/ips(查看wireshark中的RTP流)?

然后检查另一个方向(基于 183 或 200 中的 SDP(取决于您的信令流程))。

注意:在 Wireshark 中有一个很好的功能可以提供很大帮助:电话 --> VoIP 呼叫,它可以更直观地显示呼叫流程

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多