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
-
Erstellen Sie eine Telefonnummer mit SMS-Funktionalität und erstellen Sie den IBM Watson™ Assistant-Service gemäß der Beschreibung unter Erste Schritte mit SMS Gateway.
-
Installieren Sie Docker auf dem Host, auf dem Sie das Gateway ausführen möchten. Docker Engine stellt eine schlanke Laufzeitumgebung für den SMS Gateway-Container bereit.
Windows-Systeme: Beachten Sie, dass Docker for Windows das Betriebssystem Windows 10 Pro (64-Bit) voraussetzt. In älteren Versionen von Windows müssen Sie Docker Machine als Teil der Docker Toolbox installieren. Die Bereitstellung in Docker Machine unterscheidet sich geringfügig, wie Sie den folgenden Schritten entnehmen können.
-
Klonen Sie das sample.voice.gateway-GitHub-Repository, das die Watson Assistant-Beispieldialoge, Beispielkonfigurationsdateien und weitere Elemente enthält, die Sie bei den ersten Schritten unterstützen.
-
Stellen Sie sicher, dass einer der folgenden Ports für die Verbindung zu Ihrem SMS-Provider geöffnet ist:
- Gesicherte Verbindungen: Port 9443
- Nicht gesicherte Verbindungen: Port 9080
SMS Gateway bereitstellen
-
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 @%iUNIX und Mac OS X:
eval "$(docker-machine env default)" -
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 -
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 Beispielkonfigurationsdateidocker-compose.ymlenthä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.
- Kopieren Sie die Beispieldatei in das Verzeichnis, in das Sie das Docker-Image extrahiert haben.
-
Ä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_SMSauftrue. Standardmäßig können SMS-Sitzungen nur unter Verwendung der REST-API erstellt werden.Beispiel:
- ALLOW_SESSION_CREATE_VIA_SMS=true
-
-
Erstellen Sie in dem Verzeichnis, in dem Sie die Datei
docker-compose.ymlgeändert haben, eine.env-Datei und legen Sie den Wert für die VariableEXTERNAL_IPfest. Bei diesen Befehle wird davon ausgegangen, dass Sie denvi-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 ipaus, um die IP-Adresse der VM zu ermitteln.- Geben Sie die folgenden Befehle ein, um die Datei
.envzu erstellen, und öffnen Sie sie zum Bearbeiten.touch .env vi .env -
Geben Sie
iein, um in den Bearbeitungsmodus zu wechseln. Fügen Sie oben in der Datei.envdie folgende Zeile hinzu:EXTERNAL_IP=<IP-Adresse des lokalen Systems oder der Docker-Machine-VM> - Drücken Sie die Escapetaste, um den Bearbeitungsmodus zu verlassen, und geben Sie
:wqein, um den Editor zu beenden.
- Geben Sie die folgenden Befehle ein, um die Datei
-
Erstellen Sie den Container und starten Sie ihn, indem Sie den folgenden Befehl absetzen:
docker-compose upNachdem Sie den Container gestartet haben, werden bei der Bereitstellung des SMS Gateway-Servers eine Reihe von Nachrichten angezeigt.
Tipps:
- Wenn der Befehl
docker-composenicht gefunden wird, müssen Sie Docker Compose installieren. - Wenn ein Fehler des Typs
grpc: the connection is unavailablebeim 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
- Wenn der Befehl
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
-
Stoppen Sie den aktiven SMS Gateway-Container.
docker stop -
Entfernen Sie den Container.
docker rm vgw-sms-gateway -
Nachdem Sie alle Konfigurationsaktualisierungen vorgenommen haben, erstellen Sie den Container erneut und starten Sie ihn.
docker-compose up