Asterisk. Конфигурационный файл queues.conf.

Asterisk предоставляет возможность организации центра обработки вызовов через свою систему очередей вызовов. Настройки такой системы будут располагаться в файле queues.conf.

В разделе [general] файла queues.conf располагаются настройки применяемые ко всем очередям вызовов.
Общие параметры.

persistentmembers
если присвоено значение yes, участник, добавляемый в систему посредством приложения AddQueueMember() или интерфейса Asterisk Manager, будет храниться в AstDB и, следовательно, сохраняться при перезагрузках системы.

autofill (автозаполнение)
позволяет более эффективно распределять звонки между участниками обработки очереди вызовов, особенно если в очереди находятся несколько вызывающих абонентов и несколько агентов обработки вызовов могут принять звонок. Рекомендуется задавать для autofill значение yes.

MonitorType (тип записи разговора).
Если задано значение MixMonitor, входящий и исходящий звуковые потоки будут записываться вместе. Если задано значение Monitor, будет использоваться более старый метод записи входящего и исходящего аудиопотоков в разных файлах.

Далее можно описать одну или более очередей, указывая имя очереди в квадратных скобках ([ ]).

Параметры очередей.

musiconhold (музыка во время ожидания)
Позволяет задавать класс музыки во время ожидания (сконфигурированный в файле musiconhold.conf), используемый для очереди.

announce (приветствие)
Когда вызов представляется участнику обработки очереди вызовов, этому агенту будет воспроизведено приглашение, заданное параметром announce, перед установлением соединения с вызывающим абонентом. Можно задать или полный путь к файлу, или путь относительно папки /var/lib/asterisk/sounds/.

strategy (стратегия)
Asterisk может использовать шесть стратегий распределения вызовов между агентами:

  • ringall (звонить всем) - Очередь звонит всем доступным агентам и устанавливает соединение с агентом, ответившим первым (это по умолчанию).
  • roundrobin (циклический) – устаревший - Очередь последовательно перебирает всех агентов до тех пор, пока не найдет того, кто может принять вызов. roundrobin не учитывает загруженности агентов. Также, поскольку roundrobin - Всегда начинает с первого агента в очереди, эта стратегия подходит только в среде, где агенты более высокого ранга должны обрабатывать все вызовы, и только в случае их занятости принять вызов могут агенты с более низким рангом.
  • leastrecent (самый давний) Вызов направляется на обработку агенту, который не получал вызовы дольше всех.
  • fewestcalls (меньше всего вызовов) Вызов направляется на обработку агенту, который получил меньше всего звонков. Эта стратегия не учитывает фактической загруженности агента; она учитывает только количество принятых им вызовов (например, агент, принявший 3 вызова по 10 мин каждый, будет предпочтительнее агента, принявше- го 5 вызовов по 2 мин каждый).
  • random (случайный) Как следует из имени этого параметра, выбор агента осуществляется случайным образом. Для небольшого центра обработки вызовов эта стратегия, вероятно, наиболее предпочтительная.
  • rrmemory Очередь перебирает список обработчиков очереди вызовов, отслеживая, кто из них получил вызов последним. При поступлении следующего вызова Asterisk начнет с этого участника. (Эта стратегия известна как циклическая память (round-robin memory)). Она обеспечивает более или менее равномерное распределение вызовов между агентами.

servicelevel (уровень обслуживания)
В центре обработки вызовов уровень обслуживания представляет максимальное время ожидания вызывающего абонента перед тем, как его звонок будет передан на обработку агенту. Например, если для servicelevel задано значение 60 и показатель уровня обслуживания равен 80%, это означает, что 80% поступивших в очередь вызовов были переданы агентам в течение менее 60 с.

context
Если для очереди задан контекст, вызывающий абонент, нажав всего одну цифру, сможет выйти на соответствующий добавочный номер в заданном контексте, если тот существует. Это действие выводит вызывающего абонента из очереди вызовов, то есть он потеряет свое место в очереди – об этом необходимо помнить при использовании данной функции.

timeout
Значение timeout определяет максимальную продолжительность попыток дозвониться агенту (в секундах), по истечении которого агент будет признан недоступным, а вызов будет возвращен в очередь.

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

weight (вес)
Параметр weight определяет ранг очереди вызовов. Если вызовы ожидают в нескольких очередях, первыми агентам будут предлагаться очереди с большим значением weight. При проектировании очередей вызовов необходимо помнить следующее: эта стратегия может привести к тому, что вызов из очереди с самым низким весом никогда не получит ответа. Всегда необходимо гарантированно обеспечить перевод вызовов из очередей с более низким весом в очереди с более высоким весом, чтобы не допустить бесконечного ожидания ответа.

maxlen (максимальная длина)
Максимальное количество вызовов, которое может быть добавлено в данную очередь, прежде чем вызов перейдет к следующему приоритету текущего добавочного номера.

announce-frequency (частота объявлений)
Определяет, как часто вызывающему абоненту объявляется его место в очереди вызовов и предполагаемое время ожидания.

announce-holdtime (объявить время ожидания)
Существует три допустимых значения этого параметра: yes, no и once. Параметр announce-holdtime определяет, должно ли быть включено предполагаемое время ожидания в объявление места в очереди вызовов. Если задано значение once, оно будет озвучено для вызывающего абонента только один раз.

monitor-format (формат записи)
Этот параметр принимает три возможных значения: wav, gsm и wav49. Активируя эту опцию, вы сообщаете Asterisk о своем желании записывать все выполненные вызовы в очереди в заданном формате. Если эта опция не задана, звонки не будут записываться.

monitor-join (объединить запись)
Приложение Monitor() в Asterisk обычно выполняет запись каждого из направлений разговора в отдельный файл. Задавая параметру monitor-join значение yes, мы указываем Asterisk объединять эти файлы в конце разговора. Этот параметр следует задавать, только если задан параметр MonitorType для приложения Monitor.

joinempty
Этот параметр принимает три значения: yes, no и strict. Позволяет определять возможность добавления вызывающих абонентов в очередь вызовов на основании статуса участников обработки очереди. Опция strict запретит добавление вызывающих абонентов в очередь, если все участники обработки вызовов недоступны.

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

eventwhencalled (событие при поступлении вызова)
Задайте для eventwhencalled значение yes, если вы хотите, чтобы события очереди передавались в интерфейс Manager. eventmemberstatusoff (отключить формирование дополнительной ин- формации). Задав для этого параметра значение no, можно обеспечить формирование дополнительной информации о каждом участнике обработки очереди вызовов.

reportholdtime (сообщить время ожидания)
Если для этого параметра задано значение yes, участнику обработки очереди вызовов, ответившему на звонок, будет объявлено, сколько времени вызывающий абонент ожидал соединения.

memberdelay (задержка участника)
Этот параметр определяет, будет ли задержка между моментом выявления очередью свободного агента и моментом соединения вызова с этим агентом.

member => имя_участника
Участниками обработки очереди могут быть или типы каналов, или агенты. Все агенты, перечисленные здесь, должны быть описаны в файле agents.conf.

Пример файла.
[general]

persistentmembers = yes

[queue_test1]

reportholdtime=yes

member => Agent/user1
member => Agent/user2
member => Agent/user3
member => Agent/user4
member => Agent/user5

[queue_test2]

monitor-format=wav
monitor-join
strategy = ringall

member => Agent/user1
member => Agent/user2
member => Agent/user3
member => Agent/user4
member => Agent/user5

[test]

context=qtest
announce-frequency=5
periodic-announce-frequency=5
announce-holdtime=yes
announce-round-seconds=10
reportholdtime=yes

queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-seconds = queue-seconds
queue-thankyou = queue-thankyou
queue-lessthan = queue-less-than
queue-reporthold = queue-reporthold
periodic-announce = queue-periodic-announce

member => SIP/operator

 

См. также: Приложение Queue

 

Использовались некоторые материалы из книги "Asterisk : будущее телефонии". Второе издание.