PDA

Voir la version complète : [RESOLU] Route sortante selon trunk entrant



Shadok
31/01/2013, 18h01
Bonjour,

Sous un serveur Asterisk 1.6.2.13 (via Elastix), je cherche à utiliser plusieurs routes sortantes selon le trunk entrant.

En gros, il existe des trunks IAX entre plusieurs serveurs Asterisk.
Ce serveur là est le point de sortie des appels, mais j'aimerais que les appels sortent selon différentes routes (différents trunks sip en réalité) selon le trunk IAX d'arrivée.

Est-ce possible ?
Soit en jouant sur les routes, soit en définissant un CID sur le trunk IAX entrant et en jouant sur ce CID (bien sûr ce sera toujours le trunk SIP sortant qui définira le CID réel).

Merci.

jean
31/01/2013, 21h23
un trunk est associé à un contexte. créée un différent contexte par trunk entrant, utilise des includes ou des macros pour ne pas dupliquer les sections communes, et ca doit rouler

Shadok
31/01/2013, 23h47
J'ai bien un contexte différent par trunk entrant mais pour la suite, je veux bien un exemple si tu en as un à me donner.

Merci.

jean
01/02/2013, 02h26
ben, un truc du genre:

[internal]
exten => _4.,1,Dial(SIP/${EXTEN})

[intrunk1]
include => internal
exten => _0.,1,Dial(SIP/trunkoutA/${EXTEN})

[intrunk2]
include => internal
exten => _0.,1,Dial(SIP/trunkoutB/${EXTEN})

les extensions internes sont en 4xxx, et l'extérieur s'appelle avec 0xxx

Shadok
01/02/2013, 11h11
Ok, je pensais à un schéma plus complexe.
Merci.

fastm3
01/02/2013, 14h05
Tes trunks iax ont du etre marquées comme une route interne dans freepbx je pense.
Si ton dialplan est bien fait avec des plages d'extensions par bureau/asterisk.
freepbx permet dans les outbounds routes de filtrer par emetteur/extension.

A mon avis, il doit etre possible que tu définisses dans ta outbounds routes les extensions ou plages d'extensions qui utiliseront cette outbound toute.
De ce fait, tu auras ce que tu veux sans editer un seul fichier de config à la main.

Note que pour honorer les follow-me et autre fonctionnalités de freepbx, meme si le dialplan au dessus est fonctionnel, on peut aussi utiliser les macros freepbx pour permettre ensuite de le faire evoluer en clic-clic...
Fastm3.

Shadok
01/02/2013, 14h12
Le problème c'est que les différents serveurs à l'étranger pourront avoir les mêmes extensions (101, 102 ...) car ils n'ont aucun lien entre eux.

C'est pour ça que je cherche plutôt à faire la redirection selon le trunk IAx entrant.

fastm3
01/02/2013, 14h44
Pour gerer les comms intersite avec des extensions identiques , tu es bien obligé de mettre un prefixe quelques part pour savoir si c'est le 101 du site 1 ou 2 que tu veux joindre. Donc la solution est possible.
Bref, il y a plein de solutions, en voila une autre la encore orienté freepbx.

Quand ton trunk iax passe du site 1 vers le site 2 tu peux par exemple ajouter un prefixe XXX a tous les numeros passés, le site 2 aura alors des routes specifiques pour ces numeros ( avec le prefixe XXX )
Tout cela est gerable en clic clic mais il vaut mieux connaitre les dessous et surtout , il faut bien plannifier son dialplan intersite avant de se lancer.
Fastm3.

Shadok
01/02/2013, 15h02
Donc par exemple, je mets 001+XXXXXXXXXX dans la route sortante du serveur à l'étranger pour ajouter 001 comme préfixe à tous les appels sortants de ce serveur (on appelle en France donc j'autorise 10 chiffres).

Et dans la route sortante du serveur local, par laquelle je veux passer, je mets donc 001|XXXXXXXXXX en dial pattern pour que ça corresponde.

J'ai bien compris ?

fastm3
01/02/2013, 15h24
001 est pas forcement judicieux vu qu'il s'agit d'un prefixe international et le serveur 2 risque de l'interpreter comme cela s'il y a deja une route internationale.
991 fera l'affaire par exemple. Il faut que tu t'assures que ca ne peut perturber ton dialplan actuel.

Je mettrai le prefixe au niveau de ton trunk iax.
Cela permet par exemple de passer par le trunk iax ( serveur 2 ) et d'avoir un backup local , voip, pstn ou autre. Le trunk backup local n'a pas a recevoir un numero modifié.
C'est un peu complique effectivement a savoir ou on place le traitement prefixe/postfix dans freepbx. Generalement, on fait cela toujours au niveau des outbounds routes ( ou au pire dans extensions_custom.conf ) mais la c'est un cas particulier ou il vaut mieux le faire au niveau du trunk. En le mettant comme indiqué dans la outbound route , ca marchera neanmoins dans ton cas simple s'il n'y a pas d'autres trunks.
Fastm3.

Shadok
01/02/2013, 15h35
"Votre appel ne peut être complété tel que composé".

Selon ce schéma :
serveur1 -> route par défaut -> trunk IAX serveur 1 -> trunk IAX serveur2 -> route B -> trunk SIP

Sur le trunk IAX du serveur 1, j'ai mis "9901" dans le "Outbound dial prefix".
Le trunk IAX côté serveur 2 n'a rien dans le dial prefix.

Par contre, dans la route B du serveur 2, j'ai mis "9901|XXXXXXXXXX" comme "Dial pattern".

Je n'aurai toujours qu'un seul trunk et route côté serveur 1 mais il y en aura plusieurs côté serveur 2.

Je me trompe donc quelque part, mais où ?

Shadok
01/02/2013, 15h43
Ah si, trouvé, je composais mal mon numéro.

Shadok
01/02/2013, 15h51
Bon, tout marche parfaitement, et j'aurai appris des choses, grand merci :)

fastm3
01/02/2013, 16h00
Le forum est la pour ca.
Cheers !
Fastm3.