Ответ SIP-клиента с транзакцией 481 не существует Ошибка ON INFO Сообщение

Я пытаюсь создать прокси-сервер Sip. Я реализовал базовый поток вызовов для настройки вызова, но после этого, когда я хочу отправить, чтобы отправить некоторые сообщения, такие как обновление INFO или пока ответ sio UA с ошибкой 481. Я использую Linphone как мой UA. Также я хочу знать, есть ли другой способ сказать Sip UA, чтобы он отправлял Intra frame. Ниже дамп из 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 ответа

Решение

Вы действительно должны прочитать темы SIP-транзакций и диалогов.

Для идентификации диалога SIP UA использует значение Callid, локальный тег и удаленный тег. При отправке запроса локальный тег входит в заголовок from, а удаленный тег - в заголовок to (который является пустым в исходном сообщении).

Для UA, получающего запрос, локальный тег находится в заголовке To, а удаленный тег - в заголовке From.

Таким образом, когда в вашем случае Linphone пытается сопоставить запрос INFO с локальным тегом "122vaclar" и удаленным тегом "ib-gWexLD", но этот диалог не существует, так как первоначально созданный диалог имел локальный тег 'ib-gWexLD'.

В ваших ответах вы также не согласуетесь с URI в тегах from и to.

Кроме того, вы повторно используете значение ветви в запросе INFO. Это идентификатор транзакции, и его никогда не следует использовать повторно.

Проверьте содержимое заголовков Via в исходных сообщениях INVITE и INFO: комбинации адреса и порта различны (через: SIP/2.0/UDP 192.168.0.106:5060 и через: SIP/2.0/UDP 192.168.0.50:5062 соответственно).

Когда сервер SIP создает диалог внутри, он использует фактические значения. Учитывая этот факт, ваш прокси-сервер SIP рассматривает последующий запрос INFO, полученный с другого адреса и порта, как элемент вне диалога и отклоняет его.

Другие вопросы по тегам