Fri, 15 Oct 2010 19:06:09 +0200
Correct shared library and plugin link logic, as well as informal text.
Update file server URL, update build resource estimations, correct RPATH
logic, allow for qmake(1) static to shared library changes via CONFIG
argument, correct documentation broken title and index links, correct
shared library install path, install only one set of (correct) plugins,
install the designer shared library (as required by QtCreator), announce
features related to shared linking using qmake(1), and correclty
substitute hard coded paths in prl and la library files.
1 ; extensions.conf - the Asterisk dial plan
2 ;
3 ; Static extension configuration file, used by
4 ; the pbx_config module. This is where you configure all your
5 ; inbound and outbound calls in Asterisk.
6 ;
7 ; This configuration file is reloaded
8 ; - With the "dialplan reload" command in the CLI
9 ; - With the "reload" command (that reloads everything) in the CLI
11 ;
12 ; The "General" category is for certain variables.
13 ;
14 ;[general]
15 ;
16 ; If static is set to no, or omitted, then the pbx_config will rewrite
17 ; this file when extensions are modified. Remember that all comments
18 ; made in the file will be lost when that happens.
19 ;
20 ; XXX Not yet implemented XXX
21 ;
22 ;static=yes
23 ;
24 ; if static=yes and writeprotect=no, you can save dialplan by
25 ; CLI command "dialplan save" too
26 ;
27 ;writeprotect=no
28 ;
29 ; If autofallthrough is set, then if an extension runs out of
30 ; things to do, it will terminate the call with BUSY, CONGESTION
31 ; or HANGUP depending on Asterisk's best guess. This is the default.
32 ;
33 ; If autofallthrough is not set, then if an extension runs out of
34 ; things to do, Asterisk will wait for a new extension to be dialed
35 ; (this is the original behavior of Asterisk 1.0 and earlier).
36 ;
37 ;autofallthrough=no
38 ;
39 ; If clearglobalvars is set, global variables will be cleared
40 ; and reparsed on an extensions reload, or Asterisk reload.
41 ;
42 ; If clearglobalvars is not set, then global variables will persist
43 ; through reloads, and even if deleted from the extensions.conf or
44 ; one of its included files, will remain set to the previous value.
45 ;
46 ; NOTE: A complication sets in, if you put your global variables into
47 ; the AEL file, instead of the extensions.conf file. With clearglobalvars
48 ; set, a "reload" will often leave the globals vars cleared, because it
49 ; is not unusual to have extensions.conf (which will have no globals)
50 ; load after the extensions.ael file (where the global vars are stored).
51 ; So, with "reload" in this particular situation, first the AEL file will
52 ; clear and then set all the global vars, then, later, when the extensions.conf
53 ; file is loaded, the global vars are all cleared, and then not set, because
54 ; they are not stored in the extensions.conf file.
55 ;
56 ;clearglobalvars=no
57 ;
58 ; If priorityjumping is set to 'yes', then applications that support
59 ; 'jumping' to a different priority based on the result of their operations
60 ; will do so (this is backwards compatible behavior with pre-1.2 releases
61 ; of Asterisk). Individual applications can also be requested to do this
62 ; by passing a 'j' option in their arguments.
63 ;
64 ;priorityjumping=yes
65 ;
66 ; User context is where entries from users.conf are registered. The
67 ; default value is 'default'
68 ;
69 ;userscontext=default
70 ;
71 ; You can include other config files, use the #include command
72 ; (without the ';'). Note that this is different from the "include" command
73 ; that includes contexts within other contexts. The #include command works
74 ; in all asterisk configuration files.
75 ;#include "filename.conf"
77 ; The "Globals" category contains global variables that can be referenced
78 ; in the dialplan with the GLOBAL dialplan function:
79 ; ${GLOBAL(VARIABLE)}
80 ; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid
81 ; Unix/Linux environmental variables can be reached with the ENV dialplan
82 ; function: ${ENV(VARIABLE)}
83 ;
84 ;[globals]
85 ;CONSOLE=Console/dsp ; Console interface for demo
86 ;CONSOLE=Zap/1
87 ;CONSOLE=Phone/phone0
88 ;IAXINFO=guest ; IAXtel username/password
89 ;IAXINFO=myuser:mypass
90 ;TRUNK=Zap/G2 ; Trunk interface
91 ;
92 ; Note the 'G2' in the TRUNK variable above. It specifies which group (defined
93 ; in zapata.conf) to dial, i.e. group 2, and how to choose a channel to use in
94 ; the specified group. The four possible options are:
95 ;
96 ; g: select the lowest-numbered non-busy Zap channel
97 ; (aka. ascending sequential hunt group).
98 ; G: select the highest-numbered non-busy Zap channel
99 ; (aka. descending sequential hunt group).
100 ; r: use a round-robin search, starting at the next highest channel than last
101 ; time (aka. ascending rotary hunt group).
102 ; R: use a round-robin search, starting at the next lowest channel than last
103 ; time (aka. descending rotary hunt group).
104 ;
105 ;TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
106 ;TRUNK=IAX2/user:pass@provider
108 ;
109 ; Any category other than "General" and "Globals" represent
110 ; extension contexts, which are collections of extensions.
111 ;
112 ; Extension names may be numbers, letters, or combinations
113 ; thereof. If an extension name is prefixed by a '_'
114 ; character, it is interpreted as a pattern rather than a
115 ; literal. In patterns, some characters have special meanings:
116 ;
117 ; X - any digit from 0-9
118 ; Z - any digit from 1-9
119 ; N - any digit from 2-9
120 ; [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
121 ; . - wildcard, matches anything remaining (e.g. _9011. matches
122 ; anything starting with 9011 excluding 9011 itself)
123 ; ! - wildcard, causes the matching process to complete as soon as
124 ; it can unambiguously determine that no other matches are possible
125 ;
126 ; For example the extension _NXXXXXX would match normal 7 digit dialings,
127 ; while _1NXXNXXXXXX would represent an area code plus phone number
128 ; preceded by a one.
129 ;
130 ; Each step of an extension is ordered by priority, which must
131 ; always start with 1 to be considered a valid extension. The priority
132 ; "next" or "n" means the previous priority plus one, regardless of whether
133 ; the previous priority was associated with the current extension or not.
134 ; The priority "same" or "s" means the same as the previously specified
135 ; priority, again regardless of whether the previous entry was for the
136 ; same extension. Priorities may be immediately followed by a plus sign
137 ; and another integer to add that amount (most useful with 's' or 'n').
138 ; Priorities may then also have an alias, or label, in
139 ; parenthesis after their name which can be used in goto situations
140 ;
141 ; Contexts contain several lines, one for each step of each
142 ; extension, which can take one of two forms as listed below,
143 ; with the first form being preferred.
144 ;
145 ;[context]
146 ;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...)
147 ;exten => someexten,{priority|label{+|-}offset}[(alias)],application,arg1|arg2...
148 ;
149 ; Included Contexts
150 ;
151 ; One may include another context in the current one as well, optionally with a
152 ; date and time. Included contexts are included in the order
153 ; they are listed.
154 ; The reason a context would include other contexts is for their
155 ; extensions.
156 ; The algorithm to find an extension is recursive, and works in this
157 ; fashion:
158 ; first, given a stack on which to store context references,
159 ; push the context to find the extension onto the stack...
160 ; a) Try to find a matching extension in the context at the top of
161 ; the stack, and, if found, begin executing the priorities
162 ; there in sequence.
163 ; b) If not found, Search the switches, if any declared, in
164 ; sequence.
165 ; c) If still not found, for each include, push that context onto
166 ; the top of the context stack, and recurse to a).
167 ; d) If still not found, pop the entry from the top of the stack;
168 ; if the stack is empty, the search has failed. If it's not,
169 ; continue with the next context in c).
170 ; This is a depth-first traversal, and stops with the first context
171 ; that provides a matching extension. As usual, if more than one
172 ; pattern in a context will match, the 'best' match will win.
173 ; Please note that that extensions found in an included context are
174 ; treated as if they were in the context from which the search began.
175 ; The PBX's notion of the "current context" is not changed.
176 ; Please note that in a context, it does not matter where an include
177 ; directive occurs. Whether at the top, or near the bottom, the effect
178 ; will be the same. The only thing that matters is that if there is
179 ; more than one include directive, they will be searched for extensions
180 ; in order, first to last.
181 ; Also please note that pattern matches (like _9XX) are not treated
182 ; any differently than exact matches (like 987). Also note that the
183 ; order of extensions in a context have no affect on the outcome.
184 ;
185 ; Timing list for includes is
186 ;
187 ; <time range>|<days of week>|<days of month>|<months>
188 ;
189 ; Note that ranges may be specified to wrap around the ends. Also, minutes are
190 ; fine-grained only down to the closest even minute.
191 ;
192 ;include => daytime|9:00-17:00|mon-fri|*|*
193 ;include => weekend|*|sat-sun|*|*
194 ;include => weeknights|17:02-8:58|mon-fri|*|*
195 ;
196 ; ignorepat can be used to instruct drivers to not cancel dialtone upon
197 ; receipt of a particular pattern. The most commonly used example is
198 ; of course '9' like this:
199 ;
200 ;ignorepat => 9
201 ;
202 ; so that dialtone remains even after dialing a 9.
203 ;
205 ;
206 ; Sample entries for extensions.conf
207 ;
208 ;
209 ;[dundi-e164-canonical]
210 ;
211 ; List canonical entries here
212 ;
213 ;exten => 12564286000,1,Macro(stdexten,6000,IAX2/foo)
214 ;exten => _125642860XX,1,Dial(IAX2/otherbox/${EXTEN:7})
216 ;[dundi-e164-customers]
217 ;
218 ; If you are an ITSP or Reseller, list your customers here.
219 ;
220 ;exten => _12564286000,1,Dial(SIP/customer1)
221 ;exten => _12564286001,1,Dial(IAX2/customer2)
223 ;[dundi-e164-via-pstn]
224 ;
225 ; If you are freely delivering calls to the PSTN, list them here
226 ;
227 ;exten => _1256428XXXX,1,Dial(Zap/G2/${EXTEN:7}) ; Expose all of 256-428
228 ;exten => _1256325XXXX,1,Dial(Zap/G2/${EXTEN:7}) ; Ditto for 256-325
230 ;[dundi-e164-local]
231 ;
232 ; Context to put your dundi IAX2 or SIP user in for
233 ; full access
234 ;
235 ;include => dundi-e164-canonical
236 ;include => dundi-e164-customers
237 ;include => dundi-e164-via-pstn
239 ;[dundi-e164-switch]
240 ;
241 ; Just a wrapper for the switch
242 ;
243 ;switch => DUNDi/e164
245 ;[dundi-e164-lookup]
246 ;
247 ; Locally to lookup, try looking for a local E.164 solution
248 ; then try DUNDi if we don't have one.
249 ;
250 ;include => dundi-e164-local
251 ;include => dundi-e164-switch
252 ;
253 ; DUNDi can also be implemented as a Macro instead of using
254 ; the Local channel driver.
255 ;
256 ;[macro-dundi-e164]
257 ;
258 ; ARG1 is the extension to Dial
259 ;
260 ; Extension "s" is not a wildcard extension that matches "anything".
261 ; In macros, it is the start extension. In most other cases,
262 ; you have to goto "s" to execute that extension.
263 ;
264 ; For wildcard matches, see above - all pattern matches start with
265 ; an underscore.
266 ;exten => s,1,Goto(${ARG1},1)
267 ;include => dundi-e164-lookup
269 ;
270 ; Here are the entries you need to participate in the IAXTEL
271 ; call routing system. Most IAXTEL numbers begin with 1-700, but
272 ; there are exceptions. For more information, and to sign
273 ; up, please go to www.gnophone.com or www.iaxtel.com
274 ;
275 ;[iaxtel700]
276 ;exten => _91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel)
278 ;
279 ; The SWITCH statement permits a server to share the dialplan with
280 ; another server. Use with care: Reciprocal switch statements are not
281 ; allowed (e.g. both A -> B and B -> A), and the switched server needs
282 ; to be on-line or else dialing can be severly delayed.
283 ;
284 ;[iaxprovider]
285 ;switch => IAX2/user:[key]@myserver/mycontext
287 ;[trunkint]
288 ;
289 ; International long distance through trunk
290 ;
291 ;exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
292 ;exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
294 ;[trunkld]
295 ;
296 ; Long distance context accessed through trunk
297 ;
298 ;exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
299 ;exten => _91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
301 ;[trunklocal]
302 ;
303 ; Local seven-digit dialing accessed through trunk interface
304 ;
305 ;exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
307 ;[trunktollfree]
308 ;
309 ; Long distance context accessed through trunk interface
310 ;
311 ;exten => _91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
312 ;exten => _91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
313 ;exten => _91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
314 ;exten => _91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
316 ;[international]
317 ;
318 ; Master context for international long distance
319 ;
320 ;ignorepat => 9
321 ;include => longdistance
322 ;include => trunkint
324 ;[longdistance]
325 ;
326 ; Master context for long distance
327 ;
328 ;ignorepat => 9
329 ;include => local
330 ;include => trunkld
332 ;[local]
333 ;
334 ; Master context for local, toll-free, and iaxtel calls only
335 ;
336 ;ignorepat => 9
337 ;include => default
338 ;include => trunklocal
339 ;include => iaxtel700
340 ;include => trunktollfree
341 ;include => iaxprovider
343 ;Include parkedcalls (or the context you define in features conf)
344 ;to enable call parking.
345 ;include => parkedcalls
346 ;
347 ; You can use an alternative switch type as well, to resolve
348 ; extensions that are not known here, for example with remote
349 ; IAX switching you transparently get access to the remote
350 ; Asterisk PBX
351 ;
352 ; switch => IAX2/user:password@bigserver/local
353 ;
354 ; An "lswitch" is like a switch but is literal, in that
355 ; variable substitution is not performed at load time
356 ; but is passed to the switch directly (presumably to
357 ; be substituted in the switch routine itself)
358 ;
359 ; lswitch => Loopback/12${EXTEN}@othercontext
360 ;
361 ; An "eswitch" is like a switch but the evaluation of
362 ; variable substitution is performed at runtime before
363 ; being passed to the switch routine.
364 ;
365 ; eswitch => IAX2/context@${CURSERVER}
367 ;[macro-trunkdial]
368 ;
369 ; Standard trunk dial macro (hangs up on a dialstatus that should
370 ; terminate call)
371 ; ${ARG1} - What to dial
372 ;
373 ;exten => s,1,Dial(${ARG1})
374 ;exten => s,n,Goto(s-${DIALSTATUS},1)
375 ;exten => s-NOANSWER,1,Hangup
376 ;exten => s-BUSY,1,Hangup
377 ;exten => _s-.,1,NoOp
379 ;[macro-stdexten];
380 ;
381 ; Standard extension macro:
382 ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
383 ; ${ARG2} - Device(s) to ring
384 ;
385 ;exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum
386 ;exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
388 ;exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce
389 ;exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start
391 ;exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce
392 ;exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start
394 ;exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
396 ;exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain
398 ;[macro-stdPrivacyexten];
399 ;
400 ; Standard extension macro:
401 ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
402 ; ${ARG2} - Device(s) to ring
403 ; ${ARG3} - Optional DONTCALL context name to jump to (assumes the s,1 extension-priority)
404 ; ${ARG4} - Optional TORTURE context name to jump to (assumes the s,1 extension-priority)`
405 ;
406 ;exten => s,1,Dial(${ARG2},20|p) ; Ring the interface, 20 seconds maximum, call screening
407 ; option (or use P for databased call screening)
408 ;exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
410 ;exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce
411 ;exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start
413 ;exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce
414 ;exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start
416 ;exten => s-DONTCALL,1,Goto(${ARG3},s,1) ; Callee chose to send this call to a polite "Don't call again" script.
418 ;exten => s-TORTURE,1,Goto(${ARG4},s,1) ; Callee chose to send this call to a telemarketer torture script.
420 ;exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
422 ;exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain
424 ;[macro-page];
425 ;
426 ; Paging macro:
427 ;
428 ; Check to see if SIP device is in use and DO NOT PAGE if they are
429 ;
430 ; ${ARG1} - Device to page
432 ;exten => s,1,ChanIsAvail(${ARG1}|js) ; j is for Jump and s is for ANY call
433 ;exten => s,n,GoToIf([${AVAILSTATUS} = "1"]?autoanswer:fail)
434 ;exten => s,n(autoanswer),Set(_ALERT_INFO="RA") ; This is for the PolyComs
435 ;exten => s,n,SIPAddHeader(Call-Info: Answer-After=0) ; This is for the Grandstream, Snoms, and Others
436 ;exten => s,n,NoOp() ; Add others here and Post on the Wiki!!!!
437 ;exten => s,n,Dial(${ARG1}||)
438 ;exten => s,n(fail),Hangup
441 ;[demo]
442 ;
443 ; We start with what to do when a call first comes in.
444 ;
445 ;exten => s,1,Wait(1) ; Wait a second, just for fun
446 ;exten => s,n,Answer ; Answer the line
447 ;exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
448 ;exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
449 ;exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
450 ;exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions
451 ;exten => s,n,WaitExten ; Wait for an extension to be dialed.
453 ;exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
454 ;exten => 2,n,Goto(s,instruct)
456 ;exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
457 ;exten => 3,n,Goto(s,restart) ; Start with the congratulations
459 ;exten => 1000,1,Goto(default,s,1)
460 ;
461 ; We also create an example user, 1234, who is on the console and has
462 ; voicemail, etc.
463 ;
464 ;exten => 1234,1,Playback(transfer,skip) ; "Please hold while..."
465 ; (but skip if channel is not up)
466 ;exten => 1234,n,Macro(stdexten,1234,${GLOBAL(CONSOLE)})
468 ;exten => 1235,1,Voicemail(1234,u) ; Right to voicemail
470 ;exten => 1236,1,Dial(Console/dsp) ; Ring forever
471 ;exten => 1236,n,Voicemail(1234,b) ; Unless busy
473 ;
474 ; # for when they're done with the demo
475 ;
476 ;exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo"
477 ;exten => #,n,Hangup ; Hang them up.
479 ;
480 ; A timeout and "invalid extension rule"
481 ;
482 ;exten => t,1,Goto(#,1) ; If they take too long, give up
483 ;exten => i,1,Playback(invalid) ; "That's not valid, try again"
485 ;
486 ; Create an extension, 500, for dialing the
487 ; Asterisk demo.
488 ;
489 ;exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
490 ;exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default) ; Call the Asterisk demo
491 ;exten => 500,n,Playback(demo-nogo) ; Couldn't connect to the demo site
492 ;exten => 500,n,Goto(s,6) ; Return to the start over message.
494 ;
495 ; Create an extension, 600, for evaluating echo latency.
496 ;
497 ;exten => 600,1,Playback(demo-echotest) ; Let them know what's going on
498 ;exten => 600,n,Echo ; Do the echo test
499 ;exten => 600,n,Playback(demo-echodone) ; Let them know it's over
500 ;exten => 600,n,Goto(s,6) ; Start over
502 ;
503 ; You can use the Macro Page to intercom a individual user
504 ;exten => 76245,1,Macro(page,SIP/Grandstream1)
505 ; or if your peernames are the same as extensions
506 ;exten => _7XXX,1,Macro(page,SIP/${EXTEN})
507 ;
508 ;
509 ; System Wide Page at extension 7999
510 ;
511 ;exten => 7999,1,Set(TIMEOUT(absolute)=60)
512 ;exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n|d)
514 ; Give voicemail at extension 8500
515 ;
516 ;exten => 8500,1,VoicemailMain
517 ;exten => 8500,n,Goto(s,6)
518 ;
519 ; Here's what a phone entry would look like (IXJ for example)
520 ;
521 ;exten => 1265,1,Dial(Phone/phone0,15)
522 ;exten => 1265,n,Goto(s,5)
524 ;
525 ; The page context calls up the page macro that sets variables needed for auto-answer
526 ; It is in is own context to make calling it from the Page() application as simple as
527 ; Local/{peername}@page
528 ;
529 ;[page]
530 ;exten => _X.,1,Macro(page,SIP/${EXTEN})
532 ;[mainmenu]
533 ;
534 ; Example "main menu" context with submenu
535 ;
536 ;exten => s,1,Answer
537 ;exten => s,n,Background(thanks) ; "Thanks for calling press 1 for sales, 2 for support, ..."
538 ;exten => s,n,WaitExten
539 ;exten => 1,1,Goto(submenu,s,1)
540 ;exten => 2,1,Hangup
541 ;include => default
542 ;
543 ;[submenu]
544 ;exten => s,1,Ringing ; Make them comfortable with 2 seconds of ringback
545 ;exten => s,n,Wait,2
546 ;exten => s,n,Background(submenuopts) ; "Thanks for calling the sales department. Press 1 for steve, 2 for..."
547 ;exten => s,n,WaitExten
548 ;exten => 1,1,Goto(default,steve,1)
549 ;exten => 2,1,Goto(default,mark,2)
551 ;[default]
552 ;
553 ; By default we include the demo. In a production system, you
554 ; probably don't want to have the demo there.
555 ;
556 ;include => demo
558 ;
559 ; An extension like the one below can be used for FWD, Nikotel, sipgate etc.
560 ; Note that you must have a [sipprovider] section in sip.conf
561 ;
562 ;exten => _41X.,1,Dial(SIP/${EXTEN:2}@sipprovider,,r)
564 ; Real extensions would go here. Generally you want real extensions to be
565 ; 4 or 5 digits long (although there is no such requirement) and start with a
566 ; single digit that is fairly large (like 6 or 7) so that you have plenty of
567 ; room to overlap extensions and menu options without conflict. You can alias
568 ; them with names, too, and use global variables
570 ;exten => 6245,hint,SIP/Grandstream1&SIP/Xlite1,Joe Schmoe ; Channel hints for presence
571 ;exten => 6245,1,Dial(SIP/Grandstream1,20,rt) ; permit transfer
572 ;exten => 6245,n(dial),Dial(${HINT},20,rtT) ; Use hint as listed
573 ;exten => 6245,n,Voicemail(6245,u) ; Voicemail (unavailable)
574 ;exten => 6245,s+1,Hangup ; s+1, same as n
575 ;exten => 6245,dial+101,Voicemail(6245,b) ; Voicemail (busy)
576 ;exten => 6361,1,Dial(IAX2/JaneDoe,,rm) ; ring without time limit
577 ;exten => 6389,1,Dial(MGCP/aaln/1@192.168.0.14)
578 ;exten => 6390,1,Dial(JINGLE/caller/callee) ; Dial via jingle using labels
579 ;exten => 6391,1,Dial(JINGLE/asterisk@digium.com/mogorman@astjab.org) ;Dial via jingle using asterisk as the transport and calling mogorman.
580 ;exten => 6394,1,Dial(Local/6275/n) ; this will dial ${MARK}
582 ;exten => 6275,1,Macro(stdexten,6275,${MARK}) ; assuming ${MARK} is something like Zap/2
583 ;exten => mark,1,Goto(6275|1) ; alias mark to 6275
584 ;exten => 6536,1,Macro(stdexten,6236,${WIL}) ; Ditto for wil
585 ;exten => wil,1,Goto(6236|1)
587 ;If you want to subscribe to the status of a parking space, this is
588 ;how you do it. Subscribe to extension 6600 in sip, and you will see
589 ;the status of the first parking lot with this extensions' help
590 ;exten => 6600,hint,park:701@parkedcalls
591 ;exten => 6600,1,noop
592 ;
593 ; Some other handy things are an extension for checking voicemail via
594 ; voicemailmain
595 ;
596 ;exten => 8500,1,VoicemailMain
597 ;exten => 8500,n,Hangup
598 ;
599 ; Or a conference room (you'll need to edit meetme.conf to enable this room)
600 ;
601 ;exten => 8600,1,Meetme(1234)
602 ;
603 ; Or playing an announcement to the called party, as soon it answers
604 ;
605 ;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg))
606 ;
607 ; For more information on applications, just type "core show applications" at your
608 ; friendly Asterisk CLI prompt.
609 ;
610 ; "core show application <command>" will show details of how you
611 ; use that particular application in this file, the dial plan.
612 ; "core show functions" will list all dialplan functions
613 ; "core show function <COMMAND>" will show you more information about
614 ; one function. Remember that function names are UPPER CASE.