Создание бота в Telegram
Итак, переходим к созданию бота. Находим через поиск бота, который называется @BotFather. Выполняем:
- /newbot – пишем команду на создание нового бота;
- Merion Knowledge Base – пишем имя для бота;
- merionkbbot – пишем username для нашего бота;
- /setuserpic – опционально – присвойте картинку боту;
На картинке выше выделен API токен (
331754110:AAHkMNalOz5I_Schh2kvj7ONhRcE8HuKV-c
), который нам пригодится на следующем этапе. Запоминаем его.
Открываем диалог с нашим ботом и даем в чат команду /start
– это нужно для активации бота:
Теперь, добавьте вашего бота в групповой чат. Это делается по аналогии, с приглашением других участников. Просто укажите username бота в поиске и добавьте в группу. Теперь в групповой чат пишем следующую команду:
/join @merionkbbot
В вашем случае, это будет username вашего бота после символа @
. Теперь открываем следующий URL в web – броузере:
https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates
Где XXXXXXXXXXXXXXXXXXXXXX – ваш токен. У нас получилось вот так:
Получаем id нашего группового чата – в нашем случае это -4455667. Приступаем к настройке скрипта на Asterisk.
Настройка скрипта на Asterisk
Скрипт написан на языке PHP и будет вызываться из диалплана Asterisk с помощью AGI. Скрипт следующего содержания:
#!/usr/bin/php -q <?php require('phpagi.php'); $agi = new AGI(); $cid = $agi->request['agi_callerid']; $phoneFieldset = "Входящий звонок с номера: "; $token = "331754110:AAHkMNalOz5I_Schh2kvj7ONhRcE8HuKV-c"; $chat_id = "-4455667"; $arr = array( $phoneFieldset => $cid, ); foreach($arr as $key => $value) { $txt .= "".$key." ".$value."%0A"; }; fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); ?>
В переменные $token и $chat_id соответственно нужно добавить ваши данные. Сохраняем скрипт с название telegram.php и закидываем в директорию /var/lib/asterisk/agi-bin/
. Далее даем права на исполнение и преобразуем в unix формат:
chmod 755 /var/lib/asterisk/agi-bin/telegram.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/telegram.php dos2unix /var/lib/asterisk/agi-bin/telegram.php
Сам PHP файл предварительно сохраните в кодировке UTF – 8 (без BOM).
Адаптируем скрипт в диалплан. Мы будем отправлять уведомления по факту звонка на точке входа – то есть на SIP – транке. Поэтому, на входящем транке, в его контекст обработки добавляем следующую строчку:
exten => _.,n,AGI(telegram.php)
Сохраняем, перезагружаем диалплан, звоним и проверяем: