挂断时Asterisk返回481

时间:2017-03-07 13:45:41

标签: asterisk sip

不确定这是否是我应该问这个问题的地方。

我正在开发一个简单的voip应用程序。我可以打电话给其他用户,但不能挂机。当客户端发送BYE请求时,服务器应答481 - 呼叫支路事务不存在。 这是客户日志:

INVITE sip:2@172.20.4.7:51110;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 172.20.4.7:5060;branch=z9hG4bK06952c7a;rport
Max-Forwards: 70
From: "First" <sip:1@172.20.4.7>;tag=as746cc61d
To: <sip:2@172.20.4.7:51110;transport=UDP>
Contact: <sip:1@172.20.4.7:5060>
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
CSeq: 102 INVITE
User-Agent: FPBX-AsteriskNOW-12.0.76.4(11.16.0)
Date: Tue, 07 Mar 2017 11:52:32 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
P-Asserted-Identity: "First" <sip:1@172.20.4.7>
Content-Type: application/sdp
Content-Length: 310

v=0
o=root 2015785808 2015785808 IN IP4 172.20.4.7
s=Asterisk PBX 11.16.0
c=IN IP4 172.20.4.7
t=0 0
m=audio 13952 RTP/AVP 0 8 3 111 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:111 G726-32/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 172.20.4.7:51110;branch=z9hG4bKnCqg
Contact: <sip:2@172.20.4.7:51110;transport=UDP>
To: <sip:2@172.20.4.7;transport=UDP>;tag=YU2R
From: <sip:2@172.20.4.7;transport=UDP>;tag=as746cc61d
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
CSeq: 102 INVITE
Allow-Events: presence, kpml, talk
Content-Length: 0

SIP/2.0 200 OK
Via: SIP/2.0/UDP 172.20.4.7:51110;branch=z9hG4bK06952c7a;rport
Contact: <sip:2@172.20.4.7:51110;transport=UDP>
To: <sip:2@172.20.4.7;transport=UDP>;tag=YU2R
From: "First" <sip:1@172.20.4.7;transport=>;tag=as746cc61d
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
CSeq: 102 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE
Accept: application/sdp, application/sdp
Accept-Language: en
Content-Type: application/sdp
Supported: replaces, norefersub, extended-refer, timer, outbound, path, X-cisco-serviceuri
Allow-Events: presence, kpml, talk
Content-Length: 247

v=0
o=Z 13 13 IN IP4 95.86.129.80
s=Test
c=IN IP4 95.86.129.80
t=0 0
m=audio 50000 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode = 30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
ACK sip:2@172.20.4.7:51110;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 172.20.4.7:5060;branch=z9hG4bK54ba94a0;rport
Max-Forwards: 70
From: "First" <sip:1@172.20.4.7>;tag=as746cc61d
To: <sip:2@172.20.4.7:51110;transport=UDP>;tag=YU2R
Contact: <sip:1@172.20.4.7:5060>
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
CSeq: 102 ACK
User-Agent: FPBX-AsteriskNOW-12.0.76.4(11.16.0)
Content-Length: 0

BYE sip:1@172.20.4.7;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 172.20.4.7:51110;branch=z9hG4bKAZsQ
Max-Forwards: 70
From: <sip:2@172.20.4.7;transport=UDP>;tag=as746cc61d
To: <sip:1@172.20.4.7;transport=UDP>;tag=YU2R
Contact: <sip:2@172.20.4.7:51110;transport=UDP>
CSeq: 2 BYE
User-Agent: TestSoftphone
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
Content-Length: 0

SIP/2.0 481 Call leg/transaction does not exist
Via: SIP/2.0/UDP 172.20.4.7:51110;branch=z9hG4bKAZsQ;received=172.20.1.40;rport=51110
From: <sip:2@172.20.4.7;transport=UDP>;tag=as746cc61d
To: <sip:1@172.20.4.7;transport=UDP>;tag=YU2R
Call-ID: 425bb181009f366c499b10f362d29ac6@172.20.4.7:5060
CSeq: 2 BYE
Server: FPBX-AsteriskNOW-12.0.76.4(11.16.0)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0

我读到如果To标记或From标记或Call-ID在对话框之外,可能会出现481,但看起来像标记和ID都可以。我没有收到To的标记,因此我生成Ringing数据包,其中设置了To标记,这可能是问题所在。

EDIT。我在sip_custom.conf中添加了“pedantic = no”,现在可以正常工作了。虽然我不知道这个对话有什么问题。

2 个答案:

答案 0 :(得分:1)

我非常确定BYE中不需要Contact头。了解错误的最快方法是检查与其他SIP客户端的完整对话。你很难过,这可能与To或From标题有关

答案 1 :(得分:0)

请比较初始INVITE和BYE消息中Via头的内容 - 值不同:Via:SIP / 2.0 / UDP 172.20.4.7:5060和Via:SIP / 2.0 / UDP 172.20.4.7:51110。 Asterisk根据Via标头中的地址和端口的组合创建了对话框并在内部(在其内部)标记了它。它期望从相同的地址和端口取消实际对话,因此来自不同源的所有请求被视为&#34;对话外&#34;并拒绝。 实际问题很普遍,并且是由安装在客户端网络边缘的路由器/防火墙的错误行为引起的。尝试在提到的设备上禁用ALG功能。