用481事务sip客户端回复不存在错误ON INFO消息

时间:2016-08-26 15:36:10

标签: sip voip linphone

我正在尝试创建一个Sip Proxy服务器。我已经实现了呼叫设置的基本呼叫流程,但之后我想发送一些消息,如INFO Update或Bye sio UA回复,481错误.I我使用Linphone作为我的UA。我想知道是否有任何其他方式告诉Sip UA发送Intra帧。以下是来自wireShark的转储请帮我解决这个问题....

INVITE sip:1259@192.168.0.50:5062 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.106:5060;branch=z9hG4bK.BCislbG05;rport
From: <sip:clary@192.168.0.106>;tag=ib-gWexLD
To: sip:1259@192.168.0.50
CSeq: 20 INVITE
Call-ID: BSEs~ww7v8
Max-Forwards: 70
Supported: replaces, outbound
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
Content-Length: 212
Contact: <sip:clary@192.168.0.106:5062>;+sip.instance="<urn:uuid:2cc4cd7f-6bc9-436c-a83e-cd5fd1ab7647>"
User-Agent: Linphone/3.7.0 (belle-sip/1.3.0)

v=0
o=clary 68 1084 IN IP4 192.168.0.106
s=Talk
c=IN IP4 192.168.0.106
t=0 0
m=audio 7690 RTP/AVP 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=video 4790 RTP/AVP 103
a=rtpmap:103 VP8/90000


SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.50:5062;rport=5062;branch=z9hG4bK.BCislbG05
From: <sip:1259@192.168.0.50:5062>;tag=ib-gWexLD
To: <sip:clary@192.168.0.106>;tag=122vaclar
Call-ID: BSEs~ww7v8
CSeq: 20 INVITE
Contact: <sip:1259@192.168.0.50:5062;transport=UDP>;+sip.instance="<urn:uuid:9e176788-7cef-408f-bae9-8733ffa2451b>";expires=3600
User-Agent: Test Sip Server
Allow: INVITE, ACK, BYE, CANCEL, INFO,OPTIONS, MESSAGE,UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Content-Length: 0


SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.0.50:5062;rport=5062;branch=z9hG4bK.BCislbG05
To: <sip:clary@192.168.0.106>;tag=122vaclar
From: <sip:1259@192.168.0.50:5062>;tag=ib-gWexLD
Call-ID: BSEs~ww7v8
CSeq: 20 INVITE
User-Agent: Test Sip Server
Content-Length: 0


SIP/2.0 200 Ok
Via: SIP/2.0/UDP 192.168.0.50:5062;rport=5062;branch=z9hG4bK.BCislbG05
From: <sip:1259@192.168.0.50:5062>;tag=ib-gWexLD
To: <sip:clary@192.168.0.106>;tag=122vaclar
Call-ID: BSEs~ww7v8
CSeq: 20 INVITE
User-Agent: Test Sip Server
Supported: outbound
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,UPDATE
Contact: <sip:1259@192.168.0.50:5062;transport=UDP>;+sip.instance="<urn:uuid:9e176788-7cef-408f-bae9-8733ffa2451b>"
Content-Type: application/sdp
Content-Length: 282

v=0
o=claryicon 1983 678901 IN IP4 192.168.0.50
s=-
i=Test sip Server
c=IN IP4 192.168.0.50
t=0 0
m=audio 21483 RTP/AVP 0
a=sendrecv
a=rtcp:21483
a=rtpmap:0 PCMU/8000
m=video 21483 RTP/AVP 96
a=sendrecv
a=rtcp:21483
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack pli


ACK sip:1259@192.168.0.50:5062;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 192.168.0.106:5060;rport;branch=z9hG4bK.MpKbnK6Bm
From: <sip:clary@192.168.0.106>;tag=ib-gWexLD
To: <sip:clary@192.168.0.106>;tag=122vaclar
CSeq: 20 ACK
Call-ID: BSEs~ww7v8
Max-Forwards: 70





INFO sip:clary@192.168.0.106;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 192.168.0.50:5062;branch=z9hG4bK.BCislbG05;rport
To: <sip:1259@192.168.0.50>;tag=122vaclar
From: <sip:clary@192.168.0.106>;tag=ib-gWexLD
CSeq: 22 INFO
Call-ID: BSEs~ww7v8
Max-Forwards: 70
Content-Type: application/media_control+xml
Content-Length: 185
User-Agent: Test Sip Server
Allow: INVITE, ACK, BYE, CANCEL, INFO,OPTIONS, MESSAGE,UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces

<?xml version="1.0" encoding="utf-8" ?><media_control>  <vc_primitive>    <to_encoder>      <picture_fast_update></picture_fast_update>    </to_encoder>  </vc_primitive></media_control>


SIP/2.0 481 Call/transaction does not exist
Via: SIP/2.0/UDP 192.168.0.50:5062;branch=z9hG4bK.BCislbG05;rport
From: <sip:clary@192.168.0.106>;tag=ib-gWexLD
To: <sip:1259@192.168.0.50>;tag=122vaclar
Call-ID: BSEs~ww7v8
CSeq: 22 INFO

在此先感谢任何事情都会没事......

2 个答案:

答案 0 :(得分:1)

您真的应该阅读SIP交易和对话的主题。

要识别对话框,SIP UA使用Callid值,本地标记和远程标记。发送请求时,本地标记位于from标头和to标头中的远程标记(初始消息中为空)。

对于接收请求的UA,本地标记位于To标头中,远程标记位于From标头中。

因此,在您的情况下,Linphone正在尝试将INFO请求与本地标记“&#39; 122vaclar&#39;以及&#39; ib-gWexLD&#39;的远程标记,但该对话框不存在,因为最初创建的对话框具有本地标记&#39; ib-gWexLD&#39;。

在您的回复中,您与from和to标记中的URI也不一致。

此外,您正在重新使用INFO请求中的分支值。这是一个交易ID,永远不应该重复使用。

答案 1 :(得分:1)

请检查初始INVITE和INFO中的Via标头的内容:地址和端口的组合是不同的(通过:SIP / 2.0 / UDP 192.168.0.106:5060和Via:SIP / 2.0 / UDP 192.168.0.50:5062 )。

当SIP服务器在内部创建对话框时,它使用实际值。鉴于这一事实,您的SIP代理将从不同地址和端口收到的后续INFO请求视为对话外的内容并拒绝它。