[Asterisk-Users] IVR dial by extension option..

Robert P. McKenzie rmckenzi at rpmdp.com
Sat Mar 11 04:09:38 MST 2006


I'm working on an IVR that gives the users the option (number 5 in the main menu) to dial by extension:

exten => 5,1,Set(TIMEOUT(digit)=5)		; Dial Extension
exten => 5,2,Set(TIMEOUT(response)=10)
exten => 5,3,Background(LCL/prompt-60)
exten => 5,4,WaitExten(15)

When going option 5 you can dial some extensions such as 2802, it goes to the extension (all extens start with 28 on the
system).  However, just dialing something random like 2929 sends the caller to option 2 of the main menu or 1010 sends
the caller to menu option 1 from the main menu.  Dialing something like 8080 returns the user to the top of the main
menu as defined by the exten => i of the main menu.

How can I ensure that only valid extensions can be dialed and anything except a number starting with say 28 can be dialed?

The entire IVR is:

[lcl-ivr-main]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; This is the main number IVR menu system
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
include => lcl-extensions

exten => s,1,Answer
exten => s,2,NoOp
exten => s,3,NoOp
exten => s,4,NoOp
exten => s,5,Wait(1)
exten => s,6,Background(LCL/prompt-00)  	; You've reached xxxxx
exten => s,7,Background(LCL/prompt-01)  	; dial 1 for sales
exten => s,8,Background(LCL/prompt-02)  	; dial 2 for support
exten => s,9,Background(LCL/prompt-03)  	; dial 3 for accounts
exten => s,10,Background(LCL/prompt-04) 	; dial 4 for reception
exten => s,11,Background(LCL/prompt-05) 	; dial 5 to enter extension
exten => s,12,Background(LCL/prompt-09) 	; dial 9 to hear menu again
exten => s,13,Set(TIMEOUT(digit)=5)
exten => s,14,Set(TIMEOUT(response)=30)
exten => s,15,WaitExten(15)
;
;
exten => 1,1,Background(LCL/prompt-20)		; transfering to Sales
exten => 1,2,Goto(lcl-extensions,2863,1)
;
exten => 2,1,Background(LCL/prompt-30)		; transfering to Support
exten => 2,2,Goto(lcl-extensions,2883,1)
;
exten => 3,1,Background(LCL/prompt-40)		; transfering to Accounts
exten => 3,2,Goto(lcl-extensions,2847,1)
;
exten => 4,1,Background(LCL/prompt-50)		; transfering to Reception
exten => 4,2,Goto(lcl-extensions,2856,1)
;
exten => 5,1,Set(TIMEOUT(digit)=5)		; Dial Extension
exten => 5,2,Set(TIMEOUT(response)=10)
exten => 5,3,Background(LCL/prompt-60)
exten => 5,4,WaitExten(15)
;
exten => 9,1,Goto(s,7)				; Play menu again
;
exten => i,1,Background(LCL/prompt-10)		; didn't understand, play menu again
exten => i,2,Wait(1)
exten => i,3,Goto(s,7)				; Return to menu after a time out
;
exten => t,1,Goto(s,7)				; Return to menu after a time out



-- 
Robert P. McKenzie, CSTA, MBCS     |   GammaRay Technical Services Ltd
rmckenzi at rpmdp.com                 |             rob at gammaray-tech.com
http://www.uk-experience.com       |      http://www.gammaray-tech.com
               Fancy some fun?  http://www.thewetwilly.com
    Ecademy Profile:   http://www.ecademy.com/user/robertmckenzie



More information about the asterisk-users mailing list