Trunking SIP Sinch
Connectez Sinch Elastic SIP Trunking à ElevenLabs Agents.
Avant de suivre ce guide, nous vous recommandons de lire le guide sur le trunking SIP d’ElevenLabs et le guide sur le trunking SIP de Sinch Voice.
Présentation
Ce guide explique comment connecter directement une application Sinch Voice à ElevenLabs Agents. L’intégration vous permet de conserver vos numéros et votre routage Sinch tandis qu’ElevenLabs gère l’expérience de l’agent d’IA vocale.
Fonctionnement du trunking SIP avec Sinch
Un trunk SIP Sinch est une connexion bidirectionnelle entre le réseau Sinch et la plateforme ElevenLabs :
- Appels entrants : Un DID attribué à votre application Sinch Voice reçoit un appel. Sinch envoie l’
INVITEà l’adresse d’origine ElevenLabs configurée comme point de terminaison statique dans les paramètres entrants du trunk. - Appels sortants : Les appels initiés par ElevenLabs sont envoyés à l’adresse SIP du nom de domaine complet (FQDN) de votre application, que Sinch achemine vers le PSTN.
- Authentification : Sinch exige une authentification sortante (identifiants SIP) et prend en charge l’authentification ACL (autorisation d’adresses IP) pour le trafic arrivant sur le trunk.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un compte ElevenLabs actif avec un agent configuré
- Un compte Sinch avec une application vocale créée dans le Dashboard Sinch Build
- Au moins un numéro de téléphone (DID) acheté dans Sinch et attribué à l’application
Configuration des appels entrants (de Sinch vers ElevenLabs)
Configurez le renvoi d’appels de votre application vers l’adresse SIP ElevenLabs.
Connectez-vous au Dashboard Sinch Build
Connectez-vous à votre compte Sinch et accédez à l’application que vous souhaitez connecter.
Ajoutez un point de terminaison statique pour ElevenLabs
Dans les paramètres de renvoi d’appels de l’application, définissez le gestionnaire d’événements d’appel sur SIP Forwarding et ajoutez un URI SIP statique ciblant l’adresse d’origine ElevenLabs :
- DID : le numéro de téléphone Sinch que vous souhaitez composer
- Adresse :
sip.rtc.elevenlabs.io - Port et transport :
5061/TLS,5060/TCP
Par exemple : sip:15551234567@sip.rtc.elevenlabs.io:5061;transport=tls.
Si votre Workspace ElevenLabs utilise une région isolée de résidence des données ou l’infrastructure SIP à IP statique, utilisez le point de terminaison correspondant au lieu de sip.rtc.elevenlabs.io. Consultez la résidence des données pour connaître les régions disponibles.
Configuration des appels sortants (d’ElevenLabs vers Sinch)
Pour les appels sortants, ElevenLabs envoie un INVITE SIP à votre application Sinch et s’y authentifie.
Notez le FQDN de votre région Sinch
Récupérez le FQDN SIP de votre région Sinch. Il s’agit de l’adresse de terminaison à saisir dans ElevenLabs. Saisissez uniquement le nom d’hôte, sans préfixe sip:.
Finaliser la configuration dans ElevenLabs
Importez le numéro de téléphone du trunk SIP
Suivez le guide sur le trunking SIP pour importer votre numéro Sinch avec les paramètres suivants :
Conservez des paramètres de transport et de chiffrement cohérents des deux côtés.
Attribuez un agent
Attribuez un agent au numéro dans le Dashboard Phone Numbers. Les appels entrants vers le DID seront alors dirigés vers cet agent.
Testez un appel sortant
Effectuez un appel depuis l’agent via votre application Sinch, soit depuis le menu des numéros de téléphone, soit via l’API d’appels sortants :
Consultez Appel sortant via un trunk SIP pour le schéma complet de la requête, et Appels par lots pour lancer des campagnes sortantes.
Configuration des transferts
Les agents transfèrent les appels à un humain à l’aide de l’outil système transfer_to_number.
Seuls les transferts par conférence fonctionnent sur un trunk Sinch. SIP REFER et les transferts aveugles échouent.
Transferts par conférence
ElevenLabs compose le numéro de destination via votre trunk Sinch, réunit les deux parties dans une conférence, puis déconnecte l’agent.
Utiliser plutôt l’API Sinch Voice v2
La configuration ci-dessus confie à ElevenLabs l’ensemble du chemin vocal. Si vous avez besoin que Sinch contrôle les appels, l’API Sinch Voice v2 peut répondre à un appel, appliquer sa propre logique et relier une seconde branche à votre agent ElevenLabs via SVAML, sans serveur relais. Ce modèle est plus adapté si vous souhaitez ajouter des fonctionnalités Sinch telles que la détection de répondeur, l’enregistrement des appels ou le masquage des numéros avant que l’agent ne rejoigne l’appel, ou lorsque l’agent constitue une étape dans un flux d’appels Sinch plus large.
Consultez le tutoriel Sinch Intégrer un agent IA ElevenLabs via SIP pour d’autres scénarios courants.
Résolution des problèmes
Les appels entrants ne se connectent pas
- Vérifiez que le point de terminaison entrant statique du trunk cible
sip.rtc.elevenlabs.ioavec le port et le transport que vous souhaitez utiliser. - Vérifiez que le DID est attribué à ce trunk.
- Vérifiez que le numéro dans ElevenLabs correspond à celui envoyé par Sinch, y compris le
+initial. - Attendez au moins 60 secondes après avoir modifié les points de terminaison ou les ACL, puis réessayez.
- Vérifiez que votre pare-feu autorise la signalisation SIP sur le port 5060 pour TCP ou 5061 pour TLS, et qu’il ne bloque pas RTP.
Les appels sortants reçoivent des réponses 403 ou 407
- Vérifiez que le nom d’utilisateur et le mot de passe du trunk SIP dans ElevenLabs correspondent aux identifiants du trunk Sinch.
- Vérifiez que le champ Adresse contient uniquement le FQDN du trunk, sans préfixe
sip:. - Vérifiez que les autorisations de pays sont activées sur le trunk pour le pays de destination.
- Vérifiez que l’identifiant d’appelant présenté est un numéro accepté par Sinch sur ce trunk.
- Si vous utilisez l’authentification ACL, gardez à l’esprit que la signalisation ElevenLabs provient d’un pool d’adresses distribué. Passez à l’authentification Digest ou utilisez l’infrastructure à IP statique.
Audio unidirectionnel ou absence d'audio
- Vérifiez que votre pare-feu autorise RTP via UDP dans les deux sens et n’est pas limité à des adresses statiques spécifiques.
- Vérifiez que le chiffrement des médias correspond : un trunk Sinch TLS attend SRTP, définissez donc le chiffrement des médias sur
AllowedouRequireddans ElevenLabs. - Testez avec TCP et le chiffrement des médias désactivé afin d’isoler si le problème est lié à TLS ou à SRTP.
- Vérifiez que G711 est proposé sur le trunk. ElevenLabs prend en charge G711 et G722.
Les appels ne se terminent pas après le raccrochage de l'agent
Une réponse 481 à un BYE signifie généralement que la requête a atteint un serveur SIP ne disposant pas de l’état de dialogue de cet appel. Envoyez les requêtes au sein du dialogue vers l’URI Contact renvoyé dans le 200 OK, plutôt que vers l’adresse partagée sip.rtc.elevenlabs.io. Si BYE ou REFER via TLS échoue à la validation du certificat, ajoutez le FQDN pour lequel le certificat de votre trunk est émis au champ Domaines distants des paramètres du numéro de téléphone.
FAQ
Quel transport dois-je utiliser ?
Utilisez TLS sur le port 5061 pour la production, avec des médias SRTP sur le trunk Sinch. TCP sur le port 5060 constitue un bon point de départ pour la validation. UDP est expérimental sur ElevenLabs et ne doit pas transporter de trafic de production.
Quels codecs audio sont compatibles ?
ElevenLabs prend en charge G711 (8 kHz) et G722 (16 kHz). Conservez G711 proposé sur le trunk Sinch comme dénominateur commun.
Comment transmettre le contexte de l'appelant dans la conversation ?
Les en-têtes personnalisés X- de l’INVITE entrant sont exposés sous forme de variables dynamiques, X-Contact-ID devenant par exemple {{sip_contact_id}}. X-Call-ID et X-Caller-ID correspondent à system__call_sid et system__caller_id. Consultez Trunking SIP pour connaître l’ensemble des règles de normalisation.