Plan de numérotation
Maintenant que nous avons une plate-forme Asterisk opérationnelle, nous avons l’accès à la puissance du produit en matière de numérotation et de traitement des appels.
Fonctionnement de base
Le plan de numérotation démarre à partir du fichier extensions.conf. Nous avions effleuré une première configuration dans notre précédent article en acheminant les extensions 201, 212 et 220 vers les téléphones respectifs. La syntaxe utilisée se découpe en contexte (présenté entre crochets []), en extension (201 par exemple), en priorité (1) et en action (Dial par exemple).
Dans le contexte [internal], nous avions mis une ligne pour chaque poste de type:
exten => 201,1,Dial(IAX2/201)
Cette ligne stipule que lorsque l’extension 201 est présentée dans le contexte internal, alors, la première action à réaliser est de commuter l’appel vers la ligne IAX2/201. Cette ligne est enregistrée dans iax.conf dans la section [201].
Actions liées
Le traitement d’une extension dans un contexte peut regrouper plusieurs actions, s’enchaînant les unes aux autres avec éventuellement des conditions de saut et de sortie. Le deuxième paramètre spécifie la priorité. On peut par exemple créer un outil de test avec une fonction d’écho qui répétera l’intégralité de ce qui est entendu.
exten => 801,1,Answer() exten => 801,2,Echo()
Ici, on utilise l’extension 801 qui sera utilisable par l’ensemble de nos postes pour avoir un test d’écho. La première règle accepte l’appel (décroche), elle a la priorité 1, la seconde règle appelle la fonction Echo() et a la priorité 2. Les règles sont exécutées dans l’ordre des priorité croissantes.
On pourrait ajouter :
exten => 801,3,Playback(vm-goodbye) exten => 801.4,Hangup()
La règle 3 serait atteinte si l’utilisateur presse # pendant l’écho, terminant celui-ci. La commande Playback joue un fichier intitulé vm-goodbye et fourni par défaut dans les distributions asterisk. Une fois ce fichier terminé, la règle 4 est atteinte et a pour effet de raccrocher la ligne.
Ajouter des contextes
Les règles que nous avons créées jusqu’à présent se situaient dans le contexte [internal], celui-ci est atteint directement par les postes internes de part la configuration dans les fichiers iax.conf et sip.conf à l’aide du paramètre context. S’il on souhaite pouvoir réutiliser des actions spécifiques, comme notre écho, dans plusieurs contextes, il est important de pouvoir capitaliser et n’utiliser qu’une seule définition. On peut alors créer un contexte spécifique pour notre action, par exemple:
[action-echo] exten => s,1,Answer() exten => s,n,Echo() exten => s,n,Playback(vm-goodbye) exten => s.n,Hangup()
Ici, nous avons crée un contexte spécifique qui regroupe toutes les règles nécessaires à l’exécution de la fonction écho. Il ne reste plus qu’à associer une extension 801 dans notre contexte [internal] pour pouvoir en profiter, ceci à l’aide de la fonction Goto:
[internal exten => 801,1,Goto(action-echo,s,1)
Ainsi, si nous avons besoin de cette fonction dans un autre contexte, il nous suffira d’ajouter une extension de ce type.
Premier menu IVR
Avec ces règles de base il devient possible de construire un IVR (Integrated Voice Responder) avec des menus menant à des actions spécifiques. Par exemple, un standard automatique simplifié:
exten => 803,1,Goto(menu01,s,1)[menu01] exten => s,1,Background(enter-ext-of-person)exten => 156,1,Playback(you-entered) exten => 156,2,Playback(digits/1) exten => 156,3,Hangup() exten => 157,1,Playback(you-entered) exten => 157,2,Playback(digits/2) exten => 157,3,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(menu01,s,1) exten => t,1,Hangup()
Ici, l’extension 803 de notre contexte est redirigée vers le menu. Nous utilisons la commande Background() qui est similaire à Playback() mais qui peut être interrompue à tout moment par l’appelant, idéal donc pour présenter un menu sans que celui qui le connaisse soit obligé d’attendre la fin. De plus cette fonction récupère les digits tapés et les fourni comme extension dans le contexte en cours, ici, 156 et 157 sont deux extensions connues et présentées dans le message d’accueil. Si 156 est tapé par l’appelant, on lui joue “you entered 1”, si 157 est tapé on lui joue “you entered 2”, puis on raccroche. Si une extension inconnue est saisie, les règles en extension i sont déclenchées, si l’appelant attend trop longtemps on bascule sur les extensions en t.
Les fonctions de bases de notre PABX sont maintenant en place, nous pourrons une prochaine fois aborder les options élaborées comme la messagerie vocale.
|
Posté par: Alexandre Chauvin-Hameau, le 03/03/2006 Trackback | Popularité: 23% marqué 1.2, asterisk, contexte, extensions.conf et plan de numérotation |
|







