Howto sur la mise en place d’un Pabx sous Trixbox

Hello mes lapinos. Youhou, ça commence fort!
Le howto du jour: Mise en place d’un IP Pabx. J’ai nommé Asterisk! Nous utiliserons plus particulièrement Trixbox en version 2.8.03. Attention le numéro de version est à prendre au sérieux, il semble qu’entre les différentes versions certains paramètres diffèrent, notamment au niveau de la configuration des trunk SIP.
Comme d’habitude, cet article est juste une petite info dans le grand monde de la téléphonie IP, elle ne m’engage à rien et ne fait pas de moi un pro d’asterisk ou de trixbox. Je les ai mis en œuvre il y a seulement une semaine.

Il n’existe sur le web pratiquement aucun howto valable sur la mise en oeuvre du serveur Trixbox, c’est pourquoi je vais m’efforcer de rédiger quelque chose de correct. Je vais essayer du moins.

Commençons par le commencement: Une bière.

Ensuite:

Enfin, Une seconde bière.

Aller, c’est parti mon kiki! yeheaah…!

1) Le cahier des charges.

Le but est de mettre en place un système de Pabx surIP, pour une petite entreprise par exemple.

Nous aurons trois lignes SIP, deux chez Free et une chez OVH à double canal. Le but est que n’importe quel téléphone IP de l’entreprise puisse contacter l’extérieur sur deux lignes, en fonction de l’occupation de l’une ou de l’autre ainsi que de certaines règles.
-Les numéros payants (en 06 ou 07  ou 08) passeront par une ligne SIP de free. Un appel simultané maxi par cette ligne.
-Les autres numéros, vers les fixes, gratuits donc, passeront par la ligne SIP de chez OVH. Deux appels simultanés maxi sur cette ligne. /!\ l’offre de base d’OVH n’autorise que 99 numéraux différents par mois si on veux rester dans le cadre du tarif à 1,18€ TTC/mois!
-Les appels entrants arriveront par le dernier trunk SIP de free et aboutirons sur un menu vocal.
–Pendant les heures d’ouvertures: Choix du service à joindre par le biais de l’IVR.
–Pendant les heures de fermeture: Message vocal comme quoi c’est fermé… Logique.
Pour résumer: on a 1 ligne entrante et 3 lignes sortantes, dont une réservée pour les portables (oui, OVH permet d’avoir deux communications simultanées). Si par contre les deux canaux OVH sont occupés et qu’on a besoin de passer un coup de fil supplémentaire vers un fixe, la ligne  normalement réservée aux portables pourra être utilisée si celle-ci est libre. La ligne OVH sera cependant réservée exclusivement aux appels vers les fixes.

Le menu interactif vocal (IVR) permettra à notre correspondant de choisir le service ou le site qu’il désire joindre. En effet, l’entreprise peut-être répartie sur différents lieux géographiques. Il suffit pour cela de créer des VPN entre les sites. Dans ce cas, je vous envois à ce magnifique-sublime article.

↑Retour au sommaire↑

2) Le materiel mis en œuvre.

  • Le serveur trixbox tourne sur un environnement virtualisé avec plusieurs autres petits copains serveurs (serveur d’applications, intranet…) . L’Hyperviseur utilisé est proxmox. GÉNIAL comme système! Surement le sujet d’un prochain article.
  • Les téléphones IP utilisés sont des softphones. J’ai nommé X-lite! La configuration du logiciel est détaillée dans le paragraphe « Création des extensions ». Si vous voulez réutiliser vos téléphones analogiques, vous pouvez investir dans ce type d’équipement. Je compte d’ailleurs en acquérir un prochainement pour faire quelques tests.
  • Un réseau IP fonctionnel, avec possibilité de faire de la QOS, non développé ici. Celà permet de mettre des priorités sur certains paquets IP; la voix doit être la plus prioritaire de tous sinon la communication sera saccadée.
  • Conclusion: Cout du matériel dérisoire par rapport à une solution analogique classique. La quantité de postes n’est limitée que par les capacités de calcul de votre serveur ainsi que du débit de votre connexion internet.  Vous pouvez sans soucis utiliser du load balancing pour vos connexions internet. Peut-être bientôt un article la dessus aussi.

↑Retour au sommaire↑

3) Les magnifiques coloriages.

Ci contre un schéma montrant les liaisons entre les différents « modules » d’asterisk.
On commence par les trois trunks SIP, 2 de chez free et un de chez OVH permettant de communiquer avec le monde extérieur.

Ces trunks sont reliés à des routes sortantes et routes entrantes pour pouvoir s’interfacer avec les différents « modules »

La route entrante est dirigée vers une condition de temps.
-Pendant les heures d’ouvertures l’appel entrant est dirigé vers le menu vocal (IVR) permettant de choisir le service à contacter. Les différents services sont composés de plusieurs postes (extensions) rassemblés en groupes d’appels (ring groups).
-Pendant les heures de fermeture, l’appel entrant est dirigé vers une annonce vocale annonçant que les bureaux sont fermés.

Pour contacter l’extérieur, les postes (extensions) composent un numéro soit vers une ligne fixe, soit vers une ligne mobile. En fonction des deux premiers digits du numéro (indicatif régional: 01, 02… ou indicatif pour les téléphones portables 06 ou 07) l’appel est routé vers le bon trunk. Allez rejeter un coup d’oeil au cahier des charges pour vous remettre les conditions en mémoire.

Après avoir vu le cœur de notre Pabx, voyons comment celui-ci s’intègre dans notre réseau. Le schéma ci contre est là pour ça. Ho ça tombe à pic!

Notre entreprise est répartie sur plusieurs sites, ici 3. Un site principal hébergeant notre serveur Trixbox et deux sites secondaires reliés en VPN sur le site principal.

Tous les appels IP sortant des sites secondaires passent donc par le tunnel VPN, arrivent sur le Trixbox du site principal. En fonction de la destination de l’appel (fixe ou mobile) l’appel est routé vers le bon trunk.

Tous les appels entrants sur le numéro de la ligne SIP de free arriveront sur le Trixbox du site principal et seront dirigés vers les postes (extensions) ou groupe de postes (ring groups) choisis dans le menu vocal (IVR).

On remarquera que le réseau téléphonique et informatique partagent les mêmes équipements, donc doivent aussi se partager les débits disponibles. C’est là que doit intervenir la QOS.

OUF. Je pense avoir bien défini le contexte de notre installation. Nous pouvons à présent passer à la configuration de notre serveur Trixbox. Si vous avez des questions sur cette partie, n’hésitez pas à la poster dans les commentaires.

↑Retour au sommaire↑

4) Création des extensions et configuration de X-Lite.

Nous allons dès à présent procéder à la déclaration de nos extensions sur Trixbox. Les extensions désignent les utilisateurs (SIP ou autre) autorisés à se connecter à notre serveur par le biais de différents périphériques. Softphones, téléphones IP, téléphones portables avec client SIP…

Je considère qu’à ce stade trixbox est installé et accède correctement à Internet. Une fois logué sur (http://IPtrixBox/maint) avec les identifiants par défaut maint:password, rendez vous dans la rubrique PBX -> PBX settings. Passez l’interface en Français à l’aide du menu déroulant de droite.

Dans la rubrique Base/extensions, ajoutez un nouveau périphérique SIP avec les paramètres suivants:

Les infobulles des intitulés des champs sont assez claires, aidez-vous en.

-L’extension Utilisateur désigne le numéro à attribuer au poste. Nous commencerons la numérotation arbitrairement à l’index 100. Les numéros ne sont pas forcément consécutifs, il est bien entendu interdit d’avoir deux extensions avec le même numéro!
Je vous déconseille de commencer la numérotation à un index < à 100 car ces valeurs risquent de plus tard être utilisées par votre IVR et vous aurez quelques surprises.

-Le nom Affiché (CID) correspond au nom affiché sur le périphérique de votre correspondant lors d’un appel interne. Lors d’un appel externe ce CID est remplacé par celui défini dans la configuration de votre trunk.

-Le numéro et l’alias SIP ne sont pas utilisés dans notre cas. Referez vous aux infobulles pour plus d’informations.

-le CID sortant sera définit par notre trunk, rien à configurer ici.

-Temporisation sonnerie: non utilisé ici car pas de boite vocale activée.

-Secet: Mot de passe associé à cette extension pour autoriser la connexion au serveur.

-dtmfmode: On laisse la valeur par défaut, on utiliser le mode standard définit par la rfc2833. Le dtmfmode définit, entre autre, les fréquences émises lors de l’appui sur les touches du téléphone.

Tous les autres paramètres sont laissés par défaut, sauf si vous désirez activer la boite vocale de cette extension.

Prenez votre courage à deux mains ou plus et créez autant d’extension que vous en avez besoin en pensant à activer la nouvelle configuration entre chaque ajout d’extension par le biais du bouton orange apparu sous la barre de menus. Ceci vous épargnera quelques bugs.

4.1) Configuration de X-Lite

Toutes vos extensions étant créées  et validées vous pouvez à présent configurer vos téléphones et softphones pour qu’ils se connectent à notre serveur Trixbox.
Pour x-lite, configurez votre compte SIP comme suit:

-Display Name: Votre nom, ce nom n’est en réalité pas utilisé dans notre configuration, il est remplacé par le CID entré dans les paramètres de l’extension.

-User name: Votre numéro d’extension

-Password: le mot de passe définit dans la champ secret de votre extension.

-Authorizarion user name. Rien. Non utilisé dans notre cas.

-Domain: On utilise le mot clef local, sauf si vous avez configuré votre trixbox de façon à l’intégrer dans un domaine.

-Domain proxy: On entre l’adresse IP de notre serveur trixbox.

Les autres paramètres sont laissés aux valeurs par défaut.

Validez, et si votre téléphone est logué avec succès, c’est gagné!
Passez votre premier coup de fil à …. l’horlange parlante de Trixbox par exemple en composant le *60.

Configurez vos différents postes et passez des appels en interne en composant le numéro de l’extension voulue. Vous pouvez vous amuser avec vos deux lignes et jouer à la standardiste casse bonbons en mettant votre correspondant en attente en pressant le bouton hold de x-lite.

↑Retour au sommaire↑

5) Création des trunks SIP

Les trunks sont les liaisons vers l’extérieur, ils peuvent être de différents type. SIP, ZAP, IXA2… Pour notre maquette nous utiliserons uniquement des trunks SIP.

5.1) Création des trunks SIP vers Free

Rendez vous dans Base/trunks et créez un nouveau trunk SIP avec cette configuration:

-Dans le CID sortant entrez le nom devant être affiché sur le téléphone du destinataire sous la forme « nom »<Numéro>. Ce paramètre est obligatoire  chez free pour que les appels aboutissent.

-Ne jamais modifier le CID, logiquement pas besoin de le cocher car vous n’avez rien entré dans le CID de vos extensions.

-Nombre maximal de canaux. Chez free il est de 1. C’est à dire que vous ne pouvez émettre ou recevoir qu’un appel à la fois.

-Nom du trunk: Pour les chrétiens baptisez votre trunk, pour les autres, donnez lui simplement un nom.

-Pour les détails du peer, entrez cette configuration en supprimant les commentaires entre étoiles:

username=09xxxxxxxx **votre numéro freebox**
type=peer
secret=motDePasse **votre mot de passe SIP**
nat=yes **autorise le passage par les routeurs**
insecure=very **spécifique à free**
host=freephonie.net
fromuser=09xxxxxxxx **votre numéro freebox**
fromdomain=freephonie.net **Ci dessous les paramètres spécifiques à free pour les appels entrants**
disallow=all
context=from-trunk
allow=ulaw&alaw&speex **nom des codecs utilisés**

Enfin, renseignez la chaine d’enregistrement sous la forme: 09xxxxxx:motDePasse@freephonie.net

Validez et appliquez les changements.

Faites la même manipulation pour votre second trunk SIP free.

Vous pouvez vérifier que vos trunks sont correctement connectés en vous rendant dans PBX/PBX status, dans la rubrique SIP registery vous devriez avoir la mention registered dans le champ state.

5.2) Création du trunk SIP vers OVH.

Exactement le même principe que nos trunks vers free sauf que chez OVH nous avons le droit à 2 canaux simultanés (ou plus selon votre offre).

Pour les détails du Peer, quelques modifications spécifiques à OVH sont à apporter, voici la configuration complète:

type=peer
host=sip.ovh.net
context=from-trunk
language=fr
insecure=very
username=0033xxxxxxxxx
secret=MotDePasse
disallow=all
allow=alaw&ulaw
nat=yes
canreinvite=no
dtmfmode=auto
restrictcid=no
amaflags=default
fromuser=0033xxxxxxxxx

La chaine d’enregistrement est à modifier sur le même principe que celle de free.

Après avoir créé les routes sortantes et entrantes notre configuration sera fonctionnelle,  cependant un problème de DTMF empêchera notre IVR de fonctionner correctement. Anticipons donc sur ce problème en modifiant le fichier sip_custom.conf grâce au menu PBX/Config file editor. Ajoutez y ces lignes:
dtmfmode=auto
relaxdtmf=yes

Validez, activez les paramètres et vérifiez que le trunk soit actif. Un redémarrage complet de trixbox a été nécessaire pour que mes 3 trunks s’activent. J’avais entre temps modifié la passerelle, d’où peut-être la source de ce bug.

Fin de cette partie; attaquons la suivante.

↑Retour au sommaire↑

6) Configuration des routes sortantes

Rappelez vous de notre cahier des charges, il stipulait que les appels vers les portables devaient passer par un trunk de chez Free, les fixes et appels gratuits par le trunk de chez OVH. En cas d’occupation des lignes réservées aux fixes, si un 3ème appel vers un fixe doit sortir, il empruntera exceptionnellement le trunk Free normalement réservé aux portables. /!\ La réciproque n’est pas vraie.

Attaquons nous donc à la création des routes sortantes.  Nous aurons besoin de 2 routes; une pour aiguiller les appels vers les destinations gratuites (les fixes) et une seconde pour les appels vers les portables.

Rendez vous dans Base/routes sortantes et créez une nouvelle route, celle pour aiguiller les appels vers les portables (la plus simple).

Nom de la route: Donnez un nom explicite à votre route.

Mot de passe de la route: Nous n’exigerons pas de mot de passe pour utiliser cette route. Je n’ai pas encore pu tester la mise en œuvre des 4 paramètres suivants, laissons les donc par défaut.

Masque de numérotation: Ce champ est le plus important, référez vous à l’infobulle pour en connaitre la syntaxe.  Le pipe permet de séparer le préfixe de numérotation du numéro transmis au trunk. Ici nous n’utiliserons pas de préfixe, pour sortir, le pipe n’est donc précédé d’aucun caractère.  Le ‘.’ remplace n’importe quel digit en n’importe quelle quantité. Les numéros commençants par 06 ou 07 emprunteront donc le premier trunk défini dans la séquence de trunk.

Soumettez la nouvelle route et appliquez la nouvelle configuration.

Créons maintenant la seconde route, celle pour aiguiller les appels gratuits vers OVH, ou à titre exceptionnel vers  Free si les deux canaux d’OVH sont occupés. C’est reparti pour un tour.

Nom de la route: versOVH
Masque de numérotation:
|01.
|02.
|03.
|04.
|05.
|08.
|09.

EDIT du 16-06-2010: Franck, un lecteur souligne que les 7 lignes du masque peuvent êtres remplacées par une seule: |0[1-589]. Vous la comprendrez en lisant l’infobulle du masque de numérotation. :) Merci à lui.

Séquence de trunk:
Premier trunk: OVH
Second trunk: Free (si les deux canaux OVH sont occupés).

On valide, on applique. Pif paf pouf. Testez le bon fonctionnement de la configuration avec vos softphones, utilisez les deux lignes de X-lite, ça vous simplifiera la vie, même si quoi qu’il arrive il vous manquera une oreille, et oui, il va falloir passer 3 appels simultanément!

↑Retour au sommaire↑

7) Configuration des routes entrantes.

Dans un premier temps nous ferons aboutir les appels entrants sur une seule extension, cela nous permettra de tester le bon fonctionnement de la route entrante. Plus tard, l’appel sera dirigé vers une condition de temps, qui en fonction de l’heure fera aboutir l’appel sur l’IVR ou sur le message vocal de fermeture. Avant de vous arracher les cheveux sur le non-fonctionnement de la route entrante, pensez à… aller dans votre interface de gestion free et à « Rediriger les appels entrants vers le compte SIP ». Si aucune extension ne décroche ou si votre Trixbox est hors service, les appels sont automatiquement redirigés vers le téléphone branché sur votre freebox.

Ensuite, rendez vous dans Contrôle des appels entrants/Routes entrantes. Créez une nouvelle route et renseignez explicitement le champ Description (appelsDeFree par exemple). Les paramètres à rentrer sont assez succincts:

Numéro SDA: On entre rien, le trunk de free ne nous le transmet pas, de plus, inutile pour notre maquette.
Numéro CID: On entre rien, ce qui signifie qu’on accepte tous les appels quelque soient leurs CID.
Tous les autres paramètres restent par défaut, la partie intéressante maintenant est le choix de la destination. Pour nos tests nous dirigerons tous les appels vers une seule extension. Choisissez celle qui vous convient.

Validez et appliquez la configuration. Appelez le numéro de free pour lequel a été activé la redirection des appels entrants vers le compte SIP. Votre téléphone IP devrait sonner. Tadaha. Yess! nikel! (vous pouvez éventuellement vous embrasser le poignet, et demander à vos collègue si ils en veulent). Caméra café inside.  :)

↑Retour au sommaire↑

8 ) Création des groupes d’appels.

Les groupes d’appels permettent de réunir plusieurs extensions par… par… par groupe! Réunir tous les téléphones de votre service commercial ou tous les téléphones du SAV pour qu’ils sonnent tous par service est plutôt intéressant non. Vous ne trouvez pas? Moi si! Chaque groupe possède un numéro pour le joindre, par défaut la numérotation commence à 600. En composant ce numéro à partir de n’importe quelle extension on fait sonner tous les membres du groupe selon la règle définie dans ring strategy. Pour ce howto, nous créerons 3 groupes, un par site géographiquement distant.

Hop, en avant! Rendez vous dans Controle des appels entrants/Ring groups et créez votre premier groupe selon l’illustration ci-contre:

Groupe Description: Le nom de votre groupe.

Ring strategy: Intéressant cette option. Nous utiliserons  le paramètre ringall, allez voir cette page pour la description des autres paramètres. Ringall permet de faire sonner simultanément toutes les extensions déclarées dans l’Extension List.

Extension List: Listez ici les extensions à intégrer dans le groupe, aidez vous de la liste Extension Quick Pick.

Laissez les autres paramètres par défaut, ils ne seront pas utiles pour notre maquette.

Pour la rubrique Destination if no answer, choisissez le paramètre qui vous convient en cas de non réponse par aucune des extension. Personnellement, J’ai choisi de terminer l’appel par un hangup (raccrocher).

Validez et appliquez les changements. Créez autant de groupes que vous le désirez. Vous pouvez tester le bon fonctionnement de votre configuration en composant directement depuis n’importe quelle extension le numéro d’un groupe.

C’est terminé pour cette partie « Création des groupes d’appels ». On ne peut pas dire que ce soit compliqué!
Pour la suite, allez chercher un voix féminine, nous en aurons besoin pour la création de notre IVR.

↑Retour au sommaire↑

9) Enregistrement des messages pour l’IVR et les heures de fermeture.

Pour notre IVR (menu vocal) et message de fermeture nous aurons besoins de deux messages vocaux différents:
Le premier, celui de notre IVR: Bonjour, tapez 2 pour obtenir le service machin, 3 pour le service truc et 4 pour le service tartampion. Ou si vous connaissez le numéro de poste de votre correspondant, saisissez-le.
Le second, celui diffusé pendant les horaires de fermeture: Bonjour, nos bureaux sont ouverts du Mardi au Samedi de 08H à 12H et de 13H30 à 18H, veuillez renouveler votre appel dans ces créneaux.

Les plus perspicaces d’entre vous auront remarqué que je débute la numérotation des choix de mon IVR à partir du chiffre 2! Non, ce n’est pas juste pour le fun. En effet, mes extensions sont numérotées avec la  forme suivante: 1xx. Notre IVR permettra d’accéder directement à un poste en tapant son numéro pendant le déroulement du message vocal. Si nous avions eu une option numérotée « 1″, asterisk aurait attendu pendant environ 3 secondes la suite de votre saisie pensant que vous composez le numéro d’une extension. Donc, perte de temps.

Une fois la femme trouvée (pour sa voix) rendez vous dans Options et configuration internes/System recordings. A partir de là, deux choix possibles: Enregistrer ses messages directement à partir d’un téléphone, ça tombe bien, la plupart des téléphones sont équipés de microphone :) , ou second moyen, uploader un fichier .wav, ce qui permet de faire un petit arrangement musical ou d’intégrer un jingle. Je n’ai pas encore testé cette seconde méthode.

Utilisons donc la première méthode: Pour notre IVR, entrez le numéro de l’extension à partir de laquelle sera dicté le message puis cliquez sur GO. A partir de l’extension concernée, composez le *77 et attendez le ‘beep’ pour pouvoir parler, validez votre message par la touche # et raccrochez. Quand le message vous convient, donnez lui un nom grâce au champ Name this Recording. Validez, appliquez et passez à l’enregistrement de votre message de fermeture.

Fini! Libérez votre femme et passez à la partie suivante.

↑Retour au sommaire↑

10) Création des IVR.

En créant notre (nos, en réalité) IVR avant de créer les conditions de temps peut vous paraitre illogique si vous vous fiez au schéma de fonctionnement interne de Trixbox. Votre raisonnement n’est pas faux, mais nous allons procéder ainsi si nous voulons configurer correctement nos conditions de temps dans la partie suivante. En effet, celles-ci pointeront vers des IVR, que nous devons donc créer… voilà pour l’explication.

Le principe d’un IVR, je vous le rappel, est de router correctement le correspondant en fonction de son choix entré au clavier après l’écoute des consignes vocales.
Dans notre cas, les correspondants seront routés vers le groupe d’appel qu’ils choisiront (CF le chapitre 8) mais pourront aussi contacter directement une extension en composant son numéro. Pratique pour le mari qui veut contacter secrètement sa femme sans alerter tout le groupe d’appel… :)

Nous créerons en réalité deux IVR dont un un peu particulier, vous verrez. Le premier, classique: en fonction de la touche pressée  dirige l’appel vers le groupe concerné. Le second, le spécial donc; sera un IVR sans choix! il diffusera uniquement notre annonce de fermeture.
La création d’un IVR sans choix semble obligatoire car les conditions de temps ne peuvent pas pointer directement sur un message vocal, je n’ai trouvé aucune raison valable à cette limitation, peut-être un bug de freepbx (l’interface web de gestion d’Asterisk). Si quelqu’un a des infos la dessus, je suis preneur.

IVR nous voiiilllàà!

Change Name: Nom de votre IVR, pour le premier, nommez-le choixGroupes par exemple.

Annoucement: Sélectionnez le message vocal enregistré précédemment grâce à la fonction system recordings.

Timout: temps en secondes après lequel sera rejoué le message vocal si aucune touche n’est pressée.

Enable Direct Dial: Permet de joindre un poste directement en composant son numéro d’extension.

Pour les autres options je vous laisse regarder la documentation.

Ajouter ensuite autant d’options que nécessaire avec les boutons Incrase Option et Decrase Options et remplissez les champs correctement. La petite case de gauche permet d’entrer le chiffre correspondant à l’action choisie dans la partie droite.
Aidez vous de la capture d’écran si cet enchainement de mot sne vous est pas très parlant (il faut dire qu’il se fait déjà tard pour moi :) ).
Pour résumer: Choix 2: on bascule sur le groupe tintin, choix 3: on bascule sur le groupe toto, choix 4, on bascule sur le groupe tartampion.

On valide, et on applique les paramètres.

Recommencez la manipulation pour le second IVR qui sera là uniquement pour diffuser le message de fermeture. Aucun choix, ni redirection à faire du coup.

Validez et… appliquez!

Comme je vous vois tout impatient de tester votre IVR, je ne vais pas vous faire attendre plus longtemps :) . Modifiez provisoirement votre route entrante du chapitre 7, ne dirigez plus les appels vers une extension en particulier mais vers l’IVR que vous souhaitez tester. Appelez vous, et admirez!

Il est possible que la détection de touches ne fonctionne pas, soucis classique de dtmf. Pas de panique. Modifiez le fichier sip_custom.conf par le biais du menu PBX/PBX file editor, ajoutez y les lignes suivantes:
dtmfmode=auto
relaxdtmf=yes

Votre problème devrait maintenant être corrigé.

IVR terminés! Attaquons l’avant dernière partie, la gestion des conditions de temps.

↑Retour au sommaire↑

11) Création du groupe et condition de temps.

Le groupe de temps associé à une condition de temps permet en fonction de l’heure (celle de trixbox) de diriger les appels vers des destinations différentes; appels entrants ou sortants d’ailleurs.
Si nous nous fions au cahier des charges de cet article: Pendant les heures d’ouverture les correspondants sont envoyés vers notre IVR pour choisir leur correspondant, et pendant les heures de fermeture vers l’IVR qui diffuse le message comme quoi les bureaux sont fermés sans aucun choix proposé.

Commençons par créer un groupe de temps qui composera plus tard  notre condition de temps. Rendez vous dans Contrôle des appels entrants/Groupe temps et créez un nouveau groupe de temps. Donnez un nom à ce groupe, j’ai noté le mien heuresOuverture, renseignez vos heures et jours d’ouverture.  Validez et appliquez.

Une fois le groupe de temps créé, il faut l’ajouter à une nouvelle condition de temps. Rendez vous dans Contrôle des appels entrants/Time Conditions et crééz une nouvelle condition de temps, j’ai nommé la mienne fonctionHoraires

Dans la liste déroulante Time group, choisissez votre groupe de temps créé précédemment.

Le mode Day/night ne sera pas utilisé.

Dans la rubrique Destination if time matches, renvoyez l’appel vers votre IVR permetant de choisir le site à joindre.

Enfin, dans la rubrique Destination if time does match, en dehors des horaires spécifiés dans votre groupe de temps donc, renvoyez l’appel vers votre IVR annonçant les heures d’ouverture et interdisant quelconque choix.

Terminé pour cette partie! Plus ça va, plus les chapitres sont courts… c’est génial ça! Passons donc à la… dernière partie! Hop, en avant!

↑Retour au sommaire↑

12) Derniers réglages et tests finaux.

Voilà, la configuration est terminée! Sauf que si vous appelez votre trunk free, vous tombez toujours sur le même IVR quelque soient les heures du test! Zut! Pas de chance! Les meilleurs d’entre vous auront trouvé la cause du problème avant même que je termine cette phrase. Les autres devront lire la phrase qui va suivre :)

Et oui, votre route entrante, créée dans la partie 7 pointe vers… un IVR, l’IVR que vous avez dû tester dans la partie 10. Il faut donc modifier la destination de la route entrante. Ne plus la faire pointer vers un IVR, mais d’après notre premier schéma et d’après votre bonne logique, vers… la condition de temps. Dans la ligne Time Conditions de la route entrante, choisissez la condition de temps créée précédemment.

Et voilà. Tout doit maintenant fonctionner au poil. Passez quelques appels, recevez-en, amusez vous quoi… et vérifiez que tout les appels sortent bien par les bon trunk en fonction de leur destination par le biais de l’onglet Rapports de l’interface web.

Ceci marque la fin du tutorial sur la configuration de trixbox, n’hésitez pas à me faire part de vos remarques par le biais des commentaires.

Bonne continuation et merci de votre lecture ;)

↑Retour au sommaire↑

Ajouter un commentaire, ou un trackback depuis votre site.

18 commentaires sur “Howto sur la mise en place d’un Pabx sous Trixbox”

  1. david dit :

    bonjour j’ai un pb sur les appels entrant
    aucun telephone ne sonne
    apres x modification j’ai le fichier extensions dans tous les sens
    pourriez vous svp me dire a suprimer et les chose qui ne vont pas

    ma config pour le moment 2 astra53i
    et un iphone
    mon extensions.conf:

    [general] ;—————————————–GENERAL————————————
    static=yes
    writeprotect=no
    [globals] ; Variables globales
    dev1=SIP/1001
    dev2=SIP/1002
    iphone=SIP/5000
    cat=SIP/6000
    LigneFree=SIP/free-sortant

    Include =>CTI

    [macro-free-out]
    exten => s,1,Answer
    exten => s,n,Dial(SIP/free-sortant/${ARG1})
    exten => s,n,Hangup()

    [freephonie.net] ; configuration pour les appels entrant
    exten => s,1,Answer() ; décrocher
    ; présentation du menu avec choix des digits de 1 à 4
    exten => s,2,Background(menu_acceuil)
    exten => 1,1,Goto(internal,1001,1) ; choix 1
    exten => 2,1,Goto(internal,1002,1) ; choix 2
    exten => 3,1,Goto(internal,5000,1) ; choix 3
    exten => 4,1,Goto(internal,6000,1) ; choix 4
    exten => i,1,Playback(numeroIncorrect) ; choix autre que 1,2,3,4
    exten => i,2,Goto(incoming,s,2) ; Retour à la présentation du menu
    exten => t,1,Playback(Aurevoir) ; Délai lent, jouer son « Aurevoir »
    exten => t,2,Hangup() ; Raccrocher

    [internal] ;————————————-INTERNAL——————————–

    ;[config astra 1001] ;———————————-astra 53 1001————————-

    ; Téléphone 1001
    exten => 1001,1,Dial(${dev1},30) ; appel 101 avec 15 sec pour répondre
    exten => 1001,2,voicemail(1001@default) ; activation de la boite vocale
    exten => 1001,3,Playback(Indisponible) ; pas de réponse jouer son « Indisponible »
    exten => 1001,4,Wait(10) ; fait patienter 3s avant de raccrocher
    exten => 1001, 5,Hangup

    exten=>888,1,VoicemailMain
    exten=>888,2,Hangup

    ;[config astra 1002] ;———————————-astra 53 1002————————–

    ; Téléphone 1002
    exten => 1002,1,Dial(${dev2},30) ; appel 1002 avec 15 sec pour répondre
    exten => 1002,2,voicemail(1002@default) ; activation de la boite vocale
    exten => 1002,3,Playback(Indisponible) ; pas de réponse jouer son « Indisponible »
    exten => 1002,4,Wait(10) ; fait patienter 3s avant de raccrocher
    exten => 1002, 5,Hangup

    exten=>999,1,VoicemailMain
    exten=>999,2,Hangup

    ;[config iphone] ;———————————–iphone 5000——————————-
    ; iphone
    exten => 5000,1,Dial(${iphone},30)
    exten => 5000,2,Playback(Indisponible)
    exten => 5000,3,Goto(incoming,s,2)

    exten=>1000,1,VoicemailMain
    exten=>1000,2,Hangup

    ;[config iphone] ;———————————–iphone 6000——————————-
    ; iphone
    exten => 6000,1,Dial(${iphone},30)
    exten => 6000,2,Playback(Indisponible)
    exten => 6000,3,Goto(incoming,s,2)

    exten=>2000,1,VoicemailMain
    exten=>2000,2,Hangup

    exten => s,1,GoToIf($[ ${CALLERID(num)} = 0102030405 ]?20)
    exten => s,2,GoTo(s,50)
    exten => s,20,Set(CALLERID(all)=2210)
    exten => s,21,GoTo(s,50)
    exten => s,50,Goto(free-out,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1)

    exten => **1,1,Macro(free-out,${EXTEN})
    exten => _5[1-5,9]XXXXXXXX,1,Macro(free-out,0${EXTEN:1})
    exten => _9.,1,Dial(SIP/free-sortant/${EXTEN:1}) ;sortant
    exten => _0955XXXXXX,1,Macro(free-out,${EXTEN})
    exten => _0[1-5].,1,Dial(${LigneFree}/${EXTEN}) ;LigneFree

    merci de votre aide
    david

  2. Adrien dit :

    Alors ça c’est du commentaire constructif! c’est grâce à des gens comme Laurent que les petit gars de l’internet se motivent à partager leurs connaissances.
    Merci Laurent, ça fait vraiment plaisir! De plus ton retour d’expérience avec free et OVH est intéressant et devrait servir à aiguiller quelques personnes.
    A+
    Adrien

  3. laurent marandet dit :

    Excellent tuto ! En tout cas mieux que celui d’OVH (qui ne fonctionne pas d’emblée pour les appels entrants)
    Je suis toujours étonné de voir, qu’au contraire des pabx classiques, sur FreePBX il est beaucoup plus compliqué de paramétrer avec OVH les appels entrants que les sortants.

    Je déconseille l’achat de cartes d’interface FXO ou T0, car on se prive de la possibilité de virtualiser (avec XENSERVER version gratuite ou VirtualBOX gratuit aussi)Asterisk , alors que c’est vraiment le candidat idéal à la virtualisation.

    J’ai utilisé Freepbx virtualisé depuis d’un an et demi avec 2000 à 4000 (!!!) appels sortants par jour pour 15 postes sip et c’est d’une stabilité incroyable (jamais de « fuite » de mémoire, de reboot)! Bien entendu, je ne fais pas de transcodage (tout est en G711) et je n’utilise pas de musique d’attente en streaming, qui gaspillerait les ressources CPU.

    A la place des cartes PCI, mieux vaut avoir des passerelles genre SPA3102, ou mieux encore, rien du tout, c’est à dire tout en trunk SIP, en prenant le très raisonnable forfait OVH de 3h par mois vers les mobiles, plutôt que d’interfacer la sortie d’une freebox (dont le son est assez pourri en règle générale), sachant que les appels vers l’étranger sont bridés par Free au bout de quelques appels ou au bout d’une heure d’appel, il y a de mystérieuses coupures ou des signaux d’occupation, pour empêcher les gens de profiter de ces appels (vérifié pendant deux ans en entreprise.

    De plus, le SIP freephonie vers les fixes n’est pas du tout fiable (pannes jusqu’à 3 jours consécutifs), alors qu’OVH assure (deux pannes de quelques heures en deux ans).
    Le seul vrai reproche à faire à OVH c’est le côté administratif absolument infernal de bureaucratie pour la mise en service (et çà ne s’arrange pas avec le temps).

  4. Adrien dit :

    Salut tout le monde!
    Donc de base cela ne fonctionne pas avec un modem :-[ il faudrait certainement bricoler dans les fichiers de conf mais je n’ais pas le temps de m’y pencher pour le moment et ne suis pas certain du résultat.
    Je suis donc preneur de tout retour d’expérience à ce niveau.
    Bonne journée

  5. Adrien dit :

    Salut,
    En effet free bride désormais les appels vers les mobiles en SIP.
    La solution de la carte FXO est bonne, mais ça devrait aussi pouvoir fonctionner avec un bête modem PCI.
    Je vais tenter ça cet après midi si j’en trouve le temps.
    A+

  6. Glowsus dit :

    Bonjour,
    merci pour cet EXCELLENT tuto, vraiment bien fait et accessible :) Cependant juste une précision, les appels mobiles en SIP sont désormais interdits par free, il faudrait donc passer par une carte type TDM400 avec module FXO pour pouvoir passer à nouveau des coups de fils sur mobiles. Peux tu le confirmer également Adrien ?

  7. FOYET dit :

    CE DOCUMENT EST FORMIDABLE IL MA AIDé POUR UN FAIRE UN VPN TELEPHONIQUE

  8. Bonjour,

    c’est le premier et peu etre le seul TUTO vraimment tres bien fait

    Merci a toi d’avoir fait cela et bravo

    Courage

  9. Paul dit :

    Merci infiniment de votre travail, c’est vraiment aimable de votre part d’avoir fournit bien des effors et les partagé avec tout le monde

  10. Téléphonie dit :

    les étapes sont un peu plus comliqués surtout pour quelqu’un qui en a pas une bonne idée. d’ailleurs ça ne fonctionne pas je vois

  11. Adrien dit :

    Bonjour,
    Quels sont les symptômes rencontrés, chez moi ça fonctionne nikel avec CETTE config…

  12. tux dit :

    Désole…mais ta config free…ne fonctionne pas…

  13. Franck dit :

    Pour l’exclusion des 06 et 07, il y a toujours cette syntaxe: |0[1-589]. . Ce sera donc toujours une ligne. ;)
    Pi en fait, le pipe (|) n’est pas utile dans ton dial patterns.

    Oui pour Elastix, je l’utilise à la maison pour divers tests et autres développements.
    Utilisé chez un de nos client en passerelle avec un pont Codian (Visio conférence).
    Utilsé chez un autre client sur une petite prod (17 postes, 4 lignes Analogique « FXO »). Et oui, FXO, enfin, pour l’instant. ;)

    Elastix va sortir sa Version 2.0 le 1er Juillet. Des nouveautés vont naitre à partir de cette version comme « bigbluebutton ».
    La gestion des fax le fait. nouveauté: possibilité de passer un fax directement via une interface web qui propose un petit combo texte pour y écrire le petit message. (Simple mais pratique).

    En préparation: RoomX, un module Hôtel / Hôpital pour Elastix.
    Et plein d’autres chose.

  14. Adrien dit :

    Bonjour,
    Merci pour ton commentaire, en effet j’ai remarqué les « jockers » à la trixbox, les Z,X et N mais qui dans mon cas ne me convenaient pas car il aurait fallu exlure le 06 et 07 de N… Peut-être qu’un truc du genre |0N-6,7 aurait fonctionné… mais je viens d’inventer cette syntaxe alors j’en doute :)
    Pour ton saut à l’élastique, tu parles d’elastix? j’ai rapidement survolé, ce que j’ai pu apprécier c’est la propreté de l’interface, les voix françaises de base et semble t’il la gestion simplifiée de fax. Il faudrait que je teste ce point d’ailleurs :)
    Si tu as quelques tuyaux je suis preneur. Tu l’utilise dans quel cadre cet elastix? en production? Sur une grosse infra?
    Merci de m’avoir lu en tout cas ;)
    A+
    Adrien

  15. Franck dit :

    C’est pas mal pour démarrer un IPBX.
    Pour info, tu peux remplacer les :
    |01.
    |02. …etc
    par |0Z.
    Comme çà tu n’as plus qu’une ligne. ;)

    Le Z remplace les digits de 1 à 9.
    Le N remplace les digits de 2 à 9.
    et le X de 0 à 9.

    Pour ma part, j’ai abandonné TrixBox depuis la version 2.4 pour aller saut vers une autre distrib plus à mon goût. Une sorte de saut à l’élastique. :D

  16. Adrien dit :

    Hello Mr Thomas :) En effet, le tuto n’est pas pensé pour quelqu’un de débutant, ce n’est d’ailleurs pas le but.
    Une personne s’attaquant à la mise en place de la VOIP doit quand même avoir un minimum de bagages…
    Merci pour ton commentaire en tout cas :)

  17. Thomas dit :

    Bonjour, je n’ai que parcouru ton tutoriel, et il me semble qu’il n’est pas pensé pour quelqu’un de vraiment débutant.
    La mise en page reste agréable, ce que j’ai lu n’était pas chiant à lire.
    Voilà. Je sais pas si ça me servira un jour comme tutoriel, mais j’applaudis ta motivation et ta rigueur de l’avoir fait.

  18. [...] J’ai nomm Asterisk ! Nous utiliserons plus particulirement Trixbox en version 2.8.03. Attention le numro de version est prendre au srieux, il semble qu’entre les diffrentes versions certains paramtres diffrent, notamment au niveau de la configuration des trunk SIP. …. Vous pouvez vrifier que vos trunks sont correctement connects en vous rendant dans PBX /PBX status, dans la rubrique SIP registery vous devriez avoir la mention registered dans le champ state. …This Post [...]

Ajouter un commentaire

Powered by WordPress