среда, 14 октября 2015 г.

SIP ALG в DLink DFL-210

Буквально 5-секундная заметка о том как хорошо бывает читать мануалы. В своем недавнем посте я рассказывал об IP-телефоне Huawei eSpace 6830. Недавно встала задача поключить его к SipNet через аппаратный firewall DLink DFL-210. Все вообщем-то настроилось отлично и даже работало, пока в какой-то момент случайно не заметили что телефон рвет сессию ровно на 2:10 секундах разговора. Честно говоря я перекрутил все что можно ... настройки Session Timeout в самом eSpace - Срок сессии, Min-SE, Безусловный INVITE и т.п. Но все безрезультатно.

Тогда я решил обратиться к мануалу по DFL-210, а именно Как настроить SIP-ALG на межсетевых экранах серии DFL-210/260/ 260E/800/860/ 860E/1600/ 1660/2500/2560, где нашел вот такой вот совет:

Т.е. помимо настройки правил для SIP (sip-udp) необходимо было еще установить флажок UDP Bidirectional keep-alive.

Для начала покажу настройки самого IP телефона, а также выдержку из мануала по нему:



Корни проблемы, как видно, оказались скрыты в UDP Idle Lifetime, 2:10 - это ровно 130 секунд. Однако решить ее с помощью UDP Bidirectional keep-alive мне не удалось.

Описание данного параметра:

This allows both sides to keep a UDP connection alive. The default is for NetDefendOS to mark a connection as alive (not idle) every time data is sent from the side that opened the connection. Connections that do not receive any data from the opening side within the UDP lifetime will therefore be closed even if the other side continues to transmit data.

Почитав форум DLink'а я понял, что абсолютно все пользователи DFL-210 пишут что SIP-ALG на нем корректно не работает и предлагают другие варианты решения проблемы, которые так или иначе связаны с отказом от использования SIP-ALG. Либо же просто опускают руки (см. эту ветку):

"В этом-то и проблема. Когда я настраивал правила вида "вообще все с SIPNET тупо кидаем на внутренний адрес VoIP" - также часами работало но сейчас я планирую ставить несколько ВоИП телефонов в локалке, плюс использовать несколько разных SIP-провайдеров, и вот тут уже обычными правилами - замахаешься все настраивать. а SIP ALG - отлично работает, два правила, и далее гоняй телефонами что угодно и как угодно. Только вот рвется ровно через 120 секунд. пробовал в настройках SIP ALG менять timeout (он там один) с 120 сек на 1200 сек - пофиг, рвется через 2 минуты".

Я же перечитав кучу мануалов по SIP и потратив целую ночь на попытки настроить SIP-ALG на корректную работу, наткнулся на World-Wide сайт DLink'а - http://tsd.dlink.com.tw/ , где были выложены более свежие версии прошивок на DFL-210, в частности DFL-210_FW_v2.27.08.03-upgrade.img и DFL-210_FW_v2.27.08.04-Russian-upgrade.img . В notes'ах к ним было указано:

  • Certain SIP PBX configurations caused the firewall to drop INVITE requests.
  • The SIP ALG did not use the "420 Bad Extension" response in certain circumstances.
  • In rare occasions, closing down a SIP session could lead to an unexpected restart.
  • Some network scenarios caused the SIP ALG to close SIP calls two minutes after the call was established
  • In certain scenarios, the voice transmitted through the SIP ALG terminated suddenly two minutes after the call was established.
И т.д., конечно же нас интересовали последние два пункта. Но, к сожалению, ни обновление прошвики, ни советы типа этого: "На прошивке 2.26 попробуйте включить System -> Advanced Settings -> IP Settings -> SecuRemoteUDP Compatibility System -> Advanced Settings -> Conn. Timeout Settings -> UDP Bidirectional keep-alive, сохраните и активируйте настройки, после этого Полностью перезагрузите устройство." не помогли избавиться от проблемы "двухминутного звонка".

Из чего можно сделать единственный неутешительный вывод ... SIP-ALG в DFL-210 работает криво и по сей день.

Комментариев нет :

Отправить комментарий