星号终止出境呼叫时,发送“BYE”消息

我正在运行Asterisk 1.6.1.10 / FreePBX 2.5.2.2,我有一个出站中继设置。 直到最近,一切都用得很好(可能是因为升级到FC12或其他我不确定的东西)。

无论如何,设置似乎没有问题注册和build立的呼叫,RTP数据包双向,你可以听到对方的振铃。 但是,当呼叫被接通时,传入的RTP分组将停止。 在仔细观察Wireshark之​​后,这些特定的数据包似乎是原因:

trunk->asterisk SIP/SD Status: 200 OK, with session description asterisk->trunk SIP Request: ACK sip:<phone>@trunk:6889 asterisk->trunk SIP Request: BYE sip:<phone>@trunk:6889 [..about a dozzen RTP packets in/outbound..] trunk->asterisk SIP Status: 200 OK, CSeq: 104 Bye [..outbound RTP continues, phone is silent..] 

然后入站RTP数据包停止,但是星号日志在此处不显示任何活动。 最后一个条目的内容是“SIP /回答SIP /”。

然后当你挂断延伸,你会得到

 asterisk->trunk SIP Request: BYE sip:<phone>@trunk:6889 trunk->asterisk SIP Status: 481 Call Leg/Transaction does not exist 

我在FreePBX的中继对等设置是:

 username=<user> fromuser=<user> canreinvite=no type=friend secret=<pass> qualify=no [qualify yes produces 401/forbidden messages] nat=yes insecure=very host=<sip trunk gateway> fromdomain=<sip trunk gateway> disallow=all context=from-pstn allow=ulaw dtmfmode=inband 

sip_general_custom.conf我有

 stunaddr=stun.xten.com externrefresh=120 localnet=192.168.1.1/255.255.255.0 nat=yes 

什么导致星号提前结束通话,仍然认为通话正在进行? 我不知道在哪里看下。

试着把canreinvite转到yes,然后重新加载sip。 另外,这个改变之前和之后都会把sip设置为debug的输出。

当你拿起电话时,会有一个BYE信号 – 上面没有时间标记,但是好像在200 OK之后立即出现。 然后生成第二个BYE,这在现在的谈话之外 – 因此是481。

你可以给我们一个会话的SIP跟踪,显示SIP会话的文本内容吗? 我相信星号是“sipdebugging”的命令。

欢呼,阿莱德。