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

Voice 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. 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)
  1. 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 Container in einer virtuellen Maschine ausgeführt werden, 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.

  2. Erstellen Sie die Container und starten Sie sie, indem Sie den folgenden Befehl absetzen:

    docker-compose up
    

    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 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
      

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.