wiki:FunctionsSipRouting

Version 1 (modified by alx, 7 years ago) ( diff )

--

Функция маршрутизации SIP в плате VE-01

Описание функции

Плата VE-01 содержит в себе шлюз, позволяющий работать с различными типами канальных окончаний. Среди них есть канальные окончания (например R2, 1IND, FXS, PRI), которые могут принимать со стороны канала TDM вызовы, адресованные множеству разных абонентов - номер вызываемого абонента передается в соответствии с используемым протоколом сигнализации. Вызов, полученный от канала TDM, превращается шлюзом в сообщение INVITE и направляется хосту, на котором зарегистрировано канальное окончание (предполагается, что это телефонный коммутатор).

Рассмотрим пример такой схемы:

В этой схеме канальное окончание PRI платы VE-01 регистрируется на АТС 10.0.0.1 как шлюз и все вызовы, поступающие по линии ISDN PRI, направляются в эту АТС.

Но что делать, если требуется, например, вызовы абонентов, номера которых начинаются с цифры 1, направлять в одну АТС, вызовы абонентов, номера которых начинаются с цифры 9 - в другую АТС, а все остальные вызовы - в третью? В этом случае поможет функция маршрутизации SIP.

Прокси-сервер платы VE-01 имеет таблицу маршрутов SIP. Каждый маршрут состоит из двух основных частей - регулярного выражения, на совпадение с которым проверяется цель (target) запроса SIP, и строки, которой заменяется цель в случае совпадения. Благодаря этому механизму можно организовать желаемую схему подключения:

В этой схеме канальное окончание PRI регистрируется на АТС3 с адресом 10.0.0.3, которая является получателем вызовов по умолчанию. Для вызовов абонентов, номера которых начинаются с цифры 1, создается маршрут, заменяющий в цели адрес 10.0.0.3 на адрес 10.0.0.1. Для номеров, начинающихся с цифры 9, создается аналогичный маршрут, заменяющий адрес на 10.0.0.2.

Конфигурация

Поддержка загрузки таблицы маршрутизации SIP в плату VE-01 появилась начиная с прошивки версии 31. В веб-интерфейсе конфигурации платы VE-01 имеется вкладка "Маршруты SIP":

На этой вкладке отображается таблица маршрутов, содержащая регулярное выражение URI, замену URI и комментарий. Также для случаев, когда требуется определенный порядок проверки маршрутов, у каждого маршрута имеется поле "Порядок", значение которого определяет приоритет маршрута: проверки выполняется в порядке возрастания значения. Для добавления маршрутов в таблицу служит кнопка "Добавить маршрут" над таблицей. Также для каждого маршрута в таблице имеются кнопки "Редактировать маршрут" и "Удалить маршрут".

В данном примере в таблице маршрутизации установлено два маршрута. Первый маршрут имеет регулярное выражение ^sip:(1.*)@10.0.0.3, которому удовлетворяют SIP URI, имя пользователя которых начинается с цифры 1, а имя хоста - "10.0.0.3". Имя пользователя в этом выражении заключено в круглые скобки для того чтобы подставить его в новый URI в процессе замены. В качестве замены в этом маршруте указана строка sip:\1@10.0.0.1. Вместо имени пользователя в этом URI стоит комбинация "\1", предписывающая подставить вместо нее подстроку, соответствующую фрагменту регулярного выражения, заключенного в круглые скобки.

Рассмотрим пример. Канальным окончанием PRI принят вызов номера 143. Шлюз формирует сообщение INVITE с URI "sip:143@10.0.0.3". Прокси сервер платы VE-01, получив это сообщение, последовательно проверяет URI "sip:143@10.0.0.3" на совпадение с регулярными выражениями маршрутов из таблицы маршрутизации. При проверке регулярного выражения ^sip:(1.*)@10.0.0.3 будет обнаружено совпадение. Прокси сервер заменит исходный URI в сообщении INVITE на URI из найденного маршрута, подставив на место "\1" исходное имя пользователя. На этом поиск в таблице маршрутизации будет закончен, и сообщение INVITE будет направлено на URI "sip:143@10.0.0.1".

Аналогичным образом таблицу маршрутов можно использовать для модификации имени пользователя. Например, для удаления префикса "9" можно создать маршрут с регулярным выражением ^sip:9(.*) и заменой URI sip:\1.

Attachments (10)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.