2015 Serveur Asterisk STAGE 2ième annee bts sio bonaparte / Téléphonie IP JESSY ZANGANI Stage Mairie De La Seyne Jessyzangani.wordpress.com
1 - Objectifs La VOIP (Voice Over Internet Protocol) L objectif de cette mission effectué en stage de deuxième année à la ville de la Seyne sur Mer, et de mettre en place un petit serveur VOIP et d y connecter des clients d origines différentes afin d apprendre le fonctionnement d un serveur de téléphonie IP. Pour effectuer cette mission, c est le serveur Asterisk (sur distribution libre) qui sera mis en œuvre dans ce document. Présentation Rapide de la VOIP : La voix sur IP, ou «VoIP» pour Voice over IP, est une technique qui permet de communiquer par la voix (ou via des flux multimédia : audio ou vidéo) sur des réseaux compatibles IP, qu'il s'agisse de réseaux privés ou d'internet, filaire (câble/adsl/optique).
2 - Prérequis pour effectuer cette mission Pour appliquer cette mission, j ai eu besoin de : - L'installation de base d'un poste de travail linux - L'installation des paquets linux + logiciel Windows - Les principales commandes du shell - Utilisation du programme man afin de m aider sur les commandes et d essayer de comprendre mes erreurs Dans le cadre de cette opération, les postes utilisés sont : 1 serveur Debian 7.8 ainsi que 2 postes clients (Windows / Linux) 3 - Installation du serveur Asterisk Asterisk est disponible sur un grand nombre de distributions mais j ai choisis Debian car c est la distribution que je maitrise le plus. L installation ce fera sans interface graphique, en mode serveur et sera administré en SSH depuis un poste client. # Installation à partir d'un CDrom netinstall Debian 7.8 sur le site officiel. L installation s effectue en mode non graphique
Une fois la configuration terminé, il va falloir configurer les outils pour l administrer a distance Installation et utilisation SSH : SSH est une solution de prise en main à distance sécurisée, toutes les commandes pourront être traitées par ce moyen. D autant plus que le serveur ne dispose pas d interface graphique Pour installer OpenSSH sur le serveur : apt-get install openssh Puis installer un logiciel d administration SSH sur une machine client (ICI Windows 7) avec le logiciel xterm On se connecte avec l adresse IP du serveur :
Nous voilà connecter à distance au serveur Maintenant place à l installation d asterisk Asterisk est un serveur de VOIP simple et complet. Chaque poste client s'y connecte au travers d un logiciel comme «Ekiga» ou un autre logiciel disponible gratuitement sur internet pour Windows, Linux Tout d abord il faut effectuer une mise à jour du serveur apt-get update apt-get upgrade Puis l installation de quelques dépendances : apt-get install build-essential libxml2-dev libncurses5-dev linux-headers `uname -r` libsqlite3-dev libssl-dev make cpp
Installer ensuite Asterisk : Apt-get install asterisk Ici pour mon cas aucune configuration n est nécessaire le serveur est français +33 A ce stade, Asterisk doit être démarré, on pourra vérifier son fonctionnement avec la commande : asterisk -vrc Ceci est la console du serveur Asterisk 4 - Ajout des comptes utilisateurs Pour ajouter un nouveau compte utilisateur, ouvrir le fichier suivant : nano /etc/asterisk/sip.conf Il faut mettre le langage en français pour cela language=fr et enlever le ; devant.
Ajouter en fin de fichier de configuration la définition des clients : [general] hasvoicemail = yes hassip = yes hasiax = yes callwaiting = yes threewaycalling = yes callwaitingcallerid = yes transfer = yes canpark = yes cancallforward = yes callreturn = yes callgroup = 1 pickupgroup = 1 nat = yes [template](!) type=friend host=dynamic dtmfmode=rfc2833 disallow=all allow=ulaw context = mairie [001](template) username=servicepaye secret=azerty [002](template) username=accueil secret=azerty [003](template) username=serviceinformatique secret=azerty
Voici la configuration de test effectué avec 2 service et l acceuil mairie Dans mon cas, nous utilisons un modèle général, puis un modèle (template) indiquant les caractéristiques de ce modèle avec un nom de contexte «mairie». Information sur la configuration du template : «friend» indique que le client pourra recevoir et appeler, le nom d utilisateur correspondra au login, l hôte «dynamic» indiquera que l utilisateur peut se connecter depuis n importe quelle adresse IP. Puis chaque client commencera par son numéro «sip» (numéro d appel) et sera rattaché au modèle «template» Puis j ai affecté un numéro d appel (et autoriser les utilisateurs à appeler un autre utilisateur), c est le fichier «extensions.conf» qui se chargera de répertorier les clients : nano /etc/asterisk/extensions.conf [mairie] exten => _0XX,1,Dial(SIP/${EXTEN},20) exten => _0XX,2,Hangup() Sur on modifie ce modèle pour notre configuration [mairie] indique le conteneur dans lequel les utilisateurs pourrons communiquer entre eux. Lors de la création de nos deux utilisateurs nous avons spécifié le contexte mairie. exten => : numéros _0XX : Prend les ou numéros de 000 à 099 1 : Ordre de l extension Dial : application qui va être utilisé SIP: Protocol qui va être utilisé ${EXTEN} : variable de l extension composé, 20: temps d attente avant de passer à l étape suivante Dans mon cas cela donne : exten => 001,1,Dial(SIP/001,20) exten => 002,1,Dial(SIP/002,20) exten => 003,1,Dial(SIP/003,20)
Puis on redémarre le service asterisk : On rentre dans la console : Dans la console Asterisk, il sera possible de voir les utilisateurs saisis avec la commande suivante : sip show users Cela permet d afficher tout les numéros enregistrés 5 - Installation des postes clients J ai choisis de faire des tests de fonctionnement grâce a un client Ekiga disponible sur Windows mais aussi bien sur Linux. Il s agit d un logiciel Libre et Gratuit. Après le téléchargement et une simple installation il faut maintenant le configurer Configurer le compte Après lancement du logiciel, il suffira de se rendre dans «Edition», «Compte» pour y ajouter et configurer un compte. Voici l exemple de ma configuration effectué sur mon client :
Si tout va bien le compte doit être afficher comme inscrit cela voudrat dire que le client a reconnu le sip d un utilisateur du serveur! Test de l appelle du sip002 (Accueil) au sip003 (service informatique) : Une fois connecté on a des informations sur la durée de l appelle et les logs peuvent être envoyés vers les serveurs astérisk chemin : /var/log/asterisk Pour effectuer un ajout simple d utilisateur, j ai effectué un script.sh sur linux à récupérer sur jessyzangani.wordpress.com.