Hello all,
I’ve been struggling to get call queues working to extensions that are
voicemail-enabled, it’s been a problem for quite a while and I’ve finally
given up - hoping someone here could shed some light on the problem.
Problem:
When none of the agents are on the phone, everything works as expected: calls
go into the queue and are serviced by the agents. When an agent is on the phone
Asterisk occasionally routes the call through to the extensions voicemail - I don’t want
it do this; I just want the caller to loop in the queue until it’s answered (not by voicemail)
Output from console:
-- Called 1132
-- SIP/1130-08869268 is ringing
-- Agent/1130 is ringing
-- SIP/1137-08850478 is ringing
-- Agent/1137 is ringing
-- SIP/1134-08879710 is ringing
-- Agent/1134 is ringing
-- SIP/1132-0888e1a0 is ringing
-- Agent/1132 is ringing
-- SIP/1133-b65bfe00 is ringing
-- Agent/1133 is ringing
-- Nobody picked up in 30000 ms
-- Executing [1137@default:2] VoiceMail("Local/1137@default-51f2,2", "1137") in new stack
-- Nobody picked up in 30000 ms
-- Agent/1137 answered Zap/31-1
== Spawn extension (macro-Record-Incoming, s, 9) exited non-zero on ‘Local/1130@default-075d,2’ in macro ‘Record-Incoming’
== Spawn extension (macro-Record-Incoming, s, 9) exited non-zero on ‘Local/1130@default-075d,2’
== End MixMonitor Recording Local/1130@default-075d,2
– <Local/1137@default-51f2,2> Playing ‘vm-intro’ (language ‘en’)
– Nobody picked up in 30000 ms
– Executing [1134@default:2] VoiceMail(“Local/1134@default-7388,2”, “1134”) in new stack
– <Local/1134@default-7388,2> Playing ‘vm-intro’ (language ‘en’)
Useful bits from extensions.conf:
exten => XXXX,1,Macro(Record-Incoming,SIP/${EXTEN},${CALLERID(num)},${EXTEN})
exten => XXXX,2,Voicemail(XXXX)
[macro-Record-Incoming]
; This macro records a phone call for a specific inbound extension
exten => s,1,Set(YEAR=${STRFTIME(${EPOCH},GMT+1,%Y)})
exten => s,2,Set(MONTH_WORD=${STRFTIME(${EPOCH},GMT+1,%B)})
exten => s,3,Set(MONTH_NUM=${STRFTIME(${EPOCH},GMT+1,%m)})
exten => s,4,Set(DAY=${STRFTIME(${EPOCH},GMT+1,%d)})
exten => s,5,Set(CLOCK=${STRFTIME(${EPOCH},GMT+1,%T)})
exten => s,6,Set(FILENAME=${ARG2}-${ARG3}-${DAY}${MONTH_NUM}${YEAR}-${CLOCK}.wav)
exten => s,7,Set(FULLFILENAME=/voice/${YEAR}/${MONTH_WORD}/${FILENAME})
exten => s,8,MixMonitor(${FULLFILENAME},b)
exten => s,9,Dial(${ARG1},30)
The queue:
exten => s,1,Set(YEAR=${STRFTIME(${EPOCH},GMT+1,%Y)})
exten => s,2,Set(MONTH_WORD=${STRFTIME(${EPOCH},GMT+1,%B)})
exten => s,3,Set(MONTH_NUM=${STRFTIME(${EPOCH},GMT+1,%m)})
exten => s,4,Set(DAY=${STRFTIME(${EPOCH},GMT+1,%d)})
exten => s,5,Set(CLOCK=${STRFTIME(${EPOCH},GMT+1,%T)})
exten => s,6,Set(FILENAME=${CALLERID(num)}-${EXTEN}-${DAY}${MONTH_NUM}${YEAR}-${CLOCK}.wav)
exten => s,7,Set(MONITOR_FILENAME=/voice/${YEAR}/${MONTH_WORD}/${CALLERID(num)}-XXXX-${DAY}${MONTH_NUM}${YEAR}-${CLOCK})
exten => s,8,Ringing
exten => s,9,Wait,3
exten => s,10,Answer
exten => s,11,SetMusicOnHold(default)
exten => s,12,Set(TIMEOUT(digit)=5)
exten => s,13,Set(TIMEOUT(response)=10)
;exten => s,14,Queue(support-queue|n||240|)
exten => s,14,Queue(support-queue||||)
Call flow: External call (via E1) -> Call Queue -> Agents
Facts:
- Asterisk 1.4.10.1 with Zaptel 1.4.4
- Asterisk connected to E1 ISDN30 line via Digium Wildcard TE110P T1/E1
- All communication via SIP
- OS: Debian GNU/Linux 4.0
- Handsets: mainly Cisco 7960 with some 7971 and 7961 units