Клиенты часто обращаются к нам с довольно распространенной проблемой. В общем виде ее можно выразить так: в компании используется аналоговая телефонная станция, к которой необходимо подключить часть пользователей из удаленного местоположения. Это может быть соседний офис, соседний город или даже другая страна – главное, что телефонная сеть туда не дотягивается, зато дотягивается ЛВС или имеется доступ в сеть Интернет. Сегодня мы будем решать данную задачу при помощи VoIP-шлюзов Grandstream серии GXW4xxx.



На самом деле, у этой задачи существует множество вариаций. К примеру, проброс PSTN-линий в другую локацию или объединение номерных емкостей двух удаленных аналоговых АТС – очень похожие по смыслу и решению задачи. Поэтому, чтобы не вносить лишней путаницы, мы сразу определимся с исходными данными и примем за них следующую иллюстрацию:


Имеется головной офис компании, в котором находится аналоговая АТС, с нумерацией внутренних телефонов 2XX. Так же имеется удалённый офис с четырьмя сотрудниками, которым необходимо присвоить внутренние номера 301-304. Требуется предоставить возможность сотрудникам из разных офисов напрямую звонить друг другу, используя внутренний короткий номер.

В головном офисе компании мы разместим VoIP-шлюз Grandstream с портами FXO. Это может быть модель GXW4104 (4 порта) или GXW4108 (8 портов). А в удаленном офисе – шлюз с портами FXS — GXW4004 (4 порта) или GXW4008 (8 портов). Примем для простоты, что мы работаем с четырехпортовыми шлюзами GXW4104 и GXW4004 соответственно.

Выделим в нашей аналоговой АТС четыре внутренних порта и назначим на них внутренние номера – 301-304. Подключим Grandstream GXW4104 к локальной сети, назначим статический IP-адрес и соединим внутренний порты АТС с портами шлюза (№301 – с первым портом шлюза, №302 – со вторым и т.д.). В удаленном филиале также назначим статический адрес шлюзу GXW4004 и подключим к нему четыре аналоговых телефонных аппарата.

Теперь нам необходимо решить две подзадачи:
  1. Разрешить абонентам головного офиса (№201, №202) звонить абонентам удаленного офиса (№№301 – 304)
  2. Разрешить абонентам удаленного офиса звонить абонентам головного офиса компании.

Решение первой задачи начнем с конфигурирования GXW4104:

  1. Раздел Accounts — Account 1 — General Settings. В поле SIP Server указываем IP-адрес FXS-шлюза Grandstream GXW4004, расположенного в удаленном офисе. Если шлюзы расположены в одной локальной сети или объединены VPN – указываем локальный IP-адрес. В противном случае, указываем внешний IP-адрес удаленного подразделения, а на удаленном маршрутизаторе придется пробрасывать порты. Про проброс портов отдельно расскажем чуть позже.



  2. Раздел Accounts — Account 1 — SIP Settings. В поле SIP Registration выбираем значение No – шлюзы будут взаимодействовать между собой в режиме «без регистрации».



  3. Раздел Settings – Channels Settings – Calling to VoIP. В поле SIP Server мы указываем ch1-4:p1; Это означает, что вызовы, поступившие от АТС на любой из FXO портов шлюза, будут перенаправлены на IP-адрес, указанный в разделе Accounts — Account 1 — General Settings. Если бы по каким-либо причинам вместо Account1 мы бы использовали Account2, то эта запись выглядела бы следующим образом: ch1-4:p2; Если бы мы использовали восьмипортовый шлюз GXW4108, то для работы со всеми его портами мы бы указали ch1-8:p1;



  4. Раздел Settings – Channels Settings – Calling to VoIP. Мало знать IP-адрес, на который следует перенаправлять вызовы, нужен еще SIP-порт. Поэтому в поле SIP Destination Port мы меняем значение по умолчанию ch1-4:5060 на ch1-4:5060++; Запись означает, что вызовы с АТС на первый FXO-порт будут отправлены на SIP-порт 5060 удаленного шлюза, на второй FXO-порт – будут отправлены на SIP-порт 5062, на третий и четвертый – на порты 5064 и 5066 соответственно. Именно на основе SIP-порта, на который пришел вызов, FXS-шлюз в удаленном филиале будет понимать для какого из четырех его телефонов, этот вызов предназначен.
  5. Раздел Settings – Channels Settings – Calling to VoIP. Поле User ID по умолчанию имеет вид ch1-4:. Нам это не совсем подходит, так как в этом случае, пришедший с АТС вызов не будет автоматически перенаправляться в IP-сеть. Вместо этого, шлюз будет ожидать, когда абонент АТС, инициировавший вызов, донаберет некоторый номер, на который и следует отправить вызов. Нам это не подходит, поэтому в это поле было бы логично записать следующее: ch1:301;ch2:302;ch3:303;ch4:304. Тогда FXO-шлюз будет добавлять номера 301-304 (в зависимости от порта) в SIP-сообщение для передачи на FXS-шлюз. Но, как мы отметили ранее, удаленный FXS-шлюз будет распределять звонки между своими телефонами только на основе SIP-порта, поэтому такая запись будет излишней. Нам достаточно указать абсолютно любое значение, кроме пустого, чтобы FXO-шлюз начал пересылать вызовы на указанный IP-адрес по указанным портам. Записи ch1-4:123; или ch1-4:x; вполне будут работать.

Все остальные настройки шлюза GXW4104 можно оставить по умолчанию. И этих настроек вполне достаточно, чтобы организовать связь со стороны абонентов головного офиса с абонентами филиала. Да, удаленный шлюз GXW4004 даже не надо настраивать, так как он по умолчанию слушает порты 5060, 5062, 5064 и 5066 и пришедшие на эти порты сообщения преобразовывает и передает на порты 1-4 соответственно. Нечетные SIP-порты 5061, 5063, 5065 и 5067 на FXS шлюзе отданы по умолчанию для SIP over TLS.

Тем не менее, от нас требуется решить еще и вторую задачу – организовать связь со стороны абонентов удаленного филиала с абонентами головного офиса. Решить эту задачу можно двумя способами: по аналогии с первой задачей, используя различные SIP-порты для различных каналов или с помощью диалплана. Выберем второй вариант: откроем Web-интерфейс удаленного шлюза Grandstream GXW4004 и переходим в раздел Profile 1:



  1. В поле Primary SIP Server указываем IP-адрес FXO-шлюза Grandstream GXW4104, расположенного в головном офисе. Если это не локальный IP-адрес, то также потребуется проброс портов.
  2. В поле SIP Registration выбираем значение No – шлюзы будут взаимодействовать между собой в режиме «без регистрации».
  3. В поле Outgoing Call without Registration выбираем значение Yes, разрешая тем самым совершать шлюзы исходящие вызовы в режиме «без регистрации».
  4. В поле Dialplan указываем {<=99$P>x+}. Эта запись говорит шлюзу о следующем: разрешить набор всех номеров, состоящих из одной и более цифр (x+) и каждому набираемому номеру добавлять префикс 99$P, где $P – это номер FXS-порта, к которому подключен телефон, совершающий вызов. Когда абонент 301 наберет на своем телефоне номер 202, то шлюз GXW4004 передаст на GXW4104 номер вида 99-1-202. Если абонент 303 будет набирать номер 204, он будет передан как 99-3-204. Именно на основе этого префикса, FXO-шлюз в головном офисе и будет определять, через какой FXO-порт ему следует передать вызов на АТС.


Возвращаемся к настройке шлюза GXW4104 в головном офисе: открываем Web-интерфейс и переходим в раздел FXO Lines > Dialing.

  1. В поле Stage Method(1/2) делаем запись ch1-4:1; Это означает, что для всех четырех каналов будет использоваться вызов без донабора. Если бы мы оставили запись по умолчанию ch1-4:2, то абоненту удаленного филиала пришлось бы повторно набирать необходимый ему номер, после попадания вызова на FXO-шлюз. А это лишняя работа, так как абонент один раз уже набрал нужный ему номер.



  2. В поле Prefix to Specify Port оставляем значение по умолчанию 99. Обнаружив этот префикс в пришедшем из филиала номере, FXO-шлюз поймет, что следующая цифра – это номер порта, через который ему следует этот вызов отправить на АТС. Таким образом, мы добьемся того, чтобы вызовы от удаленных абонентов приходили строго в назначенные им порты на АТС.

На этом настройка шлюзов завершена – теперь абоненты удаленного филиала могут звонить сотрудникам головного офиса и даже на городские номера через АТС, если на самой АТС этого явно не запрещено.

О пробросе портов
Какие порты следует пробрасывать?

  1. В нашей конфигурации – это UDP-порты 5060, 5062, 5064 и 5066 для SIP-протокола. Для восьмипортовых шлюзов потребуется также пробросить четные порты 5068 – 5074.
  2. Голосовой трафик RTP: на каждый канал связи задействовано 2 порта (сам голос RTP + управление RTCP). На шлюзах начальный порт указывается в опции Local RTP port, по умолчанию для обоих шлюзов — 5004, соответственно для первого порта будут прослушиваться UDP порты 5004 + 5005, для второго 5006+5007 и так далее. Соответственно, при использовании Local RTP port = 5004, потребуется пробросить для 4-портового шлюза — порты 5004-5011, а для 8-портового шлюза — порты 5004-5019.

Естественно, проброс портов строго рекомендуется делать с привязкой к адресу источника. А еще лучше вовсе отказаться от проброса портов и, по возможности, организовать сеть VPN между двумя удаленными локациями.


Несколько удаленных офисов


Немного изменим задачу. Допустим, нам необходимо подключить не один, а несколько удаленных филиалов к центральной АТС компании. Пусть это будут три розничные точки по одному абоненту в каждой:


В эти точки вместо четырехпортовых шлюзов было бы логичней поставить недорогие однопортовые SIP-адаптеры, например, Grandstream HT701. Как в таком случае изменятся настройки на шлюзе GXW4104? Для прохождения вызова от абонентов головного офиса к удаленным абонентам теперь не требуется использовать различные SIP-порты, так как теперь вызовы для различных удаленных абонентов будут направляться на различные IP-адреса. И тут мы встречаемся с первой проблемой – количество SIP-серверов, которые можно задать на GXW4104 (и даже на GXW4108) ограничено тремя, поэтому больше чем три локации подключить через один такой FXO-шлюз не получится.

  1. Заходим в раздел Accounts — Account 1 – General Settings. В поле SIP-Server указываем IP-адрес шлюза HT701 розничной точки 1. Делаем то же самое для Account 2 и Account 3, указывая адреса шлюзов из розничной точки 2 и 3 соответственно.



  2. Раздел Accounts — Account 1 — SIP Settings. В поле SIP Registration выбираем значение No. Повторяем для Account 2 и Account 3.



  3. Раздел Settings – Channels Settings – Calling to VoIP. В поле SIP Server мы указываем ch1:p1;ch2:p2;ch3:p3;ch4:p1; Хоть четвертый канал и не используется, профиль мы для него назначить должны. В поле SIP Destination Port мы оставляем значение по умолчанию ch1-4:5060. Поле User ID заполняем аналогично предыдущему примеру, например, ch1-4:123;




Исходящие вызовы с центральной АТС в удаленные точки заработали, так как каждый HT701 слушает свой порт 5060 по умолчанию и при поступлении звонка инициирует вызов подключенного к единственному FXS-порту телефона. Для того чтобы вызовы пошли в другую сторону, необходимо настроить каждый Grandstream HT701. Заходим на Web-интерфейс шлюза HT-701 и переходим в раздел FXS PORT.

  1. В поле Primary SIP Server указываем IP адрес FXO шлюза Grandstream GXW4104.



  2. В поле SIP Registration выбираем No



  3. В поле Dial Plan Prefix указываем 991 для первой точки (телефон 301), 992 для второй (302) и 993 для третьей (303). На основе этого префикса FXO-шлюз в головном офисе поймет, через какой порт следует отправлять вызов на АТС.




Если в настройках FXO Lines > Dialing Grandstream GXW4104 в поле Stage Method(1/2) указано ch1-4:1, а в поле Prefix to Specify Port указано 99, то вызовы от абонентов удаленных точек в сторону абонентов головной АТС также заработают.

Используем IP-телефоны


В рассматриваемой задаче FXO-шлюз, установленный в головном офисе, является ключевым элементом, отказаться от которого мы не можем, так как центральная АТС, по условиям задачи, не поддерживает протокол SIP. Если замена центральной АТС – это трудоемкая и дорогостоящая процедура, то заменить аналоговые телефоны на аппараты с поддержкой SIP в удаленных филиалах довольно легко и многие наши клиенты так и поступают. Это несколько упрощает схему:


Настройки шлюза GXW4104 не меняются по сравнению с предыдущим примером. Настройки IP-телефона рассмотрим на примере модели Grandstream GXP1620. Откроем Web-интерфейс и перейдем в раздел Accounts — Account 1 — General Settings.

  1. В поле Account Name укажем номер телефона – 301, 302 или 303.
  2. В поле SIP Server укажем IP адрес FXO шлюза Grandstream GXW4104.



  3. Перейдем в раздел Account 1 — SIP Settings — Basic Settings и в поле SIP Registration выберем No.



  4. Перейдем в раздел Account 1 — Call Settings и в поле Dial Plan Prefix укажем значение 991 для телефона 301, 992 – для телефона 302 и 993 для телефона 303.




На этом настройка IP-телефона закончена – теперь с них можно совершать вызовы на телефоны абонентов центральной АТС. Следует отметить, что не все телефоны могут работать в такой конфигурации. Главное требование к аппаратам – возможность совершать вызовы без регистрации. Также телефоны должны уметь добавлять префикс в набираемый номер. Второе требование не является обязательным, так как вместо использования диалплана, можно направлять вызовы с разных IP-телефонов на различные SIP-порты FXO-шлюза, что позволит последнему правильно отправлять вызовы на АТС. Также можно воспользоваться 2-этапным набором номера, что, правда, менее удобно. Наиболее популярные марки IP-телефонов, такие как Grandstream, Yealink, Fanvil, Linksys отвечают указанным требованиям и поддерживают работу в данной конфигурации.
Поделиться с друзьями
-->

Комментарии (6)


  1. bazis13
    04.07.2016 19:46
    +3

    Сегодня звонил в компанию СДЭК на номер 499, всё булькает, прерывается… еле слышно.
    Госпади, почему просто нельзя раздать операторам личные телефонные номера и зарегистрировать их в мессенджерах.
    Чтобы хотя бы в качестве альтернативы, была возможность позвонить в viber или hangouts и насладиться чистым звуком, который не трогали криворукие админы, собирающие убогую телефонию на дешевых железках.
    Думаю, что рано или поздно компании поймут, что люди сразу хотят говорить с конкретными живыми людьми, а не роботами с «нажмите 2, и мы вас соединим с нужным отделом через 15 минут»


    1. LumberJack
      04.07.2016 20:48
      +1

      Гораздо смешнее, когда люди с «булькающих линий» звонят с предложениями существенно оптимизировать расходы на связь.


    1. LuckyStarr
      06.07.2016 13:14

      Операторов меньше, чем желающих с ними поговорить: приходится выкручиваться и пытаться отсеять тех, кто мог бы и без живого обойтись.


      1. bazis13
        06.07.2016 13:20

        Ок, пусть в контактах на сайте будет список номеров операторов и рядом их статус — занят/свободен.
        Как на страничке появится свободный оператор — я позвоню. Сделать такое — проще простого, и это приятнее, чем слушать музыку в трубке в ожидании.
        Вся инфраструктура для такой телефонии готовая, бесплатная, бесконечно масштабируемая и круглосуточно обслуживается профессионалами, а не приходящим админом-студентом.


        1. Glays
          06.07.2016 21:20

          набрал номер, а уже занято, кто-то быстрее успел набрать.
          И так до просветления.

          Уж лучше музыку. Хотя мне было бы приятнее простые гудки.


    1. rughost
      06.07.2016 21:20

      Решение ко второй части — жать все время единицу, не слушая бота. Девушке на телефоне сказать, что нужно, она дальше сама переведет