咨询SDP在183 Session Progress响应中的作用及前期媒体交互规则
问题1:183 Session Progress中携带的SDP作用是什么?
183响应属于SIP早期会话阶段的进展类响应,携带SDP的核心作用是提前完成双向媒体协商,不需要等到呼叫正式接通(200 OK返回)阶段才进行媒体参数交互。和仅用于通知振铃的180响应不同,183的SDP会完整携带UAS侧的编解码支持列表、媒体IP端口、媒体加密参数等信息,和INVITE请求中UAC携带的SDP完成offer/answer协商流程,让两端在呼叫接通前就拿到对侧的全部媒体通信参数。
问题2:200 OK/ACK交互完成之前,可向UAS发送哪些类型的RTP/UDP数据?
只要183阶段的SDP协商完成,UAC已经获取到UAS的媒体IP、端口、编解码规则,在正式接通前的早期媒体阶段,允许发送以下合规数据:
- RFC 2833/4733标准的DTMF事件包
- 用于链路连通性检测的STUN探测包、RTCP接收报告包
- 舒适噪声(CN)等背景帧数据
- 交互式早期业务对应的上行媒体流,比如前置IVR场景下的用户语音输入
注意:所有发送的数据包编码格式必须和183 SDP中协商一致的参数匹配,否则UAS会直接丢弃。
问题3:发送彩铃、广告等下行媒体不需要183 SDP,该SDP的实际用途是什么?
仅发送单向下行早期媒体(彩铃、广告)确实不需要UAC侧主动发数据,因此不需要183的SDP支持,183 SDP的核心价值是覆盖需要双向早期媒体交互、提前做媒体链路准备的场景:
- 前置IVR交互场景:比如呼叫运营商客服时,接通前就提示用户按数字键选择业务,用户按下的DTMF指令需要上行传输到UAS,就必须通过183 SDP拿到UAS的媒体地址才能完成上行发送
- 媒体质量预校验:运营商可在呼叫接通前通过183 SDP完成RTP链路连通性测试、编解码适配,避免接通后出现单通、无声音、codec不匹配等问题
- NAT穿透预协商:涉及跨网通信时,183阶段可以通过SDP携带的ICE候选地址完成NAT穿透,提前拿到可互通的公网媒体地址,大幅降低接通后的媒体建立时延
- 加密媒体预配置:使用SRTP加密的场景下,183 SDP可以提前交换加密密钥、加密算法参数,呼叫接通后可直接传输加密媒体,不需要额外协商耗时
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

