Asterisk. Команда Queue.

Queue() - Помещает текущий вызов в заданную очередь вызовов.

Queue(имяочереди[,опции[,URL[,переопределитьприветствие[,времяожидания[,AGI]]]]])

Помещает входящий вызов в очередь вызовов, заданную аргументом имяочереди, соответственно описанию в файле queues.conf.

Аргумент опции может содержать нуль или более следующих символов:

  • d - Устанавливается вызов качества данных (модемный), то есть с минимальной задержкой.
  • h - Вызываемый абонент получает возможность разорвать соединение нажатием кнопки *.
  • H - Вызывающий абонент получает возможность разорвать соединение нажатием кнопки *.
  • i - Запросы на пересылку вызова, поступающие от участников очереди, игнорируются, при поступлении таких запросов никакие действия не выполняются.
  • n - Повторные попытки по истечении времени ожидания запрещены; происходит выход из этого приложения, и выполнение переходит к следующему шагу.
  • r - Вместо музыки во время ожидания вызывающий абонент будет слышать гудки.
  • t - Вызванный абонент получает возможность переадресовывать вызов.
  • T - Вызывающий абонент получает возможность переадресовывать вызов.
  • w - Вызванный абонент получает возможность записывать разговор на диск.
  • W - Вызывающий абонент получает возможность записывать разговор на диск.

 

Кроме переадресации, вызов может быть припаркован, а затем на него может ответить другой абонент.
Аргумент переопределитьприветствие переопределяет стандартное приветствие, воспроизводимое агентам обработки очереди перед тем, как они ответят на указанный вызов.
Необязательный URL будет отправлен вызываемой стороне, если канал поддерживает это.
Соответственно аргументу времяожидания вызов будет ожидать ответа в течение заданного промежутка времени, который проверяется между каждым циклом, заданным параметрами timeout и retry в файле queues.conf. Обработка вызова продолжится со следующего приоритета диалплана.
По завершении это приложение задает переменную канала QUEUESTATUS. Ей может быть задано одно из следующих значений:

  • TIMEOUT (время ожидания) - Вызов находился в очереди слишком долго, и время ожидания истекло. 
  • FULL (полная) - Очередь была уже заполнена. См. настройку очереди maxlen в файле queues.conf.
  • JOINEMPTY (присоединился к пустой) - Вызывающий абонент не мог быть поставлен в очередь, поскольку не было участников, которые могли бы ответить на звонок. См. настройку очереди joinempty в файле queues.conf.
  • LEAVEEMPTY (покинул пустую) - Вызывающий абонент был поставлен в очередь, но затем все участники обработки очереди покинули ее. См. настройку очереди leavewhenempty в файле queues.conf.
  • JOINUNAVAIL (присоединился к недоступной) - Вызывающий абонент был поставлен в очередь, но затем все участники обработки очереди стали недоступными. См. настройку очереди leavewhenempty в файле queues.conf.

Пример:

; помещаем вызывающего абонента в очередь techsupport
exten => 123,1,Answer()
exten => 123,2,Queue(techsupport,t)

 

См. также: AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember()AgentLogin(), queues.conf, QUEUE_MEMBER_COUNT, QUEUE_MEMBER_LIST,
QUEUE_WAITING_COUNT