Очереди звонков в Asterisk'е
Администратор,

Очереди звонков состоят из:
- Входящих звонков, которые ставятся в очередь
- Участников (расширения системы или пользователи, которые вошли в систему как агенты), которые отвечают на звонки
- Алгоритм по которому обрабатывается очередь и звонки распределяются между участниками
- Музыка, которая играет во время ожидания в очереди
- Объявления для участников и звонящих
Очереди описываются в файле queues.conf или непосредственно в реальном времени (dynamic realtime). Последний вариант позволяет сохранять настройки непосредственно в базе данных, по этому, изменения сразу вступают в силу для звонящих и исчезает нужда в перезагрузке.
- Агенты (Agents) это люди (или один человек) которые отвечают на звонок (звонки), которые были поставлены в определённую очередь. Агент заходит в систему, указывая, что он или она теперь готов отвечать на звонки. Asterisk перенаправит входящий звонок в очередь, из которой, он потом будет перенаправлен не занятому агенту.
- Участники (Members) это те каналы, которые отвечают на звонки из очереди. Это могут быть агенты или стандартные каналы, такие как "sip/snom23"
Новое в Asterisk v1.2
Очередь теперь считается пустой, не только если в ней нет участников, но и если не один из участников не доступен (например, агенты не зашли в систему). Что бы восстановить изначальное поведение, используйте "leavewhenempty=strict" или "joinwhenempty=strict" вместо "=yes" для этих настроек.
Сейчас возможно использовать многознаковые расширения при выходи из очереди (так же у вас не должно быть перекрывающихся расширений, потому что, не существует знакового таймаута). Это значит что событие EXITWITHKEY в queue_log может содержать более одного символа в поле ключа (key field).
Участники
Участниками могут быть каналы связи, например, IP телефоны подключённые к Asterisk. Вы также можете определить любого человека как участника, он сможет подключится к системе и принимать звонки.
Агенты определены в файле agents.conf. Агенты могут заходить в систему с других телефонов, при этом использовать расширение, которое использует agentlogin приложение.
Алгоритмы
Звонки распределяются между отвечающими на звонки из очереди, по одному из следующий алгоритмов, определённых в queues.conf:
- ringall: звонить по всем доступным каналам пока один не ответит (по умолчанию)
- roundrobin: звонить по очереди каждому доступному (не используется начиная с 1.4, используйте rrmemory)
- leastrecent: перенаправить звонок на канал который самое долгое время не отвечал на звонки
- fewestcalls: звонить по каналу который ответил на наименьшее количество звонков из очереди
- random: звонить по случайному каналу
- rrmemory: перенаправить звонок на канал следующий после канала который отвечал на прошлый звонок (см. roundrobin)
Пользовательское меню
Вы можете определить пользовательское меню, для тех звонков которые находятся в очереди. Для этого меню вы можете использовать только однозначные числа. Определите настройки меню в конфигурации очереди, что бы активировать эту возможность.
Наказание
Звонящим (участникам очереди) можно определять наказание, примеры:
Если алгоритм распределения звонков определён как 'ringall', тогда только звонки с наименьшим приоритетом будут соеденины с доступными каналами. В примере выше, если 200 не занят, тогда только он будет звонить. Если 200 занят, тогда только 201 и 203 будет звонить. Если 200, 201 и 203 заняты, тогда 202 будет звонить.
Каскадные очереди
Вы можете определить серии очередей, которые перекрывают друг друга. Вы можете получить эффект схожий с эффектом наказаний, но серии очередей могут быть полезными в некоторых ситуациях. Например, перенаправлять звонки, которые "звонят" вашему секретарю, вам в офис, когда тот занят.
Первое что вы должны сделать, при поднятие каскадных очередей, это настроить таймаут для очереди. Это делается, передавая параметр для команды Queue, используемой в extensions.conf (пример: Queue(dave|t||45)).
Новые возможности
Queue() поддерживает наказание (penalty), wrapuptime и приоритет(priority), эти функции были добавлены в систему очередей Asterisk'а. Приоритет работает следующим образом:
Новый функционал даёт возможность управлять очередями по их приоритетности, в добавление к FIFO. Это даёт вам возможность перемещать место звонка в очереди, по его приоритетности.