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 в качетве если нет ответа или занято или ещё что-либо и проверяем звонком.
cletus says:
Спасибо за статью!
Но если вызывающий абонент, не дождавшись автоматической отбивки звонка, сам положил трубку, то уведомления не приходят. Не решили эту проблему?
bakabuka says:
Пока что нет…
koliyan says:
Привет!
Спасибо за статью, как раз искал нечто подобное как у Zadarma.
Настроил все по инструкции: создал бот, получил api, нашел chat id, в Admin>Custom Destinations создал уведомление со значением Target – telegram,s,1 и Description – Telegram notification, далее в Extensions в Follow Me включил его и в No Answer выбрал Custom Destionation>Telegram Notification. После этого в Admin>Config edit выбрал extensions_custom.conf и внес:
[telegram]
exten => s,1,NooP(~ Telegram notification ~)
exten => s,n,Set(tg_bot_api_key=__МОЙ___:_МОЙ_)
exten => s,n,Set(tg_chat_id=МОЙ)
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})})
После этого зарезетил всю систему.
Звоню, набираю свой добавочный. Трубку не снимаю. Звонок получается пропущен, но уведомления не приходят.
Что сделал не так?