8(499)-709-97-83
Работаем с 8:00 до 19:00

Протокол IAX

  • 24 февраля 2015

Протокол IAX (Inter-Asterisk eXchange) – это VoIP протокол, используемый в АТС Asterisk. IAX используется как для связи различных АТС Asterisk, так и для прохождения сигнализации и медиа данных между оконечными IAX клиентами.

Протокол IAX не так распространен как другие VoIP протоколы (SIP, H.323 и SCCP), но у него есть определенные достоинства. Одним из достоинств протокола IAX является использование всего одного UDP порта (4569) для сигнальных и медиа данных. Это позволяет гораздо проще настроить прохождение NAT. В свою очередь остальные VoIP протоколы используют большое количество, как сигнальных, так и медиа портов, что осложняет прохождения NAT.

Протокол IAX использует свои собственные фреймы(пакеты данных) для передачи медиа данных, поэтому размер такого пакета может быть уменьшен, по сравнению с часто используемыми протоколами RTP / RTCP. Протокол позволяет совмещать множество голосовых потоков и передавать их внутри единого транка, уменьшая расходы, связанные с передачей заголовков IP-пакетов.

Протокол IAX - полностью бинарный протокол, что позволяет экономить трафик.

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

Структура протокола IAX

При использовании протокола IAX в одном кадре переносятся как сигнальные, так и медиа данные. Ниже приведена структура кадра IAX:

protocol_iax_1
  • Source Call Number – номер звонящего абонента (А-номер)
  • Destination Call Number – номер вызываемого абонента (Б-номер)
  • Time-stamp – метка времени
  • OSeqno – количество сообщений, отправленных удаленному абоненту
  • ISeqno – количество сообщений, полученных от удаленного абонента
  • Frame Type – тип кадра
  • Subclass – подсказка о типе данных, которые идут вслед за IAX заголовком
  • Data – полезная нагрузка

Сообщения сигнализации часто содержат последовательность информационных элементов (IE), которые используются, чтобы дать дополнительные сведения о сообщении. Например, сообщение "IAX NEW" будет содержать информационные элементы, которые описывают вызывающего абонента, вызываемого абонента и информацию о сети, в которой этот вызов проходит. IE, являются методом Tag-length-value (или TLV) — широко распространённый метод записи коротких данных в компьютерных файлах и телекоммуникационных протоколах. Метод определяет простую двоичную структуру из трёх полей: тэг, длина данных и собственно данные. Первые два поля имеют фиксированную длину (обычно один или два байта на поле), длина третьего поля определяется значением второго поля (Обычно значение указывается в байтах). Тэг является идентификатором данных, определяя их назначение. Каждый IE имеет свой собственный идентификатор.

Короткие кадры в протоколе IAX используются исключительно для передачи медиа данных при уже установленном вызове. При обмене IAX сообщений, первая часть медиа данных приходит в полном кадре, при этом идет согласование аудиокодеков (например, G.729, G.711u-law, G.711a-law). Последующие кадры должны ссылаться только на использованный идентификатор вызова. Пример короткого IAX кадра:

Создание вызова между двумя узлами IAX схоже на создание вызова в протоколе SIP или H.323. Фаза установление вызова включает аутентификацию (если необходимо), согласование аудиокодеков и первоначальный обмен медиа данными. В конце разговора происходит фаза разрушения вызова.

Протокол IAX описывается в RFC 5456 и RFC 5457. Эти RFC публикуются как информационные, это означает, что они служат лишь в качестве примеров, а не стандарта. Данные RFC уже устаревают. Последние версии Asterisk (а также клиенты IAX) используют типы сообщений и информационные элементы, которые не описываются в RFC. Когда вводятся новые информационные элементы и типы кадров, под них создается новый идентификатор. Информацию о новых элементах и типах сообщений можно найти в исходном коде Asterisk или в свободном доступе в Интернете.

 

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: IAX2, IAX