Untitled
Untitled
François-Emmanuel Goffinet
Ce livre est en vente à [Link]
Ce livre est publié par Leanpub. Leanpub permet aux auteurs et aux éditeurs de bénéficier du Lean Publishing.
Lean Publishing consiste à publier à l’aide d’outils très simples de nombreuses itérations d’un livre électronique
en cours de rédaction, d’obtenir des retours et commentaires des lecteurs afin d’améliorer le livre.
Dédicace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Avant-Propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Historique du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Public visé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Logiciels et fichiers nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
2. Analyseurs de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Utilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Compétences à developper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Architecture SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1. Protocole SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. La boîte-à-outils SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. AOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4. Rôles SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1. User Agents (UA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2. Proxy - serveur mandataire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3. Serveur de redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4. B2BUA - Back-to-Back User Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.5. REGISTRAR Server et Location Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.6. SBC - Session Border Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.7. Gateways - Passerelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5. Requêtes (Méthodes) SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6. Réponses (Status Codes) SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7. Messages SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7.1. Exemple d’une transaction BYE-200 OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Requête BYE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Réponse 200 OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8. Scénarios SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1. Processus d’enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8.2. Flux d’appel SIP entre UA et serveurs de redirection entre proxys et UAs . . . . . . . . . . . . . 22
8.3. Flux d’appel B2BUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9. Terminologie SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.1. Transaction SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.2. Dialogue SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.3. Session Média . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.4. Domaine SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5. Solution FreePBX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.1. Fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2. Topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1. Procédure d’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Post-installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3. Configuration du PBX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4. Configuration des modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3. Connectivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Révisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Historique du document
Ce document trouve son origine dans l’expérience de l’auteur comme formateur dans plusieurs programmes de
formations éprouvés dans des écoles et des centres de formation. En voici une liste non-exhaustive.
Public visé
Ce document s’adresse à des informaticiens en quête de savoir.
Introduction
Cette partie est une introduction générale aux parties qui suiavantes sur l’analyse VoIP avec Wireshark, sur le
protocole SIP ou sur un logiciel de téléphonie comme Astersik.
Voici le sommaire de cette introduction :
1. POTS
2. Protocoles Multimédia
3. Marchés VoIP
4. Exercice de connexion SIP
5. Infrastructure VoIP
6. Migration VoIP
7. Conception VoIP
8. Aperçu des logiciels Open Source
9. Exemples de périphériques SIP
10. Exercices de mise en œuvre de l’infrastructure physique
1. POTS (Plain Old Telephony Systems)
Ce chapitre reprend un historique des télécoms et des problématiques propres aux réseaux de télécommunications :
• Téléphonie analogique
• Le PSTN opérateur
• L’arrivée du numérique (RNIS, BRI, PRI)
• L’adressage des points de terminaison sur les réseaux téléphoniques
• Les solutions “classiques” pour les entreprises
• Les PABX
• Les tie-trunks
• La fiabilité des réseaux PSTN (RTC ou RNIS)
1. POTS
POTS est un sigle anglais qui signifie Plain Old Telephone System que l’on peut traduire en français par “le bon
vieux téléphone”. Dans certains pays on parle de réseau fixe ou de téléphone fixe. Il s’agit en fait des services
rendus par une ligne téléphonique analogique avant l’avènement des technologies ISDN, téléphone mobile, ADSL
et VoIP.
Service POTS
Le service POTS existe depuis l’introduction du téléphone à la fin du XIXe siècle, sous une forme pratiquement
inchangée pour l’utilisateur lambda malgré l’introduction de la numérotation par tonalité ou de la fibre optique
en remplacement des fils de cuivre qui composaient les lignes. Outre la communication de la voix à travers le
réseau RTC, on peut citer ces services communs comme :
9. Communications numériques
Le réseau RTC/PSTN utilise des technologies, des supports et des protocoles différents de ceux qui
supportent TCP/IP.
Les principaux concepts utiles à retenir sont :
Ils permettent de mieux comprendre les architectures de connexions d’accès aux téléphones des entreprises et des
particuliers sur lignes fixes et mobiles. Des interfaces et des protocoles permettent de connecter les deux mondes
RTC et VoIP.
2. Commutation de circuit
La commutation de circuit est un mode d’établissement d’une liaison de télécommunication pour laquelle :
et
3. Commutation de paquet
La commutation de circuits s’oppose au principe de la commutation de paquets qui optimise le canal de
transmission laissant le soin à des commutateurs intermédiaires d’acheminer les paquets (Ethernet, Wi-Fi, IP)
ou en établissant des Circuits Virtuels (ATM, Frame-Relay).
Ces technologies sont facturées par quantité de données échangées.
Le protocole MPLS permet de construire des réseaux IP cohérents sur ces architectures préexistantes avec une
forme de confidentialité et de la gestion de qualité de service.
4. Boucle locale
Le réseau téléphonique commuté (RTC ou PSTN) peut transporter la voix mais aussi des données. Il utilise le
principe de la commutation de circuit qui est celui de l’établissement d’un circuit dédié pour une communication.
Les téléphones sont connectés à des commutateurs téléphoniques (manuels, automatiques, électroniques) qui
constitue des points d’échange téléphonique.
Ils sont situés chez l’opérateur au central office (CO) ou dans l’entreprise (en tant que Private Branch Exchange,
PBX).
Boucle locale
Ces commutateurs s’interconnectent entre eux via des Trunks numériques ou analogiques.
Si le nuage opérateur fonctionne entièrement en technologies numériques, du client à l’opérateur il reste souvent
une connexion analogique avec des fréquences audibles pour transmettre la voix et la signalisation (Dial Tone
Multi Frequency, DTMF). Cette zone est appelée boucle locale du CO de l’opérateur au bâtiment du client par
une paire (téléphonique) de fils en cuivre.
5. Trunk
Un trunk est une liaison spéciale vers le réseau PSTN. Les opérateurs proposent des services numériques sur
la boucle locale analogique et parmi ceux-ci le transport de la voix :
• sur ISDN
• mais ausssi sur TCP/IP supporté par des technologies d’accès plus intéressantes telles que xDSL, DOCSIS
(câble/Fibre), Metro Ethernet, etc.
La signalisation Dual-tone multi-frequency signaling (DTMF) est celle qui est utilisée “in band”, c’est-à-dire
dans le canal de communication, pour établir les destinations des appels auprès d’un central téléphonie privé ou
public. DTMF est utilisé sur les claviers alphanumériques téléphoniques qui ont peu à peu remplacé les cadran à
disque. Chaque touche correspond à deux fréquences audibles qui sont jouées simultanément.
Fréquences de touches DTMF :
7. FXO/FXS
En téléphonie, un Foreign eXchange Station ou FXS est une interface téléphonique qui fournit la tonalité, le
courant de charge et la tension électrique nécessaire pour faire fonctionner la sonnerie.
Un périphérique qui connecte un FXS est une interface FXO qu’elle soit un téléphone analogique ou l’interface
d’un PBX pour recevoir des appels. L’interface Foreign eXchange Office est le port qui reçoit la ligne analogique.
8. ISDN/RNIS
8.1. Définition
ISDN (Integrated Services Digital Network), RNIS en français, est une technologie qui utilise la boucle locale pour
fournir divers services de transmission numériques de la voix, de la vidéo et des sonnées. ISDN permet de se
connecter au réseau PSTN, à Internet, à des sites distants.
ISDN fournit plusieurs type de canaux numériques :
L’accès de base ou Basic Rate Interface (BRI ou T0) comprend deux canaux B et un canal D. Soit un total de deux
canaux voix simultanés ou 128 Kbps de bande passante.
L’accès primaire (PRA) ou Primary Rate Interface (PRI ou T2) propose trente canaux B et un canal D. Soit un total
de 30 canaux voix simultanés ou 2 Mbps de bande passante. Ce type de ligne à 2 Mbps se vend aussi comme ligne
dite E1.
1. la signalisation,
2. l’envoi de messages,
Il gère
1. l’établissement d’appels,
2. l’échange d’informations utilisateur,
3. le routage d’appels, la facturation et
4. supporte les services du réseau intelligent (en anglais Intelligent Network (IN))
L’utilisation principale de SS7 est de délivrer un appel téléphonique à travers le RTC. L’appel peut avoir à traverser
plusieurs réseaux de différents opérateurs téléphoniques. (Par exemple sur un appel international ou s’il y a
plusieurs opérateurs nationaux…). À chaque étape sur le chemin de l’appel les commutateurs téléphoniques ont
besoin de savoir d’où vient l’appel (quelle ligne téléphonique, quel canal ou quel circuit) et vers où il va. Cela
nécessite beaucoup de coordination. ISUP (ou ISDN User Part signaling) est un type de communication SS7 qui
s’occupe de l’établissement d’un appel tout au long de ces différents liens. Les messages ISUP sont passés de
commutateur en commutateur et à chaque point du circuit l’appel est étendu un peu plus jusqu’à l’aboutissement
de l’appel (établissement de bout en bout).
Remarque : En VoIP, à l’échelle des communications globales, le protocole IETF SIP a l’ambition de remplacer
SS7.
1. Analyseurs de paquets
2. Analyse de paquets
3. Placement de l’analyseur de paquet
4. Introduction à Wireshark
5. Menus de Wireshark (uniquement disponible en ligne)
6. Capture de paquets (uniquement disponible en ligne)
7. Travailler avec des captures Wireshark (uniquement disponible en ligne)
8. Statistiques Wireshark (uniquement disponible en ligne)
9. Analyse VoIP Wireshark
10. Wireshark en ligne de commande (uniquement disponible en ligne)
2. Analyseurs de paquets
1. Définition
Un analyseur de paquets peut aussi être appelé en anglais : packet analyzer, network analyzer, protocol analyzer
ou encore packet sniffer.
Wireshark est certainement le plus connu mais il en existe bien d’autres.
On citera en logiciels Open Source : tcpdump, ngrep, WinDump ,tshark, dumpcap, rawshark, ipgrab, …
Par ailleurs, on remarquera le logiciel et le service en ligne CloudShark qui permet de présenter des captures en
version Web (partages, commentaires, wireshark-like). Celui-ci ne remplit pas la fonction de capture qui est laissée
à des logiciels de bas niveau.
2. Utilité
Analyser des paquets permet :
3. Compétences à developper
Les compétences à développer sont :
• L’identification précise des hôtes et des utilisateurs d’une conversation plongée au sein d’un trafic dense.
• Faire inter-agir les conversations accessoires pour comprendre une conversation utile.
• Etre capable d’identifier la charge d’un conversation voire la restituer.
Troisième partie Protocole SIP
3. Programme de formation SIP
Au préalable de ce chapitre sur le protocole SIP, il est conseillé de lire la partie “Contexte VoIP” où on retrouvera
des généralités autour de SIP : le transport RTP, le support du NAT, les enregistrements DNS SRV et d’autres
éléments opérationnels de téléphonie d’entreprise.
Sommaire
1. Architecture SIP
2. Aperçu des opérations SIP
3. INVITE SIP UAC/UAS
4. Réponses SIP
5. SDP
6. Enregistrement REGISTER
7. Proxy SIP UDP
8. Back-to-Back User Agent
9. Flux SIP Trapéziodal
10. Extensions SIP
11. Sécurité SIP
12. Liste des RFCs SIP
13. Annexes
Programme de formation
Le canevas de ce support de formation est le suivant.
Architecture de SIP
Rappel sur la téléphonie classique
• Le réseau PSTN
• Les composants d’un réseau VoIP
• Les clients
• Les passerelles voix
La signalisation
• Comparaison à H.323
• Les serveurs d’application
• Les composants spécifiques au protocole SIP
• Les UA
– UAC
– UAS
• Les proxy
Programme de formation SIP 14
• Les registrar
• INVITE
• REGISTER
• ACK
• BYE
• CANCEL
• UPDATE
• Codes provisionnels
• Codes de réussite
• Codes de redirection
• Code d’échec client
• Code d’échec serveur
• Code d’échec global
Le protocole SDP
La qualité de service
Processus d’enregistrement
• Enregistrement basique
• Messages de notification
• Les WMI
• Configuration du registrar
• Configuration des clients
• Validation de l’enregistrement
Session SIP
• Initiation du dialogue
• Requête client
• Réponse du serveur
• Routage de l’appel
• Perte du routage
• Routage strict
• Modification de la session SIP
• Terminaison de la session SIP
• Utilisation d’un proxy
• Connexion au réseau PSTN
• Gestion de la présence
SIP et la sécurité
• Support du NAT
• Utilisation de pare-feu (Firewalls)
• Les types d’attaques sur les réseaux convergents
• Le hijacking
• Déni de service
• Amplification
• Bots
• Les mesures de sécurité
• Contrôle des accès
• Cryptage
• Authentification
• Gestion des autorisations
• Systèmes de détection d’intrusion
1. Protocole SIP
Session Initiation Protocol (SIP) est un protocole TCP/IP de couche application normalisé et standardisé par
l’IETF (RFC 3261). Il a été conçu pour établir, modifier et terminer des sessions multimédia. Il prend en charge
l’authentification et la localisation de multiples participants. S’il se charge de la négociation des médias, il laisse
le soin à d’autres protocoles de transporter du texte, de la voix ou de la vidéo.
SIP fonctionne aussi bien avec IPv4 qu’avec IPv6. SIP est supporté par TCP ou UDP sur le port 5060 par défaut.
La version sécurisée SIP-TLS utilise par défaut le port TCP 5061.
SIP prend en charge cinq facettes de l’établissement et de la terminaison de communications multimédia :
SIP n’est pas un système de communications intégré verticalement. SIP est plutôt un composant qui peut être
utilisé avec d’autres protocoles de l’IETF pour construire une architecture multimédia complète.
SIP ne fournit pas de services. Plus justement, SIP fournit des primitives qui peuvent être utilisées pour mettre en
œuvre différents services. Par exemple, SIP peut localiser un utilisateur et livrer un objet opaque à l’endroit où il
se trouve. Une seule primitive est normalement utilisée pour fournir plusieurs services différents.
La nature des services fournis rend la sécurité particulièrement importante. A cette fin, SIP fournit une série de
services de sécurité, qui comporte la prévention du déni de service, l’authentification (à la fois d’usager à usager
et de mandataire à usager), la protection de l’intégrité, et de services de chiffrement et de confidentialité.
2. La boîte-à-outils SIP
SIP est donc un protocole de l’IETF (il aura la préférence du marché) qui est une véritable boîte-à-outils (primitives
SIP) pour établir des communications à travers l’Internet. Ses illustrations les plus immédiates sont celles de la
téléphonie IP, de la voix sur IP et puis des systèmes de messageries tels que Skype, WhatsApp, etc. Mais on peut y
trouver d’autres cas d’usage où des communications vocales ou vidéos peuvent intervenir dans le cadre de services
de support, de fourniture de connectivité ou encore dans l’IoT ou la domotique.
Une expérience SIP pleinement vécue ne se passe pas d’autres protocoles TCP/IP, de logiciels et de leurs librairies
qui le mettent en oeuvre. Aussi, SIP n’est plus nécessairement le seul protocole ou l’élément central des solutions
commerciales qui nous sont offertes sur le marché.
Architecture SIP 17
Protocoles VoIP
3. AOR
Adresse d’enregistrement (AOR, Address-of-Record).
Une adresse d’enregistrement est un URI SIP ou SIPS qui pointe sur un domaine avec un service de localisation
qui peut transposer l’URI en un autre URI où l’utilisateur pourrait être disponible. Normalement, le service de
localisation est rempli au moyen des enregistrements. Un AOR est fréquemment vu comme l’“adresse publique”
de l’utilisateur.
4. Rôles SIP
On trouvera différents rôles logiques en SIP.
• UAC : Un Agent Utilisateur Client est tout élément de réseau qui envoie une requête SIP et reçoit des
réponses SIP. Les clients peuvent ou non interagir directement avec un utilisateur humain. Les clients et
proxys d’UA sont des clients.
• UAS : Un Agent Utilisateur Serveur est une entité logique qui génère une réponse à une requête SIP. La
réponse accepte, rejette, ou redirige la requête. Ce rôle ne dure que pendant le temps de cette transaction.
En d’autres termes, si un logiciel répond à une requête, il agit comme UAS pour la durée de cette transaction.
Si il génère plus tard une requête, il assume le rôle d’un UAC pour le traitement de cette transaction.
Serveur Proxy (serveur mandataire) : Entité intermédiaire qui agit à la fois comme un serveur et comme un client
pour les besoins de l’élaboration de requêtes au nom des autres clients.
Un serveur proxy joue principalement un rôle d’acheminement, de routage, ce qui signifie que sa tâche est de
s’assurer qu’une requête est envoyée à une autre entité “plus proche” de l’utilisateur cible. En cela il est comparable
au routeur IP qui transfère le trafic en fonction de l’adresse IP de destination.
Les proxys sont aussi utiles pour mettre en application la politique de routage des appels (par exemple, s’assurer
qu’un utilisateur est autorisé à effectuer un appel).
Un proxy interprète et, si cela est nécessaire, réécrit des parties spécifiques d’un message de requête avant de le
retransmettre.
Outbound Proxy : Proxy qui reçoit des requêtes de la part d’un client, même si il peut ne pas être le serveur donné
par la résolution de l’URI demandée. Normalement un UA est configuré manuellement avec un mandataire de
sortie, ou il peut en acquérir la connaissance au moyen de protocoles d’autoconfiguration.
Les notions de Stateful Proxy et et de Stateless Proxy se distinguent par le maintien d’un état des transactions.
Alors que le proxy Stateless ne maintient aucun état, le proxy stateful peut accomplir des tâches plus complexes
telles que la duplication les transactions, l’absorption des transactions ou d’autres telles que le transfert d’appel.
Un serveur de redirection est un agent d’utilisateur serveur (UAS) qui génère des réponses 3xx (Redirection) aux
requêtes qu’il reçoit, amenant le client à contacter un ensemble d’URI de remplacement.
B2BUA, Back-to-Back User Agent : Un B2BUA est une entité logique entre des UA qui reçoit une requête et
la traite comme UAS. Afin de déterminer comment il devrait répondre à la requête, il agit comme un UAC vers
l’UAS final et génère lui-même des requêtes. A la différence d’un serveur mandataire (proxy), il maintient l’état
du dialogue et doit participer à toutes les requêtes envoyées dans les dialogues qu’il a établi. Comme c’est un
enchaînement d’UAC et d’UAS, aucune définition explicite n’est nécessaire pour son comportement.
Un REGISTRAR Server un serveur qui gère les requêtes REGISTER envoyées par les Users Agents pour signaler
leur emplacement courant. Ces requêtes contiennent donc une adresse IP, associée à une URI, qui seront stockées
dans une base de données.
Un service de localisation est utilisé par un Redirect Server ou un serveur proxy pour obtenir des informations sur
la ou les localisations possibles d’un appelé. Il contient une liste de liens de clés d’address-of-record pour aucune
ou plusieurs adresses de contact. Les liens peuvent être créés et retirés de nombreuses façons.
Les URI SIPs sont très similaires dans leur forme à des adresses email : sip :utilisateur@[Link]
Généralement, des mécanismes d’authentification permettent d’éviter que quiconque puisse s’enregistrer avec
n’importe quelle URI.
Un SBC (Session Border Controller) est placé comme élément intermédiaire pour rendre des services entre les
UA et les serveurs SIP en matière de sécurité, de camouflage de topologie, de filtrage ou d’assistance dans du NAT
Traversal ou encore de chiffrement du trafic.
Les Gateways (passerelles) sont des entités logiques qui sont capables d’établir des liaisons vers des destinations
non-IP notamment les réseaux PSTN.
D’autres RFC sont venus compléter les capacités du protocole avec de nouvelles méthodes :
Une transaction SIP survient entre un client et un serveur et comprend tous les messages depuis la première requête
envoyée du client au serveur jusqu’à la réponse finale (non-1xx) envoyée du serveur au client. Si la requête est
INVITE et la réponse finale est un non-2xx, la transaction comporte aussi un ACK à la réponse. Le ACK pour une
réponse 2xx à une requête INVITE est une transaction distincte.
Un dialogue est une relation SIP d’homologue à homologue qui persiste pendant un certain temps entre deux
agents d’utilisateur. Un dialogue est établi par les messages SIP, comme une réponse 2xx à une requête INVITE.
Un dialogue est identifié par un identifiant d’appel, une étiquette locale, et une étiquette distante.
7. Messages SIP
Un message SIP est composé des éléments suivants :
Un message SIP est notamment composé de champs d’en-têtes définis dans le RFC 3261 pour la signalisation et le
routage des informations entre des entités SIP. SIP utilise le même format que celui qui définit un en-tête HTTP
(RFC 2616). Chaque en-tête consiste en un nom de champ suivant d’un deux-points (:) et d’une valeur.
Les champs d’en-tête (header fields) peuvent être, entre autres :
1. From : Il indique l’identité de celui qui initié la requête SIP. Cette valeur est souvent valorisée par l’AOR de
l’envoyeur. Il comprend un URI SIP ou SIPS voire un “display name” optionnel.
2. To : Cet en-tête indique le destinataire souhaité pour la requête SIP. Il utilise habituellement l’AOR du
destinataire.
3. Call-ID : Il identifie un dialogue SIP de manière unique. Il est donc identique pour toutes les requêtes et les
réponses SIP d’un même dialogue.
4. Cseq : Cet en-tête est composé d’une valeur de nombre entier et un nom de méthode. Il identifie, ordonne
et séquence les requêtes SIP au sein d’un dialogue. Il permet de différencier les nouveaux messages et les
retransmissions.
5. Via : Le champ Via indique le chemin pris par la requête et identifie où la réponse doit être envoyée. Il indique
aussi le transport utilisé. Cet en-tête doit contenir un paramètre “branch” qui est utilisé pour identifier la
transaction créée par la requête. Ce paramètre est utilisé aussi bien par le client que par le serveur. Il doit
toujours commencer par un “magic cookie” d’une valeur de “z9hG4bK”.
6. Contact : Cet en-tête identifie un URI SIP ou SIPS où l’UA veut adresser une nouvelle requête SIP. C’est ce
champ qui permettra aux intervenant de communiquer directment entre eux.
7. Allow : Cet en-tête liste les méthodes supportée par l’UA qui génère le message.
8. Supported : Cet en-tête liste toutes extensions supportées par l’UA autre que celles définies dans le RFC
3261. Les extensions SIP sont représentées comme des étiquettes (tags) option.
9. Require : Identique au précédent “Supported” mais obligatoire pour aboutir la transaction.
Les champs d’en-tête obligatoires dans toutes les requêtes SIP sont : To, From, CSeq, Call-ID, Max-Forwards et
Via.
Message Structure
Méthodes Nom de la méthode + URI du destinataire + Version SIP BYE sip :201@[Link]:5060 SIP/2.0
Réponses Version SIP + Status Code + Raison SIP/2.0 200 OK
Requête BYE
Réponse 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP [Link];branch=z9hG4bKac795178845
From: <sip:101@[Link];user=phone>;tag=1c782609321
To: <sip:201@[Link]>;tag=1c1450530943
Call-ID: 1450530377152201062221@[Link]
CSeq: 1 BYE
Contact: <sip:201@[Link]:5060>
Supported: em,timer,replaces,path,resource-priority
Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,U\
PDATE
Server: GW/v.6.20A.027.012
Content-Length: 0
8. Scénarios SIP
Selon le contexte d’exécution on trouvera probablement plusieurs intervenants dans une session SIP.
Processus d’enregistrement
Source de l’image
• F1 - demande d’enregistrement initial auprès du SIP User Agent avec ses informations d’adresse (AOR)
• F2 - réponse du SIP Registrar avec les informations sur le login nécessaire
• F3 - nouvelle demande d’enregistrement avec login
• F4 - confirmation de l’enregistrement réussi sur le SIP Registrar
Source de l’image
Source de l’image
9. Terminologie SIP
Fondamentalement, une transaction SIP est un seul échange demande / réponse finale complet.
Fondamentalement, les dialogues sont identifiés par les champs From, To et Call-ID des messages
SIP.
Parce qu’il peut y avoir plusieurs dialogues en cours à la fois entre deux pairs (par exemple, plusieurs appels en
cours entre deux serveurs SIP), des balises (“tags”) servent simplement à identifier à quel dialogue une requête ou
réponse particulière appartient.
Une session n’est qu’un flux média (par exemple audio ou vidéo) circulant entre pairs, généralement constitué de
paquets RTP (et éventuellement RTCP).
Par exemple, si le protocole SIP est utilisé pour passer un appel vocal, la session est la donnée vocale qui est
envoyée entre les terminaux.
Les transactions et dialogues SIP sont nécessaires pour créer des sessions (des flux média entre deux
pairs), une “session” étant l’objectif principal du protocole SIP.
Un domaine est un nom de domaine qui identifie les ressources SIP notamment grâce à un service
DNS robuste.
1. Solution FreePBX
2. Asterisk Core PABX
3. Asterisk Base
4. Asterisk Intermédiaire
5. Asterisk Avancé
5. Solution FreePBX
On propose ici un exercice d’installation et de configuration d’un IP-PBX avec Astersik/FreePBX dans le but
d’illustrer le déploiement VoIP dans une PME. Plus il y a d’utilisateurs et de périphériques, plus le lab est
représentatif.
1. Introduction
Source : https ://[Link]/wiki/FreePBX
FreePBX est un GUI basé Web qui gère le serveur de téléphonie Asterisk. FreePBX est sous licence GNU General
Public License version 3.
FreePBX a été acquis par [Link] au début 2013 qui a été acquis par Sangoma Technologies Corporation
au début 2015.
FreePBX peut être exploité :
• A partir d’une installation native combiné au logiciel Asterisk et à une base donnée.
• A partir d’une distribution FreePBX (FreePBX Distro), il existe des variantes comme AsteriskNow, Elastix
ou Trixbox, FreePBX même.
• A partir d’un matériel dédié et soutenu par les auteurs du projet, en proposant des appliances : https ://[Link]/st
appliances/, ce qui donne une idée du dimensionnement physique.
1.1. Fonctionnalités
PBX IP graphique complet et à usage avancé.
1.2. Topologie
Topologie
2. Installation
2.2 Post-installation
Après redémarrage,
Source de l’image
Le menu principal offre quatre options :
Source de l’image
1. FreePBX Administration
2. User Control Panel
3. Operator Panel
4. Get Support
https ://[Link]/display/PPS/FreePBX+Distro+First+Steps+After+Installation
https ://[Link]/display/FPG/Standard+Modules
• Adresse : Static
• Adresse IP publique
• Réseau local
3. Connectivité
Softphones SIP/IAX
• Zoiper
• Linphone
• Ekiga
• Jitsi
• Yate
• 3CX Phone
• SJPhone
• Voir https ://[Link]/wiki/Liste_des_logiciels_SIP#Clients_SIP
Matériel VoIP
https ://[Link]/display/FPG/Extensions+Module+-+SIP+Extension
• Localized
• 32 Belgium
• 00
5. Francisation
A partir de la version 13, de FreePBX, un module se charge des fichiers de langues nécessaires.
Version FreePBX 13 minimum.
1. Admin/Sound Languages
2. Filtrer selon “French”
3. Ajouter les packs de langues FR (alaw)
4. Aller dans “View Custom Languages”
5. Action/edit sur “language fr”
6. Ajouter “French” dans la description et valider
7. Revenir dans Admin/Sound Languages
8. Aller dans change “Global Sound Language”
9. Choisir French et valider
Avec les versions précédentes, 12 et inférieures, il sera nécessaire de placer soi-même les fichiers de langues FR
au bon endroit.
On devrait trouver au minimum dans le dossier /var/lib/asterisk/sounds/fr le contenu décompressé des
fichiers suivants :
• https ://[Link]/pub/telephony/sounds/[Link]
• https ://[Link]/pub/telephony/sounds/[Link]
• https ://[Link]/pub/telephony/sounds/[Link]
Plusieurs méthodes sont envisageables pour placer ces fichiers sur le PBX. Le plus facile est de se connecter sur la
console du PBX et d’exécuter le script disponible à cette adresse https ://[Link]/goffinet/7835fb38aa1ce29544acc079ecfd
Soit, on peut l’exécuter directement dans la console Linux :
Source du script :
#!/bin/sh
##1. Dans le GUI :
##Modules Administration/Download and install Languages/Apply Config
##Asterisk SIP Settings/Advanced General Settings/Language = fr/Apply config
##2. En console :
##amportal restart
##3. Téléchargement des fichiers
REP=[Link]
DIR=/var/lib/asterisk/sounds/fr
mkdir $DIR
cd $DIR
wget $REP/[Link]
wget $REP/[Link]
wget $REP/[Link]
gunzip *.gz
tar xfv [Link]
tar xfv [Link]
tar xfv [Link]
rm asterisk-*
6. Boîtes vocales
Au minimum, on se souciera de la livraison du courrier électronique (messages vocaux).
Sous Debian/Ubuntu :
Choisir installation satellite ou Internet smarhost : serveur SMTP par exemple, [Link], [Link]
Par exemple sous Centos 6 (AsteriskNow), une installation de type smarthost (relay SMTP) :
7. IVR
Admin / Feature Codes
https ://[Link]/display/FPG/System+Recordings+Module
https ://[Link]/display/FPG/IVR+Module
La documentation ci-dessous suggère une solution fonctionnelle à travers les pare-feux de connexion entre deux
PBX distants. Les adresses IP publiques des systèmes téléphoniques doivent être connus.
https ://[Link]/pages/[Link] ?pageId=4161588
9. Sécurité
Activité sous Windows
https ://[Link]/[Link]
10. Fail2ban
Dans AsteriskNow, on peut constater que la prison “pbx-gui” vérifie les logs de sécurité d’Asterisk (/var/log/asterisk/freep
[Link])
# fail2ban-client status
Status
|- Number of jail: 7
`- Jail list: apache-tcpwrapper, recidive, pbx-gui, apache-badbots, ssh-iptables\
, asterisk-iptables, vsftpd-iptables