VoIP изнутри

Салиев Александр aka Fagot

Xakep, номер #053, стр. 053-074-5


Запиши мой телефон

Если для ISDN адресация в виде телефонных номеров является родной, то для сетей VoIP, имеющих стыки с зонами традиционной телефонии (телефонные сети общего пользования, ТФОП или PSTN), требуется алгоритм трансляции этих номеров в IP-адреса. Одним из решений этой проблемы является занесение в каждый шлюз таблицы соответствия между телефонными номерами и IP-адресами, но понятно, что для более или менее крупной сети это неприменимо. Более грамотной схемой является использование централизованной базы данных для трансляции адресов, также содержащей сервисные и аутентификационные функции. Такое устройство называется гейткипер (русский вариант этого слова - "привратник" мне не нравится, и пользоваться им я не буду).

Гейткипер общается с H.323-устройствами посредством расширения протокола H.225, зовущегося H.225 RAS (Registration Admission Status). Сообщения этого протокола также компилируются ASN.1-компилятором, но передаются не по TCP, как вся рассмотренная ранее сигнализация, а по UDP (что облегчает задачи спуфинга). Условно можно разбить эту сигнализацию на следующие группы: поиск гейткипера, сервисные функции, обслуживание звонков, межгейткиперное взаимодействие. Общаются тут обычно, посылая пакет из серии ЧТО_ТО_REQUEST, получая в ответ пакет ЧТО_ТО_CONFIRM, сигнализирующий о подтверждении запроса и несущий запрошенные данные. ЧТО_ТО_REJECT, если ответ на запрос отрицательный, либо не получая ничего, что тоже может быть в определенных случаях.

Первоначально устройство ищет свой гейткипер, посылая (либо по конкретному адресу, либо широковещательным запросом) пакет GATEKEEPERREQUEST (GRQ), если в ответ оно получит хоть от кого-нибудь ответ GATEKEEPERCONFIRM (GCF), то можно попробовать встать под этот гейткипер. После того, как устройство определилось, с кем оно будет взаимодействовать, оно шлет своему гейткиперу запрос на вход в сервис REGISTRATIONREQUEST (RRQ), содержащий необходимые данные, описывающие устройство. Если гейткипер считает возможным вход устройства в сервис, он отвечает ему REGISTRATIONCONFIRM (RCF), или посылает его подальше с помощью REGISTRATIONREJECT (RRJ) с описанием причины посыла. Также, при поиске гейткипера и входе в сервис, устройство может сообщить телефонные номера или префиксы, которые оно принимает на себя. Это позволяет реализовать динамическую часть таблицы трансляции. Теперь, когда устройство в сервисе, оно может пользоваться сервисными функциями обслуживания звонков, не задумываясь ни о чем самостоятельно.

Назад на стр. 053-074-4  Содержание  Вперед на стр. 053-074-6