Вы находитесь на странице: 1из 25

VoIP avec Asterisk

Installation et mise en place d’asterisk

Auteur
Jean-François Casquet

Editeur
AZERTY Microsystem
2004 - 2012 © Tous droits réservés
copie interdite
www.65120.net/stage/asterisk

Asterisk 1 / 25 65120.net/stage/asterisk
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 2 / 25 65120.net/stage/asterisk
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 3 / 25 65120.net/stage/asterisk
Choisissons n’importe quel format. VDI est celui par défaut pour
Virtualbox

En choisissant « dynamiquement » le disque prendra de l’espace petit à


petit suivant les besoins de remplissage d’Asterisk.

Asterisk 4 / 25 65120.net/stage/asterisk
Donnons une taille intéressante pour stocker LINUX mais aussi les
messages vocaux … Emails …

Démarrage de la machine virtuelle – Virtualbox lance un assistant de


premier lancement car le système n’est pas installé.

Asterisk 5 / 25 65120.net/stage/asterisk
Choisissons l’image ISO de linux. Avec l’icône à droite de la liste, nous
pouvons parcourir pour trouver le fichier ISO de LINUX téléchargeable.

C’est parti pour l’installation

Asterisk 6 / 25 65120.net/stage/asterisk
Choisissons la langue pour l’installation

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

Asterisk 7 / 25 65120.net/stage/asterisk
Choisissons le pays de rattachement afin de pré sélectionner les options
suivantes

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

Asterisk 8 / 25 65120.net/stage/asterisk
Choisir le clavier français (LATIN 9) convient pour les claviers

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


chose)

Créons un nom descriptif de connexion à LINUX (il n’est pas possible de se


connecter entant que « root » sur Ubuntu).

Asterisk 9 / 25 65120.net/stage/asterisk
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 de


connexion à 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 10 / 25 65120.net/stage/asterisk
Choisissons un système de gestion de disque – le mieux, pour asterisk, est
d’utiliser le disque entier sans LVM – car les fonctions du LVM n’ont pas
vraiment d’intérêt pour la VoIP.

Partitionnons le disque choisi

Laissons LINUX partionner à ses besoins

Nous ne faisons pas de mises à jour

Asterisk 11 / 25 65120.net/stage/asterisk
Pas de mises à jour automatique – trop dangereux pour un système qui
doit 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 12 / 25 65120.net/stage/asterisk
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 faire


entrer 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éseau


de la machine physique.

Asterisk 13 / 25 65120.net/stage/asterisk
Installation de ASTERISK 1.8.10___________________________________________________________________________________

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

# analyse des packages


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

Asterisk 14 / 25 65120.net/stage/asterisk
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 / 25 65120.net/stage/asterisk
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

Installation d’un Windows avec son Soft Phone_______________________________________________________________________

Asterisk 16 / 25 65120.net/stage/asterisk
Installation d’un Windows – dans une machine virtuelle

Installation d’un Soft Phone : exemple Xlite

Asterisk 17 / 25 65120.net/stage/asterisk
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 / 25 65120.net/stage/asterisk
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 / 25 65120.net/stage/asterisk
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.

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

Asterisk 20 / 25 65120.net/stage/asterisk
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

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

Asterisk 21 / 25 65120.net/stage/asterisk
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
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

Asterisk 22 / 25 65120.net/stage/asterisk
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.

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


annoncer leur présence.

Asterisk 23 / 25 65120.net/stage/asterisk
Les trames d’appel du poste 192.0.0.16 vers 192.0.0.14 montrent ici
les procédures de connexions.

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

Asterisk 24 / 25 65120.net/stage/asterisk
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 25 / 25 65120.net/stage/asterisk

Вам также может понравиться