Подключение GSM шлюза GOIP4
Это четырехпортовый шлюз, предназначенный для постоянного соединения между сетью GSM и сетью VoIP. С помощью GoIP4 пользователи могут осуществлять восходящие и нисходящие вызовы между этими сетями.
Выполните резервное копирование настроек шлюза.
Сбросьте шлюз к заводским настройкам.
В нашем примере шлюз GoIP4 будет регистрироваться на АТС MikoPBX. Для этого на АТС создадим учетную запись провайдера(SIP), со следующими параметрами:
Название провайдера - укажем подходящее название, к примеру GoIP4.
Тип учетной записи - «Входящая регистрация».
Логин - будет установлен равным ID провайдера, поменять возможности нет, пример логина «SIP-TRUNK-3A13EB43».
Пароль - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX.
В расширенных настройках провайдера, в поле "Дополнительные параметры", укажите:
[endpoint]
trust_id_inbound=yes
Нажмите "Сохранить".
Перейдем к настройка в web-интерфейсе шлюза GoIP:
Перейдем на вкладку Configurations - Preferences. Необходимо установить подходящий часовой пояс, отключить использование IVR:
Перейдем на вкладку Basic VoIP, укажем настройки подключения к АТС:
"Config Mode" - Single Server Mode
"Authentication ID", "Phone Number", "Display Name" - укажите ID (логин) учетной записи провайдера в формате SIP-TRUNK-XXXXXXXX…
"Password" - укажем пароль из учетной записи провайдера
"SIP Proxy", "SIP Registrar", "Home Domain" - укажем IP адрес MikoPBX
"Delete Callee Prefix while Dialing" - устанавливаем в значение Disable
"Routing Prefix" - для Line1 префикс 1, для Line2 префикс 2 и т.д.
Перейдем на вкладку Call Out.
Перед совершением исходящего звонка необходимо обработать номер телефона и удалить префикс, с которым пришел номер от АТС.
Для CH1, в поле Dial Plan настроим правило 1:-1
Для CH2, в поле Dial Plan настроим правило 2:-2
Так для каждого канал «CH*», где * - порядковый номер SIM канала
Для CH8, в поле Dial Plan настроим правило 8:-8
Правило dialplan ««1:-1» означает,что если номер начинается на 1, то первая цифра будет удалена, отсекаем префикс
ерейдем на страницу Call In для настройки переадресации входящих звонков на SIP линию.
CID Forward Mode выставляем значение «Use Remoe Party ID».
Для каждого GSM канала CH1, CH2… CH*, в поле Forwarding to VoIP Number, укажем номер телефона SIM без (только цифры).
На этом настройка шлюза завершена.
Перейдем на страницу Status - Summary. В колонке VoIP отображается статус подключения шлюза к АТС MikoPBX, Y - шлюз успешно зарегистрировался на АТС(по 4 линии статус N, т.к. на ней не установлена sim):
В интерфейсе АТС MikoPBX, перейдите на страницу "Маршрутизация" -> "Входящие маршруты".
Добавьте новое правило входящих звонков с первого канала GSM шлюза:
"Провайдер" - укажите ранее созданного провайдера GoIP4
"Дополнительный номер(DID)" - укажите номер, который Вы заполнили в поле Forwarding to VoIP Number для первого канала в настройках входящих звонков шлюза. В нашем случае это номер телефона первой sim карты
"Вызов будет переадресован на" - укажите номер, на который Вы хотите направить входящие звонки. В нашем случае это трубка с номером 911.
Нажмите "Сохранить".
Перейдите на страницу "Маршрутизация" -> "Исходящие маршруты".
Добавьте новое правило для звонков через первую sim:
Звонки на номера соответствующие шаблону 8911XXXXXXX или 7911XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 1+.
Номер начинается с - укажем начало набираемого номера, в нашем случае (7|8)911
Остальная часть номера состоит… - 7 цифр
Перед тем как начать звонок отсекаем - 1 цифр
Затем добавляем к номеру - 1+
Нажмите "Сохранить".
Добавим новое правило для звонков через вторую sim:
Звонки на номера с шаблоном 8926XXXXXXX или 7926XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 2+.
Аналогичным образом можно настроить правила для звонков через другие sim.
На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз.
Используя модуль "Группы пользователей" можно назначить каждому сотруднику свою SIM карту для исходящих.
Настройка SMS в Telegram для шлюза GoIP4
Для начала через чат Telegram следует написать боту @BotFather. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX.
Отправляем боту команду
/start
Команда создания нового бота:
/newbot
Отправляем имя нашего нового бота. К примеру:
MIKOPBX_NEW_BOT
Сохраните значение «token»: он понадобится для настройки со стороны АТС.
Создайте новую «группу».
Перешлите любое сообщение из группы боту @getmypid_bot
Сохраните значение «chat ID», для пользователя значение вида "190389360", для группы - отрицательное, вида: "-4190389360".
В разделе «Модули» - «Приложения диалплан» создадите новое приложения, со следующими параметрами:
"Название" - Переслать sms в telegram (произвольное).
"Тип кода" - PHP-AGI
Программный код:
<?php
require_once 'Globals.php';
use \GuzzleHttp\Client;
const API_KEY = '';
const CHAT_ID = '';
$agi = new MikoPBX\Core\Asterisk\AGI();
$message = str_replace(
['n'],
["\n"],
$argv[1]??"");;
$did = $agi->request['agi_extension'];
$agi->verbose($message, 3);
$TEXT = "
SMS на номер: $did
От: $message
";
$apiURL = 'https://api.telegram.org/bot' . API_KEY . '/';
$client = new Client([
'base_uri' => $apiURL,
'timeout' => 1,
'http_errors' => false,
]);
try {
$client->post( 'sendMessage', ['query' => ['chat_id' => CHAT_ID, 'text' => $TEXT]] );
}catch (Throwable $e){
}
В адресной строке браузера нужно скопировать идентификатор приложения, он имеет вид: «DIALPLAN-APP-8B0D0964»:
Перейдите в раздел "Система" -> "Кастомизация системных файлов":
Перейдите к редактированию файла "/etc/asterisk/extensions.conf", установите режим "Добавлять в конец файла". Используйте следующий код:
[messages-from-goip]
exten => _[0-9*#+a-zA-Z]!,1,AGI(DIALPLAN-APP-8B0D0964.php, "${MESSAGE(body)}")
same => n,hangup()
exten => _[hit],1,Hangup()
Перейдите в раздел "Маршрутизация" -> "Провайдеры телефонии". Добавьте нового SIP-провайдера, со следующими параметрами:
"Название" - произвольное
"Тип учетной записи" - Аутентификация по IP адресу, без пароля.
"Хост или IP адрес" - IP-адрес Вашего шлюза
В "Расширенные настройки" -> "Дополнительные параметры" пропишите:
[endpoint]
message_context = messages-from-goip
Перейдите в раздел «Configurations» - «SMS»
Для каждого канала CH1 / CH2 … CHN выполните настройку:
«SMS to VoIP» (верхнее) - «Call Function»
«Call mode» - «Mode 1»
«SMS to VoIP» (нижнее) - укажите номер телефона sim карты
Подключение Voip шлюза Grandstream HT503
Grandstream HT503 - FXS-FXO шлюз, подходит для подключения как одной городской линии, так и одного телефона. В шлюзе предусмотрена поддержка протокола T.38. Шлюз может выступать в роли роутера. В примере рассмотрим, как подключить к MikoPBX городскую линию через FXO порт шлюза Grandstream HT503.
Подключите сетевой шнур в WAN порт, городскую линию в порт LINE, подайте питание на шлюз.
По умолчанию подключение к Web-интерфейсу отключено. Для доступа к Web-интерфейсу необходимо сделать следующие шаги:
Подключите аналоговый телефон к шлюзу и наберите ***
. Вы попадете в голосовое меню шлюза.
Наберите 12, затем 9, таким образом, Вы включите доступ к Web интерфейсу через WAN порт
Наберите ***
.
Затем 99, затем 9 – устройство перезагрузится.
Чтобы узнать IP-адрес WAN порта, наберите на аналоговом телефоне ***
, затем 02. Или посмотрите IP адрес на вашем роутере.
В адресной строке вашего браузера введите полученный IP адрес. Для входа в Web-интерфейс введите пароль - admin
.
Перейдите в web-интерфейс MikoPBX на вкладку "Маршрутизация" → "Провайдеры телефонии". Нажмите на кнопку Подключить SIP для добавления новой учетной записи для шлюза:
В web-интерфейсе шлюза перейдите на страницу STATUS. Здесь отображается информация о IP адресе шлюза. Скопируйте его.
Заполните следующие параметры:
Название провайдера - произвольное
Тип учетной записи - Исходящая регистрация
Хост или IP адрес - IP-адрес шлюза
Логин, пароль - произвольные
Режим DTMF - rfc4733
Перейдите в Расширенные настройки. Укажите порт соединения - 5062
Отключите использование поля fromuser. В дополнительные параметры вставьте следующий контекст:
Сохраните настройки.
Перейдите в раздел "Система" -> "Общие настройки".
Перейдите в раздел "Аудио/Видео кодеки". Оставьте включенным только кодек "G.711 A-law":
Снова переходим в web-интерфейс шлюза. Если необходимо внести сетевые настройки, то перейдем во вкладку BASIC SETTINGS. Мы можем выбрать тип подключения DHCP, PPPoE, статический IP адрес.
На вкладке BASIC SETTINGS листаем до низа страницы. В поле Unconditional Call Forward to VOIP необходимо указать ваш User ID (DID номер для MikoPBX), Sip Server и Sip Destination Port, относящиеся к настройкам FXO порта.
Приступим к настройке FXO порта. Для этого переходим во вкладку FXO PORT. Здесь необходимо заполнить следующие поля:
Account Active - Yes
Primary SIP Server - Указываем IP адрес или доменное имя вашей АТС MikoPBX.
SIP User ID - Имя пользователя
Authenticate ID - Идентификационное имя, которое идет в соответствии с паролем
Authenticate Password - Пароль для регистрации на АТС
Name - Отображаемое имя, при звонках
Для корректного завершения вызов. Укажите следующие параметры:
Enable Current Disconnect - Устанавливаем данный параметр в No
Enable Tone Disconnect - Устанавливаем данный параметр в Yes
PSTN Ring Thru FXS - Устанавливаем данный параметр в No, этот параметр отвечает за перевод вызовов с FXO порта на FXS порт
Wait for Dial-Tone - Устанавливаем данный параметр в No
Stage Method (1/2) - Устанавливаем данный параметр в 1 (При звонке на существующую городскую линию, шлюз будет обрабатывать вызов и автоматически переадресовывать на нужный SIP ID или номер
Настройки подробно приведены ниже на скриншотах:
Если все корректно настроено, то во вкладке STATUS мы увидим зарегистрированные порты:
host=dynamic
insecure=port
Настройка звонков через 3G модем Huawei E173
Huawei E173 — это USB 3G-модем от компании Huawei, который совместим с модулем chan_dongle для Asterisk. Используя этот модем с chan_dongle, вы можете настроить Asterisk для совершения голосовых звонков и отправки SMS через GSM-сеть, превратив модем в полноценный GSM-шлюз.
Dongle модемы работают не стабильно. Им необходимо надежное, стабильное питание и устойчивый GSM сигнал.
Первым делом посмотрим какие USB устройства подключены к ПК:
lsusb
Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Тут нам интересно устройство «12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem».
12d1 - это идентификатор вендора.
1001 - идентификатор продукта.
Для корректной работы модема его необходимо перевести в режим «1001 (только модем)».
Далее ищем информацию об устройстве по идентификатору вендора «12d1»:
dmesg | grep 12d1
[ 2.828272] usb 1-1: New USB device found, idVendor=12d1, idProduct=1001, bcdDevice= 0.00
Далее ищем информацию по номеру USB устройства «usb 1-1»:
dmesg | grep 'usb 1-1'
[ 2.262750] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 2.828272] usb 1-1: New USB device found, idVendor=12d1, idProduct=1001, bcdDevice= 0.00
[ 2.828479] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[ 2.828641] usb 1-1: Product: HUAWEI Mobile
[ 2.828754] usb 1-1: Manufacturer: HUAWEI Technology
[ 2.856994] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 2.861194] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 2.864265] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
Теперь нам известны идентификаторы серийных устройств модема ttyUSB0, ttyUSB1, ttyUSB2.
minicom -D /dev/ttyUSB0
Появится приглашение:
Welcome to minicom 2.8
OPTIONS: I18n
Compiled on Apr 26 2021, 18:06:16.
Port /dev/ttyUSB0, 12:30:42
Press CTRL-A Z for help on special keys
Теперь можно вводить команды AT для управления и настройки модема.
AT^CARDLOCK? – проверка состояния блокировки модема и количества попыток ввода кода разблокировки:(ответ модема: CARDLOCK: A,B,0 , если A=2 модем разблокирован, A=1 модем заблокирован – SimLock, если A=3 здесь два варианта либо вы израсходовали все 10 попыток ввести код, либо у вас в модеме кастомизированная прошивка, B – количество оставшихся попыток ввода кода разблокировки (по умолчанию 10 раз))
AT^CARDLOCK=«NCK Code» разблокировка модема, для возможности работы со всеми операторами связи
AT^CVOICE=? – проверка состояния голосовых функций модема (0 - значит включено)
AT^CVOICE=0 – включение голосовых функций модема
AT^U2DIAG=0 - включение режима «Только модем»
Убедитесь, что модем поддерживает голосовые функции
Модем должен работать в режиме «Только модем»
По возможности (при наличии кода) разблокируйте модем для возможности работы с любым оператором связи
В web интерфейсе АТС переходим в web интерфейсе «Система» - «Кастомизация системных файлов»
Открываем файл «/etc/asterisk/modules.conf»
Выбираем режим «Добавлять в конец файла»
Добавляем код
load => chan_dongle.so
Открываем на редактирование файл «/etc/asterisk/dongle.conf»
Выбираем действие «Заменять полностью»
Копируем конфигурацию
[general]
interval=15
[defaults]
context=public-direct-dial
group=0
rxgain=0
txgain=0
autodeletesms=yes
resetdongle=yes
u2diag=-1
usecallingpres=yes
callingpres=allowed_passed_screen
disablesms=no
language=en
smsaspdu=yes
mindtmfgap=45
mindtmfduration=80
mindtmfinterval=200
callwaiting=auto
disable=no
initstate=start
dtmf=relax
[dongle0]
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
Открываем на редактирование файл «/etc/asterisk/modules.conf»
Выбираем режим «Добавлять в конец файла»
Обязательно добавьте контексты для обработки sms и ussd
[dongle-incoming-ussd]
exten => ussd,1,Noop(Incoming USSD: ${BASE64DECODE(${USSDBASE64})})
exten => ussd,n,Hangup()
[dongle-incoming-sms]
exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,Hangup()
После настройки «dongle.conf» потребуется перезагрузить АТС
dongle0 - произвольное имя линии, в дальнейшем будет использоваться в Dial команде для исходящих звонков. audio, data - значения этих параметров - адреса серийных устройств, определенных на предыдущем этапе. Верные значения придется определить экспериментально. Если не будет звука, то поменять местами.
Для корректной обработки входящих звонков какдому dongle необходимо настроить DID номер.
Запускаем консоль asterisk:
asterisk -r
Смотрим список модемов
mikopbx*CLI> dongle show devices
ID Group State RSSI Model Firmware IMEI IMSI Number
dongle0 0 Free 12 E173 11.126.15.00.209 *** *** 79255283744
Если в колонке «Number» номер не указан, то необходимо выполнить команды
dongle cmd dongle0 AT+CPBS=\"ON\"
dongle cmd dongle0 AT+CPBW=1,\"79255283744\",145
Вместо «dongle0» укажите идентификатор своей линии Вместо «79255283744» номер телефона sim карты.
Перезагрузите АТС.
В web перейлите в раздел «Маршрутизация» -> «Входящие маршруты»
Опишите новый маршрут, в поле DID укажите номер sim карты, настроенный на предыдущем этапе:
В разделе «Маршрутизация» - «Провайдеры» добавьте новую учетную запись SIP со следующими параметрами:
"Название" - «Dongle0» (может быть произвольным)
"Хост или IP адрес" - укажите 127.0.0.1
"Тип учетной записи" - Аутентификация по IP адресу, без пароля
Из адресной строки браузера скопируйте ID провайдера, он будет иметь вид SIP-TRUNK-ECBE1168
В разделе «Маршуртизация» - «Исходящие маршруты» создайте новый маршрут со следующими параметрами:
Перейдите в раздел "Система" -> "Кастомизация системных файлов". Откройте для редактирования файл "/etc/asterisk/extensions.conf". Выберите режим "Добавлять в конец файла" и вставьте следующий код:
[SIP-TRUNK-ECBE1168-outgoing-custom]
exten => _[0-9*#+]!,1,Set(DIAL_COMMAND=Dongle/dongle0/${number})
same => n,return
Настройка VoIP шлюза Yeastar NeoGate TG 400
Yeastar NeoGate TG400 — это VoIP GSM-шлюз с четырьмя GSM-каналами, позволяющий интегрировать мобильные сети с IP-телефонией. Он обеспечивает гибкое решение для маршрутизации звонков между GSM и VoIP-системами, поддерживая функции SMS и USSD.
Подключите ПК к Ethernet Шлюза.
Установим IP для шлюза 172.16.32.37, маска 255.255.255.0
Для входа в web-интерфейс NeoGate в окне браузера набираем http://172.16.32.37
В web-интерфейсе необходимо настроить сетевой интерфейс «Система» -> «Сетевые настройки» -> «Настройки LAN»:
В данном примере настроен статический IP адрес 172.16.32.37.
Далее необходимо вставить sim карты и убедиться, что линии подключены «Статус» -> «Мобильные линии»:
В настройке линии есть важный параметр, без него при дозвоне не будет слышно гудков:
Переходим к настройке VoIP линий шлюза: «Шлюз»-«Линии VOIP» Необходимо добавить VOIP линию:
«Тип линии» - SIP аккаунт
«Имя» - произвольно имя, уникальное среди имен учетных записей на шлюзе.
«Аккаунт» - имя учетной записи. Под этим именем будет подключаться MikoPBX.
«Пароль» - пароль учетной записи.
На вкладке «Дополнительно» следует указать «DTMF mode»:
Важная настройка GSM шлюза: если линия занята, то шлюз будет отвечать «занято», в противном случае он возвращает не корректный статус кода SIP.
Далее следует определить группу GSM линий «Шлюз» - «Мобильные группы»:
Определите набор линий в группе. В текущем примере 2 линии Мегафон объединены в одну группу. Стратегия обзвона задана как «Баланс» - исходящие вызовы будут распределяться равномерно.
Далее необходимо задать маршруты вызовов: Для исходящих «Шлюз» - «SIP в GSM». Создать новый маршрут:
Источник - SIP аккаунт
Назначение - группа GSM линий.
Перейдите в раздел «Маршрутизация» -> «Провайдеры телефонии». Добавьте SIP-провайдера со следующими параметрами:
"Название провайдера" - произвольное
"Тип учетной записи" - Исходящая регистрация
"Хост или IP-адрес" - IP-адрес шлюза
"Логин" - логин из шлюза
"Пароль" - пароль из шлюза
"Режим DTMF" - rfc4733
В дополнительных параметрах провайдера отключите использования поля fromuser:
Далее, настройте входящие и исходящие маршруты для созданного провайдера. После сохранения учетной записи, она должна зарегистрироваться на шлюзе.
Теперь можно совершать входящие / исходящие вызовы через GSM.