Здравствуйте,
пробую организовать такую схему: при звонке в очередь звонят все телефоны операторов с самым маленьким пенальти, по проществии 15 секунд, если никто не взял трубку - звонок должен направляться на пенальти выше. Но почему то продолжает звонить у первого оператора :(
penaltychange вроде как не изменяется после 15 секунд... подскажите пожалуйста в где у меня ошибка?
данные:
asterisk 11.8.1
mysql> select * from queue_table\G
*************************** 1. row ***************************
name: managers
musiconhold: NULL
announce: NULL
context: NULL
timeout: 15
monitor_join: NULL
monitor_format: NULL
queue_youarenext: NULL
queue_thereare: NULL
queue_callswaiting: NULL
queue_holdtime: NULL
queue_minutes: NULL
queue_seconds: NULL
queue_lessthan: NULL
queue_thankyou: NULL
queue_reporthold: NULL
announce_frequency: NULL
announce_round_seconds: NULL
announce_holdtime: NULL
retry: 3
wrapuptime: NULL
maxlen: NULL
servicelevel: NULL
strategy: rrmemory
joinempty: NULL
leavewhenempty: NULL
eventmemberstatus: NULL
eventwhencalled: NULL
reportholdtime: NULL
memberdelay: NULL
weight: NULL
timeoutrestart: NULL
ringinuse: NULL
setinterfacevar: NULL
1 row in set (0.00 sec)
mysql> select * from queue_member_table;
+----------+----------------------+------------+-----------+---------+--------+
| uniqueid | membername | queue_name | interface | penalty | paused |
+----------+----------------------+------------+-----------+---------+--------+
| 1 | user1 | managers | SIP/1144 | 745 | 0 |
| 2 | user2 | managers | SIP/1143 | 45 | 0 |
+----------+----------------------+------------+-----------+---------+--------+
2 rows in set (0.00 sec)
# [root@ats1 asterisk]# cat queuerules.conf
[myrule] penaltychange => 15,1000,1
пенальти не зависят от реалтайм.
вы уверены, что вы правильно поняли значение пенальти?
вот это читали?
http://asteriskdocs.org/en/3rdEdition/asterisk-book-html-chunk/ACDid288932.html
ваше правило стоит читать так
After 15 seconds, adjust QUEUE_MAX_PENALTY to 1000 and adjust QUEUE_MIN_PENALTY to 1
после чего очередь ведет себя точно также как и до этого, а именно звонит первому агенту(penalty 45 >=1) если он не занят. если занят, звонит второму(745<1000)
Задан: 2014-04-08 11:09:26 +0400
Просмотрен: 522 раз
Обновлен: Apr 08 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Не многоваты ли значения пенальти?
zzuz ( 2014-04-08 11:51:05 +0400 )редактироватьоно как то лимитировано? я его хочу просто использовать как приоритет..
akam ( 2014-04-08 12:04:57 +0400 )редактироватьтам вроде как обычный инт. нет, просто правило ничего критично не меняет.
meral ( 2014-04-08 14:46:11 +0400 )редактироватьСпасибо за ответ, http://asteriskdocs.org/en/3rdEdition/asterisk-book-html-chunk/ACDid288932.html я читал
то есть политику изменить нельзя? на следующий пенальти звонок перейдет только если все заняты и никак иначе?
akam ( 2014-04-08 15:09:30 +0400 )редактироватьну плоъхо читали. политику изменить можно. но предложеное вами правило не меняет QUEUE_MIN_PENALTY
meral ( 2014-04-08 15:21:00 +0400 )редактироватьвы наверное имеете ввиду менять как мах так и мin пенальти в queuerules.conf ? к сожалению в моем случае это невозможно, потому что я не знаю какие пенальти будут у агентов и какие/сколько вообще будут агенты. эта таблица каждые 10 минут изменяется, а значение пенальти ставиться - сколько у оператора открытых заявок и у кого меньше заявок - тем должны приходить первые вызовы
akam ( 2014-04-08 15:38:09 +0400 )редактироватьну а что от community вы хотите то? вы не знаете, мы не знаем. читайте, считайте, пишите скрипты. или наймите человека который за вас это сделает. то как у вас работает сейчас это нормально. так и должно быть. это не баг. 100% не баг. и несвязано с realtime. вообще никак.
meral ( 2014-04-08 16:46:11 +0400 )редактироватьи, кстати, очередь не будет перечитывать пенальти раз в 10 минут. ищите другой метод достижения ваших целей.
meral ( 2014-04-08 16:47:27 +0400 )редактироватьсделал через аги, может кому-нибудь пригодиться.. правда ошибка "ast_carefulwrite: write() returned error: Broken pipe" вылезает в логах, но это уже другая истороия...
akam ( 2014-04-09 11:55:54 +0400 )редактироватьжесть. вы хоть проверьте а не ответил ли предыдущий человек!!! пипец какойто.
meral ( 2014-04-09 22:48:15 +0400 )редактироватьне очень понимаю ваш комментарий, я видел ваш ответ "мы не знаем. читайте, считайте, пишите скрипты. " , "ищите другой метод достижения ваших целей.", спасибо, я так и поступил, где жесть?
akam ( 2014-04-10 08:11:20 +0400 )редактироватьесли в вашем скрипте ктото из called ответит, потом поговорит и положит трубку, скрипт дальше звонить будет.
meral ( 2014-04-10 12:16:32 +0400 )редактировать