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

Настройка базовой очереди

Очередь входящих вызовов Call-центра конфигурируется через IVR редактор. IVR редактор является приложением Web-конфигуратора системы ECSS-10.
Блок Queue (Очередь) в IVR-редакторе задает функцию постановки входящего обращения в очередь, для которой задан набор операторов и процедура распределения вызова между операторами.
При постановке вызова в очередь вызываемому абоненту проигрывается сообщение. Во время ожидания абоненту проигрывается заданная мелодия. Периодически в заданный интервал времени абоненту проигрывается информация о прогнозном времени ожидания в очереди.

Вход блока

Входящий вызов в предответном состоянии или на фазе активного вызова.

Выходы блока

Блок предусматривает три выхода: FULL, ERROR и OK.

  • FULL - превышен один из лимитов очереди: максимальное количество вызовов или максимальное предсказываемое время ожидания.
  • ERROR - вызов не был обработан за максимальное допустимое время ожидания, либо выбранные очередью операторы по какой-либо причине не ответили на распределенный на них вызов. Очередь предпринимает 3 попытки распределения, после чего, если вызов не был принят, скрипт продолжает выполнение по ветви ERROR.
  • OK - вызов был распределён на оператора, и оператор ответил. Скрипт продолжит выполнение по данной ветви, если оператор положит трубку раньше звонящего.

Добавление агентов в очередь осуществляется через IVR-редактор:

Создание базовой очереди call-центра в IVR-редакторе

Для того, чтобы создать базовую очередь call-центра, необходимо выполнить следующие действия:

  1. Создать скрипт для обработки входящего вызова в IVR-редакторе;
  2. Добавить в скрипт блок Очередь (Queue), можно ввести описания блока и очереди (IVR редактор (IVR editor));
  3. Сконфигурировать блок Очередь (Queue). Необходимо добавить в очередь операторов (это могут быть любые телефонные номера или выбранные из справочника);
  4. Указать ограничения очереди и выбрать стратегию распределения;
  5. Через приложение MSR медиаменеджер выбрать звуковые файлы фоновой музыки, оповещения и прогноза времени ожидания.

Пример:

Настройка расширенной очереди

В очередь могут быть добавлены как обычные телефонные номера, так и расширенные операторы. Расширенные операторы имеют следующие возможности:

  • постобработка вызова (After Call Work, далее ACW),
  • состояние "отошел" (Аuxwork)
  • АРМ и супервайзинг.

Если в настройках расширенного оператора параметр auto_complete равен false, то после того как оператор положит трубку, разговор перейдёт в состояние ACW, а сам оператор останется занятым для очереди. После завершения обработки оператор, чтобы вновь стать доступным, должен набрать с телефонного аппарата feature код Complete - #161 или воспользоваться АРМ оператором.
Для того чтобы перейти в состояние "отошел" (auxwork) оператор должен набрать с телефонного аппарата feature код Auxwork - #162, или воспользоваться кнопкой Auxwork в АРМ оператора. Очереди перестанут распределять вызовы на оператора, но оператор по-прежнему будет доступен для прямых вызовов. Чтобы вновь стать доступным для очередей, оператор должен набрать с телефонного аппарата feature код Make Available - #163 или воспользоваться кнопкой Available в АРМ оператора.

Текст ниже предназначен для пользователей, знакомых с CoCon CLI, а также с созданием сценариев в IVR-редакторе. В задачу данного документа не входит описание маршрутизации, а также создание телефонных номеров на ECSS-10. Предполагается, что маршрутизация для IVR-скрипта уже настроена, или читающий в состоянии самостоятельно создать скрипт и настроить для него маршрутизацию. Кроме того, читающий должен быть знаком с основами настройки и управления услугами в ECSS-10.

Создание IVR-сценария с использованием расширенной очереди

Для того чтобы начать использование расширенной очереди, необходимо добавить блок "Queue_СС" в IVR-скрипт.

После того как блок добавлен в скрипт, необходимо выполнить его конфигурацию, заполнив следующие поля:

Описание (Description) - краткое описание работы блока;

Действие трансфера (Transfer scenario) - действие трансфера (дать отбой, уведомить и дать отбой, переадресовать, вернуть в очередь):

  • Дать отбой - если абонент, на которого совершают несопровождаемый трансвер, не ответит или даст отбой, то на агента пойдет callback. В случае неответа на callback - абонент будет отбит.
  • Уведомить и дать отбой - если абонент, на которого совершают несопровождаемый трансвер, не ответит или даст отбой, то на агента пойдет callback. В случае неответа на callback - абоненту проиграется уведомление и будет дан отбой.
  • Переадресовать - если абонент, на которого совершают несопровождаемый трансвер, не ответит или даст отбой, то на агента пойдет callback. В случае неответа на callback - абонент будет переадресован на заданный номер.
  • Вернуть в очередь - если абонент, на которого совершают несопровождаемый трансвер, не ответит или даст отбой, то на агента пойдет callback. В случае неответа на callback - абонент будет возвращен в очередь.

Имя очереди (Queue name) А- имя очереди;

Режим уведомления о позиции (Position notification mode) - режим уведомления о позиции (абсолютная позиция, позиция относительно времени добавления, позиция относительного приоритета);

Прогноз времени ожидания (Time prediction) - режим прогнозирования времени ожидания (прямой, оптимистичный, монотонный, сглаженный):

  • Прямой (direct) - новый прогноз делается каждую минуту, при этом количество оставшихся минут сообщается честно. Если например, в прошлый раз абоненту было озвучено оставшееся время 5 минут, а в этот раз очередь посчитала, что осталось 7 минут (например в очередь встал более приоритетный вызов), то абоненту будет честно озвучено оставшееся время 7 минут.
  • Оптимистичный (optimistic) - новый прогноз делается каждую минуту, при этом количество оставшихся минут сообщается честно, только если предсказываемое время сокращается, либо остаётся неизменным. Если же предсказываемое время увеличилось, например, с 5 до 7 минут, то абоненту будет сообщен предыдущий прогноз, то есть 5 минут, как в данном примере.
  • Монотонный (monotonic) - новый прогноз делается каждую минуту, при этом первое предсказание делается честно, а далее количество оставшихся минут монотонно убывает на единицу пока не достигнет 1. Далее абоненту всегда озвучивается прогноз в одну минуту.
  • Сглаженный (smooth) - аналогично предыдущему режиму первый прогноз времени ожидания делается честно, а далее количество оставшихся минут монотонно убывает на единицу пока не достигнет 1. Однако IVR сценарий пытается компенсировать скачки предсказываемого времени, сужая, либо растягивая интервалы предсказания. Например первый раз абоненту было озвучено оставшееся время ожидания 5 минут. Через минуту предсказываемое время ожидания оказалось 6 минут (например из-за принятого на обработку вне очереди приоритетного разговора), но, согласно алгоритму время должно убывать монотонно, поэтому абоненту озвучивается 4 минуты. Чтобы компенсировать скачек времени сценарий вновь сообщит оставшееся время не через минуту, а пропорционально разнице между 6 и 4 минутами, то есть через 6/4 = 1,5 минуты. Обратные скачки также компенсируются, но уже в сторону сужения интервала прогноза, но не чаще чем раз в 30 секунд. В нашем примере через полторы минуты будет озвучено 3 минуты и интервал ожидания будет вновь скорректирован. Таким образом данный режим повторяет режим monotonic, при этом стараясь, чтобы озвучиваемое время убывало плавно, и не приходилось потом многократно озвучивать единицу, или наоборот, чтобы ответ не происходил намного раньше, чем предсказывалось абоненту.

Сценарии нотификаций (Notificaton scenario) - позволяет нам указать в каком порядке проигрывать и проигрывать ли приветствие, позицию в очереди,предсказываемое время ожидания. Доступны параметры:

  • Однократное приветствие;
  • Оповещение;
  • Позиция;
  • Время ожидания;

- Приветствие (Fone music) - звуковой файл, который будет проигрываться при ожидании абонента в очереди;

Фоновая музыка (Fone music) - звуковой файл, который будет проигрываться при ожидании абонента в очереди;

- Оповещение в очереди (Queuing) - сообщение абоненту при постановке его в очередь;

Прогноз времени ожидания (Forecast timeout) - сообщение для информирования абонента о прогнозируемом времени ожидания;

 - Уведомление об ответе (Answer notification) - сообщение после ответа оператора(нотификация идет абоненту и оператору);

Перезвонить, если абонент не дождался (Callback on failure) - режима работы сервиса очереди Callback. Если абонент не дождался ответа оператора, то вызов отмечается специальным признаком и размещается в очереди в режиме Callback.

Перезвонить при сработавшем ограничении (Callback on overload) - режима работы сервиса очереди Callback. Позволяет добавлять в очередь в режиме callback вызов, который не проходит ни по одному из граничных условий (max_predicted_time или queue_length);

- Идет соединение с клиентом (Notify callback message) - сообщение оператору при обратном вызове;

- Проигрывать КПВ оператору (Play ringback to operator) - при обратном вызове оператору проигрывается КПВ;

В данном блоке остаётся только выбрать необходимую очередь в поле "Имя очереди" и, если требуется, настроить проигрываемые звуки.

Создание и настройка расширенной очереди в CoCon (CLI)

Активация услуги cc_agent через CoCon CLI

Для того чтобы оператор мог зарегистрироваться на телефонном номере, для данного телефонного номера должна быть активирована услуга cc_agent. Рекомендуется активировать эту услугу только для тех телефонных номеров, которые специально зарезервированы для регистрации на них операторов. Здесь нужно соблюсти осторожность, так как супервизор имеет возможность прослушивать любой телефонный номер из тех, которые заняты его агентами.

Не стоит активировать услугу cc_agent для всех телефонных номеров в виртуальной АТС кроме случаев, когда вы точно осознаете что делаете.

Пример активации услуги cc_agent:

admin@[restfs1@ecss1]:/$ domain/test.domain/ss/activate 103 cc_agent 
Success: Supplementary service cc_agent activated for domain "test.domain" address "103" 

Услуга cc_agent должна быть установлена в виртуальной АТС, и разрешена для использования этим оператором. Если услуга не установлена, то вам нужно воспользоваться инструкцией по установке и использованию услуги в ECSS-10.

Создание операторов и супервизоров в CoCon CLI

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

Команды по управлению агентами в call-центре см. в разделе Команды управления агентами.

 Раскрыть описание команд

В данном разделе описаны команды управления агентами в Call-центре.

declare

Команда позволяет создать агентов виртуального call-центра.

Путь команды:

/domain/<DOMAIN>/cc/agent/declare

Синтаксис:

declare {<AgentRange> | auto} <Parameters>

Параметры:

<AgentRange> - интервал идентификаторов агентов. Идентификатор агента - целое число, которое будет использоваться для управления агентом с телефонного аппарата. Значение auto говорит о том, что будет автоматически выбран свободный идентификатор.
<Parameters> - список параметров через запятую:

Таблица 1

СвойствоЗначениеОписание
auto_complete_timeout0..3600(сек) или infinityтаймер автоматического завершения постобработки в секундах, 0 - означает, что этап постобработки отключен
auto_logout_timeout5-720 мин. По умолчанию - 120период неактивности оператора, после которого осуществляется выход из сессии
call_recordingboolean, по умолчанию falseвключена или нет запись разговора для агента
descriptionстрокакраткое описание агента
display_nameстрокаотображаемое имя агента
groupстрока, по умолчанию defaultгруппа, к которой относится агент
loadpos_integer, по умолчанию 1количество одновременных вызовов, которое могут быть распределены на агента
passwordстрокапароль для аутентификации, состоит из чисел и имеет длину не менее 4-х символов
pickuptrue/false, по умолчанию falseперехват прямого вызова в call-центре
skills[skill[/subskill]:quality, ...]список умений, который определяет способности и уровень квалификации оператора <police | psychologie>(quality 0-100)
supervisortrue/false, по умолчанию falseвключение привилегий "супервизора", способность регистрироваться в АРМ супервизора и наблюдать за операторами в своей группы
working_timeout5-1440 мин. По умолчанию - 120интервал времени в течении которого агент должен быть не подключен к системе (logout) после которого "смена" для статистики закрывается

Пример:

admin@[sip1@ecss1]:/$ domain/biysk.local/cc/agent/declare 555 auto_complete_timeout = 15, call_recording = true, skills = [police: 99]
ok

[exec at: 23.02.2019 10:34:57, exec time: 91ms, nodes: ds1@ecss1]
clean

Команда позволяет очистить свойства определенных агентов виртуального call-центра.

Путь команды:

/domain/<DOMAIN>/cc/agent/clean

Синтаксис:

clean <AgentRange> <Property>

Параметры:

<AgentRange> - идентификатор агента или шаблон. Шаблон ag{1-20} задает список из 20 агентов: ag1, ag2, ..., ag20;
<Property> - имя свойства. В системе существует набор стандартных свойств (group, load и другое) и свойства, состоящие из нескольких слов, разделенных символом "\", в общем виде выглядят: "general\specific\private"

Пример:

admin@[sip1@ecss1]:/$ domain/biysk.local/cc/agent/clean 555 skills 
ok
Configuration changes will be applied after re-login

[exec at: 23.02.2019 10:57:45, exec time: 91ms, nodes: ds1@ecss1]
info

Команда позволяет отобразить значения одного либо всех свойств определенных агентов виртуального call-центра.

Если в профиле безопасности (/system/security/profile/) параметр show_password_at_cli = off, то в выводе пароль скрывается, и вместо него показываются ********.

Путь команды:

/domain/<DOMAIN>/cc/agent/info

Синтаксис:

info <AgentRange> [<Property> | <Pattern>]

Параметры:

<AgentRange> - идентификатор агента или шаблон. Шаблон ag{1-20} задает список из 20 агентов: ag1, ag2, ..., ag20;
<Property> - имя свойства. В системе существует набор стандартных свойств (agent_id, load и другое) и свойства, состоящие из нескольких слов, разделенных символом "\", в общем виде выглядят: "general\specific\private".
<Pattern> - шаблон, с которым будет сравниваться свойство. Отличается от свойства наличием символа "*"(wildcard). Символ "*" соответствует 1 и более слову (не символу) в сложном свойстве. Например, шаблону "general\specific\*" будет соответствовать свойство "general\specific\private", а "general\spe*" не будет являться корректным шаблоном.

Пример:

admin@mycelium1@ecss1:/$ domain/biysk.local/cc/agent/info 5{00-02}
┌─────┬───────────────────────────────┐
│Agent│          Properties           │
├─────┼───────────────────────────────┤
│500  │agent_id              <<"500">>│
│     │auto_complete_timeout 5 sec.   │
│     │call_recording        false    │
│     │description                    │
│     │display_name                   │
│     │group                 ltp1     │
│     │load                  1        │
│     │password              ******** │
│     │pickup                false    │
│     │skills                         │
│     │supervisor            true     │
│     │working_timeout       120 min. │
│501  │agent_id              <<"501">>│
│     │auto_complete_timeout 5 sec.   │
│     │call_recording        false    │
│     │description                    │
│     │display_name                   │
│     │group                 ltp1     │
│     │load                  1        │
│     │password              ******** │
│     │pickup                false    │
│     │skills                         │
│     │supervisor            false    │
│     │working_timeout       120 min. │
│502  │agent_id              <<"502">>│
│     │auto_complete_timeout 5 sec.   │
│     │call_recording        false    │
│     │description                    │
│     │display_name                   │
│     │group                 ltp1     │
│     │load                  1        │
│     │password              ******** │
│     │pickup                false    │
│     │skills                         │
│     │supervisor            false    │
│     │working_timeout       120 min. │
└─────┴───────────────────────────────┘

[exec at: 18.06.2020 09:29:29, exec time: 10ms, nodes: ds1@ecss1]

list

Команда предназначена для просмотра списка агентов виртуального call-центра.

Путь команды:

/domain/<DOMAIN>/cc/agent/list

Синтаксис:

list [ --password ]

Параметры:

--password - показывать колонку password в результате команды, или нет. По умолчанию колонка не показывается.

Если в профиле безопасности (/system/security/profile/) параметр show_password_at_cli = off, то в выводе пароль скрывается, и вместо него показываются ********.

Пример:

admin@mycelium1@ecss1:/$ domain/biysk.local/cc/agent/list --password                 
┌────────┬────────────┬─────┬──────────┬───────────┬────────┬────────┬────────┬───────┬────┬──────┐
│Agent id│Display name│Group│Supervisor│Description│Password│  Auto  │Working │ Auto  │Load│Skills│
│        │            │     │          │           │        │complete│timeout │logout │    │      │
│        │            │     │          │           │        │timeout │        │timeout│    │      │
├────────┼────────────┼─────┼──────────┼───────────┼────────┼────────┼────────┼───────┼────┼──────┤
│500     │            │ltp1 │true      │           │********│5       │120 min.│inf    │1   │      │
│501     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│502     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│503     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│504     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│505     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│506     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│507     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│508     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│509     │            │ltp1 │          │           │********│5       │120 min.│inf    │1   │      │
│510     │            │ltp2 │true      │           │********│5       │120 min.│inf    │1   │      │
│511     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│512     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│513     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│514     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│515     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│516     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│517     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│518     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│519     │            │ltp2 │          │           │********│5       │120 min.│inf    │1   │      │
│520     │            │ltp3 │true      │           │********│5       │120 min.│inf    │1   │      │
│521     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│522     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│523     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│524     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│525     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│526     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│527     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│528     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
│529     │            │ltp3 │          │           │********│5       │120 min.│inf    │1   │      │
└────────┴────────────┴─────┴──────────┴───────────┴────────┴────────┴────────┴───────┴────┴──────┘

[exec at: 18.06.2020 09:32:20, exec time: 16ms, nodes: ds1@ecss1]

remove

Команда предназначена для удаления агентов виртуального call-центра.

Путь команды:

/domain/<DOMAIN>/cc/agent/remove

Синтаксис:

remove <AgentRange>

Параметры:

<AgentRange> - идентификатор агента или шаблон. Шаблон ag{1-20} задает список из 20 агентов: ag1, ag2, ..., ag20;

Пример:

admin@[sip1@ecss1]:/$ domain/biysk.local/cc/agent/remove 555
ok

[exec at: 23.02.2019 11:01:39, exec time: 83ms, nodes: ds1@ecss1]
set

Команда предназначена для изменения свойств агентов виртуального call-центра или создания нового свойства с указанным значением.

Пароли проверяются на соответствие требованиям, установленным в профиле безопасности (/system/security/profile/), параметр restrictions.

Путь команды:

/domain/<DOMAIN>/cc/agent/set

Синтаксис:

set <AgentRange> <Property> <Value>

Параметры:

<AgentRange> - идентификатор агента или шаблон. Шаблон ag{1-20} задает список из 20 агентов: ag1, ag2, ..., ag20;
<Property> - имя свойства. Возможные значения приведены в таблице 1, а так же свойства из таблицы 2:

Таблица 2

СвойствоЗначениеОписание
integration\confluence
string, по умолчанию не задано
Ключ доступа (API key) пользователя Confluence
integration\redmine
<Login> <Password> - 
учетные данные пользователя Redmine
учетные данные пользователя Redmine
<Login> - имя учетной записи;
<Password> - пароль учетной записи
integration\redmine\task\projectstring, по умолчанию не заданоимя Redmine проекта по умолчанию. В рамках указанного проекта будут создаваться задачи при поступлении вызова в КЦ
integration\redmine\task\subjectstring, по умолчанию не заданошаблон темы создаваемой задачи в Redmine при поступлении вызова в КЦ. Поддерживает макро-переменные (макро-переменные указываются через процент, например %CGPN.digits%).

Возможные макро-переменные:

  • CGPN.digits - номер вызывающего (А) абонента;
  • CDPN.digits - номер вызываемого (Б) абонента;
  • CGPN.display_name - имя вызывающего абонента;
  • CDPN.display_name - имя вызываемого абонента;
  • DATE - текущая дата;
  • TIME - текущее время;
  • AGENT_ID - идентификатор агента КЦ, на которого распределился вызов;
  • QUEUE_ID - имя очереди, через которую вызов распределился на агента КЦ (если вызов пришел напрямую на агента КЦ, то данное поле будет пустым);
  • WORKITEM_ID - внутренний идентификатор заявки в КЦ
integration\redmine\task\bodystring, по умолчанию не задано

шаблон тела создаваемой задачи в Redmine при поступлении вызова в КЦ. Поддерживает макро-переменные аналогичные тем, что используются для переменной integration\redmine\task\subject


<Value> - значение, которое будет установлено свойству.

Пример:

admin@[sip1@ecss1]:/$ domain/biysk.local/cc/agent/set 5{00-09} skills [psychologie:80]
ok
Configuration changes will be applied after re-login

[exec at: 23.02.2019 10:38:56, exec time: 83ms, nodes: ds1@ecss1]
where

Команда предназначена для списка очередей к которым подключен агент.

Путь команды:

/domain/<DOMAIN>/cc/agent/where

Синтаксис:

where <AgentId>

Параметры:

<AgentId> - идентификатор агента.

Пример:

admin@[sip1@ecss1]:/$ domain/biysk.local/cc/agent/where 500 
line1.

[exec at: 23.02.2019 11:00:52, exec time: 83ms, nodes: ds1@ecss1]

В виртуальной АТС изначально нет ни одного оператора. Посмотреть список операторов, можно, используя команду list.

admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list 
┌────────┬────────────┬─────┬──────────┬───────────┬────────┬────────┬────┐
│Agent id│Display name│Group│Supervisor│Description│Password│  Auto  │Load│
│        │            │     │          │           │        │complete│    │
├────────┼────────────┼─────┼──────────┼───────────┼────────┼────────┼────┤
└────────┴────────────┴─────┴──────────┴───────────┴────────┴────────┴────┘

Пример 1:

  1. Создадим нового оператора. Для создания оператора необходимо явно указать его целочисленный идентификатор. Этот идентификатор будет использоваться для входа в АРМ и управления оператором с телефонного аппарата.

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/declare 1 
    ok
    
    [exec at: 29.06.2016 22:51:13, exec time: 29ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list      
    ┌────────┬────────────┬───────┬──────────┬───────────┬────────┬────────┬────┐
    │Agent id│Display name│ Group │Supervisor│Description│Password│  Auto  │Load│
    │        │            │       │          │           │        │complete│    │
    ├────────┼────────────┼───────┼──────────┼───────────┼────────┼────────┼────┤
    │1       │            │default│          │           │        │        │1   │
    └────────┴────────────┴───────┴──────────┴───────────┴────────┴────────┴────┘

    Если не указывать группу, то оператору автоматически будет выставлена группа по умолчанию - default. Если мы не укажем пароль данному оператору, то такой оператор не сможет выполнить вход в систему.

  2. Редакция свойств оператора.

    Свойства оператора можно редактировать после его создания:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 1 display_name "Иван Васильевич"  
    ok
    
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 1 supervisor true               
    ok
    
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 1 description "Супервизор главной группы" 
    ok
    
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 1 password 142354  
    ok
    
    ┌────────┬───────────────┬───────┬──────────┬─────────────────────────┬────────┬────────┬────┐
    │Agent id│ Display name  │ Group │Supervisor│       Description       │Password│  Auto  │Load│
    │        │               │       │          │                         │        │complete│    │
    ├────────┼───────────────┼───────┼──────────┼─────────────────────────┼────────┼────────┼────┤
    │1       │Иван Васильевич│default│true      │Супервизор главной группы│142354  │        │1   │
    └────────┴───────────────┴───────┴──────────┴─────────────────────────┴────────┴────────┴────┘

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

    Мы можем создавать несколько операторов одной командой, с помощью интервала:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/declare {3-4} 
    ok
    
    [exec at: 29.06.2016 23:04:58, exec time: 48ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list         
    ┌────────┬───────────────┬───────┬──────────┬─────────────────────────┬────────┬────────┬────┐
    │Agent id│ Display name  │ Group │Supervisor│       Description       │Password│  Auto  │Load│
    │        │               │       │          │                         │        │complete│    │
    ├────────┼───────────────┼───────┼──────────┼─────────────────────────┼────────┼────────┼────┤
    │1       │Иван Васильевич│default│true      │Супервизор главной группы│142354  │        │1   │
    │3       │               │default│          │                         │        │        │1   │
    │4       │               │default│          │                         │        │        │1   │
    └────────┴───────────────┴───────┴──────────┴─────────────────────────┴────────┴────────┴────┘

    Команда создания оператора может автоматически выбрать целочисленный идентификатор оператора с помощью опции auto:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/declare auto display_name = Алекс, description = Оператор главной группы, password = 335123
    ok
    
    [exec at: 29.06.2016 23:11:38, exec time: 32ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list                                                                                       
    ┌────────┬───────────────┬───────┬──────────┬─────────────────────────┬────────┬────────┬────┐
    │Agent id│ Display name  │ Group │Supervisor│       Description       │Password│  Auto  │Load│
    │        │               │       │          │                         │        │complete│    │
    ├────────┼───────────────┼───────┼──────────┼─────────────────────────┼────────┼────────┼────┤
    │1       │Иван Васильевич│default│true      │Супервизор главной группы│142354  │        │1   │
    │2       │Алекс          │default│          │Оператор главной группы  │335123  │        │1   │
    │3       │               │default│          │                         │        │        │1   │
    │4       │               │default│          │                         │        │        │1   │
    └────────┴───────────────┴───────┴──────────┴─────────────────────────┴────────┴────────┴────┘
    
    [exec at: 29.06.2016 23:11:42, exec time: 15ms, nodes: ds1@ecss1]
  3. Для завершения конфигурирования группы укажем дополнительную информацию об операторах:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 3 display_name Боб
    ok
    
    [exec at: 29.06.2016 23:13:35, exec time: 61ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 3 password 114235 
    ok
    
    [exec at: 29.06.2016 23:13:49, exec time: 24ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 4 display_name Цезарь
    ok
    
    [exec at: 29.06.2016 23:14:07, exec time: 30ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set 4 password 232456    
    ok
    
    [exec at: 29.06.2016 23:14:16, exec time: 29ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list                 
    ┌────────┬───────────────┬───────┬──────────┬─────────────────────────┬────────┬────────┬────┐
    │Agent id│ Display name  │ Group │Supervisor│       Description       │Password│  Auto  │Load│
    │        │               │       │          │                         │        │complete│    │
    ├────────┼───────────────┼───────┼──────────┼─────────────────────────┼────────┼────────┼────┤
    │1       │Иван Васильевич│default│true      │Супервизор главной группы│142354  │        │1   │
    │2       │Алекс          │default│          │Оператор главной группы  │335123  │        │1   │
    │3       │Боб            │default│          │                         │114235  │        │1   │
    │4       │Цезарь         │default│          │                         │232456  │        │1   │
    └────────┴───────────────┴───────┴──────────┴─────────────────────────┴────────┴────────┴────┘
  4. Установим описание операторам 3 и 4:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/set {3-4} description Оператор главной группы
    ok
    
    [exec at: 29.06.2016 23:15:44, exec time: 27ms, nodes: ds1@ecss1]
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/agent/list                                         
    ┌────────┬───────────────┬───────┬──────────┬─────────────────────────┬────────┬────────┬────┐
    │Agent id│ Display name  │ Group │Supervisor│       Description       │Password│  Auto  │Load│
    │        │               │       │          │                         │        │complete│    │
    ├────────┼───────────────┼───────┼──────────┼─────────────────────────┼────────┼────────┼────┤
    │1       │Иван Васильевич│default│true      │Супервизор главной группы│142354  │        │1   │
    │2       │Алекс          │default│          │Оператор главной группы  │335123  │        │1   │
    │3       │Боб            │default│          │Оператор главной группы  │114235  │        │1   │
    │4       │Цезарь         │default│          │Оператор главной группы  │232456  │        │1   │
    └────────┴───────────────┴───────┴──────────┴─────────────────────────┴────────┴────────┴────┘

    Мы получили простейшую конфигурацию операторов Call-центра с группой по-умолчанию, тремя операторами и одним супервизором. Для создания группы не требуется предпринимать какие-либо дополнительные действия. Если при создании оператора указать имя группы, которое ранее не использовалось, будет создана новая группа.

    В дальнейшем для изменения свойств созданных операторов мы можем использовать команду set. Стоит однако отметить, что свойства оператора применяются и будут видны в АРМ. 
    Для завершения конфигурирования, вновь созданных операторов осталось добавить в одну из очередей. Далее мы создадим расширенную очередь и добавим в неё наших операторов.

Создание расширенной очереди в CoCon CLI

Создать расширенную очередь и добавить в нее операторов и/или телефонные номера можно используя CoCon CLI (см. Создание операторов и супервизоров в CoCon CLI).

Команды управления очередью расположены по пути:

/domain/<Domain>/cc/queue/

Новая очередь создается командой declare. Приведем здесь полный синтаксис команды declare:

admin@mycelium1@ecss1:/$ domain/biysk.local/cc/queue/declare -h
	Declare new queue.
	Usage: declare <QueueName> [<Parameters>]
	<QueueName> - name of queue to declare.
	<Parameters> (key1=value1,  ...,  keyN=valueN):
	agents            :: list of operators and/or aliases. Example: [agent:1,agent:2,alias:101, ...]
	distribution_mode :: random | mia | loa | multicall
	                     random  - Random agent. The random available agent;
	                     mia     - Most Idle Agent. The available agent who has been idle the longest since their last call;
	                     loa     - Least Occupied Agent. The available agent with the lowest percentage of work time since login;
	                     multicall - Call on all available agents simultaneously;
	skill_based_distribution :: true | false - enables skill based distribution
	max_wait_time     :: Time in seconds
	max_distribution_attempts :: Max distribution attemps performed before conversation leaves queue
	max_distribution_duration :: Max time in seconds between operators selected and connection established
	ringback_mode :: once | none. Once (default) - play ringback if distribution starts immediately after call enqueued. None - don't play ringback
	max_active_waiting_callbacks :: Max active waiting callbacks count
	window_duration :: Max time in seconds before window moved to the next available operators in serial-based distributions
	groups            :: Supervisor can observe queue only if it is in the same group
	description       :: string()
	remember_choice   :: none | strict | non-strict. Distribute conversation on previously selected operator
		none - disabled;
		strict - if operator busy wait until he become available;
		non-strict - if operator busy use ordinary distribution strategy;
	email             :: Email address to send important notifications (call missing)
	Rules below applied to call before accept it into queue:
	rules\max_predicted_time :: Time in seconds. Max predicted wait time. If it exeeded call will be declined
	rules\queue_length       :: non_neg_integer(). Max enqueued calls number
	rules\decline_if_no_operators :: boolean(). If true and if no queue operators is logged in call will be declined
	time_prediction\statistics\lower_threshold :: Lower threshold of conversation duration in seconds. Values less then lower threshold ignored during prediction. Default is 10 seconds.
	time_prediction\statistics\upper_threshold :: Upper threshold of conversation duration in seconds. Values greater then upper threshold ignored during prediction. Default is 30 minutes.
	time_prediction\statistics\max_count :: Max values stored in the statistics count. Default is 100.
	time_prediction\based_on :: average | most_freq | defined_value. What value to consider during prediction. Default is average.
		average - processed conversation duration average.
		most_freq - most frequently appeared interval of conversation processing duration.
		defined_value - manually specified value of conversation processing duration.
	time_prediction\defined_value :: Manually defined single conversation processing time in seconds. It used in prediction if it explicitly specified by time_prediction\based_on or if statistic values count less then time_prediction\min_values_in_statistics. Default is 60 seconds.
	time_prediction\min_values_in_statistics :: Min values count in the statistics to make prediction. If values count less then time_prediction\min_values_in_statistics then queue will use time_prediction\defined_value as estimate value of the single conversation handling duration. Default is 10

/domain/<DOMAIN>/cc/queue/ - команды управления очередями
Таблица 1. Параметры очереди.
ПараметрЗначениеОписание
Агенты (agents)список вариантов:список операторов, обслуживающих данную очередь
Агент (agent):<AgentId>созданный заранее оператор (см. Создание агентов)
Номер (alias):<PhoneNumber>телефонный номер абонента софтсвича или внешний номер
Описание (description)строкакраткое описание очереди
Распределение (distribution_mode)варианты:одна из следующих стратегий распределения:
ручное(manual)распределение звонков из очереди осуществляется супервизором вручную
зацикленное(cycle)циклическое распределение
распределение с последовательным включением новых агентов (progressive)распределение с последовательным включением агентов в окно вызова
Серийное распределение (serial)устанавливает соединение с операторами в порядке, в котором они добавлены в очередь
случайное (random)случайный оператор
наиболее свободный агент (mia)наиболее свободный агент (Most Idle Agent) - оператор, который свободен от обслуживания нагрузки дольше других
наименее занятый агент (loa)наименее занятый агент (Least Occupied Agent) - оператор, который обслужил меньшую нагрузку за определенный промежуток времени
массовый обзвон (multicall)вызов на всех доступных операторов одновременно
Почта (email)адрес почтыадрес почты, на который необходимо отправлять оповещения о пропущенных звонках
Группы (groups)списокгруппы, супервизоры которых смогут обозревать данную очередь
Максимальное количество попыток распределения (max_distribution_attempts)числоМаксимальное количество попыток распределения вызова на операторов.
Если вызов не был распределён за данное количество попыток, то вызов будет отправлен в ветку ERROR блока queue_cc.
Максимальное время попыток распределения (max_distribution_duration)число, секундыМаксимальное время для одной попытки распределения.
Данный параметр используется для того, чтобы ограничить время попытки распределения вызова (актуально для cycled режима)
Максимальное время ожидания (max_wait_time)число, секундымаксимальное время, которое вызов находится в очереди.
По истечении этого времени вызов покидает очередь и IVR сценарий продолжает выполнение по ветви ERROR
Максимальное количество обратных вызовов (max_active_waiting_callbacks)число, секундыМаксимальное количество активных ожидающих обратных вызовов
Обработка повторных обращений (remember_choice)варианты:отправлять вызов на того же оператора при повторном обращении клиента:
не запоминать распределение (none)не запоминать распределение
запоминать распределение  (strict)распределять в любом случае
распределять, если агент свободен (non_strict)распределять, если агент свободен

Режим КПВ (ringback_mode)

варианты:Режим проигрывания приветствия
однократно (once)Однократно (по умолчанию) - проигрывать КПВ, если распределение началось немедленно при помещении вызова в очередь
Не проигрывать КПВ (none)

Не проигрывать КПВ, только приветствие

отклонить, если нет операторов (rules\decline_if_no_operators)boolпри значении true и отсутствии операторов очереди вызов будет отклонен
Максимальное предсказываемое время ожидания в очереди (rules\max_predicted_time)число, секундымаксимальное предсказываемое время ожидания. При превышении вызов не будет помещен в очередь и IVR сценарий продолжит выполнение по ветви FULL;
Длина очереди (rules\queue_length)числомаксимальное количество вызовов в очереди. При превышении вызов не будет помещен в очередь и IVR сценарий продолжит выполнение по ветви FULL;
Распределение согласно умений (skill_based_distribution)boolраспределение вызовов согласно умениям операторов (тут нужно сослаться на статью, где описывается установка skill для операторов);
time_prediction\based_onварианты:параметр, определяющий, какое значение будет считаться базовым при расчете предсказываемого времени ожидания разговоров в очереди:
averageсреднее значение длительности обработки вызова. Используется как значение по умолчанию.
most_freqсреднее значение длительности обработки вызова в 30 секундном интервале, в который попало наибольшее количество разговоров;
defined_valueуказанное вручную примерное значение продолжительности обработки вызова;
time_prediction\defined_valueчисло, секундыуказанное вручную значение продолжительности обработки вызова в секундах.
Используется в предсказании, если параметр based_on имеет значение defined_value или количество собранных значений продолжительности обработки вызовов,
попадающих в интервал [lower_threshold, upper_threshold], меньше значения min_values_in_statistics.
time_prediction\min_values_in_statisticsчисломинимальное количество собранных значений продолжительности обработки вызова,
попадающих в интервал [lower_threshold, upper_threshold]. Является пороговым значением,
при достижении которого, очередь начинает использовать алгоритмы основанные на средних значениях (average,most_freq). По умолчанию 10 значений.
time_prediction\statistics\lower_thresholdчисло, секундынаименьшее значение продолжительности обработки вызова, определяет нижнюю границу при сборе статистических данных.
Все вызовы, длительность обработки которых не превышает данное значение, не будут учитываться при расчёте времени ожидания. По умолчанию 10 секунд.
time_prediction\statistics\max_countчисломаксимальное количество значений продолжительности обработки вызовов, хранимое в статистике. По умолчанию 100.
time_prediction\statistics\upper_thresholdчисло, секундынаибольшее значение продолжительности обработки вызова, определяет верхнюю границу при сборе статистических данных.
Все вызовы, длительность обработки которых превышает данное значение, не будут учитываться при расчёте времени ожидания . По умолчанию 1800 секунд.
Период сдвига "окна вызовов",с:(window_duration)число, секундытайм-аут сдвига окна вызовов. Данный параметр указывается для режимов: cycled, serial, progressive и показывает через какое время занимать нового оператора.

Назначение и параметры очереди подробно описаны в разделе Расширенная очередь.

Пример 2:

  1. Создадим расширенную очередь и добавим в неё операторов, созданных в примере 1:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/queue/declare queue1 agents = [agent:2,agent:3,agent:4], description = "Тестовая очередь", groups = default, max_wait_time = 300, distribution_mode = random         
    ok
    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/queue/list 
    ┌────────┬───────┬───────┬────────────┬────────┬─────┬────────────────┐
    │Queue id│Groups │Agents │Distribution│Max wait│Rules│  Description   │
    │        │       │       │    mode    │  time  │     │                │
    ├────────┼───────┼───────┼────────────┼────────┼─────┼────────────────┤
    │queue1  │default│agent:2│random      │300     │     │Тестовая очередь│
    │        │       │agent:3│            │        │     │                │
    │        │       │agent:4│            │        │     │                │
    └────────┴───────┴───────┴────────────┴────────┴─────┴────────────────┘

    Командой выше мы создали очередь, в которую добавили агентов с идентификаторами 2,3 и 4. Максимальное время ожидания в ней 300 сек (5 минут), ограничений на максимальную длину или предсказываемое время ожидания нет. Очередь имеет стратегию распределения random. Это значит, что каждый раз во время распределения оператор будет выбираться из списка свободных случайным образом. 

  2. Также мы можем добавить в эту очередь обычные телефонные номера:

    admin@[restfs1@ecss1]:/$ domain/test.domain2/cc/queue/queue1/add-agent alias 100{1-3}
    ok

    Новые параметры очереди применяются сразу же после их изменения.

Создание и настройка расширенной очереди через Web-конфигуратор

Приложение Web-конфигуратора "Call-центр" ("Call-center") используется для создания агентов и очередей через расширенный Web-конфигуратор.

Создание агента

Для добавления нового агента кликните мышкой на раздел агенты и нажмите кнопку , введите идентификатор агента и определите группу, к которой агент будет принадлежать.

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

Таблица 1 - параметры агента

СвойствоЗначениеОписание
Автоматическое завершение (auto_complete_timeout)0..3600(сек) или infinityтаймер автоматического завершения постобработки в секундах, 0 - означает, что этап постобработки отключен
Запись вызова (call_recording)boolean, по умолчанию falseвключена или нет запись разговора для агента
Описание (description)строкакраткое описание агента
Имя агента (display_name)строкаотображаемое имя агента
Группа(group)строка, по умолчанию defaultгруппа, к которой относится агент
Пароль (password)строкапароль для аутентификации, состоит из чисел и имеет длину не менее 4-х символов
Перехват (pickup)true/false, по умолчанию falseперехват прямого вызова в call-центре
Умение (skills)[skill[/subskill]:quality, ...]список умений, который определяет способности и уровень квалификации оператора <police | psychologie>(quality 0-100)
Супервизор (supervisor)true/false, по умолчанию falseвключение привилегий "супервизора", способность регистрироваться в АРМ супервизора и наблюдать за операторами в своей группы
Таймаут смены (мин) (working_timeout)5-1440 мин. По умолчанию - 120интервал времени в течении которого агент должен быть не подключен к системе (logout) после которого "смена" для статистики закрывается
Таймаут автоматического завершения (auto_logout_timeout)5-720 мин. По умолчанию - 120период неактивности оператора, после которого осуществляется выход из сессии

Умения операторов могут быть определены самостоятельно или выбраны из списка заранее определённых (fire,gas и т.д). Также необходимо определить уровень умений для оператора, заполнив поле "Значение". При поступлении вызова в очередь, который требует наличия определённого уровня умений у оператора, очередь попытается распределить такой вызов на свободного оператора с максимально подходящим набором умений соответствующего уровня. Для того, чтобы назначить требуемые умения для вызова воспользуйтесь блоком SET в IVR (см. раздел IVR редактор).

Создание очереди

Для добавления очереди кликните мышкой на раздел очереди и нажмите кнопку , введите "Идентификатор очереди" ("Queue ID").

После ввода идентификатора, откроется

Каждый агент имеет уникальное имя в рамках данного call-центра и набор следующих параметров, полный список всех возможных параметров смотрите ниже:

  • Автоматическое завершение (Autocomplete) - при включенном флаге вызовы будут завершаться минуя фазу постобработки.
  • Тайм-аут автоматического завершения (Autocomplete timeout) - период времени, по истечении которого происходит автоматическое завершение пост-обработки вызова.
  • Тайм-аут смены (Working timeout, m) - период времени, по истечении которого, в случае выхода агента из АРМ, смена будет считаться завершенной (статистика за текущую смену закроется).
  • Запись вызова (Call recording) - при включенном флаге будет происходить запись разговоров агента.
  • Перехват (Pickup) - при включенном флаге агент сможет перехватывать прямые вызовы, поступившие на агентов его группы.
  • Описание (Description) - краткое описание агента.
  • Имя агента (Agent name) - отображаемое имя агента.
  • Группа (Group) - группа, к которой относится агент.
  • Пароль (Password) - пароль для аутентификации. Пароль должен состоять из чисел и иметь длину не менее 4-х символов.
  • Супервизор (Supervisor) - при включенном флаге агент может подключаться к АРМ супервизора и обозревать агентов и очереди, принадлежащие его группе.
  • Умения агента (Agent skills) - список умений, который определяет функционал и квалификацию оператора.
  • Режим КПВ (Ringback mode) - режим проигрывания КПВ абоненту, позвонившему в очередь.
  • Почта (Email) - почта на которую будут приходить уведомления о непринятых вызовах call-центра.
  • Свойства - указаны ниже:

Ошибка отображения макрокоманды «excerpt-include»

No link could be created for 'ECSSArch:/domain/<DOMAIN>/cc/queue/ - команды управления очередями'.

Для добавления агентов в очередь нажмите кнопку  напротив группы или напротив определенного агента. В таблице 2 представлены элементы управления выбором агентов для очереди.

Таблица 2 - Элементы управления выбором агентов для очереди

Отображение всех агентов

Отобразить выбранных агентов

Отобразить свободных агентов

Выбрать всех агентов

Освободить всех агентов

Настройка авторизации агентов Call-центра через LDAP/AD

Для авторизации агентов КЦ через LDAP/AD необходимо сперва создать конфигурацию LDAP/AD в рамках домена, после чего на уровне настроек КЦ необходимо указать, через какое соединение будет происходить авторизация агентов КЦ. Для этого необходимо выполнить команду:

domain/<DOMAIN>/cc/properties/set ldap_server_id <LDAP_ID>

где:

<DOMAIN> - имя виртуальной АТС;

<LDAP_ID> - идетификатор LDAP сервера.

domain/p.city/cc/properties/set ldap_server_id ad-1 
Property "ldap_server_id" successfully changed from: 
undefined
   to
<<"ad-1">>.

А так же активировать авторизацию через LDAP

domain/<DOMAIN>/сс/properties/set ldap_authentication_enabled true

Где

<DOMAIN> - имя виртуальной АТС;

domain/p.city/cc/properties/set ldap_authentication_enabled true
Property "ldap_authentication_enabled" successfully changed from: 
false
   to
true.

Затем, чтобы агент КЦ мог авторизоваться в LDAP/AD, необходимо этому агенту прописать свойство ldap_username - имя учетной записи LDAP/AD:

domain/<DOMAIN>/cc/agent/set <AGENT_ID> ldap_username <login>

Где

<DOMAIN> - имя виртуальной АТС;

<AGENT_ID> - идентификатор абонента Call-центра;

<login> - Логин от call-центра, используемый в LDAP

domain/p.city/cc/agent/set 1 ldap_username test.user 
ok
Configuration changes will be applied after re-login

После этого необходимо перелогинить абонента, и авторизация будет происходить по LDAP/AD.

Настройка интеграции КЦ и redmine

В случае, если агенты для авторизации в call-центре и redmine используют единые данные с ldap сервера, возможно настроить интеграцию redmine и АРМ Агента/Супервизора. Для этого необходимо в свойствах агента выставить параметр:

domain/<DOMAIN>/cc/agent/set <AGENT_ID> integration\redmine <native>

admin@[mycelium1@ecss1]:/$ domain/test.domain/cc/agent/set 3 integration\redmine <native>
ok