SIP, le Session Initiation Protocol, est la façon dont les appels téléphoniques s’établissent sur internet. Quand un appareil veut en appeler un autre, SIP transporte la négociation : qui appelle, où joindre l’autre côté, quels codecs audio les deux prennent en charge, et quand quelqu’un raccroche. La voix elle-même ne passe jamais par SIP. Une fois les deux côtés d’accord, l’audio circule dans un flux séparé, presque toujours en RTP.
Cette séparation est la chose à retenir de ce guide : SIP est la conversation autour de l’appel, pas l’appel. Tout le reste, les méthodes, les codes de réponse, les ports, en découle. Ce guide couvre le déroulement d’un appel SIP message par message, le sens du vocabulaire, et les endroits où SIP apparaît quand ce qui répond à vos appels est un agent vocal IA.
Ce que SIP est, et ce qu’il n’est pas
SIP est un protocole de signalisation de la couche application défini par l’IETF. Il est apparu d’abord comme RFC 2543 en 1999, puis a été révisé comme RFC 3261 en 2002, qui reste le standard qu’implémentent tous les téléphones SIP, PBX et opérateurs. Ses concepteurs ont emprunté à HTTP le modèle requête-réponse et la syntaxe texte, donc un message SIP se lit dans une capture de paquets sans outillage particulier.
Trois choses que SIP n’est pas :
- Pas l’audio. SIP négocie la session, puis s’efface. La voix et la vidéo circulent en paquets RTP, décrits plus bas.
- Pas un service. Personne ne vous vend « du SIP ». Ce que les opérateurs vendent, c’est le trunk SIP : un service qui utilise le protocole SIP pour relier votre système téléphonique au réseau téléphonique public.
- Pas la seule façon de signaler un appel. H.323 l’a précédé, WebRTC gère les appels dans les navigateurs, et des protocoles propriétaires tournent dans des applications fermées. SIP a gagné le monde de la téléphonie d’entreprise parce qu’il est ouvert, textuel et assez simple pour que chaque éditeur puisse l’implémenter.
Comment fonctionne un appel SIP
Un appel SIP est un bref échange de requêtes texte et de réponses numérotées. Voici un appel entrant typique, de la sonnerie au raccrochage :
- INVITE. Le côté appelant envoie un INVITE à l’adresse de l’appelé. Son corps porte un bloc SDP (Session Description Protocol) qui liste l’IP de l’appelant, le port où il veut recevoir l’audio et les codecs qu’il prend en charge.
- 100 Trying. Les proxys sur le chemin accusent réception, pour que l’appelant cesse de retransmettre.
- 180 Ringing. L’appareil appelé avertit son utilisateur. C’est à ce moment que l’appelant entend la tonalité de retour d’appel.
- 200 OK. L’appelé décroche. La réponse porte son propre bloc SDP, ce qui complète la négociation des codecs.
- ACK. L’appelant confirme la réponse finale. La session est établie, et l’audio RTP commence à circuler dans les deux sens.
- BYE. Celui qui raccroche envoie un BYE. L’autre côté répond 200 OK, et la session se termine.
En cours d’appel, chaque côté peut envoyer un nouvel INVITE, appelé re-INVITE, pour modifier la session : la mettre en attente, ajouter la vidéo ou changer de codec. Une requête REFER demande à l’autre côté d’appeler ailleurs, et c’est ainsi que fonctionnent les transferts.
Voici à quoi ressemble un INVITE sur le réseau, légèrement raccourci :
INVITE sip:+14155550132@sip.example.com SIP/2.0
Via: SIP/2.0/TLS client.example.com:5061;branch=z9hG4bK74bf9
Max-Forwards: 70
From: "Alice" <sip:alice@example.com>;tag=9fxced76sl
To: <sip:+14155550132@sip.example.com>
Call-ID: 3848276298220188511@client.example.com
CSeq: 1 INVITE
Contact: <sip:alice@client.example.com;transport=tls>
Content-Type: application/sdp
Content-Length: 213
v=0
o=alice 2890844526 2890844526 IN IP4 client.example.com
s=-
c=IN IP4 client.example.com
t=0 0
m=audio 40000 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
Les trois dernières lignes de l’offre SDP sont les codecs sur la table : le payload 0 est du G.711 loi μ, le payload 8 du G.711 loi A, et le payload 101 est telephone-event, la voie hors bande pour envoyer les appuis de touches DTMF dans le flux audio. Un appel sur le réseau public se fixe en général sur l’une des deux variantes du G.711, et c’est pourquoi l’audio téléphonique sonne comme il sonne.
Les méthodes SIP à connaître
Les requêtes SIP portent un nom de méthode. Voici celles que vous croiserez dans une capture :
| Méthode | Ce qu’elle fait |
|---|---|
| INVITE | Démarre une session, ou en modifie une en cours d’appel (re-INVITE) |
| ACK | Confirme la réponse finale à un INVITE |
| BYE | Termine la session |
| CANCEL | Abandonne un INVITE encore sans réponse |
| REGISTER | Dit à un registrar « je suis joignable à cette adresse » |
| OPTIONS | Demande à un appareil ce qu’il sait faire, sans l’appeler |
| REFER | Demande à l’autre côté d’appeler un tiers : la base des transferts |
| INFO | Transporte des informations en cours d’appel, l’une des façons dont les chiffres DTMF peuvent voyager |
Chaque requête reçoit des réponses à codes à trois chiffres, groupés par premier chiffre :
| Classe | Signification | Exemples |
|---|---|---|
| 1xx | Provisoire | 100 Trying, 180 Ringing, 183 Session Progress |
| 2xx | Succès | 200 OK, 202 Accepted |
| 3xx | Redirection | 301 Moved Permanently, 302 Moved Temporarily |
| 4xx | Erreur client | 401 Unauthorized, 403 Forbidden, 404 Not Found, 486 Busy Here |
| 5xx | Erreur serveur | 500 Server Internal Error, 503 Service Unavailable |
| 6xx | Échec global | 603 Decline, 604 Does Not Exist Anywhere |
Deux de ces codes gagnent leur place pendant l’établissement. Un 401 ou un 407 n’est pas un échec ; c’est une demande d’authentification, et l’expéditeur est censé réessayer avec des identifiants digest. Un 488 Not Acceptable Here signifie que les deux côtés ne partagent aucun codec : la façon polie qu’a un appel de dire que vous ne vous êtes jamais mis d’accord sur l’encodage de l’audio.
Adresses, enregistrement et les boîtiers entre les deux
Les adresses SIP ressemblent à des adresses e-mail : sip:alice@example.com, avec parfois un port ou un transport, comme dans sip:alice@example.com:5061;transport=tls. Un numéro de téléphone devient un URI SIP en lui attachant le domaine de l’opérateur, et c’est pourquoi sip:+14155550132@sip.example.com est une adresse complète qu’on peut composer.
Comme les appareils se déplacent et se trouvent derrière du NAT, un téléphone SIP annonce au réseau où il se trouve : il envoie un REGISTER à son registrar, qui enregistre « alice@example.com est actuellement à cette IP ». Quand un INVITE pour Alice arrive, un serveur proxy consulte cet enregistrement et transmet la requête là où Alice se trouve vraiment. Devant la plupart des déploiements réels se tient un session border controller (SBC), un videur pour le trafic SIP qui termine la signalisation, masque le réseau interne, applique la politique de sécurité et normalise les bizarreries des stacks SIP des différents éditeurs.
SIP, RTP et SDP
Trois protocoles se partagent le travail de chaque appel SIP :
| Protocole | Rôle |
|---|---|
| SIP | Signalisation : trouve l’appelé, négocie la session, la termine |
| SDP | Description : la charge utile dans les messages SIP qui liste codecs, IP et ports |
| RTP | Médias : transporte l’audio ou la vidéo réels, marqués de numéros de séquence et d’horodatages |
C’est pourquoi un appel peut sonner parfaitement et ne délivrer que du silence. La moitié SIP a fonctionné, donc les deux téléphones conviennent qu’un appel existe, mais la moitié RTP est cassée, en général par un pare-feu ou un NAT qui laisse passer la signalisation et jette les médias. Quand vous déboguez un appel sans audio, examinez le chemin des médias, pas la signalisation. C’est cette même séparation qui fait de la gigue (jitter) un problème RTP : les champs de numéro de séquence et d’horodatage présents sur chaque paquet RTP, définis par la RFC 3550, sont exactement ce qu’un récepteur mesure pour la calculer.
SIP, VoIP et trunk SIP
Ces trois termes sont souvent employés l’un pour l’autre, et ce n’est pas la même chose :
| Terme | Ce que c’est |
|---|---|
| VoIP | L’idée générale : la voix transportée sur des réseaux IP |
| SIP | Un protocole de signalisation utilisé pour établir les appels VoIP |
| Trunk SIP | Un service d’opérateur qui utilise SIP pour relier votre système téléphonique au réseau téléphonique public |
Si la VoIP est l’idée de téléphoner par internet, SIP est la grammaire que parlent les deux extrémités, et un trunk SIP est l’abonnement qui fait passer votre appel sur le réseau téléphonique public. Le guide du trunk SIP couvre le côté service : opérateurs, canaux et configuration.
Transports, ports et chiffrement
La signalisation SIP passe par UDP ou TCP sur le port 5060, ou par TLS sur le port 5061. UDP est le défaut traditionnel et évite le blocage en tête de file, mais les gros messages se fragmentent, donc TCP est courant pour tout ce qui a du volume. TLS chiffre la signalisation et authentifie l’extrémité distante, et c’est ce que les opérateurs attendent de tout usage en production.
SIP en clair ne chiffre rien : quiconque se trouve sur le chemin peut lire la signalisation, et les médias voyagent en RTP non chiffré. Le remède standard, c’est TLS pour la signalisation plus SRTP, défini par la RFC 3711, pour les médias. Les deux extrémités doivent être d’accord, car activer le chiffrement d’un seul côté est une façon fiable d’obtenir des appels qui se connectent sans transporter aucun audio.
Un avertissement qui a survécu à toutes les décennies de SIP : n’exposez pas de point de terminaison SIP ouvert. Des scanners balayent internet à la recherche du port 5060 dans les minutes qui suivent son apparition, en quête de trunks qui passeront des appels gratuitement. Authentifiez les expéditeurs avec des identifiants digest, autorisez explicitement les IP de signalisation de votre opérateur, ou les deux.
Où SIP rencontre un agent vocal
Si vous mettez un agent vocal IA sur le réseau téléphonique, SIP est le protocole qui travaille aux deux bouts de l’appel : l’opérateur livre les appels entrants à la plateforme d’agents sous forme d’INVITE SIP, et la plateforme renvoie les appels sortants et les transferts par le même chemin. Quelques détails du protocole cessent d’être des anecdotes dès que cette stack vous appartient :
- Les transferts sont des REFER. Quand l’agent passe un appelant à une personne, la plateforme envoie un SIP REFER demandant à l’opérateur de faire sonner une nouvelle destination. Un REFER simple est un transfert à froid ; le rendre à chaud, où la personne entend d’abord le contexte, est le travail de l’agent avant le départ du REFER.
- Les touches ont trois transports. Les chiffres DTMF peuvent voyager dans la bande en audio, hors bande en événements telephone-event de la RFC 4733 (le payload 101 de l’INVITE ci-dessus), ou dans des messages SIP INFO. Un désaccord entre ce que le téléphone envoie et ce que l’agent écoute est la raison pour laquelle les menus « tapez 1 » avalent des chiffres en silence.
- Les médias sont en 8 kHz. Les appels téléphoniques négocient du G.711, donc la reconnaissance vocale de l’agent voit de l’audio à bande étroite, que ça lui plaise ou non. Testez sur de l’audio téléphonique réel avant de régler quoi que ce soit d’autre ; le guide du G.711 couvre ce que le codec coupe.
- Les appels navigateur sont un autre monde. WebRTC a son propre modèle agnostique à la signalisation, un chiffrement obligatoire et des tampons de gigue adaptatifs. Le guide WebRTC ou WebSocket cartographie les différences pour les agents vocaux qui vivent dans un navigateur plutôt que sur le réseau téléphonique.
Sur Cartesia, les Managed Agents acceptent les appels de votre propre trunk SIP en TCP ou TLS, avec le chiffrement des médias SRTP réglé sur disabled, allowed ou required, et authentifient les appels entrants avec des identifiants digest ou une liste d’IP autorisées. Les transferts partent en SIP REFER vers des numéros de téléphone ou des URI SIP. L’intégration trunk SIP (Anglais) explique comment faire pointer un opérateur vers le point de terminaison SIP de Cartesia, et le guide du trunk SIP couvre la configuration en entier, champs d’API et tableau des échecs inclus.
Guides liés
- Trunk SIP : définition et usage avec l’IA vocale
- Codec G.711 : loi μ, loi A et audio téléphonique 8 kHz
- Qu’est-ce que le DTMF ? Tonalités et agents vocaux
- Qu’est-ce que la gigue (jitter) en VoIP ? Mesure et correction
- WebRTC ou WebSocket pour l’IA vocale en temps réel
- Transfert à chaud ou à froid : la différence