Configuration de la ligne SIP IPPI

Nous avons vu dans l’article « Configuration de la ligne SIP de ma Freebox » comment configurer votre compte SIP de votre abonnement Free dans Xivo pour pouvoir passer et recevoir des appels depuis le réseau téléphonique.

Si votre fournisseur d’accès n’est pas Free, l’opérateur IPPI est une très bonne solution pour raccorder votre serveur Xivo au réseau téléphonique.

Configuration de mon compte IPPI pour créer le trunk SIP

Pour commencer par tester, IPPI propose un forfait « Illimité 5 » gratuit.

Ce forfait comprend les appels vers 5 destinations VoIP pour appeler les utilisateur ippi, SIP, iNum, Google Talk et Skype, peu importe où ils se trouvent dans le monde. Vous disposez d’un canal* entrant et sortant, ainsi que de 3 connexions SIP simultanées pour connecter votre téléphone IP, votre logiciel IP et votre application IP en même temps et être joignable à tout moment.

Gratuitement, vous pourrez recevoir des appels et en créditant votre compte (minimum 5 EUR) pour pourrez également émettre des appels depuis Xivo.

Sur votre compte, vous aurez besoin de noter, en plus de votre mot de passe, les informations suivantes pour configurer Xivo :

ippi_compte

Après création de votre compte chez IPPI, vous pouvez passer à la configuration de Xivo.

Configuration de Xivo

Création d’un contexte

Afin de pouvoir gérer plus facilement les appels entrants, nous créerons un contexte spécifique

Dans « Contextes », cliquer sur le « + » pour ajouter un contexte.

ippi_crea_context

Dans l’onglet « Général », renseigner les données :

  • Nom : nom libre, « from-ippi » par exemple
  • Nom affiché : nom libre
  • Type de contexte : Entrant

ippi_context1

Dans l’onglet « Appels Entrants » :

  • cliquer sur le « + » pour ajouter des numéros.

ippi_context3

Dans l’onglet « Appels Entrants », renseigner les données :

  • Début de l’intervalle de numéros :  saisir le numéro de la ligne IPPI attribuée
  • Nb de chiffres reçus : saisir 10

Il faut ensuite cliquer sur « Sauvegarder »

ippi_context4

Création du trunk SIP

Dans « Protocole SIP », cliquer sur le « + » pour ajouter un trunk.

ippi_trunk1

Dans l’onglet « Général », renseigner les données :

  • Nom : nom libre, « trunk-ippi » par exemple
  • Identifiant d’authentification : l’identifiant que vous avez relevé dans votre compte IPPI
  • Mot de passe :  le mot de passe que vous avez saisi dans votre compte IPPI
  • Type de connexion : Friend
  • Type d’adressage IP : statique, saisir la valeur ippi.fr
  • Contexte : sélectionner le contexte précédemment créé, « Appels entrants IPPI (from-ippi) »
  • Langue : fr_FR

ippi_trunk2

Dans l’onglet « Enregistrement », renseigner les données :

  • Enregistrement : cocher la case
  • Nom : l’identifiant que vous avez relevé dans votre compte IPPI
  • Identifiant d’authentification :  l’identifiant que vous avez relevé dans votre compte IPPI
  • Mot de passe :  le mot de passe que vous avez saisi dans votre compte IPPI
  • serveur distant : ippi.fr

ippi_trunk3

Dans l’onglet « Signalisation », renseigner les données :

  • Personnaliser les codecs : cocher la case
  • Dans la liste de droite, cliquer sur le plus de G711 A-law (Audio) et GSM (Audio)

ippi_trunk4

Dans l’onglet « Avancé », renseigner les données :

  • Insécurité : Tout
  • Réécriture du champ From-User : l’identifiant que vous avez relevé dans votre compte IPPI
  • Réécriture du champ From-Domain : ippi.fr

Il faut ensuite cliquer sur « Sauvegarder »

ippi_trunk5

Nous vérifiions que le trunk SIP est actif par l’intermédiaire de l’interface en ligne de commande de Asterisk.

root@xivo:~# asterisk -r
xivo*CLI> sip show registry
Host                dnsmgr Username     Refresh   State         Reg.Time
ippi.fr:5060        N      identifiant   105      Registered    Thu, 01 May 2014 22:32:21
1 SIP registrations.

On voit que notre trunk est enregistré.

Configuration des appels entrants

Dans « Appels Entrants », cliquer sur le « + ».

ippi_appels_entrants1

Dans l’onglet « Général », renseigner les données :

  • SDA :l’identifiant que vous avez relevé dans votre compte IPPI
  • Contexte : Appels entrants IPPI (from-ippi)
  • Destination : Utilisateur
  • Renvoyez vers : choisir l’utilisateur Xi JinPing

Il faut ensuite cliquer sur « Sauvegarder »

ippi_appels_entrants2

 

Configuration des appels sortants

Dans « Appels Sortants », cliquer sur le « + ».

 

sortant1

Dans l’onglet « Général », renseigner les données :

  • Nom : texte libre, par exemple « ippi »
  • Dans la liste de gauche ajouter « trunk_ippi »

 

ippi_appels_sortants1

 

Renseigner les données :

  • Extension : 9XXXXXXXXXX
  • Stripnum : 1

Cela signifie que lorsqu’un téléphone compose un numéro de 11 numéros dont le premier numéro est un 9, il faut retirer le premier numéro et passer un appel avec le trunk ippi

Il faut ensuite cliquer sur « Sauvegarder »

ippi_appels_sortants2

 

Recharger Asterisk et tests

ippi_recharger

 

Sources :

Documentation officielle Xivo :  http://documentation.xivo.io/production/administration/interconnections/xivo_with_voip_provider.html

Menu de réponse interactive

Introduction

Cet article est directement inspiré de la documentation officielle de XIVO (disponible ici).
Il a pour objectif de soulager la compréhension au moins anglophiles d’entre nous ;p

Cette première rédaction devrait être amendée prochainement de compléments afin d’améliorer la compréhension et les possibilités de ces fonctionnalités fortement appréciées.

Interactive voice response (IVR) is a technology that allows a computer to interact with humans through the use of voice and DTMF tones input via keypad. In telecommunications, IVR allows customers to interact with a company’s host system via a telephone keypad or by speech recognition, after which they can service their own inquiries by following the IVR dialogue.

—Wikipedia

Wikipedia nous apprend que la technologie de réponse interactive permet au système informatisé d’interagir vocalement avec l’humain grâce aux impulsions DTMF que l’on peut envoyer via les claviers. En télécommunication, cette technologie permet aux utilisateurs d’interagir avec le système d’une entreprise via le clavier de leur téléphone ou bien par reconnaissance vocale, afin d’obtenir des réponses à leurs attentes.

Dans cet article nous parlerons de SVI : « Serveur Vocal Interactif » en lieu et place de l’appellation anglophone IVR : « Interactive Vocal Response ».

Les fonctions de SVI ne sont actuellement par disponibles en mode graphique dans XIVO. Elles sont actuellement supporté via des scripts, aussi appelé « dialplan ».

Cas : un SVI minimaliste

ivr2

 

Configuration du fichier et du Dialplan

Dans un premier temps, nous avons besoin de créer un fichier de configuration, qui concerne un contexte asterisk et votre dialplan SVI. Dans notre exemple, ils sont tous les deux (le fichier et le contexte) appelé « dpr-ivr-example ».

ivr1

Copiez ensuite les lignes suivantes dans ce nouveau fichier (dans notre cas, « dpr-ivr-example »)

[dp-ivr-example]

exten = s,1,NoOp(### dp-ivr-example.conf ###)
same = n,NoOp(Set the context containing your ivr destinations.)
same = n,Set(IVR_DESTINATION_CONTEXT=my-ivr-destination-context)
same = n,NoOp(Set the directory containing your ivr sounds.)
same = n,Set(GV_DIRECTORY_SOUNDS=/var/lib/xivo/sounds/ivr-sounds)
same = n,NoOp(the system answers the call and waits for 1 second before continuing)
same = n,Answer(1000)

same = n,NoOp(the system plays the first part of the audio file "welcome to ...")
same = n(first),Playback(${GV_DIRECTORY_SOUNDS}/ivr-example-welcome-sound)

same = n,NoOp(variable "counter" is set to 0)
same = n(beginning),Set(counter=0)

same = n,NoOp(variable "counter" is incremented and the label "start" is defined)
same = n(start),Set(counter=$[${counter} + 1])

same = n,NoOp(counter variable is now = ${counter})
same = n,NoOp(waiting for 1 second before reading the message that indicate all choices)
same = n,Wait(1)
same = n,NoOp(play the message ivr-example-choices that contain all choices)
same = n,Background(${GV_DIRECTORY_SOUNDS}/ivr-example-choices)
same = n,NoOp(waiting for DTMF during 5s)
same = n,Waitexten(5)

;##### CHOICE 1 #####
exten = 1,1,NoOp(pressed digit is 1, redirect to 8000 in ${IVR_DESTINATION_CONTEXT} context)
exten = 1,n,Goto(${IVR_DESTINATION_CONTEXT},8000,1)

;##### CHOICE 2 #####
exten = 2,1,NoOp(pressed digit is 2, redirect to 8833 in ${IVR_DESTINATION_CONTEXT} context)
exten = 2,n,Goto(${IVR_DESTINATION_CONTEXT},8833,1)

;##### CHOICE 3 #####
exten = 3,1,NoOp(pressed digit is 3, redirect to 8547 in ${IVR_DESTINATION_CONTEXT} context)
exten = 3,n,Goto(${IVR_DESTINATION_CONTEXT},8547,1)

;##### CHOICE 4 #####
exten = 4,1,NoOp(pressed digit is 4, redirect to start label in this context)
exten = 4,n,Goto(s,start)

;##### TIMEOUT #####
exten = t,1,NoOp(no digit pressed for 5s, process it like an error)
exten = t,n,Goto(i,1)

;##### INVALID CHOICE #####
exten = i,1,NoOp(if counter variable is 3 or more, then goto label "error")
exten = i,n,GotoIf($[${counter}>=3]?error)
exten = i,n,NoOp(pressed digit is invalid and less than 3 errors: the guide ivr-exemple-invalid-choice is now played)
exten = i,n,Playback(${GV_DIRECTORY_SOUNDS}/ivr-example-invalid-choice)
exten = i,n,Goto(s,start)
exten = i,n(error),Playback(${GV_DIRECTORY_SOUNDS}/ivr-example-error)
exten = i,n,Hangup()

Appel externe sur le SVI

Pour utiliser le script dp-ivr-example lors d’un appel externe sur un numéro dédié (2), il faut créer un « appel entrant » (1) et rediriger vers ledit script avec la commande (3) :

Goto(dp-ivr-example,s,1)

ivr4

 

Astuce de configuration XIVO pour la migration « progressive » d’une ligne mobile vers une autre

Astuce de configuration XIVO pour la gestion de la migration « progressive » d’une ligne mobile vers une autre

 

L’objectif de cette note est d’exposer une astuce de configuration du serveur XIVO pour répondre à un besoin de migration « douce » d’une ligne mobile vers une autre.

La contrainte étant que tout appelant vers l’ancien numéro soit :

1 – averti par message vocal du changement de numéro de leur correspondant,

2 – mis en relation automatiquement.

 

Table des matières

  1. Création d’une file d’attente
  2. Configuration de la file à notre besoin
    1. Réglage du temps de sonnerie
    2. Renvoi de l’appel vers une tierce ligne
  3. Identification d’une SDA
  4. Renvoi inconditionnel de l’ancienne ligne

 

Création d’une file d’attente :

Petit rappel sur la création d’une file d’attente sur le XIVO.

La fonction se travaille via la rubrique « Centre d’appel ».

10000000000000870000009D2FD27655459BFB3D

Menu « Centre d’appel ».

La liste des files existantes apparait alors, et nous allons en créer une nouvelle.

10000000000004930000013568164474A676CB1A

Nous n’allons pas faire un cours magistral sur les files d’attente, mais nous limiter à notre périmètre de besoin.

Configuration de la file à notre besoin

1000000000000394000001600D824B0B3D34F0AC

Après avoir nommé la file, assigné un numéro de file, vérifié la stratégie de sonnerie et le contexte, il ne faudra pas oublier de sélectionner la musique d’attente adaptée à notre besoin.

Le point suivant à paramétrer se trouve dans la rubrique « Application ».

Réglage du temps de sonnerie

10000000000003950000017A972A2A55DE921624

Dans cette rubrique, il nous faut convenir d’un « temps de sonnerie » qui laissera le message se dérouler dans son intégralité.

Dans cet exemple, mon message d’information dure 24 secondes. Donc, je reporte ce temps dans le champ idoine sans oublier de préciser le champ « priorité du temps de sonnerie » sur « configuration ». De plus, il ne faudra pas oublier d’autoriser l’appelant à transférer l’appel en cochant la bonne case.

Renvoi de l’appel vers une tierce ligne

Petit rappel sur la philosophie des files d’attente : le « message » audio paramétré dans la rubrique générale est destiné à faire patienter l’appelant. Pendant ce laps de temps, la file d’attente fait sonner le, ou les, destinataires potentiellement raccrochés à cette file. Or, dans cette astuce, il y en a aucun. Ce qui signifie que l’appel sonne dans le vide. À la fin du temps de sonnerie imparti – ici 24 secondes – le système passe en mode « non-réponse ». Ce qui nous permet de procéder au renvoi vers une tierce ligne externe.

Il nous faut donc stipuler que le renvoi sera un « appel sortant » de type « portable », sans oublier de saisir le numéro à 10 chiffres de la destination.

1000000000000395000002152b626f9f16ecd719

Enfin, nous « sauvegardons » précieusement ce paramétrage avant de passer à la suite du processus.

 Identification d’une SDA :

Si vous avez la chance d’avoir des SDA déjà prête, mais non activée, vous n’aurez plus qu’à vous servir.

10000000000003970000005E1FEAB3D1731A0187

Dans le cas contraire, il faudra passer par tout le processus de définition d’une SDA qui ne sera pas décrit ici.

Nous allons donc paramétrer notre ligne.

1000000000000396000001ADBE09A2EF73322F53

La SDA est bien entendu associée à la file d’attente que nous avons précédemment configurée.

Il ne faudra pas oublier de sauvegarder cette configuration.

 Renvoi inconditionnel de l’ancienne ligne

Ce paramétrage se base sur les fonctions à disposition chez l’opérateur mobile ORANGE.

Sur l’ancien mobile, il faut saisir la séquence suivante **21*<numéro de la SDA XIVO># et valider.

Dorénavant, tout appel entrant sur cette ligne sera redirigé vers la SDA de notre XIVO. Ce dernier va alors décrocher automatiquement, diffuser son message d’information puis renvoyer directement vers la nouvelle ligne.

Ce qui fournit une solution « douce » et transparente pour les utilisateurs durant le temps de transition (que je fixe personnellement à 1 mois).

Filtrage d’appel : relation Patron – Secrétaire

L’objet de cette procédure est de construire une relation dite « Patron – Secrétaire » entre un responsable et un – ou plusieurs – collaborateurs en matière d’accueil téléphonique.

Les étapes :

Etape 1 : Positionner le statut « Patron »
Etape 2 : Positionner le statut « Secrétaire »
Etape 3 : Création du filtrage
Etape 4 : Activation sur les postes

Etape 1 : Positionner le statut « Patron »

Sur le compte SIP du responsable, il faut veiller à activer le statut « Patron ».

filtre_patron_01

 

Etape 2 : Positionner le statut « Secrétaire »

A l’inverse, sur la ligne SIP des collaborateurs/assistants, il faut veiller à activer le statut « Secrétaire ».

filtre_patron_02

 

Etape 3 : Création du filtrage

Ensuite, dans la rubrique « Filtrage d’appels », il faut créer un nouveau filtre.

filtre_patron_03

 

  • Dans le champ « Nom », il faut nommer cette nouvelle règle.
  • Personnaliser si besoin les valeurs des champs « Provenance de l’appel », « Mode », « Personnaliser le nom de l’appelant ».
  • Dans l’encart « Patron », il faut choisir la ligne SIP concernée par ce statut. Seul les lignes préalablement paramétrées avec le statut « Patron » apparaitront ici.
    • Ne pas oublier de choisir le temps de sonnerie associé à cette règle de filtrage
  • Puis enfin, dans l’encart « Secrétaire », il faut choisir la ou les lignes SIP concernées.

Etape 4 : Activation sur les postes

Une fois cette nouvelle règle sauvegardé, il faut l’activer physiquement sur le poste « Secrétaire » en tapant la séquence qui s’affiche lors de la sélection. Dans l’exemple ci-dessus, il s’agit de la séquence *3730.

Ne pas oublier de « valider » sur le téléphone pour enregistrer la commande. Une notification vocale doit alors valider l’activation du filtre.

Mise en place d’une musique d’attente

Pour donner un peu de dynamisme à votre accueil téléphonique, il est sympa de mettre en place une musique d’attente.

Je vous conseille de lire le tutoriel « Groupes d’appels », nous ajouterons à cette configuration une musique d’attente pour faire patienter nos clients en musique.

musqiue_a_0

Création du fichier Audio

Pour créer votre fichier audio, vous aurez plusieurs possibilités :

– enregistrement par un studio sonore de votre message qui sera lu par un(e) comédien(ne). Franchement, n’imaginez pas faire aussi bien à la maison😉

– faire vous-même le mixage de la voix et de la musique

Dans les 2 cas, il faut être vigilant sur la musique utilisée car si elle n’est pas libre de droit, vous devrez payer en France des droits à la SCAPA.

Pour ce tuto, nous utiliserons la deuxième solution dans un but pédagogique.

Nous utiliserons 2 logiciels :

Audacity

Ce logiciel que je vous conseille de télécharger en version portable permet de sélectionner des extraits, de faire des fondus en ouverture et en fermeture, de mixer une voix à la musique

SOX

Ce logiciel permet d’enregistrer votre fichier son au format accepté par Xivo : fichier WAV encodé en wav 8kHz, 16 bits, mono.

Pour convertir votre fichier, c’est chose simple :

sox <fichier source> -b 16 -c 1 -r 8000 -t wavpcm <fichier résultat>

Installation du fichier son dans Xivo

musique_a_1

 

musique_a_2

 

musique_a_3

 

musique_a_4

 

musique_a_5

 

musique_a_6

 

musique_a_7

 

 

Configuration du groupe

musique_a_8

 

musique_a_9

 

musique_a_10

 

Il faut ensuite recharger Asterisk et si tout va bien lorsque vous appelez le groupe d’appel vous entendrez la musique d’attente jusqu’à ce qu’un membre du groupe décroche.

Groupes d’appels

Intérêt des groupes

Pour donner un exemple d’utilisation des groupes, je décrirai le fonctionnement d’une équipe de commerciaux au sein d’une entreprise.

Dans un fonctionnement simple, on peut envisager que les clients connaissent le numéro direct (SDA) du commercial avec qui ils échangent habituellement.

Ce fonctionnement pose par contre certains problèmes :

– lors de l’absence d’un commercial ou s’il est en ligne, l’appel peut-être perdu

– si un nouveau commercial rejoint l’équipe pour la renforcer, il ne recevra pas d’appels avant d’avoir communiqué son numéro direct. Ces collègues seront toujours débordés😉

Pour toute ces raisons, on préférera mettre en place un groupe.

 

Objectif du tutoriel

Nous allons créer un groupe qui comptera 2 utilisateurs. Nous affecterons un numéro SDA à ce groupe. Les appels seront répartis selon la stratégie « répartition cyclique (mémorisée) » .

 

Pré-requis au tutoriel

Il faut avoir créer 2 utilisateurs (article « Création d’utilisateurs« ) et il est préférable d’avoir configuré un trunk SIP pour joindre le groupe depuis l’extérieur (article « Configuration de la ligne SIP IPPI« ).

 

Mise en oeuvre du groupe

Modification du contexte

Dans « Contextes », cliquer sur « Crayon » pour modifier le contexte « Appels Internes ».

groupe1

Dans l’onglet « Groupes », renseigner les données :

  • Début de l’intervalle de numéros : 201
  • Fin de l’intervalle de numéros : 299

On saisira ici la plage de numéro attribuée à nos groupes. Nous avions attribué de 101 à 199 pour les utilisateurs.

groupe2

Dans « Groupes », cliquer sur « + » pour ajouter un groupe.

groupe3

Dans l’onglet « Général », renseigner les données :

  • Nom : nom libre attribué au groupe
  • Numéro : 201. C’est le premier numéro de la plage de numéro précédemment attribué aux groupes
  • Stratégie de sonnerie : Répartition cyclique (mémorisée). Nous aurions pu faire sonner tous les téléphones mais ce n’est pas judicieux dans notre exemple
  • Temps de sonnerie : 45 s.
  • Délai d’attente pour joindre un utilisateur : 15 s. Avec ces 2 valeurs, cela signifie que cela sonnera sur le 1er téléphone, puis sur le 2ème si le 1er n’a pas répondu, puis à nouveau sur le 1er.

Le groupe d’appel permet de distribuer les différents appels vers les personnes définis par avance en fonction de règles de routage spécifiques. Il est possible d’opter pour les groupes d’appel de type « simultanés », séquentiels ou cycliques. Les appels simultanés permettent de joindre plusieurs postes en même temps, alors que les appels séquentiels réalisent des appels successifs avec réinitialisation entre chaque appel. Quant aux appels cycliques, ils opèrent de la même manière que les séquentiels, à la seule différence qu’ils ne réinitialisent pas entre chaque appel.

(sources : http://www.expert-telephonie-entreprise.fr)

groupe4

Dans l’onglet « Utilisateurs », on ajoute les utilisateurs qui feront partie du groupe.

groupe5

 

Dans « Appels entrants », cliquer sur « Crayon » pour modifier le traitement des appels entrants du trunk ippi.

groupe6

Dans l’onglet « Général », renseigner les données :

    • Destination : dans un précédent tutoriel, nous affections l’appel à un utilisateur, nous l’affectons maintenant à un groupe
    • Renvoyez vers : 201. C’est notre groupe

groupe7

 

Il faut ensuite recharger Asterisk

 

PS :

Il existe 2 types de groupe en téléphonie :

  • les groupes que j’ai présenté ici que nous appelons en général groupe d’appels
  • les groupes d’interception: les membres d’un groupe peuvent intercepter les appels parvenant sur le poste d’un autre membre par la composition d’un numéro (*8 pour Xivo)

Sauvegarde et Restauration de Xivo

Lorsque nous débutons avec Xivo (et même pour les experts…) il est prudent d’effectuer une sauvegarde avant de se lancer dans un nouveau paramétrage.

Il faut sauvegarder deux choses :

  • La base de données
  • Les données

 

La sauvegarde

Sauvegarde de la base de données dans un fichier db-avant-config-freephonie.tgz

xivo-backup db /var/tmp/db-avant-config-freephonie

Sauvegarde des fichiers dans un fichier data-avant-config-freephonie.tgz

xivo-backup data /var/tmp/data-avant-config-freephonie

 

La restauration

Arrêt des services Xivo

xivo-service stop

Restauration de la base de données

tar xvf /var/tmp/db-avant-config-freephonie.tgz -C /var/tmp
cd /var/tmp/pg-backup
sudo -u postgres dropdb asterisk
sudo -u postgres pg_restore -C -d postgres asterisk-*.dump

 

Restauration des fichiers

tar xvfp /var/tmp/data-avant-config-freephonie.tgz -C /

 

Démarrage des services Xivo

xivo-service start

 

Pour plus de détails sur les opérations de sauvegarde et restauration, il faut vous rendre sur la page de la documentation  Backup_Restore