Sie sind auf Seite 1von 6

Extensions

Une extension est une instruction du plan de numrotation excute pour le poste ou groupe de postes destinataire(s) correspondant son nom. Ce nom est dfini par une squence de touches (numro de tlphone ou alphanumrique). Syntaxe:
exten => nom_extension

Syntaxe complte de l'instruction:

exten => nom_extension, priorit, application()

Exemple: rpondre l'appel numrotant le poste 123


exten => 123, 1, Answer()

Exemple: rpondre l'appel numrotant tout poste commenant par 123 et comportant 5 chiffres
exten => _123XX, 1, Answer()

Les protocoles de VoIP tels H ! ou "IP encoura#ent l$emploi de noms d$extensions alphanumriques ou adresses de messa#erie.

Extensions
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 24

Extensions non spcifiques


Certaines extensions nommes ne sont pas spcifiques un terminal% ni m&me un #roupe de terminaux.

"s": start
L$extension "s"% pour d'ut (start)% #(re automatiquement tous les appels entrants dans un contexte sans extension de destination spcifique (sou)ent utilis dans les macros). Exemple: sur tout appel entrant dcrocher et !ouer le fichier son demandant de numroter une extension
exten => s, 1, Answer() exten => s, 2, Backgroun (enter!ext!o"!person)

"i": invalid
L$extension "i"% pour entre invalide (in"alid)% rece)ra tous les appels dont l$extension numrote ne fi#urera pas dans le menu d'un ser"eur "ocal. Exemple: sur entre in"alide !oue le fichier son correspondant et raccroche
exten => i, 1, #la$%ack(p%x!in&ali ) exten => i, 2, 'angup()

"t": timeout
L$extension "t"% pour dlai dpass (timeout)% sera appele lorsque l$appelant aura mis trop de temps composer une entre demande par une application (exemple* Background()). La temporisation par dfaut est de 10 secondes. Exemple: la chute du dlai de temporisation !ouer le fichier son "m#$ood%ye et raccrocher
exten => t, 1, #la$%ack(&m!goo %$e) exten => t, 2, 'angup()

Extensions
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 25

Priorits
La priorit dfinit l$ordonnancement des instructions relati)es une extension. +lles sont numrotes partir de 1 dans un ordre croissant. +n cas de ,trou, dans la numrotation des priorits% le P-. /stris0 arr&tera l$excution des instructions. Exemple: rpondre sur la numrotation de 123 puis raccrocher
exten => 123, 1, Answer() exten => 123, 2, 'angup()

Les priorits peu)ent comporter du texte indicatif entre parenth(ses% qui ser)ira de nom de rfrence* ce sont des priorits nommes*
exten => 123, 1( croc(er), Answer() exten => 123, 2(raccroc(er), 'angup()

Les priorits peu)ent &tre non numrotes* la priorit n (next) prendra le numro incrment de 1 de la priorit prcdente% rendant le plan de numrotation plus souple. Exemple: rpondre au canal &ui sonne sur numrotation de 123 ta%lir la communication "ers le terminal S'( d'extension 123 puis raccrocher en fin de communication
exten => 123, 1, Answer() exten => 123, n, )ial(*+#,123) exten => 123, n, 'angup()

Priorits
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 26

Applications
Une application excute une action spcifique sur le canal en cours. /nalo#ue une fonction% elle peut rece)oir des arguments entre parenthses ,(), spars par des )ir#ules ,,,. Syntaxe:
application(argument1, argument2,---)

La plupart des applications ne fonctionne que si le canal n'est pas en train de sonner. Il faut donc au prala'le faire rpondre /steris0 (Answer())% qui cre alors le demi2canal appelant2prox3. Tout plan de numrotation devrait donc dbuter ainsi:
.incoming/ exten => s, 1, Answer() exten => s, n, application2() exten => s, n, application3() exten => 123, 1, application1() ---

)a liste des applications *steris+ est accessi%le en li$ne de commande:


01 asterisk !r 23+> core s(ow applications 23+> core s(ow application )ial 45anuel de l$application 6ial (sensi'le la casse)

Applications
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 2

Exemple d'appel
7out terminal tlphonique VoIP (ipphone% softphone) de)ant s$inscrire sur un prox3 pour passer des appels% de)ra ncessairement &tre dclar dans la confi#uration d$/steri0. 6ans le cas o8 l$on dispose de deux ipphones "IP% on rensei#nera le fichier ,etc,asteris+,sip-conf a)ant d$crire le plan de numrotation dans le fichier ,etc,asteris+,extensions-conf selon les r(#les prcdentes. Exemple de confi$uration des ipphones uid.1 et uid1. pour des appels %idirectionnels: ,etc,asteris+,sip-conf:
.ui 41/ t$pe="rien allow=all username=station41 secret=%on5our 6uali"$=$es (ost= $namic context="rom_41 .ui 14/ t$pe="rien allow=all username=station14 secret=%on5our 6uali"$=$es (ost= $namic context="rom_14 49om de compte utilis pour l$enre#istrement du tlphone 4"upport 'idirectionnel des appels 4Liste des codecs autoriss 49om d$utilisateur en cas d$authentification 45ot de passe l$enre#istrement 46termination de la latence rseau par /steris0 4/dressa#e IP d3namique 4Contexte du plan de numrotation traitant les appels de uid:1

4Contexte du plan de numrotation traitant les appels de uid1:

Exe!ple "#appel
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 2$

Exemple d'appel
Exemple de plan de numrotation $rant les numros deux chiffres: ,etc,asteris+,extensions-conf:
."rom_41/ inclu e => interne ."rom_14/ inclu e => interne .interne/ exten => _XX, 1, Answer() exten => _XX, n, )ial(*+#,ui 789X:9;<,34,g5r) exten => _XX, n, 'angup() 46claration du contexte de uid:1 4Inclusion du contexte de numrotation interne 46claration du contexte de uid1: 4Inclusion du contexte de numrotation interne 46claration du contexte interne 4/steris0 ta'lit le demi2canal appelant2prox3 49umrotation du canal "IP rfrenc $uid..$. 4Le destinataire est connu #r;ce la )aria'le <=+.7+9> 4L$appel se termine% on raccroche

/isualisation de l'appel uid.1 "ers uid1. dans la console *steris+:


01 asterisk !r 23+> core set &er%ose 3 !! 9xecuting .14="rom_41>1/ Answer(?*+#,ui 41!4@%4AB%@?, ??) in new stack !! 9xecuting .14="rom_41>2/ )ial(?*+#,ui 41!4@%4AB%@?, ?*+#,ui 14C34Cg5r?) in new stack !! 2alle ui 14 !! *+#,ui 14!4@%4D1e@ is ringing !! *+#,ui 14!4@%4D1e@ answere *+#,ui 41!4@%4AB%@ !! ;ati&e %ri ging *+#,ui 41!4@%4AB%@ an *+#,ui 14!4@%4D1e@ !! 9xecuting .14="rom_41>3/ 'angup(?*+#,ui 41!4@%4AB%@?, ??) in new stack == *pawn extension ("rom_41, 14, 3) exite non!Eero on F*+#,ui 41!4@%4AB%@F

Exe!ple "#appel
(c) Pythagore F.D. 2011

Pythagore F.D.

Page 2%