События агента очереди (/agent/.../event/)

Мы обновили документацию, актуальная версия страницы доступна по ссылке: События агента очереди (/agent/.../event/)

С помощью ресурса можно оповещать сторонние приложения о входах/выходах агентов очередей.  Более подробная информация об очередях и агентах находится тут.

Количество отслеживаемых событий лимитировано, лимит может быть получено через ресурс лимитов.

Особенности генерации

События генерируются только при смене статуса. Например, если агент повторно послал команду входа в очередь, то события не будет.

В случае, когда методом запроса является GET, данные будут содержаться в заголовке запроса, если же методом запроса является POST, данные будут содержаться в теле запроса. В обоих случаях данные находятся в формате application/x-www-form-urlencoded.

Описание структур данных

Событие (AgentEvent)

Имя

Тип

Обязательный

Значение По УмолчаниюОписание

url

string

да


Куда отправляется запрос при наступлении события. Например, 'https://myshost.org/calls'

event_type

string

да


Событие агента, при наступлении которого отправлять запрос. Возможны варианты:

  • 'agent-login' - вход агента в очередь
  • 'agent-logout'  - выход агента из очереди

method

string

да


Метод запроса:

  • GET
  • POST 

Данные события (AgentEventData)

Имя

Тип

Описание

agent_id

string

Уникальный идентификатор агента очереди

agent_status

string

Новый статус агента:

  • available - готов к приему звонков из очереди
  • logged_out - не будет принимать звонки из очереди

agent_type

string

Тип агента

  • local
  • remote

agent_number

string

присутствует для agent_type 'remote': номер внешнего агента

extension_namestringприсутствует для agent_type 'local': имя добавочного
event_sourcestring

Источник события:

  • api - смена статуса инициирована через API (например, через веб интерфейс)
  • phone - инициирована командой входа/выхода непосредственно с телефона, являющегося агентом


Пример

Допустим, у клиента с идентификатором 12  есть локальный агент с идентификатором 136 и агент закреплен за добавочным "000*094". Добавим этому агенту событие, генерируемое при его входе в очередь

метод

ресурс

данные

ответ

POST
/client/12/agent/local/136/event/

{
"event_type": "agent-login",
"method": "GET",
"url": "https://somehost.com/fordel/show.php"
}

{
"url": "https://somehost.com/fordel/show.php",
"id": 150,
"method": "GET",
"event_type": "agent-login"
}


Если на стороне somehost.com скрипт show.php имеет вид

<?php
error_log("------");
foreach ($_GET as $key => $value){
    error_log("$key => $value");
}
?>

то после логина в очередь в логе веб сервера можно будет увидеть строки вида

[Tue May 30 15:07:50 2017] ------
[Tue May 30 15:07:50 2017] agent_status => available
[Tue May 30 15:07:50 2017] agent_type => local
[Tue May 30 15:07:50 2017] event_source => api
[Tue May 30 15:07:50 2017] agent_id => 136
[Tue May 30 15:07:50 2017] extension_name => 000*094@ringme.ru



Ресурсы

Раздел "клиент"

POST /client/{client_id}/agent/local/{agent_id}/event/

Добавить agent http event

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

Обязательный

url

string

да

event_type

string

да

method

string

да

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

GET /client/{client_id}/agent/local/{agent_id}/event/

Получить agent http events

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer


PUT /client/{client_id}/agent/local/{agent_id}/event/{event_id}

Обновить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

Обязательный

url

string

нет

event_type

string

нет

method

string

нет

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

GET /client/{client_id}/agent/local/{agent_id}/event/{event_id}

Получить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

DELETE /client/{client_id}/agent/local/{agent_id}/event/{event_id}

Удалить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string

POST /client/{client_id}/agent/remote/{agent_id}/event/

Добавить agent http event

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

Обязательный

url

string

да

event_type

string

да

method

string

да

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

GET /client/{client_id}/agent/remote/{agent_id}/event/

Получить agent http events

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer


PUT /client/{client_id}/agent/remote/{agent_id}/event/{event_id}

Обновить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

Обязательный

url

string

нет

event_type

string

нет

method

string

нет

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

GET /client/{client_id}/agent/remote/{agent_id}/event/{event_id}

Получить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

url

string

method

string

event_type

string

id

integer

DELETE /client/{client_id}/agent/remote/{agent_id}/event/{event_id}

Удалить agent http event

Параметры URL

Имя

Тип

event_id

integer

agent_id

integer

client_id

string