Guide d'Integration Twilio

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

Integrer un agent IA conversationnel avec Twilio vous permet de creer des interactions vocales fluides et humaines. Ce guide vous accompagnera dans le processus de configuration de votre environnement, de configuration de votre agent et d'implementation de l'integration en utilisant JavaScript.

Prerequis

Avant de commencer, assurez-vous d'avoir:

  • Un compte ElevenLabs
  • Un agent conversationnel ElevenLabs configure
  • Un compte Twilio avec un numero de telephone actif
  • Node.js 16+ installe
  • ngrok pour le developpement local

Configuration de l'Agent

Pour integrer avec Twilio, votre agent doit etre configure pour utiliser le format audio correct supporte par Twilio.

  1. Configurer la Sortie TTS

    • Naviguez vers les parametres de votre agent.
    • Allez dans la Section Voice.
    • Selectionnez "μ-law 8000 Hz" dans le menu deroulant.
  2. Definir le Format d'Entree

    • Naviguez vers les parametres de votre agent.
    • Allez dans la Section Advanced.
    • Selectionnez "μ-law 8000 Hz" pour le format d'entree.

Implementation

Initialiser le Projet

D'abord, configurez un nouveau projet Node.js:

mkdir conversational-ai-twilio
cd conversational-ai-twilio
npm init -y
npm pkg set type="module"

Installer les Dependances

Ensuite, installez les dependances requises pour le projet:

npm install fastify @fastify/websocket twilio dotenv

Configurer les Variables d'Environnement

Creez un fichier .env:

ELEVENLABS_AGENT_ID=your_agent_id
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_PHONE_NUMBER=your_phone_number

Creer le Serveur

// server.js
import Fastify from 'fastify';
import fastifyWebsocket from '@fastify/websocket';
import twilio from 'twilio';
import dotenv from 'dotenv';
 
dotenv.config();
 
const fastify = Fastify({ logger: true });
await fastify.register(fastifyWebsocket);
 
// Gestionnaire TwiML pour les appels entrants
fastify.all('/incoming-call', async (request, reply) => {
  const twimlResponse = `<?xml version="1.0" encoding="UTF-8"?>
    <Response>
      <Connect>
        <Stream url="wss://${request.headers.host}/media-stream" />
      </Connect>
    </Response>`;
 
  reply.type('text/xml').send(twimlResponse);
});
 
// Gestionnaire WebSocket pour le stream media
fastify.register(async (fastify) => {
  fastify.get('/media-stream', { websocket: true }, (connection, req) => {
    console.log('Client connecte');
 
    connection.socket.on('message', (message) => {
      const data = JSON.parse(message);
 
      if (data.event === 'media') {
        // Traiter les donnees audio entrantes
        const audioData = data.media.payload;
        // Envoyer a ElevenLabs pour traitement
      }
    });
 
    connection.socket.on('close', () => {
      console.log('Client deconnecte');
    });
  });
});
 
// Demarrer le serveur
const start = async () => {
  try {
    await fastify.listen({ port: 3000 });
    console.log('Serveur en cours d execution sur http://localhost:3000');
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};
 
start();

Executer le Developpement Local

  1. Demarrez le serveur:
node server.js
  1. Dans un nouveau terminal, demarrez ngrok:
ngrok http 3000
  1. Configurez votre numero Twilio pour pointer vers l'URL ngrok.

Tester l'Integration

Appelez votre numero Twilio et testez la conversation avec l'agent IA.

Conclusion

Vous avez reussi a integrer un agent IA conversationnel avec Twilio. Vous pouvez maintenant avoir des conversations vocales naturelles par telephone avec votre agent IA.


Reference: Documentation Twilio | Documentation ElevenLabs


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Introduction au Model Context Protocol (MCP).

Discutez de votre projet avec nous

Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.

Trouvons les meilleures solutions pour vos besoins.

Articles connexes