Очереди вызовов

Приблизительное время чтения: 10 минут

Настройка очередей звонков в Asterisk #

Организация любого Call-Центра начинается с правильной настройки очередей в сервере телефонии. За постановку входящих звонков в очередь отвечает приложение Asterisk – Queue(), очередей можно создать любое количество и с разным функционалом обработки звонков.

Система очередей вызовов состоит из функционала:

  • Поступающие входящие вызовы помещаются в определенную очередь указанную в сценарии звонков. Можно использовать различные очереди и функционал во время обработки поступающих звонков.
  • Сотрудники, обрабатывающие очередь, отвечают на вызовы поступающие в очередь (в их качестве могут быть либо устройства либо пользователи, зарегистрировавшиеся в системе в качестве агентов).
  • Порядок распределения поступающих вызовов между сотрудниками, обрабатывающими очередь, зависит от настроенной для нее стратегии распределения вызовов.
  • Во время ожидания ответа сотрудников, клиент прослушивает системные аудио файлы, например номер в очереди рекламу и др. информацию.

Участники очереди:

  1. Агенты (Agents) – динамический участник по обработке звонков в очереди. Авторизация пользователя к определенной очереди происходит через комбинацию кодов в IP АТС.
  2. Устройство (Members) – устройство в IP АТС, которое подключается через внутренний номер или мобильный телефон к определенной очереди.

Настройка Queue #

Чтобы добавить очередь перейдите в раздел: УПРАВЛЕНИЕ Очереди

Список настроек для создания очереди Queues:

  1. Название очереди – Укажите название для очереди.
  2. Номер для очереди. Укажите свободный номер в системе.
  3. Постоянные операторы. (persistentmembers) – Сохранять каждого динамического оператора во внутренней БД Asterisk (astdb), чтобы после перезагрузки, все операторы были восстановлены из записей очереди в astdb
  4. Автозаполнение очереди. (autofill) – Поведение очереди по умолчанию (autofill=no) подразумевало последовательный тип подключения, при котором ожидающий абонент, подключался к оператору, только с первой позиции в очереди. Значение (autofill=yes) позволяет ожидающему абоненту, подключится к оператору (агенту) очереди, с любой позиции, если есть свободные агенты, не дожидаясь, пока он займет первую позицию. Такое поведение позволяет быстрее обрабатывать вызовы и является предпочтительным.
  5. Общий последний вызов. (shared_lastcall) – Если оператор (агент) обслуживает больше чем одну очередь, то учитываются параметры, такие как wrapuptime (пауза после завершения разговора в течении которой на агента не поступают вызовы), для всех вызовов, из всех очередей.
  6. Не использовать операторов с отрицательным пенальти. (negative_penalty_invalid) – Рассматривать операторов с отрицательным пенальти, как неактивных, не использовать их в очереди.
  7. Регистрация агентов с именем. (log_membername_as_agent) – Регистрировать агентов с именем, а не номером интерфейса. параметр для обратной совместимости, поведение как при работе с модулем chan_agents.
  8. Выбор мелодии в режиме ожидания (musicclass) – Выбор класса мелодии для ожидания ответа оператора.
  9. Звуковое сообщение оператору обслуживающему очередь. (announce) – Звуковое сообщение может быть проиграно оператору (а не вызывающему абоненту) перед тем, как он примет вызов, например, для идентификации очереди, из которой поступил вызов, если оператор обслуживает более одной очереди.
  10. Стратегия вызова операторов очереди. (strategy) – Параметр указывает как будут распределяться вызовы между операторами. ringall – вызываются все операторы одновременно, пока кто-нибудь не ответит. leastrecent – вызвать оператора дольше всех не принимавшего вызовы. fewestcalls – вызвать оператора принявшего меньше всего вызовов. random – распределить вызовы случайным образом. rrmemory – по кругу (round robin), после агента отвечавшего крайним. linear – вызывать начиная с первого в порядке перечисления. Динамические агенты, будут вызываться в порядке добавления. wrandom – звонит случайный интерфейс, но использует штраф этого участника в качестве веса (weight) при расчете метрики.
  11. Параметр для статистики (servicelevel) – Параметр используется для статистики уровня обслуживания (вызовы, отвеченные в пределах временных рамок уровня обслуживания). Существует два расчета производительности уровня обслуживания SL и SL2. SL = (общее количество отвеченных вызовов в пределах порога / общее количество отвеченных вызовов) * 100. SL2 = ((отвеченные вызовы в пределах порога + вызовы, потерянные в пределах порога) / (отвеченные вызовы + потерянные вызовы)) * 100.
  12. Ограничение участников очереди. (penaltymemberslimit) – Параметр указывает не использовать настройки penalty, если очередь обслуживают кол-во операторов меньшее или равное тому, что указано в данном параметре.
  13. Параметр таймаут указывает в течении какого промежутка времени, в секундах, будет вызываться телефон оператора. (timeout) – Настройка «таймаута» указывается двумя способами. Данный таймаут указывает в течении какого промежутка времени, в секундах, будет вызываться телефон оператора, прежде чем будет считаться, что он не ответил. Второй таймаут, задается в настройках сценарии звонков. Этот таймаут по времени обозначает куда направить вызов после истечении времени.
  14. Время в секундах для вызова следующего в очереди оператора. (retry) – Параметр указывает через какое время в секундах будет переход к следующему оператору, который указан в списке.
  15. Параметр указывает разграничение таймаутов оператора и очереди. (timeoutpriority) – Параметр отвечающий за разграничение таймаутов оператора и очереди, если выбран app — приоритет получает таймаут очереди, если conf — приоритет получает таймаут оператора.
  16. Приоритет для вызова оператора обслуживающего больше одной очереди. (weight) – Чем выше приоритет очереди weight, тем выше приоритет для вызова оператора обслуживающего данные очереди.
  17. Время в секундах для паузы отдыха оператора после последнего вызова. (wrapuptime) – После завершения успешного вызова, время в секундах отдыха оператора, прежде чем он снова сможет принимать вызовы.
  18. Изменение общих настроек автозаполнения для данной очереди. (autofill) – Переопределяет общую установку параметра autofill, отдельно для настройки данной очереди.
  19. Поставить оператора на паузу, если он не ответил на вызов. (autopause) – Значения параметра autopause. no – Не использовать автопаузу для данной очереди. yes – Поставить на паузу, только в данной очереди. all – Поставить на паузу во всех очередях, которые обслуживает оператор.
  20. Отложить постановку на паузу оператора на время в секундах, с момента завершения последнего неудачного вызова. (autopausedelay).
  21. Установка оператора на паузу, если он занят. (autopausebusy) – Поставить оператора на паузу (yes или no), если у него статус занят.
  22. Приостановить оператора, если он недоступен. (autopauseunavail) – Приостановка оператора (yes или no), если у него статус недоступен.
  23. Максимальное кол-во ожидающих абонентов в очереди. (maxlen) – Максимальное кол-во ожидающих абонентов в очереди. Если значение превышено, последующие вызовы будут отменены. Значение 0 – неограниченно.
  24. Параметр setinterfacevar. (setinterfacevar) – Если установлено yes, то переменные будут назначены в каналах вызывающего абонента и оператора очереди. MEMBERINTERFACE – наименование интерфейса оператора(например. SIP/100). MEMBERNAME – имя оператора (например. Иванов Иван). MEMBERCALLS – кол-во вызовов принятых данным интерфейсом оператора. MEMBERLASTCALL – Время последнего вызова (UNIX-time). MEMBERPENALTY – (penalty) оператора. MEMBERDYNAMIC – указывает динамического оператора или нет. MEMBERREALTIME – указывается realtime конфигурация оператора или нет.
  25. Параметр setqueueentryvar. (setqueueentryvar) – Если установлено yes, то следующие переменные будут назначены в каналах вызывающего абонента и оператора очереди. QEHOLDTIME – время ожидания вызывающего абонента. QEORIGINALPOS – позиция в очереди.
  26. Параметр setqueuevar. (setqueuevar) – Если установлено yes, то следующие переменные будут назначены в каналах вызывающего абонента и оператора очереди, при соединении или когда вызывающий абонент покидает очередь. QUEUENAME – имя очереди. QUEUEMAX – максимальное кол-во вызовов разрешенных в очереди. QUEUESTRATEGY – стратегия очереди. QUEUECALLS – текущее кол-во вызовов в очереди. QUEUEHOLDTIME – среднее время ожидания в очереди на данный момент. QUEUECOMPLETED – кол-во обработанных вызовов. QUEUEABANDONED – кол-во неотвеченных вызовов. QUEUESRVLEVEL – уровень обслуживания очереди. QUEUESRVLEVELPERF – процент вызовов отвечающих условию servicelevel.
  27. Звуковое сообщение абоненту о позиции в очереди и среднее время ожидания. (announce-frequency) – Установка времени в секундах для озвучивания позиции в очереди и среднее время ожидания для абонентов. Параметр 0 – выключено. Примечание: этот параметр игнорируется при изменении позиции абонента в очереди.
  28. Минимальный интервал между переходом абонента на следующую позицию в очереди и звуковым сообщением среднего времени ожидания. (min-announce-frequency) – Минимальный интервал между переходом на следующую позицию и сообщением среднего времени ожидания. Параметр позволяет отключать звуковые сообщения когда позиция в очереди абонента часто меняется.
  29. Частота оповещения в секундах. (periodic-announce-frequency) – Частота оповещения абонентов в секундах.
  30. Оповещение абонентов в случайном порядке. (random-periodic-announce) – Оповещение абонентов в случайном порядке. no – выключено.
  31. Рассчитывать время для оповещения с момента завершения предыдущего сообщения, а не от его начала. (relative-periodic-announce) – Рассчитывать время для оповещения с момента завершения предыдущего сообщения, а не от его начала. no – выключено.
  32. Звуковое сообщение о среднем времени ожидания позиции в очереди. (announce-holdtime) – Звуковое сообщение о среднем времени ожидания позиции в очереди. no – выключено. yes – включено. once – один раз.
  33. Использовать звуковое сообщение о позиции в очереди. (announce-position) – Использование звукового сообщения о ожидании позиции в очереди. yes – оповещать о позиции ожидающего абонента. more – если кол-во ожидающих в очереди больше чем задано в announce-position-limit. т.е., если announce-position-limit=5 включить сообщение, что в очереди ожидают больше 5-ти абонентов. limit – только ожидающие абоненты в пределах announce-position-limit услышат объявление. no – выключено.
  34. Проигрывать звуковые сообщения первому абоненту в очереди. (announce-to-first-user) – Проигрывать звуковые сообщения первому абоненту в очереди. no – выключено.
  35. Проигрывать звуковые сообщения для ожидающих абонентов при включенном параметре announce-position «limit» или «more». (announce-position-limit) – Если вы указали «limit» или «more» для параметра announce-position, то следующее значение используется для определения того, какое объявление воспроизводить для ожидающих абонентов. Если вы установили для параметра announce-position что-то другое, то это не повлияет на работу с очередью.
  36. Таймаут в секундах для оповещения абонентов. (announce-round-seconds) – Округлять таймаут по времени в секундах для звуковых сообщений до заданного значения. Возможные значения 0, 5, 10, 15, 20 и 30.
  37. Воспроизвести позицию звонящего только в том случае, если она улучшилась с момента последнего звукового сообщения. (announce-position-only-up) – Воспроизвести позицию звонящего только в том случае, если она улучшилась с момента последнего звукового сообщения. Значение по умолчанию — no.
  38. Звуковой файл «Ваш звонок является первым в очереди и будет обслужен первым доступным оператором». (queue-youarenext)
  39. Звуковой файл «Ваша позиция в очереди». (queue-thereare)
  40. Звуковой файл «Ожидайте пожалуйста ответа оператора». (queue-callswaiting)
  41. Звуковой файл «Прогнозируемое время ожидания составляет». (queue-holdtime)
  42. Звуковой файл «минут». (queue-minutes)
  43. Звуковой файл «секунд». (queue-seconds)
  44. Звуковой файл «Благодарим за терпение». (queue-thankyou)
  45. Звуковой файл «Время ожидания». (queue-reporthold)
  46. Звуковой файл «Все наши операторы заняты, пожалуйста оставайтесь на линии и Ваш звонок будет обслужен первым доступным оператором». (periodic-announce)
  47. Параметр при котором абонент может присоединится к очереди. (joinempty) – Параметр при котором абонент может присоединится к очереди. Значения: yes, paused, penalty, inuse, ringing, unavailable, invalid, unknown, wrapup.
  48. Параметр при котором абонент может покинуть очередь. (leavewhenempty) – Параметр при котором абонент может покинуть очередь. Значения: no, paused, penalty, inuse, ringing, unavailable, invalid, unknown, wrapup.
  49. Оповещение оператора о том сколько по времени абонент ожидал в очереди. (reportholdtime) – Оповещение оператора о том сколько по времени абонент ожидал в очереди.
  50. Не направлять вызов на оператора, если его статус «in use». (ringinuse) – Не направлять вызов на оператора, если его статус «in use». Значение – no.
  51. Время задержки соединения оператора с абонентом. (memberdelay) – Параметр устанавливает время задержки в секундах между тем, когда оператор отвечает на вызов и происходит соединение с вызывающим абонентом. Значение – no.
  52. Сброс настроек параметра таймаут для оператора. (timeoutrestart) – Если параметр «timeoutrestart» установлен в значение yes, тогда значение таймаута для оператора будет сбрасываться, если от него будет получен сигнал BUSY или CONGESTION.
  53. Список операторов для очереди (member) – Укажите операторов, которые будут использоваться для данной очереди. SIP/100,0,Иванов Иван,SIP/100 или SIP/100

Примеры настройки очереди #

Пример конфигурационного файла для очереди, который расположен в директории: /etc/asterisk/queues.conf

[general]
persistentmembers=yes
shared_lastcall=yes
[500]
musicclass=default
strategy=ringall
servicelevel=60
penaltymemberslimit=0
timeout=15
retry=5
timeoutpriority=app
weight=0
wrapuptime=0
autofill=no
autopause=no
autopausedelay=0
autopausebusy=no
autopauseunavail=no
maxlen=0
setinterfacevar=yes
setqueuevar=yes
announce-frequency=0
min-announce-frequency=15
periodic-announce-frequency=0
announce-holdtime=once
announce-position=yes
queue-youarenext=queue-youarenext
queue-thereare=queue-thereare
queue-callswaiting=queue-callswaiting
queue-thankyou=queue-thankyou
joinempty=yes
leavewhenempty=no
reportholdtime=no
ringinuse=yes
memberdelay=0
timeoutrestart=no
member=>SIP/300,0,Иванов Иван,SIP/300
member=>SIP/301,0,Ирина Сидорова,SIP/301
member=>SIP/302,0,Петр Родионов,SIP/302

Пример настройки очереди

call-queues

Пример входящего звонка в очередь с номером 500

call-queues-1
Прокрутить вверх