Déploiement de SMS Gateway sur Docker

Suivez ces instructions pour déployer SMS Gateway sur votre propre moteur Docker dans un environnement sur site. Pour les déploiements en cloud, voir Déploiement de SMS Gateway sur Kubernetes dans IBM Cloud Kubernetes Service.

Avant de commencer

Déploiement de SMS Gateway

  1. 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 @%i
    

    UNIX et Mac OS X :

    eval "$(docker-machine env default)"
    
  2. Accédez au répertoire à partir duquel vous souhaitez déployer SMS Gateway, et extrayez la dernière image Docker :

    docker pull ibmcom/voice-gateway-sms:latest
    
  3. 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 sms/docker, qui contient l'exemple de fichier de configuration docker-compose.yml.

    L'exemple de fichier est préconfiguré avec la configuration minimale et pointe vers la dernière image. Pour obtenir une liste complète de toutes les variables, voir Variables d'environnement de configuration de SMS Gateway.

  4. Copiez l'exemple de fichier dans le répertoire où vous avez extrait l'image Docker.
  5. Modifiez le fichier pour configurer Watson Assistant, votre fournisseur SMS et le numéro de téléphone du titulaire.

    • Pour Watson Assistant, spécifiez les données d'identification du service et l'ID de l'espace de travail. Pour plus d'informations sur la manière de rechercher les données d'identification du service, voir Données d'identification de service pour les services Watson.

      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 l'espace de travail que vous voulez intégrer, cliquez sur l'icône Actions () et sélectionnez la commande d'affichage des détails.

      Exemple :

      environment:
       - WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/api/
       - WATSON_CONVERSATION_USERNAME=9h7f54cb-d9ed-46b3-8492-e9a9bf555021
       - WATSON_CONVERSATION_PASSWORD=InWtiUpYhF1Z
       - WATSON_CONVERSATION_WORKSPACE_ID=a23de67h-e527-40d5-a867-5c0ce9e72d0d
      
    • Pour le fournisseur SMS, spécifiez l'URL de l'API et les données d'identification de connexion.

      Le nom d'utilisateur est mappé au SID du compte et le mot de passe au jeton d'authentification. Vous trouverez ces deux valeurs dans la console de votre fournisseur SMS.

      Exemple :

        - SMS_PROVIDER_URL=https://api.twilio.com
        - SMS_PROVIDER_USERNAME=A23de67h0236e5e7c7f1ead4499h7f54cb
        - SMS_PROVIDER_PASSWORD=9h7f54cb3b1d3736e19ac64aa23de67h
      
    • Pour le numéro de téléphone du titulaire, spécifiez le numéro de téléphone complet obtenu de votre fournisseur SMS. Utilisez exactement le format de numéro requis par le fournisseur SMS. Par exemple, pour spécifier un numéro de téléphone Twilio, incluez un signe plus (+), le code pays et l'indicatif régional. Pour RestcommONE, n'incluez pas le signe plus (+).

      Exemple :

       - TENANT_PHONE_NUMBER=+12345556789
      
    • Facultatif : si vous souhaitez permettre aux utilisateurs de créer des sessions SMS en envoyant un message SMS à la passerelle, définissez ALLOW_SESSION_CREATE_VIA_SMS sur true. Par défaut, les sessions SMS peuvent uniquement être créées à l'aide de l'API REST.

      Exemple :

        - ALLOW_SESSION_CREATE_VIA_SMS=true
      
  6. Dans le répertoire dans lequel vous avez modifié le fichier docker-compose.yml, créez un fichier .env et définissez la variable EXTERNAL_IP. Ces commandes supposent que vous utilisez vi pour 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. Pour Docker Machine, qui exécute le conteneur dans une machine virtuelle, déterminez l'adresse IP de la machine virtuelle en exécutant la commande docker-machine ip.

    1. Entez les commandes suivantes pour créer le fichier .env et ouvrez-le afin de l'éditer.
      touch .env
      vi .env
      
    2. Entrez i pour passer au mode édition. En haut du fichier .env, ajoutez la ligne suivante :

      EXTERNAL_IP=<IP address of local system or Docker Machine VM>
      
    3. Appuyez sur la touche Echap pour sortir du mode édition et entrez :wq pour sortir de l'éditeur.
  7. Créez et démarrez le conteneur en exécutant la commande suivante :

    docker-compose up
    

    Après avoir démarré le conteneur, vous verrez apparaître le nombre de messages au fur et à mesure du déploiement par le serveur SMS Gateway.

    Astuces :

    • Si la commande docker-compose est introuvable, vous devez installer Docker Compose.
    • Si vous voyez une erreur grpc: the connection is unavailable lorsque vous démarrez le conteneur, redémarrez le démon Docker et exécutez à nouveau la commande.
    • Si vous voyez l'erreur suivante au démarrage, il est possible qu'une autre application écoute sur le port spécifié. Arrêtez toute application en conflit et relancez la commande.
      Bind for 0.0.0.0:9080 failed: port is already allocated
      

Que faire ensuite ?

Après avoir déployé SMS Gateway sur Docker, configurez un webhook et testez votre déploiement comme décrit dans Initiation à SMS Gateway.

Vous pouvez continuer de configurer votre déploiement SMS Gateway en éditant le fichier docker-compose.yml pour ajouter ou modifier des variables de configuration et en redéployant le conteneur.

Redéploiement de SMS Gateway

  1. Arrêtez le conteneur SMS Gateway en cours d'exécution.

    docker stop
    
  2. Supprimez le conteneur.

    docker rm vgw-sms-gateway
    
  3. Après avoir effectué vos modifications dans la configuration, créez et redémarrez le conteneur.

    docker-compose up