Вкратце напомним постановку задачи – есть головной офис с аналоговой АТС и внутренней нумерацией 401, 402 и так далее. Также есть удаленный офис (в другом здании, городе или стране), в который невозможно протянуть телефонные линии от головной АТС, но требуется подключить к ней четыре абонента с номерами 601 – 604.
В головной офис мы устанавливаем VoIP шлюз AudioCodes с портами FXO – например, MP-114/FXO или MP-118/FXO. В удаленном офисе мы будем использовать шлюз с портами FXS — MP-114/FXS или MP-118/FXS. На телефонной станции головного офиса мы выделяем четыре внутренних порта, которым даем номера 601 – 604 и соединяем эти порты с четырьмя портами FXO-шлюза (для простоты изложения здесь и далее будем использовать модель MP-114/FXO). На стороне удаленного офиса пока просто подключим к портам FXS шлюза MP-114/FXS четыре обычных телефонных аппарата. Оба шлюза должны быть подключены к локальной сети и иметь статические IP-адреса.
Теперь нам необходимо решить две задачи:
- Разрешить абонентам головного офиса (№401, №402 и т.д.) звонить абонентам удаленного офиса (№601 – 604)
- Разрешить абонентам удаленного офиса звонить абонентам головного офиса компании
Задача 1. Звонки из головного офиса в удаленный
Этап 1. Активация линий на FXO-шлюзе
Шлюзы AudioCodes помимо таких понятий, как порт или канал, также оперируют понятием Hunt Group – то есть логическим объединением нескольких каналов в одну группу. С помощью Hunt Group в дальнейшем можно настраивать довольно сложную логику маршрутизации вызовов. Для нас же этот функционал является избыточным, так как используемая нами схема – это точка-точка и все вызовы пришедшие с АТС на FXO-шлюз в любом случае не могут быть отправлены никуда, кроме как на FXS-шлюз в удаленном офисе. Тем не менее, для активации линий, нам требуется дать им уникальный номер и объединить в какую-нибудь Hunt Group, иначе данная схема работать не будет.
Идем в раздел Configuration — VoIP — GW and IP to IP — Hunt Group — Endpoint Phone Number и назначаем линиям 1-4 номера 601 – 604 и объединяем все линии в Hunt Group с номером 1.
Этап 2. Включение таблицы маршрутизации на FXO-шлюзе
Теперь нам необходимо, чтобы для маршрутизации звонков FXO-шлюз использовал таблицу маршрутизации, которую мы заполним на следующем этапе. Идем в раздел Configuration — VoIP — SIP Definitions — Proxy & Registration. Выставляем опции: Enable Fallback to Routing Table в положение Enable и Prefer Routing Table в положение Yes. Нажимаем Submit в нижнем левом углу для сохранения настроек.
Этап 3. Заполнение таблицы маршрутизации вызовов на FXO-шлюзе
На прошлом этапе мы настроили наш FXO-шлюз AudioCodes MP-114/FXO на приоритетное использование таблицы маршрутизации, теперь нам эту таблицу необходимо заполнить. Для этого переходим в раздел Configuration — VoIP — GW and IP to IP — Routing — Tel to IP Routing. Как мы уже отмечали выше, данная таблица маршрутизации будет иметь довольно примитивный вид. А именно: все вызовы из любой Hunt Group (а у нас она всего одна), с любого номера (порта) на любой номер должны быть направлены на IP-адрес FXS-шлюза, установленного в удаленном офисе.
Этап 4. Подставляем номер звонящего на FXO-шлюзе
На настоящий момент мы добились того, что все вызовы, пришедшие от АТС на FXO-шлюз будут перенаправляться на IP-адрес удаленного FXS-шлюза. Однако, есть небольшая проблема, которая состоит в том, что по умолчанию, FXO-шлюз будет подменять оригинальный CallerID, пришедший от АТС, номером своей линии, на который данный вызов пришел. То есть, все вызовы, пришедшие на первую линию шлюза будут отправлены на удаленный FXS-шлюз с CallerID 601, на вторую – с 602 и так далее. То есть, вместо городского номера или внутреннего номера коллеги, абонент в удаленном офисе будет всегда видеть свой собственный номер, что не есть хорошо.
Для того, чтобы избежать этого, перейдем в раздел Configuration — VoIP — GW and IP to IP — Analog Gateway — Caller ID Permissions. И на всех четырех портах выставляем Enable.
Этап 5. Автоматический набор удаленного номера на FXO-шлюзе
Теперь впору задаться следующим вопросом: если все телефонные вызовы FXO-шлюз без разбору будет отправлять на удаленный FXS-шлюз, да еще и с сохранением оригинального CallerID, то как же нашему удаленному FXS-шлюзу разобраться, для какого из подключенных к нему телефонов предназначается тот или иной вызов?
Для решения этого вопроса мы задействуем поле Destination Phone Number, то есть номер назначения, который настраивается в разделе Configuration — VoIP — GW and IP to IP — Analog Gateway — Automatic Dialing. Если вызов поступает на порт №1 шлюза, то он подставит в это поле номер 601 и передаст вызов на FXS-шлюз. Для вызова на порт №2 – в поле Destination Phone Number будет подставлен номер 602 и так далее. На основе этого поля, FXS-шлюз, как мы увидим в дальнейшем, и будет распределять вызовы между подключенными к нему аппаратами.
Этап 6. Активация линий на FXS-шлюзе
Все работы в части подзадачи №1 на FXO шлюзе нами выполнены, и мы можем смело переходить в удаленный филиал для настройки шлюза FXS. Тут нам тоже придется начать с активации линий и объединения их в одну Hunt Group. Переходим в раздел Configuration — VoIP — GW and IP to IP — Hunt Group — Endpoint Phone Number и заполняем его совершенно аналогичным FXO-шлюзу образом: линиям 1-4 даем уникальные номера 601-604 и объединяем их в одну Hunt Group с номером 1. Однако, следует отметить, что если объединение всех номеров в одну Hunt Group носит довольно формальный характер, то назначение номеров линиям – настройка, как мы увидим дальше, принципиальная.
Этап 7. Маршрутизация входящих вызовов на FXS-шлюзе
Тоже довольно формальная настройка – в разделе Configuration — VoIP — GW and IP to IP — Routing — IP To Hunt Group Routing Table указываем, что вызовы с любых номеров на любые номера с IP-адреса нашего FXO-шлюза, следует направлять в Hunt Group с номером 1. Она у нас и так одна и объединяет все четыре порта.
Этап 8. Настройка поведения группы поиска на FXS-шлюзе
А вот эта настройка, напротив, является самой важной: ранее мы настроили FXO-шлюз таким образом, чтобы он заполнял поле Destination Phone Number в зависимости от линии, на которую пришел вызов. Теперь мы должны настроить FXS-шлюз, чтобы он на основе этой информации распределял вызовы между своими телефонами. Идем в раздел Configuration — VoIP — GW and IP to IP — Hunt Group — Hunt Group Settings и зададим правило работы нашей единственной Hunt Group: в опции Hunt Group ID выставляем значение 1 (это ID нашей единственной группы), в опции Channel Select Mode нужно выбрать вариант By Dest Phone Number, что означает выбирать линию по номеру назначения, а в опции Registration Mode нужно выбрать режим Don’t Register.
То есть, получив вызов с номером назначения, к примеру — 603, FXS-шлюз отправит этот вызов на свою линию с номером 603. Поэтому назначение номеров линиям на этапе 6 является принципиальным – эти номера должны совпадать с номерами, заданными на этапе 5. Что касается опции Don’t Register – то тут все просто, мы используем наш шлюз не совместно с IP-АТС, а в режиме точка-точка с другим шлюзом, поэтому вся работа у нас ведется в режиме без регистрации.
Этап 9. Проверка
Берем любой внутренний телефон из головного офиса и набираем на нем 601 – вызов должен пойти на телефон, подключенный к первому порту FXS-шлюза. При наборе 602 – на второй и так далее. Если все корректно работает, то работы по задаче №1 можно считать выполненными и переходить ко второй задаче.
Задача 2. Звонки из удаленного офиса в головной
Этап 1. Маршрутизация исходящих вызовов на FXS-шлюзе
На самом деле большую часть работ для решения второй задачи мы уже выполнили – активировали линии на шлюзах, назначив им номера и объединив в Hunt Group. Теперь же нам, по сути, надо отзеркалировать настройки, осуществленные на предыдущих этапах.
Переходим в раздел Configuration — VoIP — GW and IP to IP — Routing — Tel to IP Routing на FXS-шлюзе и создаем правило, которое гласит, что вызовы из любой Hunt Group, с любого и на любой номер следует отправлять на IP-адрес FXO-шлюза. Как видно, заполнение таблицы маршрутизации на FXS-шлюзе полностью аналогично таблице маршрутизации на FXO-шлюзе. В принципе, на этом настройка шлюза MP-114/FXS заканчивается, и мы можем вернуться к шлюзу MP-114/FXO в головном офисе компании.
Этап 2. Маршрутизация входящих вызовов на FXO-шлюзе
Помним, что главной сущностью в маршрутизации вызовов на шлюзах AudioCodes является так называемая Hunt Group. Поэтому первым делом нам необходимо настроить FXO-шлюз так, чтобы все вызовы со стороны FXS-шлюза поступали в нашу единственную Hunt Group с номером 1. Идем в раздел Configuration — VoIP — GW and IP to IP — Routing — IP To Hunt Group Routing Table и создаем единственное правило. В опциях Dest. Phone Prefix и Source Phone Prefix ставим символ «*», в опции Source IP Address указываем IP адрес FXS шлюза, а в опции Hunt Group ID — номер 1. Все, теперь все вызовы с любого и на любой номер, пришедшие от FXS-шлюза попадут на обработку в Hunt Group №1. А как они там будут обработаны, мы настроим на следующем этапе.
Этап 3. Настройка поведения группы поиска на FXO-шлюзе
Итак, все вызовы с FXS-шлюза мы без разбору отправляем в Hunt Group №1 шлюза FXO. Однако последнему необходимо понимать, через какую из своих линий ему следует отправить вызов дальше на АТС, ведь каждому из абонентов в удаленном офисе соответствует определенная линия на FXO-шлюзе и, как следствие, порт на АТС. Для этого нам необходимо перейти в раздел Configuration — VoIP — GW and IP to IP — Hunt Group — Hunt Group Settings и указать, что все вызовы, пришедшие на Hunt Group 1 должны быть отправлены на АТС через линию в соответствии с номером источника. Технически это делается следующим образом: в опции Hunt Group ID выставляем значение 1 (это ID нашей группы поиска), в опции Channel Select Mode выбираем вариант By Source Phone Number, а в опции Registration Mode выбираем режим Don’t Register.
Для того, чтобы лучше эту логику, рассмотрим часть SIP-сообщения метода INVITE, которое получает FXO-шлюз от FXS-шлюза при попытке удаленного абонента набрать какой-либо номер:
INVITE sip:401@192.168.4.21;user=phone SIP/2.0
Via: SIP/2.0/UDP 192.168.4.22:5060;branch=z9hG4bKac2108928548
Max-Forwards: 70
From: ;tag=1c2108923745
To:
Как можно увидеть, в SIP-сообщении присутствуют два поля From и To. В поле From указан номер 601 – с этого номера совершается вызов из удаленного офиса, и именно на основе этого поля FXO-шлюз задействует свою линию 601 для передачи этого вызова на АТС. Если вернуться к самому первому этапу первой задачи, мы увидим, что номер 601 соответствует первому порту FXO-шлюза. Поле To определяет, на какой номер будет отправлен вызов – в данном случае это номер 401 – номер внутреннего абонента головного офиса. 192.168.4.21 — это IP-адрес FXO шлюза, а 192.168.4.22 — IP-адрес FXS шлюза.
Этап 4. Настройка вызова в одной действие
Шлюз Audiocodes MP-114 FXO имеет два режима совершения вызовов из IP-сети в сторону аналоговых линий: вызов в 2 действия (Two Stages) и вызов в одно действие (One Stage). Разница между ними следующая: в режиме вызова в два действия, вызов пришедший на шлюз будет отвечен самим шлюзом и скоммутирован на порт АТС, а звонящий услышит привычный гудок, как будто бы он только поднял трубку своего телефона, после чего потребуется набрать номер телефона, который требуется вызвать. В режиме вызова в одно действие шлюз сразу перенаправит вызов на аналоговый порт в соответствии с заданными настройками.
Нам для нашего примера понадобится режим в одно действие (One Stage), так как номер звонящего и номер вызываемого абонента у нас формируются на стороне FXS шлюза. Для этого в разделе Configuration — VoIP — GW and IP to IP — Analog Gateway — FXO Settings в опции Dialing Mode выбрать режим One Stage.
Этап 5. Проверка и диагностика
На этом настройка выноса телефонных линий в общем-то завершена, достаточно осуществить несколько стандартных проверок, позвонив в обе стороны и убедится, что все работает должным образом. Если же, по каким-либо причинам, что-то не заработало или вы решаете другую задачу, например, вынос нескольких линий не в одну локацию, а в несколько, то для поиска и решения проблем следует воспользоваться встроенными в шлюзы AudioCodes средствами отладки.
Самый простой способ — просматривать лог сообщений прямо в веб интерфейсе устройства можно в разделе Status & Diagnostics — System Status — Message Log. Однако, при написании статьи я использовал отправку сообщений на Syslog сервер, настройки которого выполняются в разделе Configuration — System — Syslog Settings. В качестве Syslog сервера использовался Rsyslog. Для того, чтобы получать лог сообщения в конфигурационном файле демона Rsyslog должны присутствовать следующие настройки:
module(load="imudp")
input(type="imudp" port="514")
$template FILENAME,"/var/log/rsyslogd/%fromhost-ip%.log
*.* ?FILENAME
Заключение
Шлюзы AudioCodes ценятся многими профессионалами за их гибкость, надежность и функциональность. Вместе с тем, их настройка может вызвать значительные сложности у неискушенного пользователя по причине наличия большого количества опций и своеобразной логики работы устройств. Однако, немного познакомившись с данными шлюзами, через какое-то время понимаешь, что все реализовано очень логично и правильно. Надеюсь, данная статья поможет новичкам пройти первый этап знакомства со шлюзами AudioCodes максимально безболезненно.
Источник