Intégration vocale d'Agent Assist à Five9

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.

Architecture de l'intégration Agent Assist Five9

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 sur Five9.
      • FIVE9_TRUST_TOKEN: générez-la en exécutant la commande suivante :
        • cd platforms/five9
        • cp .env.sample .env
        • make 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

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

  1. Lancement de l'appel : Five9 déclenche un événement CTI pour le service HTTP, ce qui lance la session.
  2. Streaming audio : Five9 ouvre une connexion gRPC sécurisée au service gRPC pour l'échange audio en temps réel.
  3. Traitement : le service gRPC transfère l'audio à Google Cloud Agent Assist.
  4. 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 : VoiceServicer l'implémentation dans services/get_suggestions.py orchestre 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 le FIVE9_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_TOKEN est 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

  1. Tout d'abord, exécutez cd aa-integration-backend/platforms/five9 pour changer de répertoire.
  2. Vérifiez que vous disposez d'un fichier .env que vous avez copié à partir de .env.sample dans la section Dépendances système requises. La dernière ligne doit contenir le FIVE9_TRUST_TOKEN que vous avez généré à ce moment-là.

  3. Variables d'environnement : remplissez votre fichier .env avec les informations suivantes.

    Variable Description
    PROJECT_ID ID de votre Google Cloud projet
    REGION Région dans laquelle vos services Cloud Run seront déployés.
    CONVERSATION_PROFILE_NAME ID de ressource du profil de conversation Agent Assist.
    FEATURES Fonctionnalités à activer pour Agent Assist. Consultez la documentation Propriétés du conteneur de modules d'interface utilisateur V2.
    FIVE9_API_KEY Définissez cette valeur sur votre clé API Five9 que vous avez obtenue lors de la configuration de l'abonnement MediaStream.
    FIVE9_TRUST_TOKEN Clé secrète partagée que vous avez générée dans Avant de commencer, ce qui permet au mediastream-http-service de s'authentifier auprès du service Cloud Run ui-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 :

  1. Créer les images de conteneur.
  2. Les transférer vers Google Container Registry (GCR) ou Artifact Registry.
  3. Déployer deux services Cloud Run : un pour gRPC (Voice) et un pour HTTP (Events).
  4. 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.

  1. Créez une compétence, par exemple Intégration Agent Assist.
  2. Attribuez des utilisateurs à la compétence.
  3. 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
    • Déclencheur (onglet suivant) : On Call Accepted
  4. Créez un script SVI pour définir le comportement lors de la réception d’appels via votre numéro DNIS Five9.
  5. Créez une campagne entrante.
  6. Associez le script SVI à la campagne.
  7. 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.

Exemple de configuration pour le connecteur classique afin de prendre en charge les modules d&#39;UI dans Agent Desktop Plus

Créer un abonnement MediaStream

  1. Nom de l'abonnement : Agent Assist Integration Media Stream
  2. 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_TOKEN que 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_KEY que vous recevez dans platforms/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_KEY que vous avez reçu à votre fichier platforms/five9/.env, puis redéployer en exécutant make 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.

Exemple de test de bout en bout réussi de l&#39;intégration d&#39;Agent Assist

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