【发布时间】:2018-03-21 23:16:21
【问题描述】:
我已经分别使用编解码器 PCMA、PCMU 和 G729A 配置了我的驱动和接收 sip 端点。当我从驾驶端看到 sip 邀请时,我看到的编解码器顺序相同。接收方的 183 会话进度显示 G729A,呼叫使用此编解码器进行。为什么会这样?我希望协商的编解码器是 PCMA。有没有优先级?比如payload类型?
【问题讨论】:
标签: networking sip sdp
我已经分别使用编解码器 PCMA、PCMU 和 G729A 配置了我的驱动和接收 sip 端点。当我从驾驶端看到 sip 邀请时,我看到的编解码器顺序相同。接收方的 183 会话进度显示 G729A,呼叫使用此编解码器进行。为什么会这样?我希望协商的编解码器是 PCMA。有没有优先级?比如payload类型?
【问题讨论】:
标签: networking sip sdp
SDP 报价中的每个媒体行都包含支持的编解码器,按优先级降序排列。
RFC3264 5.1 状态(关于 SDP 优惠):
在所有情况下,“m=”行中的格式必须按顺序列出 首选项,列出的第一种格式是首选。在这个 在这种情况下,preferred 意味着要约的接收者应该使用 具有可接受的最高偏好的格式。
还有RFC3264 6.1(关于 SDP 答案):
虽然回答者可以按照他们想要的顺序列出格式 偏好,建议除非有特定原因, 回答者列表格式与它们相同的相对顺序 出现在报价中。换句话说,如果报价列表中的流 音频编解码器 8、22 和 48,按此顺序,仅应答器 支持编解码器 8 和 48,建议如果回答者有 没有理由改变它,答案中编解码器的顺序是 8, 48,而不是 48、8。这有助于确保在 两个方向。
以下内容来自 SDP 报价;发件人宣布他支持编解码器 8、0 和 101。他更喜欢 8 (PCMA) 而不是 0 (PCMU)。
m=audio 6200 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
接收方将决定实际使用哪些编解码器,并在 SDP 应答中发送。他会忽略他不支持的编解码器,并且可能会更改其余编解码器的相对顺序(尽管不推荐)。
【讨论】: