История изменений
Исправление petav, (текущая версия) :
нафига это
Для красоты, не более. Решаю задачу, точнее решил, со связыванием звонящего с агентом. Т.е. первый звонок в очередь, потом станция на сутки запоминает агента и следующий звонок уже агенту напрямую. Разгружаю секретаря... Так вот необходимо обрабатывать логику. Для Dial сделал макросом с передачей ему нужных параметров.
[agent-answering]
exten=> s,1,NoOp(---------- Caller Agent)
exten=> s,n,GotoIf($["${AGENT}" = ""]?notagent)
exten=> s,n,Dial(Local/${AGENT}@phones,60,gM(update^${CALLERID(num)}))
exten=> s,n,Hangup()
exten=> s,n(notagent),Goto(queue-answering,s,1)
[macro-update]
exten=> s,1,Set(ODBC_UPDATE_DATA()=${ARG1},${EPOCH})
Для контектса queue-answering обработываю конец разговора с агентом в exten h.
[queue-answering]
exten=> s,1,NoOp(---------- Caller Queue)
exten=> s,n,Queue(reference,tTh,,,120,,)
exten=> s,n,Hangup()
exten=> h,1,Set(AGENT=${CUT(MEMBERINTERFACE,/,2)})
exten=> h,n,Set(AGENT=${CUT(AGENT,@,1)})
exten=> h,n,GotoIf($["${AGENT}" = ""]?notagent)
exten=> h,n,Set(ODBC_DELETE_DATA()="${CALLERID(num)}")
exten=> h,n,Set(ODBC_SET_DATA()="${CALLERID(num)}","${EPOCH}","${AGENT}")
exten=> h,n(notagent),Hangup
[1234] exten => 1000,1,Queue(8000)
[macro-link] exten => s,1,system(wget "http://somehost:port/service/Find?phonenumber=${CALLERID(num)}&internal_number=1000")
queue.conf:
member=Local/1000@from-internal/n,0 membermacro=link
Может мне больше понравится. Я считаю, что call-back макрос логичнее будет.
Исправление petav, :
нафига это
Для красоты, не более. Решаю задачу, точнее решил, со связыванием звонящего с агентом. Т.е. первый звонок в очередь, потом станция на сутки запоминает агента и следующий звонок уже агенту напрямую. Разгружаю секретаря... Так вот необходимо обрабатывать логику. Для Dial сделал макросом с передачей ему нужных параметров.
[agent-answering]
exten=> s,1,NoOp(---------- Caller Agent)
exten=> s,n,GotoIf($["${AGENT}" = ""]?notagent)
exten=> s,n,Dial(Local/${AGENT}@phones,60,gM(update^${CALLERID(num)}))
exten=> s,n,Hangup()
exten=> s,n(notagent),Goto(queue-answering,s,1)
Для контектса queue-answering обработываю конец разговора с агентом в exten h.
[queue-answering]
exten=> s,1,NoOp(---------- Caller Queue)
exten=> s,n,Queue(reference,tTh,,,120,,)
exten=> s,n,Hangup()
exten=> h,1,Set(AGENT=${CUT(MEMBERINTERFACE,/,2)})
exten=> h,n,Set(AGENT=${CUT(AGENT,@,1)})
exten=> h,n,GotoIf($["${AGENT}" = ""]?notagent)
exten=> h,n,Set(ODBC_DELETE_DATA()="${CALLERID(num)}")
exten=> h,n,Set(ODBC_SET_DATA()="${CALLERID(num)}","${EPOCH}","${AGENT}")
exten=> h,n(notagent),Hangup
[1234] exten => 1000,1,Queue(8000)
[macro-link] exten => s,1,system(wget "http://somehost:port/service/Find?phonenumber=${CALLERID(num)}&internal_number=1000")
queue.conf:
member=Local/1000@from-internal/n,0 membermacro=link
Может мне больше понравится. Я считаю, что call-back макрос логичнее будет.
Исходная версия petav, :
нафига это
Для красоты, не более. Решаю задачу, точнее решил, со связыванием звонящего с агентом. Т.е. первый звонок в очередь, потом станция на сутки запоминает агента и следующий звонок уже агенту напрямую. Разгружаю секретаря... Так вот необходимо обрабатывать логику. Для Dial сделал макросом с передачей ему нужных параметров. Для Queue, этот звонок увожу в отдельный exten и там обработываю конец разговора с агентом в exten h.
exten=> h,1,Set(AGENT=${CUT(MEMBERINTERFACE,/,2)})
exten=> h,n,Set(AGENT=${CUT(AGENT,@,1)})
exten=> h,n,GotoIf($["${AGENT}" = ""]?notagent) ; Тут проверяю был ли разговор с агентом, иначе зачем запоминать звонок.
exten=> h,n,Set(ODBC_SET_DATA()="${CALLERID(num)}","${EPOCH}","${AGENT}")
exten=> h,n(notagent),Hangup
[1234] exten => 1000,1,Queue(8000)
[macro-link] exten => s,1,system(wget "http://somehost:port/service/Find?phonenumber=${CALLERID(num)}&internal_number=1000")
queue.conf:
member=Local/1000@from-internal/n,0 membermacro=link
Может мне больше понравится. Я считаю, что call-back макрос логичнее будет.