voip avec asterisk - azerty-formation

47
Asterisk 1 / 47 65120.net VoIP avec Asterisk Installation et mise en place d’asterisk Auteur Jean-François Casquet Editeur AZERTY Microsystem 2004 - 2014 © Tous droits réservés copie interdite www.65120.net

Upload: others

Post on 01-Mar-2022

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VoIP avec Asterisk - AZERTY-Formation

Asterisk 1 / 47 65120.net

VoIP avec AsteriskInstallation et mise en place d’asterisk

Auteur

Jean-François Casquet

Editeur

AZERTY Microsystem

2004 - 2014 © Tous droits réservés

copie interdite

www.65120.net

Page 2: VoIP avec Asterisk - AZERTY-Formation

Asterisk 2 / 47 65120.net

Installation ASTERISK sur Linux UBUNTU

Installation de UBUNTU 12_______________________________________________________________________________________

Créons une machine virtuelle dans laquelle il y a un serveur Asterisk.

En cliquant sur « Nouvelle » ou « new » dans VirtualBox.L’assistant se lance.

Nommons la Machine virtuelle avec le type de système d’exploitation.

Page 3: VoIP avec Asterisk - AZERTY-Formation

Asterisk 3 / 47 65120.net

Attribuons de la mémoire à cette machine virtuelle.512 Mo suffit largement pour un serveur Asterisk

Créons un nouveau disque pour installer Asterisk sur un disque virtuel

Page 4: VoIP avec Asterisk - AZERTY-Formation

Asterisk 4 / 47 65120.net

Choisissons n’importe quel format. VDI est celui par défaut pourVirtualbox

En choisissant « dynamiquement » le disque prendra de l’espace petit àpetit suivant les besoins de remplissage d’Asterisk.

Page 5: VoIP avec Asterisk - AZERTY-Formation

Asterisk 5 / 47 65120.net

Donnons une taille intéressante pour stocker LINUX mais aussi lesmessages vocaux … Emails …

Démarrage de la machine virtuelle – Virtualbox lance un assistant depremier lancement car le système n’est pas installé.

Page 6: VoIP avec Asterisk - AZERTY-Formation

Asterisk 6 / 47 65120.net

Choisissons l’image ISO de linux. Avec l’icône à droite de la liste, nouspouvons parcourir pour trouver le fichier ISO de LINUX téléchargeable.

C’est parti pour l’installation

Page 7: VoIP avec Asterisk - AZERTY-Formation

Asterisk 7 / 47 65120.net

Choisissons la langue pour l’installation

Installons LINUX en mode « normal » - il s’agit de la version SERVEUR (pro)

Page 8: VoIP avec Asterisk - AZERTY-Formation

Asterisk 8 / 47 65120.net

Choisissons le pays de rattachement afin de pré sélectionner les optionssuivantes

Il n’est pas utile de détecter automatiquement le clavier.

Page 9: VoIP avec Asterisk - AZERTY-Formation

Asterisk 9 / 47 65120.net

Choisir le clavier français (LATIN 9) convient pour les claviers

Nommons le serveur (n’importe quel nom puisqu’il ne sert pas à grandchose)

Créons un nom descriptif de connexion à LINUX (il n’est pas possible de seconnecter entant que « root » sur Ubuntu).

Page 10: VoIP avec Asterisk - AZERTY-Formation

Asterisk 10 / 47 65120.net

Donnons le LOGIN qui aura le droit de se connecter en tant que Root

Donnons un mot de passe. Il faut le noter car se sera le seul moyen deconnexion à LINUX

Retapons le mot de passe

Si le mot de passe est trop simple, une alerte nous en informe.

Il est possible, sous LINUX, de crypter les informations de l’utilisateur. Ici,pour asterisk, nous ne cryptons généralement pas les informations.

Page 11: VoIP avec Asterisk - AZERTY-Formation

Asterisk 11 / 47 65120.net

Choisissons un système de gestion de disque – le mieux, pour asterisk, estd’utiliser le disque entier sans LVM – car les fonctions du LVM n’ont pasvraiment d’intérêt pour la VoIP.

Partitionnons le disque choisi

Laissons LINUX partionner à ses besoins

Nous ne faisons pas de mises à jour

Page 12: VoIP avec Asterisk - AZERTY-Formation

Asterisk 12 / 47 65120.net

Pas de mises à jour automatique – trop dangereux pour un système quidoit fonctionner 24h/24

Installons OpenSSh (pour se connecter au serveur par SSH)LAMP : Linux Apache Mysql PHP (pour la partie WEB d’Aterisk)SAMBA : pour accéder par partage de fichier (fonction NAS)

Mysql demande un mot de passe administrateur

Confirmation du mot de passe

Page 13: VoIP avec Asterisk - AZERTY-Formation

Asterisk 13 / 47 65120.net

Installation du système de Boot (obligatoire dans notre cas)

Redémarrons le système – LINUX est installé

Pour que la machine virtuelle soit un serveur, il est nécessaire de la faireentrer dans le réseau.Allons sur le menu « Périphériques » puis « cartes réseau »

Il suffit de se mettre en mode « Bridge » ou « pont » avec la carte réseaude la machine physique.

Page 14: VoIP avec Asterisk - AZERTY-Formation

Asterisk 14 / 47 65120.net

Installation de ASTERISK 1.8.10___________________________________________________________________________________

Pour se connecter à LINUX, il suffit de se connecter sur le serveur.

# analyse des packages

sudo bash

apt-get update

# installation d’asterisk et des modules qui permettent de faire du APACHE / PHP / Mysql

apt-get install asterisk asterisk-mysql php5-mysql php-db mysql-server libapache2-mod-php5 php5-gd php-pear sox curl

# installation des packages français

apt-get install asterisk-prompt-fr-proformatique

# gestionnaire de périphériques compatibles avec Asterisk

apt-get install dahdi-linux dahdi

Afin de fixer l’adresse IP du Serveur :

sudo bash

nano /etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

#allow-hotplug eth0

auto eth0

iface eth0 inet static

address 192.0.0.1

network 192.0.0.0

netmask 255.255.0.0

broadcast 192.0.255.255

FIN_SCRIPT

Nous plaçons une adresse IP à 192.0.0.1 par exemple.

Page 15: VoIP avec Asterisk - AZERTY-Formation

Asterisk 15 / 47 65120.net

Maintenant, il nous faut créer un serveur DHCP pour que les téléphones ToIP puissent avoir une adresse IP.

apt-get install dhcp3-server

cat > /etc/dhcp/dhcpd.conf << FIN_SCRIPT

ddns-update-style none;

ignore client-updates;

authoritative;

subnet 192.0.0.0 netmask 255.255.0.0 {

option routers 192.0.0.1;

option subnet-mask 255.255.0.0;

option domain-name "asterisk.65120.com.";

option domain-name-servers 8.8.8.8;

range 192.0.0.10 192.0.0.200;

default-lease-time 21600;

max-lease-time 43200 ;

}

Il nous faut redémarrer l’interface réseau : /etc/init.d/networking restart

Pour utiliser les Mails, installons POSTFIX :

apt-get install postfix

Dans le fichier /etc/postfix/main.cf mettons le relais SMTP : relayhost = smtp.free.fr

Page 16: VoIP avec Asterisk - AZERTY-Formation

Asterisk 16 / 47 65120.net

Installation d’un Windows avec son Soft Phone_______________________________________________________________________

Installation d’un Windows – dans une machine virtuelle

Installation d’un Soft Phone : exemple Xlite

Page 17: VoIP avec Asterisk - AZERTY-Formation

Asterisk 17 / 47 65120.net

Premiers pas vers la configuration de postes téléphoniques

Configuration d’Asterisk ________________________________________________________________________________________

Commençons par donner quelques indications à Asterisk dans un cadre général.

Dans le fichier /etc/asterisk/sip.conf se situent des sections de paramétrages du serveur SIP.

Par exemple, dans la section « [general] » nous trouvons :

Context = default.............................pour dire que les paramètres des comptes se trouvent dans la section « default ».

udpbindaddr=0.0.0.0.........................veut dire qu’ASTERISK accepte des clients UDP venus du réseau entier.

tcpbindaddr=0.0.0.0 .........................veut dire qu’ASTERISK accepte des clients TCP du réseau entier.

Les ports utilisés sont 5060 en UDP et TCP par défault.

language=fr....................................veut dire que la messagerie sera en français grace au package « asterisk-prompt-fr-

proformatique » installé avec Asterisk

Créons des sections à la suite de ce fichier sip.conf :

[JF]

type=friend

secret=azerty

host=dynamic

callerid="JF Casquet" <200>

[AZERTY]

type=friend

secret=azerty

host=dynamic

callerid="AZERTY Ms" <201>

Page 18: VoIP avec Asterisk - AZERTY-Formation

Asterisk 18 / 47 65120.net

Chaque section correspond à un utilisateur :

[AZERTY] ...................................... le « login » de connexion sur le téléphone SIP

type=friend ................................... les droits associés à ce compte

secret=azerty................................. mot de passe de connexion

host=dynamic................................. adresse IP autorisée pour ce poste téléphonique

callerid="AZERTY Ms" <201> ................ le Call ID pour ce compte : nom affiché + numéro de téléphone (poste)

Ouvrons maintenant le fichier de fonctionnement et gestion des numéros d’appel. Ce fichier contient les comportements des

appels vers l'intérieur, extérieur, transfert d’appel, gestion des files d’attente, numéros sonnants en même temps, les

séquences de sonnerie entre les postes, la gestion de la messagerie …

Ouvrons donc le fichier /etc/asterisk/extensions.conf

Ajoutons-y , dans la section [default],

puisque nous avons dit à Asterisk d’ouvrir

cette section.

exten => 200, 1, Dial(SIP/JF, 10) .................. 200 = numéro d’appel (numero de poste)

1 = ordre de gestion du séquencement des actions

Page 19: VoIP avec Asterisk - AZERTY-Formation

Asterisk 19 / 47 65120.net

Dial (SIP/<login> = appel local vers le compte JF

10 = laisser sonner 10 secondes puis passer à la séquence 2 (que nous n’avons

pas créée ici)

Exemple de fonctionnement d’appel qui passe d’un usager vers un autre :

exten => 200, 2, Dial(SIP/accueil, 10)............ pour faire sonner l’accueil si la séquence 1 n’a pas répondu

exten => 200, 3, goto (default, 200, 1) .......... pour sauter à la section « defaul » poste « 200 » séquence « 1 ». En clair, on

fait sonner le poste de JF si l’accueil ne répond pas, puis on recommence …

Exemple pour faire sonner 2 téléphones en même temps :

exten => 205, 1, Dial(SIP/JF&SIP/accueil, 10) . pour faire sonner JF et Accueil en même temps pendant 10 secondes.

Autoriser le Transfert d’appel durant une conversation en appuyant sur « # »

exten => 200,1,Dial(SIP/accueil,,tT)

Les options t et T permettent respectivement l’appelé et l’appelant à transférer les appels.

Pour transférer un appel, il suffit d’appuyer sur # pendant l’appel. Vous entendrez alors une voix disant « Tranfer » et vous

pourrez entrer le numéro vers lequel l’appel sera transféré.

Préparer la Mise en attente musicale

Le transfert d’appel se fait en rajoutant dans extensions.conf les paramètres suivants : dans la catégorie [default] ajoutez

Include=>parkedcalls

Maintenant le standardiste pourra mettre en attente un appel en tapant #700. L’appel sera donc placé dans un parc d’attente.

Si on laisse la configuration telle quelle, une fois l’abonné en attente il n’entendra rien et s’impatientera ou raccrochera car il

pensera que la ligne a été coupée. Il faut alors faire tourner une petite musique en fond. Pour cela il faut installer le paquet «

Asterisk-mp3 » et le lecteur de musique madplay de la sorte :

sudo apt-get install asterisk-mp3

sudo apt-get install madplay

Page 20: VoIP avec Asterisk - AZERTY-Formation

Asterisk 20 / 47 65120.net

Une fois installés, il faut configurer asterisk afin qu’il diffuse la musique.

Allez dans la catégorie [default] du fichier musiconhold.conf cette fois ci et ajoutez-y les lignes suivantes.

[default]

mode=custom ......................................... spécifie qu’on utilisera un lecteur de musique externe à asterisk

directory = /usr/share/asterisk/moh ............. répertoire ou les musiques seront. Evidement vous pourrez mettre vos

musiques ou vous voulez mais il faudra modifier cette ligne sinon asterisk ne

les trouvera pas. Par défaut laissez la si vous n’êtes pas sur de ce que vous

faite.

application=/usr/bin/madplay –a -12 –mono –R 8000 –output=raw :- ; lecteur externe de musique utilisé.

Il reste plus qu’à mettre votre musique dans le fichier spécifié : ici c’est /usr/share/asterisk/moh.

Redémarrez asterisk et l’utilisateur mis en attente entendra une petite mélodie.

Interception d’appel par un collaborateur, dans un groupe

L’interception d’appel peut être utilisée au moment où le téléphone sonne. L’interception d’appel autorise la récupération

d’appel destiné à un poste qui sonne depuis un autre poste. Pour cela il faut que l’intercepté et l’intercepteur soient dans le

même groupe d’appel. Par contre, tous les membres d’un groupe n’ont pas forcément le droit d’intercepter.

Ici , JF et AZERTY font partie du même groupe. Seul AZERTY pourra intercepter les appels pour JF. Modifions donc le fichier

sip.conf

[JF]

type=friend

secret=azerty

host=dynamic

callerid="JF Casquet" <200>

callgroup=1

Page 21: VoIP avec Asterisk - AZERTY-Formation

Asterisk 21 / 47 65120.net

[AZERTY]

type=friend

secret=azerty

host=dynamic

callerid="AZERTY Ms" <201>

pickupgroup=1

Comment intercepter un appel ? C’est simple, lorsque le téléphone sonne il suffit que AZERTY fasse *

Bien plus encore : http://bio-teckna.fr/?p=263

Messagerie avec Asterisk

Configuration de la messagerie ___________________________________________________________________________________

Pour configurer Asterisk avec la messagerie Vocal, il nous faut ouvrir le fichier de configuration /etc/asterisk/voicemail.conf

Nous y indiquons le Codec d’enregistrement des

messages dans la section :

« [general] » puis « format=gsm »

L’objet du mail peut convenir des variables :

VM_NAME........nom d'utilisateur

VM_DUR .........durée du message

VM_MSGNUM....numéro du message

VM_MAILBOX....numéro de l'utilisateur

VM_CIDNUM.....numéro du l'appelant

VM_CIDNAME....nom de l'appelant

VM_DATE ........date du message

\n................. retour à la ligne

\t ................. tabulation

Page 22: VoIP avec Asterisk - AZERTY-Formation

Asterisk 22 / 47 65120.net

Envoi de Mail _________________________________________________________________________________________________

Il suffit de créer une ligne supplémentaire dans le fichier sip.conf :

[login du ToIP]

[email protected]

Puis, dans le fichier extensions.conf il suffit d’indiquer dans la séquence d’appel que l’appel sera dirigé vers la messagerie.

exten => 200, 1, Dial(SIP/JF, 10)

exten => 200, 2, VoiceMail(200)

Pour écouter la messagerie, nous utilisons la commande : VoiceMailMain()

Exemple : exten => 210, 1, VoiceMailMain(200@default) - en composant le 210, nous écoutons les messages de 200

Mise en place d’un serveur VOCAL

Réalisation des scénarii par événements____________________________________________________________________________

Le standard automatique permet à un utilisateur d’écouter un message lui indiquant les choix possibles.

Après, il lui suffit de presser une des touches pour effectuer l’action voulue. Il est possible de combiner les menus pour développer

une architecture plus complexe. Dans l’exemple suivant, quand l’utilisateur compose le 210, il entend un message vocal qui l’invite à

taper 1, 2 ou 9 sur son clavier. S’il tape 1, l’appel est envoyé à John. S’il tape 2, l’appel est envoyé à Fred. S’il tape 9, Asterisk

raccroche. Si l’utilisateur ne fait rien, le message est joué en boucle.

[local]

exten => 210, 1, Goto(Menu,s,1) ; appel du standard automatique

[Menu] ; standard automatique

exten => s, 1, Background(/var/msg/Menu) ; le message audio enregistré /var/msg/Menu.gsm et joue

exten => s, 2, WaitExten(2) ; on attend 2 sec

exten => s, 3, Goto(Menu,s,1) ; on recommence le tout

Page 23: VoIP avec Asterisk - AZERTY-Formation

Asterisk 23 / 47 65120.net

exten => 1, 1, SayNumber(1)

exten => 1, 2, Goto(local,200, 1) ; 1 Appel John

exten => 2, 1, SayNumber(2)

exten => 2, 2, Goto(local,201, 1) ; 2 Appel Fred

exten => 9, 1, SayNumber(9)

exten => 9, 2, Hangup() ; 9 On raccroche

Astuce : pour enregistrer le message vocal au bon format, il vous suffit de laisser un message sur la boîte

vocale d’un utilisateur et de copier le fichier dans le répertoire /var/msg/ avec la commande suivante.

cp /var/spool/asterisk/voicemail/default/200/INBOX/msg0000.gsm /var/msg/Menu.gsm

Analyse de trames

Pour analyser les trames, utilisons le programme : Wireshark avec un

filtre lié à l’adresse IP du serveur asterisk

Les trames des registrar sont envoyées par le téléphone afin de

s’identifier avec le mot de passe en MD5.

Seules les trames SIP (en TCP) sont utilisées ici.

Page 24: VoIP avec Asterisk - AZERTY-Formation

Asterisk 24 / 47 65120.net

Toutes les minutes, les téléphones se connectent au serveur pour

annoncer leur présence.

Les trames d’appel du poste 192.0.0.16 vers 192.0.0.14 montrent ici

les procédures de connexions.

Page 25: VoIP avec Asterisk - AZERTY-Formation

Asterisk 25 / 47 65120.net

Durant l’appel, nous voyons les échanges entre les téléphones et le

serveur.

Plusieurs parties sont audibles entre le serveur et les postes

téléphoniques (tonalités et autres sons possibles).

Les échanges de voix entre les postes téléphoniques se fait en UDP

avec des trames UDP de statistiques RTCP (en UDP).

Nous y voyons les codecs utilisés.

Page 26: VoIP avec Asterisk - AZERTY-Formation

Asterisk 26 / 47 65120.net

Installation XIVO

XIVO peut s’installer sur une machine virtuelle.

Page 27: VoIP avec Asterisk - AZERTY-Formation

Asterisk 27 / 47 65120.net

Nommons la machine virtuelle avec la définition du systèmesur DEBIAN (32bits).

Nous créons un disque pour stocker les messages et lesconfigurations.. et, accessoirement, LINUX.

Page 28: VoIP avec Asterisk - AZERTY-Formation

Asterisk 28 / 47 65120.net

Nous pouvons choisir un format de disque. Sans grandeimportance pour nous dans le cadre de la VoIP.

Choix libre

Page 29: VoIP avec Asterisk - AZERTY-Formation

Asterisk 29 / 47 65120.net

Choisissons le lieu de stockage du disque virtuel – pour lessauvegardes.

Attention, pour que XIVO fonctionne, il faut un disque en IDEet pas en SATA.

Page 30: VoIP avec Asterisk - AZERTY-Formation

Asterisk 30 / 47 65120.net

Il faut donc ajouter un disque à partir du fichier VDI qui vientd’être créé.

Puis supprimer l’image virtuelle du contrôleur SATA

Page 31: VoIP avec Asterisk - AZERTY-Formation

Asterisk 31 / 47 65120.net

Maintenant, nous serons compatibles avec DEBIAN et XIVO

Choisissons le CD d’installation de XIVO ou l’image ISO.

Page 32: VoIP avec Asterisk - AZERTY-Formation

Asterisk 32 / 47 65120.net

Installation de DEBIAN

Et XIVO démarre – LINUX Debian démarre

Page 33: VoIP avec Asterisk - AZERTY-Formation

Asterisk 33 / 47 65120.net

En tapant « root » puis le mot de passe choisi lors del’installation, nous tapons la commande ifconfig pour obtenirl’adresse IP du LINUX

Entrons dans le réseau de ce serveur (si ce n’est pas déjà lecas) et pinguons-le pour être sûr qu’il est bien dans notreréseau et notre VLAN.

Page 34: VoIP avec Asterisk - AZERTY-Formation

Asterisk 34 / 47 65120.net

Sinon, nous pouvons faire changer notre adresse IP commeindiqué si besoin.

Il suffit maintenant de se connecter à l’interface WEB en yentrant l’adresse IP du serveur dans la barre d’adresse (avechttp:// qui précéde).

Attention : certains navigateurs fonctionnent pas avec lesmenus déroulants.Utilisez Chrome par exemple.

Attention, le certificat SSL n’est pas authentique puisqu’il estprivé. Acceptons quand même la connexion.

Page 35: VoIP avec Asterisk - AZERTY-Formation

Asterisk 35 / 47 65120.net

Login : rootMot de passe : celui que l’on a indiqué lors de l’installation

Maintenant, nous accédons aux fonctions en menus déroulants.

Page 36: VoIP avec Asterisk - AZERTY-Formation

Asterisk 36 / 47 65120.net

Dans les fonctions, il y a la liste des utilisateurs

Avec la fonction en haut à droite, permet d’ajouter desutilisateurs

Page 37: VoIP avec Asterisk - AZERTY-Formation

Asterisk 37 / 47 65120.net

En cliquant sur le nom à modifier , nous avons tous les détails.

Page 38: VoIP avec Asterisk - AZERTY-Formation

Asterisk 38 / 47 65120.net

Des onglets permettent d’accéder à toutes les fonctions

Page 39: VoIP avec Asterisk - AZERTY-Formation

Asterisk 39 / 47 65120.net

Nous pouvons ajouter des lignes associées à l’utilisateur

Dans le menu « lignes » à gauche, nous pouvons créer descomptes pour les téléphones.

Page 40: VoIP avec Asterisk - AZERTY-Formation

Asterisk 40 / 47 65120.net

Ajoutons ou modifions les lignes

Le compte de la ligne (le téléphone SIP) est détaillé ici

Page 41: VoIP avec Asterisk - AZERTY-Formation

Asterisk 41 / 47 65120.net

Configurons les téléphones

Mettons les codes dans la configuration du téléphone

Le nom de connexion et le mot de passe sont donnés par XIVO.

Page 42: VoIP avec Asterisk - AZERTY-Formation

Asterisk 42 / 47 65120.net

Le téléphone est prêt

Avec l’utilisateur, nous pouvons associer une lignetéléphonique

Page 43: VoIP avec Asterisk - AZERTY-Formation

Asterisk 43 / 47 65120.net

Page 44: VoIP avec Asterisk - AZERTY-Formation

Asterisk 44 / 47 65120.net

Dans l’onglet « lignes » associons le numéro à la ligne.

Confirmons la ligne de l’utilisateur pour que le poste 1001 luisoit associé

Page 45: VoIP avec Asterisk - AZERTY-Formation

Asterisk 45 / 47 65120.net

Voici la liste des lignes créées

Créons un second poste téléphonique

Page 46: VoIP avec Asterisk - AZERTY-Formation

Asterisk 46 / 47 65120.net

Faisons des appels entre eux

Pour créer un groupe de lignes (les lignes sonnent en même temps ou chacun son tour, interception d’appel …)

Page 47: VoIP avec Asterisk - AZERTY-Formation

Asterisk 47 / 47 65120.net

Il faut d’abord créer un contexte avec des plages de numérosattribués pour les groupes.

Dans le menu « groupe » se trouve en suite un onglet groupequi contient les numéros.

Maintenant, il suffit d’aller sur le menu « Groupes » pourajouter un groupe associé à un numéro de téléphone.Ce sera l’occasion d’y mettre les Utilisateurs dans l’onglet« utilisateurs »