Enregistrement de conversation téléphonique c’est une fonction très utile d’Asterisk.
Il faut savoir que vous pouvez enregistrer les conversations mais dans un cadre particulier lié à l’activité, par exemple en centre d’appels dans le but d’améliorer la qualité. Il faut faire une déclaration spéciale à la CNIL. Les personnes dont on enregistre les conversations doivent être prévenues au moyen d’une alerte sonore ou visuelle, ils peuvent avoir accès aux enregistrements et ils sont conservés 6 mois maximum.
| Mixmonitor(fichier,option,commande) | Enregistre l’appel dans « fichier ». Une fois l’enregistrement fait, execute « commande » | |
| Record(fichier,silence,duree) | Enregistre la voix de l’apellant pendant ‘duree’ secondes dans fichier. Si renseigné, l’appel sera coupé après ‘silence’ secondes sans bruit. | |
| Monitor(ext,basename,flags) | surveillance d’un flux audio du canal en cours. les voix entrantes et sortantes seront enregistrées dans deux fichiers différents. |
La fonction « monitor() » pourrait être intéressant, pour vérifier la qualité concerne seulement le flux audio in ou out. Exemple:
# nano extensions.conf
| [local] exten=>_X.,1,Set(FILENAME=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)} -${EXTEN}) exten => _X.,n,Monitor(wav,${FILENAME},mb) exten => _X.,n,Dial(SIP/${EXTEN},20) |
Les deux fichiers différents (audio in et audio out) seront enregistrés dans le dossier /var/spool/asterisk/monitor/
La fonction « record » est utile pour enregistrer vos propres fichiers vocaux (messages d’accueille, SVI et etc.). Dans cet exemple il vous suffira alors d’appeler vers le numéro 1000 depuis le numéro 555 (dans le context vous pouvez définir n’importe quelle numéro de source) pour enregistrer votre message d’accueil après le bip et de taper la touche [#] à la fin de votre message pour le réécouter :
# nano extensions.conf
| [local] exten => 1000/555,1,Answer exten => 1000/555,n,Wait(2) exten => 1000/555,n,Background(hello-world) exten => 1000/555,n,Record(IVR-%d:ulaw) exten => 1000/555,n,Wait(2) exten => 1000/555,n,Playback(${RECORDED_FILE}) exten => 1000/555,n,7,Wait(2) exten => 1000/555,n,8,Hangup |
Vous pourrez alors trouver les fichiers enregistrés (IVR-0, IVR-1, etc.) dans le dossier « sounds » d’Asterisk
Pour enregistrer les conversations téléphoniques dans Asterisk on utilise le plus souvent la fonction « mixmonitor ».
1. L’enregistrement des appels dans les fichiers structurés par la date (avec d’un message d’avertissement):
# nano extensions.conf
| exten=>_X.,1,Set(DIRNAME=${CALLERID(num)}/${STRFTIME(${EPOCH},,%Y%m/%d)}) exten=>_X.,n,Set(FILENAME=${DIRNAME}/${STRFTIME(${EPOCH},,%H%M%S)}-${EXTEN}) exten=>_X.,n,System(/bin/mkdir -p /var/spool/asterisk/monitor/${DIRNAME}) exten=>_X.,n,MixMonitor(${FILENAME}.wav) exten=>_X.,n,Playback(WarningRecord) ; on peut créer votre message d’avertissement dans le dossier utilisé par défaut exten => _X.,n,Dial(SIP/${EXTEN},20) |
2. L’enregistrement des appels avec de conversion de fichiers audio en mp3 (lame doit être déjà installé) :
# nano extensions.conf
| exten => _X.,1,Set(FILENAME=${UNIQUEID}) exten => _X.,n,Set(monopt=nice -n 19 lame -b 16 –silent ${MP3}/${FILENAME}.wav ${MP3}/${FILENAME}.mp3 && rm -f ${MP3}/${FILENAME}.wav) exten => _X.,n,MixMonitor(${MP3}/${FILENAME}.wav,b,${monopt}) exten => _X.,n,Playback(WarningRecord) ; il faut créer votre message d’avertissement dans le dossier utilisé par défaut exten => _X.,n,Dial(SIP/${EXTEN},20) |
3. L’enregistrement des appels à la demande de l’utilisateur.
Il faut activer cette fonction et attribuer une touche du téléphone à la fonction d’enregistrement :
# nano /etc/asterisk/features.conf
| [featuremap] … automon => *1 ; on attribue *1 a l’enregistrement d’appel … [general] … featuredigittimeout = 1000 ; Max time (ms) between digits for feature activation (default is 500 ms) … |
On ajoute la ligne suivante au début de la catégorie [globals] dans extensions.conf :
# nano /etc/asterisk/extensions.conf
| [globals] DYNAMIC_FEATURES => automon ; test [local] exten => _X.,n,Dial(SIP/${EXTEN},20,wW) ; w indique que l’enregistrement peut etre initie par l’appele et W par l’appelant |
Sans utilisation la catégorie « global » on peut faire comme ici :
| exten => _X.,1,Set(TOUCH_MIXMONITOR=${STRFTIME(,GMT+4,%F_%T)}) exten => _X.,n,Dial(SIP/${EXTEN},20,wW) exten => _X.,n,Hangup() |
Pour tester, il vous suffit d’établir une communication et de presser la touche *1 sur un des téléphones. La conversation sera enregistrée sur le serveur Asterisk dans le répertoire /var/spool/asterisk/monitor.

Laisser un commentaire