====== Подключение GSM шлюза GOIP4 ======
[[faq:|Обратно к инструкциям]]
[[http://www.hybertone.com/uploadfile/download/20140304125509964.pdf|Официальное руководство GoIP4]]
===== Перед работами =====
- Выполните резервное копирование настроек шлюза
- Сбросьте шлюз к заводским настройкам
===== Учетная запись провайдера на MikoPBX =====
В нашем примере шлюз GoIP4 будет регистрироваться на АТС MikoPBX. Для этого на АТС создадим учетную запись провайдера:
{{ :faq:goip-provider-1.png |}}
* **Название провайдера** - укажем подходящее название, к примеру GoIP4
* **Тип учетной записи** - "Входящая регистрация"
* **Логин** - будет установлен равным ID провайдера, поменять возможности нет, пример логина "**SIP-1659624077**"
* **Пароль** - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX
===== Установка корректного CID клиента =====
- Откройте меню "**Система**" - "**Кастомизация системных файлов**"
- Откройте на редактирование файл "**/etc/asterisk/extensions.conf**"
- Выберите режим "**Добавлять в конец файла**"
- Добавьте следующий код: [SIP-1659624077-incoming-custom]
exten => _[0-9*#+a-zA-Z][0-9*#+a-zA-Z]!,1,NoOp(------)
same => n,Set(tmpRpid=${PJSIP_HEADER(read,Remote-Party-ID)})
same => n,ExecIf($["x${tmpRpid}" != "x"]?Set(fromCid=${CUT(CUT(tmpRpid,@,1),:,2)}))
same => n,ExecIf($["${fromCid}x" != "x"]?Set(CALLERID(num)=${fromCid}))
same => n,ExecIf($["${fromCid}x" != "x"]?Set(CALLERID(name)=${fromCid}))
same => n,return
- Идентификатор "**SIP-1659624077**" замените на тот, что отображается в поле "**Логин**".
===== Настройка шлюза =====
Перейдем в web интерфейс шлюза GoIP.
1) На вкладке **Configurations - Preferences** установим подходящий часовой пояс, отключить использование IVR:
{{ :faq:goip4__pref.png |}}
2) Перейдем на вкладку **Basic VoIP**, укажем настройки подключения к АТС:
{{ :faq:goip4_voip_sett.png |}}
* **Config Mode** - выберем **Single Server Mode**
* **Authentication ID**, **Phone Number**, **Display Name** - укажем ID (логин) учетной записи провайдера в формате **SIP-XXXXXXXXXXXXX…**
* **Password** - укажем пароль из учетной записи провайдера
* **SIP Proxy**, **SIP Registrar**, **Home Domain** - укажем IP адрес MikoPBX
Далее в настройке **Routing Prefix** необходимо настроить префиксы номеров для выбора линии при исходящем вызове. Для Line1 укажем префикс 1, для Line2 укажем префикс 2 и т.д. Позже мы добавим маршруты исходящих звонков для каждой SIM карты, перед набором к номеру будет добавляться необходимый префикс.
3) Перейдем на вкладку **Call Out**. Перед совершением исходящего звонка необходимо обработать номер телефона и удалить префикс, с которым пришел номер от АТС. Для первого канала **CH1** в поле **Dial Plan** укажем правило "1:-1" (если номер начинается на 1, то первая цифра будет удалена, и вызов уйдет через первый канал). Переключимся на **CH2**, в поле **Dial Plan** укажем правило "2:-2" (если номер начинается на 2, то первая цифра будет удалена, и вызов уйдет через второй канал). И так далее.
{{ :faq:goip4_callout.png |}}
4) Настроим переадресацию входящих звонков на SIP линию. Перейдем на страницу **Call In**. Для каждого GSM канала в поле **Forwarding to VoIP Number** укажем номер телефона, с которым звонок будет направлен на MikoPBX. В нашем случае для **CH1** мы указали мобильный номер, который соответствует этой sim. Аналогичным образом для **CH2, CH3, CH4** нужно указать номера соответствующих sim карт.
5) В разделе «**Misc**»
« **CID Forward Mode**» выставляем значение «**Use Remoe Party ID**»
{{ :faq:goip-rpid.png?600 |}}
Настройка шлюза завершена, перейдем на страницу **Status - Summary**. В колонке **VoIP** отображается статус подключения шлюза к АТС MikoPBX, **Y** - шлюз успешно зарегистрировался на АТС(по 4 линии статус **N**, т.к. на ней не установлена sim):
{{ :faq:goip4_summary.png |}}
===== Настройка маршрутов входящих и исходящих звонков MikoPBX =====
1) Вернемся к настройкам АТС MikoPBX, перейдем на страницу **Маршрутизация - Входящие маршруты**. Добавим новое правило входящих звонков с первого канала GSM шлюза:
{{ :faq:goip4_ask_incom_route.png |}}
* **Провайдер** - укажем ранее созданного провайдера GoIP4
* **Дополнительный номер(DID)** - укажем номер, который мы заполнили в поле **Forwarding to VoIP Number** для первого канала в настройках входящих звонков шлюза. В нашем случае это номер телефона первой sim карты
* **Вызов будет переадресован на** - укажем номер, на который хотим направить входящие звонки. В нашем случае это трубка с номером 911.
Аналогично нужно описать правила для входящих с остальных GSM каналов.
2) Настроим исходящую маршрутизацию через каждую sim карту. Перейдем на страницу **Маршрутизация - Исходящие маршруты**. Добавим новое правило для звонков через первую sim:
{{ :faq:goip4_ask_out_rout_mts_2.png |}}
Звонки на номера соответствующие шаблону 8911XXXXXXX или 7911XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс **1+**.
* **Номер начинается с** - укажем начало набираемого номера, в нашем случае (7|8)911
* **Остальная часть номера состоит...** - 7 цифр
* **Перед тем как начать звонок отсекаем** - 1 цифр
* **Затем добавляем к номеру** - 1+
Добавим новое правило для звонков через вторую sim:
{{ :faq:goip4_ask_out_rout_megafon_2.png |}}
Звонки на номера с шаблоном 8926XXXXXXX или 7926XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс **2+**.
Аналогичным образом можно настроить правила для звонков через другие sim.
Правила настройки исходящих маршрутов подробно описаны на [[https://wiki.mikopbx.com/outbound-routes|wiki]].
На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз.
====== SMS to Telegram ======
===== Настройки Telegram =====
Для начала через чат Telegram следует написать боту **[[https://t.me/BotFather|@BotFather]]**. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX.
- Отправляем боту команду/start
- Команда создания нового бота/newbot
- Отправляем имя нашего нового бота. К примеру MIKOPBX_NEW_BOT
- Сохраните значение «**token**» он понадобится для настройки со стороны АТС
- Создайте новую "**группу**"
- Перешлите любое сообщение из группы боту [[https://t.me/getmyid_bot| @getmypid_bot]]
- Сохраните значение "chat ID", для пользователя значение вида **190389360**, для группы отрицательное **-4190389360**
===== Настройка MikoPBX =====
==== Приложение Dialplan ====
- В разделе "**Модули**" - "**Приложения диалплан**" создаем новое:
- Наименовеание - "**Переслать sms в telegram**"
- Тип кода "**PHP-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-A4A4D30C**".
"**API_KEY**" - токен телеграм бота
"**CHAT_ID**" - идентификатор телеграм чата (группы). см. статью
==== Кастомизация системных файлов ====
- Перейдем в раздел "**Кастомизация системных файлов**"
- Добавьте в конец файла /etc/asterisk/extensions.conf
- Текст: [messages-from-goip]
exten => _[0-9*#+a-zA-Z]!,1,AGI(DIALPLAN-APP-A4A4D30C.php, "${MESSAGE(body)}")
same => n,hangup()
exten => _[hit],1,Hangup()
"**DIALPLAN-APP-A4A4D30C**" - в данном коде - это идентификатор приложения.
Сохраните изменения.
==== Провайдер ====
Для провайдера MikoPBX "**Тип учетной записи**" - **Аутентификация по IP, без пароля**
Если будет выбран другой тип, то при пересылке sms не будет пройдена авторизация.
"**Расширенные настройки**" для провайдера MikoPBX - нужно прописать:
[endpoint]
message_context = messages-from-goip
==== Настройка GoIP ====
- Перейдите в раздел "**Configurations**" - "**SMS**"
- Для каждого канала CH1 / CH2 ... CHN выполните настройку:
- "**SMS to VoIP**" (верхнее) - "**Call Function**"
- "**Call mode**" - "**Mode 1**"
- "**SMS to VoIP**" (нижнее) - укажите номер телефона sim карты
{{ :faq:1820055447-2-2.png?700 |}}
[[faq:|Обратно к инструкциям]]