Алина Леонова
12.04.2020
12597

Отправка уведомлений в Viber с помощью сервиса RED SMS

Различные рассылки сообщений, рекламных акций, уведомления о пропущенных вызовах – всё это является актуальным для разных компаний. В век информационных технологий, когда у каждого человека есть с собой телефон, выбор рассылок и сервисов, с помощью которых можно производить эти рассылки. В данной статье будет рассмотрена возможность отправки сообщений в Viber на примере сервиса RED SMS. Данный сервис […]

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

В данной статье будет рассмотрена возможность отправки сообщений в Viber на примере сервиса RED SMS.

Данный сервис предоставляет возможность протестировать возможность отправки тестовых сообщений. Обратите внимание, что в тестовом аккаунте нет возможности протестировать отправку сообщений в Viber.

Интеграция

Тестирование функционала проводилось на php 5.6. Для других версий php могут потребоваться отдельные доработки.

Для начала потребуется имя для рассылки. Для этого на странице сервиса перейдём в раздел Имена отправителей. Здесь создадим новое имя для Viber и заполним все необходимые поля. После этого необходимо отправить имя на модерацию.

Имя отправителя Viber
Имя отправителя Viber

Имя должно быть зарегистрировано. Подробнее о регистрации имени можно узнать у сервиса.

Также должен быть создан api-ключ. Подробнее о том, как его создать, можно узнать в статье: ссылка на пока не выложенную статью “Отправка SMS-уведомлений с помощью сервиса RED SMS”

Также в статье можно найти ссылку на документацию для интеграции по API от разработчика.

Исходный код класса для взаимодействия с данным сервисом можно найти по ссылке.

Далее, на сервере телефонии, в папке html создадим файл sendviber.php. В него пропишем:

<?php

require ‘RedsmsApiSimple.php’;

$cid = $argv[1];

$did = $argv[2];

$login = ‘Логин от личного кабинета сервиса’;

$api_key = ‘api-ключ’;

$text = «Вам звонил номер $cid»;

$name = ‘Test’;

$viber_phone = номер получателя;

$viber_text = ‘text’;

$viber_url = ‘https://cp.redsms.ru/reports/details’;

$img = »;

$uuid = »;

$api = new \Redsms\RedsmsApiSimple($login, $api_key);

if ($did == внутренний номер)

try {

echo «RED SMS. Отправка уведомления в Viber \n»;

$res = $api->sendViber($viber_phone, $test, $name, $viber_text, $viber_url, $img);

if (!empty($res[‘items’])) {

$mess = $res[‘items’];

foreach ($mess as $message) {

echo $message[‘to’] . «-» . $message[‘uuid’] . «-» . $message[‘status’] . «\n»;

$uuid = $message[‘uuid’];

}

}

if ($uuid) {

echo «Статус: \n»;

$info = json_encode($api->messageInfo($uuid));

echo «$info \n»;

echo «Пожалуйста, подождите 10 секунд… \n»;

sleep(10);

$info = json_encode($api->messageInfo($uuid));

echo «$info \n»;

}

} catch (\Exception $e) {

echo «Ошибка » . $e->getCode() . «: » . $e->getMessage() . «\n»;

}

}

echo «Успешно! \n»;

Теперь рассмотрим, что прописано в скрипте. В начале подключаем файл RedsmsApiSimple.php, в котором описан класс работы с сервисом. Затем объявляем необходимые переменные: $cid и $did отвечают за номер звонящего и внутренний номер сотрудника, $login и $api_key позволяют провести авторизацию на сервисе при отправке сообщения, $text – тест сообщения, $name – имя отправителя, $viber_phone – номер, на который должно прийти сообщение в Viber. Также объявляем $viber_url – в ней будет содержаться ссылка на детализацию сообщений, отправленных в Viber. Переменные $img и $uuid оставляем пустыми – первая переменная будет содержать в себе ссылку на картинку, если такая имеется, а вторая – идентификатор сообщения. По $uuid затем будем отслеживать статус сообщения. В $api записываем новый экземпляр класса RedsmsApiSimple с данными для авторизации.

Далее переходим к условию, при котором сообщение будет отправляться. В нём проверяем переменную $did на соответствие заранее известному внутреннему номеру сотрудника. Если она совпадает, обращаемся к sendViber, который описан в классе RedsmsApiSimple, и передаём ряд значений. Результат будет возвращён в виде массива. Если он не будет пустым, то выводим информацию, необходимую для отладки – в примере это идентификатор и статус.

По идентификатору получаем информацию о сообщении.

Информация о сообщении
Информация о сообщении

Пример работы

Для того чтобы показать работу сервиса в связке с FreePBX, воспользуемся модулем Custom Destination. Подробнее о работе с данным модулем можно прочитать в статье

Для начала создадим контекст в extensions_custom.conf, в котором вызовем наш скрипт, и передадим ему номер звонящего и внутренний номер сотрудника.

[send-viber]

exten => s,1,System(/usr/bin/php -f /var/www/html/redsms/sendviber.php ${CALLERID(num)} ${EXTTOCALL})

same => n,GoTo(macro-hangupcall,s,1)

Затем создадим новое назначение, в котором будем ссылаться на созданный контекст.

Далее перейдём в настройки внутреннего номера на вкладку Advanced. Здесь, в Failover Destination, по неответу укажем нужное назначение.

Failover Destination
Failover Destination

Теперь позвоним на номер 0008 и проверим отправку уведомлений.

Пример работы
Пример работы

Как видно из скриншота, по истечению ring time на 0008, вызов по неответу ушёл на ранее созданное назначение. Был вызван контекст send-viber, и отправлено уведомление. Детализацию отправленных уведомлений можно посмотреть в отчётах в личном кабинете.

Детализация
Детализация

На этом статья завершена.

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
sms-ya@live.ru -Пишите,Поможем
[email protected] -Пишите,Поможем
17.05.2020 14:31

мне тут помогли, спасибо за ваш материал

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

Я - Кондрашин Игорь, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.