Passer au contenu principal

Mise en place du SVI

Source : http://tsrit.unblog.fr/2014/06/04/tuto-svi-sous-xivo/

Ou sont les fichiers sons ? 

Musiques d'attente : 

Les musiques d'attentes peuvent être gérées directement par interface graphique sur : 

https://telephonie-admin.campingcarpark.com/service/ipbx/index.php/pbx_services/musiconhold/?act=list

Le repertoire default est le répertoire xivo original. Nous pouvons créer un autre répertoire, ici a été créé le repertoire attente , grâce au "+" en haut à gauche: 

Ce répertoire contient les musiques d'attente qui seront jouées de façon aléatoire lors l'appelant sera en attente. 

Ici : Musique-attente-CCP.10min.wav

 

Ces musiques d'attente peuvent tout a fait faire office d'offre promotionnelles en fonction des listes d'attente.

TODO : Voir avec Philemon si on peut faire un RAZ du répertoire default.

Pour info, les fichiers sons sont dans : 

/var/lib/asterisk/moh

 

Fichiers voix (annonces): 

Les fichiers voix originaux sont dans 

/var/lib/xivo/sounds/svi/fr_FR  pour le svi français. 

Plus d'infos

 

Comment fonctionne le SVI ? 

https://telephonie-admin.campingcarpark.com/service/ipbx/index.php/system_management/configfiles/?act=list#

-> S'en inspirer si modifications a apporter. 

Le SVI se présente sous la forme d'un fichier de configuration. 

Le fichier de configuration utilisé dans notre cas est  :

/etc/asterisk/extensions_extra.d/svi-ccp-demo.conf

[svi-ccp-prenat]

exten = s,1,NoOp(### selection de la langue en fonction du prefixe national ###)
same = n,NoOp(XIVO_SRCNUM=${XIVO_SRCNUM})
same = n,Set(PRENAT=${XIVO_SRCNUM:0:2})
same = n,NoOp(PRENAT=${PRENAT})

;same = n,Gotoif($[${PRENAT}=06]?pt)

same = n,NoOp(Destination fr par défaut)
same = n(fr),Goto(svi-ccp-fr,s,1)

;same = n(pt),Goto(svi-ccp-pt,s,1)


[svi-ccp-fr]

exten = s,1,NoOp(### svi fr camping car park ###)
same = n,Set(CHANNEL(language)=fr_FR)
same = n,Set(Langage=${CHANNEL(language)})
same = n,NoOp(Set the directory containing your ivr sounds)
same = n,Set(GV_DIRECTORY_SOUNDS=/var/lib/xivo/sounds/svi/${Langage})
same = n,NoOp(the system answers the call and waits for 1 second before continuing)
same = n,Answer(1000)

;same = n,DumpChan()

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

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}/Message3)
same = n,NoOp(waiting for DTMF during 5s)
same = n,Waitexten(5)

;##### CHOICE 1 #####
exten = 1,1,NoOp(pressed digit is 1, redirect to queue FR-ASSCLT in default context)
exten = 1,n,Goto(default,100,1)

;##### CHOICE 2 #####
exten = 2,1,NoOp(pressed digit is 2, redirect to queue FR-RENSEIGNT in default context)

;##### CHOICE 3 #####
exten = 3,1,NoOp(pressed digit is 3, redirect to first label in this context)
exten = 3,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}/Message6)
exten = i,n,Goto(s,start)
exten = i,n(error),Playback(${GV_DIRECTORY_SOUNDS}/Message6)
exten = i,n,Playback(${GV_DIRECTORY_SOUNDS}/Message15)
exten = i,n,Hangup()


[svi-ccp-pt]
exten = s,1,NoOp(###### 06 ######)
same = n,Set(CHANNEL(language)=pt_PT)
same = n,NoOp(redirect to queue PT-ASSCLT in default context)
same = n,Goto(default,105,1)



C'est du code asterisk, il peu s'éditer dans la fenêtre d'administration Xivo ou bien directement dans vim

Un svi peut être affecté à un SDA, cela signifie que chaque numéro appelé peut avoir son propre SVI

Le Svi s'affecte par une commande.

Ici, :

Goto(svi-ccp-prenat,s,1)

Le SVI pointe dans un premier temps vers le fichier de conf, et ensuite exécute la fonction svi-ccp-prenat