PDA

Voir la version complète : Les priorités dans le fichier extensions.conf



cedricscha
10/09/2010, 19h32
Voici quelques lignes pour rappeler les bases des priorités dans le fichier extensions.conf....

Pour rappel, les priorités sont la deuxièmes parties dans les lignes présentes dans le fichier extensions.conf (en rouge dans les exemples suivant) :

exten => s,1,Answer()

exten => _XXXX,h,Hangup()

exten => 1234,4,Wait(2)

exten => 77,n,Playback(hello-world)


Pour information, Asterisk n'a pas besoin d'ordre spécifique pour fonctionner si on utilise les chiffres dans les priorités..... Ainsi, l'exemple suivant fonctionnera de la même manière que le suivant.....


exten => s,1,Answer()
exten => s,2,Wait(2)
exten => s,3,Playback(hello-world)
exten => s,4,Hangup()


exten => s,4,Hangup()
exten => s,2,Wait(2)
exten => s,1,Answer()
exten => s,3,Playback(hello-world)


Par contre, asterisk ne supporteras pas des sauts dans votre numérotation de priorités.... ainsi l'exemple suivant ne fonctionnera pas.... enfin restera bloqué à la priorité 2 :


exten => s,1,Answer()
exten => s,2,Wait(2)
exten => s,6,Playback(hello-world)
exten => s,7,Hangup()

Si vous prenez la décision d'utiliser la numérotation, n'oublier pas donc qu'en cas d'oubli d'une action, vous devrez renumérotez toutes vos priorités......

C'est la raison pour laquelle, la priorité : n à été ajoutée à asterisk afin d'éviter d'eternelle étape de renumérotation......

Elle s'utilise comme suit :


exten => s,1,Answer()
exten => s,n,Wait(2)
exten => s,n,Playback(hello-world)
exten => s,n,Hangup()


La priorité 1 doit toujours exister c'est elle qui détermine ou asterisk doit débuter.

Ainsi il est beaucoup plus simple d'ajouter une ligne oubliée :D

Je vous entends déjà crier dans le fond si,si je vous entends.....


Comment fais-t'on pour utiliser un Goto, GotoIf ? Hein Comment ?

Ben c'est tout simple :

voici un exemple de code :


exten => s,1,Answer()
exten => s,2,Wait(2)
exten => s,3,Goto(5)
exten => s,4,Hangup()
exten => s,5,Playback(hello-world)
exten => s,6,Hangup()


Et voici sa solution avec la priorité n :


exten => s,1,Answer()
exten => s,n,Wait(2)
exten => s,n,Goto(son)
exten => s,n,Hangup()
exten => s,n(son),Playback(hello-world)
exten => s,n,Hangup()



J'entends également :


Comment fais-t'on pour utiliser un jump dans le dialplan..... ? Hein Comment ?

La aussi c'est tout simple, voici la solutions....


exten => s,1(Appel),Dial(SIP/${EXTEN})
exten => s,n,Hangup()
exten => s,Appel+101,Playback(CollaborateurAbscent)
exten => s,n,Hangup()



J'espère que cela vous aidera

_AK_
19/10/2010, 09h59
Très Bon tuto, beaucoup de questions ou d'erreurs sont dues au priorités quand on debute.

Je mets le sujet en important pour qu'il reste visible.

Merci

bibi
25/04/2011, 17h06
Bonjour,
Mais à quoi correspond la priorité "h"

plouf
26/04/2011, 22h13
h correspond à hangup...

Lors d'un hangup d'un channel, celà peux te permettre d'effectuer certaines opérations...

cedricscha
27/04/2011, 06h38
h correspond à hangup...

Lors d'un hangup d'un channel, celà peux te permettre d'effectuer certaines opérations...
c'est juste,


Bonjour,
Mais à quoi correspond la priorité "h"
Mais ce n'est pas une priorité, mais une extension (http://www.voip-info.org/wiki/view/Asterisk+standard+extensions).

Cela s'utilise comme cela :


exten = h,1,NoOp(Extension h)
exten = h,n,.....

Et non pas :


exten = 111,h,NoOp(Extension h qui ne fonctionne pas)

vinii34
20/04/2012, 11h06
Perso je préfère utiliser :


exten => s,1,Answer()
same => n,Wait(2)
same => n,Playback(hello-world)
same => n,Hangup()

ça rend le code un peu plus clair, 1 ligne = 1 étape coder de façon séquentielle c'est quand même plus intuitif code dans tout langage de programmation : actions, conditions, boucles, fonctions...

LANconcept
27/02/2013, 16h33
Bonjour cedricscha,
tu as l'air super calé moi je suis un n.....

J'ai 4 Trunk sur 4 port FXO d'une TDM410P qui fonctionnent tres bien séparément en composant un préfixe pour les utiliser.
J'ai un soucis je voudrais ne plus avoir de préfixe et qu'ils basculent automatiquement quand ils sont HS ou occupé.

J'avais testé ca sans succés (pour tester le basculement entre 2 Trunk):

vi /etc/asterisk/extensions_custom.conf

[from-pstn-custom]
exten => _0[12345679]XXXXXXXX,1,Dial(TrunkZap01/${exten})
exten => _0[12345679]XXXXXXXX,n,Dial(TrunkZap02/${exten})

j'ai AsteriskNow avec freepbx (je sais c'est pas top)

merci d'avance

fastm3
27/02/2013, 18h40
C'est une question freepbx. Pose la question plutot dans la section correspondante si les elements ci dessous ne suffisent pas. Avec les groupes dahdi et la gestion de failover , tu dois pouvoir gerer cela dans l'interface de freepbx ( les outbounds routes ) . Attention, la gestion de failover vers les trunks en cas de status busy retourné fait qu'on ne continue pas les trunks suivants.
Il faut donc bien specifier le nombre de canaux max et etre au moins en freepbx 2.9 qui change un peu.
Mais l'utilisation des groupes dahdi dans freepbx est une autre solution. ( un seul trunk freepbx pour le groupe , dahdi gerera alors le dispatch )
from-pstn-custom ne t'aidera aucunement pour cela. Tu dois melanger un peu.
Eventuellement, tu as les customs trunks pour faire vraiment tout ce que tu veux pour une gestion sur mesure de l'utilisation des trunks. Mais la, ca demande de comprendre un peu le dialplan freepbx.
Fastm3.