Общая проблема AVM FRITZ

Материал из wiki.sipnet.ru
Перейти к: навигация, поиск

Все устройства серии AVM FRITZ!Box и аналогичные подвержены общей проблеме, выражающейся в односторонней слышимости при звонках на некоторые направления.

Проблема вызвана ошибкой в реализации протокола SDP в этих устройствах.

RFC3264 (параграф 7, Offerer Processing of the Answer) диктует правильное поведение устройств, участвующих в диалоге:

The offerer SHOULD send media according to the value of any ptime and bandwidth attribute in the answer.

Offerer в данном случае - это абонентское устройство (AVM FRITZ!Box), инициирующее вызов.
Answer (от сервера SIPNET в сторону абонентского устройства) содержит в SDP атрибут 'a=ptime:20'.

Абонентское устройство игнорирует полученное от сервера значение 'a=ptime:20' и передает в одном пакете три голосовых фрейма (3*10ms) вместо двух (2*10ms) указанных сервером (жестко настроенное значение внутри устройства - 'a=ptime:30').



Варианты решения проблемы

  1. Для чтения, редактирования и записи конфигурационного файла устройства может быть использована программа FBEditor. После считывания конфигурации с устройства необходимо изменить значение параметра "tx_packetsize_in_ms" с 30 на 20 и сохранить изменения обратно на устройстве. Решение было протестировано на Fritz!Box Fon 7050. Для FRITZ!Fon 7150 помогла версия FBEditor 0.5.1, на FRITZ!Box 7390 проверено с FBEditor 0.5.2 (по материалам форума SIPNET и информации от абонентов, благодарность Andrei Karabanov и Peter Fleischer).
  2. Альтернативный вариант - если в конфигурационном файле присутствует параметр "packetization", то достаточно изменить его значение с 'packetization_fixed' на 'packetization_auto', другие изменения не требуются.

Вместо того, чтобы использовать FBEditor, можно зайти на устройство через telnet (может потребоваться сначала включить эту возможность) и отредактировать конфигурационный файл:

nvi /var/flash/voip.cfg


Дополнительно, при подключении через NAT, убедитесь, что в настройках не используется STUN (это можно сделать через web-интерфейс), а также измените 'no' на 'yes' в следующей строке конфигурационного файла (в секции для соответствующего провайдера/аккаунта):

is_nat_aware = no;