接听后 Asterisk 终止外拨电话,发送“BYE”消息

接听后 Asterisk 终止外拨电话,发送“BYE”消息

我正在运行 Asterisk 1.6.1.10 / FreePBX 2.5.2.2,并且设置了出站中继。直到最近一切都运行正常(可能是因为升级到 FC12 或其他原因,我不确定)。

无论如何,设置似乎没有注册和设置呼叫的问题,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

是什么原因导致 Asterisk 提前结束通话,但仍然认为通话正在进行中?我不知道下一步该去哪里查找。

答案1

尝试转到canreinvite“是”,然后重新加载 sip。另外,发布此更改之前和之后 sip set debug on 的输出。

答案2

当您拿起电话时,会生成一个 BYE - 上面没有时间戳,但它似乎在 200 OK 之后立即发生。然后生成第二个 BYE,它现在不在对话范围内 - 因此是 481。

您能给我们提供显示 SIP 对话文本内容的对话 SIP 跟踪吗?我相信在星号中它是命令“sip debug”。

干杯,阿莱德。

相关内容