Нужно настроить очередь с пенальти (платно)
Есть тестовая очередь с 2-мя членами: 001 и 101. Нужно, чтобы первые 20 секунд вызов шел только на 001, следующие 40 на 001 и 101 одновременно (ringall), затем (по не ответу) выходил из очереди с определенным значением QUEUESTATUS. При этом во время нахождения вызова в очереди каждые 30 секунд должен проигрываться звуковой файл.
Ну и объяснить мне, почему ваши настройки именно такие, какими вы их сделали.
Стоимость услуг предлагайте.
У нас тоже надо было править пенальти и патчили астериск, года два потом сопровождали такое решение, позже сделали две очереди.
Не вижу с этом проблем, все вопросы можно на уровне дайлплана решить.
| Цитата: |
| Я просто против патчей, если это не особо обосновано. Во-первых, придется портировать от версии к версии. Во-вторых, иногда криво срабатывает все это. У нас тоже надо было править пенальти и патчили астериск, года два потом сопровождали такое решение, позже сделали две очереди. Не вижу с этом проблем, все вопросы можно на уровне дайлплана решить. |
Я просто не совсем понимаю, что значит "патчить". Думал, настройка пенальти входит в базовый дистрибутив, а значит от версии к версии должна наблюдаться совместимость. Речь ведь не идет о том, чтобы устанавливать какие-то расширения. Разве нельзя все настроить, используя queue.conf, queuerules.conf и, возможно, agents.conf?
возможно в 1.8 и поправили, ранее (1,2-1,6) работало это так:
очередь:
пенальти 1: агент1, агент2, агент3
пенальти 2: агент4, агент5, агент6
время звонка 20 секунд
пожелание - если в течение 20 секунд не ответил агент на приоритете 1, звонок должен уйти ко 2-у.
как сделано в астериске: пока есть хоть один свободный агент в пределах первого приоритета, звонки идут ему. и только если его (агента) нет - на приоритет 2.
это - патч 1
далее, вы хотите при переходе на второй приоритет сменить логику звонка на ринголл - это патч 2
| Цитата: |
| Я просто не совсем понимаю, что значит "патчить". Думал, настройка пенальти входит в базовый дистрибутив, а значит от версии к версии должна наблюдаться совместимость. Речь ведь не идет о том, чтобы устанавливать какие-то расширения. Разве нельзя все настроить, используя queue.conf, queuerules.conf и, возможно, agents.conf? |
ну смотрите, в настройке очереди в queue.conf конкретно указана стратегия обзвона, а вы хотите менять ее на лету.
что у нас в queuerules.conf?
| Код: |
| ; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY ; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for ; a call to be opened to more members or potentially a different set of members. ; The advantage to changing members this way as opposed to inserting the caller into a ; different queue with more members or reinserting the caller into the same queue with a different ; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue. ; ; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for ; the queue that were defined at the time the caller entered the queue. If an update to the rules is ; made during the caller's stay in the queue, these will not be reflected for that caller. ; ; The syntax for these rules is ; penaltychange => ,[,absolute or relative change to QUEUE_MIN_PENALTY] ; ; Example: ; [myrule] ; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY ; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5 ; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7 |
это не даст вам возможности сменить стратегию дозвона.
Потому я вам изначально посоветовал - сделайте две очереди и все...
Added after 5 minutes:
| Цитата: |
| Есть тестовая очередь с 2-мя членами: 001 и 101. Нужно, чтобы первые 20 секунд вызов шел только на 001, следующие 40 на 001 и 101 одновременно (ringall), затем (по не ответу) выходил |
я извиняюсь, в вашем частном случае, с двумя агентами всего, расположив их так:
пенальти 1: 001
пенальти 2: 001, 101
и установив стратегию ринголл, поигравшись с queuerules.conf, можно все же чего-то добится. Но если агентов будет больше и пожелания по дозвону на первом уровне будут другие (например, leastrecent), то надо делать две очереди.
| Цитата: |
| Но если агентов будет больше и пожелания по дозвону на первом уровне будут другие (например, leastrecent), то надо делать две очереди. |
На данный момент динамически менять стратегию обзвона в очереди не требуется.
| Цитата: |
| я извиняюсь, в вашем частном случае, с двумя агентами всего, расположив их так: пенальти 1: 001 пенальти 2: 001, 101 |
Да, мой случай несколько упрощенный, но все же агентов не так много.
Как правильно задать нескольким агентам одно и то же пенальти? Чтобы при этом один агент мог иметь несколько пенальти?
Я так понимаю, это делается в queues.conf
Сейчас у меня:
| Код: |
| defaultrule = test strategy = ringall member => SIP/001,1 member => SIP/101,2 |
Как мне корректно записать, что 001 присвоено пенальти 1 и 2? Только через ringgroup или есть способ проще?
| Цитата: | ||
| Сейчас у меня: |
| Код: |
| defaultrule = test strategy = ringall member => SIP/001,1 member => SIP/101,2 |
Как мне корректно записать, что 001 присвоено пенальти 1 и 2? Только через ringgroup или есть способ проще?
| Код: |
| defaultrule = test strategy = ringall member => SIP/001,1 member => SIP/001,2 member => SIP/101,2 |
| Цитата: |
| defaultrule = test strategy = ringall member => SIP/001,1 member => SIP/001,2 member => SIP/101,2 |
А вот реализовать, чтобы по неответу 001 в течение например 15 секунд пенальти увеличивалось бы на +1 и тем самым начинали бы звонить 001 и 101 вместе - не получится?
Я вообще правильно понимаю, что запись
| Код: |
| penaltychange => 15, 5, 2 |
означает, что, если в течение 15 секунд вызов не будет принят, диапазон пенальти изменится на с 2 до 5.
Т.е. агенты с пенальти s,n,Set(QUEUE_MIN_PENALTY=2)
exten => s,n,Set(QUEUE_MAX_PENALTY=4)
Этот код означает, что помещенный в очередь вызов будет обрабатываться только агентами, которым присвоен пенальти с 2 по 4 включительно?
Т.е. по идее можно вообще не задавать значения пенальти перед входом в очередь и это будет означать, что вызов станет обрабатываться всеми агентами, начиная с 1-го пенальти?