Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
faq:goip [2022/11/09 13:58] Мальцев Иван [Настройка маршрутов входящих и исходящих звонков MikoPBX] |
faq:goip [2024/03/04 09:04] (текущий) Портнов Алексей [Кастомизация системных файлов] |
||
---|---|---|---|
Строка 19: | Строка 19: | ||
* **Пароль** - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX | * **Пароль** - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX | ||
+ | ===== Установка корректного CID клиента ===== | ||
+ | |||
+ | - Откройте меню "**Система**" - "**Кастомизация системных файлов**" | ||
+ | - Откройте на редактирование файл "**/etc/asterisk/extensions.conf**" | ||
+ | - Выберите режим "**Добавлять в конец файла**" | ||
+ | - Добавьте следующий код: <code>[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 | ||
+ | </code> | ||
+ | - Идентификатор "**SIP-1659624077**" замените на тот, что отображается в поле "**Логин**". | ||
===== Настройка шлюза ===== | ===== Настройка шлюза ===== | ||
Строка 46: | Строка 60: | ||
5) В разделе «**Misc**» | 5) В разделе «**Misc**» | ||
- | « **CID Forward Mode**» выставляем значение «**Use CID as SIP Caller ID**» | + | « **CID Forward Mode**» выставляем значение «**Use Remoe Party ID**» |
- | {{:faq:7misc.png?400|}} | + | {{ :faq:goip-rpid.png?600 |}} |
Строка 89: | Строка 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:|Обратно к инструкциям]] | ||