Руководство по управлению Call-центром
Конфигурирование очереди
Настройка базовой очереди
Очередь входящих вызовов Call-центра конфигурируется через IVR-редактор (IVR editor). IVR-редактор является приложением web-конфигуратора системы ECSS-10.
Блок Queue (Очередь) в IVR-редакторе задает функцию постановки входящего обращения в очередь, для которой задан набор операторов и процедура распределения вызова между операторами.
При постановке вызова в очередь вызываемому абоненту проигрывается сообщение. Во время ожидания абоненту проигрывается заданная мелодия. Периодически в заданный интервал времени абоненту проигрывается информация о прогнозном времени ожидания в очереди.
Вход блока
Входящий вызов в предответном состоянии или на фазе активного вызова.
Выходы блока
Блок предусматривает три выхода: FULL, ERROR и OK.
FULL— превышен один из лимитов очереди: максимальное количество вызовов или максимальное предсказываемое время ожидания;ERROR— вызов не был обработан за максимальное допустимое время ожидания, либо выбранные очередью операторы по какой-либо причине не ответили на распределенный на них вызов. Очередь предпринимает 3 попытки распределения, после чего, если вызов не был принят, скрипт продолжает выполнение по ветви ERROR;OK— вызов был распределён на оператора, и оператор ответил. Скрипт продолжит выполнение по данной ветви, если оператор положит трубку раньше звонящего.
Добавление агентов в очередь осуществляется через IVR-редактор:
Создание базовой очереди Сall-центра в IVR-редакторе
Для того чтобы создать базовую очередь Сall-центра, необходимо выполнить следующие действия:
- Создать скрипт для обработки входящего вызова в IVR-редакторе;
- Добавить в скрипт блок Очередь (Queue), можно ввести описания блока и очереди (queue);
- Сконфигурировать блок Очередь (Queue). Необходимо добавить в очередь операторов (это могут быть любые телефонные номера или выбранные из справочника);
- Указать ограничения очереди и выбрать стратегию распределения;
- Через приложение MSR-медиаменеджер выбрать звуковые файлы фоновой музыки, оповещения и прогноза времени ожидания.
Пример:

Длина очереди — максимальное количество вызовов в очереди. При превышении вызов не будет помещен в очередь и IVR-сценарий продолжит выполнение по ветви FULL.
Время ожидания — максимальное время, которое вызов находится в очереди. По истечении этого времени вызов покидает очередь, и IVR-сценарий продолжает выполнение по ветви ERROR.
Режим распределения — одна из следующих стратегий распределения: случайное (random), серийное (serial), циклическое (cycled), распределение с последовательным сбором участников (progressive), массовый обзвон (multicall). Логика работы стратегий распредления базовой очереди не отличается от логики работы стратегий расширенной очереди.
Количество попыток распредления — максимальное количество попыток распределения вызова на операторов. Если вызов не был распределён за данное количество попыток, то будет отправлен в ветку ERROR IVR блока Queue.
Длительность распределения — время для одной попытки распределения. По истечении времени первой попытки распределения, начинается вторая попытка и т.д. Так происходит до тех пор, пока не будет израсходовано максимальное количество попыток распределения.
Таймаут переключения окна вызовов — данный параметр указывается для режимов: циклический (cycled), серийный (serial), распределение с последовательным включением новых агентов (progressive) и показывает, через какое время занимать нового оператора.
Настройка расширенной очереди
В очередь могут быть добавлены как обычные телефонные номера, так и расширенные операторы. Расширенные операторы имеют следующие возможности:
- постобработка вызова (After Call Work, далее ACW);
- состояние "отошел" (Аuxwork);
- АРМ и супервайзинг.
Если в настройках расширенного оператора параметр auto_complete равен false, то после того, как оператор положит трубку, разговор перейдёт в состояние ACW, а сам оператор останется занятым для очереди. После завершения обработки оператор, чтобы вновь стать доступным, должен набрать с телефонного аппарата feature-код Complete (#161#) или воспользоваться кнопкой Complete АРМ оператора.
Для того чтобы перейти в состояние "отошел" (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) — позволяет указать, в каком порядке проигрывать и проигрывать ли приветствие, позицию в очереди, предсказываемое время ожидания. Доступны параметры:
- Однократное приветствие (Greeting);
- Позиция (Position);
- Время ожидания (Predicted time);
- Оповещение (Enqueued).
- Приветствие (Fone music) — звуковой файл, который будет проигрываться при ожидании абонента в очереди;
- Фоновая музыка (Fone music) — звуковой файл, который будет проигрываться при ожидании абонента в очереди;
- Оповещение в очереди (Queuing) — сообщение абоненту при постановке его в очередь;
- Прогноз времени ожидания (Forecast timeout) — сообщение для информирования абонента о прогнозируемом времени ожидания;
- Уведомление об ответе (Answer notification) — сообщение после ответа оператора (нотификация идет абоненту и оператору);
- Перезвонить, если абонент не дождался (Callback on failure) — режим работы сервиса очереди Callback. Если абонент не дождался ответа оператора, то вызов отмечается специальным признаком и размещается в очереди в режиме Callback.
- Перезвонить при сработавшем ограничении (Callback on overload) — режим работы сервиса очереди Callback. Позволяет добавлять в очередь в режиме Сallback вызов, который не проходит ни по одному из граничных условий (max_predicted_time или queue_length);
- Идет соединение с клиентом (Notify callback message) — сообщение оператору при обратном вызове;
- Проигрывать КПВ оператору (Play ringback to operator) — при обратном вызове оператору проигрывается КПВ.
Сallback, иницирующийся агентом КЦ, производится с номера очереди.
Когда агентов нет, клиент ожидает распределения в очереди в течении 2 часов.
Сallback-и являются вызовами и занимают ресурсы выделенной лицензии на вызовы.
В данном блоке остаётся только выбрать необходимую очередь в поле "Имя очереди" и, если требуется, настроить проигрываемые звуки.
Создание IVR-сценария распределения вызовов согласно приоритетам
Для того чтобы начать использование приоритетов в очереди, необходимо добавить блоки "Запрос к адресной книге SSW" и "Set" в IVR-скрипт.

В блоке "Запрос к адресной книге SSW" указать какую адресную книгу "Локальную" или "Внешнюю" будем использовать:

Так же требуется указать использование атрибутов "Приоритет контакта" и "Имя контакта" для последующего анализа.
В блоке "Set" выбрать переменную "PRIORITY" и указать значение "Приоритет из адресной книги"
Вызовы будут распределяться согласно приоритету указанному у локального или внешнего абонента.
Установление приоритетов для абонентов в web-интерфейсе
Для локального абонента выставить нужный приоритет в закладке "Адресная книга". Допустимые значения (1-10).
Приоритет "1" наинизший.
Приоритет "10" наивысший.
Абоненты с высоким приоритетом 6-10 будут выделятся в очереди на APM CC UI агента

Для внешнего абонента добавить запись во "Внешнюю адресную книгу" приложения "Call-центр", указав полный номер абонента(диапазон номеров), имя и нужный приоритет. Допустимые значения (1-10).

Установление приоритетов для абонентов в CoCon (CLI)
Для добавления приоритета уже созданному локальному абоненту выполнить команду:
выполняется в CoCon
/domain/<domain>/address-book/set <alias_number> <iface>@test_domain priority <1-10>
/domain/test_domain/address-book/set 42001 42001@test_domain priority 5 Contact with uid 06e57f48963e3898 updated!
Приоритет "1" наинизший.
Приоритет "10" наивысший.
Абоненты с высоким приоритетом 6-10 будут выделятся в очереди на APM CC UI агента
/domain/test_domain/address-book/info 42001 ┌──────┬───────────┬──────────────────────────┐ │Number│ Property │ Value │ ├──────┼───────────┼──────────────────────────┤ │42001 │Uuid │06e57f48963e3898 │ │ │First Name │undefined │ │ │Middle Name│undefined │ │ │Last Name │undefined │ │ │Company │undefined │ │ │Position │undefined │ │ │Description│Auto-created by CoCon user│ │ │Photo │undefined │ │ │Group │undefined │ │ │Priority │5 │ └──────┴───────────┴──────────────────────────┘
Для добавления нового внешнего абонента во "Внешнюю адресную книгу" выполнить команды:
Задать "tag" для выбранного домена. База одна на все домены, поэтому "tag" используется в качестве признака принадлежности записи тому или иному домену.
выполняется в CoCon
/domain/<domain>/address-book/address-book/external/properties/set tag <tag>
/domain/test_domain/address-book/external/properties/set tag 123 Property "tag" successfully changed from: undefined to <<"123">>. or /domain/test_domain/address-book/external/properties/set tag test_domain Property "tag" successfully changed from: <<"123">> to <<"test_domain">>.
Добавить запись нового абонента во "Внешнюю адресную книгу".
выполняется в CoCon
/domain/<domain>/address-book/address-book/external/declare <address> <name> --priority <1-10> --description <описание>
/domain/test_domain/address-book/external/declare 36362 "Петров Архип" --priority 4 --description "Петров и Ко" Creation request processed successfully. New records created: 1.
/domain/test_domain/address-book/external/info ┌───┬───────┬────────────────────┬────────┬────────────────────┐ │Tag│Address│ Name │Priority│ Description │ ├───┼───────┼────────────────────┼────────┼────────────────────┤ │123│2000 │Петров Петр Петрович│9 │Петров и Ко │ │123│36361 │Петров Аристарх │3 │- │ │123│36362 │Петров Архип │4 │Петров и Ко │ │123│40000 │Петров Степан │3 │- │ └───┴───────┴────────────────────┴────────┴────────────────────┘
Активация услуги cc_agent через CoCon CLI
Для того чтобы оператор мог зарегистрироваться на телефонном номере, для данного телефонного номера должна быть активирована услуга cc_agent. Рекомендуется активировать эту услугу только для тех телефонных номеров, которые специально зарезервированы для регистрации на них операторов. Обратите внимание, что супервизор имеет возможность прослушивать агентов и имеет доступ к записям разговоров.
Пример активации услуги cc_agent:
/domain/test_domain/ss/force-activate 42005 cc_agent 1 users divided into 1 parts [**********************************************************************] 33mks Success: Supplementary service cc_agent enabled for domain "test_domain", address "42005" Read properties from enabled supplementary services [**********************************************************************] 23mks 1 users divided into 1 parts [**********************************************************************] 25mks
Услуга cc_agent должна быть установлена в виртуальной АТС и разрешена для использования этим оператором. Если услуга не установлена, то нужно воспользоваться инструкцией по установке и использованию услуги в ECSS-10.
Создание и настройка расширенной очереди через web-конфигуратор
Для настройки расширенной очереди через Web-конфигуратор используется приложение Call-центр (Call-center).
Создание и настройка расширенной очереди в CoCon (CLI)
Создать расширенную очередь и добавить в нее операторов и/или телефонные номера можно, используя CoCon CLI (см. Создание операторов и супервизоров в CoCon CLI).
Команды управления очередью расположены по пути:
/domain/<Domain>/cc/queue/
Новая очередь создается командой declare. Приведем здесь полный синтаксис команды declare:
/domain/eltex/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; extra_condition_mode :: none | strict | non-strict none - don't take into account operator's extra condition (additional line, etc.); strict - if extra operator's extra condition is evaluated as 'false' (additional line is busy), operator is considered busy; non-strict - like 'strict' mode, but if no other free operators, it behaves like 'none'; 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.
| Параметр | Значение | Описание |
|---|---|---|
| Агенты (agents) | список вариантов: | список операторов, обслуживающих данную очередь |
| агент (agent):<AgentId> | созданный заранее оператор | |
| номер (alias):<PhoneNumber> | телефонный номер абонента SSW или внешний номер | |
| Включить переадресацию номера агента (agent_number_forwarding_enabled) | bool | Проброс номера оператора, вместо номера Call-центра Если значение выставлено в true отправляется update с номером оператора в заголовках PAI и/или RPI (в зависимости от того, что установлено в параметре remote-ctr-indication в свойствах SIP юзера) Значение по умолчанию - false |
| Описание (description) | строка | краткое описание очереди |
| Установка набора статусов постобработки (acw_status_set) | строка | устанавливает рабочий набор статусов постообработки (acw). Пустое значение — отсутствие возможности выбора статусов |
| Перевод оператора в состояние "Технический перерыв" по неответу на распределенный на него вызов (auxwork_if_no_answer) | строка | если установлена какая-либо причина технического перерыва, оператор будет переведен в состояние "Технический перерыв", если не ответит на распределенный на него вызов |
| Перевод оператора в состояние "Технический перерыв" при отклонении распределенного на него вызова (auxwork_if_reject) | строка | если установлена какая-либо причина технического перерыва, оператор будет переведен в состояние "Технический перерыв", если отклонит на распределенный на него вызов |
Распределение (distribution_mode) | варианты: | одна из следующих стратегий распределения: |
| ручное (manual) | распределение звонков из очереди осуществляется супервизором вручную | |
| циклическое (cycled) | последовательно производятся попытки соединения с операторами по порядку их идентификаторов. Сначала осуществляется соединение с первым оператором. Если оператор не отвечает по прошествии времени, указанного в window_duration, или же если оператор отбивает вызов, соединение с текущим оператором прекращается, и начинается соединение со следующим по списку оператором. После достижения последнего свободного оператора окно переходит к первому оператору и все начинается сначала. Соединения будут продолжаться до тех пор пока не истечет время max_distribution_duration. При неудачной попытке распределения, механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts | |
| распределение с последовательным включением новых агентов (progressive) | последовательно производятся попытки соединения с операторами по порядку их идентификаторов, но в отличие от циклического и серийного распределений, соединение с предыдущим оператором не прекращается при начале соединения со следующим агентом. Если никто из операторов не ответит, очередь будет параллельно осуществлять попытку распределить входящий вызов со всеми операторами аналогично стратегии Multicall. Когда окно включит в себя последнего оператора, попытка распределения будет продолжаться до исчерпания времени max_distribution_duration, пока операторы не отклонят соединение или пока кто-то один не ответит на вызов. При неудачной попытке распределения, механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts | |
| серийное распределение (serial) | последовательно производятся попытки соединения с операторами по порядку их идентификаторов. Сначала осуществляется соединение с первым оператором. Если оператор не отвечает по прошествии времени, указанного в window_duration, или же если оператор отбивает вызов, соединение с текущим оператором прекращается, и начинается соединение со следующим по списку оператором. Так продолжается до тех пор, пока окно не достигнет последнего оператора. После этого окно уже не сдвигается, и продолжается попытка соединения с последним оператором до исчерпания времени max_distribution_duration или пока оператор не отклонит соединение. При неудачной попытке распределения механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts | |
| случайное (random) | при распределении выбирается один случайный доступный оператор, если не активны опции "Обработка повторных обращений" или "Распределение согласно умениям". В случае, если для опции "Обработка повторных обращений" установлены значения strict или non-strict и для вызывающей стороны сохранен ранее принимавший вызов оператор , то очередью будет совершена попытка распределить вызов на ранее принимавшего вызов оператора. В случае, если активна опция "Распределение согласно умениям", очередью будет совершена попытка распределить вызов на случайного свободного оператора, максимально соответствующего установленным для данного вызова умениям. | |
| наиболее свободный агент (mia) | наиболее свободный агент (Most Idle Agent) — очередь выбирает оператора, с момента последней попытки распределения на которого прошло больше всего времени | |
| наименее занятый агент (loa) | наименее занятый агент (Least Occupied Agent) — очередь выбирает оператора, который за определенный интервал времени (по умолчанию 5 минут) менее других обслуживал вызовы, распределенные очередью | |
| массовый обзвон (multicall) | вызов на всех доступных операторов одновременно. В случае, если активна опция "Распределение согласно умениям", очередью будет совершена попытка распределить вызов на группу операторов, максимально соответствующих установленным для данного вызова умениям | |
| Почта (email) | адрес почты | адрес электронной почты, на которую будут отправляться оповещения о пропущенных звонках. Предварительно необходимо настроить параметры службы уведомлений |
| extra_condition_mode | варианты: | распределение на агента с учетом занятости дополнительной линии |
| не учитывать дополнительный номер агента (none) | если параметр выставлен в none и для агента настроен дополнительный номер, занятость второй линии агента при распределении учитываться не будет | |
| не распределять, если дополнительный номер агента занят (strict) | если параметр выставлен в strict и для агента настроен дополнительный номер, при занятости второй линии агента, вызов не будет распределяться, даже если нет других свободных агентов | |
| распределять, если дополнительный номер занят и нет свободных агентов (non-srtict) | если параметр выставлен в non-strict и для агента настроен дополнительный номер, при занятости второй линии и наличии свободных агентов работает как strict режим, при отсутствии свободных агентов — как none режим | |
| Группы (groups) | список | группы, супервизоры которых смогут обозревать данную очередь |
Блокировать при неответе (lock_if_no_answer) | bool | Если параметр выставлен в true и оператор не ответил на вызов, то распределение других вызовов на него блокируется. При каждом следующем отклонении его статус понижается:
Изначально операторы имеют статус 'goodness' = good. После каждого непринятого или отклоненного вызова статус меняется: good → bad → ugly После каждого принятого вызова статус меняется в обратном порядке: ugly → bad → good если параметр выставлен в false, то после этого для всех последующих вызовов механизм блокировки отключается. Параметр 'goodness' продолжает меняться, поэтому все операторы начнут получать блокировку по заслугам после включения опции. Для уже заблокированных операторов блокировка не пропадает, но по истечении периода повторно не накладывается |
Блокировать при отклонении вызова (lock_if_reject) | bool | Если параметр выставлен в true и оператор отклоняет вызов, то распределение других вызовов на него блокируется. При каждом следующем отклонении его статус 'goodness' понижается. если параметр выставлен в false, то после этого для всех последующих вызовов механизм блокировки отключается |
| Максимальное количество попыток распределения (max_distribution_attempts) | число | максимальное количество попыток распределения вызова на операторов. Если вызов не был распределён за данное количество попыток, то будет отправлен в ветку ERROR IVR блока Queue CC |
| Максимальное время попыток распределения (max_distribution_duration) | число, секунды | максимальное время для одной попытки распределения. По истечении времени первой попытки распределения, начинается вторая попытка и т.д. Так происходит до тех пор, пока не будет израсходовано максимальное количество попыток распределения. Данный параметр используется для того чтобы ограничить время попытки распределения вызова (актуально для cycled-режима) |
| Максимальное время ожидания (max_wait_time) | число, секунды | максимальное время, которое вызов находится в очереди. По истечении этого времени вызов покидает очередь, и IVR-сценарий продолжает выполнение по ветви ERROR |
| Максимальное количество активных ожидающих обратных вызовов (max_active_waiting_callbacks) | число, секунды | максимальное количество активных ожидающих обратных вызовов. Этот параметр работает при активной опции allow waiting (разрешить дальнейшее ожидание) IVR-блока Queue CC (распределение входящих вызовов в выбранную очередь) и дает возможность определенному количеству абонентов ожидать ответа оператора на линии |
| Период между повтором обратного вызова (callback_cooldown_timeout) | число, секунды | таймер стартует, когда клиент отклонил обратный вызов от оператора. Если же оператор отклонил вызов, то callback повторно распределяется N раз, где N — max_distribution_attempts (свойство очереди). По умолчанию — 5 мин |
| Обработка повторных обращений (remember_choice) | варианты: | отправлять вызов на того же оператора при повторном обращении клиента, при условии, что для вызывающей стороны сохранен идентификатор обслуживающего вызов ранее оператора (по умолчанию хранится 1 час): |
| не запоминать распределение (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 |
| Блокировка при серийном распределении (serial_lock_enabled) | bool | блокировка в случае отклонения вызова при серийном распределении. В случае, если свойство включено, операторы при серийных распределениях будут блокироваться на 20 сек |
Распределение согласно умениям (skill_based_distribution) | bool | распределение вызовов согласно умениям операторов |
| 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) | число, секунды | таймаут сдвига окна вызовов. Данный параметр указывается для режимов: циклический ( |
Назначение и параметры очереди подробно описаны в разделе Расширенная очередь.
Пример 2:
Создадим расширенную очередь и добавим в неё операторов:
/domain/eltex/cc/queue/declare eltex_queue agents = [agent:204,agent:205,agent:206], groups = sales, description = "Входящие звонки в Элтекс" ok /domain/eltex/cc/queue/list ┌───────────┬───────┬─────────┬────────────┬────────────┬────────┬─────┬────────────────────────┐ │ Queue id │Groups │ Agents │Skill-based │Distribution│Max wait│Rules│ Description │ │ │ │ │distribution│ mode │ time │ │ │ ├───────────┼───────┼─────────┼────────────┼────────────┼────────┼─────┼────────────────────────┤ │eltex_queue│sales │agent:204│false │random │3600 │ │Входящие звонки в Элтекс│ │ │ │agent:205│ │ │ │ │ │ │ │ │agent:206│ │ │ │ │ │ └───────────┴───────┴─────────┴────────────┴────────────┴────────┴─────┴────────────────────────┘
Командой выше мы создали очередь, в которую добавили агентов с идентификаторами 2, 3 и 4. Максимальное время ожидания в ней 300 с (5 минут), ограничений на максимальную длину или предсказываемое время ожидания нет. Очередь имеет стратегию распределения random. Это значит, что каждый раз во время распределения оператор будет выбираться из списка свободных случайным образом.
Управление "callback" в очереди
Для управления "callback" используют следующие команды:
- для отображения общего количества "callback", а также очереди, в которой они находятся
/domain/<DOMAIN>/cc/queue/realtime/callback/info <QUEUE_ID> <CONVERSATION_CALLBACK_ID>
- для очистки очереди от "callback"
/domain/<DOMAIN>/cc/queue/realtime/callback/terminate <QUEUE_ID> <CONVERSATION_CALLBACK_ID>
где
- <QUEUE_ID> — имя очереди;
- <DOMAIN> — имя виртуальной АТС, которой принадлежит абонент(ы);
- <CONVERSATION_CALLBACK_ID> — идентификатор разговора, для удаления конкретного "callback" из очереди .
Пример вывода команды callback/info:
Callbacks conversations:
┌─┬──────────────┬────────────────┬───────┬────────┬────────┬──────┬───────────────────┬────────┬────────────┐
│N│ Caller │CoonversationId │Status │Workitem│Priority│Skills│ Start │Duration│Distribution│
│ │ │ │ │ id │ │ │ time │ │ count │
├─┼──────────────┼────────────────┼───────┼────────┼────────┼──────┼───────────────────┼────────┼────────────┤
│1│150(Test) │0672e726d58b9c8d│waiting│ │1 │ │2025/04/26 11:19:57│00:00:22│1 │
│ │callback │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │
│2│105(Test 2) │0672e727837b06f4│waiting│ │1 │ │2025/04/26 11:20:08│00:00:11│1 │
│ │callback │ │ │ │ │ │ │ │ │
└─┴──────────────┴────────────────┴───────┴────────┴────────┴──────┴───────────────────┴────────┴────────────┘
Total: 2
Настройка ограничений для нагрузки Call-центра
Для повышения отказоустойчивости Call-центра под большими нагрузками была реализована система ограничений. Настройка и просмотр параметров осуществляется с помощью команд CoCon.
enabled— данный параметр определяет, включен ли механизм ограничений нагрузки Call-центра. При включении механизма применяются все заданные ограничения, при отключении — ограничения не примняются. Значение по-умолчанию false.call_limit— ограничение общего числа вызовов в Call-центре. Ограничение дейсвует на суммарное число вызовов из всех очередей домена. Значение по-умолчанию infinity.cps— ограничение по предельному CPS (числу вызовов в секунду) в Call-центре. Значение по-умолчанию infinity.cps_limits— ограничение по CPS в зависимости от количества вызовов в Call-центре. Несмотря на то, что система может обрабатывать большое число одновременных вызовов, интенсивная нагрузка (CPS) может привести к нестабильной работе КЦ. Ограничение представлено в виде списка правил "при числе вызовов в КЦ больше, чем X, максимальный cps равен Y". X — это количество вызовов в КЦ, при котором будет срабатывать это правило (насколько должно быть занято ограничениеcall_limit), а Y — максимально допустимый CPS в КЦ, который должен быть при X. Y может принимать значение default, в таком случае оно равно ограничениюcps. Значение по-умолчанию AC > 0 -> default.
Пример настройки:
/domain/eltex/cc/restrictions/set enabled true /domain/eltex/cc/restrictions/set cps 20 /domain/eltex/cc/restrictions/set call_limit 2100 /domain/eltex/cc/restrictions/set cps_limits add 0 default /domain/eltex/cc/restrictions/set cps_limits add 500 15 /domain/eltex/cc/restrictions/set cps_limits add 1000 10 /domain/eltex/cc/restrictions/set cps_limits add 1500 5 /domain/eltex/cc/restrictions/set cps_limits add 1800 3 /domain/eltex/cc/restrictions/set cps_limits add 2000 0
Результат выполнения команды для просмотра ограничений:
/domain/eltex/cc/restrictions/info ┌──────────┬──────┬─────────────────┐ │ Property │Domain│ Value │ ├──────────┼──────┼─────────────────┤ │call_limit│eltex │2100 │ │cps │eltex │20 │ │cps_limits│eltex │AC > 0 -> default│ │ │ │AC > 500 -> 15 │ │ │ │AC > 1000 -> 10 │ │ │ │AC > 1500 -> 5 │ │ │ │AC > 1800 -> 3 │ │ │ │AC > 2000 -> 0 │ │enabled │eltex │true │ └──────────┴──────┴─────────────────┘
Это означает, что до 500 одновременных вызовов в Call-центре будет дейстовать дефолтное ограничение по CPS, а именно, 20 вызовов в секунду, после чего постепенно будет снижаться до 15, 10, 5 и т.д. при достижении заданного количества вызовов.
После достижения 2000 одновременных вызовов, вызовы в Call-центр поступать не будут. При уменьшении количества вызовов, максимальный CPS будет, наоборот, повышаться.
Для просмотра установленных системой ограничений в реальном времени используется команда:
/domain/eltex/cc/queue/realtime/cc-load Success: ┌────────┬─────────────┬───┬─────────┬────────┬───┬────────────┐ │Property│Current usage│Top│Requested│Rejected│RPS│RPS rejected│ ├────────┼─────────────┼───┼─────────┼────────┼───┼────────────┤ │cc-cp │508/2'100 │508│592 │0 │0 │- │ │cc-cps │5/15 │11 │592 │0 │5 │0 │ └────────┴─────────────┴───┴─────────┴────────┴───┴────────────┘
Создание операторов и супервизоров в CoCon CLI
Очередь может работать как с обычными телефонными номерами, так и расширенными операторами, обладающими дополнительными возможностями. Для того чтобы добавить расширенного оператора, его нужно предварительно создать.
Команды по управлению агентами в Сall-центре см. в разделе Команды управления агентами.
Пример 1:
Создадим нового оператора. Для создания оператора необходимо явно указать его целочисленный идентификатор. Этот идентификатор будет использоваться для входа в АРМ и управления оператором с телефонного аппарата.
/domain/test_domain/cc/agent/declare 1 password = 1111, group = test, display_name = Agent_001 Agents declared: 1
Посмотреть список операторов можно с помощью команды list:
/domain/test_domain/cc/agent/list ┌────────┬─────────────┬────────────┬───────┬──────────┬───────────┬────────┬────────┬───────┬────┬──────┐ │Agent id│Agent profile│Display name│ Group │Supervisor│Description│ Auto │Working │ Auto │Load│Skills│ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼────────────┼───────┼──────────┼───────────┼────────┼────────┼───────┼────┼──────┤ │1 │operator │Agent_001 │test │ │ │0 │120 min.│inf │1 │ │ └────────┴─────────────┴────────────┴───────┴──────────┴───────────┴────────┴────────┴───────┴────┴──────┘
Если не указывать группу, то оператору автоматически будет выставлена группа по умолчанию —default.
Если мы не укажем пароль данному оператору, то такой оператор не сможет выполнить вход в систему.Редактирование свойств оператора.
Свойства оператора можно редактировать после его создания:
/domain/test_domain/cc/agent/set 1 skills [medicine:4] ok Configuration changes will be applied after re-login /domain/test_domain/cc/agent/list ┌────────┬─────────────┬────────────┬───────┬──────────┬───────────┬────────┬────────┬───────┬────┬──────────┐ │Agent id│Agent profile│Display name│ Group │Supervisor│Description│ Auto │Working │ Auto │Load│ Skills │ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼────────────┼───────┼──────────┼───────────┼────────┼────────┼───────┼────┼──────────┤ │1 │operator │Agent_001 │test │ │ │0 │120 min.│inf │1 │medicine:4│ └────────┴─────────────┴────────────┴───────┴──────────┴───────────┴────────┴────────┴───────┴────┴──────────┘
В именах и описании можно использовать кириллицу./domain/test_domain/cc/agent/set 1 display_name Агент_001 ok Configuration changes will be applied after re-login /domain/test_domain/cc/agent/list ┌────────┬─────────────┬────────────┬───────┬──────────┬───────────┬────────┬────────┬───────┬────┬──────────┐ │Agent id│Agent profile│Display name│ Group │Supervisor│Description│ Auto │Working │ Auto │Load│ Skills │ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼────────────┼───────┼──────────┼───────────┼────────┼────────┼───────┼────┼──────────┤ │1 │operator │Агент_001 │test │ │ │0 │120 min.│inf │1 │medicine:4│ └────────┴─────────────┴────────────┴───────┴──────────┴───────────┴────────┴────────┴───────┴────┴──────────┘
Мы можем создавать несколько операторов одной командой с помощью интервала:/domain/test_domain/cc/agent/declare {2-9} password = 1111,group = test Agents declared: 9, 8, 7, 6, 5, 4, 3, 2 /domain/test_domain/cc/agent/list ┌────────┬─────────────┬────────────┬─────┬──────────┬───────────┬────────┬────────┬───────┬────┬──────────┐ │Agent id│Agent profile│Display name│Group│Supervisor│Description│ Auto │Working │ Auto │Load│ Skills │ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼────────────┼─────┼──────────┼───────────┼────────┼────────┼───────┼────┼──────────┤ │1 │operator │Агент_001 │test │ │ │0 │120 min.│inf │1 │medicine:4│ │2 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │3 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │4 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │5 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │6 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │7 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │8 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │9 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ └────────┴─────────────┴────────────┴─────┴──────────┴───────────┴────────┴────────┴───────┴────┴──────────┘Мы получили простейшую конфигурацию операторов Call-центра с группой test, все операторы имеют дефолтный агент-профиль – "operator". Для создания группы не требуется предпринимать какие-либо дополнительные действия. Если при создании оператора указать имя группы, которое ранее не использовалось, будет создана новая группа.
Для оператора-супервизора необходимо поменять дефолтный агент-профиль "operator" на "supervisor". Для этого выполнить команду:/domain/<domain>/cc/agent/set <Agent id> agent_profile supervisorCODEПример:
/domain/test_domain/cc/agent/set 1 agent_profile supervisor ok Configuration changes will be applied after re-login /domain/test_domain/cc/agent/list ┌────────┬─────────────┬────────────┬─────┬──────────┬───────────┬────────┬────────┬───────┬────┬──────────┐ │Agent id│Agent profile│Display name│Group│Supervisor│Description│ Auto │Working │ Auto │Load│ Skills │ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼────────────┼─────┼──────────┼───────────┼────────┼────────┼───────┼────┼──────────┤ │1 │supervisor │Агент_001 │test │ │ │0 │120 min.│inf │1 │medicine:4│ │2 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │3 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │4 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │5 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │6 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │7 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │8 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ │9 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ └────────┴─────────────┴────────────┴─────┴──────────┴───────────┴────────┴────────┴───────┴────┴──────────┘CODEВ дальнейшем для изменения свойств созданных операторов мы можем использовать команду
set. Однако стоит отметить, что свойства оператора применяются и будут видны в АРМ только после повторного входа в систему.
Настройка профиля агента КЦ
После установки в системе автоматически создаются два агент-профиля – "operator" и "supervisor". Профиль "operator" поддерживает только основной функционал, устанавливается по умолчанию всем агентам и не имеет дополнительных услуг. Профиль "supervisor" в дополнение к основному функционалу поддерживает и все доступные услуги. Отключать/добавлять услуги в дефолтных профилях "operator" и "supervisor" невозможно.
| Список услуг входящих в основной функционал | |
|---|---|
| Название услуги | Описание услуги |
| default | Основной функционал |
| queue_call | Возможность просмотра вызовов в очереди |
| operator_history | История вызовов оператора |
| operator_statistics | Статистика оператора |
| report_action | Сохранение и чтение отчетов оператора |
| call_record | Получить запись разговора в постобработке |
| fax | Обработка факса |
| conference | Организация конференции |
| agent_basic | Изменение статуса агента |
| force_distibute | Принудительное распределение разговора на себя |
| call_hold | Постановка на удержание |
| call_consult | Консультация |
| call_transfer | Перевод вызова |
| call_basic | Базовая обработка вызова в КЦ |
| messaging | Сообщение внутри группы от супервизора, email |
/domain/test_domain/cc/agent/profile/info Success: ┌──────────┬───────────────────────┬─────┬───────────────────────┐ │profile id│ features │scope│need supervisor licence│ ├──────────┼───────────────────────┼─────┼───────────────────────┤ │supervisor│call_history │all │true │ │ │supported_conversations│all │false │ │ │group_list │all │true │ │ │journal │all │true │ │ │intervention │all │false │ │ │supervise │all │true │ │ │block_operator │all │true │ │ │force_logout │all │true │ │ │conversations_manage │all │true │ │ │queues_manage │all │true │ │ │agents_manage │all │true │ │ │reports_schedule │all │true │ │operator │ │ │ │ └──────────┴───────────────────────┴─────┴───────────────────────┘
Профиль "supervisor" может быть установлен при создании оператора-супервизора с явным указанием профиля, либо позже заменен командой "set":
выполняется в CoCon
/domain/<domain>/cc/agent/declare <Agent id> agent_profile supervisor, ...
выполняется в CoCon
/domain/<domain>/cc/agent/set <Agent id> agent_profile supervisor
/domain/test_domain/cc/agent/declare 10 agent_profile = supervisor, password = 1111, display_name = Администратор, description = "Администратор КЦ" Agents declared: 10 /domain/test_domain/cc/agent/set 2 agent_profile supervisor ok Configuration changes will be applied after re-login /domain/test_domain/cc/agent/list ┌────────┬─────────────┬─────────────┬───────┬──────────┬────────────────┬────────┬────────┬───────┬────┬──────────┐ │Agent id│Agent profile│Display name │ Group │Supervisor│ Description │ Auto │Working │ Auto │Load│ Skills │ │ │ │ │ │ │ │complete│timeout │logout │ │ │ │ │ │ │ │ │ │timeout │ │timeout│ │ │ ├────────┼─────────────┼─────────────┼───────┼──────────┼────────────────┼────────┼────────┼───────┼────┼──────────┤ │1 │supervisor │Агент_001 │test │ │ │0 │120 min.│inf │1 │medicine:4│ │10 │supervisor │Администратор│default│ │Администратор КЦ│0 │120 min.│inf │1 │ │ │2 │supervisor │ │test │ │ │0 │120 min.│inf │1 │ │ │3 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ . . . │9 │operator │ │test │ │ │0 │120 min.│inf │1 │ │ └────────┴─────────────┴─────────────┴───────┴──────────┴────────────────┴────────┴────────┴───────┴────┴──────────┘
выполняется в CoCon
/domain/<domain>/cc/agent/profile/declare <PROFILE_ID>
/domain/<domain>/cc/agent/profile/add-feature <PROFILE_ID> <FEATURE_ID> <SCOPE>
Название услугиFEATURE_ID | Описание услуги | Область применения SCOPE | Требуется лицензия супревизора |
|---|---|---|---|
| call_history | Расширенная история вызова | all | да |
| supported_conversations | Мониторинг трансфера и участвующих в нем разговоров | all | нет |
| group_list | Список групп и статистика в реальном времени | all | да |
| journal | Журнал активности агентов | all | да |
| intervention | Вмешательство в разговор по номеру | all | нет |
| supervise | Супервайзинг - вмешательство в разговор | all или support | да |
| block_operator | Блокировка оператора | all | да |
| force_logout | Принудительный выход для оператора | all | да |
| conversations_manage | Управление разговорами очереди | all | да |
| queues_manage | Присоединение к очереди, управление составом очереди | all | да |
| agents_manage | Управление агентами | all | да |
| reports_schedule | Управление отчетами | all | да |
В текущей версии параметр "SCOPE" для услуги "supervise" принимает значения "all" (вмешательство во все вызовы) или "support" (вмешательство только в переведённые вызовы).
Для остальных услуг поддерживается только значение "all".
/domain/test_domain/cc/agent/profile/declare dispatcher Success: Profile with id "dispatcher" successfully declared /domain/test_domain/cc/agent/profile/add-feature dispatcher supported_conversations all Success: Feature "dispatcher" successfully added to profile "supported_conversations" /domain/test_domain/cc/agent/profile/add-feature dispatcher supervise all Success: Feature "dispatcher" successfully added to profile "supervise" /domain/test_domain/cc/agent/profile/add-feature dispatcher intervention all Success: Feature "dispatcher" successfully added to profile "intervention" /domain/test_domain/cc/agent/profile/info Success: ┌──────────┬───────────────────────┬─────┬───────────────────────┐ │profile id│ features │scope│need supervisor licence│ ├──────────┼───────────────────────┼─────┼───────────────────────┤ │supervisor│call_history │all │true │ │ │supported_conversations│all │false │ │ │group_list │all │true │ │ │journal │all │true │ │ │intervention │all │false │ │ │supervise │all │true │ │ │block_operator │all │true │ │ │force_logout │all │true │ │ │conversations_manage │all │true │ │ │queues_manage │all │true │ │ │agents_manage │all │true │ │ │reports_schedule │all │true │ │operator │ │ │ │ │dispatcher│supported_conversations│all │false │ │ │supervise │all │true │ │ │intervention │all │false │ └──────────┴───────────────────────┴─────┴───────────────────────┘
Профиль агентов можно создать/отредактировать в web приложении "Call-центр":
Профили "supervisor" и "operator" недоступны для создания/редактирования/удаления.



После создания агент-профиля его можно установить на ранее созданного агента:
В результате оператор 9 имеет больше полномочий чем оператор 5, а супервизор в свою очередь будет иметь все доступные полномочия:


Для завершения конфигурирования вновь созданных операторов осталось добавить в одну из очередей. Далее мы создадим расширенную очередь и добавим в неё наших операторов.
Настройка авторизации агентов Call-центра через LDAP/AD
Для авторизации агентов Call-центра через LDAP/AD необходимо сначала создать конфигурацию LDAP/AD в рамках домена, после чего на уровне настроек Call-центра необходимо указать, через какое соединение будет происходить авторизация агентов. Для этого необходимо выполнить команду:
/domain/<DOMAIN>/cc/properties/set ldap_server_id <LDAP_ID>
где
- <DOMAIN> — имя виртуальной АТС;
- <LDAP_ID> — идентификатор LDAP-сервера.
/domain/eltex/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/eltex/cc/properties/set ldap_authentication_enabled true Property "ldap_authentication_enabled" successfully changed from: false to true.
Затем, чтобы агент Call-центра мог авторизоваться в LDAP/AD, необходимо этому агенту прописать свойство ldap_username — имя учетной записи LDAP/AD:
/domain/<DOMAIN>/cc/agent/set <AGENT_ID> ldap_username <login>
где
- <DOMAIN> — имя виртуальной АТС;
- <AGENT_ID> — идентификатор абонента Call-центра;
- <login> — логин от Сall-центра, используемый в LDAP.
/domain/eltex/cc/agent/set 1 ldap_username test.user ok Configuration changes will be applied after re-login
После этого необходимо перелогинить абонента, и авторизация будет происходить по LDAP/AD.
Настройка интеграции Сall-центра и Redmine
В случае, если агенты для авторизации в Call-центре и Redmine используют единые данные с LDAP-сервера, возможно настроить интеграцию Redmine и АРМ агента/супервизора. Для этого необходимо в свойствах агента выставить параметр:
/domain/<DOMAIN>/cc/agent/set <AGENT_ID> integration\redmine <native>
/domain/eltex/cc/agent/set 3 integration\redmine <native> ok