IAX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

IAX2 — Inter-Asterisk eXchange protocol — протокол обмена VoIP данными между IP-АТС Asterisk и другим аналогичным софтсвичом или VoIP-телефоном. Наиболее приспособлен к трансляции сетевых адресов NAT, в отличие от SIP и H.323 использует только один порт 4569 протокола UDP для сигнализации и медиапотока, тогда как последние используют для этих целей разные порты. Данный протокол позволяет существенно экономить сетевой трафик по сравнению с протоколом SIP, что объясняется передачей сигнальной информации в битовых полях, а не текстом. Так же протокол позволяет совмещать множество голосовых потоков и передавать их внутри единого транка, уменьшая накладные расходы, связанные с передачей заголовков IP-пакетов.

IAX2 — (Inter-Asterisk eXchange protocol — вторая версия) протокол разработанный компанией Digium, специально для Asterisk, как альтернативный протокол. Группа разработчиков в составе: Марк Спенсер, Фрэнк Миллер, Кенни Шумард, Эд Гай и Брайан Капоч подала заявку в IETF и 20 февраля 2009 года протокол был утверждён под RFC 5456. Предпосылкой было желание обеспечить передачу голоса высокого качества в «слабых» сетях. Так как при использовании протоколов SIP и H.323 двух портов для передачи голоса и сигнализации, иногда возникали проблемы, когда во время длительного разговора одного абонента и молчания другого, Firewall, в целях безопасности, закрывал порт сигнализации, так как по нему не шли пакеты. В результате этого после того, как молчавший абонент начинал говорить, сигнализация об этом не проходила через порт, и респондент его не слышал. Для того чтобы исключить данную проблему, IAX2 разработан так, чтобы использовать один порт для передачи голоса и сигнализации. Передача сигнальной информации в битовых полях (а не текстом), совмещение множества голосовых потоков и передача их внутри единого транка, позволяет существенно снизить сетевой трафик.

Технические особенности

[править | править код]
  • полностью бинарный протокол (в отличие от SIP), что дает экономию трафика;
  • используется один единственный UDP-порт 4569, что упрощает конфигурацию Firewall и улучшает работу через NAT;
  • поддерживается транкинг, при этом в каждом пакете передаются данные сразу нескольких параллельных каналов — экономия трафика
  • экономнее чем SIP в требованиях к полосе пропускания;
  • проще конфигурация NAT и Firewall;
  • меньше неочевидных проблем (при наличии Firewall невозможна ситуация, когда соединение устанавливается, а голосовые данные пройти не могут, в отличие от SIP);
  • IAX2 эффективнее RTP (SIP) для любого количества одновременных соединений, и при использовании любого кодека. Экономия начиная от 2.4k для единственного вызова, до приблизительно утроения количества одновременных соединений через мегабитовый поток для G.729 при использовании trunk mode.

Недостатки

[править | править код]
  • Трудность расширения протокола: каждая новая возможность должна быть добавлена в спецификации протокола, что делает его менее гибким, чем H.323, SIP или MGCP;
  • Уязвимость: старые реализации IAX2 уязвимы для DoS-атак[1], и эта проблема до сих пор не исправлена. Наилучшим решением является ограничения доступа к UDP-порту только с определённых IP-адресов, которым можно доверять. В новых версиях Asterisk этой проблемы больше нет[2].

Телефонные станции:

Примечания

[править | править код]