Александр Мисюрин
17.06.2020
6993

Отправка информации о клиенте в Telegram, в момент поступления вызова

В данной статье рассмотрим способ отправки данных о клиенте в Telegram-группу, в момент поступления вызова. Подключение бота Telegram к Asterisk рассматривалось в этой статье. Информацию будем получать из Yandex.API Поиска по Организациям. Получение имени клиента рассматривалось тут. Функционал полезен тем, кто часто работает с множеством клиентов и не хочет упустить важный звонок, каждый вызов будет […]

В данной статье рассмотрим способ отправки данных о клиенте в Telegram-группу, в момент поступления вызова. Подключение бота Telegram к Asterisk рассматривалось в этой статье. Информацию будем получать из Yandex.API Поиска по Организациям. Получение имени клиента рассматривалось тут.

Функционал полезен тем, кто часто работает с множеством клиентов и не хочет упустить важный звонок, каждый вызов будет отправляться в Telegram-группу, где супервизор или руководитель смогут отследить кто звонил и в какое время.

На данном этапе мы можем отправлять в группу только имя клиента, для отправки другой информации доработаем скрипт.

Создание бота

Получать будем следующие данные:

1. Название

2. Адрес

3. Время работы

4. Сайт

При отсутствии данных просто не будем выводить некоторые пункты.

Адрес компании приведем в виде ссылки, для этого необходимо использовать функцию php urlencode.

Для отладки выведем:

print_r($jarr['features'][0]['properties']['name']);
echo "\n";
//Address
print_r($jarr['features'][0]['properties']['CompanyMetaData']['address']);
echo "\n";
//URL
print_r($jarr['features'][0]['properties']['CompanyMetaData']['url']);
echo "\n";
//Hours
print_r($jarr['features'][0]['properties']['CompanyMetaData']['Hours']['text']);
echo "\n";
Получение данных

Присваиваем их к переменным и кодируем в URL. Который выводим как переменную.

//Name
$name=$jarr['features'][0]['properties']['name'];
//Address
$address=$jarr['features'][0]['properties']['CompanyMetaData']['address'];
$address=str_replace(' ','+',$address);
//URL
$url=$jarr['features'][0]['properties']['CompanyMetaData']['url'];
//Hours
$hours=$jarr['features'][0]['properties']['CompanyMetaData']['Hours']['text'];
 
$text="Звонил клиент $name
С номера: $num
Адрес клиента: https://www.google.ru/maps/place/$address
Сайт: $url
Время работы: $hours";
echo urlencode($text);
Получение json-массива и его обработка аналогична статье, указанной во введении.

Далее нам необходимо закрепить бота в группе и узнать ее chat_id для отправки сообщений, для этого можно открыть telegram в web, и посмотреть ID в адресной строке.

chat_id в браузере

После этого можем протестировать отправку сообщений в чат, с помощью GET запроса на api вида:

https://api.telegram.org/bot111122225555:AAHl-AAAABBBBdddAAAdddhggg111222/sendMessage?chat_id=-******&text=Hello%20World!
Проверка отправки сообщений в чат

Отправка корректна, создаем в диалплане обработчик отправки в группу, делать это будем с помощью функции SHELL для получения текста из скрипта и curl для отправки GET запросом на API Telegram.

Можно запустить отправку как в прошлой статье, в момент ответа оператором, а можно запустить сразу при входящем звонке, чтобы все звонки попадали в группу. В таком случае необходимо входящие вызовы направлять на кастомный контекст, а уже оттуда на стандартный контекст обработки входящих вызовов.
[from-trunk-pre]
exten => _XXXX.,1,Set(text=${SHELL(/usr/bin/php -f /opt/get_name.php ${CALLERID(num)})})
same => n,Set(CALLERID(name)=${name}: ${CALLERID(num)})
same => n,Goto(from-trunk,${EXTEN},1)

В скрипте добавляем строки:

$send=`/usr/bin/curl -X GET https://api.telegram.org//bot111122225555:AAHl-AAAABBBBdddAAAdddhggg111222/sendMessage -F chat_id=-****** --socks5 "tglive:[email protected]:1080" -F text="$text"`;
echo $name;

И проверяем звонком на внешний номер.

Важно, у Asterisk должны быть права на выполнение данного скрипта, а также необходимо указывать прокси, который можно найти в интернете. В данном примере указан прокси, который работать может не у всех.
Демонстрация
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.