Пользуюсь Asterisk 1.6.2 на CentOS, мне нужно сделать, чтобы если в очереди по какой-либо причине (ringing,inuse,unavailable,unknown,penalty, paused,invalid) оператор не может ответить на звонок, клиент должен выбрасываться из нее. Все эти директивы работают, за исключением inuse. Если хоть один оператор разговаривает с клиентом, все последующие клиенты попадут в очередь.
Изначально задача такая: клиент звонит на астериск, если он попадает на оператора (т.е. у оператора звонит телефон), то клиент должен слышать гудки, в противном случае - MoH и announce-position.
Для этого сделал 2 очереди, настроено все так:
Код: Выделить всё
[general]
persistentmembers = yes
autofill = yes
shared_lastcall=no
[ops_dial]
musicclass = default
strategy = fewestcalls
timeout = 15
retry = 0
wrapuptime=0
weight=0
autofill=yes
maxlen = 0
ringinuse=no
setinterfacevar = yes
joinempty = inuse,paused,ringing,unavailable,invalid,unknown,penalty
leavewhenempty = inuse,paused,ringing,unavailable,invalid,unknown,penalty
announce-frequency = 0
monitor-format = wav
monitor-type = MixMonitor
member => SIP/operator01,0
member => SIP/operator02,0
member => SIP/operator03,0
member => SIP/operator04,0
member => SIP/operator05,0
[ops_wait]
musicclass = default
strategy = fewestcalls
timeout = 15
retry = 5
wrapuptime = 0
weight=1
autofill = yes
maxlen = 0
setinterfacevar = yes
announce-frequency = 30
queue-youarenext = first_call
queue-thereare = your_call
queue-callswaiting = in_line
queue-thankyou =
monitor-format = wav
monitor-type = MixMonitor
member => SIP/operator01,0
member => SIP/operator02,0
member => SIP/operator03,0
member => SIP/operator04,0
member => SIP/operator05,0
Код: Выделить всё
[general]
autofallthrough=yes
[from_kt]
exten => _39XXXX,1,Answer()
;exten => _39XXXX,n,Playback(your_call)
exten => _39XXXX,n,Set(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y-%m-%d_%H-%M)}_-_${CALLERID(number)})
exten => _39XXXX,n,Set(PDIR=${STRFTIME(${EPOCH},,%Y-%m-%d)})
exten => _39XXXX,n,System(mkdir /var/spool/asterisk/monitor/${PDIR})
exten => _39XXXX,n,Set(MONITOR_EXEC=lame /var/spool/asterisk/monitor/^{MONITOR_FILENAME}.wav && rm -rf /var/spool/asterisk/monitor/^{MONITOR_FILENAME}.wav && mv /var/spool/asterisk/monitor/^{MONITOR_FILENAME}.wav.mp3 /var/spool/asterisk/monitor/${PDIR})
exten => _39XXXX,n,GotoIf($["${CDR(SRC):0:5}" = "87142"]?gorod:sotka)
exten => _39XXXX,n(gorod),Set(CALLERID(NAME)=${CDR(SRC):5})
exten => _39XXXX,n,Goto(cntn)
exten => _39XXXX,n(sotka),Set(CALLERID(NAME)=${CDR(SRC)})
exten => _39XXXX,n(cntn),Queue(ops_dial,r)
exten => _39XXXX,n,Playback(greetings)
exten => _39XXXX,n,Queue(ops_wait)
exten => h,1,Set(CDR(userfield)=${MEMBERINTERFACE:4})
Заранее спасибо за любые предложения.
PS Если где-то туплю, прошу сильно не пинать, с астериском работаю 2 недели.