Распределение звонков
Распределение звонуков
Сообщений: 21
|
Распределение звонков
Добрый день эксперты, помогите пожалуйста:
имеется 5 операторов c номерами от (21 до 25) которые должны обрабатывать входящие звонки
есть макрос для входящего звонка который обязательно должен обрабатываться,
так как в макросе осуществляются забросы к базе и обработка статусов звонков.
[macro-mydial]
...
Пока экстеншн для вызова:
[call-center]
exten => 111,1,Macro(mydial,21)
Почитал документацию по очередям, но там вроде просто указываются агенты напрямую,
но мне необходимо прогонять через макрос, причем с самого начала,
сам вызов оператора происходил в макросе.
Подскажите пожалуйста как можно сделать динамическое распределением звонков?
|
Откуда: Санкт-Петербург
Сообщений: 541
|
Re: Распределение звонков
Пусть распределением занимается то, что для этого предназначено:
Asterisk 1.6.0:
Queue(queuename[,options[,URL[,announceoverride[,timeout[,AGI[,macro[,gosub[,rule]]]]]]]])
как видно - в 1.6 можно вызвать Macro
Asterisk 1.4:
Queue(queuename[|options][|URL][|announceoverride][|timeout][|AGI])
в 1.4 - AGI, но тут придется переносить функционал из Macro в AGI-скрипт
|
Сообщений: 21
|
Re: Распределение звонков
Большое спасибо за ответ.
Дело в том, что мне нужно записывать состояние звонка в базу, для самописного Call-центра.
Все это делал через макрос, всю оболочку сделал, теперь проблема с распределением звонков.
Что по уму делать через Qunue я понимаю, оно и проще.
Но мне надо сделать так:
1. Поступил звонок, запись в базу
2. Закончился звонок, запись в базу статуса звонка, имени файла записи
|
Откуда: Зеленоград
Сообщений: 446
|
Re: Распределение звонков
А что мешает п.1 делать до вызова Queue, а п.2 - после?
|
Сообщений: 1573
|
Re: Распределение звонков
exten => _X.,1, <Пишете в базу (как у вас там)>
exten => _X.,n,Queue ...
exten => h,1, <Опять пишете в базу (как у вас там)>
|
Сообщений: 21
|
Re: Распределение звонков
В принципе пошло, но не совсем так.
Экстеншен горячей линии:
exten => 111,1,Queue(my_queue|n||||)
Экстеншены операторов:
exten => _XX,1,SetGlobalVar(MONITOR_FILENAME=${STRFTIME(${EPOCH}||%y-%m-%d_%H:%M:%S)}_${EXTEN})
exten => _XX,2,SetGlobalVar(MONITOR_EXEC=nice -n 19 /usr/bin/lame -b 16 --noshort --silent "/var/spool/asterisk/monitor/${MONI
TOR_FILENAME}.wav" "/var/spool/asterisk/monitor/${MONITOR_FILENAME}.mp3" && rm -f "/var/spool/asterisk/monitor/${MONITOR_FILEN
AME}.wav")
exten => _XX,3,AGI(my_writer.agi|START|${MONITOR_FILENAME}|${EXTEN}|${CHANNEL}|${UNIQUEID}|DIAL)
exten => _XX,4,Dial(SIP/${EXTEN}||htwkdg)
exten => h,1,DeadAGI(my_writer.agi|END|${MONITOR_FILENAME}|${EXTEN}|${CHANNEL}|${UNIQUEID}|${DIALSTATUS})
|
|