SMS в Telegram

Настройки в Telegram

Для начала через чат Telegram следует написать боту @BotFather. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX.

  1. Отправляем боту команду

/start
  1. Команда создания нового бота:

/newbot
  1. Отправляем имя нашего нового бота. К примеру:

MIKOPBX_NEW_BOT
  1. Сохраните значение «token»: он понадобится для настройки со стороны АТС.

  2. Создайте новую «группу».

  3. Перешлите любое сообщение из группы боту @getmypid_bot

  4. Сохраните значение «chat ID», для пользователя значение вида "190389360", для группы - отрицательное, вида: "-4190389360".

Настройки в MikoPBX

Приложение Dialplan

В разделе «Модули» - «Приложения диалплан» создадите новое приложения, со следующими параметрами:

  • "Название" - Переслать 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){
}

«API_KEY» - токен телеграм бота

«CHAT_ID» - идентификатор телеграм чата (группы).

В адресной строке браузера нужно скопировать идентификатор приложения, он имеет вид: «DIALPLAN-APP-8B0D0964»:

Кастомизация системных файлов

  1. Перейдите в раздел "Система" -> "Кастомизация системных файлов":

  1. Перейдите к редактированию файла "/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()

«DIALPLAN-APP-8B0D0964» - в данном коде - это идентификатор приложения. Сохраните изменения.

Провайдер

  1. Перейдите в раздел "Маршрутизация" -> "Провайдеры телефонии". Добавьте нового SIP-провайдера, со следующими параметрами:

  • "Название" - произвольное

  • "Тип учетной записи" - Аутентификация по IP, без пароля.

Last updated