这两天碰到一个问题,freeswitch呼叫软终端(eyebeam,x-lite等)怎么也呼不起来。有的是摘机后fs直接挂掉,有的是呼叫直接建立不了,回488消息。定位了一天,以为是SDP媒体协商问题。
FS也确实在日志里打印了媒体协商问题。
FS在invite消息里带的SDP,
看了一下payload number是8 101, 一般来说用ulaw肯定没有问题。
再看一下软终端(eyebeam)回200OK时带的SDP
IP地址和port都是无效的,所以freeswitch无法发送媒体包,进而导致挂机。
看了一下软终端的codec,也是OK的啊。
郁闷了半天,后来发现freeswitch的originate命令中带了media_webrtc=true参数导致SDP无法协商。
media_webrtc=true是用于webrtc的。
把这个参数去掉后,就正常了。
观察了一下正常的SDP
果然使用的SDP格式不一样呢。