| 34 | |
| 35 | === Два режима поиска цели === |
| 36 | |
| 37 | Существует два режима поиска цели вызова, различающиеся поведением в случае, когда маршрут был найден, но вызов завершился неудачей (типичный пример неудачного вызова - вызываемый абонент занят, и прокси-сервер получил ответ "486 Busy here"). Эти режимы конфигурируются чекбоксом "Прекратить поиск после нахождения маршрутов", расположенным на вкладке "Маршруты SIP" диалога конфигурации платы VE-01. По умолчанию чекбокс не отмечен, и в случае неудачного вызова прокси-сервер продолжает обработку исходного вызова, как если бы никаких совпадений в таблице маршрутов не было найдено. В описанном выше примере при вызове URI `sip:143@10.0.0.3` проски-сервер сначала в соответствии с имеющимся маршрутом отправит INVITE для URI `sip:143@10.0.0.1` в АТС1. Если же абонент 143 в АТС1 занят, и АТС1 вернет ответ "486 Busy here", прокси-сервер отправит INVITE для URI `sip:143@10.0.0.3` в АТС3, как если бы никакого маршрута в таблице маршрутов не было. |
| 38 | |
| 39 | Обычно такое поведение не представляет собой проблемы, так как коммутатор, получив вызов несуществующего пользователя, вернет ответ с неуспешным кодом, и вызывающий абонент все равно услышит короткие гудки. Тем не менее, если описанное выше поведение по каким-либо причинам неприемлемо, можно отметить чекбокс "Прекратить поиск после нахождения маршрутов". В этом режиме в случае нахождения маршрута дальнейший поиск цели прокси-сервером прекращается независимо от результата вызова указанного в маршруте URI. Так, в приведенном выше примере после отправки INVITE для URI `sip:143@10.0.0.1` и получения ответа "486 Busy here" прокси-сервер сразу вернет ответ "486 Busy here" вызывающему абоненту. |
| 40 | |
| 41 | == Продвинутое использование маршрутизации == |
| 42 | |
| 43 | Рассмотренные выше примеры использования маршрутов SIP тривиальны и приведены для простоты понимания функционирования механизма маршрутизации. При этом именно подобные простые примеры наиболее часто встречаются в реальной жизни. Однако возможности использования маршрутов SIP не ограничиваются подобными простыми случаями. Далее рассматривается несколько более продвинутых примеров использования маршрутизации. |
| 44 | |
| 45 | === Маршрутизация самому себе === |
| 46 | |
| 47 | Вернемся к рассмотренному ранее случаю подключения к трем IP АТС, но предположим, что в блоке MC04-DSL-3U также имеются и собственные абоненты - несколько телефонных аппаратов, подключенных к шлюзу через канальные окончания FXS. Пусть их номера состоят из трех цифр и начинаются с цифры 2: |
| 48 | |
| 49 | [[Image(dia3.png)]] |
| 50 | |
| 51 | Для того чтобы номера вида 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`: |
| 52 | |
| 53 | [[Image(ss2.jpg)]] |
| 54 | |
| 55 | === Альтернативные маршруты === |
| 56 | |
| 57 | До сих пор в рассматриваемых нами примерах предполагалось, что вызываемый URI либо совпадает с регулярным выражением одного из маршрутов, либо не совпадает ни с одним из них. Сейчас же мы рассмотрим случай, когда вызываемый URI совпадает с регулярными выражениями нескольких маршрутов. |
| 58 | |
| 59 | Рассмотрим новый пример. Предположим, что в бухгалтерии предприятия работают главный бухгалтер, имеющий телефон с номером 102, и его заместитель, имеющий телефон с номером 105. Предположим также, что в конфигурации платы VE-01 созданы следующие маршруты: |
| 60 | |
| 61 | [[Image(ss3.jpg)]] |
| 62 | |
| 63 | Как нетрудно заметить, с регулярными выражениями обоих маршрутов совпадает один и тот же URI - `sip:111@192.168.1.67`. |
| 64 | |
| 65 | //Примечание: используемый платой VE-01 прокси-сервер не позволяет создать несколько маршрутов с одним и тем же регулярным выражением. Чтобы обойти это ограничение регулярное выражение второго маршрута было изменено таким образом, чтобы, тем не менее, сохранить его смысл - с регулярным выражением должен совпадать только URI `sip:111@192.168.1.67`.// |
| 66 | |
| 67 | Изображенная на рисунке конфигурация маршрутов работает следующим образом. При получении вызова URI `sip:111@192.168.1.67` прокси-сервер ищет в таблице маршрутов записи, с регулярными выражениями которых совпадает вызываемый URI. Так как вызываемый URI совпадает с регулярными выражениями обоих маршрутов, прокси-сервер последовательно выполняет вызовы найденных маршрутов, пока вызов не окажется успешным (пока вызываемый абонент не ответит на вызов, и прокси-сервер получит "200 OK") или пока не кончатся найденные маршруты. В данном примере сначала будет сформирован вызов URI `sip:102@127.0.0.1`, который поступит на телефон главного бухгалтера. Если он ответит на вызов, состоится разговор, и обработка вызова на этом завершится. Если же главбух отклонит вызов (например уже занят другим разговором, или включил режим "не беспокоить"), прокси-сервер, получив ответ "486 Busy here", перейдет к следующему маршруту и сформирует вызов URI `sip:105@127.0.0.1`, который поступит на телефон зама. |
| 68 | |
| 69 | Обратите внимание, что сконфигурированные маршруты имеют разное значение параметра "Порядок", в результате чего вызов поступает сначала на номер 102, а потом - на номер 105. Если в первом маршруте изменить значение параметра "Порядок" с 0 на 2, порядок выполнения вызовов изменится на обратный. |
| 70 | |
| 71 | === Параллельный вызов === |
| 72 | |
| 73 | Описанное в предыдущем примере поведение прокси-сервера может быть изменено отметкой чекбокса "Параллельный вызов маршрутов", расположенного на вкладке "Маршруты SIP" диалога конфигурации платы VE-01. При его отметке найденные в таблице маршруты обрабатываются не последовательно, а параллельно (одновременно). Так, при получении вызова URI `sip:111@192.168.1.67` прокси сервер направит INVITE и на URI `sip:102@127.0.0.1`, и на URI `sip:105@127.0.0.1`, в результате чего телефоны главбуха и его зама будут звенеть одновременно. Разговор состоится при снятии трубки любого из телефонов, при этом другой аппарат звенеть перестанет. Данная конфигурация маршрутов работает подобно функции "Группы вызова". |