Use the code below and in the line #exten => s,n,GotoIf($["${EXTTOCALL}"=“10”]?100)# extention 10 will bypass Exchange. If you want to bypass extension 222 you would use #exten => s,n,GotoIf($["${EXTTOCALL}"=“222”]?100)#. I’m currently bypassing 10-13 in the below example. Hope this helps. If you get the WMI working for Exchange 2010 let me know…
[macro-exten-vm]
include => macro-exten-vm-custom
exten => s,1,Macro(user-callerid,)
exten => s,n,Set(RingGroupMethod=none)
exten => s,n,Set(VMBOX=${ARG1})
exten => s,n,Set(__EXTTOCALL=${ARG2})
exten => s,n,Set(CFUEXT=${DB(CFU/${EXTTOCALL})})
exten => s,n,Set(CFBEXT=${DB(CFB/${EXTTOCALL})})
exten => s,n,Set(RT=${IF($[$["${VMBOX}"!=“novm”] | $["${CFUEXT}"!=""]]?${RINGTIMER}:"")})
exten => s,n(checkrecord),Macro(record-enable,${EXTTOCALL},IN)
exten => s,n(macrodial),Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL})
exten => s,n,GotoIf($["${VMBOX}"!=“novm” & “${SCREEN}”!="" & “${DIALSTATUS}”=“NOANSWER”]?exit,return)
exten => s,n,Set(SV_DIALSTATUS=${DIALSTATUS})
exten => s,n(calldocfu),GosubIf($["${SV_DIALSTATUS}"=“NOANSWER” & “${CFUEXT}”!="" & “${SCREEN}”=""]?$
exten => s,n(calldocfb),GosubIf($["${SV_DIALSTATUS}"=“BUSY” & “${CFBEXT}”!=""]?docfb,1)
exten => s,n,Set(DIALSTATUS=${SV_DIALSTATUS})
exten => s,n,Noop(Voicemail is ‘${VMBOX}’)
exten => s,n,GotoIf($["${VMBOX}"=“novm”]?s-${DIALSTATUS},1)
exten => s,n,Noop(Sending to Voicemail box ${EXTTOCALL})
exten => s,n,GotoIf($["${EXTTOCALL}"=“10”]?100)
exten => s,n,GotoIf($["${EXTTOCALL}"=“11”]?100)
exten => s,n,GotoIf($["${EXTTOCALL}"=“12”]?100)
exten => s,n,GotoIf($["${EXTTOCALL}"=“13”]?100)
exten => s,n,NoOp(Call Sent to Microsoft Exchange VM)
exten => s,n,SIPAddHeader(Diversion: tel:${EXTTOCALL};reason=no-answer;screen=no;privacy=off)
exten => s,n,Dial(SIP/998::::[email protected])
exten => s,n,Macro(hangupcall)
exten => s,100,NoOp(Call Sent to Asterisk VM)
exten => s,101,Macro(vm,${VMBOX},${DIALSTATUS},${IVR_RETVM})