Changes between Version 9 and Version 10 of FunctionsSipRouting
- Timestamp:
- Nov 26, 2024, 2:08:15 PM (3 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FunctionsSipRouting
v9 v10 27 27 На этой вкладке отображается таблица маршрутов, содержащая регулярное выражение target URI, замену target URI и комментарий. Для случаев, когда требуется определенный порядок проверки маршрутов, у каждого маршрута имеется поле "Порядок", значение которого определяет приоритет маршрута: проверки выполняется в порядке возрастания значения. Также каждый маршрут имеет необязательные поля "Регулярное выражение from URI" и "Комментарий". Для добавления маршрутов в таблицу служит кнопка "Добавить маршрут" над таблицей. Также для каждого маршрута в таблице имеются кнопки "Редактировать маршрут" и "Удалить маршрут", расположенные в столбце "Действия" справа. 28 28 29 В данном примере в таблице маршрутизации установлено два маршрута. Первый маршрут имеет регулярное выражение `^sip:(1.*)@10.0.0.3`, которому удовлетворяют SIP URI, имя пользователя которых начинается с цифры 1, а имя хоста - "10.0.0.3". Имя пользователя в этом выражении заключено в круглые скобки для того чтобы подставить его в новый URI в процессе замены. В качестве замены в этом маршруте указана строка `sip: \1@10.0.0.1`. Вместо имени пользователя в этом URI стоит комбинация "\1", предписывающая подставить вместо нее подстроку, соответствующую фрагменту регулярного выражения, заключенного в круглые скобки.29 В данном примере в таблице маршрутизации установлено два маршрута. Первый маршрут имеет регулярное выражение `^sip:(1.*)@10.0.0.3`, которому удовлетворяют SIP URI, имя пользователя которых начинается с цифры 1, а имя хоста - "10.0.0.3". Имя пользователя в этом выражении заключено в круглые скобки для того чтобы подставить его в новый URI в процессе замены. В качестве замены в этом маршруте указана строка `sip:$1@10.0.0.1`. Вместо имени пользователя в этом URI стоит комбинация "$1", предписывающая подставить вместо нее подстроку, соответствующую фрагменту регулярного выражения, заключенного в круглые скобки. 30 30 31 Рассмотрим пример. Канальным окончанием 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".31 Рассмотрим пример. Канальным окончанием 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". 32 32 33 //Обратите внимание, что в конце приведенных выше регулярных выражений нет символа "доллар" ($), означающего конец строки. Это вызвано тем, что в вызываемомURI не всегда заканчивается доменом, после домена могут следовать другие элементы, например порт и/или параметры.//33 //Обратите внимание, что в конце приведенных выше регулярных выражений нет символа "доллар" ($), означающего конец строки. Это вызвано тем, что вызываемый URI не всегда заканчивается доменом, после домена могут следовать другие элементы, например порт и/или параметры.// 34 34 35 Аналогичным образом таблицу маршрутов можно использовать для модификации имени пользователя. Например, для удаления префикса "9" можно создать маршрут с регулярным выражением `^sip:9 (.*)$` и заменой URI `sip:\1`.35 Аналогичным образом таблицу маршрутов можно использовать для модификации имени пользователя. Например, для удаления префикса "9" можно создать маршрут с регулярным выражением `^sip:9` и заменой URI `sip:`. 36 36 37 37 == Продвинутое использование маршрутизации == … … 45 45 [[Image(dia3.png)]] 46 46 47 Для того чтобы номера вида 2XX обслуживались блоком локально, достаточно создать маршрут, направляющий вызов обратно в шлюз. Для этого в поле "Замена URI" маршрута в качестве домена можно указать собственный IP адрес платы VE-01, в данном примере "10.0.0.10". Также можно использовать loopback-адрес 127.0.0.1. Таким образом, для решения данной задачи добавим маршрут с регулярным выражением `^sip:(2..)@10.0.0.3` и заменой URI `sip: \1@127.0.0.1`:47 Для того чтобы номера вида 2XX обслуживались блоком локально, достаточно создать маршрут, направляющий вызов обратно в шлюз. Для этого в поле "Замена URI" маршрута в качестве домена можно указать собственный IP адрес платы VE-01, в данном примере "10.0.0.10". Также можно использовать loopback-адрес 127.0.0.1. Таким образом, для решения данной задачи добавим маршрут с регулярным выражением `^sip:(2..)@10.0.0.3` и заменой URI `sip:$1@127.0.0.1`: 48 48 49 49 [[Image(ss2.jpg)]]