LINUX.ORG.RU
ФорумAdmin

Asterisk queue status

 


0

2

Почему здесь нету ${QUEUESTATUS} и где его отловить?

exten => 123456,1,Queue(call-center,t)
 same => n,NoOp(${QUEUESTATUS})
 same => n,Hangup()
В h-extension'е значение переменной тоже не установлено. Asterisk 1.8.



Последнее исправление: Alternating_Current (всего исправлений: 1)

Команду DumpChan поставь до и после очереди увидишь все установленные переменные для канала.

Yur4eg ★★
()

Asterisk 13.
Вообще очереди как-то странно работают. Если сделать так:

exten => 603,1,queue(test,c,,,10)
same => n,noop(${QUEUESTATUS})
same => n,hangup()
То переменная устанавливается, но не во всех случаях. Например если ответить на звонок и положить трубку с которой был совершил вызов QUEUESTATUS не установится.

А что пробуете добиться с помощью этой переменной?

Deleted
()
Ответ на: комментарий от Yur4eg

После завершения звонка сразу перемещаемся в h-экстеншн, в котором ловить нечего. XXX, YYY, ZZZ - скрытые номера.

До Queue():

Variables:
MACRO_DEPTH=0
MIXMONITOR_FILENAME=/home/records/20150624/20150624192727-XXX-YYY.wav
SYSTEMSTATUS=SUCCESS
DIRECTORY=20150624
FILENAME=20150624192727-XXX-YYY.wav
ODBCSTATUS=NODATA
ODBCROWS=0
IDENT=ZZZ
DESTNUM=YYY
FORTRANSDEST=YYY
SIPCALLID=41a496cm91v2g2ky0@192.168.169.211
SIPDOMAIN=10.10.0.22
SIPURI=sip:XXX@192.168.169.211:5060
В h-extension:
Variables:
QUEUEPOSITION=1
MACRO_DEPTH=0
MIXMONITOR_FILENAME=/home/records/20150624/20150624192727-XXX-YYY.wav
SYSTEMSTATUS=SUCCESS
DIRECTORY=20150624
FILENAME=20150624192727-XXX-YYY.wav
ODBCSTATUS=NODATA
ODBCROWS=0
IDENT=ZZZ
DESTNUM=YYY
FORTRANSDEST=YYY
SIPCALLID=41a496cm91v2g2ky0@192.168.169.211
SIPDOMAIN=10.10.0.22
SIPURI=sip:XXX@192.168.169.211:5060
queues.conf простой:
[call-center]
joinempty=yes
leavewhenempty=no
ringinuse=no
strategy=ringall

member => SIP/111,5
member => SIP/112,10

Alternating_Current
() автор топика
Ответ на: комментарий от Alternating_Current

На самом деле это логично, канал привязан к тому кто звонит и когда он обрывает вызов dialplan дальше не обрабатывается.

У меня получилось сделать так, queues.conf:

...
[test]
autofill=yes
joinempty=no
ringinuse=no
setinterfacevar=yes

setqueuevar=yes

strategy=ringall
setqueuevar=yes
member => SIP/137
...

extensions.conf:

...
exten => 603,1,queue(test,c,,,10)
same => n,noop(${QUEUESTATUS})
same => n,hangup()

exten => h,1,noop(${QUEUESTATUS})

Единственное нет кода возврата если абонент оборвал вызов находясь в очереди.

Deleted
()
Последнее исправление: log4tmp (всего исправлений: 1)
Ответ на: комментарий от Deleted

Единственное нет кода возврата если абонент оборвал вызов находясь в очереди.

Проверю все варианты, если переменная не устанавливается только в этом случае, то буду считать, что если пусто, значит клиент положил трубку сам не дождавшись ответа. Спасибо за setqueuevar.

Alternating_Current
() автор топика
Ответ на: комментарий от Alternating_Current

Вообще в документации написано следующее:

This application sets the following channel variable upon completion:
${QUEUESTATUS}: The status of the call as a text string.
    TIMEOUT
    FULL
    JOINEMPTY
    LEAVEEMPTY
    JOINUNAVAIL
    LEAVEUNAVAIL
    CONTINUE
т.е. переменная ставится после завершения.

Deleted
()
Ответ на: комментарий от Deleted

Вообще в документации написано следующее:

Походу переменная выставляется, если звонящий покинул очередь необслуженным. Не вижу варианта ANSWERED

Yur4eg ★★
()
Ответ на: комментарий от Yur4eg

Если кто-то принял звонок, то выставляется статус CONTINUE.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.