Очередь (/queue/)

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

Добавочные номера типа очередь (queue) служат для реализации функциональности колл-центра.

Конфигурация очереди

Для конфигурации новой очереди необходимо создать добавочный, указав в качестве типа (параметр type) значение queue.

После этого становиться возможным конфигурация очереди и агентов очереди через API-интерфейс queue.

Звуковые файлы, которые необходимы для настройки очереди, загружаются в ресурс sounds.

Для очереди могут быть сконфигурированы следующие параметры: 

ПараметрТипОбязательныйЗначение по умолчаниюОписание
strategystringнет"round-robin"Стратегия обзвона агентов очереди. Подробно см. Стратегии очереди.
soundintegerнетnullОсновной звук, который будут слышать звонящие в очередь, требуется указать id ресурса sound.
sound_typestringнет"ring"

Тип основного звука. Может принимать значения music или ring. Если установлен в значение ring, то звонящий слышит обычные гудки,
при этом переданный параметр sound игнорируется, а уже установленный sound сбрасывается в null.
Если же параметр имеет значение music, то будет воспроизведен звук, указанный в параметре sound.

announce_soundintegerнетnullЗвук, воспроизводящийся раз в определенный промежуток времени во время ожидания звонящим ответа. Частота воспроизведения настраивается параметром announce_frequency.
announce_frequencyintegerнетnullЧастота воспроизведения звука announce_sound в секундах.
position_announce_frequencyintegerнетnullЧастота анонса позиции звонящего в очереди по отношению к другим ожидающим ответа. Не используется, если не указано. Не может быть менее 1 секунды.
start_soundintegerнетnullЗвук, проигрываемый звонящему при постановке его в очередь, звук проигрывается до начала вызова агентов.
agent_announce_soundintegerнетnullЗвук, который проиграется агенту очереди при ответе звонящему.
agent_report_wait_timeintegerнетnullАгенту очереди при ответе звонящему будет сообщено время в секундах как долго звонящий ждал ответа
max_wait_timestringнетnullМаксимальное время ожидания звонящего в очереди в секундах. По прошествии этого времени осуществляется выход из очереди.
max_wait_time_with_no_agentstringнетnullМаксимальное время ожидания звонящего в очереди в секундах, если в ней нет ни одного доступного агента. По прошествии этого времени осуществляется выход из очереди. 
record_enabledbooleanнетfalseВключение записи разговора в очереди.
exit_keystringнетnullКнопка, при нажатии которой осуществляется выход из очереди. Может цифровой кнопкой, а также кнопками * и #.
exit_transfer_dst stringнетnullВ случае, если звонящий нажал кнопку из exit_key, его переадресует на данный номер.
timeout_transfer_dst
stringнетnullВ случае, если звонящий вышел по истечению max_wait_time, его переадресует на данный номер.
no_agent_timeout_transfer_dststringнетnullВ случае, если звонящий вышел по истечению max_wait_time_with_no_agent, его переадресует на данный номер.
tier_rules_applystringнетnullТребуется ли применение параметров tier_rule_wait_second и tier_rule_wait_multiply_level
tier_rule_wait_secondstringнетnullВремя в секундах с начала поступления вызова в очередь, по истечении которого начинают вызываться агенты следующего уровня. Если параметр tier_rule_wait_multiply_level установлен в true, то указанное время умножается на уровень агента в очереди. Если параметр tier_rule_wait_multiply_level установлен в false, то по истечении указанного времени агенты всех уровней выше минимального становятся доступны для вызова в соотвествии со стратегией очереди.
tier_rule_wait_multiply_levelbooleanнетfalseЕсли параметр имеет значение true, время tier_rule_wait_second умножается на уровень агента.
exit_with_no_av_agentsbooleanнетfalseЕсли активна - вызов не попадет в очередь, если в очереди нет агентов
skip_busy_agentsbooleanнетfalseОчередь попытается не вызывать агентов занятых в разговоре не из этой очереди
vm_enabledbooleanнетfalseВкл\выкл голосовой почты в очереди
vm_greetingintegerнетnullЗвук, который будет проигран перед включением голосовой почты
vm_mailtostringнетnullАдрес почтового ящика, куда будет направлено уведомление о голосовой почте
vm_attach_filebooleanнетfalseПомимо уведомления будет направлена и сама запись голосовой почты
try_same_agent_timeintegerнетnullСистема попытается соединить конкретного звонящего с конкретным агентом, если этот агент ранее уже отвечал этому звонящему, если соединить не получится, либо звонящий ранее ни с кем не общался - вызов пойдет по стратегии обзвона очереди. Значение в секундах от 1 до 2592000
agent_hangup_actionstringнетnullМожет быть либо  'transfer', либо 'quality_rate'

agent_hangup_transfer_dst

stringнетnull

После окончания разговора, если первым положит трубку агент - вызов будет пеадресован на номер, указанный в agent_hangup_transfer_dst

Работает только при agent_hangup_action='transfer'

quality_rate_soundintegerнетnull

После окончания разговора, если первым положит трубку агент -  звонящему в очередь проиграется звук, за которым последует ожидание оценки.

Работает только при agent_hangup_action='quality_rate'

quality_rate_finish_soundintegerнетnull

Звук, который будет проигран после выбранной оценки.

Работает только при agent_hangup_action='quality_rate'

quality_rate_maxintegerнетnull

Максимальная оценка, которую можно будет указать.

Работает только при agent_hangup_action='quality_rate'

append_to_cid_name_on_transferstringнетnullПри переадресации к имени звонящему будет добавлен признак переадресации из этой очереди

Стратегии очереди

При любой стратегии сначала вызываются агенты с наименьшим уровнем. Если агенты текущего уровня обзвона заняты, либо находятся в состоянии временной недоступности например, после не ответа или отклонения предыдущего вызова (см. конфигурацию агента), то вызываются агенты следующего уровня. Если параметр tier_rules_apply имеет значение trueагенты следующего уровня начинают вызываться, через время, указанное параметром tier_rule_wait_second, отчет начинается с началом вызова агентов текущего уровня.
Если параметр tier_rule_wait_multiply_level имеет значение true, то время tier_rule_wait_second умножается на уровень агента.

СтратегияОписание
ring-allВызываются одновременно все доступные агенты.  Если параметр tier_rules_apply имеет значение true,  сначала вызываются агенты с наименьшим уровнем, затем, через время, указанное параметром tier_rule_wait_second вызываться начинают агенты следующего уровня и так далее.
longest-idle-agentВызывается агент с наибольшим временем ожидания c момента последнего разговора.
round-robinАгенты вызываются согласно их позиции (параметр position при добавлении агента в очередь).
top-downАгенты вызываются в порядке из позиций, начиная с первой.
agent-with-least-talk-time

Вызывается агент с наименьшим временем разговора.

agent-with-fewest-callsВызывается агент с наименьшим количеством звонков.
sequentially-by-agent-orderАгенты вызываются последовательно в порядке их уровней и позиций. Первым всегда вызывается агент с наименьшем уровнем и позицией.
randomАгенты вызываются в случайном порядке.

Агенты очереди

Агенты очереди могут быть двух типов: локальные, когда агентом выступает добавочный типа телефонный терминал, и удаленный, когда агентом очереди является заданный внешний номер.

Оба типа агентов имеют следующие настраиваемые параметры:

ПараметрТипОбязательныйЗначение по умолчаниюОписание
statusstringнет"available"Статус агента. Принимает одно из значений: "logged_out", "available". В статусе available агент доступен для вызовов, в статусе logged_out вызовы агенту не направляются.
call_timeout integerнетСистемное значениеВремя в секундах, в течение которого осуществляется вызов агента.
wrap_up_timeintegerнетnullВремя в секундах с момента последнего разговора агента, в течение которого ему не будут направляться вызовы.
no_answer_delay_timeintegerнет10Если агент не ответил на вызов, то в течение указанного в этом параметре времени в секундах ему не будут направляться вызовы.
reject_delay_timeintegerнет10Время в секундах с момента последнего отклонения вызова агентом, в течение которого ему не будут направляться вызовы.
busy_delay_timeintegerнет10Если агент при попытке вызова был занят, то в течение указанного в этом параметре времени в секундах ему не будут направляться вызовы.

Управление агентом в очереди

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

При добавлении локального агента в очередь возможно настроить следующие параметры:

ПараметрТипОбязательныйЗначение по умолчаниюОписание
agent_idintegerда
Идентификатор локального агента.
level integerнет1Уровень агента в очереди.
positionintegerнет1Позиция агента в очереди.


При добавлении внешнего агента в очередь возможно настроить следующие параметры:

ПараметрТипОбязательныйЗначение по умолчаниюОписание
agent_idintegerда
Идентификатор внешнего агента.
level integerнет1Уровень агента в очереди.
positionintegerнет1Позиция агента в очереди.

Пример

В качестве примера создадим добавочный типа "очередь", настроим его, создадим локальных и внешних агентов и добавим их в очередь.

  1. Используя ресурс extension,  создадим добавочный типа "queue"
метод
ресурс
данные
ответ
POST

client/@me/extension/

{
"status": "active",
"name": "370",
"label": "тестовая очередь",
"type": "queue"
}

 

{
"client_id": 12,
"extension_group_id": null,
"extra_params": null,
"id": 208,
"label": "тестовая очередь",
"name": "000*370",
"status": "active",
"type": "queue"
}

2. Настроим очередь таким образом:

  • Главным звуком очереди должен являться звук с идентификатором 36
  • Звуком анонса звук с идентификатором 35
  • Анонс должен проигрываться через каждые 15 секунд
  • Максимальное время ожидания в очереди – 1800 секунд
  • Если было превышено максимальное время ожидания, переадресовывать звонящего на номер 333
  • Стратегия обзвона агентов – "Звонить всем"
  • Запись разговоров в очереди включена
  • Агенты вышестоящего уровней должны начинать вызываться если агенты нижестоящего уровня не отвечают в течение 15 секунд


метод
ресурс
данные
ответ
PUT

/extension/208/queue/

{
"announce_frequency": 15,
"announce_sound": 35,
"max_wait_time": 1800,
"record_enabled": true,
"sound": 36,
"sound_type": "music",
"strategy": "ring-all",
"timeout_transfer_dst": "333",
"tier_rules_apply": true,
"tier_rule_wait_second": 5
}

{
"announce_frequency": 15,
"announce_sound": 50,
"exit_key": null,
"exit_transfer_dst": null,
"extension_id": 208,
"max_wait_time": 1800,
"max_wait_time_with_no_agent": null,
"record_enabled": true,
"sound": 36,
"sound_type": "music",
"strategy": "ring-all",
"start_sound": "null", 

"tier_rule_wait_multiply_level": false,
"tier_rule_wait_second": 15,
"tier_rules_apply": true,
"timeout_transfer_dst": "333"
}

2. Создадим локального агента

метод
ресурс
данные
ответ
POST

/client/@me/agent/local/

{
"busy_delay_time": 10,
"call_timeout": 30,
"extension_id": 117,
"no_answer_delay_time": 10,
"reject_delay_time": 10,
"status": "available",
"wrap_up_time": 0
}

{
"busy_delay_time": 10,
"call_timeout": 30,
"extension_id": 117,
"no_answer_delay_time": 10,
"reject_delay_time": 10,
"status": "available",
"wrap_up_time": 0,
"id": 1

}

3. Создадим внешнего агента

метод
ресурс
данные
ответ
POST

/client/@me/agent/remote/

{
"busy_delay_time": 10,
"call_timeout": 30,
"no_answer_delay_time": 10,
"number": "89215650644",
"reject_delay_time": 10,
"status": "available",
"wrap_up_time": 0
}

{
"busy_delay_time": 10,
"call_timeout": 30,
"id": 9,
"no_answer_delay_time": 10,
"number": "89215650644",
"reject_delay_time": 10,
"status": "available",
"wrap_up_time": 0
}


4. Добавим локального агента в очередь с первой позицией и первым уровнем.

метод
ресурс
данные
ответ
POST
/extension/208/queue/agents/local/

{
"agent_id": 1,
"level": 1,
"position": 1
}

{
"agent_id": 1,
"level": 1,
"position": 1
}

5. Добавим внешнего агента в очередь с первой позицией и вторым уровнем.

метод
ресурс
данные
ответ
POST
/extension/208/queue/agents/remote/

{
"agent_id": 9,
"level": 2,
"position": 1
}

{
"agent_id": 9,
"level": 1,
"position": 1
}


Ресурсы раздела "добавочный"

Конфигурация очереди

PUT /extension/{extension_id}/queue/

Обновить параметры очереди

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

sound

integer

нет

tier_rules_apply

boolean

нет

exit_key

string

нет

timeout_transfer_dst

string

нет

max_wait_time

integer

нет

record_enabled

boolean

нет

max_wait_time_with_no_agent

integer

нет

strategy

string

нет

tier_rule_wait_multiply_level

boolean

нет

announce_sound

integer

нет

announce_frequency

integer

нет

exit_transfer_dst

string

нет

sound_type

string

нет

tier_rule_wait_second

integer

нет

start_soundintegerнет

Поля ответа

Имя

Тип

sound

integer

tier_rules_apply

boolean

exit_key

string

timeout_transfer_dst

string

max_wait_time

integer

record_enabled

boolean

max_wait_time_with_no_agent

integer

strategy

string

tier_rule_wait_multiply_level

boolean

extension_id

integer

announce_frequency

integer

exit_transfer_dst

string

sound_type

string

tier_rule_wait_second

integer

announce_sound

integer

start_soundinteger

GET /extension/{extension_id}/queue/

Получить параметры очереди

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

sound

integer

tier_rules_apply

boolean

exit_key

string

timeout_transfer_dst

string

max_wait_time

integer

record_enabled

boolean

max_wait_time_with_no_agent

integer

strategy

string

tier_rule_wait_multiply_level

boolean

extension_id

integer

announce_frequency

integer

exit_transfer_dst

string

sound_type

string

tier_rule_wait_second

integer

announce_sound

integer

start_soundinteger

Конфигурация локального агента в очереди

POST /extension/{extension_id}/queue/agents/local/

Добавить локального агента в очередь

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

position

integer

нет

agent_id

integer

да

level

integer

нет

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

GET /extension/{extension_id}/queue/agents/local/

Получить список локальных агентов очереди

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer


PUT /extension/{extension_id}/queue/agents/local/{agent_id}

Обновить конфигурацию локального агента в очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer

Параметры JSON

Имя

Тип

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

position

integer

нет

level

integer

нет

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

GET /extension/{extension_id}/queue/agents/local/{agent_id}

Получить конфигурацию локального агента в очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

DELETE /extension/{extension_id}/queue/agents/local/{agent_id}

Удавлить локального агента из очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer


Конфигурация внешнего агента в очереди

POST /extension/{extension_id}/queue/agents/remote/

Добавить внешнего агента в очередь

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

position

integer

нет

agent_id

integer

да

level

integer

нет

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

GET /extension/{extension_id}/queue/agents/remote/

Получить список внешних агентов в очереди

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer


PUT /extension/{extension_id}/queue/agents/remote/{agent_id}

Обновить конфигурацию внешнего агента в очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer

Параметры JSON

Имя

Тип

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

position

integer

нет

level

integer

нет

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

GET /extension/{extension_id}/queue/agents/remote/{agent_id}

Получить конфигурацию внешнего агента в очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer

Поля ответа

Имя

Тип

position

integer

agent_id

integer

level

integer

DELETE /extension/{extension_id}/queue/agents/remote/{agent_id}

Удалить внешнего агента из очереди

Параметры URL

Имя

Тип

extension_id

string

agent_id

integer

Ресурсы раздела "клиент"

Локальные агенты

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

Добавить локального агента клиента

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

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

status

string

нет

reject_delay_time

integer

нет

name

string

да

wrap_up_time

integer

нет

call_timeout

integer

нет

busy_delay_time

integer

нет

extension_id

integer

да

no_answer_delay_time

integer

нет

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

reject_delay_time

integer

extension_id

integer

no_answer_delay_time

integer

id

integer

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

Получить список локальных агентов клиента

Параметры URL

Имя

Тип

client_id

string

Параметры запроса

Имя

Тип

extension_id

array [integer]

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

reject_delay_time

integer

extension_id

integer

no_answer_delay_time

integer

id

integer


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

Обновить локального агента

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

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

status

string

нет

reject_delay_time

integer

нет

name

string

нет

wrap_up_time

integer

нет

call_timeout

integer

нет

busy_delay_time

integer

нет

no_answer_delay_time

integer

нет

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

reject_delay_time

integer

extension_id

integer

no_answer_delay_time

integer

id

integer

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

Получить локального агента

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

reject_delay_time

integer

extension_id

integer

no_answer_delay_time

integer

id

integer

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

Удалить локального агента. Если параметр remove_from_queues установлен в false, то при нахождении удаляемого агента хотя бы в одной очереди будет возвращена ошибка. Если параметр установлен в true (по умолчанию), то агент также удалится и из очередей.

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры запроса

Имя

Тип

remove_from_queues

boolean


Внешние агенты

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

Добавить внешнего агента

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

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

status

string

нет

reject_delay_time

integer

нет

name

string

да

wrap_up_time

integer

нет

call_timeout

integer

нет

busy_delay_time

integer

нет

number

string

да

no_answer_delay_time

integer

нет

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

number

string

reject_delay_time

integer

no_answer_delay_time

integer

id

integer

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

Получить список внешних агентов клиента

Параметры URL

Имя

Тип

client_id

string

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

number

string

reject_delay_time

integer

no_answer_delay_time

integer

id

integer


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

Обновить внешнего агента

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры JSON

Имя

Тип

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

status

string

нет

reject_delay_time

integer

нет

name

string

нет

wrap_up_time

integer

нет

call_timeout

integer

нет

busy_delay_time

integer

нет

number

string

нет

no_answer_delay_time

integer

нет

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

number

string

reject_delay_time

integer

no_answer_delay_time

integer

id

integer

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

Получить внешнего агента

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Поля ответа

Имя

Тип

status

string

busy_delay_time

integer

name

string

wrap_up_time

integer

call_timeout

integer

number

string

reject_delay_time

integer

no_answer_delay_time

integer

id

integer

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

Удалить внешнего агента. Если параметр remove_from_queues установлен в false, то при нахождении удаляемого агента хотя бы в одной очереди будет возвращена ошибка. Если параметр установлен в true (по умолчанию), то агент также удалится и из очередей.

Параметры URL

Имя

Тип

agent_id

integer

client_id

string

Параметры запроса

Имя

Тип

remove_from_queues

boolean

Похожие разделы


параметр tier_rule_wait_multiply_level