Получение ответа RINGING на SIP UAC без отправки его с другого UAC - PullRequest
2 голосов
/ 06 июня 2010

Я надеюсь, что это будет мой последний вопрос об этой теме SIP, мне удалось преодолеть последнюю проблему , которую я попросил, чтобы друг помог мне с удаленного компьютера, Я могу соединиться между компьютерами, но вот что, согласно всем примерам , которые я видел, Callee должен вызывать ответ Ringing, но в моем случае приложения я еще не реализовал его , но я все еще получаю на вызывающем UAC ответ на звонок, это сообщения SIP, которые находятся на стороне вызывающего:

Исходящий запрос 5:

INVITE sip:320@hostName.hn SIP/2.0
Contact: "Client 310" <sip:310@hostName.hn>
From: "Client 310" <sip:310@hostName.hn>
Max-Forwards: 32
CSeq: 2 INVITE
Call-ID: f8d171d3278788df9e03eb9cf3acba70@xxx.xxx.x.xxx
Allow: INVITE,CANCEL,ACK,BYE,OPTIONS
Content-Type: application/sdp
Proxy-Authorization: Digest username="310",nonce="012afffb",realm="asterisk",uri="sip:310@hostName.hn",algorithm=MD5,response="d19ca5b98450b4be7bd4045edb8a3a2f"
Via: SIP/2.0/UDP hostName.hn:5060
To: "Client 320" <sip:320@hostName.hn>;tag=as5a8fa200
Content-Length: 257

v=0
o=310 7108915969559970847 7108915969559970847 IN IP4 xxx.xxx.x.xxx
s=-
i=Nu-Art Software - TacB0sS VoIP information
c=IN IP4 xxx.xxx.x.xxx
m=audio 3312 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000

Входящий ответ 6:

SIP/2.0 100 Trying
Via: SIP/2.0/UDP hostName.hn:5060;branch=f8d171d3278788df9e03eb9cf3acba70-xxx.xxx.x.xxx-2-invite-hostName.hn-5060333732;received=79.181.6.233
From: "Client 310" <sip:310@hostName.hn>
To: "Client 320" <sip:320@hostName.hn>;tag=as5a8fa200
Call-ID: f8d171d3278788df9e03eb9cf3acba70@xxx.xxx.x.xxx
CSeq: 2 INVITE
User-Agent: Freeswitch 1.2.3
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY,INFO
Supported: replaces
Contact: <sip:320@yy.yy.yy.yy>
Content-Length: 0

Входящий ответ 7:

SIP/2.0 180 Ringing
Via: SIP/2.0/UDP hostName.hn:5060;branch=f8d171d3278788df9e03eb9cf3acba70-xxx.xxx.x.xxx-2-invite-hostName.hn-5060333732;received=79.181.6.233
From: "Client 310" <sip:310@hostName.hn>
To: "Client 320" <sip:320@hostName.hn>;tag=as5a8fa200
Call-ID: f8d171d3278788df9e03eb9cf3acba70@xxx.xxx.x.xxx
CSeq: 2 INVITE
User-Agent: Freeswitch 1.2.3
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY,INFO
Supported: replaces
Contact: <sip:320@yy.yy.yy.yy>
Content-Length: 0

Звоните по телефону: 320@hostName.hn Звонит

Входящий ответ 8:

SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP hostName.hn:5060;branch=f8d171d3278788df9e03eb9cf3acba70-xxx.xxx.x.xxx-2-invite-hostName.hn-5060333732;received=79.181.6.233
From: "Client 310" <sip:310@hostName.hn>
To: "Client 320" <sip:320@hostName.hn>;tag=as5a8fa200
Call-ID: f8d171d3278788df9e03eb9cf3acba70@xxx.xxx.x.xxx
CSeq: 2 INVITE
User-Agent: Freeswitch 1.2.3
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY,INFO
Supported: replaces
Contact: <sip:320@yy.yy.yy.yy>
Content-Type: application/sdp
Content-Length: 264

v=0
o=root 27669 27669 IN IP4 yy.yy.yy.yy
s=session
c=IN IP4 yy.yy.yy.yy
t=0 0
m=audio 10914 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv

Входящий ответ 9:

SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP hostName.hn:5060;branch=f8d171d3278788df9e03eb9cf3acba70-xxx.xxx.x.xxx-2-invite-hostName.hn-5060333732;received=79.181.6.233
From: "Client 310" <sip:310@hostName.hn>
To: "Client 320" <sip:320@hostName.hn>;tag=as5a8fa200
Call-ID: f8d171d3278788df9e03eb9cf3acba70@xxx.xxx.x.xxx
CSeq: 2 INVITE
User-Agent: Freeswitch 1.2.3
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REFER,SUBSCRIBE,NOTIFY,INFO
Supported: replaces
Content-Length: 0

Я не отвечаю на приглашение, поэтому все это происходит, но почему мне звонят, если я не тот, кто его отправляет.

Спасибо

Адам.

Обновление:

Если вы заметите время, когда я получу ответы:

Входящий ответ 7: 1275879030656 Звон

Входящий ответ 8: 1275879038734 Ход сеанса

Входящий ответ 9: 1275879038781 Служба недоступна

Я не понимаю логику здесь, у меня есть 8 секунд от первого звонка до прогресса сеанса, но от Прогресс сеанса до Сервис недоступен У меня 47 мс?

Как это имеет смысл? 50 мс, что делать? время для анализа ответа + время для открытия сеанса RTP + время для создания ответа + время для создания SDP + время, необходимое серверу для получения сообщения - время, которое требуется, чтобы сообщение 503 прибыло в мой UAC, не эта резка мало близка? в какой момент я должен ответить на сервер?

Еще раз спасибо за вашу помощь Wiz.

1 Ответ

2 голосов
/ 07 июня 2010

Поскольку сервер FreeSwitch, которому вы звоните, является B2BUA и должен быть настроен на создание обратного вызова независимо от участка переадресованного вызова. Если бы сервер, на который вы звонили, был SIP Proxy без возможностей B2BUA, вы не получили бы никаких звонков или других ответов, пока устройство SIP на дальнем конце не ответило.

Ответы 7 и 8 вызовут ваш программный телефон. Для ответа 7, 180 Звонок, ваш софтфон должен генерировать тон. Для ответа 8, 183 Session Progress с RTP ваш программный телефон получит от сервера FreeSwitch индикатор выполнения, который он должен отображать.

Обновление: Причина времени, которое вы видите, опять-таки в том, что вы делаете вызов B2BUA, в данном случае FreeSwitch. Похоже, что он настроен на автоматическую отправку ответа на звонок при получении нового вызова, и в то же время он обрабатывает план набора для определения того, что делать с вызовом. Где-то в этой диалплане, кажется, есть команда, указывающая ход сеанса, в который входит ответ 183, но затем он должен дойти до конца диалплана или встретить ошибку, которая приводит к ответу 503.

Маловероятно, что вы получите тот же шаблон ответов, если будете напрямую общаться с БАС.

Единственное действие, которое требуется от вашего конца вызова, когда вы действуете как UAC, - это подтверждение окончательного ответа, в данном случае 503. Ваш стек SIP должен что-то сделать с ответами 180 и 183, чтобы пользователь знает, что происходит, но вам не нужно отвечать на них, так как они называются информационными ответами, и UAS не хочет, чтобы на них отвечали. На самом деле есть усовершенствование стандарта SIP, касающееся надежной обработки предварительных ответов, но это необязательно, и я не стал бы беспокоиться об этом на данном этапе, если бы я был вами.

...