Переадресация звонка при помощи Webhook номер

Webhook номер переадресации — уникальный инструмент, который позволяет АТС Ringostat получать в ответ на http(s)-запрос номер телефона или sip-логин, на который будет дальнейшая переадресация звонка.

Данная функция позволяет получать направление переадресации с внешнего ресурса в зависимости от параметров входящего звонка. Параметры звонка могут приходить в соответствии с настройками hook-a в HTTP заголовках, JSON формате или с помощью JSON-RPC протокола. Ответ должен содержать направление (номер в международном формате/sip) в теле ответа HTTP или в конкретном идентификаторе JSON формата.

WebHooks - упрощенный вариант rest-событий и rest-команд, не требующий написания приложения. Но, даже не смотря на это, работа с REST - непростая задача, требующая солидной квалификации от разработчика.
Настройка вебхук номера

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

В меню навигации, выберите Виртуальная АТС -> Webhook номер и создайте webhook с произвольным именем

Чтобы попасть в меню настройки webhook номера выберите "Редактировать"

  • Название – название webhook запроса
  • URL – адрес обработчика, на который будет отправлен запрос. Стандартные порты: 80 для HTTP и 443 для HTTPS.
    Для установки Webhook на URL с указанным портом можно передавать URL в виде: http://11.111.111.11:80
  • Метод отправки данных:
    • GET – запрос с передачей параметров в адресной строке(URL-адресе запроса);
    • POST – запрос с передачей параметров в теле(body) запроса;
    • PUT – запрос для изменения экземпляра с указанным ID;
    • DELETE – запрос с передачей параметров для удаления экземпляра с указанным ID;
  • Тип отправки данных – формат данных, в котором будут отправлены параметры запроса.
    • http – отправка параметров в адресной строке(URL-адресе запроса);
    • json – отправка параметров в формате объекта(набор пар ключ/значение) в теле запроса;
    • json-rpc – протокол удаленного вызова процедур, использующий JSON для кодирования сообщений;
  • Тип приёма данных – формат данных, в котором будут приняты параметры запроса.
    • http – отправка параметров в адресной строке(URL-адресе запроса);
    • json – отправка параметров в формате объекта(набор пар ключ/значение) в теле запроса;
    • json-rpc – протокол удаленного вызова процедур, использующий JSON для кодирования сообщений;
  • Поле номера переадресации(для json) – имя параметра, в котором будут возвращено направление переадресации:
    • если в ответ на запрос будет отправлен номер телефона, рекомендуемое имя – dst_phone или dst_callee
    • если в ответ на запрос будет отправлено ID схемы переадресации, тогда нужно вернуть параметр schema
  • Json-rpc метод – название метода (функции), который нужно вызвать;
  • Таймаут в секундах – таймаут отправки дозвона на возвращенное направление звонка.

  • на номер телефона
  • на схему переадресации в проекте

Переадресация на номер телефона / SIP аккаунт

В ответ на http-запрос, нужно вернуть параметр, который вы указали в Поле для переадресации звонка(для json).

Для возврата параметров рекомендуем использовать 1 из вариантов имён: dst_phone или dst_callee

Ответ должен быть в формате json и содержать направление(номер в международном формате или SIP URI нужного sip аккаунта).

Номер переадресации в международном формате выглядит так:
380ХХХХХХХХХ (12 цифр) – Украина;
7ХХХХХХХХХХ (11 цифр) – Россия;
7ХХХХХХХХХХ (11 цифр) – Казахстан.

Возврат SIP URI – sip/supportringostat_example@sip.ringostat.com


Возврат ID схемы переадресации в проекте

Для переадресации на уже существующую схему в проекте – нужно вернуть в формате json ID схемы переадресации из проекта в лк Ringostat. Это позволит настроить более гибкую переадресацию звонков в проекте.

Обратите внимание! Для возврата ID схемы переадресации используется специальный параметр schema

Пример настройки webhook запроса

Чтобы узнать какой ID присвоен нужной схеме переадресации, в меню навигации перейдите в раздел Виртуальная АТС -> Переадресация и у нужной схемы нажмите кнопку Редактировать схему

Добавление параметров

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

Параметры для передачи

Вы можете добавить к webhook номеру список параметров, которые нужно обработать и в зависимости от входных данных вернуть в ответ направление переадресации звонка.

Имя параметра Описание параметра
Номер звонящего Номер клиента, который позвонил или заказал обратный звонок
Куда звонили Номер из пула подмены, на который позвонили
Дата Дата и время звонка
Ценность Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Длительность Данный параметр возвращает всегда "0", поскольку Webhook номер приходит ДО звонка
Тип Тип звонка: in
Ожидание Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Длительность разговора Данный параметр возвращает всегда "0", поскольку Webhook номер приходит ДО звонка
С кем соединен Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Какой по счёту звонок Возвращает сумму, какой по счету звонок с данного номера
Целевой Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Повторный Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Источник Источник перехода посетителя
UTM-метка – utm_source
Канал Канал трафика перехода посетителя
UTM-метка – utm_medium
Кампания Рекламная кампания перехода
UTM-метка – utm_campaign
Контент Содержимое объявления в кампании
UTM-метка – utm_content
Ключевое слово Ключевое слово перехода на сайт
Запись Уникальный ID звонка в Ringostat
Категория звонка Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
UUID посетителя Google Analytics Client ID посетителя
IP постетителя IP-адрес посетителя
Шаг переадресации Этап распределения вызова, возвращает название метода и таймаут в секундах (пример:webhookNumber:120
Ссылка на аудиозапись Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Уникальный (первый) звонок Указывает, является ли звонок самым 1м с этого номера клиента
Уникальный целевой звонок Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Первый целевой звонок Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Last Page Страница, с которой совершён звонок
Лэндинг Страница входа на сайт
Тип подмены Тип подмены: Динамический/Статический/Callback
Имя пула Название динамического и статического пула подмены откуда был выдан номер
Схема переадресации Название схемы переадресации куда был переведен звонок
ID звонка Уникальный идентификатор звонка
User-Agent Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Google Analytics resource UUID Идентификатор отслеживания Google Analytics
The number in E.164 format Номер звонящего согласно международного стандарта формата номеров
ID менеджера Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
Добавочный номер Добавочный номер, который клиент ввёл в меню IVR
Ответственные менеджеры Данный параметр не может быть захвачен, поскольку Webhook номер приходит ДО звонка
custom Кастомный параметр захваченный на сайте
Roistat Visit ID Номер визита Roistat
ID проекта Уникальный идентификатор проекта в Ringostat
{
"caller":"380441112233",
"callee":"380442223344",
"date":"2018-08-13 11:11:11",
"type":"in",
"callnum":"1",
"source":"ringostat",
"medium":"support",
"campaign":"webhook_number",
"term":"test",
"content":"simple_webhook_number_test",
"record":"3333333333.3333333",
"useruuid":"1479099944.1534841744",
"userip":"10.10.10.10",
"callroute":"webhookNumber:90",
"uniquefirst":"1",
"lastpage":"ringostat.com/?utm_source=ringostat&utm_medium=support&utm_campaign=hook_number&utm_term=test",
"landing":"ringostat.com/?utm_source=ringostat&utm_medium=support&utm_campaign=hook_number&utm_term=test",
"replacetype":"dynamic",
"gaid":"UA-11111111-1",
"fullnum":"+380441112233",
"ivrnum":"3",
"callid":"3333333333.3333333",
"custom":"http://ringostat.com/?utm_source=ringostat&utm_medium=support&utm_campaign=hook_number&utm_term=test",
"roistat":"17541"
}
Настройка переадресации на webhook

Более детально ознакомиться с созданием, настройкой и функционалом схем переадресации, вы можете в
статье базы знаний

После создания Webhook номера, его нужно включить в схему переадресации.
Перейдите в раздел "Виртуальная АТС" -> "Переадресация" -> "Создать схему переадресации":

    Далее:
  • укажите понятное имя схемы переадресации
  • выберите направление – Webhook номер перенаправления
  • выберите созданный webhook запрос
  • укажите доп параметры схемы переадресации(рабочее время/фоновые звуки и уведомления

Пример обработчика webhook номера

Возвращать ID схемы, можно даже без указания имени в параметре + сделать проверку и в случае, если по входным данным не получается вернуть номер, в параметре schema вернуть ID схемы переадресации.

Внимание! Пример условный и предоставлен для понимания принципа работы и реализации!

Пример обработчика на PHP, который проверяет параметр "Тип подмены".
Если значение равняется "Динамический" – в ответ будет отправлен номер телефона
(имя параметра указывается в Поле номера для переадресации);
Если значение отличается – в ответ будет отправлена ID схемы переадресации
(имя параметра не обязательно указывать в Поле номера для переадресации);

<?php
$insertion_type = !empty($_GET['insertionType']) ? $_GET['insertionType']: '';

if($insertion_type === 'dynamic') {
echo '{"dst_phone":380443334455}';
}
else {
echo '{"schema":26076}';
}

?>
Была ли статья полезной?