Cette intégration vocale utilise un connecteur Five9 Classic et Five9 MediaStream (anciennement Voicestream) pour fournir des suggestions Agent Assist à vos agents dans Five9 Agent Desktop Plus.

Avant de commencer
Pour intégrer les modules d'interface utilisateur Agent Assist à Five9, vous devez avoir accès aux ressources suivantes.
Dépendances système requises
- Google Cloud CLI
- Installez Google Cloud CLI en suivant les instructions.
- Authentifiez-vous à l'aide de
gcloud auth login.
- Déploiement du backend d'intégration Agent Assist
- Suivez les instructions pour configurer l'intégration.
- En plus de la configuration normale, et avant d'exécuter le script de déploiement, configurez les variables d'environnement suivantes dans
aa-integration-backend/.env:AUTH_OPTION: définissez cette valeur surFive9.FIVE9_TRUST_TOKEN: générez-la en exécutant la commande suivante :cd platforms/five9cp .env.sample .envmake generate-trust-token
- Profil de conversation Agent Assist : pour en savoir plus, consultez Créer un profil de conversation.
- Accès administrateur Five9 : il est nécessaire pour configurer l'abonnement Mediastream et le connecteur Classic.
- Make : utilisé pour exécuter des scripts de déploiement.
Dépendances système facultatives
- Podman (facultatif) : pour la création de conteneurs et les tests locaux.
- grpcurl (facultatif) : pour vérifier l'état du flux gRPC.
Présentation de l'architecture d'intégration
La solution utilise une architecture de service divisée pour gérer les exigences distinctes du protocole de Five9 : streaming audio bidirectionnel en temps réel (gRPC) et gestion asynchrone des événements (HTTP). Ces deux services Cloud Run font le lien entre Five9 MediaStream et Google Cloud Agent Assist, ce qui permet la transcription en temps réel et les suggestions d'IA générative :
- mediastream-grpc-service : gère le flux audio gRPC bidirectionnel de Five9 MediaStream.
- mediastream-http-service : présente les modules d'interface utilisateur Agent Assist et gère les événements CTI et MediaStream.
Flux de données de haut niveau
- Lancement de l'appel : Five9 déclenche un événement CTI pour le service HTTP, ce qui lance la session.
- Streaming audio : Five9 ouvre une connexion gRPC sécurisée au service gRPC pour l'échange audio en temps réel.
- Traitement : le service gRPC transfère l'audio à Google Cloud Agent Assist.
- Suggestions : Agent Assist renvoie des suggestions de transcription et de coaching d'agent via Pub/Sub, qui sont transmises aux modules d'interface utilisateur Agent Assist via une connexion Socket.IO (WebSockets) avec le service Cloud Run du connecteur d'interface utilisateur. Ces suggestions sont affichées dans un iframe de connecteur Five9 Classic dans Five9 Agent Desktop Plus pendant les appels.
Service gRPC (mediastream-grpc)
- Rôle : gère le streaming audio bidirectionnel en temps réel et hautes performances.
- Implémentation : serveur gRPC Python utilisant
grpcio. - Simultanéité : utilise
grpc.aio(AsyncIO) pour des E/S non bloquantes hautes performances. - Protocole : définit le contrat de service à l'aide de
mediastream-grpc/proto/voice.proto. - Module principal :
VoiceServicerl'implémentation dansservices/get_suggestions.pyorchestre la gestion du flux audio et les appels d'API Agent Assist.
Service HTTP (mediastream-http)
- Rôle : gère les événements du plan de contrôle, la validation des jetons et la diffusion des éléments d'interface utilisateur statiques.
- Implémentation : serveur Web Flask.
- Points de terminaison:
GET /: point de terminaison de vérification de l'état du serveur.GET /agent-assist-ui-modules: diffuse les modules d'interface utilisateur Agent Assist pour le connecteur Five9 Classic.GET /cti-call-event-destination/: valide leFIVE9_TRUST_TOKEN(renvoie le hachage SHA256).POST /cti-call-event-destination/: reçoit les événements et les métadonnées CTI des appels.POST /mediastream-event-destination/subscriptions/<id>: reçoit les erreurs asynchrones ou les mises à jour d'état du flux multimédia.
Sécurité
- Jeton de confiance : l'intégration implémente un modèle de sécurité à clé secrète partagée. Un
FIVE9_TRUST_TOKENest généré et configuré à la fois dans Five9 et dans le service Cloud Run. Le service HTTP fournit un point de terminaison de validation (GET /cti-call-event-destination/) qui renvoie le hachage SHA256 du jeton configuré à des fins de vérification. - Ce jeton de confiance est également réutilisé comme clé secrète partagée pour authentifier les requêtes du service HTTP MediaStream auprès du connecteur d'interface utilisateur.
Guide de déploiement
Les sections suivantes décrivent comment déployer cette intégration Agent Assist Five9 et la tester dans Five9 Agent Desktop Plus.
Configurer les variables d'environnement
- Tout d'abord, exécutez
cd aa-integration-backend/platforms/five9pour changer de répertoire. Vérifiez que vous disposez d'un fichier
.envque vous avez copié à partir de.env.sampledans la section Dépendances système requises. La dernière ligne doit contenir leFIVE9_TRUST_TOKENque vous avez généré à ce moment-là.Variables d'environnement : remplissez votre fichier
.envavec les informations suivantes.Variable Description PROJECT_IDID de votre Google Cloud projet REGIONRégion dans laquelle vos services Cloud Run seront déployés. CONVERSATION_PROFILE_NAMEID de ressource du profil de conversation Agent Assist. FEATURESFonctionnalités à activer pour Agent Assist. Consultez la documentation Propriétés du conteneur de modules d'interface utilisateur V2. FIVE9_API_KEYDéfinissez cette valeur sur votre clé API Five9 que vous avez obtenue lors de la configuration de l'abonnement MediaStream. FIVE9_TRUST_TOKENClé secrète partagée que vous avez générée dans Avant de commencer, ce qui permet au mediastream-http-servicede s'authentifier auprès du service Cloud Runui-connector.
Déployer sur Google Cloud Run
Déployez les services gRPC et HTTP sur Cloud Run à l'aide de l'automatisation fournie :
make deploy
Ce script permet de :
- Créer les images de conteneur.
- Les transférer vers Google Container Registry (GCR) ou Artifact Registry.
- Déployer deux services Cloud Run : un pour gRPC (Voice) et un pour HTTP (Events).
- Afficher les URL des services une fois l'opération terminée.
Configuration de Five9
Après le déploiement, configurez Five9 pour envoyer des flux à votre service. Pour obtenir des instructions détaillées, consultez le Guide technique de Five9 MediaStream.
Configuration initiale de Five9
Procédez comme suit pour configurer votre console d'administration Five9 pour l'intégration Agent Assist.
- Créez une compétence, par exemple Intégration Agent Assist.
- Attribuez des utilisateurs à la compétence.
- Configurez un connecteur Five9 Classic pour votre campagne, en intégrant l'URL du service Cloud Run MediaStream que vous avez déployée lors d'une étape précédente :
- URL:
{mediastream-http-service-url}/agent-assist-ui-modules/ - Méthode :
GET - Paramètres :
call_id - Mode d'exécution :
In Browser- Application de l'agent :
Use embedded tab for Web Agent - Services Web CTI:
Current browser window
- Application de l'agent :
- Déclencheur (onglet suivant) :
On Call Accepted
- URL:
- Créez un script SVI pour définir le comportement lors de la réception d’appels via votre numéro DNIS Five9.
- Créez une campagne entrante.
- Associez le script SVI à la campagne.
- Vous pouvez également créer une campagne sortante pour activer Agent Assist pour les appels sortants. Cela implique les éléments suivants :
- Associez une compétence à la campagne sortante.
- Créez une copie du connecteur Classic et associez-la à la campagne sortante. Modifiez le déclencheur de la copie du connecteur Classic sur On Contact Selected.
- Démarrez la campagne. Pour tester, passez un appel sortant dans Agent Desktop Plus, en sélectionnant la campagne sortante dans le menu déroulant.

Créer un abonnement MediaStream
- Nom de l'abonnement : Agent Assist Integration Media Stream
- Type de streaming : streaming vocal
- Destination du streaming : Other (Self-Service) (Autre (libre-service))
- Protocole de streaming : gRPC
- Destination principale du streaming:
<five9-mediastream-grpc-deployment-url-without-protocol>:443- Par exemple :
five9-mediastream-grpc-123412341234.us-central1.run.app:443
- Destination de l'événement d'appel CTI:
https://<five9-mediastream-http-deployment-url>/cti-call-event-destination/- Par exemple :
https://five9-mediastream-http-123412341234-uc.a.run.app/cti-call-event-destination/
- Destination de l'événement MediaStream:
https://<five9-mediastream-http-deployment-url>/mediastream-event-destination/- Par exemple :
https://five9-mediastream-http-123412341234-uc.a.run.app/mediastream-event-destination/
- Jeton de confiance : Le
FIVE9_TRUST_TOKENque vous avez généré lors d'une étape précédente. - Clé API : ce champ sera généré après l'enregistrement de votre abonnement MediaStream. Copiez le
FIVE9_API_KEYque vous recevez dansplatforms/five9/.env. Vous en aurez besoin à l'étape suivante. - Filtre de streaming:
- Filtre personnalisé : coché
- Type de filtre : Campaigns (Campagnes)
- Search added campaigns (Rechercher les campagnes ajoutées) : recherchez votre campagne et ajoutez-la.
Redéployer sur Google Cloud Run
- Important : Après avoir créé votre abonnement MediaStream, vous devez ajouter le
FIVE9_API_KEYque vous avez reçu à votre fichierplatforms/five9/.env, puis redéployer en exécutantmake deploy.
Validation du déploiement
Vérifiez que les services que vous avez déployés sont accessibles sur Cloud Run :
make test-http-reachable
make test-grpc-reachable
Simulez un appel en diffusant un fichier .wav vers le mediastream-grpc-service :
make test-grpc-stream
Vous êtes maintenant prêt à tester la transcription et les suggestions Agent Assist lorsque vous recevez des appels dans Five9 Agent Desktop Plus.

Test local (facultatif)
Pour le dépannage ou les tests sans déploiement, vous pouvez exécuter les services localement à l'aide de Docker/Podman. Arrêtez les conteneurs, créez-les et exécutez-les localement avec Podman Compose.
make all
Exécuter tous les tests (état, unité), à l'exception du flux
make test
Simuler un appel en diffusant un fichier .wav
make test-grpc-stream LOCAL=true