PDA

Voir la version complète : Résolu : Redirection en fonction du numéro appelé



speron
13/06/2012, 11h24
Bonjour,

J'essaie dans mon fichier extensions_custom.conf de rediriger les appels vers les mobiles ( 06 ) vers un trunk particulier ...

J'ai rajouté la ligne suivante, au début des instructions :
exten => _06.,n,Goto(ligne5)

où ligne5 est le label d'une instruction de redirection vers un trunk, que j'utilise déja et qui marche très bien ...

Mais cela ne marche pas ... ca fait foirer tout mon plan d'appel juste après pour ceux qui n'utilisent pas ce 06 ...Exe :
exten => _X.,n,GoToIf($[ "${AMPUSERCID}" = "9900" ]?ligne0)


D'ou ma question .. .ou est mon erreur ? à quoi sert ce "_" en début de chaine ?

Mercii pour votre aide

Stéphane

fastm3
13/06/2012, 21h29
Si tu ne donnes pas tous les elements, ca reste incomprehensible.

Deja tu parles d'un extension_custom.conf et d'un AMPUSERCID qui n'a rien de standard. Je suppose donc que tu utilises Freebpx ce qui est specifique.
Tu extrais des lignes de dialplan sans le contexte dans lequel il se trouve, idem.

Avec un asterisk "nu", on pourrait te donner la ligne de dialplan qui fait cela.
Avec Freepbx, tu dois comprendre le dialplan de celui-ci pour pouvoir le completer dans extensions_custom.conf.

Avec Freepbx, pour utiliser un trunk specifique pour un numero, tu crees une outbound route dans l'interface graphique web. Pas besoin de toucher a un fichier de conf. C'est la meilleure maniere de le faire pour ne pas perturber le dialplan de tous les autres modules.
Tu auras une outbound route mobile, et une outbound route "defaut". On mettra toujours la outbound route la plus restrictive la premiere. Solution propre de freepbx sans editer une seule ligne.

Si tu veux aller au dela du systeme de gestion de route pour les dials externes et si tu connais bien le dialplan interne de freepbx et l'ecriture de dialplan, tu passeras par un custom trunk pour ne pas perturber freepbx et ses autres modules.
On cree une outbound route, qui utilisera un custom trunk. Le custom trunk pointera sur son bout de contexte que tu auras ecrit qu'on pourra avoir mis dans extension_customs.conf
Voir le tuto dans la section tutoriel qui donne un exemple de custom trunk.

Si tu veux experimenter sur le dialplan, il vaut mieux se passer de freepbx. Ca a l'air d'etre le cas, je t'encourage dans cette voie. Ca sera bcp plus simple. Pareil, si tu veux completement sortir du framework de freepbx et ne pas utiliser du tout l'interface graphique, il faut aussi te passer de freepbx.
Fastm3.

speron
18/06/2012, 09h28
Merciii Fastm3,

Alors, j'utilise une trixbox ..... d'il y a 2 ans ..

Le problème est que j'ai plusieurs trunk à utiliser car plusieurs lignes ovh ....
et donc je redirige en fonction du AMPUSERCID, vers tel ou tel trunk ... donc je ne peux pas utiliser les outbound route qui ne prennent pas en compte le poste qui émet l'appel .. ( on en avait déja parlé il y a plusieurs mois )

Jusqu'à présent, tout cela marchait au poil !!

J'aimerais éviter de tout refaire ..mais d'après ce que tu me dis, la réponse à ma question n'est pas évidente et qu'il faut se taper tout le dialplan pour piger pourquoi ca merde avec l'instruction que j'ai ajoutée ... car à priori, elle semble bonne syntaxiquement ... arggg

En tout cas merci pour ta réponse détaillée

Stéphane


Si tu ne donnes pas tous les elements, ca reste incomprehensible.

Deja tu parles d'un extension_custom.conf et d'un AMPUSERCID qui n'a rien de standard. Je suppose donc que tu utilises Freebpx ce qui est specifique.
Tu extrais des lignes de dialplan sans le contexte dans lequel il se trouve, idem.

Avec un asterisk "nu", on pourrait te donner la ligne de dialplan qui fait cela.
Avec Freepbx, tu dois comprendre le dialplan de celui-ci pour pouvoir le completer dans extensions_custom.conf.

Avec Freepbx, pour utiliser un trunk specifique pour un numero, tu crees une outbound route dans l'interface graphique web. Pas besoin de toucher a un fichier de conf. C'est la meilleure maniere de le faire pour ne pas perturber le dialplan de tous les autres modules.
Tu auras une outbound route mobile, et une outbound route "defaut". On mettra toujours la outbound route la plus restrictive la premiere. Solution propre de freepbx sans editer une seule ligne.

Si tu veux aller au dela du systeme de gestion de route pour les dials externes et si tu connais bien le dialplan interne de freepbx et l'ecriture de dialplan, tu passeras par un custom trunk pour ne pas perturber freepbx et ses autres modules.
On cree une outbound route, qui utilisera un custom trunk. Le custom trunk pointera sur son bout de contexte que tu auras ecrit qu'on pourra avoir mis dans extension_customs.conf
Voir le tuto dans la section tutoriel qui donne un exemple de custom trunk.

Si tu veux experimenter sur le dialplan, il vaut mieux se passer de freepbx. Ca a l'air d'etre le cas, je t'encourage dans cette voie. Ca sera bcp plus simple. Pareil, si tu veux completement sortir du framework de freepbx et ne pas utiliser du tout l'interface graphique, il faut aussi te passer de freepbx.
Fastm3.

fastm3
18/06/2012, 10h23
La syntaxe est une chose mais avec les inclusions et tous les contextes de freepbx, ca n'est pas toujours evident de voir les effets de bords.
Mets a jour ta trixbos, change de systeme en meme temps ou prends la solution du custom trunk.
Ton custom trunk pointera vers un contexte choosedialtrunk par exemple et dans celui-ci avec la notation _0X./101 par exemple tu pourras faire facilement ce que tu veux , de maniere propre , tout en t'integrant avec freepbx proprment.
Fastm3.

speron
18/06/2012, 11h44
Merciiiii

Quelle version de trixbox permet de choisir un trunk en fonction du poste appelant comme tu l'indiques ?

speron
25/06/2012, 17h24
Bon je m'en suis sorti avec les REGEXP ....cela semble tourner pas mal avec la ligne suivante :
exten => _X.,n,GoToIf($[ ${REGEX("^06" ${EXTEN})} = 1 ]?ligne5)
Ce qui signifie en clair que si mon numéro commence par 06, je vais au label ligne5 ( qui me redirige vers un trunk précis )

Pas testé mais je viens découvrir cela :
exten => _X.,n,GoToIf($[ "${EXTEN:0:2}" = "06" ]?ligne5)

Si les 2 premiers chiffres à compter du premier (en position 0 ) sont 06 alors on va à "ligne5"

Mercii en tout cas

@+
Stéphane