Интегрируем web-телефон в свою систему

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Мы уже писали, как и зачем интегрировать телефонию со своей CRM/ERP/Helpdesk системой. Теперь опишем, как это сделать еще проще, добавив на свой сайт web-телефон.
WebRTC виджет позволит звонить и принимать звонки из вашего web приложения, не устанавливая никаких программ и не делая никаких настроек.




Что получится?


Множество CRM/ERP и прочих SaaS систем требуют интеграции с телефонией. WebRTC виджет это самый простой для пользователя вариант такой интеграции. Просто в углу браузера появляется веб-телефон, который может звонить и принимать вызовы. Выглядит он так.



Как интегрировать?


Начать логично с авторизации. Чтобы были права на звонки, нужно авторизоваться по ключам — вашим (если система для своей компании) либо ключам ваших клиентов (если система для многих клиентов).
  1. Ваши пользователи регистрируются в сервисе, включают АТС, копируют ключи API из нашей в вашу систему. (Все это планируем также очень скоро автоматизировать). Это проделывается один раз для каждого аккаунта. Если вы разрабатываете систему для себя, то вообще один раз.
  2. При включении интеграции, после копирования ключа, нужно сопоставить пользователей облачной АТС и вашей системы (то есть, задать у какого сотрудника какой номер). Для этого в API есть метод /v1/pbx/internal/ через него вы загружаете список номеров АТС вашего клиента, просите клиента указать у какого его сотрудника какой номер в АТС и сохраняете у себя эту информацию. Пример этого кода:

<?php
 
use Zadarma_API\Api;
 
if (isset($_GET['zd_echo'])) {
    exit($_GET['zd_echo']);
}
 
require_once __DIR__ . '/../vendor/autoload.php';
 
$key = 'YOUR_KEY';
$secret = 'YOUR_SECRET';
 
$api = new Api($key, $secret);
$pbxInternal = $api->getPbxInternal();
//your code to save $pbxInternal->numbers
 
$balance = $api->getBalance();
 
?> 


Установка кода на сайт
Перед открытием страницы внутреннего интерфейса вашей системы, нужно запросить временный ключ (действует до 72 часов) через метод /v1/webrtc/get_key/. Далее добавляем виджет с этим ключом в ваш внутренний интерфейс:

 
<?php
 
/**
 * SIP login or login of PBX extension number
 */
$login = 'YOUR_LOGIN';
 
$webrtcKey = $api->getWebrtcKey($login)->key;
//your code to save $webrtcKey, expiration time 72 hours.
 
?>
<html lang="ru">
<body>
<script src="https://my.zadarma.com/webphoneWebRTCWidget/v8/js/loader-phone-lib.js?v=23"></script>
<script src="https://my.zadarma.com/webphoneWebRTCWidget/v8/js/loader-phone-fn.js?v=23"></script>
<script>
    if (window.addEventListener) {
        window.addEventListener('load', function () {
            zadarmaWidgetFn('<?= $webrtcKey?>', '<?= $login?>', 'square' /*square|rounded*/, 'en' /*ru, en, es, fr, de, pl, ua*/, true, "{right:'10px',bottom:'5px'}");
        }, false);
    } else if (window.attachEvent) {
        window.attachEvent('onload', function () {
            zadarmaWidgetFn('<?= $webrtcKey?>', '<?= $login?>', 'square' /*square|rounded*/, 'en' /*ru, en, es, fr, de, pl, ua*/, true, "{right:'10px',bottom:'5px'}");
        });
    }
</script>
</body>
</html>


(Версия на 24.11.2020 актуальную версию можете скопировать в личном кабинете).
Вместо YOUR_KEY подставьте сгенерированный через API ключ; вместо YOUR_SIP подставьте ваш SIP-номер или полный логин внутреннего номера АТС, с которого будут совершаться звонки.

Обратите Внимание: Не размещайте виджет в открытом доступе в сети, иначе через ваш аккаунт сможет позвонить любой желающий.

Все — теперь ваши клиенты/сотрудники смогут звонить и принимать звонки из вашей системы. Также подробную инструкцию по настройке виджета вы сможете найти на нашем сайте.

Другие функции


Раз уж решили добавить интеграцию с телефонией, то логично получить от неё максимум. Для этого логично как минимум дать возможность вашим клиентам видеть статистику о звонке, прослушивать уведомление, совершать действия в системе при звонке (например, создавать лид/тикет/сделку).
Перечень основных функций для интеграции:

  • Звонки из интерфейса CRM в один клик.
  • Всплывающее уведомление о входящих/исходящих звонках с информацией о звонящем, ссылкой на карточку клиента.
  • Статистика звонков, аудиозаписи звонков в карточке клиента.
  • Автоматическое создание контактов/лидов/сделок при звонке от нового клиента.
  • Автонаправление входящего звонка от существующего клиента на ответственного менеджера
  • Отображение имени клиента на вашем IP-телефоне при входящем звонке.
  • Напоминания о пропущенных звонках.
  • Использование собственного черного списка для входящих звонков.
  • Добавление интеграции в личный кабинет Zadarma.

Описание реализации всех этих функций вы можете найти в инструкции по интеграции телефонии.
Большая часть интеграции реализована на Webhook, то есть вы получаете уведомление при каждом звонке либо событии в АТС/СМС/коллтрекинге.
Источник: https://habr.com/ru/company/zadarma/blog/530284/


Интересные статьи

Интересные статьи

Когда-нибудь задумывались зачем сегодня нужны роботы? С детства мне казалось, что роботы стоят где-то на современных фабриках, что это где-то далеко от нас. Или в фантастике. Но уже нет. Роботы ...
В 1С-Битрикс: Управление сайтом (как и в Битрикс24) десятки, если не сотни настраиваемых типов данных (или сущностей): инфоблоки, пользователи, заказы, склады, форумы, блоги и т.д. Стр...
Как быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над са...
Периодически мне в разных вариантах задают вопрос, который «в среднем» звучит так: «что лучше: заказать интернет-магазин на бесплатной CMS или купить готовое решение на 1С-Битрикс и сделать магазин на...
Исследователям безопасности удалось получить удалённый контроль над системой автопилота автомобиля Tesla Model S и управлять им при помощи игрового джойстика. Таким образом, они обратили внимание...