Как подключить asterisk через gsm шлюз
Есть Битрикс24 (Bitrix24-коробочная версия). Шлюз DINSTAR G2000-8E. Сервер с телефонией на базе: Asterisk +FreePBX оболочка.
Задача от заказчика:
настроить Dinstar после полного сброса (т.е. он сделал на Dinstare полный reset)
настроить роутинг на Dinstare по определенным симкам:
- с 0 по 5 сим-карту, звонки должны идти на группу менеджеров в Битрикс24
- с 6 по 7 сим-карту, звонки должны идти на группу бухгалтеров в Битрикс24
все это связать с Bitrix24, как 2 отдельные АТС (для роутинга между 2 группами менеджеров и бухглатеров)
Задача тривиальная, но проблема была в том, где именно мы собираемся роутить звонки на шлюзе или в Астериске ?
Далее я опишу процесс интеграции с детальными настройками, как , где и что было сделан по этапам.
1) Нам нужен список СИМ-КАРТ с номерами телефоном и порядком, по которому они вставлены в шлюз, далее проверяем в меню: System Information > Mobile Information , статусы наших карт.
2) Заходим в меню: Calls Configuration и начинаем настройки Вашего DINSTAR DWG2000E-8G-B (ниже я буду писать только те меню, где я менял настройки):
Этого будет вполне достаточно.
3) В меню: Port Configuration настраиваем подключение к каждой нашей Сим-карте, это одна из главных настроек, пожалуйста будь-те внимательны.
Я опишу Вам логику, по которой я создавал подключение:
0MTS1 , 1KS1, 2LIFE1, 3KS2, 4MTS2, 5KS3, 6MTS3, 7KS4 (т.е. у нас 3 карты Vodafone(MTS), 4 Карты Kievstar и одна Карта Lifecell
4) Дополнительные настройки:
5) Осталось совсем немного. Делаем роутинг звонков адресацию входящих и исходящих звонков в меню: Routing Configuration.
>Routing Parameter (выбираем как будет работать правило)
* И так проделываем для каждой сим-карты . должно быть 8 настроек на каждый порт. Все теперь исходящий роутинг успешно настроен (его можно было сделать и через Port Group, ну тут каждый делае на своё усмотрение)
ИТОГ: Ваш GSM-шлюз DINSTAR DWG2000E настроен успешно. Теперь он готов принимать и делать исходящие звонки через наш SIP server на базе Астериска.
По поводу самого астериска говорить буду в кратце, так как он уже был настроен (имею введу: собран на сервере, поставлены все нужные модули: DAHDI, ODBC-коннектор, накачена оболочка FreePBX и т.д.)
Доступ к серверу у меня конечно же был, для настройки IPTABLES и FAIL2BAN
Но настройки Астериску я задавал только через оболочку FreePBX.
Приступим, по шагово:
Советую создать так же тестового юзера (третьего и зарегистрировать у Вас в зойпере для манипуляций и тестирования звонков!
В 3-тем пункте это будте описано, он нам даст: Адрес сервера,Логин и пароль.
Заходи в FreePBX > Connectivity > Trunks > Add SIP (chan_sip) Trunk
fromuser=sip25*(То что Вам дал битрикс в поле логин)
username=sip25*(То что Вам дал битрикс в поле логин)
secret=12345678900987654321(То что Вам дал битрикс в поле пароль)
*Теперь Ваш транк успешно зарегистрируется и можно будет отправлять Ваши звонки из Астериска на Битрикс24 успешно.
Все просто ребят, берем настройки из шлюза, напоминаю я каждой сим карте дал адекватный порядковый номер, один и тот же пароль для подключения, так же я и назову свои транки.
username=0MTS1 (логин Вашей симки)
secret=1qaz2wsx3edc (Пароль Вашей симки)
allow=alaw&ulaw (!Важно, это кодеки с которым будет работать астериск, если не укажите будет ругаться что G729 не доступен)
qualify=yes (Пингуем наши симки, не обязательно, но мне так захотелось)
context=from-trunk (Контектс который указывает что входящие звонки с сим-карт будут заходить в Inbound route в FreePBX)
Остальные сим-карты шлюза подключены по аналогии, изменяется только USERNAME
- Теперь проходим в меню: Outbound Routes и создаем настройки исходящих звонков.
Так как напоминаю, у нас 2 группы пользователей Buhgalter и Manager , я сделал 2 типа исходящих роутов:
И далее направляем, куда же будут идти наши звонки (на какие транки):
Trunk Sequence for Matched Routes:
В нашем случае я направляю на
-1KS1 (сим-карта в шлюзе на порте 1 Киевстар)
-3KS2 (сим-карта в шлюзе на порте 3 Киевстар)
-5KS3 (сим-карта в шлюзе на порте 5 Киевстар)
Dial Patterns that will use this Route
Dial Patterns that will use this Route
Даю подсказу по лайфу:
Но, в меню: Trunk Sequence for Matched Routes, указываем Сим-карты для Бухгалтеров:
-7KS4 (сим-карта в шлюзе на порте 7 Киевстар)
Но, в меню: Trunk Sequence for Matched Routes, указываем транк от Укртелекома
Итог: У Вас теперь 7 направляний для исходящих звонков, направленных на нужные Вам Сим-карты на GSM-роутере
- Теперь проходим в меню: Inbound Routes и создаем настройки входящих звонков.
Тут все очень просто. Ранее на шлюзе мы сделали настройку HOT line для каждой сим-карты, тем самым мы сказали шлюзу отдавать в астериск параметр extension номер телефона через 0, а значит
в поле DID Number мы теперь указываем нужный нам номер через 0, пример:
DID Number: 0999999999
Set Destination: Trunks > Manager 2000
DID Number: имя_транка_которое нам дал Укртелеком или входящий номер 0441111111
Set Destination: Ring Group > ALLGROUP (вызовы будут идти на оба подключения в Битрикс24, так как по городским нам не нужна разбивка на 2 офиса)
Пожалуй, информации, что такое Asterisk, FreePBX и VoIP-GSM шлюз достаточно, и в представлении они не нуждаются. На руках сервер с установленным, основанным на CentOS, дистрибутивом AsteriskNOW, бюджетный четырехканальный шлюз Hybertone GoIP4. Задача организовать IP-АТС с тремя операторами и тремя GSM-каналами поставлена, поэтому, без лишних красноречивых вступлений, сразу к делу.
Опускаю описание не отличающуюся от любой другой установки ОС, настройку extension'ов и IVR с Time Conditions, о чем, при необходимости, напишу позже. Устанавливаем не требующие вводи PIN-кода SIM-карты (в моем случае — 3 шт), включаем в сеть шлюз, смотрим на маршрутизаторе его IP адрес, привязываем по MAC, и заходим через браузер (пароль/логин: admin), где наблюдаем простой и понятный WEB-интерфейс:
Добавлю, что инициализация SIM-карт с момента подачи питания занимает около двух минут.
Открываем Configurations > Preferences, выбираем часовой пояс, время автоматической перезагрузки, отключаем IVR:
Открываем Configurations > VoIP, выбираем режим работы шлюза (я выбрал Single Server Mode, поскольку разделять исходящие звонки задачей не стояло, а тратить драгоценное время на раздельную настройку каждого канала считаю лишним), выбираем используемые кодеки, а так же данные для авторизации Asterisk (Phone Number, Authentication ID / Password), а так же IP-адрес нашей PBX:
Открываем Configurations > Call Management, где меняем CID Forward Mode на Use SID as SIP Caller ID для того, что бы при входящем звонке видеть номер абонента, а не Phone Number шлюза, а так же в поле Forwarding to VoIP Number вписываем номер, на который будут переводиться входящие звонки, что необходимо сделать для каждой линии (в моем случае пришлось завести виртуальный Extension, который переводит все звонки на Time Conditions, о чем в конце статьи):
Не забываем сменить пароли в Tools > Change Password, отключить неиспользуемые каналы в Tools > GSM Channel Shut Down и сохранить настройки в Tools > Backup/Restore Configurations!
На этом настройка VoIP-GSM Шлюза Hybertone GoIP4 закончена, приступим к настройке Asterisk PBX с помощью FreePBX. Заходим в Connectivity > Trunks, выбираем Add SIP Trunk. Указываем Trunk Name, а так же в Maximum Channels количество линий:
Далее указываем данные авторизации и прочие настройки:
Вместо 192.168.168.14, goip_4_1 и password необходимо подставить свои значения:
port=5060
type=peer
context=from-internal
dtmfmode=rfc2833
insecure=very&port,invite
qualify=yes
username=goip_4_1
secret=password
nat=no
fromuser=goip_4_1
defaultuser=goip_4_1
conext=from-internal
secret=password
dtmfmode=rfc2833
canreinvite=no
context=from-trunk
host=dynamic
type=friend
qualify=yes
Заходим в Connectivity > Outbound Routes, прописываем Route Name и настраиваем Dial Patterns that will use this Route, в которых в третьем по счету правиле необходимо указать столько «X», сколько соответствующее длине номера в Вашем городе, указываем в Trunk Sequence for Matched Routes недавно созданный транк:
Ну и, конечно, Connectivity > Intbound Routes. Вписываем Description, выбираем Set Destination, который у меня, почему-то не заработал ранее, и из за которого пришлось использовать виртуальный Extension.
На этом подключение шлюза к АТС закончено. Инструкция не претендует на звание «лучшего решения», а всего лишь моя реализация поставленной задачи. Комментарии и замечания приветствуются.
В процессе настройки оборудования использовались следующие ресурсы: форум FreePBX, форум Asterisk и инструкцией для серии VoIP-GSM шлюзов серии GoIP.
Надоело мне ходить с несколькими телефонами для приема звонков по работе, посему захотелось снова возобновить идею с созданием собственной офисной АТС на основе FreePBX с gsm-шлюзом на основе usb-модемов Huawei 1550. Так как ее создание не является задачей первостепенной, то делать это решено самостоятельно, в свободное время и как можно более бесплатно.
Зачем нужна своя офисная АТС.
Итак цель выглядит примерно следующим образом :
Офисная АТС, основана на бесплатном ПО FreePBX, имеет на борту несколько USB-модемов HUAWEI 1550 с сим-картами разных операторов, она связана с виртуальной АТС Zadarma, которая позволит дешево звонить за границу + принимать звонки с виртуальных номеров (к примеру наши номера телефонов в других странах). Так-же в офисе имеется парочка стационарных VoIP телефонных аппаратов, которые и будут использоваться для приема звонков в офисе.
Все входящие звонки будут ходить по определенной логике, позволяя мне не носить несколько телефонов с собой. И в случае необходимости я хочу оперативно иметь возможность менять маршрутизацию.
Что потребуется из железа.
Базовый набор железа у меня уже был припасен : В шкафу валялся старый селерон-1.8 в мини корпусе, 3 уже разлоченных модема HUAWEI E1550 (разлочивал самостоятельно по инструкции из инета), два телефонных VoIP аппарата старенькие Linkssys SPA922 и YeaLink T22P. Также имеется давно используемый аккаунт в сервисе Zadarma (используется для международных звонков практически бесплатно (к примеру США и Канада имеют для меня нулевой тариф) и покупки виртуальных номеров в нужной мне стране мира).
Логика маршрутизации звонков.
Логика маршрутизации входящих звонков:
Логика маршрутизации исходящих звонков:
Звонки из офиса направляются через нужную сим-карту в АТС в зависимости от номера телефона, звонки за кордон переадресовываются и уходят через виртуальную АТС Задарма.
В последствие эту систему можно усложнять, но для начала сойдет.
Выбор софта для офисной АТС.
Я перебрал несколько решений. Но большинство решений требует либо денег сразу, либо денег в последствии, либо сложны для освоения. Так как знаниями для настройки Linux я не владею, было решено использовать готовую установку FreePBX, позволяющее с загрузочного диска получить уже готовую для настройки систему.
Установка FreePBX для нубов.
Настройка FreePBX
Итак вы должны мучаться, пока не увидите на экране вот это :
Теперь смело на втором компе вбивайте айпишник своего сервера и приступайте к настройке.
Настройка и подключение VoIP телефонов к FreePBX.
Подготовка и подключение модемов Huawei к FreePBX 13
Установка модемов в качестве шлюзов на деле оказалась крайне сложной задачей, для человека, незнакомого с Linux. Так как каждое руководство изобилует набором команд консоли (не графической оболочки). Я очень долго мучался (при том, что я когда-то знавал еще DOS и консоль мне не противна).
Commander поможет вам только в том случае, если вы знакомы хоть как-то с файл-менеджерами типа Far или Volcov Commander (да-да, привет из 90х).
Теперь самое веселое : необходимо подключить и настроить внешние модемы с сим-картами, прописать маршрутизацию и заняться настройками безопасности (в ЛОГах я заметил, что кто-то с внешних айпишников уже начал ломиться ко мне на АТС).
Добавление модем в админкм FreePBX и входящей и исходящей маршрутизаци описана удачно тут и тут.
Заключение.
Должен сказать, что на втором этапе (именно настройка маршрутов) потребовала подключения специалиста по ip-телефонии, к этому моменту мой мозг начал подтупливать (я ковырялся со всем этим с нуля уже несколько дней подряд), хотя многие могут подумать, что настройки в консоле линукса сложнее, чем красивые менюшечки freepbx 🙂
Плюсом самостоятельной установки и настройки является то, что я могу теперь самостоятельно разруливать мелкие технические неполадки в случае чего.
Что дальше ?
Апдейт примерно через месяц работы АТС на GSM-модемах :
Желаю вам побольше звонков от клиентов и заявок на ваших сайтах !
Устройства фирмы AddPac со своего первого появления клонировали оборудование компании Cisco, сейчас большая часть разработок — собственные устройства. Но от первых устройств осталась большая схожесть команд и настроек, поэтому тем, кто хорошо знаком с оборудованием Cisco настроить AddPac большого труда не составит.
Настройка в Asterisk
Для исходящих вызовов создаётся соответствующий sip аккаунт gsm_gate, который привязан к соответствующей sim карте.
Для входящих вызовов с устройства используется номер 300 ( можно создать любой номер).
sip.conf
[gsm_gate]
host=dynamic
type=friend
username=gsm
secret=qwerty1234
context=from-trunk
nat=no
qualify=yes
deny=0.0.0.0/0.0.0.0
permit=192.168.170.0/255.255.255.255
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
Настройка в AddPac
Подключение
Подключиться к шлюзу можно 2 способами: через утилиту telnet или через com порт. Что бы подключиться по telnet нужно знать ip адрес шлюза, соответственно соединиться через последовательный порт можно даже не зная ip адреса.
1. Для соединения через com порт выставляются следующие настройки:
Speed — 9600 Bau
Data bits — 8
Stop bits — 1
Parity — None
Логин и пароль в любом режиме root и router соответственно.
2. Подключение через telnet:
telnet 192.168.10.1
GS1001>
В AddPac есть 2 уровня доступа — режим управления и режим настройки.
AddPac находится в режиме управления. Для доступа в режим настройки необходимо перевести его в привилегированный режим:
Активация режима настройки Addpac:
AddPac готов для конфигурирования.
Код для настройки GSM канала на шлюзе:
Теперь можно перейти к настройке самой IP телефонии:
! Voice service voip configuration. !конфигурирование voice service VoIP
voice service voip
protocol sip
dtmf-relay rfc-2833
fax protocol t38 redundancy 0 ! факс-протокол
fax rate 9600 ! задание скорости факс-передачи
h323 call start fast ! использование процедуры H323 Fast Connect ( быстрое соединение)
h323 call tunnel enable
no call-barring unconfigured-ip-address
no voip-inbound-call-barring enable
voice service voip — активирует контекст IP-телефонии, т.е. команды следующие за ней будут относится только к общим ( глобальным) настройкам IP телефонии.
dtmf-relay rfc-2833 — указывает способ передачи DTMF, в данном случае DTMF будет передаваться по протоколу RFC2833.
fax protocol t38 redundancy 0 — устанавливает протокол для передачи факса, в данном случае это T.38. Параметр redundancy 1 устанавливает избыточность. Избыточность это один из механизмов протокола T.38 для борьбы с потерей пакетов.
fax rate 9600 — устанавливает максимальную скорость передачи факсов.
h323 call start fast — устанавливает режим быстрого старта.
! Voice port configuration.
!GSM
voice-port 0/0
connection plar 300 ! включение режима автоматического прямого вызова, где 300 — номер, на который пойдет вызов при входящем с GSM
ring detect-timeout 70
caller-id enable
caller-id type etsi
caller-id name disable
voice-port 0/0 — вводит в режим конфигурирования определенного голосового порта.
connection plar 300 — определяет соединение автоматического прямого вызова частной линии (PLAR ), если данный голосовой порт используется для PLAR-соединения. 300 — телефонный номер назначения.
! FXS !настройка FXS порта
voice-port 0/1
caller-id enable ! включение технологии Caller ID
! Pots peer configuration. !конфигурирование POTS Peer
dial-peer voice 3048 pots ! создание POTS диалпира с номером 3048
destination-pattern. T ! телефонный номер или шаблон телефонного номера
port 0/0
call-waiting
user-name gsm_gate
user-password qwerty1234
! Voip peer configuration. ! конфигурирование VOIP Peer
dial-peer voice 10100 voip ! создание VoIP диалпира с номером 10100
destination-pattern 300 ! набираемый VoIP номер
session target ip 192.168.170.106 ! вызов идёт на данный IP адрес
session protocol sip! протокол (SIP /H.323)
voice-class codec 0 ! настройка кодеков
no vad ! выключение детектора голоса VAD
dtmf-relay rtp-2833 ! метод передачи DTMF
description asterisk
dial-peer voice 10100 voip — вводит в VoIP режим конфигурирования dial-peer. 10100 — идентификатор dial-peer данной системы.
destination-pattern 300 — вводит набираемый VoIP номер, соответствующего dial-peer.
session target ip 192.168.170.106 — вводит IP адрес соответствующего VoIP peer.
voice-class codec 0 ! выбор CODEC для голоса с учётом скорости кодировщика голоса no vad принудительно выключает подавление тишины.
! Gateway configuration. !конфигурация шлюза
gateway
h323-id voip.192.168.170.101
no ignore-msg-from-other-gk
! Codec classes configuration. !подключаемые кодеки
voice class codec 0 ! настройка кодеков
codec preference 1 g711alaw ! preference — приоритет кодека
codec preference 2 g711ulaw
codec preference 3 g729
Voice class codec 0 — вводит в режим конфигурирования классов CODEC, 0 — идентификатор CODEC класса.
! SIP UA configuration.. !настройка SIP-сервера
sip-ua
user-register ! включение регистрации на Asterisk
sip-server 192.168.170.106 ! ip-адрес SIP-сервера c Asterisk
called-party-number to-field
session-refresh update
register e164 ! регистрация телефонных портов на Asterisk
Чтобы проверить правильно ли всё настроено используется команда — show sip.
Значение Registered в колонке Status говорит о том, что регистрации прошла успешо.
На канторе окончательно решили уйти от глюкавых E1550, к более продвинутому gsm-шлюзу GoIP4. Который будет выполнять входящие и исходящие (с возможностью выбора линии) звонки.
Настройка GoIP
Вставляем 4 SIM-карты (без паролей), подключаем в порт "LAN" (DHCP) и смотрим в логах какой IP выдался Goip-у или в порт "PC" (шлюз имеет IP: 192.168.8.1).
Я выбрал первый вариант. Заходим в веб интерфейс GoIP, Логин/Пароль для авторизации на шлюзе admin/admin. Так же есть учетные записи с ограниченными правами user и sms.
Меняем часовую зону на свою и убираем галочку IVR.
Ставим статический ИП, так надежней:
Переходим к настройкам gsm каналов. В данном случае мы выбираем "Config by Line".
Задаем основные параметры:
Phone Number = номер (берем с соответствующего екстеншена в sip.conf)
GateWay Prefix = 1 - для каждой линии свой 1,2,3,4, таким образом в GoIP идет выбор нужной вам линии при исходящих звонках.
Sip Proxy = IP Asterisk сервера
Sip Registrar Server = IP Asterisk сервера
Authentication ID = логин (берем с соответствующего екстеншена в sip.conf)
Password = пароль (берем с соответствующего екстеншена в sip.conf)
Переходим в Call Management, тут необходимо для каждой линии соответственно задать входящие "Call IN via GSM" и исходящие "Call OUT via GSM" параметры.
Dial Plan - ставим так же для каждой линии свой, например: 1:-1, 2:-2, 3:-3, 4:-4.
CID Forward Mode - выставляем значение "Use CID as SIP Caller ID" этот параметр отвечает за передачу Caller ID с GSM- в VoIP-сеть. Другими словами, передает входящий номер абонента GSM в VoiP.
Forwarding to VoIP Number - вписываем номер, который шлюз будет вызывать на Asterisk при входящих вызовах, у меня это "210" на котором находится голосовое меню.
CID Prefix - добавил "+", так как GOIP изначально передает номер без префикса.
Не забудьте поменять пароли в "Tools > Change Password" и навсяк сделать бекап конфигурации "Backup/Restore Configurations".На вкладке "Status" можно посмотреть статус SIM-карт и уровень сигнала.
Так же добавлю, что в если Вам необходимо будет разделять на транки входящие звонки, С GoIP у меня не вышло. При входящем звонке она выдает транк звонящего рандомом, что меня очень смутило, а не как бы хотелось использовать при входящем звонке именно тот транк с которого поступает звонок.
Потратил на это пару дней. Решения в сети пока не нашел.
Настройка Asterisk
Добавляем транки в /usr/local/etc/asterisk/sip.conf:
Перезагружаем Asterisk и смотрим в "sip show peers" транки должны зарегистрироваться на шлюзе.
Читайте также: