Функция диалплана Asterisk: QUEUE_VARIABLES

Функция Asterisk QUEUE_VARIABLES возвращает предустановленные переменные с информацией о состоянии очереди.

Описание

Доступны перечисленные ниже переменные.
Возвращает '0' если очередь найдена и setqueuevar определена, '-1' в противном случае.

Синтаксис

QUEUE_VARIABLES(queuename)

Аргументы

  • queuename
  • variables:
    • QUEUEMAX - Максимально разрешенное кол-во вызовов в очереди.
    • QUEUESTRATEGY - Стратегия очереди.
    • QUEUECALLS - Кол-во вызовов в очереди в данный момент.
    • QUEUEHOLDTIME - Среднее время ожидания в очереди на данный момент.
    • QUEUECOMPLETED - Кол-во отвеченных вызовов.
    • QUEUEABANDONED - Кол-во отвергнутых (неотвеченных) вызовов.
    • QUEUESRVLEVEL - Заданный уровень обслуживания очереди.
    • QUEUESRVLEVELPERF - Текущий уровень обслуживания очереди.
Пример:

Запишем в БД текущее состояние очереди при поступлении нового вызова в очередь.
Ключи Fc команды QUEUE велят продолжить выполнения диалплана, если вызывающий или вызываемый, соответственно, завершают вызов.

exten => _488X,1,Queue(${EXTEN},Fc)
   same => n,set(QUEUE_VARIABLES(${EXTEN})) 
   same => n,Goto(queue-variables,s,1)

[queue-variables]     
exten => s,1,Noop()    
   same => n,set(REALTIME(queue_adv,queue,${queue},queuesrvlevelperf)=${QUEUESRVLEVELPERF})
   same => n,set(REALTIME(queue_adv,queue,${queue},queueabandoned)=${QUEUEABANDONED})
   same => n,set(REALTIME(queue_adv,queue,${queue},queuecompleted)=${QUEUECOMPLETED})
   same => n,set(REALTIME(queue_adv,queue,${queue},queueholdtime)=${QUEUEHOLDTIME})
   same => n,set(REALTIME(queue_adv,queue,${queue},queuecalls)=${QUEUECALLS})
   same => n,hangup

вывод консоли

вывод консоли

    -- Executing [4884@from-fs-pjsip:2] Set("PJSIP/fs_pjsip-00000028", "QUEUE_VARIABLES(4884)") in new stack
[2016-10-13 15:38:25] WARNING[30354][C-00000029]: pbx_variables.c:1096 pbx_builtin_setvar: Set requires an '=' to be a valid assignment.
    -- Executing [4884@from-fs-pjsip:3] Set("PJSIP/fs_pjsip-00000028", "ARRAY(_queue,queuecalls,queueholdtime,queuecompleted,queueabandoned,queuesrvlevelperf)=4884,0,8,12,1,33.3") in new stack
    -- Executing [4884@from-fs-pjsip:4] Goto("PJSIP/fs_pjsip-00000028", "queue-variables,s,1") in new stack
    -- Goto (queue-variables,s,1)
    -- Executing [s@queue-variables:1] NoOp("PJSIP/fs_pjsip-00000028", "") in new stack
    -- Executing [s@queue-variables:2] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuesrvlevelperf)=33.3") in new stack
    -- Executing [s@queue-variables:3] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queueabandoned)=1") in new stack
    -- Executing [s@queue-variables:4] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuecompleted)=12") in new stack
    -- Executing [s@queue-variables:5] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queueholdtime)=8") in new stack
    -- Executing [s@queue-variables:6] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuecalls)=0") in new stack
    -- Executing [s@queue-variables:7] Hangup("PJSIP/fs_pjsip-00000028", "") in new stack
  == Spawn extension (queue-variables, s, 7) exited non-zero on 'PJSIP/fs_pjsip-00000028'

запись в БД

 select * from queuelog_adv;
+-------+------------+---------------+----------------+----------------+-------------------+
| queue | queuecalls | queueholdtime | queuecompleted | queueabandoned | queuesrvlevelperf |
+-------+------------+---------------+----------------+----------------+-------------------+
| 4884  | 0          | 8             | 12             | 1              | 33.3              |
+-------+------------+---------------+----------------+----------------+-------------------+
1 row in set (0.00 sec)

Asterisk: функции диалплана

~~socialite~~

Только авторизованные участники могут оставлять комментарии.
  • asterisk/func/queue_variables.txt
  • Последние изменения: 2016/12/17