"Неправильный" roundrobin в * (очередь звонков)
Сообщений: 5
|
"Неправильный" roundrobin в * (очередь звонков)
Есть задача - организовать "звонки по кругу" в Астериске.
Т.е. посутпает входящий звонок и дальще по очереди звонят внутренние телефоны (например 100 -> 101 -> 102 -> 103 и.т.д.) пока кто-нибудь не возьмёт трубку или вызов не вылетит по таймауту.
Организовал я всё это дело через queues со стратегией roundrobin - всё замечательно, кроме одной "особенности" этого самого roundrobin'а.
Он несколько изменяет эту тактику, т.е. пришёл первый вызов - звонит телефон 100, далее 101, потом 102 и.т.п. Но когда приходит ВТОРОЙ вызов, то первым звонит уже 101'ый телефон, и далее по кругу. При третьем вызове - уже 102 и.т.п.
А мне нужно, чтобы ВСЕГДА звонил вначале телефон секретаря 100 (если он конечно свободен), и далее по кругу.
Может кто знает, как такое лучше сделать?
|
Сообщений: 6521
|
Re: "Неправильный" roundrobin в * (очередь звонков)
exten => s,1,Dial(SIP/100,10,Tt)
exten => s,2,Dial(SIP/101,10,Tt)
exten => s,3,Dial(SIP/102,10,Tt)
exten => s,4,Dial(SIP/103,10,Tt)
exten => s,5,Goto(s,1)
|
Сообщений: 5
|
Re: "Неправильный" roundrobin в * (очередь звонков)
Вобще конечно хотелось попробовать сделать именно через queues, всё-таки там есть кое-какие дополнительные плюшки имено для обработки очереди.
А за совет спасибо, я сам уже кое-что в подобном направлении накорябал. Остался вот такой вопрос - как попроще задать общий таймер, чтоб цикл этот не до бесконечности шёл, а например 90 сек - а далее при неответе вызов валился дальше (например на войсмэйл)?
|
Сообщений: 6521
|
Re: "Неправильный" roundrobin в * (очередь звонков)
exten => s,1,Dial(SIP/100,10,Tt)
exten => s,2,Dial(SIP/101,10,Tt)
exten => s,3,Dial(SIP/102,10,Tt)
exten => s,4,Dial(SIP/103,10,Tt)
exten => s,5,SetVar(COUNT=COUNT+1)
exten => s,6, GoToIf(COUNT=3?7:1)
exten => s,7,VoiceMail(Incoming)
exten => s,8,Hangup
|
Откуда: Санкт-Петербург
Сообщений: 203
|
Re: "Неправильный" roundrobin в * (очередь звонков)
to locky2003:
Цитата:
"Однако, Вы можете добиться циклического распределения вызовов между агентами, используя режим roundrobin, и задав различные значения параметра penalty для каждого агента, для обеспечения порядка выбора свободного агента в том порядке, который Вам необходим. Приложение app_queue будет всегда сначала искать свободного агента у которого нет пенальти, далее среди тех, у кого значение пенальти - 1, и т.д. "
|
Сообщений: 5
|
Re: "Неправильный" roundrobin в * (очередь звонков)
Неправда. При такой системе телефон будет звонить у агента с пенальти 0 до бесконечности, и ТОЛЬКО если он занят переходить туда, где пенальти 1 и.т.п.
|
Сообщений: 22
|
Re: "Неправильный" roundrobin в * (очередь звонков)
насамо деле
все елементарно
теминология у всех разная поэтому обьясню на пальцах
в queues.conf
прописываються все агенты кторые в очереди и им назначаються приоритеты
стратегия роундробин
все работает замечательно
один ньюанс
в кюррент версии баг и это не работает
насчет стеибл итд незнаю не юзаю
|
Сообщений: 5
|
Re: "Неправильный" roundrobin в * (очередь звонков)
вопрос то как раз в этом самом "баге" (и потенциальных способах его "обхода" ) и есть, так как по настройке там действительно ничего сверхъестественного и нет.
На версии 1.2.1 он точно есть, и не факт что только на ней, т.к. на voip-info.org про него написано и без указания версии.
Обидно просто, казалось бы вещь то элементарная, а не живёт как ей положено.
|
Сообщений: 22
|
Re: "Неправильный" roundrobin в * (очередь звонков)
ладно уламали) поправить и перекомппилисть app_queue сам сможешь?:) я тебе строку фикса тогда кину
на воип инфо как и на багс дигиум одни тестировщики - кто там джевелопер я даже незнаю и не спенсер так точно))) он теперь аля биллигейтс ))
|
Сообщений: 5
|
Re: "Неправильный" roundrobin в * (очередь звонков)
dareinладно уламали) поправить и перекомппилисть app_queue сам сможешь?:) я тебе строку фикса тогда кину
угумс, попытаюсь
|
|