AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Очистить очередь от звонков

Asterisk IP PBX 4 сообщений -
#1

Всем привет, есть ли команда с помощью которой можно сбросить звонки которые находятся в очереди.
Есть астериск с настроенной очередью, и временными группами, если вызов поступает с 9-18 часов то он попадает в очередь, в другое время проигрывается сообщение о нерабочем времени. Но если позвонить скажем в 17.55, а все операторы заняты, то вызов вешается на удержание, в 18.00 все операторы уходят домой, и люди находящиеся в очереди продолжают ждать ответа. Нужно сделать так, что бы абоненты которым ответили продолжали разговаривать, а остальные кто находится в очереди, после 18.00, или сбросить или проиграть что рабочий день закончился.
#2

Смотрите настройки очереди: leavewhenempty joinempty
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#3

Эти настройки, насколько я знаю, работают с динамическими агентами, у меня же астериск соединен с обычной АТС через поток Е1, и отслеживать статус агентов не может, поэтому остается только как то удалить всех ожидающих абонентов из очереди через cli команду.
#4

AlexZ писал(а):
работают с динамическими агентами

Это не так. Asterisk отслеживает состояние статических агентов:
Код:
queue_7_clientID_2 has 0 calls (max unlimited) in 'random' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
Operator-445 (Local/445@users_clientID_2) (Unavailable) has taken no calls yet
Operator-670 (Local/670@users_clientID_2) (Unavailable) has taken no calls yet

В данном случае оба номера обоих операторов не зареганы:
Код:
445 (Unspecified) D N A 0 Unmonitored
670 (Unspecified) D N A 0 Unmonitored

При таком раскладе отработает и joinempty и leavewhenempty если соблюдается:
Код:
joinempty = paused,invalid,unavailable
leavewhenempty = unavailable

В настройках очереди. Мануал:
Цитата:
; Asterisk has provided the "joinempty" and "leavewhenempty" options for a while
; with tenuous definitions of what they actually mean. The "joinempty" option controls
; whether a caller may join a queue depending on several factors of member availability.
; Similarly, then leavewhenempty option controls whether a caller may remain in a queue
; he has already joined. Both options take a comma-separated list of factors which
; contribute towards whether a caller may join/remain in the queue. The list of
; factors which contribute to these option is as follows
:
;
; paused: a member is not considered available if he is paused
; penalty: a member is not considered available if his penalty is less than QUEUE_MAX_PENALTY
; inuse: a member is not considered available if he is currently on a call
; ringing: a member is not considered available if his phone is currently ringing
; unavailable: This applies mainly to Agent channels. If the agent is a member of the queue
; but has not logged in, then do not consider the member to be available
; invalid: Do not consider a member to be available if he has an "invalid" device state.
; This generally is caused by an error condition in the member's channel driver.
; unknown: Do not consider a member to be available if we are unable to determine the member's
; current device state.
; wrapup: A member is not considered available if he is currently in his wrapuptime after
; taking a call.
;
; For the "joinempty" option, when a caller attempts to enter a queue, the members of that
; queue are examined. If all members are deemed to be unavailable due to any of the conditions
; listed for the "joinempty" option, then the caller will be unable to enter the queue. For the
; "leavewhenempty" option, the state of the members of the queue are checked periodically during
; the caller's stay in the queue. If all of the members are unavailable due to any of the above
; conditions, then the caller will be removed from the queue.
; Some examples:
;
;joinempty = paused,inuse,invalid
;
; A caller will not be able to enter a queue if at least one member cannot be found
; who is not paused, on the phone, or who has an invalid device state.
;
;leavewhenempty = inuse,ringing
;
; A caller will be removed from the queue if at least one member cannot be found
; who is not on the phone, or whose phone is not ringing.

Как можно прочесть - возможных условий более чем одно.

AlexZ писал(а):
у меня же астериск соединен с обычной АТС через поток Е1

Это не добавило понимания настроек вашей очереди.

Не хотите через leavewhenempty joinempty ?
Значит просто "нарисуйте" скрипт, который исполниться по cron в 18:00 и который выполнит принудительный hangup для всех channel, которые висят очереди.

_________________
mega-net.ru - IT аутсорсинг