FreePBX уведомления о пропущенных в Telegram


Создадим уведомления о пропущенных звонках в Телеграм, используя бот.

Создадим бота. Подключаемся к @BotFather и создадим бота командой /newbot.

BotFather попросит вас дать любое свободное текстовое имя боту, как он будет в контактах называться, а также имя пользователя для него, которое всегда заканчивается на «bot». Если необходимое имя пользователя недоступно, попробуйте, например, написать просто абракадабру какую-то, даже через генератор паролей имя придумать. Так как это имя нигде никакой роли не играет, то можно набор символов написать. Главное, что б в конце было bot.

Когда будет готово, бот вызаст API Key. типа 663322445:AAВBRp2yKXqtWuQ5CVWRZZiSFZnmVdRTXCk, он-то нам и нужен для дальнейшей работы.

Так же будет ссылка на наш бот. Нажимаем на него и добавляем к себе в конотакты и жмём start

Дальше надо найти номер чата.

Для этого перехоим по ссылке, подставив после bot наш ключ, выданный ранее.

https://api.telegram.org/bot663322445:AAВBRp2yKXqtWuQ5CVWRZZiSFZnmVdRTXCk/getUpdates

 

Откроется страничка, где будут разные значения. Если там пусто, то напишите что-то нашему вновь созданному боту и обновите страницу. Там должно появиться то, что вы написали, включая служебную информацию. Нам необходимо значение поля “chat”:{“id”:

копируем это число куда-то в блокнот вместе с ключём, полученным ранее.

 

Так же можно проверить, всё ли правильно написали.

Достаточно перейти по ссылке

https://api.telegram.org/bot663322445:AAВBRp2yKXqtWuQ5CVWRZZiSFZnmVdRTXCk/sendMessage?chat_id=272375821&text=Test

В чат должно прилететь сообщение с текстом “Test”

Далее заходим во FreePBX

Проходим на
Admin -> Custom Destination

И добавим новое

Custom Destination: telegram,s,1
Description: Telegram notification

Далее захоим в консоль сервера или через редактирование файлов необходимо создать запись в extensions_custom.conf, указав нужные tg_bot_api_key, tg_chat_id

[telegram]
exten => s,1,NooP(~ Telegram notification ~)
exten => s,n,Set(tg_bot_api_key=663322445:AAВBRp2yKXqtWuQ5CVWRZZiSFZnmVdRTXCk)
exten => s,n,Set(tg_chat_id=272375821)
exten => s,n,Set(tg_message=Please%20call%20back%20me%20${CALLERID(num)})
exten => s,n,Set(tg_url_request=https://api.telegram.org/bot${tg_bot_api_key}/sendMessage?chat_id=${tg_chat_id}&text=${tg_message})
exten => s,n,NooP(${CURL(${tg_url_request})})

 

Закрываем, сохраняем, перезапускаем fwconsole reload

Далее подставляем на вновь созданное либо к экстеншену либо к Follow me в качетве если нет ответа или занято или ещё что-либо и проверяем звонком.