Déploiement de Voice Gateway sur Docker
Ces instructions se réfèrent à la configuration d'IBM® Voice Gateway sur votre propre moteur Docker lors d'une installation sur site. Pour les déploiements en cloud, voir Déploiement de Voice Gateway sur Kubernetes dans IBM Cloud Kubernetes Service.
Avant de commencer
-
Installez Docker sur l'hôte sur lequel vous prévoyez d'exécuter la passerelle. Le moteur Docker Engine fournit une exécution simple pour les conteneurs qui composent la passerelle voix, SIP Orchestrator et Media Relay. Docker Community Edition et Enterprise Edition version 1.13 ou ultérieures sont prises en charge.
Systèmes Windows : Notez que Docker for Windows requiert la version Windows 10 Pro 64 bits. Dans les versions antérieures de Windows, vous devez installer Docker Machine dans le cadre de Docker Toolbox. Le déploiement sur Docker Machine est légèrement différent, comme indiqué dans les étapes de déploiement.
-
Clonez ou téléchargez le référentiel GitHub sample.voice.gateway, qui contient des modèles de dialogues Watson Assistant, des fichiers de configuration et d'autres éléments pour vous aider à la mise en route.
-
Sollicitez un IBMid et un compte IBM Cloud, puis créez les services Watson suivants :
- Speech to Text
- Text to Speech (libre-service uniquement)
- Watson Assistant (libre-service uniquement)
Prenez note des données d'identification pour chaque service que vous avez créé. Vous devrez spécifier les données d'identification dans la configuration de Voice Gateway.
Important : Pour Watson Assistant, vous devrez ajouter un espace de travail avec un dialogue. Pour commencer rapidement, importez le fichier conversation/sample-conversation-en.json depuis votre référentiel GitHub sample.voice.gateway cloné. Pour plus de détails sur l'importation des fichiers JSON, voir Creating workspaces dans la documentation de Watson Assistant. Si vous créez votre propre dialogue au lieu d'utiliser le modèle, assurez-vous que votre dialogue inclut un noeud avec la condition
conversation_startet un noeud avec une réponse par défaut. -
Si vous prévoyez de déployer Voice Gateway derrière un pare-feu et que vous voulez vous connecter à cette passerelle via une liaison SIP ou un client SIP situé hors de votre pare-feu, vérifiez que tous les ports requis sont ouverts. Pour plus d'informations, voir Paramètres de port pour les pare-feux.
Déploiement de Voice Gateway
-
Docker Machine uniquement : Pour pouvoir vous connecter à Docker, exécutez cette commande depuis la ligne de commande afin de définir l'interpréteur de commandes pour qu'il pointe sur le moteur Docker Engine :
Windows :
@FOR /f "tokens=*" %i IN ('docker-machine env default --shell cmd') DO @%iUNIX et Mac OS X :
eval "$(docker-machine env default)" -
Extrayez les images Docker les plus récentes de SIP Orchestrator (
voice-gateway-so) et Media Relay (voice-gateway-mr) :docker pull ibmcom/voice-gateway-so:latest docker pull ibmcom/voice-gateway-mr:latest -
Accédez au répertoire dans lequel vous avez cloné le référentiel sample.voice.gateway sur votre machine, puis ouvrez le répertoire
docker, qui contient les exemples de fichier de configuration suivants :docker-compose-self-service.yml-
docker-compose-agent-assist.ymlCes fichiers exemple sont préconfigurés avec la configuration minimale pour chaque implémentation et pointent sur les images les plus récentes de la passerelle voix. Vous devrez modifier le fichier pour votre type d'implémentation afin d'inclure les données d'identification du service Watson. Pour les assistants d'agent, configurez également les événements de génération de rapport de transcription.
-
Copiez le fichier associé à votre type d'implémentation dans un nouveau fichier intitulé
docker-compose.yml. Conservez le fichier dans le même répertoire. -
Dans le nouveau fichier
docker-compose.yml, renseignez les variables d'environnement, comme les données d'identification de vos services Watson.... # Creds for IBM Cloud STT Example #If you have a username and password specified in your service use - WATSON_STT_USERNAME=9h7f54cb-5epb-80d6-45c3-da41d2bf7a71 - WATSON_STT_PASSWORD=asxNzDLpIJ6F - WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api #Otherwise if you have an apikey associated with your service use - WATSON_STT_APIKEY=MssmPWlXKeXkOeeZ1o93va5kSAzlqMSligZkso_FSopY - WATSON_STT_TOKEN_SERVICE_PROVIDER_URL=https://iam.cloud.ibm.com/identity/token - WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api ...Pour la liste complète des variables, voir Variables d'environnement de configuration.
Astuce : Pour trouver l'ID de l'espace de travail Watson Assistant, allez dans la vue Espaces de travail de l'outil Watson Assistant. Sur la compétence à intégrer, cliquez sur l'icône Actions (⋮) et sélectionnez la commande d'affichage des détails.
Remarque : Pour le paramètre de configuration
WATSON_CONVERSATION_URLdans le fichierdocker-compose.yml, utilisez uniquement la portion de l'URI jusqu'au niveauapiinclus. Par exemple,- WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/apiImportant : Si vous effectuez le déploiement sur un cloud public, assurez-vous de définir les variables de liste blanche pour éviter les attaques par refus de service et autres sessions indésirables en provenance de sources extérieures, qui pourraient occasionner des frais de service Watson inutiles et affecter les performances de Voice Gateway. Par défaut, ces variables sont mises en commentaire dans les fichiers Compose.
- WHITELIST_TO_URI=2345556789Pour plus d'informations, voir Liste blanche des appelants et appelés
-
Dans le répertoire dans lequel vous avez modifié le fichier
docker-compose.yml, créez un fichier.envet définissez la variableEXTERNAL_IP. Ces commandes supposent que vous utilisezvipour l'édition, mais vous pouvez utiliser l'éditeur de votre choix.Dans la plupart des installations Docker, l'adresse IP que vous définissez correspond à l'IP de votre système local. Dans Docker Machine, qui exécute les conteneurs dans une machine virtuelle, vous pouvez déterminer l'adresse IP de la machine virtuelle en exécutant la commande
docker-machine ip.-
Entez les commandes suivantes pour créer le fichier
.envet ouvrez-le afin de l'éditer.touch .env vi .env -
Entrez
ipour passer au mode édition. En haut du fichier.env, ajoutez la ligne suivante :EXTERNAL_IP=<IP address of local system or Docker Machine VM> -
Appuyez sur la touche Echap pour sortir du mode édition et entrez
:wqpour sortir de l'éditeur.
-
-
Créez et démarrez les conteneurs en exécutant la commande suivante :
docker-compose upAstuces :
- Si la commande
docker-composeest introuvable, vous devez installer Docker Compose. - Si l'erreur
grpc: the connection is unavailables'affiche lorsque vous démarrez les conteneurs, redémarrez le démon Docker et exécutez à nouveau la commande. - Si l'erreur suivante s'affiche au démarrage, il est probable qu'une autre application écoute sur le port 5060. Arrêtez toute application en conflit et relancez la commande.
Bind for 0.0.0.0:5060 failed: port is already allocated
- Si la commande
Que faire ensuite ?
Après avoir déployé Voice Gateway dans Docker Engine, testez votre déploiement comme décrit à la section Initiation à Voice Gateway.
Vous pouvez continuer de configurer votre déploiement Voice Gateway en éditant le fichier docker-compose.yml pour ajouter ou modifier des variables de configuration et en redéployant ensuite les conteneurs. Vous
pouvez utiliser les paramètres de configuration optimale qui sont inclus dans la version la plus récente en définissant la variable d'environnement USE_OPTIMAL_CONFIGURATION. Voir Utilisation des paramètres de configuration optimale.
Protection des informations sensibles : La mise en cache de Text to Speech et la collecte d'enregistrements audio sont désactivées par défaut. Si vous activez ces fonctions, prenez les mesures appropriées pour protéger et réduire les données sensibles lorsque vous déployez Voice Gateway. Il est recommandé de chiffrer le disque où Voice Gateway est déployé. Le chiffrement du disque dur peut protéger les enregistrements ou les réponses texte-parole mis en cache dans le système de fichiers, car ils peuvent contenir des informations sensibles. Le chiffrement du disque dur chiffre uniquement les données stockées dans Voice Gateway. Vous devez prendre des mesures supplémentaires pour sécuriser les données dans les services qui sont intégrés à Voice Gateway.