mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			294 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			294 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| ;
 | |
| ; Static extension configuration files, used by
 | |
| ; the pbx_config module.
 | |
| ;
 | |
| ; The "General" category is for certain variables.  
 | |
| ;
 | |
| [general]
 | |
| ;
 | |
| ; If static is set to no, or omitted, then the pbx_config will rewrite
 | |
| ; this file when extensions are modified.  Remember that all comments
 | |
| ; made in the file will be lost when that happens. 
 | |
| ;
 | |
| ; XXX Not yet implemented XXX
 | |
| ;
 | |
| static=yes
 | |
| ;
 | |
| ; if static=yes and writeprotect=no, you can save dialplan by
 | |
| ; CLI command 'save dialplan' too
 | |
| ;
 | |
| writeprotect=no
 | |
| 
 | |
| ;
 | |
| ; The "Globals" category contains global variables that can be referenced
 | |
| ; in the dialplan with ${VARIABLE} or ${ENV(VARIABLE)} for Environmental variable
 | |
| ; ${${VARIABLE}} or ${text${VARIABLE}} or any hybrid
 | |
| ;
 | |
| [globals]
 | |
| CONSOLE=Console/dsp				; Console interface for demo
 | |
| ;CONSOLE=Zap/1
 | |
| ;CONSOLE=Phone/phone0
 | |
| IAXINFO=guest					; IAXtel username/password
 | |
| ;IAXINFO=myuser:mypass
 | |
| TRUNK=Zap/g2					; Trunk interface
 | |
| ;TRUNK=IAX2/user:pass@provider
 | |
| 
 | |
| ;
 | |
| ; Any category other than "General" and "Globals" represent 
 | |
| ; extension contexts, which are collections of extensions.  
 | |
| ;
 | |
| ; Extension names may be numbers, letters, or combinations
 | |
| ; thereof. If an extension name is prefixed by a '_'
 | |
| ; character, it is interpreted as a pattern rather than a
 | |
| ; literal.  In patterns, some characters have special meanings:
 | |
| ;
 | |
| ;   X - any digit from 0-9
 | |
| ;   N - any digit from 2-9
 | |
| ;   [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
 | |
| ;   . - wildcard, matches anything remaining (e.g. _9011. matches anything starting with 9011 including 9011)
 | |
| ;
 | |
| ; For example the extenion _NXXXXXX would match normal 7 digit dialings, while
 | |
| ; _1NXXNXXXXXX would represent an area code plus phone number
 | |
| ; preceeded by a one.
 | |
| ;
 | |
| ; Contexts contain several lines, one for each step of each
 | |
| ; extension, which can take one of two forms as listed below,
 | |
| ; with the first form being preferred.  One may include another
 | |
| ; context in the current one as well, optionally with a
 | |
| ; date and time.  Included contexts are included in the order
 | |
| ; they are listed.
 | |
| ;
 | |
| ;[context]
 | |
| ;exten => someexten,priority,application(arg1,arg2,...)
 | |
| ;exten => someexten,priority,application,arg1|arg2...
 | |
| ;
 | |
| ; Timing list for includes is 
 | |
| ;
 | |
| ;   <time range>|<days of week>|<days of month>|<months>
 | |
| ;
 | |
| ;include => daytime|9:00-17:00|mon-fri|*|*
 | |
| ;
 | |
| ; ignorepat can be used to instruct drivers to not cancel dialtone upon
 | |
| ; receipt of a particular pattern.  The most commonly used example is
 | |
| ; of course '9' like this:
 | |
| ;
 | |
| ;ignorepat => 9
 | |
| ;
 | |
| ; so that dialtone remains even after dialing a 9.
 | |
| ;
 | |
| 
 | |
| ;
 | |
| ; Here are the entries you need to participate in the IAXTEL
 | |
| ; call routing system.  Most IAXTEL numbers begin with 1-700, but
 | |
| ; there are exceptions.  For more information, and to sign
 | |
| ; up, please go to www.gnophone.com or www.iaxtel.com
 | |
| ;
 | |
| [iaxtel700]
 | |
| exten => _91700NXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel)
 | |
| 
 | |
| [iaxprovider]
 | |
| ;switch => IAX2/user:[key]@myserver/mycontext
 | |
| 
 | |
| [trunkint]
 | |
| ;
 | |
| ; International long distance through trunk
 | |
| ;
 | |
| exten => 9011.,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => 9011.,2,Congestion
 | |
| 
 | |
| [trunkld]
 | |
| ;
 | |
| ; Long distance context accessed through trunk
 | |
| ;
 | |
| exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _91NXXNXXXXXX,2,Congestion
 | |
| 
 | |
| [trunklocal]
 | |
| ;
 | |
| ; Local seven-digit dialing accessed through trunk interface
 | |
| ;
 | |
| exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _9NXXXXXX,2,Congestion
 | |
| 
 | |
| [trunktollfree]
 | |
| ;
 | |
| ; Long distance context accessed through trunk interface
 | |
| ;
 | |
| exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _91800NXXXXXX,2,Congestion
 | |
| exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _91888NXXXXXX,2,Congestion
 | |
| exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _91877NXXXXXX,2,Congestion
 | |
| exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
 | |
| exten => _91866NXXXXXX,2,Congestion
 | |
| 
 | |
| [international]
 | |
| ;
 | |
| ; Master context for international long distance
 | |
| ;
 | |
| ignorepat => 9
 | |
| include => longdistance
 | |
| include => trunkint
 | |
| 
 | |
| [longdistance]
 | |
| ;
 | |
| ; Master context for long distance
 | |
| ;
 | |
| ignorepat => 9
 | |
| include => local
 | |
| include => trunkld
 | |
| 
 | |
| [local]
 | |
| ;
 | |
| ; Master context for local, toll-free, and iaxtel calls only
 | |
| ;
 | |
| ignorepat => 9
 | |
| include => default
 | |
| include => parkedcalls
 | |
| include => trunklocal
 | |
| include => iaxtel700
 | |
| include => trunktollfree
 | |
| include => iaxprovider
 | |
| ;
 | |
| ; You can use an alternative switch type as well, to resolve
 | |
| ; extensions that are not known here, for example with remote 
 | |
| ; IAX switching you transparently get access to the remote
 | |
| ; 
 | |
| ; switch => IAX2/user:password@bigserver/local
 | |
| 
 | |
| [macro-stdexten];
 | |
| ;
 | |
| ; Standard extension macro:
 | |
| ;   ${ARG1} - Extension  (we could have used ${MACRO_EXTEN} here as well
 | |
| ;   ${ARG2} - Device(s) to ring
 | |
| ;
 | |
| exten => s,1,Dial(${ARG2},20)					; Ring the interface, 20 seconds maximum
 | |
| exten => s,2,Voicemail(u${ARG1})				; If unavailable, send to voicemail w/ unavail announce
 | |
| exten => s,3,Goto(default,s,1)					; If they press #, return to start
 | |
| exten => s,102,Voicemail(b${ARG1})				; If busy, send to voicemail w/ busy announce
 | |
| exten => s,103,Goto(default,s,1)				; If they press #, return to start
 | |
| 
 | |
| 
 | |
| [demo]
 | |
| ;
 | |
| ; We start with what to do when a call first comes in.
 | |
| ;
 | |
| exten => s,1,Wait,1			; Wait a second, just for fun
 | |
| exten => s,2,Answer			; Answer the line
 | |
| exten => s,3,DigitTimeout,5		; Set Digit Timeout to 5 seconds
 | |
| exten => s,4,ResponseTimeout,10		; Set Response Timeout to 10 seconds
 | |
| exten => s,5,BackGround(demo-congrats)	; Play a congratulatory message
 | |
| exten => s,6,BackGround(demo-instruct)	; Play some instructions
 | |
| 
 | |
| exten => 2,1,BackGround(demo-moreinfo)	; Give some more information.
 | |
| exten => 2,2,Goto(s,6)
 | |
| 
 | |
| exten => 3,1,SetLanguage(fr)		; Set language to french
 | |
| exten => 3,2,Goto(s,5)			; Start with the congratulations
 | |
| 
 | |
| exten => 1000,1,Goto(default,s,1)
 | |
| ;
 | |
| ; We also create an example user, 1234, who is on the console and has
 | |
| ; voicemail, etc.
 | |
| ;
 | |
| exten => 1234,1,Playback(transfer,skip)		; "Please hold while..." 
 | |
| 					; (but skip if channel is not up)
 | |
| exten => 1234,2,Macro(stdexten,1234,${CONSOLE})
 | |
| 
 | |
| exten => 1235,1,Voicemail(u1234)		; Right to voicemail
 | |
| 
 | |
| exten => 1236,1,Dial(Console/dsp)		; Ring forever
 | |
| exten => 1236,2,Voicemail(u1234)		; Unless busy
 | |
| 
 | |
| ;
 | |
| ; # for when they're done with the demo
 | |
| ;
 | |
| exten => #,1,Playback(demo-thanks)		; "Thanks for trying the demo"
 | |
| exten => #,2,Hangup			; Hang them up.
 | |
| 
 | |
| ;
 | |
| ; A timeout and "invalid extension rule"
 | |
| ;
 | |
| exten => t,1,Goto(#,1)			; If they take too long, give up
 | |
| exten => i,1,Playback(invalid)		; "That's not valid, try again"
 | |
| 
 | |
| ;
 | |
| ; Create an extension, 500, for dialing the
 | |
| ; Asterisk demo.
 | |
| ;
 | |
| exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
 | |
| exten => 500,2,Dial(IAX2/guest@misery.digium.com/s@default)	; Call the Asterisk demo
 | |
| exten => 500,3,Playback(demo-nogo)	; Couldn't connect to the demo site
 | |
| exten => 500,4,Goto(s,6)		; Return to the start over message.
 | |
| 
 | |
| ;
 | |
| ; Create an extension, 600, for evaulating echo latency.
 | |
| ;
 | |
| exten => 600,1,Playback(demo-echotest)	; Let them know what's going on
 | |
| exten => 600,2,Echo			; Do the echo test
 | |
| exten => 600,3,Playback(demo-echodone)	; Let them know it's over
 | |
| exten => 600,4,Goto(s,6)		; Start over
 | |
| 
 | |
| ;
 | |
| ; Give voicemail at extension 8500
 | |
| ;
 | |
| exten => 8500,1,VoicemailMain
 | |
| exten => 8500,2,Goto(s,6)
 | |
| ;
 | |
| ; Here's what a phone entry would look like (IXJ for example)
 | |
| ;
 | |
| ;exten => 1265,1,Dial(Phone/phone0,15)
 | |
| ;exten => 1265,2,Goto(s,5)
 | |
| 
 | |
| ;[mainmenu]
 | |
| ;
 | |
| ; Example "main menu" context with submenu
 | |
| ;
 | |
| ;exten => s,1,Answer
 | |
| ;exten => s,2,Background(thanks)		; "Thanks for calling press 1 for sales, 2 for support, ..."
 | |
| ;exten => 1,1,Goto(submenu,s,1)
 | |
| ;exten => 2,1,Hangup
 | |
| ;include => default
 | |
| ;
 | |
| ;[submenu]
 | |
| ;exten => s,1,Ringing					; Make them comfortable with 2 seconds of ringback
 | |
| ;exten => s,2,Wait,2
 | |
| ;exten => s,3,Background(submenuopts)	; "Thanks for calling the sales department.  Press 1 for steve, 2 for..."
 | |
| ;exten => 1,1,Goto(default,steve,1)
 | |
| ;exten => 2,1,Goto(default,mark,2)
 | |
| 
 | |
| [default]
 | |
| ;
 | |
| ; By default we include the demo.  In a production system, you 
 | |
| ; probably don't want to have the demo there.
 | |
| ;
 | |
| include => demo
 | |
| 
 | |
| 
 | |
| ; Real extensions would go here.  Generally you want real extensions to be 4 or 5
 | |
| ; digits long (although there is no such requirement) and start with a single
 | |
| ; digit that is fairly large (like 6 or 7) so that you have plenty of room to
 | |
| ; overlap extensions and menu options without conflict.  You can alias them with
 | |
| ; names, too and use global variables
 | |
| 
 | |
| 
 | |
| ;exten => 6275,Macro(stdexten,6275,${MARK})			; assuming ${MARK} is something like Zap/2
 | |
| ;exten => mark,1,Goto(6275|1)						; alias mark to 6275
 | |
| ;exten => 6236,Macro(stdexten,6236,${WIL})			; Ditto for wil
 | |
| ;exten => wil,1,Goto(6236|1)
 | |
| ;
 | |
| ; Some other handy things are an extension for checking voicemail via
 | |
| ; voicemailmain
 | |
| ;
 | |
| ;exten => 8500,1,VoicemailMain
 | |
| ;exten => 8500,2,Hangup
 | |
| ;
 | |
| ; Or a conference room (you'll need to edit meetme.conf to enable this room)
 | |
| ;
 | |
| ;exten => 8600,1,Meetme,1234
 | |
| ;
 | |
| ; For more information on applications, just type "show applications" at your
 | |
| ; friendly Asterisk CLI prompt.
 | |
| ;
 |