Importing rev 7939 from 1.2
[asterisk/asterisk.git] / doc / extensions.txt
1 The Asterisk dialplan
2 =====================
3
4 The Asterisk dialplan is divided into contexts. A context is simply a group
5 of extensions. For each "line" that should be able to be called, an extension
6 must be added to a context. Then, you configure the calling "line" to have
7 access to this context.
8
9 If you change the dialplan, you can use the Asterisk CLI command
10 "extensions reload" to load the new dialplan without disrupting
11 service in your PBX.
12
13 Extensions are routed according to priority and may be based on any set
14 of characters (a-z), digits, #, and *. Please note that when matching a
15 pattern, "N", "X", and "Z" are interpreted as classes of digits.
16
17 For each extension, several actions may be listed and must be given a unique
18 priority. When each action completes, the call continunes at the next priority
19 (except for some modules which use explicitly GOTO's). 
20
21 When each action completes, it generally moves to the next priority (except for
22 some modules which use explicitly GOTO's. 
23
24 Extensions frequently have data they pass to the executing application
25 (most frequently a string).  You can see the available dialplan applications
26 by entering the "show applications" command in the CLI.
27
28 In this version of Asterisk, dialplan functions are added. These can
29 be used as arguments to any application. For a list of the installed
30 functions in your Asterisk, use the "show functions" command.
31
32 * Example dial plan
33
34 The example dial plan, in the configs/extensions.conf.sample file
35 is installed as extensions.conf if you run "make samples" after
36 installation of Asterisk. This file includes many more instructions
37 and examples than this file, so it's worthwile to read it.
38         
39 * Special extensions
40
41 There are some extensions with important meanings:
42
43         s:      What to do when an extension context is entered (unless
44                 overridden by the low level channel interface)
45                 This is used in macros, and some special cases. 
46                 "s" is not a generic catch-all wildcard extension.
47         i:      What to do if an invalid extension is entered
48         h:      The hangup extension, executed at hangup
49         t:      What to do if nothing is entered in the requisite amount
50                 of time.
51         T:      This is the extension that is executed when the 'absolute'
52                 timeout is reached.  See "show function TIMEOUT" for more
53                 information on setting timeouts.        
54
55 And finally, the extension context "default" is used when either a) an 
56 extension context is deleted while an extension is in use, or b) a specific
57 starting extension handler has not been defined (unless overridden by the
58 low level channel interface).