====== Подключение 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:|Обратно к инструкциям]]