![Нет звука после повторного приглашения SIP](https://rvso.com/image/1449100/%D0%9D%D0%B5%D1%82%20%D0%B7%D0%B2%D1%83%D0%BA%D0%B0%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BF%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B8%D0%B3%D0%BB%D0%B0%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20SIP.png)
Я пытаюсь заставить Gigaset C470 IP работать с моим подключением к Интернету. Я выяснил правильную конфигурацию для устройства и моего маршрутизатора (pfSense, находящегося между DSL-модемом и локальной сетью) до такой степени, что я могу совершать исходящие звонки и принимать входящие звонки.
Исходящие звонки работают без проблем. Однако при входящих звонках звук работает только в течение первой секунды звонка – по истечении oe secod звука нет ни в одном направлении. Звонок продолжается до тех пор, пока один из абонентов не повесит трубку.
Захват пакета на внешнем интерфейсе pfSense показывает, что происходит следующее:
- Я получаю SIP
INVITE
- Gigaset отвечает
100 Trying
и180 Ringing
- Я принимаю вызов, Gigaset отвечает
200 OK
- RTP-трафик идет в обоих направлениях.
- Через секунду после начала вызова Gigaset отвечает
INVITE
вызывающему абоненту новым звонком. - Больше двунаправленного RTP-трафика еще на 0,1 с.
- По истечении этих 0,1 с SIP-провайдер отвечает
100 Trying
и позже200 OK
- После этого
100 Trying
входящий RTP-трафик больше не идет. Исходящий RTP-трафик все еще есть, но ни одна из сторон не слышит другую.
Рассматривая используемые кодеки, обе стороны соглашаются на G.711 после первого INVITE
. Насколько я могу судить по трассировке, трафик RDP действительно использует G.711. Re- INVITE
предлагает набор кодеков, который немного отличается от оригинала INVITE
, но обе стороны, по-видимому, согласны продолжать использовать G.711.
Однако, INVITE
похоже, что это приводит к тому, что удаленный конец прекращает отправку или прием любых дальнейших RTP для этого вызова – но почему? И что я могу с этим сделать?
решение1
Обязательно укажите один кодек в ответе 200 OK.
Некоторые серверы отправят вам второе повторное приглашение, если получат 200 OK с несколькими кодеками в SDP.
Чтобы решить эту проблему, посмотрите на текущий OK в журналах. Извлеките один из кодеков из списка (предпочтительный). Затем разрешите только этот кодек на вашем устройстве Gigaset.
Это должно решить проблему.