События на внутренних номерах
Всем обычным телефонным внутренним номерам (type = phone) рекомендуется добавлять полный набор событий:
dial-in — входящий вызов на внутренний номер – отправитель события;
dial-out — исходящий вызов с внутреннего номера – отправителя события;
answer — снятие трубки на внутреннем номере – отправителе события (возможно, в какой-то интеграции это событие будет неактуально);
hangup — прекращение вызова на внутреннем номере – отправителе события.
Всем специальным внутренним номерам (type = IVR или queue) рекомендуется добавлять только событие “hangup”.
Для отображения готовности агента очереди принять вызов используются данные события агента очереди (available — готов к приему звонков из очереди, logged_out — не будет принимать звонки из очереди). Данные событий могут использоваться в реал-тайм мониторинге.
Параметры событий, используемые для анализа
Регистрация данных о звонках
Все события обычных внутренних телефонных номеров для событий “dial-in” и “dial-out” анализируются и в случае наличия события “answer” регистрируются по событию “hangup” и SubCallID как отдельные вызовы (вместо CallID). Таким образом удастся делить вызов в рамках АТС на отдельные плечи (call legs) — до перевода и после перевода и регистрировать их как отдельные вызовы.
Неотвеченные входящие вызовы фиксируются по наличию в событиях типа “hangup” от голосового меню и очередей параметра Bridged=no. При этом нужно помнить, что Bridged=yes — это всегда успешный входящий вызов. По нему данные должны быть зафиксированы при анализе событий “dial-in” в рамках их собственных SubCallID.
Добавление/удаление событий на внутренних номерах
Для поддержания актуального списка событий на внутренних номерах отправлять запросы на добавление/удаление событий рекомендуется в то время, когда в настройках интеграции администратор прописывает/меняет соответствие пользователей их внутренним номерам. При этом нельзя удалять либо обновлять события, не относящиеся к данной интеграции, т.к. у пользователя может быть несколько других активных интеграций.
Количество событий на одном внутреннем номере согласно стандартным допускам — 16. Потому при невозможности добавить событие нужно сообщить пользователю данную информацию с тем, чтобы он либо удалил неиспользуемые события на внутреннем номере, либо отправил запрос администратору АТС на расширения лимита событий на внутренних номерах
Фильтрация событий, полученных от АТС
Для настройки фильтрации событий, полученных от АТС, рекомендуется ознакомиться с подразделом “Данные события (EventData)”.
Если необходимо фиксировать только внешние вызовы (на внешний номер / с внешнего номера), то нужно исключить из обработки:
события, относящиеся к звонкам c одного внутреннего номера на другой:
— в поле CallerNum: внутренний номер о в формате [0-9]{3,6}*[0-9]{2,4}
— в поле CalledNum: внутренний номер в формате [0-9]{3,6}*[0-9]{2,4}
события, относящиеся к внутренним переадресациям:
— в поле Transfered: "yes"
— присутствует поле CalledExtensionID с числовым id
— присутствует поле CallerExtensionID с числовым id
Пример события
URL в событии может быть таким: http://myintegration.com:8080/cid/807/queue/33334
где 807 — порядковый номер приложения Ringme для данной интеграции. В дальнейшем данный номер можно использовать для того, чтобы отфильтровать в логе сервера интеграций все события, относящиеся к данному пользователю;
queue — тип внутреннего номера, на котором заданo URL события. Задание разных URL позволяет удобно разделять события разных типов внутренних номеров (phone, queue или IVR);
33334 — идентификатор внутреннего номера, упрощает анализ событий.
Однако с точки зрения безопасности в общеиспользуемых интеграциях такие URL в событиях лучше не создавать, т.к. при таком URL можно, подобрав client_id и extention_id, производить массовую рассылку событий другим пользователям. Рекомендуется указывать URL вида: http://myintegration.com/ext-event/f2a8vdrfae0s1ku5d2rj3iximjf3twyz
где ext-event — тип события;
f2a8vdrfae0s1ku5d2rj3iximjf3twyz — уникальный идентификатор, который однозначно соответствует записи внутреннего номера в таблице внутренних номеров вашей интеграции.
← Авторизация приложения и запуск интеграции Логика событий на внутренних номерах →