Есть астериск с настроенной очередью, и временными группами, если вызов поступает с 9-18 часов то он попадает в очередь, в другое время проигрывается сообщение о нерабочем времени. Но если позвонить скажем в 17.55, а все операторы заняты, то вызов вешается на удержание, в 18.00 все операторы уходят домой, и люди находящиеся в очереди продолжают ждать ответа. Нужно сделать так, что бы абоненты которым ответили продолжали разговаривать, а остальные кто находится в очереди, после 18.00, или сбросить или проиграть что рабочий день закончился.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| 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 аутсорсинг