Глоток "100 попыток" вместо "180 звонков"
Я разрабатываю программное обеспечение с использованием Microsoft Unified Communications и C#. Я использую IMVoipSample в качестве базы кода. В качестве voip backend я использую звездочку. Все хорошо, я могу зарегистрироваться, совершать звонки, принимать / отклонять входящие звонки. Есть одна вещь, которую я не могу решить.
пока я звоню на сторонний софтфон, есть ответ от него:
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.250.29:5060;branch=z9hG4bK786d156c;rport=5060
Contact: <sip:6011@192.168.246.203:45134;rinstance=7af05ded7e7e49e6>
To: <sip:6011@192.168.246.203:45134;rinstance=7af05ded7e7e49e6>;tag=9a00d038
From: "6012"<sip:6012@192.168.250.29>;tag=as66995cd4
Call-ID: 7cebe5d1060b11452571a22e0e2cb919@192.168.250.29
CSeq: 102 INVITE
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 0
Но когда я звоню на мой телефон IMVoipSample, появляется ответ:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.246.203:45134;branch=z9hG4bK-d87543-71570d1c6127bc7a-1--d87543-;received=192.168.246.203;rport=45134
From: "6011"<sip:6011@192.168.250.29>;tag=18345648
To: "6012"<sip:6012@192.168.250.29>
Call-ID: fd7f305d6520cd53YjQ2ZDJmMDAwZDE0YmUwMjRlMGFmM2NmODg5OGM1ODQ.
CSeq: 2 INVITE
Server: Asterisk PBX 1.6.2.9-2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Contact: <sip:6012@192.168.250.29>
Content-Length: 0
У меня есть sbsung officeserv pbx, он связан со звездочкой, я могу звонить на софтфоны и наоборот. Но аудио разница между звонками на софтфон и мой телефон IMVoipSample заключается в том, что здесь нет нормальных звуковых сигналов, только тишина. Я предполагаю, что это из-за "попытки 100 глотков" вместо "180 полосканий". Итак, вопрос: мне нужно настроить дополнительную сигнализацию вызова в клиенте?
2 ответа
Ответы 1xx являются информационными ответами и в случае 100 попыток являются необязательными. Серверы пользовательских агентов SIP (UAS) обычно отвечают ответом 100 Trying немедленно, когда они получают запрос INVITE, чтобы сообщить клиентскому клиентскому агенту (UAC), что он обрабатывает запрос, и избежать повторных передач. Через некоторое время они последуют за ответом "100 попыток" с прогрессом 180 звонков или 183 сессий. Когда кто-то или что-то отвечает на вызов, необходимо отправить ответ 2xx, обычно 200 Ok.
Если программное обеспечение вашего софтфона генерирует только ответ 100 Trying, а не последующий ответ 180 Ringing, то я предполагаю, что вы пропустили шаг. По крайней мере, если у софтфона есть проблема, и он не может генерировать ответ на звонок, потому что звонить нечего, он должен генерировать ошибку 4xx.
Что ж, я решил свою проблему, добавив звуки в sip.conf в asterisk.
exten => _6.,1,Ringing
exten => _6.,n,Dial(SIP/${EXTEN:0}).
но @sipwiz дал подробное описание источника проблемы