Quantcast
Channel: IP АТС Asterisk
Viewing all articles
Browse latest Browse all 1041

Asterisk queuerules.conf

$
0
0

Asterisk queuerules.conf

queuerules - правила позволяющие динамически изменять диапазон QUEUE_MIN_PENALTY - QUEUE_MAX_PENALTY,
в зависимости от времени ожидания вызывающего абонента.

Penalty

Каждый оператор очереди Asteriskимеет параметр penalty.
Пенальти может быть определен в настройках пользователя очереди:

  member ⇒ interface[,penalty][,membername][,state_interface][,ringinuse]

или при добавлении динамического агента:

  queue add member <dial string> to <queue> [[[penalty <penalty>] as <membername>] state_interface <interface>] 

Данный параметр определяет приоритет для посылки вызова на оператора, чем ниже пенальти, тем выше приоритет при выборе оператора для вызова.
Если пенальти не задан, то по умолчанию = 0

Предположим, очередь обслуживают 3 оператора с пенальти - 0,1 и 2 соответственно.
Первым будет вызван оператор с пенальти = 0 и только если он недоступен, оператор с пенальти = 1 и так далее.

Пенальти оператора может быть динамически изменен, например через CLI:

 queue set penalty <penalty> on <interface> [in <queue>]

или через AMI Actions QueuePenalty.

Перед тем как входящий вызов будет поставлен в очередь, можно задать переменные канала - QUEUE_MIN_PENALTY и QUEUE_MAX_PENALTY. Они укажут диапазон пенальти операторов очереди, для посылки вызова.
Например:

exten => s,1,NoOp(**penalty**)
   same = n,Set(QUEUE_MIN_PENALTY=1)
   same = n,Set(QUEUE_MAX_PENALTY=2)
   same = n,Queue(queue101)

Вызовы очереди queue101будут распределены между операторами с пенальти 1 и 2. Но предположим, что все операторы с пенальти 1 и 2 заняты или недоступны. В этом случае можно применить queuerules.

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

 defaultrule = myrule
 penaltychange => <время ожидания в секундах>,<абсолютное или относительное изменение QUEUE_MAX_PENALTY>[,абсолютное или относительное изменение QUEUE_MIN_PENALTY]

etc/asterisk/queuerules.conf

[myrule]
penaltychange => 30,+3   ; через 30 секунд ожидания в  увеличить QUEUE_MAX_PENALTY на +3, но не менять QUEUE_MIN_PENALTY;
penaltychange => 60,10,5 ; через 60 секунд ожидания в  установить значение QUEUE_MAX_PENALTY = 10 и установить QUEUE_MIN_PENALTY = 5;
penaltychange => 75,,7   ; через 75 секунд ожидания не изменять QUEUE_MAX_PENALTY, но установить QUEUE_MIN_PENALTY = 7;

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

Правила могут получаться в реальном времени из хранилища Realtime. Для это включите опцию в секции [general] конфига queuerules.conf:

 realtime_rules = yes

Данная опция не требует работы только c реалтайм базами данных.При выполнении команды queue reload rulesвсе правила, независимо от расположения в БД или конфигурационном файле, будут применены. При условии, что они имеют уникальные имена и правильную конфигурацию мин/макс пенальти.

В etc/asterisk/extconfig.confопределите таблицу БД в которой находятся правила:

 queue_rules => odbc,asterisk,queue_rules

И создайте таблицу в используемой БД.

rule_nametimemin_penaltymax_penalty
'default''10''20''30'
'queue1''20''30''55'
'queue2''25''-11''+1111'
'queue2''400''112''333'
'queue3''0''4564''46546'
'queue_rule''40''15''50'
Spoiler

Asterisk: AddQueueMember

Asterisk: PauseQueueMember

Asterisk: Queue

Asterisk: QueueLog

Asterisk: RemoveQueueMember

Asterisk: UnpauseQueueMember

function 'QUEUE_EXISTS'

function 'QUEUE_MEMBER'

function 'QUEUE_MEMBER_LIST'

function 'QUEUE_VARIABLES'

function 'QUEUE_WAITING_COUNT'

Asterisk:Лог очереди (queue) в mysql

FreePBX Queues

Asterisk Call Center Stats


Viewing all articles
Browse latest Browse all 1041

Trending Articles