Ansible : Automatisation, Orchestration et Déploiement
Configuration et paramétrage du serveur Asterisk
Création des utilisateurs
Avant toute chose, je vais commencer par sauvegarder le fichier de configuration de Asterisk. Ce fichier est situé dans le répertoire /etc/asterisk.
Je sauvegarde le fichier à l’aide de la commande cp : cp -r /etc/asterisk asterisk.bkp
Je vais ensuite commencer à éditer le fichier users.conf. C’est dans ce fichier qu’on effectuera toutes les configurations relatives aux l’utilisateurs.
Déplacez-vous dans le répertoire de configuration de Asterisk : cd /etc/asterisk
Le fichier users.conf contient une configuration par défaut qui ne correspond pas à ce que nous souhaitons faire. Il faut donc vider ce fichier afin d’effectuer nos propres paramétrages .
Pour vider le fichier, entrer la commander (en étant déjà dans /etc/asterisk) : echo > users.conf
- Création du Template (dans le fichier users.conf )
Je vais à présent créer un template qui contiendra les règles de configuration et les différents paramètres utilisés par tous les utilisateurs.
Pour cela, il faut mettre les informations suivantes dans le fichier users.conf : nano users.conf
Remarque : Toutes les phrase commençant par un point-virgule (;) sont des commentaires.
[default_template](!) ; Nom du template . Le « ! » indique qu’il s’agit d’un Template type=friend ; Type d'objet SIP (friend = utilisateur) host=dynamic ; L’utilisateur n’est pas associé à une IP fixe dtmfmode=rfc2833 ; Mode DTMF disallow=all ; Interdit tous les codecs allow=ulaw ; Autorise le codec ulaw nat=never ; L'utilisateur ne se trouve pas derrière un NAT hassip=yes ; L’utilisateur possède un compte SIP hasiax=no ; L’utilisateur ne possède pas de compte iax callwaiting = yes ; L’utilisateur peut mettre des appels en attente transfer=yes ; L’utilisateur peut transférer des appels canpark=yes ; L’utilisateur peut mettre des appels dans le parking hasvoicemail=yes ; L’utilisateur possède une boîte vocale deny=0.0.0.0/0.0.0.0 ; Range d’IP non-autorisées pour le client permit=192.168.10.0/255.255.255.0 ; Range d’IP autorisées pour le client qualify=yes ; Permet le monitoring
- Création des clients, toujours dans le fichier users.conf
Ici, nous allons utiliser la notion de contexte. Un contexte peut être considéré comme un département d’une entreprise.il faut donc créer des utilisateurs et les attribuer à un contexte.
Dans mon cas, j’ai crée deux contextex : Service_Informatique et Service_RH. Je vais donc créer trois utilisateurs dans chaque contexte (voir fichier ci-dessous )
Ajoutez les informations ci-dessous dans le fichier users.conf, en dessous du template
;--------------Configuration des utilisateurs du 1er Contexte----------------- [400](default_template) ; Numéro SIP et Template utilisé fullname = JeanStéphane ; Nom complet de l'utilisateur us username = jean ; Nom d'utilisateur secret=400 ; Mot de passe mailbox = 400 ; N° de boîte vocale context= Service_Informatique ; Contexte de l’utilisateur [401](default_template) ; Numéro SIP et Template utilisé fullname = ThomasDupont ; Nom complet de l'utilisateur username = thomas ; Nom d'utilisateur secret=401 ; Mot de passe mailbox = 401 ; N° de boîte vocale context= Service_Informatique ; Contexte de l’utilisateur [402](default_template) ; Numéro SIP et Template utilisé fullname = Freddy MURPHY ; Nom complet de l'utilisateur username = freddy ; Nom d'utilisateur secret=402 ; Mot de passe mailbox = 402 ; N° de boîte vocale context= Service_Informatique ; Contexte de l’utilisateur ; FARE LA MEME CHOSE POUR AUTRES UTILISATEURS CONTEXT DIFFERENT ;---------------- Deuxième Contexte------------------------ [500](default_template) ; Numéro SIP et Template utilisé fullname = Bass ForReal ; Nom complet de l'utilisateur us username = bass ; Nom d'utilisateur secret=500 ; Mot de passe mailbox = 500 ; N° de boîte vocale context= Service_RH ; Contexte de l’utilisateur [501](default_template) ; Numéro SIP et Template utilisé fullname = Lionel DUBOIS ; Nom complet de l'utilisateur username = lionel ; Nom d'utilisateur secret=501 ; Mot de passe mailbox = 501 ; N° de boîte vocale context= Service_RH ; Contexte de l’utilisateur [502](default_template) ; Numéro SIP et Template utilisé fullname = Denzel WAHINGTON ; Nom complet de l'utilisateur username = denzel ; Nom d'utilisateur secret=502 ; Mot de passe mailbox = 502 ; N° de boîte vocale context= Service_RH ; Contexte de l’utilisateur
- Configuration de la messagerie vocale grâce au fichier voicemail : taper nano voicemail.con et mettre les infos ci-dessous
[general] maxmsg=100 ; Nombre max de message sur la Voicemail. Si elle est pleine, il n'est pas possible de rajouter des messages maxsecs=0 ; Durée max d'un message. "0" = pas de limite minsecs=2 ; Durée minimum d'un message maxlogins=3 ; Nombre max derreur de login review=no ; Permet à l'appelant de réécouter son message avant de le transmettre à la Voicmail. Accessible en terminant l> saycid=no ; Dicte le numéro de l'appelant avant de jouer le message qu'il a laissé [Service_Informatique] 400 => 400, jean ; ici 400 mot de passe de la Voicemail de l’utilisateur. 401 => 401, thomas 402 => 402, freddy [Service_RH] 500 => 500, bass 501 => 501, lionel 502 => 502, denzel
Ici, j’ai simplement généralisé les paramètres utilisés par la messagerie vocale (avec l’option [general] ), puis j’ai lister les utilisateurs appartenant aux deux contextes (Service_Informatique et Service_RH ).
Après avoir l’édition de ces deux fichiers (users.conf et voicemail.conf), il faut recharger le serveur Asterisk pour que les configurations soient prisent en compte. Je vais donc respectivement entrer les commandes ci-dessous :
- asterisk – r : pour entrer dans la console de Asterisk
- sip reload : pour recharger et rafraîchir la configuration des utilisateurs
- sip show peers : pour visualiser la liste des utilisateurs
- voicemail reload : pour recharger la configuration de la messagerie vocale
Configuration d’un DialPlan
À ce niveau, la configuration que nous venons d’effectuer peut fonctionner sans problème car les utilisateurs sont crées et chaque user a un numéro et un mot de passe associé. Par contre, si on souhaite configurer et créer 100 utilisateurs avec cette méthode, il faudra le faire à la main, c’est à dire un à un. Ce serait donc fastidieux et lent.
Pour pallier à cette fastidiosité, il faut utiliser un dialplan .
Le dialplan se paramètre dans le fichier extensions.conf . il faut donc l’ouvrir (en étant toujours dans /etc/asterisk) : nano extensions.conf
Mettre les info ci-dessous dans ce fichier :
[general] autofallthrough=yes writeprotect=no static=yes writeprotect=no clearglobalvars=no priorityjumping=yes ; autorise le saut d'appel n+101 exten => 100,1,Dial(SIP/400,10) exten => 100,2,Dial(SIP/401,10) exten => 100,3,Dial(SIP/402,10) exten => 100,4,Goto(Service_Informatique,3) exten => 100,5,Hangup() ;-------------------------------Config des Context------------------------------ [Service_Informatique] include => global exten => _4[0-8]X,1,Dial(SIP/${EXTEN},40) exten => _4[0-8]X,2,Voicemail(${EXTEN}@Service_Informatique_vm) exten => 499,1,Answer() exten => 499,2,VoiceMailMain(${CALLERID(num)}@Service_Informatique_vm) exten => _5XX,1,Goto(Service_RH,${EXTEN},1) [Service_RH] include => global exten => _5[0-8]X,1,Dial(SIP/${EXTEN},40) exten => _5[0-8]X,2,Voicemail(${EXTEN}@Service_RH_vm) exten => 599,1,Answer() exten => 599,2,VoiceMailMain(${CALLERID(num)}@Service_RH_vm) exten => _4XX,1,Goto(Service_Informatique,${EXTEN},1) [global] ; On ajoute des variables pour une meilleure visibilité jean = SIP/400 ; Téléphone 1 thomas = SIP/401 ; Téléphone 2 freddy = SIP/402 ; Softphone Xlite PC XP bass = SIP/500 lionel = SIP/501 denzel = SIP/502 exten => 100,1,Dial(SIP/400,10) exten => 100,2,Dial(SIP/401,10) exten => 100,3,Dial(SIP/402,10) exten => 100,4,Goto(Service_Informatique,3) exten => 100,5,Hangup()
Grâce à ce dialplan, on peut configurer plusieurs utilisateurs automatiquement .
Explication de la syntaxe du DialPlan
Prenons le cas de ce paramétrage :
exten => _4[0-8]X,1,Dial(SIP/${EXTEN},40)
exten => _4[0-8]X,2,Voicemail(${EXTEN}@Service_Informatique_vm)
Cela signifie que si on compose un numéro commençant par le chiffre 4, et compris entre 400 et 498, il se passe la scénario ci-dessous
- En priorité 1, l’appel sonne pendant 40 secondes . Si personne ne décroche, on passe à la deuxième possiblilité.
- En priorité 2, l’appel est renvoyé à la messagerie vocale du Service_Informatique
Je vais à présent faire un test d’appel avec l’application Zoiper