SMS Gateway in Docker bereitstellen

Führen Sie die folgenden Anweisungen aus, um SMS Gateway in Ihrer eigenen Docker-Engine für eine On-Premises-Umgebung bereitzustellen. Informationen zu Cloudbereitstellungen finden Sie unter SMS Gateway in Kubernetes in IBM Cloud Kubernetes Service bereitstellen.

Vorbereitungen

SMS Gateway bereitstellen

  1. Nur Docker Machine: Bevor Sie sich bei Docker anmelden können, setzen Sie diesen Befehl an der Befehlszeile ab, um die Shell so zu setzen, dass sie auf Docker Engine zeigt:

    Windows:

    @FOR /f "tokens=*" %i IN ('docker-machine env default --shell cmd') DO @%i
    

    UNIX und Mac OS X:

    eval "$(docker-machine env default)"
    
  2. Wechseln Sie in ein Verzeichnis, über das Sie SMS Gateway bereitstellen möchten, und extrahieren Sie das aktuellste Docker-Image:

    docker pull ibmcom/voice-gateway-sms:latest
    
  3. Wechseln Sie in das Verzeichnis, in dem Sie das Repository sample.voice.gateway auf Ihrer Maschine geklont haben, und öffnen Sie das Verzeichnis sms/docker, das die Beispielkonfigurationsdatei docker-compose.yml enthält.

    Die Beispieldatei ist mit der Mindestkonfiguration vorkonfiguriert und verweist auf das aktuellste Image. Eine vollständige Liste mit allen Konfigurationsvariablen finden Sie unter Konfigurationsumgebungsvariablen für SMS Gateway.

  4. Kopieren Sie die Beispieldatei in das Verzeichnis, in das Sie das Docker-Image extrahiert haben.
  5. Ändern Sie die Datei entsprechend, um Watson Assistant, Ihren SMS-Provider und die Tenanttelefonnummer zu konfigurieren.

    • Geben Sie für Watson Assistant die Serviceberechtigungsnachweise und die Arbeitsbereichs-ID an. Informationen zur Ermittlung der Serviceberechtigungsnachweise finden Sie unter Serviceberechtigungsnachweise für Watson-Services.

      Tipp: Wenn Sie die Watson Assistant-Arbeitsbereichs-ID suchen, rufen Sie die Arbeitsbereichsansicht im Watson Assistant-Tool auf. Klicken Sie in dem Arbeitsbereich, den Sie integrieren möchten, auf das Aktionssymbol () und wählen Sie den Eintrag zum Anzeigen von Details aus.

      Beispiel:

      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
      
    • Geben Sie für den SMS-Provider die API-URL und die Anmeldeberechtigungsnachweise an.

      Der Benutzername wird der Konto-SID und das Kennwort dem Authentifizierungstoken zugeordnet. Sie finden diese beiden Wert in der Konsole für Ihren SMS-Provider.

      Beispiel:

        - SMS_PROVIDER_URL=https://api.twilio.com
        - SMS_PROVIDER_USERNAME=A23de67h0236e5e7c7f1ead4499h7f54cb
        - SMS_PROVIDER_PASSWORD=9h7f54cb3b1d3736e19ac64aa23de67h
      
    • Geben Sie als Wert für die Tenanttelefonnummer die vollständige Telefonnummer Ihres SMS-Providers an. Verwenden Sie das exakte Zahlenformat, das der SMS-Provider benötigt. Wenn Sie beispielsweise eine Twilio-Telefonnummer angeben möchten, geben Sie ein Pluszeichen (+) sowie die Ländervorwahl und Ortsnetzkennzahl an. Geben Sie für RestcommONE das Pluszeichen (+) nicht mit an.

      Beispiel:

       - TENANT_PHONE_NUMBER=+12345556789
      
    • Optional: Wenn Sie möchten, dass Benutzer durch Senden einer SMS-Nachricht an das Gateway SMS-Sitzungen erstellen können, setzen Sie den Wert für ALLOW_SESSION_CREATE_VIA_SMS auf true. Standardmäßig können SMS-Sitzungen nur unter Verwendung der REST-API erstellt werden.

      Beispiel:

        - ALLOW_SESSION_CREATE_VIA_SMS=true
      
  6. Erstellen Sie in dem Verzeichnis, in dem Sie die Datei docker-compose.yml geändert haben, eine .env-Datei und legen Sie den Wert für die Variable EXTERNAL_IP fest. Bei diesen Befehle wird davon ausgegangen, dass Sie den vi-Editor verwenden. Sie können jedoch jeden beliebigen Editor verwenden.

    Bei den meisten Docker-Installationen ist die IP-Adresse, die Sie festlegen, die IP Ihres lokalen Systems. Führen Sie bei Docker Machine, in dem der Container in einer virtuellen Maschine ausgeführt wird, den Befehl docker-machine ip aus, um die IP-Adresse der VM zu ermitteln.

    1. Geben Sie die folgenden Befehle ein, um die Datei .env zu erstellen, und öffnen Sie sie zum Bearbeiten.
      touch .env
      vi .env
      
    2. Geben Sie i ein, um in den Bearbeitungsmodus zu wechseln. Fügen Sie oben in der Datei .env die folgende Zeile hinzu:

      EXTERNAL_IP=<IP-Adresse des lokalen Systems oder der Docker-Machine-VM>
      
    3. Drücken Sie die Escapetaste, um den Bearbeitungsmodus zu verlassen, und geben Sie :wq ein, um den Editor zu beenden.
  7. Erstellen Sie den Container und starten Sie ihn, indem Sie den folgenden Befehl absetzen:

    docker-compose up
    

    Nachdem Sie den Container gestartet haben, werden bei der Bereitstellung des SMS Gateway-Servers eine Reihe von Nachrichten angezeigt.

    Tipps:

    • Wenn der Befehl docker-compose nicht gefunden wird, müssen Sie Docker Compose installieren.
    • Wenn ein Fehler des Typs grpc: the connection is unavailable beim Starten des Containers angezeigt wird, starten Sie den Docker-Dämon erneut und wiederholen Sie den Befehl.
    • Wenn beim Starten der folgende Fehler angezeigt wird, ist wahrscheinlich schon eine andere Anwendung am angegebenen Port empfangsbereit. Beenden Sie alle in Konflikt stehenden Anwendungen und wiederholen Sie dann den Befehl.
      Bind for 0.0.0.0:9080 failed: port is already allocated
      

Nächste Schritte

Nachdem Sie SMS Gateway in Docker bereitgestellt haben, konfigurieren Sie einen Webhook und testen Sie Ihre Bereitstellung gemäß der Beschreibung unter Erste Schritte mit SMS Gateway.

Sie können Ihre SMS Gateway-Bereitstellung darüber hinaus konfigurieren, indem Sie die Datei docker-compose.yml bearbeiten, um Konfigurationsvariablen hinzuzufügen oder zu ändern, und anschließend den Container erneut bereitstellen.

SMS Gateway erneut bereitstellen

  1. Stoppen Sie den aktiven SMS Gateway-Container.

    docker stop
    
  2. Entfernen Sie den Container.

    docker rm vgw-sms-gateway
    
  3. Nachdem Sie alle Konfigurationsaktualisierungen vorgenommen haben, erstellen Sie den Container erneut und starten Sie ihn.

    docker-compose up