亿联T31话机注册在云kamailio通话无声音 遇到的问题亿联话机与软电话分别注册在kakailio上测试结果是注册成功后的软电话互打成功但软电话拨打亿联话机无声音记录一下过程目前为止此问题仍未解决先附上解决过程后续如果有答案将写上原因。运行环境一台在云上的kamailio服务器5.8.2一台亿联话机T31, 软电话 microsip解决过程为测试亿联话机本身是否存在问题将亿联话机注册至FS上测试通话无异常进一步将问题定位在kamailio配置及亿联话机的配置上。直接先抓包走起112.23.85.30软电话2001183.247.1.185: 亿联话机 201110.0.4.13 kamailio从抓包分析可以看出主叫2001发给被 叫2011的ACK 似乎一直没正常发送在连续不断发送ACK看图可知。继续找不同发现ACK 发送的端口是 5081但上面的invite端口全是到的4501,唯独这个ACK发送到了4501, 然后查看报文200 OK SDP 报文果然此contact带过来的地址 真是这个5081此端口是亿联话机自带的本地sip端口初步怀疑是不是发到5081的ACK没有被正式的接收首先想到的的就是 kamailio中修改 200 ok 报文替换contact 硬改成 与4501端口一致是不是问题就能解决 手搓kamailio一顿操作猛 如虎。继续测试如现ACK 的发送地址正常。 但问题依旧没有声音丢了RTP。。。。。。苍天啊大地啊。。。。。列出所有有关包文中的RTP 端口invite sdp (112.23.85.30:1250 - 10.0.4.13)200ok sdp (5060 - 112.23.85.30:1250) 这个4480看起来就觉得不得劲啊。。。续续。。。。。抓包。。。软电话2001本地抓包invite 报文这里的RTP 是 从4068 出来的但是从上面服务器抓包看invite sdp (112.23.85.30:1250 - 10.0.4.13) 此处的invite已经将4068改成了12600端口 思索了一下这个变动大概率是在kamilio nat时被自动改了猜测亿联电话抓包200 OK SDP返回时的报文再看亿联话机侧抓的报文此处的RTP 是自己的 10990 到 12600主叫2001总结一下主叫 2001 发起呼叫时本地RTP端口4068 送到 kamilio后转为12600被叫2011 (亿联话机) 本地RTP端口10990 送出后在kamailio侧转为了 4480最终RTP流走的是点到点的软电话2001本地抓包 看最终2001:4068 - 2011:4480这样能通吗不知如何解。。。软电话互拨的正常报文下面是直接用注册在kamailio上的软电话互拨一切正常分机2001侧抓包两个RTP 流向kamailio服务器侧抓包2001 invite结论因为kamailio不处理媒体流所以在服务器中抓包是没有 RTP 的报文属正常现象那就说明软电话与亿联电话互拨时接通后无声音因该是 软电话 udp端口与亿联电话的udp端口是不通的导至没有传送语音流后来在抓软电话的报文时也发现了IMCP端口不可达的原因排除法分机2001打软电话2012 正常接通rtp正常说明亿联话机的问题至少问题在哪怎么配置还未得出正确的解决方案此问题最终还是需要在kamailio中加入rtpengine处理rtp流