L'audio unidirectionnel sur les appels VoIP est presque toujours un problème de chemin média : NAT, mauvaise adresse IP dans le SDP, pare-feu qui bloque les ports RTP ou codecs incompatibles. Les appels qui se coupent à un moment fixe, par exemple vers 32 secondes ou après 15 ou 30 minutes, relèvent en général de la signalisation : un ACK manquant ou un rafraîchissement de session raté.
Comment un appel transporte l'audio
Le SIP établit l'appel ; l'audio lui-même circule séparément sous forme de paquets RTP. Chaque côté annonce dans le corps SDP de son INVITE ou de son 200 OK l'adresse IP, le port et les codecs sur lesquels il veut recevoir l'audio. Si l'un des côtés annonce une adresse que l'autre ne peut pas joindre, ou si un pare-feu bloque les paquets, la signalisation fonctionne mais pas l'audio. Les bases d'une connexion SIP avec un carrier sont expliquées dans comment fonctionne une interconnexion SIP.
Audio unidirectionnel ou absent : causes et vérifications
| Cause | Ce que vous constatez | Solution |
|---|---|---|
| IP privée dans le SDP | Le SDP indique une adresse en 10.x, 172.16-31.x ou 192.168.x | Configurez l'IP externe sur votre switch ou SBC, ou activez la gestion du NAT |
| Pare-feu qui bloque le RTP | Les paquets partent mais n'arrivent jamais, ou l'inverse | Ouvrez la plage de ports RTP aux IP média du carrier, pas seulement aux IP de signalisation |
| SIP ALG sur un routeur | SDP réécrit de façon imprévisible | Désactivez le SIP ALG sur les routeurs et pare-feu du chemin |
| IP média non autorisées | Le carrier envoie l'audio depuis une IP inattendue | Demandez au carrier la liste complète de ses IP média |
| Codecs incompatibles | L'appel s'établit, silence ou bruit dans les deux sens | Alignez les listes de codecs ; voir G.711 ou G.729 |
| Gestion des re-INVITE | L'audio s'arrête après une mise en attente, un transfert ou un changement en cours d'appel | Vérifiez comment les deux côtés gèrent les re-INVITE et les changements de média |
| Erreurs DTMF ou de transcodage | L'audio se coupe après l'appui sur une touche ou sur certains appels | Vérifiez le mode DTMF (RFC 2833/4733 ou SIP INFO) et les réglages de transcodage |
Le test le plus rapide : capturez un appel avec un outil de capture de paquets et vérifiez si le RTP circule dans les deux sens, vers l'IP et le port annoncés dans le SDP. Si le RTP arrive à votre périphérie mais pas au téléphone, le problème est dans votre réseau ; s'il n'arrive jamais, il est côté carrier ou dans un pare-feu entre vous.
Appels coupés à un moment fixe
- Vers 30 à 32 secondes : le côté qui a envoyé le 200 OK n'a pas reçu l'ACK et abandonne après son timer de retransmission (en SIP standard, 64 fois le timer de base de 500 ms, soit 32 secondes). En général un problème de NAT ou de routage sur l'ACK, ou un en-tête Contact incorrect.
- À 15, 30 ou 60 minutes, ou une autre durée ronde : les session timers. Un côté attend un rafraîchissement de session (re-INVITE ou UPDATE) qui n'arrive jamais ou est rejeté. Alignez les réglages des session timers, ou vérifiez si le carrier impose une durée d'appel maximale.
- Après un silence d'une durée fixe : timeout RTP. Un équipement met fin à l'appel quand il ne reçoit plus d'audio pendant un temps donné, ce qui arrive souvent quand l'audio est déjà unidirectionnel.
Appels coupés au hasard
Les coupures aléatoires viennent en général de l'instabilité du réseau (perte de paquets sur le lien, SBC défaillant), du réseau de destination, ou d'une chaîne de carriers où un maillon a des problèmes de capacité. Vérifiez si les coupures se concentrent sur une route ou une destination, et qui a envoyé le BYE dans vos CDR. Une part croissante d'appels courts est souvent le premier signe statistique, voir les appels de courte durée et MOS, gigue et perte de paquets.
Ce qu'il faut envoyer au carrier
Un ticket se résout plus vite avec des preuves : heure de l'appel en UTC, numéro appelé et appelant, Call-ID, une trace SIP (pcap) montrant le problème, et le sens dans lequel l'audio a été perdu. Si une seule route présente le problème avec la même configuration, le problème vient probablement de cette route ; ajoutez-le à vos notes issues des tests de route.
VoIPMatcher gère avec le fournisseur chaque route qu'il trouve : les problèmes techniques sont traités en un seul endroit. Pour obtenir de la terminaison VoIP vers une destination, demandez une route VoIP.
Questions fréquentes
Faut-il désactiver le SIP ALG ?
Dans la plupart des cas, oui. Le SIP ALG des routeurs et pare-feu tente de réécrire le SIP et le SDP pour le NAT, mais le fait souvent mal, ce qui provoque de l'audio unidirectionnel, des échecs d'enregistrement et des appels coupés. Désactivez-le sur chaque équipement du chemin, gérez plutôt le NAT sur votre switch ou votre session border controller, puis refaites un test avec une capture de paquets.
Pourquoi l'audio VoIP ne passe-t-il que dans un sens, seulement parfois ?
L'audio unidirectionnel intermittent vient en général de correspondances NAT qui expirent, d'un carrier qui envoie le média depuis plusieurs IP pas toutes autorisées dans votre pare-feu, ou de re-INVITE après une mise en attente ou un transfert qui changent l'adresse média. Comparez les captures de paquets d'un bon appel et d'un mauvais pour voir quelle adresse ou quel port a changé.
Quels ports RTP faut-il ouvrir pour la VoIP ?
Cela dépend des équipements. Beaucoup de plateformes utilisent une plage UDP quelque part entre 10000 et 20000, mais vérifiez la configuration de votre switch ou SBC et la documentation du carrier. N'ouvrez cette plage qu'aux IP média du carrier, pas à tout Internet, et rappelez-vous que les IP média diffèrent souvent des IP de signalisation.
Un pare-feu peut-il causer de l'audio unidirectionnel sur les appels VoIP ?
Oui, n'importe quel pare-feu, quand l'inspection SIP ou le SIP ALG est activé ou quand la plage de ports RTP est fermée aux IP média du carrier. Consultez la documentation du fabricant pour désactiver le SIP ALG ou le SIP helper, puis autorisez la plage RTP depuis les adresses média du carrier et refaites un test avec une capture de paquets des deux côtés.
L'audio unidirectionnel est-il la faute du carrier ?
En général, non. La plupart des cas d'audio unidirectionnel viennent des réglages NAT, pare-feu ou SDP à l'une des extrémités de l'appel. Une capture de paquets indique où chercher : si le RTP n'arrive jamais à votre périphérie, la cause est côté carrier ou dans un pare-feu intermédiaire ; s'il arrive mais n'atteint pas le téléphone, elle est dans votre réseau.
Besoin d'une route ?
Indiquez la destination, le type de route et le tarif cible. Nous vous répondons avec ce que nous pouvons fournir.