voip avec asterisk - azerty-formation

Post on 01-Mar-2022

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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.

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

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.

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é.

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

Asterisk 7 / 47 65120.net

Choisissons la langue pour l’installation

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

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.

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).

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.

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

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

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.

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.

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

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

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>

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

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

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

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

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]

mailbox=login@domaine.fr

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

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.

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.

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.

Asterisk 26 / 47 65120.net

Installation XIVO

XIVO peut s’installer sur une machine virtuelle.

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.

Asterisk 28 / 47 65120.net

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

Choix libre

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.

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

Asterisk 31 / 47 65120.net

Maintenant, nous serons compatibles avec DEBIAN et XIVO

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

Asterisk 32 / 47 65120.net

Installation de DEBIAN

Et XIVO démarre – LINUX Debian démarre

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.

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.

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.

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

Asterisk 37 / 47 65120.net

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

Asterisk 38 / 47 65120.net

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

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.

Asterisk 40 / 47 65120.net

Ajoutons ou modifions les lignes

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

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.

Asterisk 42 / 47 65120.net

Le téléphone est prêt

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

Asterisk 43 / 47 65120.net

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é

Asterisk 45 / 47 65120.net

Voici la liste des lignes créées

Créons un second poste téléphonique

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 …)

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 »

top related