Прочитав рекомендации в интернете на тему уведомления сделал для себя отличную альтернативу и спешу ею поделится.
Для начала зарегистрируем бота в телеграмме:
1) напишем боту @BotFather личное сообщение "/newbot"
он ответит что-то в духе "Alright, a new bot. How are we going to call it? Please choose a name for your bot." теперь мы ему должны задать имя нашему боту например "asterisk_call_bot" после сообщение придет токен необходимый нам для уведомления пользователя.
2) выясним "Telegram ID" - это ваше имя в глобальной сете телеграмм на который пишет бот.
Пишем боту @MyTelegramID_bot команду "/start" в ответ придет сообщение вида "Telegram ID: XXXXXXXX" этот номер нам понадобится чуть позже.
С телеграмом закончено.
создаем на сервере asterisk файл (все что будет описано далее применимо для Cent OS)
Для начала зарегистрируем бота в телеграмме:
1) напишем боту @BotFather личное сообщение "/newbot"
он ответит что-то в духе "Alright, a new bot. How are we going to call it? Please choose a name for your bot." теперь мы ему должны задать имя нашему боту например "asterisk_call_bot" после сообщение придет токен необходимый нам для уведомления пользователя.
2) выясним "Telegram ID" - это ваше имя в глобальной сете телеграмм на который пишет бот.
Пишем боту @MyTelegramID_bot команду "/start" в ответ придет сообщение вида "Telegram ID: XXXXXXXX" этот номер нам понадобится чуть позже.
С телеграмом закончено.
создаем на сервере asterisk файл (все что будет описано далее применимо для Cent OS)
touch /var/lib/asterisk/test.shделаем его исполнительным
chmod +x /var/lib/asterisk/test.sh
Сделано! :)
Теперь самое главное для чего мы тут собрались.
запишем в наш файл test.sh исполняемый код.
#!/bin/bash
a=${#2}
if [[ $a -eq 4 ]];then
text="В $(date +%d-%m-%y,%T) вам звонил номер +7495XXXXXXX,$2 $3"
else
text="В $(date +%d-%m-%y,%T) вам звонил номер $2 $3"
fi
if [[ $1 -eq 2100 ]]; then
curl "https://api.telegram.org/bot<токен>/sendMessage?chat_id=<Telegram_ID>&text=$text"
fi
по строчкам разберем его.
a=${#2} - Получаем из передаваемого аргумента номер 2 количество символов и записываем в переменную а значание
if [[ $a -eq 4 ]];then - проверяем что если переменная "а" равна 4 символом то выполняем следующею строку
text="В $(date +%d-%m-%y,%T) вам звонил номер +7495XXXXXXX,$2 $3" - записываем в переменную "text" строку вида "В 12-12-16,15:25:21 вам звонил номер +7495XXXXXXX,2101 ИвановИЕ" это сделано чтобы из телеграмма можно было сразу перезвонить с до набором добавочного номера.
if [[ $1 -eq 2100 ]]; then - т.к. я создавал систему универсальную с возможностью распространить на большое количество сотрудников поэтому использую строку сравнения. Если звонят на номер 2100 то выполнить следующий код.
curl "https://api.telegram.org/bot<токен>/sendMessage?chat_id=<Telegram_ID>&text=$text" собственно строка отправки методом GET. Простой и удобный способ.
Настройка asterisk.
Моя строчка диаплана выглядит примерно так:
exten => _2[0-8]XX,1,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _2[0-8]XX,n,Dial(SIP/${EXTEN},40,tTw)
exten => _2[0-8]XX,n,Noop("отправка в телеграмм")
exten => _2[0-8]XX,n,System(/var/lib/asterisk/test.sh ${EXTEN} ${CALLERID(num)} ${CALLERID(name)})
exten => _2[0-8]XX,n,Busy()
Из всего выше на писаного вам может быть не знакома строка System(/var/lib/asterisk/test.sh ${EXTEN} ${CALLERID(num)} ${CALLERID(name)}) - она означает выполнить системную команду запустить файл /var/lib/asterisk/test.sh с 3-мя аргументами
${EXTEN} - Кому звонят
${CALLERID(num)} - Кто звонит
${CALLERID(name)} - Имя звонящего
в рабочем виде это будет примерно так "telegram.sh 2100 2101 ИвановИЕ"
Ну вот и все удачи в настройке.
Комментариев нет:
Отправить комментарий