Я пытаюсь заставить 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.
Это должно решить проблему.