Vous êtes sur la page 1sur 17

Asterisk + Enregistrement de

conversation téléphonique
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.

Enregistre l’appel dans « fichier ». Une fois l’enregistrement fait,


Mixmonitor(fichier,option,commande) execute « commande »
Enregistre la voix de l’apellant pendant ‘duree’ secondes dans fichier.
Record(fichier,silence,duree) Si renseigné, l’appel sera coupé après ‘silence’ secondes sans bruit.
surveillance d’un flux audio du canal en cours.
les voix entrantes et sortantes seront enregistrées dans deux fichiers
Monitor(ext,basename,flags) 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.
Asterisk + Interface WEB pour
écouter les conversations
téléphoniques enregistrées
Si vous avez mis en place les enregistrements de conversations téléphoniques en Asterisk, il est très
pratique d’utiliser une interface WEB pour voir toutes les conversations avec la possibilité d’écouter ou de
télécharger les fichiers enregistrés depuis WEB.

Pour ce but on peut utiliser la solution Asterisk-CDR-Viewer, qu’on a déjà parlé dans cet article.
Mais il faut faire quelques modifications dans le Dialplan, ajouter le flashplayer dans l’interface WEB et
protéger notre page WEB.
Pré requis :
– le CDR et la base de données MySQL doivent être déjà en place dans Asterisk (Intégration de la solution
CDR dans Asterisk).
– Serveur Web Apache avec le support de PHP

1. On ajoute la nouvelle colonne « filename » dans notre tableau CDR :

# mysql –p
mysql> use asterisk ;

mysql> alter table `cdr` add column `filename` varchar(120) after `userfield`;

mysql>alter table cdr alter filename set default `none`;

mysql> describe cdr;

2. Dans le fichier extensions.conf on va créer la macro StartRecord.


Les conversations seront enregistrées dans le dossier /records/mp3. On les attribuera le nom suivant :
« uniqueID-date-time-source(callerID)-destination »
Exemple :

1410260102.64-2014-09-09-12_55-4000-2000.mp3

[macro-StartRecord]
exten => s,1,NoOp ; permet d’afficher, dans la console Asterisk, ce qui se passe
same => n,Set(fname=/records/mp3/${STRFTIME(${EPOCH},,${CDR(uniqueid)}-%Y-%m-%d-
%H_%M)}-${CALLERID(num)}-${CDR(dst)}) ; nous définissons le nom de fichier et le dossier
d’enregistrement

same => n,Set(CDR(filename)=${STRFTIME(${EPOCH},,${CDR(uniqueid)}-%Y-%m-%d-%H_%M)}-


${CALLERID(num)}-${CDR(dst)}.mp3) ; on ajoute les données attribués dans le CDR

same => n,Set(MONITOR_OPT=nice -n 19 /usr/bin/lame -b 16 –silent « ${fname}.wav »


« ${fname}.mp3 » && rm -f « ${fname}.wav ») ; cet option permet de convertir wav en mp3

same => n,MixMonitor(${fname}.wav,b,${MONITOR_OPT}) ;on commence l’enregistrement avec le


nom prédéfini, à la fin il sera convertis wav en mp3

Au début toutes les fichiers seront stockées dans le dossier /records/mp3/. Plus tard on va créer le script de
rangements des fichiers dans les dossiers structurés par la date.

On ajoute le plan de numération (exemple simple) :

exten => _0033XXXXXXXXX, 1,Macro(StartRecord)


same => n,Dial(SIP/pstn/${EXTEN})

same => n,Hangup()

3. On va créer le scripte de rangements des fichiers de mp3 enregistrés dans les dossiers structurés par la
date.

# nano /records/mp3/mvrecords.sh
# chmod +x /records/mp3/mvrecords.sh
#!/bin/bash
ym=`date +%Y-%m -%d "-1 day"`
ymd=`date +%Y-%m-%d -d "-1 day"`
mkdir -p /records/mp3/$ym/$ymd/
mv /records/mp3/*$ymd* /records/mp3/$ym/$ymd/
On l’ajoute dans « cron » pour démarrage automatique

# crontab -e
00 23 * * * /records/mp3/mvrecords.sh
Chaque soir le script sera lancé pour ranger les fichiers mp3 dans les dossiers structurés par date
4. On s’occupe de notre interface WEB.
On va créer le nouvel hôte virtuel. Il existe les différentes méthodes pour le mettre en place mais on va
utiliser l’hôte virtuel basé sur le nom. On lui attribue le nom d’asteriskcdr
Dans le fichier /etc/hosts il faut ajouter le nouveau hôte :
# nano /etc/hosts

On va créer le dossier asteriskcdr :

# mkdir /var/www/asteriskcdr
Dans le dossier /etc/apache2/sites-available/ il faut créer le fichier asteriskcdr
# nano /etc/apache2/sites-available/asteriskcdr

<VirtualHost *:80>
ServerName asteriskcdr
ServerAlias asteriskcdr

DocumentRoot /var/www/asteriskcdr

</VirtualHost>

Maintenant il faut faire le lien de fichier nouvellement créé dans le dossier /etc/apache2/sites-enabled.
# sudo a2ensite asteriskcdr
On recharge la configuration d’Apache :

# service apache2 reload


Il faut vérifier si le paquet php5-mysql est bien installé, si non :
# sudo apt-get install php5-mysql
On télécharge le module modifié « asteriskcdrWEB » et on le décompresse dans le dossier /var/www/ :
# cd /var/www/
# wget http://tsrit.16mb.com/wp-content/uploads/2014/09/asteriskcdrWEB.tar.gz
# tar –xvf asteriskcdrWEB.tar.gz
Pour se connecter à notre base de données MySQL il faut configurer le fichier
/var/www/asteriskcdr/include/config.inc.php

Sans le dossier /var/www/asteriskcdr il faut faire un lient sur nos fichiers mp3 :

# ln -s /records/mp3/ /var/www/asteriskcdr/

On ouvre le lien http://ip_asterik/asteriskcdr :

5. On va sécuriser notre interface WEB. Je donne un exemple simple de la protection, mais vous pouvez
utiliser le protocole ssl pour la sécurisation plus forte.

5.1 Nous créerons l’alias /acdr/ et acceptons les autorisations. A la fin de fichier 000-default on ajoute les
lignes suivantes :

# nano /etc/apache2/sites-enabled/000-default

Alias /acdr/ /var/www/asteriskcdr/


<Directory « /var/www/asteriskcdr/ »>

AllowOverride All

</Directory>
5.2 Maintenait dans le dossier /asteriskcdr/ de serveur WEB qu’on doit protéger il faut créer le fichier
« .htaccess » :

# nano /var/www/asteriskcdr/.htaccess
On rajoute les lignes suivantes :

AuthName « Password protected »


AuthType Basic
AuthUserFile /var/www/asteriskcdr/.htpasswd
require valid-user

5.3 On va créer l’utilisateur « admin » qui sera autorisé d’entrer dans l’interface WEB

htpasswd -c /var/www/asteriskcdr/.htpasswd admin


Maintenant que l’admin est autorisé pour entrer en interface WEB.
Si vous voulez donner un accès à plusieurs utilisateurs, on peut faire les restrictions de droits dans le fichier
include/config.inc.php :
$admin_user_names = « admin1,admin2,iokunev » – toutes les trois sont des administrateurs
$admin_user_names = ‘*’ – toutes les utilisateurs sont des administrateurs

Les administrateurs ont l’accès à toutes les données de CDR

On peut créer l’utilisateur avec les droits limités (il ne peut pas voire que ses conversations effectués)

# htpasswd -b /var/www/asteriskcdr/.htpasswd 2201 test


Son nom doit être le même que son CID (callerid) ou DID (Direct inbound dialing).

Intégration de la solution CDR


dans Asterisk
Intégration de la solution CDR dans Asterisk
Le passage à Asterisk dans le cadre d’une professionnelle, nécessite d’utiliser les statistiques. La plupart
sont générées via des tickets d’appel, les CDR (Call Detail Record). Les applications d’enregistrement des
détails des appels ou CDR (Call Detail Records) permettent de garder une trace de l’activité du
serveur Asterisk. On va mise en place d’une base de données sur MySQL afin de stocker ces CDR.
Avants il faut installer MySQL sur notre serveur VOIP (ou les deux serveurs – Asterisk et MySQL- peut
être mis sur les machines différentes)
SI vous utilisez Ubuntu :
# apt-get install mysql-server asterisk-mysql

On utilise la console mysql avec les permissions de root :


# mysql -u root –p

On va créer la nouvelle base de données :


> CREATE DATABASE `asterisk`;

On va créer l’utilisateur ‘asterisk’ avec mot de passe ‘password’ et avec l’accès nécessaire dans cette
database :

> GRANT ALL PRIVILEGES ON `asterisk`.* to 'asterisk'@'localhost'

IDENTIFIED BY 'password';

Maintenait on va créer une nouvelle table dans la base de données:

> use asterisk ;

> CREATE TABLE `cdr` (

`calldate` datetime NOT NULL default '0000-00-00 00:00:00',

`clid` varchar(80) NOT NULL default '',

`src` varchar(80) NOT NULL default '',

`dst` varchar(80) NOT NULL default '',

`dcontext` varchar(80) NOT NULL default '',

`channel` varchar(80) NOT NULL default '',

`dstchannel` varchar(80) NOT NULL default '',

`lastapp` varchar(80) NOT NULL default '',

`lastdata` varchar(80) NOT NULL default '',

`duration` int(11) NOT NULL default '0',

`billsec` int(11) NOT NULL default '0',

`disposition` varchar(45) NOT NULL default '',

`amaflags` int(11) NOT NULL default '0',

`accountcode` varchar(20) NOT NULL default '',


`uniqueid` varchar(32) NOT NULL default '',

`userfield` varchar(255) NOT NULL default ''

);

ALTER TABLE `cdr` ADD INDEX ( `calldate` );

ALTER TABLE `cdr` ADD INDEX ( `dst` );

ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

Enfin, le fichier cdr_mysql.conf contiendra la configuration permettant de se connecter à la base de


données :
[global]

hostname=127.0.0.1

dbname=asterisk

table=cdr

password=pa$$w0rd

user=asterisk

port=3306

[columns]

alias start => calldate

alias callerid => clid

# asterisk -rx 'reload'

Vérification la connexion avec la base de données :


# asterisk -r

> cdr mysql status

“Connected to asteriskdb@127.0.0.1, port 3306 using table

cdr for 1 hours, 22 minutes, 39 seconds.”

Chaque CDR est désormais sauvegardé dans le fichier au format CSV et également dans la base de
données.
Maintenant on peut recevoir l’information avec les requêtes SQL ou mettre en place Asterisk-CDR-
Viewer.
Exemple de requête SQL:

> SELECT * FROM `cdr` ORDER BY `calldate` DESC LIMIT 10;

Mise en place Asterisk-cdr-viewer


Il existe plusieurs solutions de voir les statistiques des appelles dans Asterisk, mais la plupart de ces
solutions sont intégrées dans les distributions préconfigurées tels que AsteriskNow, Elastix, Trixbox,
FreePBX. La configuration des paramètres globaux d’Asterisk est plus confortable avec ce type de
produit, mais parfois il est nécessaire d’intervenir dans les fichiers de configuration pour gérer la
situation la plus « délicate » que d’habitude. C’est pourquoi mieux de travailler avec Asterisk « nette ».
En plus ces travaux donnent une compréhension et une expérience nécessaire pour travailler dans le
domaine VOIP.
Je vous conseille de regarder sur « Asterisk-cdr-viewer ». C’est une solution libre, fonctionnelle et
facile d’installer.
Pré requis :
– le CDR et la base de données MySQL doivent être déjà en place dans Asterisk (Intégration de la
solution CDR dans Asterisk).
– Serveur Web Apache avec le support de PHP
On va créer le nouvel hôte virtuel. Il existe les différentes méthodes pour le mettre en place mais on va
utiliser l’hôte virtuel basé sur le nom. On lui attribue le nom d’asteriskcdr
Dans le fichier /etc/hosts il faut ajouter le nouveau hôte :

On va créer le dossier asteriskcdr :

# mkdir /var/www/asteriskcdr
Dans le dossier /etc/apache2/sites-available/ créer le fichier asteriskcdr
# nano /etc/apache2/sites-available/asteriskcdr

<VirtualHost *:80>
ServerName asteriskcdr

ServerAlias asteriskcdr

DocumentRoot /var/www/asteriskcdr
</VirtualHost>

Pour terminer, il vous suffit de créer le lien de fichier nouvellement créé dans le
dossier /etc/apache2/sites-enabled. Pour ce faire, une commande a été faite spécialement
# sudo a2ensite asteriskcdr
Puis, afin de recharger la configuration d’Apache :
# sudo /etc/init.d/apache2 reload
Il faut vérifier si le paquet php5-mysql est bien installé, si non :

# sudo apt-get install php5-mysql


On télécharge le module asterisk-cdr-viewer et on le décompresse dans le dossier
/var/www/asteriskcdr :

Toutes les configurations on fait dans le fichier /var/www/asteriskcdr/include/config.inc.php

On ouvre le lien http://localhost/asteriskcdr :


La mise en place de ConfBridge
dans Asterisk.
L’application ConfBridge forme le service de pont d’audioconférences dans Asterisk à la place de MeetMe.
ConfBridge ne s’appuie plus sur DAHDI pour la synchronisation et le mixage des canaux. En d’autres
termes, plus besoin d’installer DAHDI pour offrir un service d’audioconférences par Asterisk.

Finalement, les conférences audio peuvent mixer des canaux large bande, supérieurs aux 8 KHz autorisés
par DAHDI, ouvrant ainsi la voie vers des conférences à haute qualité audio.
ConfBridge est disponible depuis la version 1.6.2 d’Asterisk.

Pour Asterisk 1.8.x


Dans la version 1.8.x il n’existe pas encore le fichier confbridge.conf et c’est pourquoi toutes les
configurations il faut faire directement dans les « dialplans »
# nano /ec/asterisk/extensions.conf

; conference

exten => 901,1,Answer()


exten => 901,n,Wait(1)
exten => 901,n,Authenticate(1234)
exten => 901,n,set(CONFBRIDGE_JOIN_SOUND=fr/conf-hasjoin)
exten => 901,n,set(CONFBRIDGE_LEAVE_SOUND=fr/conf-hasleft)
exten => 901,n,ConfBridge(901,M)

; admin
exten => 902,1,Answer(); le conference 901 avec menu d’administrateur pour gerer le
menu en tapant » # »
exten => 902,n,Authenticate(12345)
exten => 902,n,ConfBridge(901,am1s)
# service asterisk reload

Pour Atserisk 1.10 et plus


Confbridge n’est apparu qu’après la version 1.10 d’Asterisk

Au début il faut vérifier que le module app_confbridge.so a été lancé :


# asterisk –rx » module show like app_confbridge.so »

Si le module app_confbridge.so n’est pas démarré il faut faire :


# asterisk –rx » module load app_confbridge.so »
Après il faut faire les configurations nécessaires dans le fichier confbridge.conf
# nano /etc/asterisk/confbridge.conf
[general]

[testbridge]
type=bridge
max_members=20
mixing_interval=10
internal_sample_rate=auto
record_conference=no
video_mode=follow_talker

[testuser]

type=user
music_on_hold_when_empty=yes
music_on_hold_class=default
announce_user_count_all=yes
announce_join_leave=yes
dsp_drop_silence=yes
denoise=yes

[testmenu]

type=menu
*=playback_and_continue(conf-usermenu)
*1=toggle_mute
1=toggle_mute
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=leave_conference
8=leave_conference

Maintenait on corrige notre dialplan

# nano /etc/asterisk/extensions.conf
exten => 111,1,Answer()
exten => 111,n,ConfBridge(4444,testbridge,testuser,testmenu)
On reload nos fichiers de configurations :

# asterisk –rx « reload »

Asterisk + menu interactif


d’administration + GoogleTTS
Parfois il est nécessaire d’exécuter à distance les commandes qui gèrent Asterisk ou les autres serveurs
dans votre réseau (backup, reload, wakeonlan et etc). On peut le faire en utilisant un simple appel
téléphonique.

Pour ce but on va utiliser l’application System et GoogleTTS :

System( ) : exécution d’une commande du système d’exploitation.


Elle lance la commande donnée au niveau du système
Syntaxe: System(command)
Pour faire parler Asterisk, nous allons installer un moteur de synthèse vocale (Text To Speech) de Google
appelé GoogleTTS.

Installation de GoogleTTS

Tout d’abord on va installer quelques dépendances:

# apt-get install perl libwww-perl sox mpg123


Puis nous allons aller dans le dossier /var/lib/asterisk/agi-bin/ et y mettre le fichier googletts.agi qui est le
script pour mettre en place la synthèse vocale.
cd /var/lib/asterisk/agi-bin/
wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi
chmod +x googletts.agi
Et voilà googletts est installé, maintenant voyons comment le faire parler.

On va créer le nouveau plan de numérotation qui répond à nos exigences.


# nano /etc/asterisk/extensions.conf
[local]exten => 7777,1,Goto (admin-menu,s,1)
[admin-menu]

;Asterisk repond
exten => s,1,Answer()
; on demande l’autorisation
exten => s,n,Authenticate(1234) ; on demande l’autorisation Authenticate(1234)

;On met un timeout de 10 secondes pour le choix du destinatire


exten => s,n,Set(TIMEOUT(response)=10)
;On annonce les differents choix
exten => s,n,agi(googletts.agi,’Choisissez le commande à exécuter’,fr,any)
exten => s,n,agi(googletts.agi,’pour relir les fichiers de configuration d’Asterisk tapez 1′,fr,any)
exten => s,n,agi(googletts.agi,’Pour faire le backup des fichiers asterisk tapez 2′,fr,any)
exten => s,n,agi(googletts.agi,’pour démarrer votre serveur distant tapez 3′,fr,any)
exten => s,n,agi(googletts.agi,’pour démarrer votre serveur VPN tapez 4′,fr,any)
exten => s,n,agi(googletts.agi,’pour redémarrer votre configuration du réseau tapez 5′,fr,any)
exten => s,n,agi(googletts.agi,’pour la rotation forcé des fichiers de log tapez 6′,fr,any)
exten => s,n,agi(googletts.agi,’Appuyez sur dièse si vous souhaitez ree couter ce message’,fr,any)
;On attend que l’utilisateur appuis sur une touche
exten => s,n,WaitExten()
exten => 1,1,System(service asterisk reload) ;on redémarre Asterisk
exten => 1,n,Hangup()
exten => 2,1,System(cp -rpv /etc/asterisk/ /etc/asterisk_`date ‘+%d%m%y_%H.%M.%S’`.bak) ; on fais le
backup des fichiers asterisk
exten => 2,n,Hangup()
exten => 3,1,System(wakeonlan 00:11:85:f1:f9:a3) ; paquet Magique pour démarrer une machine avec
Windows, wakeonlan doit être installé sur serveur Linux avec Asterisk
exten => 3,n,Hangup()
exten => 4,1,System(/etc/init.d/openvpn start) ; on démarre service VPN , il doit être préconfiguré
exten => 4,n,Hangup()
exten => 5,1,System(/etc/init.d/network restart) ; on redémarre la configuration du réseau
exten => 5,n,Hangup()
exten => 6,1,System(logrotate /etc/logrotate.conf -f) ; on fais la rotation de fichiers de log
exten => 6,n,Hangup()
;Si l’utilisateur tape # il retourne a l’etape 3 de l’IVR
exten => #,1,Goto(s,3)

;Si l’utilisateur tape les numeros entre 7-9 ou 0 on annonce que le choix n’est pas correcte
exten => i,1,agi(googletts.agi,’le numero choisi n’est pas correcte’,fr,any)
exten => i,n,Goto(s,3)
;Si l’utilisateur ne fait pas son choix pendant 20 sec on raccroche en prononcant « au revoir »
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()

Vous aimerez peut-être aussi