朋友在用asterisk与华为的软交换(大概是x300)对接时,注册和呼叫过程都没问题,被叫也能振铃,但是一接起电话就会断,很郁闷,叫我帮他看看。一听,心想不会吧,是开放标准sip对接喔,即使又不兼容的东西,也不会直接就拆线。于是搭个环境试试,asterisk端作被叫。果然,在asterisk回了200ok后,软交换直接就发了个bye过来,断线。
在asterisk上打开sip debug,看看信令包有何异常。发现软交换发过来的bye上有个reason,
Reason: Q.850;cause=100;text="Invalid information element contents"
呵呵,不理解。上网搜了一下,发现之前有个tx也遇到同样的问题,但是没有给出解决办法。算了,还是看看200ok里面有什么把柄。
看来看去,sdp里面就这个嫌疑最大:a=silenceSupp:off - - - -。
这个有什么用呢?google一下
Asterisk uses the incoming Stream as a timing source for sending its outgoing Stream. If the incoming stream is interrupted due to silence suppression then musiconhold will be choppy. So in conclusion, you cannot use silence suppression. Make sure ALL SIP phones have disabled silence suppression. There is a solution for the silence suppression problem, see for details.
原来如此,那没什么影响,直接把它从sdp去掉,再试。ok,呼叫一切正常。
阅读(5997) | 评论(4) | 转发(0) |