Téléphonie : SIP, LiveKit et G.711
Intégrer l’API Voice Agent à la téléphonie
L’API Voice Agent supporte nativement les protocoles téléphoniques, ce qui permet de créer des agents vocaux accessibles par téléphone. Vos clients peuvent appeler un numéro classique et converser avec votre agent Grok comme s’ils parlaient à un humain.
Protocoles supportés
L’API Voice Agent est compatible avec trois protocoles de connexion :
SIP (Session Initiation Protocol)
Le SIP est le standard de la téléphonie IP (VoIP). Il est utilisé par la quasi-totalité des opérateurs téléphoniques, des PBX d’entreprise (Asterisk, FreePBX, 3CX) et des services de téléphonie cloud (Twilio, Vonage, Telnyx).
Pour connecter un trunk SIP à l’API Voice Agent, vous devez :
- Configurer votre opérateur pour router les appels entrants vers votre serveur
- Recevoir l’audio au format G.711 (mu-law ou A-law)
- Ouvrir une connexion WebSocket vers l’API Voice Agent
- Relayer l’audio entre le trunk SIP et le WebSocket
# Architecture simplifiée
# Appel téléphonique → Trunk SIP → Votre serveur → WebSocket xAI
async def handle_sip_call(sip_audio_stream):
# Ouvrir la connexion vers l'API Voice Agent
ws = await websockets.connect(
"wss://api.x.ai/v1/realtime",
extra_headers={"Authorization": f"Bearer {API_KEY}"}
)
# Configurer pour G.711 mu-law (téléphonie US)
await ws.send(json.dumps({
"type": "session.update",
"session": {
"voice": "Rex",
"instructions": "Agent du service client.",
"audio": {
"input": {"format": {"type": "audio/pcmu", "rate": 8000}},
"output": {"format": {"type": "audio/pcmu", "rate": 8000}}
}
}
}))
# Relayer l'audio bidirectionnellement
async for chunk in sip_audio_stream:
audio_b64 = base64.b64encode(chunk).decode()
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": audio_b64
}))
WebSocket
Le protocole WebSocket natif est celui que vous avez utilisé dans les leçons précédentes. Il convient aux applications web, mobiles et à tout système capable d’établir une connexion WebSocket.
LiveKit
LiveKit est une plateforme open source de communication en temps réel (WebRTC). L’intégration avec LiveKit permet de bénéficier de fonctionnalités avancées :
- Gestion automatique de la qualité : adaptation au réseau en temps réel
- Salles multi-participants : l’agent vocal peut participer à une conférence
- Enregistrement : capture des conversations pour la conformité
- Infrastructure distribuée : serveurs LiveKit dans plusieurs régions
Codec G.711 natif
Le support natif du codec G.711 est crucial pour la téléphonie. Il évite la conversion de codec (transcodage) qui ajouterait de la latence et dégraderait la qualité audio.
G.711 mu-law (audio/pcmu)
Standard en Amérique du Nord. Utilisez ce format si votre opérateur ou PBX est situé aux États-Unis ou au Canada :
{
"audio": {
"input": {"format": {"type": "audio/pcmu", "rate": 8000}},
"output": {"format": {"type": "audio/pcmu", "rate": 8000}}
}
}
G.711 A-law (audio/pcma)
Standard en Europe et dans la plupart des pays hors Amérique du Nord. Pour un opérateur français ou européen :
{
"audio": {
"input": {"format": {"type": "audio/pcma", "rate": 8000}},
"output": {"format": {"type": "audio/pcma", "rate": 8000}}
}
}
Considérations pour la production téléphonique
Latence
La latence totale perçue par l’utilisateur est la somme de :
- Latence du réseau téléphonique (~50-100 ms)
- Latence du relais SIP → WebSocket (~10-20 ms)
- Latence de traitement par l’API (~200-500 ms)
- Latence de synthèse vocale (~100-200 ms)
Visez une latence totale inférieure à 800 ms pour une conversation naturelle.
VAD en environnement téléphonique
Le réseau téléphonique ajoute du bruit de fond spécifique. Ajustez le VAD en conséquence :
{
"turn_detection": {
"type": "server_vad",
"threshold": 0.9,
"silence_duration_ms": 600,
"prefix_padding_ms": 400
}
}
Un seuil élevé (0.9) réduit les faux positifs causés par le bruit de ligne.
Conformité et enregistrement
Pour les centres d’appel, vérifiez la conformité avec :
- RGPD : informer l’appelant que la conversation est traitée par une IA
- Enregistrement : si vous enregistrez les appels, informez l’appelant au début
- HIPAA : xAI propose un BAA (Business Associate Agreement) pour les données de santé
Points clés à retenir
- L’API Voice Agent supporte SIP, WebSocket natif et LiveKit
- Le codec G.711 natif (mu-law et A-law) évite le transcodage en téléphonie
- Utilisez G.711 mu-law pour l’Amérique du Nord, A-law pour l’Europe
- La latence totale doit rester sous 800 ms pour une conversation naturelle
- Ajustez le VAD avec un seuil élevé (0.9) pour les environnements téléphoniques bruyants