2016-08-26 4 views
0

Я пытаюсь создать SIP-прокси-сервер. Я реализовал базовый поток вызовов для настройки вызова, но после этого, когда я хочу отправить для отправки сообщений вроде INFO Update или Bye ответ sio UA с ошибкой 481. Я использую Linphone в качестве моего UA.Also я хочу знать, это любой другой способ сообщить Sip UA отправить Intra-фрейм. Ниже свалка из Wireshark, пожалуйста, помогите мне по этой проблеме ....Sip-ответ клиента с транзакцией 481 не существует Ошибка ON INFO Сообщение

INVITE sip:[email protected]:5062 SIP/2.0 
Via: SIP/2.0/UDP 192.168.0.106:5060;branch=z9hG4bK.BCislbG05;rport 
From: <sip:[email protected]>;tag=ib-gWexLD 
To: sip:[email protected] 
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:[email protected]: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:[email protected]:5062>;tag=ib-gWexLD 
To: <sip:[email protected]>;tag=122vaclar 
Call-ID: BSEs~ww7v8 
CSeq: 20 INVITE 
Contact: <sip:[email protected]: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:[email protected]>;tag=122vaclar 
From: <sip:[email protected]: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:[email protected]:5062>;tag=ib-gWexLD 
To: <sip:[email protected]>;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:[email protected]: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:[email protected]:5062;transport=UDP SIP/2.0 
Via: SIP/2.0/UDP 192.168.0.106:5060;rport;branch=z9hG4bK.MpKbnK6Bm 
From: <sip:[email protected]>;tag=ib-gWexLD 
To: <sip:[email protected]>;tag=122vaclar 
CSeq: 20 ACK 
Call-ID: BSEs~ww7v8 
Max-Forwards: 70 





INFO sip:[email protected];transport=UDP SIP/2.0 
Via: SIP/2.0/UDP 192.168.0.50:5062;branch=z9hG4bK.BCislbG05;rport 
To: <sip:[email protected]>;tag=122vaclar 
From: <sip:[email protected]>;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:[email protected]>;tag=ib-gWexLD 
To: <sip:[email protected]>;tag=122vaclar 
Call-ID: BSEs~ww7v8 
CSeq: 22 INFO 

Спасибо заранее ничего бы хорошо ....

ответ

1

Вы действительно должны читать на субъектов SIP сделок и диалоги.

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

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

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

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

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

+0

Спасибо, что помогли. Он работал, и я также прочитаю, как диалог и тег работают в вызове SIP. Еще раз спасибо за указание на это :) –

0

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

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