Voice Gateway in Docker bereitstellen
Diese Anweisungen gelten für die Einrichtung von IBM® Voice Gateway in Ihrer eigenen Docker Engine für eine lokale Installation. Informationen zu Cloudbereitstellungen finden Sie unter Voice Gateway in Kubernetes in IBM Cloud Kubernetes Service bereitstellen.
Vorbereitungen
-
Installieren Sie Docker auf dem Host, auf dem Sie das Gateway ausführen möchten. Docker Engine stellt eine schlanke Laufzeit für die Container bereit, aus denen sich das Telefongateway zusammensetzt: SIP Orchestrator und Media Relay. Docker Community Edition und Enterprise Edition Version 1.13 und höher werden unterstützt.
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.
-
Registrieren Sie sich für eine IBMid und ein IBM Cloud-Konto und erstellen Sie die folgenden Watson-Services:
- Speech to Text
- Text to Speech (nur Self-Service)
- Watson Assistant (nur Self-Service)
Notieren Sie die Berechtigungsnachweise für jeden von Ihnen erstellten Service. Sie müssen die Berechtigungsnachweise in der Voice Gateway-Konfiguration angeben.
Wichtig: Sie müssen für Watson Assistant einen Arbeitsbereich mit einem Dialog hinzufügen. Sie können ohne großen Aufwand beginnen, indem Sie die Datei conversation/sample-conversation-en.json aus Ihrem geklonten sample.voice.gateway-GitHub-Repository importieren. Weitere Informationen zum Importieren von JSON-Dateien finden Sie in der Watson Assistant-Dokumentation unter Arbeitsbereich erstellen. Wenn Sie Ihren eigenen Dialog erstellen, anstatt das Beispiel zu verwenden, stellen Sie sicher, dass Ihr Dialog einen Knoten mit der Bedingung
conversation_startund einen Knoten mit einer Standardantwort enthält. -
Wenn Sie beabsichtigen, Voice Gateway hinter einer Firewall bereitzustellen, und Sie möchten zu dieser Gateway-Instanz eine Verbindung über einen SIP-Trunk oder SIP-Client herstellen, der sich außerhalb dieser Firewall befindet, stellen Sie sicher, dass alle erforderlichen Ports offen sind. Weitere Informationen finden Sie unter Porteinstellungen für Firewalls.
Voice 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)" -
Extrahieren Sie die aktuellsten Docker-Images aus SIP Orchestrator (
voice-gateway-so) und Media Relay (voice-gateway-mr):```bash docker pull ibmcom/voice-gateway-so:latest
docker pull ibmcom/voice-gateway-mr:latest
1. Wechseln Sie das Verzeichnis, in dem Sie das sample.voice.gateway-Repository auf Ihrer Maschine geklont haben und öffnen Sie das Verzeichnis `docker`, das die folgenden Beispielkonfigurationsdateien enthält:
* `docker-compose-self-service.yml`
* `docker-compose-agent-assist.yml`
Diese Beispieldateien sind mit einer Mindestkonfiguration für jede Implementierung vorkonfiguriert und verweisen auf die aktuellsten Images für das Telefongateway. Sie müssen die Datei entsprechend Ihrem Implementierungstyp so ändern, dass die [Berechtigungsnachweise für Ihren Watson-Service](https://cloud.ibm.com/docs/services/watson?topic=watson-creating-credentials) enthalten sind. Konfigurieren Sie für Agentenassistenten ebenfalls die [Berichterstellungsereignisse für Transkriptionen](rttconfig.md).
1. Kopieren Sie die Datei für Ihren Implementierungstyp in eine neue Datei mit dem Namen `docker-compose.yml`. Speichern Sie die Datei in demselben Verzeichnis.
1. Geben Sie in der neuen Datei `docker-compose.yml` die Informationen für alle noch nicht ausgefüllten Umgebungsvariablen, wie z. B. die Berechtigungsnachweise für Ihre Watson-Services an.
```yml
...
# Berechtigungsnachweise für IBM Cloud-STT-Beispiel
#Wenn in Ihrem Service ein Benutzernamen und Kennwort angegeben ist, geben Sie Folgendes ein:
- WATSON_STT_USERNAME=9h7f54cb-5epb-80d6-45c3-da41d2bf7a71
- WATSON_STT_PASSWORD=asxNzDLpIJ6F
- WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api
#Andernfalls, wenn ein API-Schlüssel Ihrem Service zugeordnet ist, geben Sie Folgendes ein:
- 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
...
Eine vollständige Liste mit allen Konfigurationsvariablen finden Sie unter [Konfigurationsumgebungsvariablen](config.md).
**Tipp:** Wenn Sie die Watson Assistant-Arbeitsbereichs-ID suchen, rufen Sie die Arbeitsbereichsansicht im Watson Assistant-Tool auf. Klicken Sie bei dem Skill, den Sie integrieren möchten, auf das Aktionssymbol (**⋮**) und wählen Sie den Eintrag zum **Anzeigen von Details** aus.
**Anmerkung:** Verwenden Sie für den Konfigurationsparameter `WATSON_CONVERSATION_URL` in der Datei `docker-compose.yml` nur den Teil des URI bis einschließlich der `api`-Ebene. Beispiel:
```yml
- WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/api
```
**Wichtig:** Wenn Sie für die Bereitstellung eine öffentliche Cloud verwenden, wird dringend empfohlen, dass Sie auch die Whitelistvariablen definieren, um Denial-of-Service-Attacken und andere, nicht gewünschte Sitzungen von externen Quellen zu verhindern, die zu unnötigen Watson-Servicegebühren führen und die Leistung von Voice Gateway beeinträchtigen könnten. Standardmäßig sind diese Variablen in den Compose-Dateien auskommentiert.
```yml
- WHITELIST_TO_URI=2345556789
```
Weitere Informationen finden Sie unter [Anrufer und Anrufempfänger in eine Whitelist aufnehmen](security.md#whitelisting-callers-and-callees)
-
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 Container in einer virtuellen Maschine ausgeführt werden, 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.
-
-
Erstellen Sie die Container und starten Sie sie, indem Sie den folgenden Befehl absetzen:
docker-compose upTipps:
- Wenn der Befehl
docker-composenicht gefunden wird, müssen Sie Docker Compose installieren. - Wenn ein Fehler des Typs
grpc: the connection is unavailablebeim Starten der Container 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 Port 5060 empfangsbereit. Beenden Sie alle in Konflikt stehenden Anwendungen und wiederholen Sie dann den Befehl.
Bind for 0.0.0.0:5060 failed: port is already allocated
- Wenn der Befehl
Nächste Schritte
Nachdem Sie Voice Gateway in Docker Engine bereitgestellt haben, testen Sie Ihre Bereitstellung gemäß der Beschreibung unter Erste Schritte mit Voice Gateway.
Sie können Ihre Voice Gateway-Bereitstellung darüber hinaus konfigurieren, indem Sie die Datei docker-compose.yml bearbeiten, um
Konfigurationsvariablen hinzuzufügen oder zu ändern, und anschließend die Container erneut bereitstellen. Sie können die optimalen Konfigurationseinstellungen verwenden, die in dem letzten Release enthalten sind, indem
Sie die Umgebungsvariable USE_OPTIMAL_CONFIGURATION festlegen. Weitere Informationen finden Sie unter Optimale Konfigurationseinstellungen verwenden.
Vertrauliche Informationen schützen: Standardmäßig ist das Erfassen von Text to Speech-Caching-Daten und Audioaufzeichnungsdaten inaktiviert. Wenn Sie diese Features aktivieren, stellen Sie sicher, dass geeignete Maßnahmen zum Schutz vertraulicher Daten ergriffen wurden, wenn Sie Voice Gateway bereitstellen. Es wird empfohlen, dass Sie die Platte verschlüsseln, auf der Voice Gateway bereitgestellt wird. Mithilfe der Festplattenverschlüsselung können Sie Aufzeichnungen oder Text to Speech-Antworten, die im Dateisystem zwischengespeichert werden, schützen, da sie potenziell vertrauliche Informationen enthalten können. Wenn Sie die Festplatte verschlüsseln, werden nur Daten verschlüsselt, die in Voice Gateway gespeichert sind. Sie müssen zusätzliche Maßnahmen ergreifen, um Daten in Services zu schützen, die in Voice Gateway integriert sind.