Commit | Line | Data |
---|---|---|
a52025b1 MN |
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 | |
10 | ||
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=yes | |
38 | ; | |
39 | ; | |
40 | ; | |
41 | ; If extenpatternmatchnew is set (true, yes, etc), then a new algorithm that uses | |
42 | ; a Trie to find the best matching pattern is used. In dialplans | |
43 | ; with more than about 20-40 extensions in a single context, this | |
44 | ; new algorithm can provide a noticeable speedup. | |
45 | ; With 50 extensions, the speedup is 1.32x | |
46 | ; with 88 extensions, the speedup is 2.23x | |
47 | ; with 138 extensions, the speedup is 3.44x | |
48 | ; with 238 extensions, the speedup is 5.8x | |
49 | ; with 438 extensions, the speedup is 10.4x | |
50 | ; With 1000 extensions, the speedup is ~25x | |
51 | ; with 10,000 extensions, the speedup is 374x | |
52 | ; Basically, the new algorithm provides a flat response | |
53 | ; time, no matter the number of extensions. | |
54 | ; | |
55 | ; By default, the old pattern matcher is used. | |
56 | ; | |
57 | ; ****This is a new feature! ********************* | |
58 | ; The new pattern matcher is for the brave, the bold, and | |
59 | ; the desperate. If you have large dialplans (more than about 50 extensions | |
60 | ; in a context), and/or high call volume, you might consider setting | |
61 | ; this value to "yes" !! | |
62 | ; Please, if you try this out, and are forced to return to the | |
63 | ; old pattern matcher, please report your reasons in a bug report | |
64 | ; on https://issues.asterisk.org. We have made good progress in providing | |
65 | ; something compatible with the old matcher; help us finish the job! | |
66 | ; | |
67 | ; This value can be switched at runtime using the cli command "dialplan set extenpatternmatchnew true" | |
68 | ; or "dialplan set extenpatternmatchnew false", so you can experiment to your hearts content. | |
69 | ; | |
70 | ;extenpatternmatchnew=no | |
71 | ; | |
72 | ; If clearglobalvars is set, global variables will be cleared | |
73 | ; and reparsed on a dialplan reload, or Asterisk reload. | |
74 | ; | |
75 | ; If clearglobalvars is not set, then global variables will persist | |
76 | ; through reloads, and even if deleted from the extensions.conf or | |
77 | ; one of its included files, will remain set to the previous value. | |
78 | ; | |
79 | ; NOTE: A complication sets in, if you put your global variables into | |
80 | ; the AEL file, instead of the extensions.conf file. With clearglobalvars | |
81 | ; set, a "reload" will often leave the globals vars cleared, because it | |
82 | ; is not unusual to have extensions.conf (which will have no globals) | |
83 | ; load after the extensions.ael file (where the global vars are stored). | |
84 | ; So, with "reload" in this particular situation, first the AEL file will | |
85 | ; clear and then set all the global vars, then, later, when the extensions.conf | |
86 | ; file is loaded, the global vars are all cleared, and then not set, because | |
87 | ; they are not stored in the extensions.conf file. | |
88 | ; | |
89 | clearglobalvars=no | |
90 | ; | |
91 | ; User context is where entries from users.conf are registered. The | |
92 | ; default value is 'default' | |
93 | ; | |
94 | ;userscontext=default | |
95 | ; | |
96 | ; You can include other config files, use the #include command | |
97 | ; (without the ';'). Note that this is different from the "include" command | |
98 | ; that includes contexts within other contexts. The #include command works | |
99 | ; in all asterisk configuration files. | |
100 | ;#include "filename.conf" | |
101 | ;#include <filename.conf> | |
102 | ;#include filename.conf | |
103 | ; | |
104 | ; You can execute a program or script that produces config files, and they | |
105 | ; will be inserted where you insert the #exec command. The #exec command | |
106 | ; works on all asterisk configuration files. However, you will need to | |
107 | ; activate them within asterisk.conf with the "execincludes" option. They | |
108 | ; are otherwise considered a security risk. | |
109 | ;#exec /opt/bin/build-extra-contexts.sh | |
110 | ;#exec /opt/bin/build-extra-contexts.sh --foo="bar" | |
111 | ;#exec </opt/bin/build-extra-contexts.sh --foo="bar"> | |
112 | ;#exec "/opt/bin/build-extra-contexts.sh --foo=\"bar\"" | |
113 | ; | |
114 | ||
115 | ; The "Globals" category contains global variables that can be referenced | |
116 | ; in the dialplan with the GLOBAL dialplan function: | |
117 | ; ${GLOBAL(VARIABLE)} | |
118 | ; ${${GLOBAL(VARIABLE)}} or ${text${GLOBAL(VARIABLE)}} or any hybrid | |
119 | ; Unix/Linux environmental variables can be reached with the ENV dialplan | |
120 | ; function: ${ENV(VARIABLE)} | |
121 | ; | |
122 | [globals] | |
123 | ||
124 | ; | |
125 | ||
126 | ;CONSOLE=Console/dsp ; Console interface for demo | |
127 | ;CONSOLE=DAHDI/1 | |
128 | ;CONSOLE=Phone/phone0 | |
129 | ;IAXINFO=guest ; IAXtel username/password | |
130 | ;IAXINFO=myuser:mypass | |
131 | ||
132 | ;TRUNK=DAHDI/G2 ; Trunk interface | |
133 | ; | |
134 | ; Note the 'G2' in the TRUNK variable above. It specifies which group (defined | |
135 | ; in chan_dahdi.conf) to dial, i.e. group 2, and how to choose a channel to use | |
136 | ; in the specified group. The four possible options are: | |
137 | ; | |
138 | ; g: select the lowest-numbered non-busy DAHDI channel | |
139 | ; (aka. ascending sequential hunt group). | |
140 | ; G: select the highest-numbered non-busy DAHDI channel | |
141 | ; (aka. descending sequential hunt group). | |
142 | ; r: use a round-robin search, starting at the next highest channel than last | |
143 | ; time (aka. ascending rotary hunt group). | |
144 | ; R: use a round-robin search, starting at the next lowest channel than last | |
145 | ; time (aka. descending rotary hunt group). | |
146 | ; | |
147 | ||
148 | ; TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) | |
149 | ;TRUNK=IAX2/user:pass@provider | |
150 | ||
151 | ;FREENUMDOMAIN=mydomain.com ; domain to send on outbound | |
152 | ; freenum calls (uses outbound-freenum | |
153 | ; context) | |
154 | ||
155 | ; AUF : inclusion des variables globales | |
156 | ; | |
157 | #include "auf/extensions-globals.local" | |
158 | ||
159 | ; | |
160 | ; WARNING WARNING WARNING WARNING | |
161 | ; If you load any other extension configuration engine, such as pbx_ael.so, | |
162 | ; your global variables may be overridden by that file. Please take care to | |
163 | ; use only one location to set global variables, and you will likely save | |
164 | ; yourself a ton of grief. | |
165 | ; WARNING WARNING WARNING WARNING | |
166 | ; | |
167 | ; Any category other than "General" and "Globals" represent | |
168 | ; extension contexts, which are collections of extensions. | |
169 | ; | |
170 | ; Extension names may be numbers, letters, or combinations | |
171 | ; thereof. If an extension name is prefixed by a '_' | |
172 | ; character, it is interpreted as a pattern rather than a | |
173 | ; literal. In patterns, some characters have special meanings: | |
174 | ; | |
175 | ; X - any digit from 0-9 | |
176 | ; Z - any digit from 1-9 | |
177 | ; N - any digit from 2-9 | |
178 | ; [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9) | |
179 | ; . - wildcard, matches anything remaining (e.g. _9011. matches | |
180 | ; anything starting with 9011 excluding 9011 itself) | |
181 | ; ! - wildcard, causes the matching process to complete as soon as | |
182 | ; it can unambiguously determine that no other matches are possible | |
183 | ; | |
184 | ; For example, the extension _NXXXXXX would match normal 7 digit dialings, | |
185 | ; while _1NXXNXXXXXX would represent an area code plus phone number | |
186 | ; preceded by a one. | |
187 | ; | |
188 | ; Each step of an extension is ordered by priority, which must always start | |
189 | ; with 1 to be considered a valid extension. The priority "next" or "n" means | |
190 | ; the previous priority plus one, regardless of whether the previous priority | |
191 | ; was associated with the current extension or not. The priority "same" or "s" | |
192 | ; means the same as the previously specified priority, again regardless of | |
193 | ; whether the previous entry was for the same extension. Priorities may be | |
194 | ; immediately followed by a plus sign and another integer to add that amount | |
195 | ; (most useful with 's' or 'n'). Priorities may then also have an alias, or | |
196 | ; label, in parentheses after their name which can be used in goto situations. | |
197 | ; | |
198 | ; Contexts contain several lines, one for each step of each extension. One may | |
199 | ; include another context in the current one as well, optionally with a date | |
200 | ; and time. Included contexts are included in the order they are listed. | |
201 | ; Switches may also be included within a context. The order of matching within | |
202 | ; a context is always exact extensions, pattern match extensions, includes, and | |
203 | ; switches. Includes are always processed depth-first. So for example, if you | |
204 | ; would like a switch "A" to match before context "B", simply put switch "A" in | |
205 | ; an included context "C", where "C" is included in your original context | |
206 | ; before "B". | |
207 | ; | |
208 | ;[context] | |
209 | ;exten => someexten,{priority|label{+|-}offset}[(alias)],application(arg1,arg2,...) | |
210 | ; | |
211 | ; Timing list for includes is | |
212 | ; | |
213 | ; <time range>,<days of week>,<days of month>,<months>[,<timezone>] | |
214 | ; | |
215 | ; Note that ranges may be specified to wrap around the ends. Also, minutes are | |
216 | ; fine-grained only down to the closest even minute. | |
217 | ; | |
218 | ;include => daytime,9:00-17:00,mon-fri,*,* | |
219 | ;include => weekend,*,sat-sun,*,* | |
220 | ;include => weeknights,17:02-8:58,mon-fri,*,* | |
221 | ; | |
222 | ; ignorepat can be used to instruct drivers to not cancel dialtone upon receipt | |
223 | ; of a particular pattern. The most commonly used example is of course '9' | |
224 | ; like this: | |
225 | ; | |
226 | ;ignorepat => 9 | |
227 | ; | |
228 | ; so that dialtone remains even after dialing a 9. Please note that ignorepat | |
229 | ; only works with channels which receive dialtone from the PBX, such as DAHDI, | |
230 | ; Phone, and VPB. Other channels, such as SIP and MGCP, which generate their | |
231 | ; own dialtone and converse with the PBX only after a number is complete, are | |
232 | ; generally unaffected by ignorepat (unless DISA or another method is used to | |
233 | ; generate a dialtone after answering the channel). | |
234 | ; | |
235 | ||
236 | [default] | |
237 | ; | |
238 | ; pour l'AUF, rien dans le contexte par defaut | |
239 | ||
240 | [macro-AUFDial] | |
241 | ; Macro pour appel AUF | |
242 | ; appelle simultannément les canaux SIP et IAX, pendant 20s | |
243 | ; si pas de réponse, occupé ou indisponible : boite vocale | |
244 | ; ${ARG1} : prenom.com | |
245 | ; exemple : exten => 221,1,Macro(AUFDial,thomas.noel) | |
246 | exten => s,1,Set(CHANNEL(language)=fr) | |
247 | ; exten => s,n,Dumpchan(10) ; décommenter cette ligne pour passer en mode "debug" | |
248 | exten => s,n,Dial(IAX2/${ARG1}&SIP/${ARG1},20,tThHkKwW) ; on appelle sur SIP et IAX pendant 25 secondes, | |
249 | exten => s,n,Goto(s-${DIALSTATUS},1) ; saut en fonction du status de fin de sonnerie | |
250 | ; (parmis : NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) | |
251 | exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN}@AUF,u) ; Si pas de reponse : vers boite vocale avec message "indisponible" | |
252 | exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}@AUF,b) ; Si occupé : vers boite vocale avec message "occupé" | |
253 | exten => _s-.,1,Goto(s-NOANSWER,1) ; Tout le reste : traité comme non-réponse | |
254 | ||
255 | ||
256 | exten => a,1,VoicemailMain(${MACRO_EXTEN}@AUF) ; Si "*" appuyé pendant Voicemail : VoicemailMain | |
257 | ||
258 | ||
259 | [macro-AUFDirectory] | |
260 | ; Macro utilisé pour l'annuaire téléphonie | |
261 | ; cette macro est appelé soit via le menu du standard s'il existe | |
5bc84f52 | 262 | ; ou simplement en ajoutant une entrée spéciale dans le dialplan (auf/extensions.local) |
a52025b1 MN |
263 | exten => s,1,Directory(AUF,AUF,b) |
264 | exten => s,n,MacroExit | |
265 | ||
266 | ||
267 | [macro-AUF-sip-caller-id] | |
268 | ; Indique un Caller ID "correct" en cas d'un appel SIP | |
269 | ; ( inspiration : http://www.loligo.com/asterisk/sipedu/current/configs/extensions.conf ) | |
270 | ; Si le Caller ID contient un deja @ : c'est sans doute l'adresse SIP, on arrete la | |
271 | exten => s,1,Set(rightampersand=${CUT(CALLERID(name),@,2)}) | |
272 | exten => s,n,GotoIf(${ISNULL(${rightampersand})}?setpri:endmacro) | |
273 | ; Sinon, le Caller ID sera IIINNN@sip.auf.org (III = indicatif de l'implantation | |
274 | ; NNN = numero dans l'implantation) | |
275 | exten => s,n(setpri),Set(CALLERID(num)=${CALLERID(num):2}@sip.auf.org) | |
276 | ; S'il n'y a pas de nom d'utilisateur, on met "AUF" | |
277 | exten => s,n,GotoIf(${ISNULL(${CALLERID(name)})}?setid:endmacro) | |
278 | exten => s,n(setid),Set(CALLERID(name)=AUF) | |
279 | exten => s,n(endmacro),NoOp | |
280 | ||
281 | [macro-AUF-enumdial] | |
282 | ; Cherche le correspondant au numero de telephone, en mode ENUM, puis l'appelle | |
283 | ; argument 1 : le numero a chercher | |
284 | ; argument 2 : la technologie (iax2 ou sip) | |
285 | ; argument 3 : la zone DNS (freenum.org, e164.arpa, e164.info, e164.org, ...) | |
286 | exten => s,1,NoOp(ENUM search number ${ARG1} for tech ${ARG2} in zone ${ARG3}) | |
287 | exten => s,n,Set(number=${ARG1}) | |
288 | exten => s,n,Set(tech=${ARG2}) | |
289 | exten => s,n,Set(zone=${ARG3}) | |
290 | exten => s,n,Set(counter=0) | |
291 | exten => s,n,Set(count=${ENUMLOOKUP(${number},${tech},c,,${zone})}) | |
292 | exten => s,n,While($["${counter}"<"${count}"]) | |
293 | exten => s,n,Set(counter=$[${counter}+1]) | |
294 | exten => s,n,Dial(${tech}/${ENUMLOOKUP(${number},${tech},,${counter},${zone})},30,tThHkK) | |
295 | exten => s,n,EndWhile | |
296 | ||
297 | ||
298 | ; pour ceux qui doivent ajouter des macros locales | |
299 | #include "auf/extensions-macros.local" | |
300 | ||
301 | ||
302 | [AUF-pickup] | |
303 | ; pickup : **nnn permet de prendre un appel qui sonne sur le poste nnn | |
304 | exten => _**.,1,Set(CHANNEL(language)=fr) | |
305 | exten => _**.,n,Pickup(${EXTEN:2}@AUF) | |
306 | ||
307 | ||
308 | [AUF-boitesvocales] | |
309 | ; *66 : on lance la boite vocale générale | |
310 | exten => *66,1,Answer() | |
311 | exten => *66,n,Wait(1) | |
312 | exten => *66,n,Set(CHANNEL(language)=fr) | |
313 | exten => *66,n,VoicemailMain(@AUF,p) | |
314 | exten => *66,n,Hangup | |
315 | ; *67nnn : accès direct à la boite nnn | |
316 | exten => _*67.,1,Answer() | |
317 | exten => _*67.,n,Wait(1) | |
318 | exten => _*67.,n,Set(CHANNEL(language)=fr) | |
319 | exten => _*67.,n,VoicemailMain(${EXTEN:3}@AUF) | |
320 | exten => _*67.,n,Hangup | |
321 | ||
322 | [AUF-echo] | |
323 | ||
324 | ; *11 : test d'echo | |
325 | exten => *11,1,Answer() | |
326 | exten => *11,n,Wait(1) | |
327 | exten => *11,n,Set(CHANNEL(language)=fr) | |
328 | exten => *11,n,Playback(demo-echotest) | |
329 | exten => *11,n,Echo | |
330 | exten => *11,n,Playback(demo-echodone) | |
331 | exten => *11,n,Hangup | |
332 | ||
333 | ||
334 | [AUF-enregistrement-voix] | |
335 | ||
336 | ; TOIP: Enregistrement de menus vocaux. | |
337 | ; Le fichier genere est place dans /tmp/asterisk-recording.gsm | |
338 | ; transferer ce fichier vers /usr/share/asterisk/sound/nouveau_nom.gsm | |
339 | exten => *20,1,Wait(2) | |
340 | exten => *20,n,Record(/tmp/asterisk-recording:gsm) ; appuyer sur # pour arrêter l'enregistrement | |
341 | exten => *20,n,Wait(2) | |
342 | exten => *20,n,Playback(/tmp/asterisk-recording) ; l'enregistrement rejouer automatiquement | |
343 | exten => *20,n,wait(2) | |
344 | exten => *20,n,Hangup | |
345 | ||
346 | ||
347 | [AUF-00etoile] | |
348 | ; Appels vers autres systemes externes : ENUM (ISN ou e164), sipbroker, ... | |
349 | ; Appels avec 00** : sipbroker | |
350 | exten => _${AUFPREFIX}**.,1,Goto(AUF-sipbroker,${EXTEN:$[${AUFPREFIXLEN} + 2]},1) | |
351 | ; Appels vers prefixes 00* : systeme ENUM | |
352 | exten => _${AUFPREFIX}*.,1,Set(numero=${EXTEN:$[${AUFPREFIXLEN} + 1]}) | |
353 | ; Si le numéro comporte un "*" alors on va vers ISN, sinon e164 | |
354 | exten => _${AUFPREFIX}*.,n,Set(isndomain=${CUT(numero,*,2)}) | |
355 | exten => _${AUFPREFIX}*.,n,GotoIf(${ISNULL(${isndomain})}?e164:isn) | |
356 | exten => _${AUFPREFIX}*.,n(e164),Goto(AUF-enum-e164,${numero},1) | |
357 | exten => _${AUFPREFIX}*.,n(isn),Goto(AUF-enum-isn,${numero},1) | |
358 | ||
359 | [AUF-enum-isn] | |
360 | ; Appel ISN - voir http://www.freenum.org | |
361 | exten => _X.,1,NoOp(Call ENUM/ISN ${EXTEN}) | |
362 | ; On coupe les appels de plus de 5 heures | |
363 | exten => _X.,n,Set(TIMEOUT(absolute)=18000) | |
364 | ; On configure le Caller ID pour un appel SIP | |
365 | exten => _X.,n,Macro(AUF-sip-caller-id) | |
366 | ; On appelle le numero SIP correspondant | |
367 | exten => _X.,n,Macro(AUF-enumdial,${EXTEN},sip,freenum.org) | |
368 | exten => _X.,n(failed),Answer | |
369 | exten => _X.,n,Playback(invalid) | |
370 | exten => _X.,n,Wait(3) | |
371 | exten => _X.,n,Playback(invalid) | |
372 | exten => _X.,n,Hangup | |
373 | exten => h,1,Hangup | |
374 | exten => i,1,Hangup | |
375 | exten => T,1,Hangup | |
376 | ||
377 | [AUF-enum-e164] | |
378 | exten => _X.,1,NoOp(Call ENUM/e164 ${EXTEN}) | |
379 | ; On coupe les appels de plus de 5 heures | |
380 | exten => _X.,n,Set(TIMEOUT(absolute)=18000) | |
381 | ; On cherche+appelle sur les differents services public ENUM, en IAX2 | |
382 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,e164.arpa) | |
383 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,e164.org) | |
384 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,e164.info) | |
385 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,enum.org) | |
386 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,e164.voxgratia.net) | |
387 | ; exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},iax2,e164.televolution.net) | |
388 | ; On configure le Caller ID pour un appel SIP | |
389 | exten => _X.,n,Macro(AUF-sip-caller-id) | |
390 | ; On cherche+appelle sur les differents services publics ENUM, en SIP | |
391 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,e164.arpa) | |
392 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,e164.org) | |
393 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,e164.info) | |
394 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,enum.org) | |
395 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,e164.voxgratia.net) | |
396 | exten => _X.,n,Macro(AUF-enumdial,+${EXTEN},sip,e164.televolution.net) | |
397 | exten => _X.,n(failed),Answer | |
398 | exten => _X.,n,Playback(invalid) | |
399 | exten => _X.,n,Wait(3) | |
400 | exten => _X.,n,Playback(invalid) | |
401 | exten => _X.,n,Hangup | |
402 | exten => h,1,Hangup | |
403 | exten => i,1,Hangup | |
404 | exten => T,1,Hangup | |
405 | ||
406 | ||
407 | [AUF-sipbroker] | |
408 | exten => _X.,1,NoOp(Call *${EXTEN}@sipbroker.com) | |
409 | exten => _X.,n,Set(TIMEOUT(absolute)=18000) | |
410 | ; exten => _X.,n,Macro(AUF-sip-caller-id) | |
411 | ; exten => _X.,n,Dial(SIP/*${EXTEN}@sipbroker.com) | |
412 | exten => _X.,n,Dial(SIP/sipbroker-out/*${EXTEN},30,tThHkK) | |
413 | exten => _X.,n,Goto(s-${DIALSTATUS},1) ; saut en fonction du status de fin de sonnerie | |
414 | exten => s-CONGESTION,1,Playback(cannot-complete-otherend-error) | |
415 | exten => s-CONGESTION,n,Wait(3) | |
416 | exten => s-CONGESTION,n,Playback(cannot-complete-otherend-error) | |
417 | exten => s-CONGESTION,n,Hangup | |
418 | exten => s-BUSY,1,Playback(on-busy) | |
419 | exten => s-BUSY,n,Hangup | |
420 | exten => s-.,1,Answer | |
421 | exten => s-.,n,Playback(invalid) | |
422 | exten => s-.,n,Wait(3) | |
423 | exten => s-.,n,Playback(invalid) | |
424 | exten => s-.,n,Hangup | |
425 | exten => h,1,Hangup | |
426 | exten => i,1,Hangup | |
427 | exten => T,1,Hangup | |
428 | ||
429 | ||
430 | [AUF-debut] | |
431 | #include "auf/extensions-debut.local" | |
432 | ; ce fichier contient les extensions a ajouter au debut du contexte [AUF], | |
433 | ; eventuellement pour surpasser d'autres contextes... exemple classique : | |
434 | ; appels internationaux vers vendeur VoIP avec le même prefixe que les | |
435 | ; appels internationaux AUF | |
436 | ||
437 | [AUF-local] | |
438 | #include "auf/extensions.local" | |
439 | ; Ce fichier contient les postes locaux, chaque responsable technique | |
440 | ; doit le tenir à jour | |
441 | ||
442 | [AUF-pstn] | |
443 | #include "auf/extensions-pstn.local" | |
444 | ; TOIP: Ce fichier contient le menu principal et les SDA d'entrées du PSTN | |
445 | ; un exemple complet (celui de Montréal) est fourni ici /usr/share/doc/asterisk-config-auf/examples/extensions-pstn.local.montreal.example | |
446 | ||
447 | [AUF-global] | |
448 | #include "auf/extensions.global" | |
449 | ; Note : ce fichier est fourni par le paquet asterisk-config-auf-connexions | |
450 | ||
451 | [AUF] | |
452 | ; Surcharges locales | |
453 | include => AUF-debut | |
454 | ||
455 | ; Services standard | |
456 | include => AUF-echo | |
457 | include => AUF-enregistrement-voix | |
458 | include => parkedcalls | |
459 | include => AUF-boitesvocales | |
460 | include => AUF-pickup | |
461 | ;include => AUF-conferences | |
462 | ||
463 | ; Appels vers les postes locaux | |
464 | include => AUF-local | |
465 | ||
466 | ; Appels vers le PSTN local | |
467 | ; include => AUF-trunklocal | |
468 | ; AUF-trunklocal est fourni par extensions-pstn.local.montreal.exemple | |
469 | ||
470 | ; Appels vers les postes internationaux AUF | |
471 | include => AUF-global | |
472 | ||
473 | ; Appels vers autres systemes externes : ENUM (ISN ou e164), sipbroker, ... | |
474 | include => AUF-00etoile | |
475 | ||
476 | ; Pour surcharges finales, si besoin (autres contextes, surcharges de contextes, etc) | |
477 | #include "auf/extensions-final.local" |