[test-1]
exten => 101,1,Set(LOCAL_CHANNEL=${CHANNEL})
exten => 101,n,Set(IVR-File-1=${IVR-File-1})
exten => 101,n,Set(PHONE_NO=${PHONE_NO})
exten => 101,n,Set(IVR-File-2=${IVR-File-2})
exten => 101,n,Set(IVR-File-3=${IVR-File-3})
exten => 101,n,Set(IVR-File-4=${IVR-File-4})
exten => 101,n,Set(IVR-File-5=${IVR-File-5})
exten => 101,n,Set(IVR-File-6=${IVR-File-6})
exten => 101,n,NoOp(============= DIALING ON PHONE NUMBER ===============)
exten => 101,n,Dial(dahdi/g0/${PHONE_NO},30,tTM(CallToPhoneNo^${IVR-File-1}^${IVR-File-2}^${IVR-File-3}^${IVR-File-4}^${IVR-File-5}^${IVR-File-6}^${PHONE_NO}^${LOCAL_CHANNEL}))
[macro-CallToPhoneNo]
exten => s,1,NoOp(============== InSide Macro ============)
exten => s,n,Set(IVR-File-1=${ARG1})
exten => s,n,Set(IVR-File-2=${ARG2})
exten => s,n,Set(IVR-File-4=${ARG3})
exten => s,n,Set(IVR-File-3=${ARG4})
exten => s,n,Set(IVR-File-3=${ARG5})
exten => s,n,Set(IVR-File-3=${ARG6})
exten => s,n,Set(PHONE_NO=${ARG7})
exten => s,n,Set(LOCAL_CHANNEL=${ARG8})
; The calls which are generated using LOCAL channel dials out twice.
; Hence the local channel needs to be hangup.
exten => s,n,SoftHangup(${LOCAL_CHANNEL})
; I want to play multiple files and when DTMF pressed, it should go to next level instead of playing all the files.
exten => s,n,Playback(${IVR-File-1}&${IVR-File-2}&${IVR-File-3}&${IVR-File-4})
exten => s,n,Playback(${IVR-File-5}&${IVR-File-6})
exten => s,n,Read(RESPONSE,beep,1,2,6)
;==============================================================
; Tried using Background as well. But on pressing 1, 2, or any DTMF it jumps out of macro.
;==============================================================
;exten => s,n,Background(${IVR-File-1}&${IVR-File-2}&${IVR-File-3}&${IVR-File-4})
;exten => s,n,Background(${IVR-File-5}&${IVR-File-6})
;exten => s,n,WaitExten(5)
;exten => 1,1,NoOp(=========== ${EXTEN} ===============)
;exten => 1,n,Set(code=1)
;exten => 2,1,NoOp(=========== ${EXTEN} ===============)
;exten => 2,n,Set(code=2)
;exten => t,1,Goto(s,1)
;exten => i,1,Goto(s,1)
;==============================================================
exten => s,n,ExecIf($[“${RESPONSE}” = “7”],Set,code=“1”)
exten => s,n,ExecIf($[“${RESPONSE}” = “9”],Set,code=“2”)
exten => s,n,ExecIf($[“${RESPONSE}” < “7”],Set,code=“3”)
exten => s,n,ExecIf($[“${RESPONSE}” = “8”],Set,code=“3”)
exten => s,n,ExecIf($[“${RESPONSE}” = “”],Set,code=“4”)