Asterisk – Music On Hold

La musique d’attente est une des fonctionnalités les plus utilisées dans la téléphonie.

Le principe est simple, faire patienter un utilisateur avec une musique plutôt qu’un blanc.

A travers cet article nous verrons l’utilisation de musique pour la mise en attente durant un appel, mais aussi la lecture de musique pour faire patienter un appelant avant que l’appelé décroche.

 

1) Fonctionnement

 

Comme dit en introduction, la musique d’attente est très largement utilisée en VoIP.

Elle est simple à mettre en place, et rend l’attente bien plus agréable.

 

Le cas le plus courant de musique d’attente est justement lors de la mise en attente d’un appel.

Prenons l’exemple suivant : Jean appelle Léon.

Durant l’appel, Jean a besoin de faire patienter Léon le temps de chercher un document.

Pour rendre l’attente plus agréable, Jean va mettre en attente l’appel.

Pendant ce temps-là, Léon entend une musique.

A tout moment Jean peut reprendre l’appel.

 

Autre exemple évoqué précédemment, le pré-décroché.

Le pré-décoché consiste à jouer une musique d’attente à l’appelant, en attendant que l’appelé décroche.

 

Le pré-décroché est majoritairement utilisé sur les standards téléphoniques.

 

Les musiques d’attente d’Asrterisk sont stockées dans /var/lib/asterisk/moh

Par défaut, Asterisk supporte de nombreux formats audio tel que « wav » ou « ulaw ».

En revanche, par défaut il ne supporte pas le format MP3.

 

Vous pouvez voir la liste des formats supportés en utilisant la commande suivante :

asterisk –rv
core show file formats

 

Pour ce qui est de la configuration, une partie se fait dans le fichier musiconhold.conf, et une partie se fera dans le DialPLan (donc dans extensions.conf).

 

2) Configuration basique

 

Commençons par étudier la configuration basique.

Vous aurez pu constater que par défaut, la musique d’attente est déjà configurée.

 

En effet, si l’on met un appel en attente, l’interlocuteur entendra une musique.

La plupart des clients SIP offrent par défaut la possibilité de mettre en attente l’appel.

Voici l’exemple avec Blink :

Mise en attente d'un appel

Par défaut, dans le fichier musiconhold.conf vous retrouvez la configuration suivante :

[default]
mode=files
directory=moh

 

mode=file signifie que nous jouerons des fichiers audio

directory=moh fait référence au répertoire /var/lib/asterisk/moh/

 

 

Il est donc possible de chercher les sons à jouer dans un autre répertoire.

directory=mohulaw  fera référence au répertoire /var/lib/asterisk/mohulaw/

 

Le chemin du répertoire est donc un chemin relatif à partir de /var/lib/asterisk/

Il est aussi possible de renseigner un chemin absolu.

 

Dans musiconhold.conf, il est possible d’ajouter d’autres sections.

Exemple :

[ulaw]
mode=files
directory=mohulaw
random=yes

 

Pour cela il vous faudra auparavant avoir créé un dossier mohulaw.

Ce dossier devra contenir des fichiers audio

 

Exemple :

ls /var/lib/asterisk/mohulaw/
sound2.ulaw  sound3.ulaw

 

Ensuite, dans extensions.conf, il faudra personnaliser le choix des musiques d’attentes.

exten => _1[0-8]X,1,Answer
exten => _1[0-8]X,2,Set(CHANNEL(musicclass)=ulaw)
exten => _1[0-8]X,3,Dial(SIP/${EXTEN},40)
exten => _1[0-8]X,4,Voicemail(${EXTEN}@dept_1_vm)

 

Relancer Asterisk avant de tester.

 

Ainsi, lors-ce que l’utilisateur 100 appelle l’utilisateur 101, et qu’il le place en attente, 101 entendra les musiques du dossier mohulaw.

 

Il est aussi possible de diffuser une WebRadio en guise de musique d’attente.

Pour cela, ajouter le package mpg123.

apt-get install mpg123

 

Un redémarrage complet d’Asterisk peut-être nécessaire (/etc.init.d/asterisk restart).

 

Puis dans musiconhold.conf, ajouter la section suivante :

[webradio]
mode=custom
application=/usr/bin/mpg123 -q -r 8000 -f 8192 -s --mono http://linux0.cs.uaf.edu/icecast/kuac16mono

 

Remplacer l’URL indiquée par celle de la WebRadio choisie.

 

A nouveau, adapter la configuration dans extensions.conf, puis relancer Asterisk.

 

3) Configuration d’un pré-décroché

 

Comme évoqué précédemment, le pré-décroché permet de jouer une musique d’attente à l’appelant, en attendant que l’utilisateur décroche.

 

Le pré-décroché est très souvent utilisé pour les standards téléphoniques.

 

La configuration se fera dans extensions.conf :

exten => 666,1,Ringing
exten => 666,2,Wait(1)
exten => 666,3,Answer()
exten => 666,4,Set(CHANNEL(musicclass)=default)
exten => 666,5,PlayBack(/var/lib/asterisk/sounds/fr/silence/1)
exten => 666,6,Dial(SIP/102,20,tTm(default))
exten => 666,7,Voicemail(102)
exten => 666,8,HangUp()

 

En détails, voici les étapes :

  • L’appelant entend le téléphone sonner pendant 1s
  • Puis l’appel est « décroché »
  • Puis il y a un blanc de 1s
  • Puis le poste 101 se met à sonner, pendant que l’appelant entend la musique d’attente
  • S’il n’y a pas de réponse au bout de 20s, l’appelant tombe sur la messagerie

 

De même que précédemment, il est possible d’utiliser la WebRadio.

Il faudra donc remplacer « default » dans les lignes 4 et 6.

 

Pour utiliser des musiques d’attente spécifiques au pré-décroché, il faudra faire la même manipulation que tout à l’heure, c’est-à-dire :

  • Créer un répertoire
  • Y placer des sons
  • Créer une nouvelle section dans musiconhold.conf
  • La faire pointer vers ce répertoire
  • Utiliser cette section dans extensions.conf

 

Pour les pré-décrochés, l’idéal est de jouer un message d’accueil, indiquant qu’une personne va prendre l’appel sous peu.

 

Pour une configuration plus complète, vous pouvez mettre en place un Ring Group avec pré-décroché.

Voici ce que cela donne pour un Ring Group en mode Round Robin :

exten => 666,1,Ringing
exten => 666,2,Wait(1)
exten => 666,3,Answer()
exten => 666,4,Set(CHANNEL(musicclass)=default)
exten => 666,5,PlayBack(/var/lib/asterisk/sounds/fr/silence/1)
exten => 666,6,Dial(SIP/102,15,tTm(default))
exten => 666,7,Dial(SIP/200,15,tTm(default))
exten => 666,8,Voicemail(102)
exten => 666,9,HangUp()

 

4) Utiliser des fichiers MP3

 

Par défaut Asterisk ne prend pas en charge le format MP3.

Si vous souhaitez pouvoir utiliser des fichiers MP3 (ce qui est bien plus simple), il faudra configurer Asterisk pour qu’il les supporte.

 

4.1) Installations

Voyons la liste des étapes à suivre.

 

Tout d’abord, relancer le menuselect :

cd /usr/src/asterisk/asterisk-1X.X.X/
make menuselect

 

Sélectionner  l’option MP3 :

Asterisk menuselect MP3

Ensuite, installer le package subversion, nécessaire à l’exécution du script qui suit.

apt-get install subversion

 

Puis exécuter le script suivant (toujours dans le répertoire des sources d’Asterisk):

./contrib/scripts/get_mp3_source.sh

 

Recompiler et réinstaller Asterisk

make
make install

 

Enfin, redémarrer Asterisk.

/etc/init.d/asterisk restart

 

A présent, Asterisk devrait annoncer qu’il support les MP3.

core show file formats

4.2) Lecture de MP3

Créer un dossier contenant les fichiers MP3.

 

Dans musiconhold.conf, ajouter la section suivante :

[mp3]
mode=mp3
directory=/var/lib/asterisk/mohmp3
random=yes

 

« directory » doit faire référence au dossier contenant les fichiers MP3.

Dans mon cas, un chemin absolu était nécessaire pour que les sons MP3 soient joués.

 

Il ne vous reste plus qu’à faire référence à la section MP3 dans extensions.conf.

 

Tagués avec : , , ,
Publié dans Fonctionnalités
2 commentaires pour “Asterisk – Music On Hold
  1. Borel NZOGANG dit :

    Bonjour
    j’utilise asterisk avec une passerelle GSM chinoise de marque DINSTAR pour éffectuer des appels IP à GSM. j’ai configurer un IVR sur asterisk qui fonctionne très bien lors des appels IP à IP. sans l’IVR les appels IP à GSM et GSM à IP fonctionnent parfaitement bien. mais intégrant l’IVR, lors des appels entrant (GSM à IP) quand l’utilisateur choisis l’option pour discuter avec un opérateur, l’appelant est mis en attente et le softphone de l’agent se met à sonner; quand l’agent décroche l’appelant reste toujours en attente et aucun des deux extrémités n’entends l’autre: aucune conversation n’est possible.
    svp j’ai besoin d’aide pour m’aider à y voir plus clair. Merci

    • Valentin Weber dit :

      Bonjour,
      Je n’ai jamais fait une telle configuration.
      Je vous conseille de regarder ce qu’il se passe dans la console Asterisk, avec un mode verbeux important (asterisk -rvvv)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.