¬аш вопрос св€зан с хэштэгами #“елефони€, #FreePBX и Asterisk, #ѕолезные советы? —просите в Telegram!

ћерион Ќетворкс

6 минут чтени€

¬сем привет! —ейчас мы расскажем об основных правилах, которые следует соблюдать при удаленном подключении телефона к IP-ј“—. јктуально не только дл€ Asterisk, но и дл€ вообще любых IP-ј“—.

ќсновные проблемы возникают из-за 3 факторов: Ќедостаточна€ пропускна€ способность сети, конфигураци€ межсетевых экранов и функционал инспектировани€ SIP-трафика. Ќо обо всЄм по пор€дку.


ѕропускна€ способность (Bandwidth)

  • ƒавайте посчитаем, кака€ нам потребуетс€ пропускна€ способность дл€ одного звонка с использованием кодека G.711. ѕри условии, что мы передаЄм голос в стандартной Ethernet Ц сети и будет задействован стек протоколов Ц IP/UDP/RTP :
    • ѕо умолчанию, кодек G.711 формирует два голосовых семпла общей длительностью 20 мс, размер которых = 160 байт. —корость потока, создаваемого G.711 = 64  бит/c
    • «аголовки канального уровн€ (Layer 2) потребуют ещЄ 18 байт
    • «аголовки сетевого уровн€ (IP - Layer 3) добав€т ещЄ 20 байт
    • ƒалее заголовки UDP Ц ещЄ 8 байт
    • Ќаконец, RTP потребует 12 байт

    “аким образом, общий размер пакета, в котором будет передаватьс€ 20 мс голоса составит: 160 + 18 + 20 + 8 + 12 = 218 байт

     оличество пакетов в секунду, формируемых G.711 = скорость потока кодека / размер голосовой нагрузки (сэмплов) = 64000 бит/c / (160 байт * 8 бит на байт) = 50 пакетов в секунду

    “еперь мы можем посчитать полосу пропускани€, необходимую дл€ передачи 50 пакетов, содержащих 20 мс голоса, которые будут передаватьс€ по сети. ѕолоса пропускани€ = 218 байт * 8 бит на байт * 50 = 87200 бит/с = 87.2  бит/c.

    –екомендуетс€ ещЄ закладывать 5% в качестве защитного интервала: 87.2 * 1.05 = 91.56  бит/с

  • ¬от примерно такой должна быть полоса пропускани€ интернет соединени€ со стороны подключени€ удалЄнного телефона, и на стороне IP-ј“—. ≈сли у одной из сторон будет медленное соединение, то качество голоса будет неудовлетворительным.

    «на€ параметры VoIP сети и используемого кодека, ¬ы без проблем сможете вычислить необходимую ¬ам полосу пропускани€. „тобы больше узнать про кодеки, рекомендуем почитать нашу статью.
  • “елефонный звонок Ц это симметричное соединение. ѕоэтому необходимо иметь минимум 91.56  бит/с как дл€ вход€щего трафика (download speed), так и дл€ исход€щего (upload speed). ≈сли удалЄнный пользователь имеет 10 ћб на скорость скачивани€ (download), то это ещЄ не значит, что он имеет сколько же на upload.
  • Ќо даже если наш удалЄнный пользователь будет иметь 10 ћб на скачивание и 512  бит на загрузку, это ещЄ не гарантирует нормальное VoIP соединение. ѕотому что полоса пропускани€ будет делитьс€ между всеми активност€ми, которые пользователь совершает в »нтернете. ƒогадайтесь - что будет, если наш пользователь находитс€ в телефонном звонке, а кто-то в его сети начнЄт скачивать т€жЄлый файл или смотреть онлайн видео? ѕри скачивании файлов задержка или потер€ пакета может быть даже не заметна. ј вот VoIP трафик передаЄтс€ в реальном времени и он очень чувствителен к задержкам и потер€м пакетов. Ћюбой из этих факторов может привести к срыву звонка.
  • ≈сли ¬ы столкнулись с такой проблемой, рекомендуем настроить Quality of Service или Traffic Shaping. ƒанный функционал позвол€ет раздать приоритеты разным видам трафика на маршрутизаторе. Ѕолее подробно о механизме QoS можно почитать в нашей статье. ј здесь примеры настройки на маршрутизаторе Mikrotik.


ћежсетевой экран (Firewall)

  • Ќеобходимо точно понимать, что удалЄнный телефон Ц это телефон, который подключаетс€ к ¬ашей IP-ј“— не напр€мую. ќн не находитс€ в ¬ашей локальной сети (LAN) и, что ещЄ важнее, он не находитс€ в ¬ашей виртуальной локальной сети (VPN). ѕоэтому, дл€ его корректной работы, нужно будет открыть кое какие порты на роутере или межсетевом экране.
    • 5060 - ѕо стандарту именно этот UDP порт используетс€ протоколом SIP дл€ обмена сигнальной информацией.
    • 10000 Ц 20000 - (¬ большей степени актуально дл€ Asterisk). UDP порты используютс€ протоколом RTP и RTCP дл€ передачи исход€щего и приема вход€щего аудио трафика. ≈сли вы столкнулись с проблемой односторонней слышимости или полным еЄ отсутствием (при условии наличи€ сигнализации SIP) Ц скорее всего, дело в RTP портах на одной из сторон соединени€.
    • 69 TFTP / 21 FTP - ѕорты дл€ обмена файлами. ¬ IP-ј“— используютс€ дл€ автоматической настройки и обновлени€ телефонных аппаратов при помощи функции auto-provision.

ќтнеситесь данному пункту очень серьЄзно. Ќельз€ просто открывать эти порты всему миру. Ќеобходимо также настроить правила, чтобы доступ к этим портам могли получить только доверенные устройства.

≈сли ¬ы используете Asterisk/FreePBX, то рекомендуем более подробно узнать какие ещЄ порты может понадобитьс€ открыть вот тут.

‘ункционал испектировани€ SIP

SIP ALG (Application Layer Gateway) Ц это функционал, который испектирует SIP трафик, который проходит через маршрутизатор и позвол€ет модифицировать его так, чтобы не нужно было делать проброс портов дл€ SIP и RTP.

«ачастую, администраторы, которые настраивают удалЄнный телефон дл€ подключени€ к IP-ј“—, сталкиваютс€ именно с проблемами включенного на маршрутизаторе SIP ALG. ƒело в том, что SIP ALG может изменить сигнальные пакеты так, что ј“— не сможет их распознать и телефон не сможет нормально зарегистрироватьс€. ѕоэтому если ¬ы столкнулись с проблемой подключени€ телефона, рекомендуем также обратить внимание на функционал SIP ALG ¬ашего маршрутизатора.

ћногие производители включают его по умолчанию. ћы же рекомендуем либо правильно настроить его в соответствии с инструкцией от производител€, либо, если никаких других вариантов не осталось Ц отключить его.

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

  • SIP ALG
  • SIP Helper
  • SIP Fixup
  • SIP Markup
  • SIP Translation

Ќапример на роутерах Mikrotik, чтобы отключить данный функционал нужно зайти в IPFirewallService Ports и убедитьс€, что сервис SIP выключен.

SIP ALG в Mikrotik

Ћибо отключить его использу€ CMD Mikrotik: /ip firewall service-port disable sip


ѕроблемы при подключении более 1 телефонного аппарата из одной и той же удаленной точки

ѕредставьте, что ¬ы пытаетесь зарегистрировать два удалЄнных телефона на своей IP-ј“—. ѕусть их внутренние номера будут 100 и 101.  огда эти телефоны будут отправл€ть запрос регистрации, то ¬аша IP-ј“— получит его от удалЄнного роутера, за которым наход€тс€ эти телефоны и запрос этот будет от одного и того же IP адреса. ћожет быть эти телефоны и зарегистрируютс€ на ј“—, но когда на один из этих номеров будет поступать вызов, то удалЄнный маршрутизатор не сможет разобратьс€ на какой из телефонов его отправл€ть 100 или 101.

Ћучшим решением данной проблемы Ц будет организаци€ виртуальной локальной сети (VPN) между удалЄнными точками и IP-ј“—. “огда телефоны, наход€щиес€ в удалЄнных офисах смогут регистрироватьс€ на IP-ј“— как если бы они находились в одной локальной сети.


ѕолезна ли ¬ам эта стать€?