LINUX.ORG.RU

История изменений

Исправление 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
Все работает! В макросе вызываемом из Queue отловить нужные мне данные не удается и передать тоже. Попробую вот это по вашей ссылке

[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
Все работает! В макросе вызываемом из Queue отловить нужные мне данные не удается и передать тоже. Попробую вот это по вашей ссылке

[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
Все работает! В макросе вызываемом из Queue отловить нужные мне данные не удается и передать тоже. Попробую вот это по вашей ссылке

[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 макрос логичнее будет.