Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Статья о том как в чат телеги получать статистику о звонках и записи звонков непосредственно
В предыдущих двух статьях мы изучили вопрос приземления традиционных СМС из GSM сетей в чат телеги.
Во многих кейсах которые обращались и пользовались моей помощью в настройке прямо или косвенно стояла задача в которой была б возможность получать записи разговоров в корпоративной АТС, тоже в чат телеги, для контроля качества, например Руководителем отдела продаж или его множественными Замами по ничего не деланью.
Не важно какую используете телефонию - главное чтоб она была на базе asterisk, в этой статье я приведу примеры диалплана именно для этой самой популярной IPАТС в мире, и уже через 10-15 минут и Вы сможете отправлять уведомления и записи своих корпоративных разговором в чат для мгновенного реагирования.
Итак, в любой системе использующей Asterisk (Ваниль, FreePBX или Самодельный PBX) мы можем реальзовать отправку записей звонков в телеграм.
Мы Будем использовать лишь только файлы диалплана астериска без скриптов (Python, PHP и PERL упасите навеки).
Итак погнали:
Определим список: 501 - внутренний номер, incoming-tg - входящий контекст, MyMegaTrunk - Sip линия для исходящих звонков, out-going - исходящий контекст. IDCHATorGROUP и botTOKEN - без комментариев.
Ниже пример диалплана и скриншот результата его работы в ЧАТЕ ТЕЛЕГРАМ
[incoming-tg]
exten => _7ХХХХХХХХХХ,1,System(curl --data "text=Поступил звонок от ${URIENCODE(+7${CALLERID(num):-10})}, запись начата&chat_id=IDCHATorGROUP" "https://api.telegram.org/botTOKEN/sendMessage"); Шлем уведомление о начале звонка
same => n,Set(__CALLFILENAME=${CALLERID(num)}-${UNIQUEID}); зададим номер звонящего в название файла аудио
same => n,MixMonitor(/home/records/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.wav,b)
same => n,Dial(SIP/501,60,Tr); звоним на 501 внутренний
same => n,HangUp()
exten => h,1,Set(CDR(recordingfile)=/home/records/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.wav)
exten => h,2,Noop()
exten => h,3,System(curl -X POST https://api.telegram.org/botTOKEN/sendAudio -F chat_id=IDCHATorGROUP -F audio="@/${CDR(recordingfile)}"); Шлем файл записи как файл. если PBX публично не доступна из WEB или не хотите URL
;exten => h,3,System(curl -X POST https://api.telegram.org/botTOKEN/sendAudio -F chat_id=IDCHATorGROUP -F audio=https://youpbxdomain/x/y/z/${CDR(recordingfile)); ИЛИ Шлём файл записи как URL - ставьте сформированный URL
[out-going]
exten => _.,1,Set(__CALLFILENAME=${CALLERID(num)}-${UNIQUEID})
same => n,MixMonitor(/home/records/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.wav,b)
same => n,System(curl --data "text=ИСХОДЯЩИЙ ЗВОНОК на ${URIENCODE(+7${EXTEN:-10})}, запись начата&chat_id=IDCHATorGROUP" "https://api.telegram.org/botTOKEN/sendMessage"); Шлем уведомление о начале звонка
same => n,Dial(SIP/MyMegaTrunk/7${EXTEN:-10},60,r); Начинаем звонить через транк на внешний номер приведя набираемый номер к формату E164
exten => h,1,Set(CDR(recordingfile)=/home/records/${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.wav)
exten => h,2,Noop()
exten => h,3,System(curl -X POST https://api.telegram.org/botTOKEN/sendAudio -F chat_id=IDCHATorGROUP -F audio="@/${CDR(recordingfile)}"); Шлем файл записи как файл. если PBX публично не доступна из WEB или не хотите URL
скриншоты отработки диалплана на мобильной и десктопной версиях телеграма
Спасибо за внимание.
Всем удачного телеграфирования...