Организация любого Call-центра начинается с правильной организации очередей. В статье рассмотрим конфигурацию и примеры необходимых настроек через командную строку (правка конфигурационных файлов). Настройку через FreePBX рассматривать не будем.
Команды выполняются из консоли asterisk:
asterisk -c || asterisk -r
1. Просмотр очередей и их статуса:
> queue show
Пример ответа:
support has 0 calls (max unlimited) in ‘ringall’ strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s Members: SIP/102 with penalty 1 (ringinuse enabled) (Unavailable) has taken no calls yet SIP/101 with penalty 1 (ringinuse enabled) (Not in use) has taken no calls yet No Callers
* в данном примере в очереди зарегистрировано 2 оператора и нет звонков (No Callers)
2. Просмотр конкретной очереди:
> queue show support
3. Количество звонков в очереди.
Смотрим вышеописанной командой:
При наличие активных вызовов, мы увидим что-то на подобие:
… Callers: 1. SIP/101-000000be (wait: 0:01, prio: 0)
4. Перезапуск очереди:
Синтаксис:
> queue reload <параметр> [<имя очереди>]
* возможны следующие параметры:
* если имя очереди не указано, перезапуск выполняется для всех очередей.
Пример:
> queue reload all
Очередь создается и настраивается в конфигурационном файле queues.conf:
vi /etc/asterisk/queues.conf
И добавляем:
[support]strategy = ringallannounce-frequency = 45
* в данном примере мы создаем очередь с названием support и стратегией ringall (одновременный звонок всем операторам).* чтобы создать очередь, достаточно определить только стратегию (strategy).
Открываем консоль Asterisk и перечитываем конфиги:
asterisk -c
> core reload
Опции, которые применяются для настройки создаваемой очереди:
Перечисленные выше опции имеют отношение к конкретной очереди. Также, в Asterisk можно настроить общие для всех очередей опции — они размещаются в секции [general]. Некоторые из них пересекаются с параметрами очереди — в таком случае приоритет будет за параметром последней.
Перечень глобальных опций:
Пользователей, которые отвечают на звонки очереди называют агентами или операторами. Есть два типа агентов — статические и динамические. Первые прописываются в конфигурационном файле queues.conf, вторые — могут присоединятся к очереди, становясь на некоторое время оператором.
Для создания статического оператора, открываем конфигурационный файл очереди:
В настройках очереди добавляем:
[support]strategy = ringallmember => SIP/101,1
* в данном примере, мы добавили оператора к нашей очереди. Это sip агент с именем 101. 1 на конце — пенальти (используется для выставления приоритета при использовании некоторых стратегий).
Перечитываем все конфигурационные файлы:
asterisk -x “core reload”
Динамические агенты могут присоединиться к очереди в любой момент набором специального сочетания кнопок на телефонном аппарате. Настройка сервера выполняется в конфигурационном файле диалплана:
vi /etc/asterisk/extensions.conf
exten => *999#,1,Verbose(2,Adding dynamic member to support queue) same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)}) same => n,AddQueueMember(support,${MemberInfo}) same => n,Playback(agent-loginok) same => n,Hangup()
exten => *888#,1,Verbose(2,Removing dynamic member from support queue.) same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)}) same => n,RemoveQueueMember(support,${MemberInfo}) same => n,Playback(agent-loggedoff) same => n,Hangup()
* в данном примере, если агент набирает *999#, он присоединяется к очереди и может принимать вызовы. При наборе *888# агент выходит из очереди.* Verbose — вывод в консоль информации; Set — задает значение переменной, в данном примере, MemberInfo; AddQueueMember/RemoveQueueMember — соответственно, добавляет к очереди агента и удаляет из нее; Playback — проигрывает голосовой сигнал; Hangup — дает сигнал отбоя.
1. Общий пароль для всех агентов
Можно сделать так, чтобы Asterisk требовал от агентов ввод пароля для присоединения к очереди. Для этого наш диалплан приводим к такому виду:
exten => *999#,1,Verbose(2,Adding dynamic member to support queue) same => n,Authenticate(1234) same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)}) same => n,AddQueueMember(support,${MemberInfo}) same => n,Playback(agent-loginok) same => n,Hangup()
* где Authenticate — запрос пароля, в данном примере, 1234.
2. Индивидуальные пароли для каждого агента
Если необходимо, чтобы каждый агент перед входом вводил свои номер и пароль, необходимо воспользоваться приложением VMAuthenticate (аутентификация по электронному почтовому ящику). Настройку начнем с правки диалплана:
exten => *999#,1,Verbose(2,Adding a member to the cc_ege_support queue.) same => n,Read(AGENT_USERID,agent-user) same => n,VMAuthenticate(${AGENT_USERID}@vmauth) same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)}) same => n,AddQueueMember(support,${MemberInfo}) same => n,Playback(agent-loginok) same => n,Hangup()
* Read — запрашиваем данные у агента (agent-user — голосовой файл), и записываем в переменную AGENT_USERID; VMAuthenticate — запрашиваем пароль для почтового ящика ${AGENT_USERID} с контекстом vmauth.
Добавляем почтовые ящики:
vi /etc/asterisk/voicemail.conf
[vmauth]1001 => 1234, admins24, [email protected]1002 => 5678, admins242, [email protected]
* vmauth — контекст (его мы указали в диалплане); 1001/1002 — номера агентов; 1234/5678 — пароли.
Для применения настроек перечитываем диалплан:
asterisk -x “dialplan reload”
Чтобы при звонке на нужный нам номер звонящий попадал в нашу очередь, добавляем правило в диалплане:
exten => 111,1,Answer()exten => 111,n,Ringingexten => 111,n,Wait(2)exten => 111,n,Queue(support)exten => 111,n,Hangup
* где:
* в данном примере, при звонке на короткий номер 111 мы услышим на 2 секунды звонок, сигнализирующий, что мы дозвонились; после абонент направляется в нашу очередь support.
Перечитываем конфиг:
Для того, чтобы проиграло приветствие, редактируем наш диалплан, добавив функцию Playback после Answer:
exten => 111,1,Answer()exten => 111,n,Playback(queue-callswaiting)exten => 111,n,Ringing…
* где queue-callswaiting — название файла из каталога /var/lib/asterisk/sounds/<язык>/.
Перечитываем конфигурацию:
Мы можем создать два входящих номера, звонки на которые обрабатываются одной и той же очередью, но с разными приоритетами. Например, внутренние номера 120 и 130 — диалплан выглядит так:
exten => 120,1,Answer()exten => 120,1,Playback(welcome)exten => 120,n,Ringingexten => 120,n,Wait(2)exten => 120,2,SetVar(QUEUE_PRIO=100)exten => 120,3,Queue(support)exten => 120,n,Hangup
exten => 130,1,Answer()exten => 130,1,Playback(welcome)exten => 130,n,Ringingexten => 130,n,Wait(2)exten => 130,2,SetVar(QUEUE_PRIO=50)exten => 130,3,Queue(support)exten => 130,n,Hangup
* в данном примере, звонки на номер 120 являются более приоритетными; QUEUE_PRIO — собственно, и является переменной, в которой хранится значение приоритета звонка.
По умолчанию, Asterisk может идти с набором голосовых записей на английском языке. Они находятся в каталоге /var/lib/asterisk/sounds/en. Для добавления русского голоса, открываем список языковых архивов и копируем ссылку на архив с нужным языком:
Используя ссылку, скачиваем архив:
wget https://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-wav-current.tar.gz
Создаем каталог для нашего языка:
mkdir /var/lib/asterisk/sounds/ru
Распаковываем архив в созданную папку:
tar -xvf asterisk-core-sounds-ru-wav-current.tar.gz -C /var/lib/asterisk/sounds/ru/
В конфигурационном файле sip.conf добавим:
vi /etc/asterisk/sip.conf
language=ru
Перечитаем конфигурацию:
asterisk -x “sip reload”
При необходимости, чтобы язык менялся только для определенной очереди, менять настройку нужно в диалплане:
…exten => 111,n,Set(CHANNEL(language)=ru) …
И перезапустить dialplan:
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies