Vous êtes sur la page 1sur 63

Travaux pratiques Asterisk / trixbox

Version du 9 juin 2010


Emmanuel Gillard (e.gillard@cg38.fr)

Sommaire
I. Installation du central téléphonique trixbox ................................................................................................................. 3

I.1 Présentation de trixbox............................................................................................................................................ 3

I.2 Installation de trixbox .............................................................................................................................................. 3

I.3 Paramétrages réseau ............................................................................................................................................... 5

I.4 Intégration des messages en français ...................................................................................................................... 8

I.5 Intégration des codecs G.729 .................................................................................................................................. 9

I.6 Interface d'administration ....................................................................................................................................... 9

II. Paramétrage de base de trixbox ................................................................................................................................. 12

II.1 Installation et mise à jour des modules FreePBX .................................................................................................. 12

II.2 Installation et mise à jour des modules trixbox .................................................................................................... 12

II.3 General Settings .................................................................................................................................................... 14

II.4 Création d'extensions ........................................................................................................................................... 15

II.5 Déploiement de softphones ................................................................................................................................. 20

II.5.a WENGOPHONE ............................................................................................................................................... 20

II.5.b TWINKLE ......................................................................................................................................................... 23

II.5.c X-LITE .............................................................................................................................................................. 25

II.5.d Vérifications ................................................................................................................................................... 27

II.6 Portail web pour les utilisateurs ........................................................................................................................... 29

II.7 Déploiement de SIP phones .................................................................................................................................. 33

II.8 Ajout des numéros SDA ........................................................................................................................................ 37

II.9 Création d'une connexion entrante (Inbound Routes) ......................................................................................... 37

II.10 Création d'un trunk ............................................................................................................................................. 38

II.10.a Trunk IAX2 .................................................................................................................................................... 39

II.10.b Trunk SIP ...................................................................................................................................................... 40

1
II.10.c Trunk ZAP ..................................................................................................................................................... 41

II.11 Ajout d'une connexion sortante (Outbound Routes) ......................................................................................... 41

III. Paramétrage avancé de trixbox ................................................................................................................................. 43

III.1 Gestion des administrateurs ................................................................................................................................ 43

III.2 Feature Codes ...................................................................................................................................................... 43

III.3 Gestion des enregistrements sonores ................................................................................................................. 43

III.4 Système vocal interactif (IVR) .............................................................................................................................. 43

III.5 Gestion des files d'attente (Queues) ................................................................................................................... 44

III.6 Groupes d'appel (Ring Groups) ............................................................................................................................ 45

III.7 Follow Me............................................................................................................................................................. 46

III.8 Evolution des conditions d'appel en fonction du temps (Time Conditions) ........................................................ 47

III.9 Conférences ......................................................................................................................................................... 47

III.10 Musiques d'attente ............................................................................................................................................ 48

III.11 Parcage d'appels et redirections ........................................................................................................................ 48

III.12 Messagerie vocale (Voicemail) .......................................................................................................................... 49

III.13 Blacklist .............................................................................................................................................................. 49

III.14 Call Forward ....................................................................................................................................................... 49

III.15 Configuration d'Asterisk à l'aide de fichiers de configuration ........................................................................... 50

III.16 Informations système ........................................................................................................................................ 50

III.17 Maintenance système ........................................................................................................................................ 50

III.18 Flash Operation Panel (FOP) .............................................................................................................................. 50

III.19 Sauvegarde et restauration................................................................................................................................ 51

III.20 Misc Destinations ............................................................................................................................................... 51

III.21 Misc Applications ............................................................................................................................................... 51

III.22 Callback .............................................................................................................................................................. 51

III.23 Asterisk Logfiles.................................................................................................................................................. 52

IV. Analyse des protocoles utilisés par trixbox ............................................................................................................... 52

V. Quelques outils pratiques pour la VoIP ...................................................................................................................... 62

V. Ressources web .......................................................................................................................................................... 63

2
I. Installation du central téléphonique trixbox
I.1 Présentation de trixbox

Le logiciel trixbox (anciennement appelé asterisk@home) est un ensemble de logiciels "open source" qui permet de compléter le
logiciel FreePbx (ex asterisk) pour fournir l'ensemble des fonctions nécessaires à un central téléphonique haut de gamme.
trixbox est sous Linux. Il est cependant possible d'utiliser le logiciel trixbox sans connaissance de Linux à l'aide de nombreux
guides qui existent sur Internet.

trixbox est disponible en différentes versions :

• trixbox CE : Il s'agit de la "Community Edition", gratuite et sans support,


• trixbox Pro : une version payante, plus évoluée, comprenant le support, la maintenance et la formation associée,
• trixbox Appliance : les versions CE ou Pro embarquées dans un boîtier

Tribox appliance

La société trixbox a été rachetée en octobre 2006 par Fonality.

Le site web http://www.trixbox.org concerne la version CE tandis que http://www.trixbox.com est dédié à la version Pro. Il existe
également un projet trixbox disponible sur http://sourceforge.net/projects/asteriskathome/

Voici quelques composants inclus avec trixbox:


- Linux CentOS: Système d'exploitation
- MySQL: serveur de base de données
- Apache: Serveur Internet
- PHP: Langage de script orienté serveur
- Asterisk: PBX voix-sur-IP
- FreePBX: Interface graphique pour Asterisk
- SugarCRM: Outil de gestion de la relation client
Et plein d'autres ...

I.2 Installation de trixbox

Vous avez le choix d'installer trixBox sur une machine réelle ou virtuelle. Si vous ne voulez pas vous compliquer la vie en
découvrant deux nouvelles technologies à la fois -téléphonie SIP- et -virtualisation-, choisissez plutôt la machine réelle.
Cependant la machine virtuelle est aussi une bonne option car elle permet de fonctionner sous Windows.

• Machine réelle
Une machine très simple suffit : 256Mo de RAM, 10 Go de disque, une interface réseau. Le CD-ROM, l'écran, le clavier
et la souris ne sont utiles que pendant l'installation initiale et peuvent être "empruntés" temporairement à une autre
machine. Un processeur Pentium III est largement suffisant. Ensuite téléchargez le logiciel trixbox (il faut choisir l'image
disque .iso et être patient, il y a environ 600 Mo à télécharger). Puis, il faut graver cette image disque sur un CD. Enfin,
introduire ce CD dans la machine et démarrer à partir du CD (il faut peut-être changer les paramètres du BIOS).
Attention : l'installation écrase le contenu du disque dur. En principe, il suffit de répondre à des questions simples et tout
se passe automatiquement.

• Machine virtuelle
Une autre solution, consiste à utiliser une machine virtuelle. On fait fonctionner cette machine Linux sur une autre
3
machine, sous Windows par exemple. Il faut une machine réelle de taille convenable : au moins 1Go de RAM et un
Pentium IV ou équivalent.

Prenons l’exemple de VMware. La solution la plus simple consiste à télécharger le VMware Player puis une machine
virtuelle TrixBox toute faite (http://sourceforge.net/projects/asteriskathome/ ou http://trixbox.org/wiki/trixboxce-
vmware).C'est la solution que nous emploierons pour les travaux pratiques. Il n'y a rien à installer. Tout se fait à partir
d'un navigateur. Vous pouvez aussi télécharger VMware server (150Mo gratuit) pour créer des machines. Avec VMware
Server, vous pouvez soit utiliser une machine toute faite, soit démarrer sur le disque .iso du logiciel TrixBox. Dans ce
cas, il n'est pas nécessaire de le graver car VMware sait lire directement des images disques comme un CD-ROM réel.

Chargement sur Sourceforge.net de la dernière version de trixbox pour VMWare

Remarque : Il est possible que le site http://sourceforge.net/projects/asteriskathome/ ne propose pas la dernière version de TrixBox
packagée sur VMWare. Dans ce cas, il est intéressant de consulter la section "Virtual Appliances" du site VMWare :

VMWare propose également des machines virtuelles TrixBox

4
Quelques notions sur VMWare :

• La machine virtuelle VMWare fournie par trixbox est au format 2.x qui actuellement peut être utilisé directement par
VMWare Player. Pour ceux qui souhaitent utiliser VMWare Server 1.x, il est nécessaire de convertir la machine virtuelle
au format VMWare 1.x à l'aide de l'utilitaire VMWare Converter.
• CTRL + ALT permet de récupérer le curseur dans le système d'exploitation sur lequel tourne VMWare
• Nous allons utiliser le mode "Bridged" de VMWare qui est son fonctionnement par défaut. Ceci permet de publier les
paramètres réseau du CentOS de la trixbox sur la carte Ethernet du poste de travail.

Remarque : le mode "Bridged" implique qu'une interface physique soit opérationnelle pour fonctionner. Si le câble réseau
du port Ethernet est débranché, ceci ne fonctionnera pas. Néanmoins, si on se connecte à un réseau WIFI, VMWare va
automatiquement se connecter en mode "Bridged" sur la carte WIFI.

Configuration du mode Bridged sur l'interface réseau

I.3 Paramétrages réseau


Il faut donner une adresse IP fixe sur votre réseau local à votre trixbox. Si votre adresse IP fixe est privée (cas habituel) et que
vous voulez accéder à votre trixbox de l'extérieur, il faut configurer votre routeur en "port forwarding" pour les ports suivants :
* TCP 80 pour le serveur Web
* 22 pour SSH
* 10000 pour Webmin
* UDP 5004-5082 pour SIP
* 10001-20000 pour RTP
* 4569 pour IAX

Pour nos travaux pratiques, nous allons utiliser l'image trixbox Vmware et la lire avec le lecteur Vmware.
Si vous choisissez l'installation avec un CD, des questions usuelles vous seront d'abord posées comme le fuseau horaire ou le type
de clavier.

Démarrez trixbox avec le lecteur Vmware :


Le Linux CentOS démarre, les services trixbox sont ensuite lancés.

5
Connectez-vous au niveau Linux avec l'identifiant et le mot de passe suivant:
login: root
password: trixbox

Configurez les paramètres IP:


#netconfig

6
Entrez vos paramètres IP:
Vous pouvez aussi choisir de demander une adresse IP dynamique même si cela n'est pas recommandé pour un serveur.
Paramétrages IP CG38 :
IP address (Adresse IP): 38.99.5.11 (la plage 38.99.5.11  38.99.5.15 est réservée pour la VoIP)
Netmask (Masque de sous-réseau): 255.255.0.0
Default gateway (IP) (Passerelle par défaut): 38.99.0.1
Primary nameserver (serveur de nom primaire): 38.99.30.136

Paramétrages IP INPG :
IP address (Adresse IP) machine physique: 195.220.28.97
IP address (Adresse IP) machine virtuelle: 195.220.28.98
Netmask (Masque de sous-réseau): 255.255.224.0
Default gateway (IP) (Passerelle par défaut): 195.220.28.62
Primary nameserver (serveur de nom primaire): 195.220.26.1

Il est nécessaire de redémarrer la couche réseau pour assurer la prise en compte du nouveau paramétrage IP à l'aide de la
commande /etc/init.d/network restart (un redémarrage du serveur est également possible).

La commande ifconfig permet de vérifier que les nouveaux paramètres IP ont bien été pris en compte.

7
Outre l'utilisation de netconfig, il est également possible de réaliser le paramétrage réseau en modifiant deux fichiers de
configuration :
[root@asterisk1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.27.1.3
NETMASK=255.255.0.0
NETWORK=172.27.0.0
GATEWAY=172.27.1.1
ONBOOT=yes
DEVICE=eth0
[root@asterisk1 ~]# cat /etc/resolv.conf
nameserver 80.10.246.1
nameserver 80.10.246.132

I.4 Intégration des messages en français


Pour avoir les messages en français, il faut inclure par exemple le package FrenchPrompts.
On télécharge le package :
$ wget http://www.sineapps.com/down/FrenchPrompts.tar.gz
ou
$ wget http://www.asterisk-france.net/afsite/
index.php?option=com_content&task=view&id=44&Itemid=2
On décompresse ce package :
$ tar xzvf FrenchPrompts.tar.gz -C /var/lib/asterisk/sounds
Et on modifie les fichiers sip.conf et iax.conf présents dans /etc/asterisk en ajoutant la ligne :
language=fr
D'autres packages de langue, payants ou libres, sont disponibles sur Internet. Pour les liens, rien de mieux que de
consulter le portail voip-info.org : http://www.voipinfo.org/wiki/view/Asterisk+sound+files+international
Remarque : sur Debian, il suffit de faire apt-get install asterisk-prompt-fr

8
I.5 Intégration des codecs G.729
Pour pouvoir émettre et recevoir des appels de qualité correcte en passante par des liaisons internet, il est
fortement conseillé de les compresser en G.729. Pour cela, il faut acheter des licences, par exemple auprès de
Digium, le créateur d'Asterisk.
Il faut autant de licence que de compression de canaux simultanée du côté de l'IPBX et autant du côté opérateur. On
commande donc autant de licence que de lignes VoIP sur le site :
http://www.digium.com/en/wheretobuy/product/G729CODEC&disti=no&reseller=no
Pour les installer sur l'IPBX, il suffit de suivre les instructions présentes dans le fichier README
(http://www.digium.com/en/docs/G729/G729-README)
cd /root/
wget ftp://ftp.digium.com/pub/asterisk/g729/linux/32-bit/pentium4m/codec_g729a.so
cp /root/codec_g729a.so /usr/lib/asterisk/modules/
wget ftp://ftp.digium.com/pub/asterisk/g729/register_utility/glibc2.3/x86/register
rm /usr/lib/asterisk/modules/codec_g729b.so
chmod 755 /usr/lib/asterisk/modules/codec_g729a.so
chown root.root /usr/lib/asterisk/modules/codec_g729a.so
chmod 500 /root/register
chown root.root /root/register
/root/register G729-1234ABCD
asterisk -rx "restart now"
asterisk -rvvv
*CLI> show g729
0/0 encoders/decoders of 2 licensed channels are currently in use

On demande aussi ce même nombre de licence à l'opérateur VoIP et qu'il autorise les connexions du trunk en G.729.

I.6 Interface d'administration

Une fois que Linux a une adresse IP, vous pouvez accéder à la plate-forme trixbox avec un navigateur Internet comme Firefox.
http://192.168.1.222

9
Entrez dans le mode administration:
Cliquez sur le lien Internet "switch" dans le coin en haut à droite de l'écran.

Un popup vient, entrez l'identifiant et le mot de passe suivant:


login: maint
password: password

Fermez la page d'enregistrement.


Cliquez sur la croix dans le coin en haut à droite de la page d'enregistrement.

10
Nous arrivons alors à la page d'accueil de trixbox :

Remarque : en l'absence d'un accès internet, le chargement de la page d'accueil peut être long et il est possible que les sous-menus
ne s'affichent pas correctement. Pour récupérer la main, il suffit de cliquer sur le menu "Packages" qui ne contient pas de sous-
menu.

11
II. Paramétrage de base de trixbox
II.1 Installation et mise à jour des modules FreePBX

FreePBX (anciennement Asterisk) est l'outil de configuration graphique fourni avec Asterisk. Depuis l'interface d'administration
de la trixbox, on y accède par le menu PBX  PBX Settings.

Lors de la première utilisation de FreePBX, il faut ajouter les modules nécessaires. En cliquant sur l'onglet “Tools” puis sur
“Module Admin”. On peut ensuite ajouter l'ensemble des modules. Certains, tels que “conferences” ou “Paging et Intercom”, ne
sont pas utiles pour une utilisation standard.

Il est également possible d'utiliser cette interface pour mettre à jour les modules déjà installés.

II.2 Installation et mise à jour des modules trixbox


De la même manière que nous avons mis à jour FreePBX, nous allons procéder à l'installation et la mise à jour des
modules trixbox. Pour ce faire, il est nécessaire de s'identifier sur trixbox avec le login/password de votre compte
utilisé sur les forums de trixbox.org :

12
Si vous n'avez pas de compte, vous devez en créer un en cliquant sur "register" :

Il suffit de remplir le formulaire:

Il est alors possible, en se rendant dans le menu "Packages", d'administrer les différents modules :

13
II.3 General Settings
PBX  PBX Settings  General Settings
Permet de définir les valeurs par défaut de certains paramètres de Freepbx.
* Asterisk Dial command options : The most common options are tr, which means the person receiving the call can
transfer a call using # and generate ringtones when an extension is ringing. Other useful options are (Note, this list is
very incomplete. The complete list of options is huge and can be seen by typing show application Dial in the asterisk
console) :
• A(x) Play an announcement to the called party, using 'x' as the file.
• D(called:calling) Send the specified DTMF strings *after* the called party has answered, but before the call
gets bridged. The 'called' DTMF string is sent to the called party, and the 'calling' DTMF string is sent to the
calling party. Both parameters can be used alone.
• h: Allow the called party to hang up by sending the '*' DTMF digit.
• H: Allow the calling party to hang up by hitting the '*' DTMF digit.
• r: Indicate ringing to the calling party. Pass no audio to the calling party until the called channel has
answered.
• t: Allow the called party to transfer the calling party by sending the DTMF sequence defined in features.conf.
• T: Allow the calling party to transfer the called party by sending the DTMF sequence defined in features.conf.
• w: Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-
touch recording in features.conf.
• W: Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-
touch recording in features.conf.
* Asterisk Outbound Dial command options : même chose que le précédent, en particulier :
• t: Allow the called user to transfer the call by hitting #
• T: Allow the calling user to transfer the call by hitting #
• w: Allow the called user to start recording after pressing *1 (Asterisk v1.2)
• W: Allow the calling user to start recording after pressing *1 (Asterisk v1.2)
• r: You SHOULD NOT use this option on outbound trunks
* Number of seconds to ring phones before sending callers to voicemail : permet fixer la valeur par défaut de ce
paramètre.
* Extension prefix for dialing direct to voicemail : valeur par défaut *. Permet d'appeler directement la messagerie
d'une extension en faisant précéder le numéro de l'extension par *.
* Direct Dial to Voicemail message type : message à jouer quand on appelle directement la messagerie d'une
extension.
* Use gain when recording the voicemail message (optional) : gain en décibel à appliquer pour les messages laissés
sur le répondeur.
* Do Not Play “please leave message after tone to caller”: Check this to remove the default message "Please leave
your message after the tone. When done, hang-up, or press the pound key." That is played after the voicemail
greeting (the s option). This applies globally to all vm boxes.
* Find users in the Company Directory by: permet de déterminer comment chercher les extensions dans le
Company Directory, par le nom ou le prénom ou les deux. Le Company Directory est généré automatiquement pour
les extensions à partir de ce qui est écrit dans le champ Display Name sous le format Prénom Nom.
* Play extension number to caller before transferring call: Plays a message "Please hold while I transfer you to
extension xxx" that lets the caller know what extension to use in the future.
* Operator Extension: When users hit '0' in the directory, they are put through to this number. Note that it does
NOT need to be an extension, it can be a Ring Group, or even an external number.

14
* Extension of fax machine for receiving faxes: Select 'system' to have the system receive and email faxes.
Selecting 'disabled' will result in incoming calls being answered more quickly.
* Email address to have faxes emailed to: Email address used if 'system' has been chosen for the fax extension
above.
* Email address that faxes appear to come from: Email address that faxes appear to come from if 'system' has
been chosen for the fax extension above.
* Country Indications: Localisation géographique.
* 24-hour format: Select Yes if you use 24-hour format or No if you are using 12-hour am/pm format.
* Allow Anonymous Inbound SIP Calls? : valeur par défaut NO. Pour des raisons de sécurité il faut toujours
sélectionner NO. Sinon n'importe qui peut appeler les extensions ou le système sans avoir à disposer d'une
extension ou appeler un trunk. Il suffit d'avoir accès à l'adresse IP du serveur et d'émettre un appel SIP du type
SIP/2000@monserveur.com.
* Check for Updates : Choosing Yes will result in the system automatically checking for updates nightly. The
resulting information will be displayed in the dashboard and will be optionally emailed to the address below if
provided.
* Update Email : adresse à laquelle seront envoyées les notifications d’update.
Remarque : la configuration du serveur SMTP est réalisée depuis Settings  General Settings :

II.4 Création d'extensions

Configurons Asterisk via sa plate-forme web.


Sélectionnez PBX -> PBX Settings

15
Cliquez sur "Extensions" dans l'onglet "Setup" pour configurer les extensions qui sont en réalité les numéros de téléphone.
Onglet Setup -> section extensions

Dans la fenêtre "add an extension" (ajouter une extension), choisir Device = Generic SIP Device.
Cliquez sur le bouton "submit" (soumettre)

Entrez les données suivantes:


User Extension (Extension utilisateur): 201
Display name (Nom d'affichage): Mikado
secret (Mot de passe): 12345
Cliquez sur le bouton "submit" (soumettre) en bas de la page pour créer une extension.
16
Cliquez sur le bouton rouge "Apply Configuration Changes" (Appliquez les changements de configuration) pour appliquer vos
nouveaux paramètres d'extension.

Certains des champs n'apparaissent pas lors de la création de l'extension mais seront visibles dès que l'on va sur la
page de l'extension créée. Voici la liste des champs correspondant à la page d'une extension après sa création :
* User Extension : numéro de l'extension.
17
Edit Extension
* Display Name : nom de l'extension, apparaîtra lorsqu'un appel est émis, peut-être effacé si l'appel passe par une
ligne d'un opérateur téléphonique.
* CID Num Alias : permet de changer le numéro de l'appelant pour les appels internes, il masque alors le numéro
de l'extension. Si on veut par exemple que n'importe quelle extension d'un service donné apparaisse comme un
appel depuis une extension déterminée du service pour les appels internes.
* SIP Alias : permet de recevoir des appels anonymes sur l'extension depuis l'intranet ou l'extranet. Par exemple si
on met dans ce champ la valeur toto, alors on peut appeler cette extension depuis n'importe où en appelant
SIP/toto@domaine.serveur.com. Pour que cela fonctionne il faut par ailleurs que l'option « Allow Anonymous
Inbound SIP Calls? » dans General Settings soit mise sur ''yes", ce qui pour des questions de sécurité n'est pas
conseillé.
Extension Options
* Direct DID : la valeur donnée ici est généralement un numéro mais peut être une chaîne de caractères. Les
appels entrants sur un trunk enregistré avec un DIDnumber qui a la même valeur (voir registration string dans le
chapitre Trunk) seront aiguillés vers cette extension.
* DID Alert Info : ne fonctionne que si un Direct DID est spécifié. Permet de faire sonner des téléphones SIP avec
des sonneries particulières en fonction de la valeur de l'alerte. Il faut que cette fonctionnalité soit disponible sur le
téléphone SIP.
* Music on Hold : permet de choisir la musique d'attente.
* Outbound CID : identité de l'appelant pour les appels émis depuis cette extension. Syntaxe "Mon nom"
<0123456>. Si pareilles valeurs sont spécifiées sur le trunk utilisé, alors ce sont celles spécifiées dans l'extension qui
prédominent, mais un opérateur téléphonique peut écraser ces informations.
* Ring Time : nombre de secondes durant lesquelles l'extension sonnera avant que l'appel ne soit renvoyé vers la
messagerie (si elle est activée pour l'extension). La valeur par défaut est celle spécifiée dans l'onglet General
Settings.
* Call Waiting : permet d'activer la mise en attente pour l'extension.
* Emergency CID : caller ID transmise en cas d'appel d'un numéro passant par l'outbound route où l'option
Emergency Dialing est sélectionnée.
Fax Handling
* Fax Extension : destination des appels fax. La valeur peut être une extension, disabled, system (auquel cas les fax
seront reçus par le système et renvoyés par email à l'adresse spécifiée dans le champ Fax Email) ou FreePBX default.
Dans ce dernier cas, le fax sera traité selon la configuration spécifiée dans General Settings.
* Fax Email : adresse destinataire des emails si la valeur de Fax Extension est « system ».
* Fax Detection Type : permet de répondre automatiquement aux appels entrants et de jouer pendant un nombre
de secondes déterminées dans le champ « Pause after answer » la musique de détection de fax. S'il n y pas de fax
détecté, l'extension se mettra à sonner. Valeur : NVFAX'' pour les trunks SIP et IAX ou Zaptel pour les trunks ZAP.
* Pause after answer : nombre de secondes pour la détection de fax avant le réacheminement de l'appel.
Privacy
* Privacy Manager : si la valeur est « yes », alors si un appel arrive sans CallerID, il lui sera demandé de composer
son numéro à 10 chiffres (il aura 3 tentatives) avant que l'extension ne se mette à sonner. Cela permettra d'avoir
toujours un numéro affiché sur le téléphone en recevant un appel avant de décrocher, on peut alors décider de
répondre ou non.
Device Options
* secret : mot de passe de l'extension.
* dtmfmode : mode des fréquences vocales, laisser la valeur par défaut rfc2833.
* canreinvite : Asterisk is a back-to-back useragent. This means that your phone calls it, and it calls your VOIP, PRI
or POTs line, all audio (RTP stream) is carried through the Asterisk process during the call. Your VOIP service
provider, for example, often will use a SIP REINVITE message to change the RTP destinations after the call is set up.
18
This reduces load on the equipment, as it's only doing call setup and takedown. Highly desireable if you're
supporting remote users making VOIP calls and your VOIP provider supports REINVITE. However, it's tricky to get any
of your FreePBX features to work in this scenario. Play with this, but don't use it on a customer system unless you
have tested the features you need.
* context : voir la page Custom Contexts.
* host : valeurs possibles « dynamic » ou une adresse IP. Si une adresse IP est spécifiée alors le client SIP ne pourra
se connecter à cette extension que s'il a cette adresse IP.
* type : friend or peer. Use friend for a phone. Peer is for SIP devices that are capable of carrying calls, like a Trunk.
* nat : valeur « yes » ou « no », si la valeur est « no » alors le client ne pourra pas se connecter à l'extension s'il est
situé derrière une NAT. SIP is a nat-unfriendly protocol in that it specifies the return IP address for the call audio
stream deep inside a packet. NAT works by rewriting packet source and destination IP addresses, but doesn't
understand SIP (unless a good SIP Application Layer Gateway is installed). NAT is therefore problem if both the
phone and the server PBX are separated from the public internet by different NATs (e.g. a home router and a
corporate one.) In such a situation, audio won't work, but signaling will (phones will ring but no audio). To support
remote home users behind conventional NATs, use “yes”, and either give the server PBX a public IP address or do a
1:1 IP mapping from a public IP to it's internal, then set IP_nat.conf to the public IP address of the system. NAT=yes
instructs Asterisk to send audio to the IP it receives it from, regardless of what the SIP SDP says, and lets you have at
least one NAT present and still have effective audio. Note that NATs vary widely as to how long they stay 'open'. Best
practice when using Non-STUN phones is to have SIP registration expire every 60 seconds – the re-registration
(outbound, by the phone) will keep the NAT open to receive calls. NAT=yes doesn't hurt anything when the client
device is on the same LAN.
* port : ce champ n'a pas d'incidence dans le cas d'une extension.
* qualify : valeur yes, no ou xx, « xx » étant un nombre de millisecondes, permet de considérer que le client est
hors de portée si la latence est trop longue.
* callgroup : defines call group for calls to this device.
* pickupgroup : Optional parameter pickupgroup specifies the group to check for an incoming call that should be
picked up. If this is omitted, the group specified in sip.conf will be used.
* disallow : codecs interdits pour l'extension, valeur par défaut vide. Enter codec overrides here. An extension or
group of extensions on a low-bandwidth link might want to disallow the higher-bandwidth codecs out of the general
pool.
* allow : codecs autorisés pour l'extension, valeur par défaut vide.
* dial : SIP/extension is the default.
* accountcode : This field, if defined, is used to populate the "accountcode" field of the CDR. Enter an account
code for use by a billing module.
* mailbox : permet de configurer la boîte vocale liée à cette extension. On peut définir plusieurs boîtes vocales
séparée par des virgules. « extension@default » is the default.
* Custom Context : ce champ n'existe que si le module Custom Contexts a été installé. Voir ce module pour les
explications.
Dictation Services
Ces champs n'apparaissent que si le module Dictation est installé.
* Dictation Service : activer ou désactiver le service.
* Dictation Format : format d'enregistrement des messages.
* Email Address : adresse email pour l'envoi des messages enregistrés.
Recording Options
* Record Incoming : enregistrement des appels entrants : On Demand/Always/Never.
* Record Outgoing : enregistrement des appels sortants : On Demand/Always/Never.
Voicemail & Directory
* Status : activation de la messagerie vocale, Disabled/Enabled.
19
* Voicemail Password : mot de passe pour accéder à la messagerie. Pourra aussi être changé depuis le téléphone
en composant *98.
* Email Address : adresse vers laquelle seront envoyés les messages vocaux (champ optionnel)
* Pager Email Address : adresse où seront envoyés des courts messages notifiant la présence de messages sur la
messagerie.
* Email Attachment, Play CID, Play Envelope, Delete Vmail, __ : ces champs sont faciles à comprendre. A noter que
Email Attachment et Delete Vmail tous les 2 sur « yes » permet d'envoyer les messages enregistrés et de les effacer
aussitôt du système.
* VM Options : options supplémentaires de la messagerie vocale (ex : maxmessage=60).
* VmX Locater™ : s'il est mis sur « Enabled », autorise l'utilisateur de l'extension à configurer les variables de la
messagerie depuis le User Portal ARI.

Remarque : l’outil « Bulk Extensions » (PBX  Bulk Extensions) permet d’importer des extensions depuis un fichier
texte au format Extension, Name, Secret, Voicemail, VM Password, VM Email.

II.5 Déploiement de softphones

Un téléphone logiciel (softphone) est un téléphone installé sur un ordinateur pendant qu'un téléphone matériel (hardphone) est un
téléphone physique semblable à un téléphone traditionnel. Dépendant de leurs capacités, les deux types de téléphones peuvent être
capables d'utiliser la voix-sur-IP.

Vous pouvez trouver un listing de softphones sur les sites Internet de Wikipedia ou de voip-info.org.
Dans notre exemple, nous avons choisi les softphones suivants: Wengophone, Twinkle and X-Lite.

Voici un résumé de chaque softphone :


Nom Extension OS Softphone Open source Gratuit
Mikado 201 Windows WengoPhone Oui Oui
Bambou 202 Linux Twinkle Oui Oui
Babar 203 Windows X-Lite Non Oui

Configurons les trois softphones:

II.5.a WENGOPHONE
WengoPhone est disponible pour Windows, MAC et Linux. Il existe également sous forme d'extension pour Firefox.

Téléchargez WengoPhone (http://www.wengophone.fr), installez et démarrez-le.


Cliquez sur "Configure a New Profile" (Configurez un nouveau profil)

20
Sélectionnez "Other (for power users only)"

Configurez la fenêtre "Configure your SIP profile" (configurez votre profile SIP) sur la manière suivante:
Account name (Nom d'accompte): Mikado
login / username (Identifiant / nom d'utilisateur): 201
Password (Mot de passe): 12345
SIP Domain / Realm (Domaine SIP): local
Display name (Nom d'affichage): Mikado
Proxy: 192.168.1.222
Cliquez ensuite sur "Connect"

21
Les deux petits écrans bleus dans le coin droit en bas montrent que le softphone est maintenant authentifié avec Asterisk.

22
II.5.b TWINKLE
Twinkle (http://www.twinklephone.com) est un softphone disponible sur des plateformes Linux seulement.
Téléchargez et installez-le.
Sur Ubuntu et Debian, vous avez juste à utiliser la commande suivante:
#apt-get install twinkle

Lancer le softphone:
#twinkle

Dans les deux premières fenêtres:


Cliquez sur "Ok" et "Wizard" (Assistant)

Choisissez un nom de profil.

Dans la fenêtre "User profile" (Profil utilisateur), entrez les paramètres suivants:
Choissisez "Other" dans la liste déroute "SIP service provider" (fournisseur de service SIP).
Your name (Votre nom): Bambou
User name* (Nom d'utilisateur): 202
Domain* (Domaine): 192.168.1.222
Authentication name (Nome d'authentification): 202
Password (Mot de passe): 12345
Cliquez sur "Ok"

23
Cliquez sur "Ok" pour accéder aux paramètres du système.

Dans la fenêtre "system settings" paramètres du système, cochez "Bambou" en tant que profil utilisateur par défaut.
Cliquez sur "Ok"

Le softphone s'authentifie automatiquement avec Asterisk.

Vous pouvez forcer l'enregistrement:


Registration -> Register

24
II.5.c X-LITE
X-Lite est un softphone disponible sous Windows, MAC et Linux.

Téléchargez X-Lite (http://www.counterpath.com/x-lite.html) et installez-le.


Cliquez sur le triangle blanc.

Sélectionnez "SIP Account Settings ..."(Paramètres de compte SIP).

Dans la fenêtre "SIP Accounts" (Comptes SIP):

25
Cliquez sur le bouton "Add..." (Ajouter).

Configurez la fenêtre "Properties of Account1" (propriétés du compte 1):


Display name (Nom d'affichage): Babar
User name (Nom d'utilisateur): 203
Password (Mot de passe): 12345
Domain (Domaine): local
Cochez "Register with domain and receive incoming calls" (Enregistrement avec domaine et réception d'appels entrants)
Sélectionnez proxy - Address: 192.168.1.222
Cliquez sur "Ok".

Le profil est affiché dans la fenêtre "SIP Accounts" (Acomptes SIP).

26
Cliquez sur "Close" (Fermez).

Le softphone est maintenant authentifié par Asterisk.

II.5.d Vérifications
Dans la plate-forme principale de trixbox, vous pouvez vérifier l'état des équipements SIP.
Ouvrez votre navigateur avec le chemin suivant:
http://192.168.1.222/maint/

Vous pouvez aussi obtenir des informations sur les enregistrements SIP:
Sélectionnez PBX  PBX Status :

27
Des statistiques étendues peuvent être obtenues à la section "Reports" de l'interface FreePBX (PBX  PBX Settings  onglet
"Reports").

Journal des appels:

Charge journalière:

28
II.6 Portail web pour les utilisateurs
La connexion web sur l’adresse IP de l’IPBX aboutit à un portail utilisateur qui comporte de base trois menus :
• Portal : pour modifier les paramètres utilisateurs et accéder au voicemail
• MeetMe : outil de gestion de conférences
• FOP (Flash Operation Panel) : permet de monitorer ses appels
Il est nécessaire de s’identifier pour accéder à l’outil Portal en utilisant son extension comme identifiant et son mot
de passe de messagerie vocale :

La page d’accueil du portail permet d’accéder à sa boîte vocale :

29
Il est possible d’écouter ses messages depuis son navigateur web si le module est installé :

Un journal d’appels est également disponible :

30
Les paramètres d’appel de l’extension sont accessibles depuis le menu « Phone features » :

Le service « Follow Me » sera décrit en détail dans le chapitre III.7.


Le service « Personal IVR » est un complément à la boîte vocale de l’utilisateur afin de la transformer en serveur
vocal interactif en cas d’absence ou de ligne occupée. Il convient de réenregistrer le message d’accueil de la boîte
vocale afin d’orienter l’appelant entre les différentes options :

31
Les « Feature Codes » sont les raccourcis clavier vers les principaux services offerts aux utilisateurs. Cette liste est
mise à jour dynamiquement en fonction du paramétrage de l’IPBX ainsi que de la nature des différents modules
installés :

Le menu « Paramètres » permet de changer le mot de passe de sa boîte vocale, de configurer la voice to mail et
également de paramétrer l’enregistrement des appels entrants et sortants :

32
II.7 Déploiement de SIP phones

Nous disposons d'un téléphone Grandstream BudgeTone-102.


En voici la fiche technique :

33
Il est possible de se connecter à l'interface web d'administration du téléphone IP en utilisant l'adresse IP reçue en
DHCP. Celle-ci s'obtient en utilisant la combinaison de touches Menu  flèche vers le bas  Menu.

34
Le mot de passe administrateur par défaut est "admin".
Le menu "Advanced settings" permet de se connecter au serveur SIP (trixbox).

Remarque : il est nécessaire d'arrêter électriquement le téléphone pour que les paramètres soient pris en compte.

L'outil "End Point Configuration" (PBX  Endpoint Manager") permet de rajouter un profil matériel à un hardphone
IP. Il faut sélectionner le constructeur dans la liste proposée :

35
On sélectionne alors "Add Phone". Il est alors nécessaire de choisir le modèle (Phone Type), de le lier avec
l'extension Asterisk correspondante et de définir son adresse MAC :

36
La fonction des diverses touches programmables peut alors être modifiée.

II.8 Ajout des numéros SDA

Rappel : SDA– Sélection Directe à l’Arrivée (ou DID en Europe) est une fonction offerte par les compagnies de téléphone à
l’usage de leur clients en conjonction de leur système PABX, qui permet aux compagnies de téléphone (telco) d’attribuer une
gamme de numéros associés avec une ou plusieurs lignes.

Son but est de permettre aux entreprises de donner à chacun de ses employés un numéro personnel, sans que chacun ait une ligne
séparée. Ainsi, la circulation téléphonie peut être partagée et gérée plus facilement.

La SDA nécessite l’achat d’une ligne RNIS ou numérique et que la compagnie de téléphone attribue une gamme de numéros. Il
faut ensuite posséder le matériel compatible avec la SDA sur les lieux qui est constitué de passerelles ou de cartes BRI, E1 ou T1.

Pour que les utilisateurs puissent recevoir des appels directement sur leur terminal, il faut donc leur affecter un SDA. Pour cela, on
a deux possibilités :

• renseignez le champ "Direct DID" d'une extension


• créez un routage d'entrée en utilisant des “Inbound Routes” (voir chapitre suivant)

II.9 Création d'une connexion entrante (Inbound Routes)


PBX  PBX Settings  Inbound Routes
Fonctionnement
Lorsqu'un appel arrive vers un trunk, l'aiguillage sera fait en fonction du DIDnumber avec lequel le trunk est
enregistré et du CallerID de l'appelant si la ligne téléphonique transmet aussi le CallerID.
Le DIDnumber sera alors comparé aux numéros des extensions et des Direct DID des extensions. S'il ne trouve pas
d'issue, il sera alors comparé aux caractéristiques des Inbound Routes, de la première vers la dernière. L'appel sera
alors aiguillé selon la première route conforme à l'appel.
Configuration
Add Incoming Route
* Description : nom donné à la route.
* DID Number : DIDnumber auquel doit être conforme l'appel entrant pour suivre cette route. A noter que ceci ne
dépend pas de la personne qui appelle mais du trunk sur lequel arrive l'appel. En effet, le DIDnumber est spécifié
dans la registration string du trunk. On peut utiliser les wildcard X, Z, N... dans le DIDnumber pour prendre en
compte plusieurs numéros. Si DID Number est vide alors cette route prendra n'importe quel DID Number.
* Caller ID Number : Caller ID auquel doit être conforme l'appel entrant pour suivre cette route. Ceci dépend du
numéro depuis lequel la personne appelle, et peut être inexistant si la ligne téléphonique dont on dispose ne donne
pas l'identité de l'appelant. On peut utiliser les wildecard X, Z, N... dans le Caller ID Number pour prendre en compte
plusieurs numéros. Si Caller ID Number est vide alors cette route prendra n'importe quel Caller ID.
* Zaptel Channel : canaux ZAP que prend cette route. Utile uniquement si on utilise des interfaces FXO.
Fax Handling
* Fax Extension : il s’agit de l’extension vers laquelle les fax seront envoyés.
* Fax Email : adresse e-mail utilisée dans l’hypothèse où la valeur « Fax Extension » est « System ».
* Fax Detection Type : méthode utilisée pour déterminer qu’il s’agit d’un appel fax.
* Pause after answer : précise le nombre de secondes d’attente après la prise en compte de l’appel.
Privacy
* Privacy Manager : si la valeur est « yes », alors si un appel arrive sans CallerID, il lui sera demandé de composer
son numéro à 10 chiffres (il aura 3 tentatives) avant que l'extension ne se mette à sonner. Cela permettra d'avoir
toujours un numéro affiché sur le téléphone en recevant un appel avant de décrocher, on peut alors décider de
répondre ou non.

37
Options
* Alert Info : permet de choisir une sonnerie spécifique sur des terminaux SIP.
* CID name prefix : permet de rajouter un préfixe au CallerID avant de l'aiguiller.
* Music On Hold : musique d'attente pour les appels arrivant sur cette route.
* Signal RINGING : Quand un téléphone SIP reçoit un appel, il envoie un message Ringing à l'émetteur de l'appel
avant de commencer à sonner. Mais si l'appel est orienté vers un IVR au lieu d'un téléphone, i n'y aura pas de
message Ringing envoyé. Il se trouve que certains serveurs SIP ont besoin que le destinataire envoie le message
Ringing avant le message Answer (envoyé quand on décroche). Dans le cas d'un IVR, il y aura directement le message
Answer sans passer par le message Ringing. Donc si on rencontre un tel problème, il suffit de cocher cette case, et un
message Ringing sera toujours envoyé avant un message Answer.
CID Lookup Source
* Source : cette ligne n'apparaît que si le module Caller ID Lookup est installé. Elle permet d'ajouter le nom de
l'appelant en plus du numéro de l'appelant s'il est résolu dans la source sélectionnée.
Set Destination
Destination de l'appel. Plusieurs options sont possibles selon les modules installés dans le serveur. Voir page
destinations.

II.10 Création d'un trunk


Pour se connecter à un opérateur de téléphonie IP ou interconnecter deux IPBX, il faut créer un trunk. Chaque trunk doit être
utilisé dans au moins une route sortante (Outbound Routes).

38
II.10.a Trunk IAX2
Nous prendrons l'exemple d'un trunk IAX2.
On clique sur l'option “Trunk”, puis “Add IAX2 Trunk”.

La valeur « Outbound Caller ID » permet de spécifier un nom pour tout appelant passant à travers ce trunk.
La case “Maximum Channels” indique le nombre de lignes VoIP prises chez l'opérateur.
La rubrique "Outgoing Dial Rules" permet de fixer les règles de routage vers ce trunk. Il est également possible de le faire via la
mise en place d'une connexion sortante (voir plus loin).
Outgoing Settings
Ces paramètres doivent être remplis pour que le trunk puisse véhiculer des appels sortants.
La suite de la configuration peut-être reprise sur le screenshot en changeant simplement l'adresse du serveur distant (host), le nom
d'utilisateur (username) et le mot de passe (secret).
La ligne allow donne les codecs autorisés par ordre de préférence d'utilisation.

39
Incoming Settings
Ces paramètres doivent être remplis pour que le trunk puisse véhiculer des appels entrants.
Les champs des rubriques "USER Context" et "USER details" doivent donc être renseignés avec un login/password qui peut être
différent de celui utilisé pour les connexions sortantes.

Registration
Cette chaîne de caractères est souvent nécessaire pour nous enregistrer auprès de notre opérateur VoIP.

II.10.b Trunk SIP


General Settings
* Outbound Caller ID : Nom et numéro de l'appelant pour un appel sortant. Par défaut les valeurs sont celles de l'extension à
l'origine de l'appel. Si ce champ n'est pas vide, la valeur sera réécrite par le Trunk, effaçant celle donnée par l'extension. La
syntaxe est la suivante : "Mon nom" <01234567>, où 01234567 est le numéro de téléphone.
* Maximum channels : Controls the maximum number of outbound channels (simultaneous calls) that can be used on this trunk.
* Monitor Trunk Failures : if checked, supply the name of a custom AGI Script that will be called to report, log, email or
otherwise take some action on trunk failures that are not caused by either NOANSWER or CANCEL. Permet d'exécuter un script
AGI prévenant que le trunk rencontre un problème.
Outgoing Dial Rules
* Dial Rules : définit les règles de numérotation, en ajoutant un préfixe ou en enlevant un préfixe. Mettre une règle par ligne. Le
système appliquera la première règle compatible à partir du haut. On peut utiliser les caractères suivants :
o X : correspond à un chiffre entre 0 et 9.
o Z : correspond à un chiffre entre 1 et 9.
o N : correspond à un chiffre entre 2 et 9.
o . : correspond à n'importe quelle suite de chiffres longue d'au moins un chiffre.
o | : supprime le préfixe situé à gauche du pipe.
o + : ajoute le préfixe situé à gauche du + au numéro situé à droite du +.
o Exemple : 0033+0|ZXXXXXXXX prendra le numéro 0512345678 lorsqu'il sera composé et passera 0033512345678 à la
ligne téléphonique du trunk. On peut aussi écrire 0|0033+ZXXXXXXXX.
A noter que ceci ne permet pas de bloquer les numéros qui ne sont pas compatibles avec l'une de ces règles, le blocage se fait
depuis Outbound Routes.
* Outbound Dial Prefix : The outbound dialing prefix is used to prefix a dialing string to all outbound calls placed on this trunk.
For example, if this trunk is behind another PBX or is a Centrex line, then you would put 9 here to access an outbound line.
Another common use is to prefix calls with 'w' on a POTS line that need time to obtain dialtone to avoid eating digits. Most users
should leave this option blank.
Outgoing Settings
* Trunk Name : nom indicatif du trunk.

40
* PEER Details : permet de configurer le trunk pour les appels sortants. Pour connecter le trunk à une ligne SIP sur un serveur
Astérisk, utiliser les valeurs suivantes :
o disallow=all (codecs non autorisés)
o allow=alaw&ulaw&gsm (codecs autorisés)
o context=from-pstn (contexte, prendre cette valeur)
o dtmfmode=inband
o fromdomain=sip.monserveur.com (nom de domaine du serveur)
o fromuser=MonNom (nom d'utilisateur)
o host=sip.monserveur.com (nom de domaine du serveur)
o insecure=very
o nat=no (yes si le serveur destinataire est situé derrière une NAT)
o port=5080 (port d'écoute du serveur destinataire, valeur par défaut 5060)
o qualify=yes
o secret=password (mot de passe)
o srvlookup=yes
o type=friend
o username=login (login)
Incoming Settings
Ces paramètres doivent être remplis pour que le trunk puisse véhiculer des appels entrants.
* USER Context : this is most often the account name or number your provider expects.
* USER Details : Modify the default USER connection parameters for your VoIP provider.
Registration
* Register String : Ceci permet d'enregistrer ce serveur chez le serveur fournissant la ligne SIP permettant ainsi de recevoir les
appels entrants. La syntaxe est la suivante : login:motdepasse@serveur.domaine.com:5080/DIDnumber.
Leur signification est :
o login : le login qui est généralement un numéro mais peut être une chaîne de caractères.
o motdepasse : le mot de passe de la ligne.
o serveur.domain.com : le nom de domaine du serveur SIP. On peut aussi utiliser l'adresse IP.
o 5080 : le port sur lequel le serveur écoute. Ce champ est optionnel, s'il n'est pas spécifié la valeur sera 5060. Dans ce cas,
il faut omettre toute la chaîne de caractère :5060.
o DIDnumber : est une chaîne de caractères, de préférence un numéro. C'est un champ optionnel mais utile pour aiguiller les
appels entrants. XYZ peut être soit le numéro d'une extension si on veut que les appels entrants soient orientés vers cette
extension. Sinon ont peut lui donner une valeur qui doit être égale à celle du DID Number d'une Inbound Route ou d'une
extension. Les appels entrants dans ce trunk seront alors aiguillés vers la Inbound Route ou l'extension correspondante.

II.10.c Trunk ZAP


Pour connecter une ligne Analogique grâce à une interface FXO ou ISDN.

II.11 Ajout d'une connexion sortante (Outbound Routes)

Il peut s'agir d'une connexion à un opérateur VoIP ou, tout simplement, d'interconnecter deux IPBX.

Remarque : il est possible de définir le routage associé à un trunk dans le menu associé à la création de ce trunk. Néanmoins,
l'avantage de la route sortante est de pouvoir choisir plusieurs trunks classés selon une priorité, ce qui est utile en cas de
défaillance d'une passerelle.

41
Le “Dial Patterns” est une expression régulière.
0|. indique tous les numéros commençant par zéro, le zéro étant supprimé lors de son passage dans le trunk.
0. indique tous les numéros commençant par zéro, le zéro étant conservé lors de son passage dans le trunk.
Et on spécifie ensuite de passer par le trunk créé précédemment.

Fonctionnement
Lorsqu'un appel sortant est émis, l'aiguillage sera fait en fonction du numéro appelé.
Le numéro appelé sera comparé aux règles autorisées dans chaque Outbound Route en commençant par la première route. Dès
qu'une route autorisant ce numéro est rencontrée, l'appel sera traîté par cette route.
A noter qu'il est possible de réarranger l'ordre de priorité des routes grâce aux flèches orientées vers le haut et vers le bas.
Configuration
* Route Name : nom à donner à cette route.
* Route Password : mot de passe de la route, si on veut protéger cette route par mot de passe. Il sera demandé à l'appelant pour
laisser passer son appel.
* PIN Set : ce champ n'apparaît que si le module PIN Sets est installé. Si un PIN Set est spécifié alors le champ « Route
Password » sera ignoré et les mots de passe de la route seront ceux spécifiés dans le PIN Set utilisé.
* Emergency Dialing : indique que cette route sert pour les appels d'urgence. Le Caller ID sera alors remplacé par le Emergency
CID de l'extension.
* Intra Company Route : si cette route sert à appeler un autre site de l'entreprise à travers les trunk, alors cette option permet
d'utiliser les Caller ID interne au lieu de ceux externes.
* Music On Hold : musique d'attente pour la route.
* Dial Patterns : patterns autorisés par la route. Mettre un pattern par ligne. On peut utiliser les wildecards X (0-9), Z (1-9), N
(2-9), le point . qui désigne toute suite de chiffre longue d'au moins 1 caractère et la barre verticale ou pipe | qui indique un préfixe
à enlever avant de passer le numéro au trunk.
Par exemple 345|[13-68]NXXXX. prend les numéros commençant par 345 ensuite un des chiffres 1,3,6 ou 8, ensuite un des
chiffres de 2 à 9, enfin au moins 5 autres chiffres quelconques. Le numéro sera alors tronqué du préfixe 345 et passé au trunk de la
route.

42
* Dial patterns wizards : permet de rentrer des patterns préconfigurés pour les USA, on peut modifier ces modèles en modifiant
le code source du web Freepbx.
* Trunk Sequence : séquence de trunks pour aiguiller l'appel. La route orientera l'appel vers le premier trunk libre de la liste. Si
la communication n'est pas réussie, le système essayera le trunk suivant. A noter qu'un trunk est considéré occupé s'il y a autant de
communications (entrantes ou sortantes) l'utilisant que ce qui est spécifié pour ce trunk dans Maximum channels (voir le chapitre
Trunks).

III. Paramétrage avancé de trixbox

III.1 Gestion des administrateurs


PBX  PBX Settings  Administrators
Le compte par défaut "maint" est un compte système défini dans CentOS. Pour le modifier, il faut utiliser la commande passwd.
Le menu "Administrators" permet de définir des comptes qui seront stockés dans la base MySQL. Pour chaque compte, on choisit
les modules auxquels il aura accès (sélectionnez "All sections" pour un accès complet). Pour utiliser l'authentification avec les
comptes MySQL ainsi créés, il faut positionner la variable "AUTHTYPE" à la valeur "database" dans le fichier /etc/amportal.conf

III.2 Feature Codes


PBX  PBX Settings Feature Codes
Permet de définir les features codes qui sont les raccourcis clavier vers les principaux services offerts aux utilisateurs. Les features
codes activés seront visibles dans le portail web des utilisateurs.

III.3 Gestion des enregistrements sonores


PBX  PBX Settings  System Recordings
La section “Add recordings” permet de créer de nouveaux enregistrements sonores depuis son telephone ou d’en importer
d’autres.
La section « Built-in Recordings » permet de gérer les enregistrements existants.

III.4 Système vocal interactif (IVR)


PBX  PBX Settings  IVR
Fonction
Permet de créer un Digital Receptionist, qui jouera un message proposant des touches à presser selon l'action voulue et qui
effectue une action quand la touche correspondante est pressée.
Prérequis
Installation du module IVR.
Configuration
Après installation du module, un onglet IVR sera ajouté au paragraphe Inbound Call Control.
* Les entrées que peut prendre un IVR sont :
o 0-9 : les chiffres du clavier téléphonique.
o * : la touche * du clavier téléphonique.
o # : la touche # du clavier téléphonique.
o i : l'événement correspondant au fait de presser une touche non valide, non proposée par l'IVR. Valeur par défaut : jouer le
message "Invalid option, please try again", puis rejouer le menu. Au bout de trois tentatives invalides, l'IVR raccroche.
o t : l'événement correspondant au fait de ne pas presser de touche. Valeur par défaut : rejouer le menu 3 fois puis
raccrocher.
Depuis la page IVR on peut ajouter des IVR en cliquant sur Add IVR :
* Change Name : nom indicatif à donner à l'IVR.
* Timeout : délais d'attente au bout duquel l'IVR considère la réponse comme étant t.
* Enable Directory : permet aux appelant dans l'IVR d'appeler # pour accéder à l'annuaire.
* Directory Context : le voicemail directory context utilisé quand on presse #.
* Enable Direct Dial : permet aux appelants dans l'IVR d'appeler directement une extension.
* Announcement : message joué à l'appelant à son arrivée à l'IVR. Pour ajouter des annonces, voir « System Recordings ».
* Return to IVR : si cette option est activée et si s'appelant tape l'option correspondante alors :
o l'appelant retournera vers l'IVR qui l'a orienté vers cet IVR (IVR parent), s'il vient d'un autre IVR.
o l'appelant sera orienté vers la destination sélectionnée à droite, s'il ne vient pas d'un autre IVR.
Fonctionnement :

43
D'abord créer et configurer un IVR. Ajuster le nombre de possibilités sur la page à celui dont on a besoin. Pour cela, cliquer sur
les boutons Increase Options et Decrease Options.
Pour chaque destination, spécifier la touche à taper dans la case située en dessous de Return to IVR. On a le choix entre 0-9, *, #, i
et t.
Il possible de mettre un numéro de plusieurs chiffres dans une case.
Enfin, l'IVR créé sera disponible dans la ligne IVR parmi les destinations, par exemple dans Inbound Routes.

III.5 Gestion des files d'attente (Queues)


PBX  PBX Settings  Queues
Fonction
Permet de créer des files d'attente pour les appels entrants. Les appelants en attente dans une file seront servis selon le principe
first-in, first-out ou premier appelant, premier servi.
Prérequis
Installation du module Queues.
Configuration
Après installation du module, un onglet Queues sera ajouté au paragraphe Inbound Call Control.
Depuis la page Queues on peut ajouter des groupes en cliquant sur Add Queue :
Edit Queue
• queue number : ce numéro sera celui de la queue ajoutée, il sera traité comme une extension virtuelle. Pour se logger, un
agent doit composer la "queue number" suivi de *. Pour se délogguer, un agent doit composer la queue number suivi de
**.
• queue password : ce mot de passe est optionnel. S'il est spécifié, il sera demandé à tout agent qui essaiera de se loguer à
cette queue. Voir static agents.
• CID name prefix : permet de rajouter un préfixe au CallerID avant de l'aiguiller vers un agent.
• static agents : les agents statiques sont des extensions qui sont censées être toujours loguées à la queue. Ils n’ont pas
besoin d'effectuer un login et ne peuvent pas effectuer un logoff. Mettre une extension par ligne. On peut éventuellement
mettre un numéro externe. Le numéro en question sera alors appelé selon les règles des Outbound Routes.
Queue Options
• Agent Announcement : annonce qui sera jouée à l'agent avant de le mettre en communication avec le premier
correspondant dans la queue. Par exemple "Cet appel vient de la file d'attente du service commercial". Pour ajouter des
annonces, voir "System Recordings".
• Music on Hold Class : musique ou publicité jouée à l'appelant pendant l'attente.
inherit : garde la même MOH que celle de la Inbound Route d'où il vient.
• Ringing tone instead of MOH : cette option fait en sorte que l'appelant entende la tonalité de sonnerie au lieu de MOH
durant l'attente. Ecrase la configuration de la ligne précédente.
• max wait time : temps de stationnement maximal dans la queue avant d'être mis dehors selon les spécifications du
paragaphe Fail Over Destination.
• max callers : permet de limiter le nombre de personnes en attente dans la queue. Ceci est utile par exemple si on veut
rejeter de nouveaux arrivants à la queue lorsque le nombre de personnes déjà présentes dans la queue fait que le temps
d'attente devient déraisonnable.
• join empty : si on veut que la queue puisse accepter des arrivants même lorsqu'aucun agent n'est présent.
• leave when empty : si on veut que les personnes déjà en attente soient rejetées lorsque tous les agents ont quitté la
queue.
• ring strategy : permet de déterminer la manière avec laquelle les agents sont appelés.
o ringall : fait sonner tous les agents disponibles jusqu'à ce que l'un d'eux réponde. (default)
o roundrobin : fait sonner les agents disponibles de façon cyclique.
o leastrecent : fait sonner le dernier agent appelé par cette queue. Cette option permet à un appelant déconnecté
intempestivement de retourner au même agent s'il rappelle immédiatement et si celui-ci est disponible.
o fewestcalls : appelle l'agent qui a été le moins appelé par cette queue. Permet une répartition égale du travail
entre les agents.
o random : appelle un agent choisi au hasard.
o rrmemory : fait comme pour le roundrobin, mais pour chaque nouvel appelant il fera sonner l'agent qui suit le
dernier agent sonné lors de l'appel précédent.
• agent timeout: durée en secondes durant laquelle un agent est sonné avant de sonner l'agent suivant. Cette durée est de
toute façon limitée par la valeur par défaut définie dans le système. Unlimited or other timeout values may still be limited
by system ringtime or individual extension defaults.
44
• retry : durée d'attente en secondes avant de sonner de nouveau les agents.
• wrap-up-time : délais d'attente en secondes avant de contacter un nouvel agent après avoir mis en communication un
correspondant avec un agent. Valeur par défaut = 0.
• call recording : permet d'enregistrer les conversations avec les agents. On peut ici choisir de ne pas enregistrer ou choisir
un codec pour l'enregistrement. Les enregistrements seront sauvegardés dans /var/spool/asterisk/monitor.
• event when called : quand cette option est activée (Yes), les manager events suivants seront générés : AgentCalled,
AgentDump, AgentConnect et AgentComplete. Voir ((Flash Operator Panel (FOP))).
• member status : quand cette option est activée (Yes), les manager events suivants seront générés : QueueMemberStatus.
Voir ((Flash Operator Panel (FOP))).
Caller Position Announcements
• Frequency : fréquence d'annonce de sa position dans la queue au correspondant en attente et du temps estimé d'attente.
• Announce Position : permet d'annoncer sa position dans la queue au correspondant en attente.
• Announce Hold Time : permet d'annoncer le temps estimé d'attente dans la queue. Valeurs possibles : yes, no, only once.
Le temps estimé d'attente ne sera pas annoncé s'il est inférieur à 1 minute.
Periodic Announcements
• Join Announcement : annonce jouée à l'appelant une fois avant de rejoindre la queue. On peut ajouter des
enregistrements depuis le menu "System Recordings".
Fail Over Destination
Destination lorsque le max wait time est atteint.
Fonctionnement :
D'abord créer et configurer une queue. Ensuite pour utiliser cette queue, il suffit de la mettre comme destination dans les "Inbound
Routes" ou ailleurs.
On peut aussi transférer un appel reçu vers une queue. Voir "Parking Lot - Call Transfer".

III.6 Groupes d'appel (Ring Groups)


PBX  PBX Settings  Ring Groups
Fonction
Permet de créer des groupes de téléphones pour les appels entrants. Les téléphones sonneront ensemble ou successivement
lorsqu'un appel arrive vers ce groupe.
A la différence des Queues, un Ring Group est vu comme une extension virtuelle, il a un numéro comme toute extension.
Prérequis
Installation du module Ring Groups.
Configuration
Après installation du module, un onglet Ring Groups sera ajouté au paragraphe Inbound Call Control.
Depuis la page Ring Groups on peut ajouter des groupes en cliquant sur Add Ring Group :
* Ring-Group Number : Numéro du groupe. Le groupe sera vu comme une extension ayant ce numéro.
* Group Description : Nom indicatif à donner au groupe.
* Ring strategy : Comment sonner les extensions du groupe.
o ringall : fait sonner simultanément toutes les extensions jusqu'à ce qu'une d'elles soit décrochée.
o hunt : fait sonner successivement les extensions jusqu'à ce qu'il y ait une réponse.
o memoryhunt : fait sonner la 1ère extension, ensuite la 1ère et la 2ème, ensuite la 1ère, la 2ème et la 3ème...
o prim : même chose qu'avant, avec une différence. Si la 1ère extension sur la liste est occupée, les autres extensions ne
seront pas sonnées. Si la 1ère extension sur la liste est en état FreePBX DND, elle ne sera pas sonnée. Si la 1ère extension sur la
liste est en état FreePBX CF unconditional, alors toutes les extensions seront sonnées selon la règle spécifiée.
o firstavailable : Sonne uniquement la première extension disponible.
o firstnotonphone : sonne uniquement la première extension qui n'est pas à l'état offhook - ignore CW.
* Extension list : Liste des extensions du groupe. Mettre une extension par ligne. On peut aussi mettre des numéros externes, il
suffit de les suffixer par #. Le numéro en question sera alors appelé selon les règles de Outbound Routing. Par exemple pour faire
sonner le numéro 012345678, il suffit de mettre 012345678#. Par ailleurs, les extensions seront directement sonnées même si elles
ont été configurées avec un follow-me (renvoi d'appel) ou queues', par exemple. Si on veut que ces règles soient prises en compte,
il faut les suffixer avec #.
* CID name prefix : On peut éventuellement préfixer le CallerID quand le groupe fait sonner une extension. Par exemple, si on
met Ventes, un appelant avec un CallerID Toto, sera affiché sur l'extension Vente:Toto.
* Ring time : Temps en secondes durant lequel le groupe fait sonner chaque extension avant de passer à l'autre. Le maximum
est 60s.
* Announcement : Message à jouer à l'appelant avant de faire sonner les extensions. On peut ajouter des enregistrements depuis
le menu "System Recordings".

45
* Play Music On Hold : Si on sélectionne une musique d'attente, alors elle sera jouée à l'appelant pendant que le système fait
sonner les extensions. Il faut remarquer que si on choisit cette option, l'appelant est considéré comme déjà en communication par
son opérateur téléphonique et commence à être facturé pour l'appel, ce qui n'est pas le cas de l'option Ring.
* Alert Info : Voir Alert Info dans la page Extensions. ALERT_INFO can be used for distinctive ring with SIP devices.
* Confirm Calls : Cette option demande à l'extension décrochée de taper 1 avant de la mettre en communication avec l'appelant.
Cela permet d'éviter par exemple les situations où dans le groupe il y a un numéro de portable et alors si le portable est éteint,
l'appelant sera mis en communication avec la messagerie.
* Remote Announce : Message à jouer à l'extension décrochée si l'option "Confirm Calls'' est sélectionnée.
* Too-Late Announce : Message à jouer à l'extension décrochée si avant de taper 1, une autre extension a déjà pris l'appel.
* Destination if no answer : destination de l'appel si aucune extension ne répond.
Fonctionnement :
D'abord créer et configurer un Ring Group. Ensuite pour utiliser ce ring group, il suffit de le mettre comme destination dans les
Inbound Routes ou dans les Registration string après le /.
On peut aussi appeler directement un Ring Group, depuis une extension, par exemple ou transférer un appel vers le Ring Group.

III.7 Follow Me
PBX  PBX Settings  Follow Me
Fonction
Fonctionne selon un principe similaire au Ring Groups, la différence c'est que Follow Me est rattaché à une extension bien
déterminée et réoriente les appels arrivant à cette extension.
Prérequis
Installation du module Follow Me.
Configuration
Après installation du module, un onglet "Follow Me" sera ajouté au paragraphe "Inbound Call Control".
Par ailleurs, une ligne "Add Follow Me Settings" sera ajoutée au début des pages Extensions.
* Edit Extension 2000 : Permet d'aller à la page de configuration de l'extension 2000 pour éventuellement faire des
modifications.
* Disable as Default : Par défaut, non sélectionné. Dans ce cas, les appels par défaut destinés à cette extension seront traités
selon les règles du Follow Me. Si par contre cette option est sélectionnée, le Follow Me sera ignoré et les appels destinés à cette
extension iront à l'extension. Toutefois, les destinations spécifiant Follow Me 2000 seront traités par le Follow Me quelque soit
l'état de cette option. L'activation de cette option est souvent utilisée conjointement au VmX Locater afin que l'appelant fasse
sonner l'extension (et ira donc au VmX Locater) et ensuite l'appelant pourra revenir ici seulement s'il tape la bonne touche du
menu VmX Locater qui le ramène ici. Bien entendu il faudra que le VmX Locater soit activé et préalablement configuré pour ça.
* Initial Ring Time : Durée durant laquelle la destination concernée sonnera avant de faire sonner les destinations de la follow-
me list. En donnant à cette variable la valeur 0, l'extension concernée ne sonnera pas et l'appel sera directement redirigé vers la
follow-me list.
* Ring Strategy : Comment sonner les extensions du Follow Me :
ringallv2 : fait sonner la première extension du Follow Me pour une durée égale au Initial Ring Time et ensuite fera sonner
toutes les autres extensions de la liste jusqu'à obtenir une réponse.
ringall : fait sonner simultanément toutes les extensions jusqu'à ce qu'une d'elles soit décrochée (valeur par défaut)
hunt : fait sonner successivement les extensions jusqu'à ce qu'il y ait une réponse.
memoryhunt : fait sonner la 1ère extension, ensuite la 1ère et la 2ème, ensuite la 1ère, la 2ème et la 3ème...
prim : même chose qu'avant, avec une différence. Si la 1ère extension sur la liste est occupée, les autres extensions ne seront
pas sonnées. Si la 1ère extension sur la liste est en état FreePBX DND, elle ne sera pas sonnée. Si la 1ère extension sur la liste est
en état FreePBX CF unconditional, alors toutes les extensions seront sonnées selon la règle spécifiée.
firstavailable : Sonne uniquement la première extension disponible.
firstnotonphone : sonne uniquement la première extension qui n'est pas à l'état offhook - ignore CW.
* Alert Info : Voir Alert Info dans la page Extensions. ALERT_INFO can be used for distinctive ring with SIP devices.
* Confirm Calls : Cette option demande à l'extension décrochée de taper 1 avant de la mettre en communication avec l'appelant.
Cela permet d'éviter par exemple les situations où dans la liste du Follow Me il y a un numéro de portable et alors si le portable est
éteint, l'appelant sera mis en communication avec la messagerie.
* Remote Announce : Message à jouer à l'extension décrochée si l'option Confirm Calls'' est sélectionnée.
* Too-Late Announce : Message à jouer à l'extension décrochée si avant de taper 1, une autre extension a déjà pris l'appel.
* Follow-Me List : Liste des extensions du Follow Me. Mettre une extension par ligne. On peut aussi mettre des numéros
externes, il suffit de les suffixer par #. Le numéro correspondant sera alors appelé selon les règles de Outbound Routing. Par
exemple pour faire sonner le numéro 012345678, il suffit de mettre 012345678#.
* CID name prefix : On peut éventuellement préfixer le CallerID quand le Follow Me fait sonner une extension. Par exemple, si
on met Ventes, un appelant avec un CallerID Toto, sera affiché sur l'extension Vente:Toto.
* Ring time : Temps en secondes durant lequel le Follow Me fait sonner chaque extension avant de passer à l'autre. Le
maximum est 60s.
* Announcement : Message à jouer à l'appelant avant de faire sonner les extensions. On peut ajouter des enregistrements depuis
le menu System Recordings.

46
* Play Music On Hold : Si on sélectionne une musique d'attente, alors elle sera jouée à l'appelant pendant que le système fait
sonner les extensions. Il faut remarquer que si on choisit cette option, l'appelant est considéré comme déjà en communication par
son opérateur téléphonique et commence à être facturé pour l'appel, ce qui n'est pas lel cas de l'option Ring.
* Destination if no answer : destination de l'appel si aucune extension ne répond. Voir page Destination if no answer.
Fonctionnement :
Pour ajouter un Follow Me à l'extension 2000 par exemple, il faut faire l'une de ces deux manipulations qui sont équivalentes et
aboutissent à la même page:
* depuis la page de l'extension 2000, cliquer sur Add Follow Me Settings.
* Depuis la page Follow Me, cliquer sur l'extension concernée.
Ensuite il suffira de configurer le Follow Me créé.

III.8 Evolution des conditions d'appel en fonction du temps (Time Conditions)


PBX  PBX Settings  Time Conditions
Fonction
Permet de créer des aiguillages des appels entrants selon l'horaire, la date...
Prérequis
Installation du module Time Conditions.
Configuration
Après installation du module, un onglet Time Conditions sera ajouté au paragraphe Inbound Call Control.
Depuis la page Time Conditions on peut ajouter des conditions horaires en cliquant sur « Add Time Condition » :
* Time Condition name : Nom indicatif donné à la Time Condition.
* Time to match : Horaire d'application de la Time Condition. On spécifie la plage horaire dans la journée, la plage journalière
dans la semaine, la plage journalière dans le mois et la plage mensuelle dans l'année.
* Destination if time matches : Destination de l'appel si la plage horaire de la Time Conditions s'applique.
* Destination if time does not match : Destination de l'appel si la plage horaire de la Time Conditions ne s'applique pas.
Fonctionnement :
D'abord créer et configurer une Time Condition. Ensuite cette Time Condition apparaîtra à la ligne Time Conditions dans le
paragraphe « Set destination ». Il suffit alors de la mettre comme destination dans les Inbound Routes.

III.9 Conférences
PBX  PBX Settings  Conferences
Fonction
Permet de créer des conference rooms. Ces conference rooms fonctionnent comme des extensions à part entière et ont un numéro
interne (qui ne doit pas être déjà pris par une extension).
Prérequis
Nécessite l'installation préalable de Zaptel et le chargement dans le noyau Linux du module ztdummy. Ce dernier simule l'horloge
qui est normalement générée par le hardware (carte FXO ou FXS) quand celui-ci n'est pas installé sur la machine. Il prend
l'horloge depuis le module du noyau usb-uhci, qui par conséquent doit être préalablement chargé dans le noyau.
Cette horloge est nécessaire pour le bon fonctionnement du module Conférences. Il est donc nécessaire d'ajouter la ligne
modprobe ztdummy
au fichier /etc/rc.local avant la ligne
exit 0
pour que le module ztdummy du noyau linux soit automatiquement chargé au démarrage de la machine.
Installation
Le module Conferences s'installe de manière classique à partir de Module Admin.
Configuration
Depuis Conferences dans la catégorie Internal Options & Configuration, créer une conférence en cliquant Add Conference.
* conference number : numéro d'extension de la conférence.
* conference name : nom indicatif pour la conférence.

47
* user PIN : mot de passe pour pouvoir participer a la conférence. S'il n'est pas vide, il sera demandé de composer ce code
quand on appelle cette conférence.
* admin PIN : mot de passe pour administrer la conférence. Donne plus de droit qu'un utilisateur ordinaire.
* join message : permet de jouer un message (qui a déjà été uploadé dans la machine) à chaque nouvel arrivant à la conférence.
Ce message doit être présent dans la bibliothèque des messages de Freepbx. Cette bibliothèque de messages peut être administrée
par le module System Recordings.
* leader wait : fait en sorte que la conférence ne puisse pas commencer tant que personne n'est entré en composant le admin
PIN.
* quiet mode : désactive les signaux sonores (bip) signifiant l'arrivée ou le départ d'utilisateurs de la conférence.
* user count : annonce à chaque arrivant le nombre de personnes présentes à la conférence.
* user join/leave : annonce automatique de l'arrivée et du départ d'utilisateurs de la conférence aux membres restants.
* music on hold : active la musique d'attente quand un utilisateur est seul à la conférence ou si l'administrateur n'est pas encore
arrivé à la conférence.
* allow menu : active l'accès au menu de la conférence (user ou admin) lors qu'on appui sur *.
Fonctionnement :
Le fonctionnement est simple. Depuis une extension, composer le numéro de la conférence. Composer le PIN s'il est demandé,
enregistrer son pseudonyme quand il est demandé, ensuite on est dans la conference room.
Il est possible également de transférer un appelant extérieur vers une conférence de la même manière qu'on le transfère vers une
extension. Voir à ce sujet Parking Lot - Call Transfer.

III.10 Musiques d'attente


PBX  PBX Settings  Music on Hold
Permet de choisir les diverses musiques d’attente.

III.11 Parcage d'appels et redirections


PBX  PBX Settings  Parking Lot
Fonction
Permet de transférer un appel reçu vers une destination interne au système (ex. extension) ou externe (numéro de téléphone
public) à travers un trunk.
Prerequis
Installation du module Parking Lot
Configuration
Le transfert se fait avec la touche #. Il est possible qu'on ne veuille pas que le système réagisse à la touche # (par exemple par ce
qu'on appelle des lignes extérieures qui nous demandent d'appuyer sur la touche #, et ce sera gênant si le système réagit à la
touche avant le correspondant extérieur).
Dans ce cas, il suffit d'aller dans le fichier /etc/asterisk/feature.conf et de décommenter la ligne
;blindxfer => ##
Configuration du module Parking Lot
* Enable Parking Lot Feature : Activer/désactiver le module.
* Parking Lot Extension : extension donnée au Parking Lot. (voir le paragraphe Managed transfer)
* Number of Slots : nombre de places de parking. (voir le paragraphe Managed transfer)
* Parking Timeout : délais en secondes au-delà duquel un appel parké est considéré comme orphelin.
* Parking Lot Context : contexte des appels parkés.
* Parking Alert-Info : alerte pour certains téléphones SIP possédant cette fonctionnalité leur par exemple pour indiquer qu'il
s'agit d'un appel orphelin du parking.
* CallerID Prepend : ajout d'un préfixe au CallerID avant de rediriger l'appel orphelin.
* Announcement : annonce à jouer à la personne en attente avant de la rediriger.
* Destination for Orphaned Parked Calls : destination de l'appel orphelin.
Fonctionnement :
La configuration par défaut de Freepbx permet le transfert d'appel uniquement à l'appelé interne au système, et pas à l'appelant.
Donc, par exemple, si on appelle un numéro extérieur depuis une extension, le destinataire ne peut pas opérer un transfert d'appel
par le serveur.
Cette configuration peut être modifiée depuis le paragraphe Dialing Options dans General Settings.
Par exemple mettre t dans le champ Asterisk Outbound Dial command options permet à un correspondant extérieur appelé depuis
une extension de transférer cette extension, ce qui est généralement à proscrire.
Blind transfer
Il suffit de composer # suivi du numéro destinataire du transfert (qui peut être un numéro interne ou externe au système).
On est alors déconnecté et le numéro destinataire se met à sonner. Il lui suffira alors de décrocher.
L'appel sera alors traité comme n'importe quel appel, si le destinataire ne répond pas il ira vers sa messagerie, ou l'appel sera
terminé selon la configuration de la destination. C'est ce qu'on appelle le blind transfert où on ne se soucie pas des conséquences
après la manœuvre.
Managed transfer

48
Pour faire des transferts de façon plus élaborée, il faut passer par le Parking Lot. Les places de parking sont numérotées par défaut
de 71 à 79 et leur extension est par défaut 70.
Ces paramètres sont modifiables depuis l'onglet Parking Lot. Si par exemple on assigne à Parking Lot Extension la valeur 80 et à
Number of Slots la valeur 15 alors l'extension du parking sera 80 et les places iront de 81 à 95.
La valeur de Parking Timeout est le temps après lequel un appel parké est considéré comme orphelin.
Destination for Orphaned Parked Calls est la destination vers laquelle doivent être renvoyés les appels orphelins.
Pour renvoyer un appel vers le parking, il suffit de le transférer vers l'extension du parking en composant #70. Le destinataire de
l'appel (qui vient d'effectuer le renvoi) entendra alors le numéro de la place de parking où l'appelant a été renvoyé (qui sera la
première place de parking disponible) puis sera déconnecté.
Pour reprendre cet appelant depuis n'importe quelle extension, il suffira de composer le numéro de la place de parking où le
destinataire est parké.
Le parking peut aussi servir pour mettre un appel sur hold si le téléphone ne dispose pas d'une touche hold.

III.12 Messagerie vocale (Voicemail)


Configuration dans PBX  PBX Settings  Extensions
La consultation en "User mode" se fait à l’aide du portail utilisateur.
Fonction
C'est le répondeur téléphonique. Permet d'enregistrer un message d'accueil et d'interroger la messagerie aussi bien de l'intérieur
que de l'extérieur du système.
Prerequis
Activation de Voicemail pour les extensions concernées.
Configuration
* Il faut préalablement que la messagerie soit activée pour l'extension en question, depuis la page de l'extension au paragraphe
Voicemail & Directory, choisir « enabled » pour Status. Eventuellement, ont peut lui assigner un mot de passe.
* Pour configurer la mailbox, il suffit d'appeler *97 et suivre les instructions : presser 0 pour aller vers mailbox options qui
permet d'enregistrer les différents messages : unavailable, busy, nom...
Fonctionnement :
* Pour interroger sa messagerie depuis son extension, il suffit de composer *97 suivi du mot de passe s'il y en a un et de suivre
les instructions.
* Pour interroger sa messagerie depuis une autre extension, appeler *98 puis à l'annonce Mailbox, le numéro de l'extension,
enfin le mot de passe s'il est demandé. Autre possibilité, appeler son extension précédé de *, on sera alors dirigé vers la
messagerie. Avant d'avoir le bip pour laisser un message taper de nouveau * et on sera dans la messagerie.
* Pour interroger sa messagerie depuis l'extérieur, soit on appelle le Digital Receptionist (préalablement installé), ensuite
appeler * suivi de l'extension et de nouveau *. Il y a aussi la possibilité de créer une option (éventuellement sans annonce) dans
l'IVR (préalablement installé) avec comme destination une Miscellanous destination qui serait *98.

III.13 Blacklist
PBX  PBX Settings  Blacklist
Remarque : ce module n'est pas installé par défaut dans la distribution trixbox.
Fonction
Permet de créer une liste noire de numéros que le système refusera systématiquement.
Prérequis
Installation du module Blacklist.
Configuration
Après installation du module, un onglet Blacklist sera ajouté au paragraphe Inbound Call Control.
Depuis la page Blacklist on peut ajouter des numéros à la Blacklist en le tapant dans le champ Number et en validant.
Par ailleurs, on peut faire des manipulations depuis le téléphone grâce aux Feature Codes présents dans le paragraphe Blacklist :
* Blacklist a number : ce champ n'appraît que si le module Blacklist est installé. Permet d'ajouter un numéro à la Blacklist en
composant ce code suivi du numéro à blacklister.
* Blacklist the last caller : ce champ n'apparaît que si le module Blacklist est installé. Permet d'ajouter le numéro du dernier
appelant à la Blacklist
* Remove a number from the blacklist : ce champ n'apparaît que si le module Blacklist est installé. Permet d'effacer un numéro
de la Blacklist en composant ce code suivi du numéro à effacer.

III.14 Call Forward


Fonction
Permet le renvoi des appels arrivant à une extension vers une autre extension, cette dernière pouvant être une extension au sens
large (conference room, queue...) ou même un numéro externe qui sera appelé selon les règles de Outbound Routes.
Prérequis
Installation du module Call Forward.

49
Configuration
Après installation du module, il sera possible pour chaque extension de renvoyer les appels la concernant ou les appels concernant
une autre extension.
Les possibilités sont les suivantes et les commandes pour les utiliser sont définies au paragraphe Call Forward de la page Feature
Codes :
* Call Forward All Activate : activer le renvoi inconditionnel des appels.
* Call Forward All Deactivate : désactiver le renvoi inconditionnel des appels concernant l'extension depuis laquelle la
manipulation est faite.
* Call Forward All Prompting Deactivate : désactiver le renvoi inconditionnel des appels concernant une extension, pas
nécessairement celle depuis laquelle la manipulation est faite. Le système demandera de spécifier l'extension pour laquelle la
désactivation est effectuée.
* Call Forward Busy Activate : activer le renvoi d'appel en cas de ligne occupée.
* Call Forward Busy Deactivate : désactiver le renvoi d'appel en cas de ligne occupée concernant l'extension depuis laquelle la
manipulation est faite.
* Call Forward Busy Prompting Deactivate : désactiver le renvoi d'appel en cas de ligne occupée, pas nécessairement celle
depuis laquelle la manipulation est faite. Le système demandera de spécifier l'extension pour laquelle la désactivation est
effectuée.
* Call Forward No Answer/Unavailable Activate : activer le renvoi d'appel en cas de non réponse ou de non disponibilité.
* Call Forward No Answer/Unavailable Deactivate : désactiver le renvoi d'appel en cas de non réponse ou de non disponibilité
concernant l'extension depuis laquelle la manipulation est faite.
Fonctionnement :
Pour activer ou désactiver un renvoi, il suffit de composer le code correspondant. Si le système demande de composer le numéro
de l'extension concernée et l'extension concernée est celle depuis laquelle on appelle, alors il suffit de composer #, sans composer
le numéro de l'extension.
Si on choisit un Deactivate sans Prompting, alors il ne sera pas demandé de composer le numéro de l'extension et la désactivation
concernera l'extension depuis laquelle on appelle.
Si on veut renvoyer les appels vers sa propre messagerie, il suffit de presser * et de valider avec #.
Si on veut renvoyer les appels vers la messagerie d'une autre extension, il suffit de presser * suivi du numéro de cette extension et
de valider avec #.
On peut aussi renvoyer les appels vers un numéro externe au système.

III.15 Configuration d'Asterisk à l'aide de fichiers de configuration


PBX  Config File Editor
Permet de modifier les fichiers de configurations d’Asterisk et de rebooter Asterisk afin d’assurer la prise en compte des
modifications apportées.

III.16 Informations système


System  System Info

III.17 Maintenance système


System  System Maint

III.18 Flash Operation Panel (FOP)


Consultation en « Admin Mode » : PBX  PBX Settings  Panel
Consultation en « User mode »  "FOP"

Il est nécessaire de s'identifier en cliquant sur le cadenas :

Le mot de passe par défaut est "passw0rd". Il peut être modifié dans /var/www/html/panel/op_server.cfg

Le Flash Operating Panel (FOP) permet alors de monitorer les appels en cours et d'effectuer certaines actions (transfert d'appels,
gestion des conférences,…)

50
III.19 Sauvegarde et restauration
PBX  PBX Settings  onglet "Tools"  Backup & Restore
Remarque : ce module n'est pas installé par défaut dans la distribution trixbox.

III.20 Misc Destinations


Fonction
Permet de rajouter parmi les destinations n'importe quel numéro qui sera composé localement (extensions, feature codes, numéro
externe...)
Ce numéro sera alors une destination possible des Inbound Routes, IVR, Time Conditions...

Prérequis
Installation du module Misc Destinations.

Configuration
Après installation du module un onglet Misc Destinations sera ajouté au paragraphe Internal Options & Configuration.
On peut alors ajouter une Misc Destination ou modifier une Misc Destination existante :
* description : nom indicatif à donner à la Misc Destination.
* dial : mettre le numéro exactement comme s'il devait être appelé depuis une extension. Si un appel est routé vers cette Misc
Destination, c'est ce numéro qui sera composé. On peut aussi utiliser des Feature Codes. Le champ de droite permet de rentrer les
codes correspondants.

Fonctionnement :
D'abord créer et configurer une Misc Destination.
Enfin, la Misc Destination créée sera disponible dans la ligne Misc Destinations du paragraphe Destinations dans Inbound Routes.

Exemple :
Il est possible de créer une Misc Destination vers le feature code *98 qui permet d’accéder à sa messagerie vocale depuis une
autre extension. Cette Misc Destination pourra alors être mise en œuvre au sein d’un IVR afin de permettre l’accès à sa
messagerie vocale depuis l’extérieur.

III.21 Misc Applications


Fonction
Permet de créer des Feature Codes qui peuvent aller vers n'importe quelle destination FreePBX, telle que IVR, Queues...
Ces Misc Applications seront visibles depuis la page Feature Codes dans le paragraphe Misc Applications.

Prérequis
Installation du module Misc Applications.

Configuration
Après installation du module un onglet Misc Applications sera ajouté au paragraphe Internal Options & Configuration.

Fonctionnement :
D'abord créer et configurer une Misc Application.
Enfin, la Misc Application créée sera visible depuis la page Feature Codes.

III.22 Callback
Remarque : ce module n'est pas installé par défaut dans la distribution trixbox.

Fonction
Permet d'ajouter la fonctionnalité Callback au système. Cette fonctionnalité sert par exemple lorsqu'un employé de l'entreprise ne
se trouve pas sur le site de l'entreprise et essaye de joindre son entreprise avec son portable. Pour que la communication ne soit
pas à sa charge, il pourra appeler un numéro dont la destination est un Callback. Le système raccrochera sans prendre la ligne puis
rappellera l'employé. La suite de la communication dépendra de la configuration du Callback.

Prérequis
Installation du module Callback.

51
Configuration
Après installation du module, un onglet Callback sera ajouté au paragraphe Internal Options & Configuration.
Depuis la page Callback on peut ajouter des Callback en cliquant sur Add Callback :
* Callback Description : nom indicatif à donner au Callback.
* Callback Number : ce champ est optionnel. S'il n'est pas spécifié, le système rappellera le numéro de l'appelant tel qu'il
apparaîtra dans le CallerID. Si ce champ est spécifié, le système rappellera ce numéro quel que soit l'identité de l'appelant.
* Delay Before Callback : délai d'attente en secondes entre la réception de l'appel et le rappel de l'appelant.
* Destination after Callback : destination de l'appel après le Callback.

Fonctionnement :
D'abord créer et configurer un Callback. Ensuite, le Callback créé sera disponible dans la ligne Callback du paragraphe
Destinations dans Inbound Routes.

III.23 Asterisk Logfiles


Remarque : ce module n'est pas installé par défaut dans la distribution trixbox.

Fonction
Permet d'accéder aux 200 dernières lignes du fichier /var/log/asterisk/full depuis le web.
Ceci est utile pour le debuggage de Asterisk.

Prérequis
Installation du module Asterisk Logfiles.

Configuration
Aucune configuration nécessaire.

Fonctionnement :
Après installation du module on peut accéder aux 200 dernières lignes du fichier /var/log/asterisk/full en cliquant sur l'onglet
Tools puis sur Asterisk Logfiles dans le paragraphe Support.

IV. Analyse des protocoles utilisés par trixbox


Les protocoles utilisés lors d'un appel téléphonique IP sont:

SIP (Session Initiation Protocol):


Un protocole standardisé de signalement (RFC 3261) fonctionnant sur TCP (typiquement sur le port 5060) au niveau de la couche
applicative du modèle OSI. Son rôle est de créer, modifier ou terminer des sessions téléphoniques.
SIP est très similaire à HTTP dans son comportement parce que des clients SIP envoient des requêtes au serveur qui va répondre
avec des réponses (status). La différence avec HTTP est que des clients SIP peuvent aussi répondre à des requêtes venant d'un
serveur.
D'autres protocoles de signalement sont H.323 ou le protocole de Cisco SCCP. SIP est en train de remplacer progressivement ces
deux protocoles.

SDP (Session Description Protocol)


Un protocole standardisé (RFC 4566) fournissant des informations sur les paramètres d'initialisation multimédia comme des
appels voix-sur-IP.

RTP (Real-time Transport Protocol):


Un protocole de transport standardisé (RFC 3550) travaillant sur UDP au niveau de la couche transport du modèle OSI.

RTCP:
Un protocole étroitement lié à RTP (aussi défini dans la RFC 3550). Il ne transporte aucune donnée mais donne des informations
sur la qualité de service fourni par RTP.

1. Enregistrement SIP

Voici une capture Wireshark des processus d'enregistrement de SIP.


Babar s'enregistre avec le serveur trixbox.

52
1

Regardons les en-têtes (headers) des messages SIP:

1. ENREGISTREMENT

Le client essaie de s'enregistrer avec le serveur.


REGISTER sip:local SIP/2.0
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-280a581fa364af43-1--d87543-;rport
Max-Forwards: 70
Contact:
To: "Babar"
From: "Babar";tag=11573036
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 1 REGISTER
Expires: 3600
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 0

2. 100 - Trying

Le serveur indique au client qu'il effectue des recherches.


SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-280a581fa364af43-1--d87543-;
received=192.168.1.102;rport=15772
From: "Babar";tag=11573036
To: "Babar"
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 1 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact:
Content-Length: 0

53
3. 401 - Unauthorized

Le serveur rejette l'enregistrement du client et lui envoie en retour un "challenge digest" composé du type d'algorithme, un "realm"
et un "nonce",
Le "nonce" est une valeur aléatoire créée par le serveur Asterisk et envoyée au client. Il a un temps de vie limité évitant des
attaques de type "replay". Chaque "challenge digest" contient une valeur nonce différente.
Le "realm" est le nom de domaine SIP.

Le principe de la "digest authentication" est de vérifier que les deux parties qui communiquent connaissent un mot de passe
partagé.
401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-280a581fa364af43-1--d87543-;
received=192.168.1.102;rport=15772
From: "Babar";tag=11573036
To: "Babar";tag=as1647de36
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 1 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="29b8191d"
Content-Length: 0

4. REGISTER

Le client envoie une nouvelle demande d'enregistrement mais cette fois avec une "digest response" composée d'un "username"
(nom d'utilisateur), un "realm", un "nonce", un "uri", une "response" (réponse) et un type d'algorithme.

L'"uri" (Uniform Resource Identifier) est une chaine de caractère utilisée pour identifier une ressource.

Le "nonce" envoyé par le serveur est utilisé pour créer la réponse ("response").
REGISTER sip:local SIP/2.0
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-5f795c5af206133a-1--d87543-;rport
Max-Forwards: 70
Contact:
To: "Babar"
From: "Babar";tag=11573036
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 2 REGISTER
Expires: 3600
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
User-Agent: X-Lite release 1011s stamp 41150
Authorization: Digest username="203",realm="asterisk",nonce="29b8191d",uri="sip:local",
response="7306cfba1b131f2f04363b68d908f855",algorithm=MD5
Content-Length: 0

5. 100 - Trying

Le serveur indique au client qu'il est en train d'effectuer des recherches.


SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-5f795c5af206133a-1--d87543-;
received=192.168.1.102;rport=15772
From: "Babar";tag=11573036
To: "Babar"
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 2 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact:
Content-Length: 0

6. 200 - OK

54
Le serveur est capable, après calculs, de valider le mot de passe du client avec la "digest response" qu'il a juste reçu.
Avec le processus de la "digest authentication", aucun mot de passe n'est échangé entre le client et le serveur.

Le serveur peut envoyer un message au client pour valider l'enregistrement.


SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.102:15772;branch=z9hG4bK-d87543-5f795c5af206133a-1--d87543-;
received=192.168.1.102;rport=15772
From: "Babar";tag=11573036
To: "Babar";tag=as1647de36
Call-ID: ZGVmYmM0OWRhNzYyMmI5M2FmODIwZjk1YTA2ZTI2Y2I.
CSeq: 2 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Expires: 3600
Contact: ;expires=3600
Date: Fri, 21 Dec 2007 22:15:51 GMT
Content-Length: 0

2. Initialisation/fermeture SIP & SDP

Voici une capture Wireshark des processus SIP d'initialisation et de fermeture.


Bambou (extension 202) appelle Babar (extension 203), lui parle et ensuite raccroche (fermeture).

Voyons en détails les étapes nécessaires à SIP pour établir un appel VoIP avant que de la voix puisse être échangée entre les deux
parties.

Le processus pour établir un lien SIP entre deux hôtes est très similaire à celui utilisé par TCP:
TCP SIP
étape1: SYN INVITE
étape2: SYN/ACK 200 - OK
étape3: ACK ACK

55
1

10

11

12

13

14

15

16

Les mêmes étapes affichées avec Wireshark :

56
Regardons les en-têtes des messages SIP:

1. INVITE

Le client indique au serveur qu'il veut établir un appel téléphonique.


INVITE sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKmazrqogm
Max-Forwards: 70
To: < sip:203@192.168.1.222>
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 565 INVITE
Contact: < sip:202@192.168.1.106>
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Supported: replaces,norefersub,100rel
User-Agent: Twinkle/1.1
Content-Length: 307

2. 407 - Proxy Authentication Require

Le serveur rejette l'invitation du client et lui renvoie un "challenge digest" composé par un type d'algorithme, un "realm" et un
"nonce".
Le "nonce" est une valeur aléatoire créée par le serveur Asterisk et envoyée au client. Il a un temps de vie limité évitant ainsi les
attaques par "replay".

La "digest authentification" vérifie que les deux parties qui communiquent ont le même mot de passe partagé.
Le "realm" est le nom de domaine SIP.
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 192.168.1.106;branch=z9hG4bKmazrqogm;received=192.168.1.106;rport=5060
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
To: < sip:203@192.168.1.222>;tag=as219a888b
Call-ID: jcaqhewsybtyksb@192.168.1.106
57
CSeq: 565 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Proxy-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="138dd154"
Content-Length: 0

3. ACK

Le client accepte (acknowledges) le message


ACK sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKmazrqogm
Max-Forwards: 70
To: < sip:203@192.168.1.222>;tag=as219a888b
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 565 ACK
User-Agent: Twinkle/1.1
Content-Length: 0

4. INVITE
Le client envoie une nouvelle requête d'invitation mais cette fois avec une "digest response" composée de:
Un "username" (nom d'utilisateur), un "realm", un "nonce" et un type d'algorithme.

Le "nonce" envoyé par le serveur est utilisé pour créer une "response".
L'"uri" (Uniform Resource Identifier) est une chaîne de caractères utilisée pour identifier une ressource.

Le serveur sera capable, après calculs, de valider le mot de passe du client avec la "digest response" qu'il a juste reçu.
Avec les processus de "digest authentication", aucun mot de passe n'est échangé entre le client et le serveur.
INVITE sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKtomragum
Max-Forwards: 70
Proxy-Authorization: Digest username="202",realm="asterisk",nonce="138dd154",uri="sip:203@192.168.1.222",
response="c46a93637d0af311c7f9cd3bb542cd08",algorithm=MD5
To: < sip:203@192.168.1.222>
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 566 INVITE
Contact: < sip:202@192.168.1.106>
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Supported: replaces,norefersub,100rel
User-Agent: Twinkle/1.1
Content-Length: 307

5. 100 - Trying

Le serveur indique à l'émetteur (Bambou - 202) qu'il est en train d'atteindre le destinataire (Babar - 203).
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
To: < sip:203@192.168.1.222>
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 566 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: < sip:203@192.168.1.222>
Content-Length: 0

6. INVITE

Le serveur invite le destinataire (Babar - 203).


58
INVITE sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK407630a5;rport
From: "Bambou" < sip:202@192.168.1.222>;tag=as65501eef
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>
Contact: < sip:202@192.168.1.222>
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Sun, 16 Dec 2007 20:15:10 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Type: application/sdp
Content-Length: 240

7. 180 - Ringing

Le serveur envoie un message à l'émetteur (Bambou - 202) pour faire sonner son téléphone.
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
To: < sip:203@192.168.1.222>;tag=as0de70729
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 566 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: < sip:203@192.168.1.222>
Content-Length: 0

8. 180 - Ringing

Le destinataire (Babar - 203) indique au serveur que son téléphone est en train de sonner.
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK407630a5;rport=5060
Contact: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75
From: "Bambou"< sip:202@192.168.1.222>;tag=as65501eef
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 102 INVITE
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 0

9. 200 - OK

Le destinataire (Babar - 203) confirme l'invitation du serveur.


SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK407630a5;rport=5060
Contact: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75
From: "Bambou"< sip:202@192.168.1.222>;tag=as65501eef
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 102 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 187

10. ACK

Le serveur accepte (acknowleges) la confirmation du destinataire (Babar - 203).


ACK sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0

59
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK64b6b476;rport
From: "Bambou" < sip:202@192.168.1.222>;tag=as65501eef
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75
Contact: < sip:202@192.168.1.222>
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 102 ACK
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0

11. 200 - OK

Le serveur confirme l'invitation de l'émetteur (Bambou - 202). Cf étape 4.


SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.106;branch=z9hG4bKtomragum;received=192.168.1.106;rport=5060
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
To: < sip:203@192.168.1.222>;tag=as0de70729
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 566 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: < sip:203@192.168.1.222>
Content-Type: application/sdp
Content-Length: 240

12. ACK

L'émetteur (Bambou - 202) reconnaît la confirmation du serveur.


L'appel téléphonique peut commencer. Le protocole RTP va transporter les paquets VoIP et RTCP contrôler la qualité de la ligne.
ACK sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKixdtxpvy
Max-Forwards: 70
Proxy-Authorization: Digest username="202",realm="asterisk",nonce="138dd154",uri="sip:203@192.168.1.222",
response="c46a93637d0af311c7f9cd3bb542cd08",algorithm=MD5
To: < sip:203@192.168.1.222>;tag=as0de70729
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 566 ACK
User-Agent: Twinkle/1.1
Content-Length: 0

13. BYE

L'émetteur (Bambou - 202) raccroche.


BYE sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKassptnfl
Max-Forwards: 70
To: < sip:203@192.168.1.222>;tag=as0de70729
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 567 BYE
User-Agent: Twinkle/1.1
Content-Length: 0

14. 200 - OK

Le serveur confirme le message BYE de l'émetteur (Bambou - 202) avec un OK.


SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.106;branch=z9hG4bKassptnfl;received=192.168.1.106;rport=5060
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql

60
To: < sip:203@192.168.1.222>;tag=as0de70729
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 567 BYE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: < sip:203@192.168.1.222>
Content-Length: 0
X-Asterisk-HangupCause: Normal Clearing

15. BYE

Le serveur indique au destinataire (Babar - 203) que l'émetteur (Bambou - 202) a raccroché.
BYE sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK07b32129;rport
From: "Bambou" < sip:202@192.168.1.222>;tag=as65501eef
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 103 BYE
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0

16. 200 - OK

Le destinataire (Babar - 203) confirme le message BYE avec un OK.


SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.222:5060;branch=z9hG4bK07b32129;rport=5060
Contact: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>
To: < sip:203@192.168.1.102:9097;rinstance=fc31ac7abb1cc558>;tag=115eda75
From: "Bambou"< sip:202@192.168.1.222>;tag=as65501eef
Call-ID: 4ddd4d6e5fc3aacf5e6994da26ac2f94@192.168.1.222
CSeq: 103 BYE
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 0

3. SDP

SDP est étroitement lié à SIP.


La capture Wireshark est la même que celle utilisée pour illustrer les processus d'initialisation et de fermeture.

Ci-dessous, l'en-tête du message SIP de la première ligne de capture (INVITE) contenant des informations SDP (en gras).
INVITE sip:203@192.168.1.222 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.106;rport;branch=z9hG4bKmazrqogm
Max-Forwards: 70
To: < sip:203@192.168.1.222>
From: "Bambou" < sip:202@192.168.1.222>;tag=kbcql
Call-ID: jcaqhewsybtyksb@192.168.1.106
CSeq: 565 INVITE
Contact: < sip:202@192.168.1.106>
61
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Supported: replaces,norefersub,100rel
User-Agent: Twinkle/1.1
Content-Length: 307

v=0
o=201 2086878285 1015399812 IN IP4 192.168.1.106
s=-
c=IN IP4 192.168.1.106
t=0 0
m=audio 8000 RTP/AVP 98 97 8 0 3 101
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20

4. RTP

Le protocole RTP est utilisé pour transporter des données voix et ainsi permettre à deux personnes de parler ensemble.

Nous voyons dans cette capture que la compression audio est G.711.

5. RTCP

RTCP est utilisé avec RTP pour vérifier la qualité de la communication.

V. Quelques outils pratiques pour la VoIP

Cinq outils gratuit et open source fournissent une précieuse aide pour mesurer la qualité d'un lien réseau.

Ping:
Ping est utilisé pour tester des connectivités IP. Il fournit des informations sur le RTT et la perte de paquet.
Il est extrêmement simple à utiliser et est installé par défaut sur tous les systèmes.
62
Différemment des deux outils suivants IPerf et D-ITG, vous n'avez pas besoin d'avoir la main sur la machine de destination pour
installer et configurer l'outil.

IPerf:
IPerf est premièrement utilisé pour mesurer la bande passante disponible entre deux hôtes sur lequel tourne IPerf. Il est également
possible de mesurer la gigue et la perte de paquet.
Consulter le tutorial IPerf pour une aide détaillée.

D-ITG (Distributed Internet Traffic Generator)


Comme avec IPerf, D-ITG doit être configuré sur les machines qui envoient et reçoivent le trafic de test.
Il est disponible avec une interface graphique et est extrêmement puissant. Il répond à tous vos besoins de mesure réseau.

Wireshark (Ancien Ethereal)


Le meilleur analyseur réseau. Il fournit un grand nombre d'information sur la VoIP comme la gigue.

WANem: (Voir tutorial complet)


Un outil localisé entre deux hôtes comme un téléphone et un PBX pour simuler une qualité de lien réseau spécifique. Des
paramètres comme la latence, la bande passante, la perte de paquet la gigue sont disponibles.
Comme WANem est "au milieu", le routage doit être configuré sur les deux machines de test pour forcer le trafic entre eux à
passer à travers WANem.

Résumé:
Latence:
RTT: Bande passante: Gigue: Perte de paquet:
Mesure: D-ITGPing / D-ITG IPerf / D-ITG IPerf / D-ITG Ping / IPerf
Wireshark D-ITG
Simulation: WANem WANem WANem WANem WANem

V. Ressources web
http://www.trixbox.org Le site officiel de trixbox (distribution utilisant asterisk)
http://www.asterisk.org Le site officiel d'Asterisk
http://www.asterisknow.org Le site officiel d'asterisknow (distribution utilisant asterisk)
http://www.digium.com Du matériel compatible avec Asterisk (appliances, cartes,…)
http://www.voipfr.org Portail francophone de la voix sur IP (comparateurs de tarifs)
http://www.voip-info.org Le site de référence sur tout ce qui concerne la voix sur IP

63