Инструменты пользователя

Инструменты сайта


faq:goip

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
faq:goip [2023/03/21 09:08]
Портнов Алексей [Учетная запись провайдера на MikoPBX]
faq:goip [2024/03/04 09:04] (текущий)
Портнов Алексей [Кастомизация системных файлов]
Строка 102: Строка 102:
 На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз. На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз.
  
 +====== SMS to Telegram ======
 +
 +===== Настройки Telegram =====
 +
 +Для начала через чат Telegram следует написать боту **[[https://​t.me/​BotFather|@BotFather]]**. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX.
 +  - Отправляем боту команду<​code>/​start</​code>​
 +  - Команда создания нового бота<​code>/​newbot</​code>​
 +  - Отправляем имя нашего нового бота. К примеру <​code>​MIKOPBX_NEW_BOT</​code>​
 +  - Сохраните значение «**token**» он понадобится для настройки со стороны АТС
 +  - Создайте новую "​**группу**"​
 +  - Перешлите любое сообщение из группы боту [[https://​t.me/​getmyid_bot| @getmypid_bot]]
 +  - Сохраните значение "chat ID", для пользователя значение вида **190389360**,​ для группы отрицательное **-4190389360**
 +
 +===== Настройка MikoPBX =====
 +
 +
 +==== Приложение Dialplan ====
 +
 +  - В разделе "​**Модули**"​ - "​**Приложения диалплан**"​ создаем новое:
 +  - Наименовеание - "​**Переслать sms в telegram**"​
 +  - Тип кода "​**PHP-AGI**"​
 +  - Программный код <​code><?​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){
 +}</​code>​
 +  - Сохраните изменения
 +  - В адресной строке браузера нужно скопировать идентификатор приложения,​ он имеет вид "​**DIALPLAN-APP-A4A4D30C**"​. ​
 +
 +<note tip>"​**API_KEY**"​ - токен телеграм бота ​
 +
 +"​**CHAT_ID**"​ - идентификатор телеграм чата (группы). см. статью</​note>​
 +
 +==== Кастомизация системных файлов ====
 +
 +  - Перейдем в раздел "​**Кастомизация системных файлов**"​
 +  - Добавьте в конец файла <​code>/​etc/​asterisk/​extensions.conf</​code> ​
 +  - Текст: <​code>​[messages-from-goip]
 +exten => _[0-9*#​+a-zA-Z]!,​1,​AGI(DIALPLAN-APP-A4A4D30C.php,​ "​${MESSAGE(body)}"​)
 +    same => n,hangup()
 +exten => _[hit],​1,​Hangup()</​code>​
 +
 +<note tip>"​**DIALPLAN-APP-A4A4D30C**"​ - в данном коде - это идентификатор приложения. ​
 +Сохраните изменения.</​note> ​
 +
 +==== Провайдер ====
 +
 +Для провайдера MikoPBX "​**Тип учетной записи**"​ - **Аутентификация по IP, без пароля**
 +<note tip>​Если будет выбран другой тип, то при пересылке sms не будет пройдена авторизация.</​note>​
 +
 +"​**Расширенные настройки**"​ для провайдера MikoPBX - нужно прописать:​
 +<​code>​
 +[endpoint]
 +message_context = messages-from-goip
 +</​code>​
 +
 +==== Настройка 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:​|Обратно к инструкциям]]
  
faq/goip.1679389704.txt.gz · Последние изменения: 2023/03/21 09:08 — Портнов Алексей