

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS Lambda Funktionen für den Amazon Chime SDK PSTN-Audioservice erstellen
<a name="writing-lambdas"></a>

In den Themen dieses Abschnitts wird erklärt, wie Sie die AWS Lambda Funktionen erstellen, die von Ihrem PSTN-Audiodienst verwendet werden. 

**Topics**
+ [Grundlegendes zu Telefonieereignissen für den Amazon Chime SDK PSTN-Audioservice](pstn-invocations.md)
+ [Grundlegendes zu den Aktionen des Amazon Chime SDK PSTN-Audioservices](about-actions.md)
+ [Erfahren Sie mehr über die Telefonieereignisse, die AWS Lambda Funktionen für den Amazon Chime SDK PSTN-Audiodienst aufrufen](invoking-Lambda.md)
+ [Beantworten von Aufrufen mit Aktionslisten mithilfe des Amazon Chime SDK PSTN-Audiodienstes](invoke-on-call-leg.md)
+ [Unterstützte Aktionen für den Amazon Chime SDK PSTN-Audiodienst](specify-actions.md)
+ [Verwenden von SIP-Headern im Amazon Chime SDK PTSN-Audiodienst](sip-headers.md)
+ [Verwenden von Anrufdetailaufzeichnungen im Amazon Chime SDK PTSN-Audiodienst](attributes.md)
+ [Grundlegendes zu Timeouts und Wiederholungsversuchen für den Amazon Chime SDK PTSN-Audiodienst](timeouts.md)
+ [Debuggen und Problembehebung des Amazon Chime SDK PTSN-Audiodienstes](debug-pstn.md)
+ [Verständnis VoiceFocus für den Amazon Chime SDK PTSN-Audiodienst](voice-focus.md)
+ [Glossar zu den PSTN-Audiodiensten des Amazon Chime SDK](chm-dg-glossary.md)

# Grundlegendes zu Telefonieereignissen für den Amazon Chime SDK PSTN-Audioservice
<a name="pstn-invocations"></a>

Der Audiodienst ruft Ihre AWS AWS Lambda Funktion auf, wenn während eines Anrufs bestimmte Ereignisse eintreten. Das folgende Beispiel zeigt die Ereignisse, und der Text nach dem Beispiel erklärt jedes Ereignis.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 3, 
    "InvocationEventType": "event-type", 
    "CallDetails": { 
        "TransactionId": "transaction-id-1", 
        "AwsAccountId": "aws-acct-id-1", 
        "AwsRegion": "us-east-1", 
        "SipMediaApplicationId": "sip-media-app-id-1", 
        "Participants": [ 
            { 
                "CallId": "call-id-1", 
                "ParticipantTag": "LEG-A", 
                "To": "e164PhoneNumber", 
                "From": "e164PhoneNumber", 
                "Direction": "Inbound/Outbound", 
                "StartTimeInMilliseconds": "1641998241509", 
                "Status": "Connected/Disconnected" 
            } 
        ] 
    } 
}
```

**SchemaVersion**  
Die Version des Schemas, mit der dieses Ereignisobjekt erstellt wurde.

**Sequence**  
Die Reihenfolge der Ereignisse, die Ihre AWS Lambda Funktion aufrufen. Jedes Mal, wenn Ihre Funktion während eines Aufrufs aufgerufen wird, wird die Reihenfolge inkrementiert.

**InvocationEventType**  
Der Ereignistyp, der einen AWS Lambda Aufruf auslöst. Weitere Informationen finden Sie unter [Event types (Ereignistypen)](#pstn-event-types) an späterer Stelle in diesem Thema.

**CallDetails**  
Informationen über den Anruf, der mit dem AWS Lambda Aufruf verknüpft ist.

**TransactionId**  
Die ID eines Anrufs, der einem Aufruf zugeordnet ist AWS Lambda .

**AwsAccountId**  
Die AWS Konto-ID, die der SIP-Medienanwendung zugeordnet ist, die zur Anrufweiterleitung geführt hat.

**SipMediaApplicationId**  
Die ID der SIP-Medienanwendung, die dem Anruf zugeordnet ist.

**Participants**  
Informationen über die Teilnehmer des Anrufs, der eine AWS AWS Lambda Funktion aufruft.

**CallId**  
Jedem Teilnehmer wird eine eindeutige ID zugewiesen.

**ParticipantTag**  
Jeder Anrufteilnehmer erhält ein Tag, `LEG-A` oder`LEG-B`.

**To**  
Die „An“ -Telefonnummer des Teilnehmers im E.164-Format.

**From**  
Die Absender-Telefonnummer des Teilnehmers im Format E.164.

**Direction**  
Die Richtung, aus der ein Anrufabschnitt kommt. `Inbound`steht für einen Anruf beim Audiodienst. `Outbound`steht für einen Anruf, der vom Audiodienst aus getätigt wurde.

**StartTimeInMilliseconds**  
Die Epochenzeit in Millisekunden, beginnend mit dem Zeitpunkt, zu dem ein Teilnehmer einem Anruf beitritt.

**Status**  
Ob ein Teilnehmer ist oder `Connected` `Disconnected`

## Event types (Ereignistypen)
<a name="pstn-event-types"></a>

Der Audiodienst ruft die Lambda-Funktion mit diesen Ereignistypen auf:

**NEW\$1INBOUND\$1CALL**  
Ein neuer Anruf wurde über eine Telefonnummer initiiert, die Ihrer SIP-Medienanwendung zugeordnet ist.

**NEW\$1OUTBOUND\$1CALL**  
Ein neuer ausgehender Anruf wurde über die [CreateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API getätigt.

**ACTION\$1SUCCESSFUL**  
Eine von Ihrer AWS Lambda Funktion zurückgegebene Aktion war erfolgreich. Zu den erfolgreichen Aktionen gehört`ActionData`, dass sie der erfolgreichen Aktion entsprechen.   

```
    "ActionData": {
        // The previous successful action 
    },
```

**ACTION\$1FAILED**  
Eine von Ihrer AWS Lambda Funktion zurückgegebene Aktion war nicht erfolgreich. Zu den erfolglosen Aktionen gehören `ActionData` Aktionen, die der fehlgeschlagenen Aktion entsprechen, ein Fehlertyp und eine Fehlermeldung, die den Fehler beschreibt:  

```
    "ActionData": {
        // The previous unsuccessful action
        "ErrorType": "error-type",
        "ErrorMessage": "error message"
    },
```

**ACTION\$1INTERRUPTED**  
Eine gerade ausgeführte Aktion wurde durch einen [ UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API-Aufruf unterbrochen. `ActionData`Dazu gehören die unterbrochenen Aktionen:   

```
"ActionData": {
        // The action that was interrupted
    },
```

**HANGUP**  
Ein Benutzer oder die Anwendung hat einen Gesprächsabschnitt unterbrochen. Das `ActionData` beinhaltet die folgenden Informationen über das Ereignis:  

```
   "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "SipResponseCode": 486,
            "CallId": "c70f341a-adde-4406-9dea-1e01d34d033d",
            "ParticipantTag": "LEG-A"
        }
    },
```  
**Type**  
Hängen Sie auf.  
**Parameters**  
Die Informationen zur Veranstaltung: `HANGUP`   
+ **SipResponseCode**— Der mit dem Ereignis verknüpfte Antwortcode. Die gängigsten Codes sind:
  + **0** — Normales Löschen
  + **480** — Keine Antwort
  + **486** — Der Benutzer ist beschäftigt
+ **CallId**Die ID des Teilnehmers, der aufgelegt hat.
+ **ParticipantTag**Der Tag des Teilnehmers, der aufgelegt hat.

**CALL\$1ANSWERED**  
Der Audiodienst beantwortete einen eingehenden Anruf wurde entgegengenommen. Dieses Ereignis wird bei einem Dial-Out-Anruf zurückgegeben, sofern der Anruf nicht überbrückt wird.

**INVALID\$1LAMBDA\$1RESPONSE**  
Die Antwort auf den letzten AWS Lambda Aufruf verursachte ein Problem. Das `ActionData` beinhaltet die folgenden zusätzlichen Felder:  

```
    "ErrorType": "error-type-1", 
    "ErrorMessage": "error-msg-1"
```

**DIGITS\$1RECEIVED**  
Die Anwendung hat nach Abschluss einer `ReceiveDigits` Aktion DTMF-Ziffern erhalten. Das `ActionData` beinhaltet die empfangenen Ziffern.  

```
    "ActionData": {
        "ReceivedDigits": ###
        // The ReceiveDigits action data
    },
```

**CALL\$1UPDATE\$1REQUESTED**  
Die [UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API wurde aufgerufen. Das `ActionData` beinhaltet Informationen über die Aktualisierungsanfrage:  

```
    "ActionData": {
        "Type": "CallUpdateRequest", 
        "Parameters": {
            "Arguments": {
                "leg": "LEG-A"
                }
            }
        },
    }
```

**RINGING**  
Ein Rufbein klingelt

# Grundlegendes zu den Aktionen des Amazon Chime SDK PSTN-Audioservices
<a name="about-actions"></a>

Im PSTN-Audiodienst lösen SIP-Medienanwendungen Funktionen aus. AWS Lambda *Die AWS Lambda Funktionen können wiederum eine Liste von Anweisungen zurückgeben, die als Aktionen bezeichnet werden.* Eine Aktion ist ein Element, das Sie im Anschluss an einen Telefonanruf ausführen möchten, z. B. das Senden oder Empfangen von Ziffern, die Teilnahme an einer Besprechung usw. Aktionen können auch Daten zurückgeben, sodass Sie sich Aktionen als Objekte mit Datenfeldern vorstellen können. Weitere Hinweise zu den Aktionen, die vom PSTN-Audiodienst aufgerufen werden, finden Sie unter. [Grundlegendes zu Telefonieereignissen für den Amazon Chime SDK PSTN-Audioservice](pstn-invocations.md)

# Erfahren Sie mehr über die Telefonieereignisse, die AWS Lambda Funktionen für den Amazon Chime SDK PSTN-Audiodienst aufrufen
<a name="invoking-Lambda"></a>

Der Audiodienst ruft AWS Lambda Funktionen als Reaktion auf verschiedene Ereignisse auf. Jeder Aufruf spezifiziert einen Aufrufereignistyp und stellt die Anrufdetails bereit, einschließlich der Teilnehmer, falls zutreffend. In den folgenden Themen werden die Audio Service-Ereignisse beschrieben, die Funktionen aufrufen AWS Lambda . 

# Einen ausgehenden Anruf für die Nutzung des Amazon Chime SDK PSTN-Audiodienstes tätigen
<a name="use-create-call-api"></a>

Um einen ausgehenden Anruf zu erstellen, verwenden Sie die API. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html) Die API ruft den Endpunkt eines bestimmten Objekts auf. `SIP media application ID` Kunden können den Ablauf des Anrufs steuern, indem sie vom Endpunkt aus unterschiedliche Signale und [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html)Aktionen ausführen. 

Im Falle einer erfolgreichen Antwort gibt die API den HTTP-Statuscode 202 zusammen mit einer TransactionID zurück, die Sie zusammen mit der [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API verwenden können, um einen laufenden Anruf zu aktualisieren.

Das folgende Diagramm zeigt die Aufrufe des AWS Lambda Funktionsendpunkts für einen ausgehenden Aufruf.

![\[Diagramm, das den Programmierablauf für Aufrufe an den AWS Lambda Lambda-Endpunkt zeigt.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sip-api-1.png)


Der für die SIP-Medienanwendung konfigurierte Endpunkt wird für verschiedene Status des ausgehenden Anrufs aufgerufen. Wenn ein Kunde einen Anruf einleitet, ruft das Amazon Chime SDK den Endpunkt mit einem `NEW_OUTBOUND_CALL` Aufrufereignistyp auf. 

Dieses Beispiel zeigt ein typisches Aufrufereignis für a. `NEW_OUTBOUND_CALL`

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "NEW_OUTBOUND_CALL",
        "CallDetails": {
            "TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234"
                }
            ]
    }
}
```

Jede Antwort auf einen ereignisbezogenen AWS Lambda Aufruf wird ignoriert.

Wenn wir eine `RINGING` Benachrichtigung vom Empfänger erhalten, ruft das Amazon Chime SDK den konfigurierten Endpunkt erneut auf. 

Dieses Beispiel zeigt ein typisches Aufrufereignis für. `RINGING`

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "RINGING",
        "CallDetails": {
            "TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234"
                }
           ]
    }
}
```

Jede Antwort auf einen ereignisbezogenen AWS Lambda Aufruf wird ignoriert.

Wenn der Empfänger den Anruf nicht beantwortet oder der Anruf aufgrund eines Fehlers fehlschlägt, unterbricht Chime den Anruf und ruft den Endpunkt mit dem Ereignistyp auf. `Hangup` Weitere Informationen zum `Hangup` Ereignistyp finden Sie unter. [Beenden eines Anrufs mithilfe des Amazon Chime SDK PSTN-Audiodienstes](case-5.md) 

Wenn der Anruf entgegengenommen wird, ruft Chime den Endpunkt mit der `CALL_ANSWERED` Aktion auf. Dieses Beispiel zeigt ein typisches Aufrufereignis.

```
{
  "SchemaVersion": "1.0",
    "Sequence": 1,
    "InvocationEventType": "CALL_ANSWERED",
    "CallDetails": {
        ""TransactionId": "transaction-id",
            "AwsAccountId": "aws-account-id",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "sip-application-id",
            "Participants": [
                {
                    "CallId": "call-id-1",
                    "ParticipantTag": "LEG-A",
                    "To": "+1xxxx",
                    "From": "+1xxxxxxx",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

An diesem Punkt können Sie Aktionen zurückgeben, indem Sie auf den Aufruf mit einer Aktionsliste antworten. Wenn Sie keine Aktionen ausführen möchten, antworten Sie mit einer leeren Liste. Sie können mit maximal 10 Aktionen für jeden AWS Lambda Aufruf antworten und eine Lambda-Funktion 1.000 Mal pro Aufruf aufrufen. Weitere Informationen zum Antworten mit Gruppen von Aktionen finden Sie unter. [Beantworten von Aufrufen mit Aktionslisten mithilfe des Amazon Chime SDK PSTN-Audiodienstes](invoke-on-call-leg.md)

# Empfangen eines eingehenden Anrufs über den Amazon Chime SDK PSTN-Audiodienst
<a name="case-1"></a>

Wenn ein `NEW_INCOMING_CALL` Ereignis eintritt, erstellt der Audiodienst ein eindeutiges `TransactionID` und einzigartiges Ereignis, das so lange fortbesteht`CallID`, bis das `HANGUP` Ereignis eintritt.

Sie können auf verschiedene Arten auf ein `NEW_INCOMING_CALL` Ereignis reagieren. Beispiel:
+ Senden Sie `PlayAudio` unsere `RecordAudio` Aktionen und nehmen Sie den Anruf automatisch entgegen. 
+ Eine `Pause` Aktion senden.
+ Senden Sie eine `Hangup` Aktion. In diesem Fall wird der Anruf nicht beantwortet und dem Kunden wird nichts berechnet.
+ Senden Sie eine `CallAndBridge` Aktion und fügen Sie dem Anruf einen weiteren Benutzer hinzu.
+ Tun Sie nichts, der Anrufversuch läuft nach 30 Sekunden ab.

Wenn ein neuer eingehender Anruf eingeht, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dieser Nutzlast auf.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "NEW_INBOUND_CALL"
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

# Angeben von Aktionen als Reaktion auf Telefonieereignisse für den Amazon Chime SDK PSTN-Audiodienst
<a name="use-case-2"></a>

Im Audiodienst rufen SIP-Medienanwendungen AWS Lambda Funktionen auf. Eine Lambda-Funktion kann wiederum eine Liste von Anweisungen zurückgeben, die als *Aktionen* bezeichnet werden. Eine Aktion ist ein Element, das Sie im Anschluss an einen Telefonanruf ausführen möchten, z. B. das Senden oder Empfangen von Ziffern, die Teilnahme an einer Besprechung usw. Weitere Informationen zu den vom PSTN-Audiodienst aufgerufenen Aktionen finden Sie unter. [Grundlegendes zu Telefonieereignissen für den Amazon Chime SDK PSTN-Audioservice](pstn-invocations.md)

Wenn eine SIP-Medienanwendung erfolgreich eine Liste von Aktionen ausführt, ruft die Anwendung die AWS Lambda Funktion mit dem Aufrufereignistyp auf. `ACTION_SUCCESSFUL` Wenn eine der Aktionen nicht abgeschlossen werden kann, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit dem `ACTION_FAILED` Ereignis auf.

Die SIP-Medienanwendung kehrt nur zurück, `ACTION_SUCCESSFUL` wenn alle Aktionen auf der Liste erfolgreich waren. Wenn eine der Aktionen in der Liste fehlschlägt, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit dem `ACTION_FAILED` Ereignis auf und löscht die verbleibenden Aktionen in der Liste nach der fehlgeschlagenen Aktion. Anschließend führt die SIP-Medienanwendung die nächste Aktion aus, die von der AWS Lambda Funktion zurückgegeben wird. Sie verwenden den `ActionData` Schlüssel, um zu identifizieren, welcher Aufruf die Funktion aufgerufen hat.

Das folgende Ereignis zeigt eine Beispielnutzlast für den `ACTION_SUCCESSFUL` Aufrufereignistyp nach einer Aktion. `PlayAudioAndGetDigits`

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "failure-audio-file.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "failure-audio-file.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ReceivedDigits": "123"
    }
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
                }
            ]
        }
    }
}
```

Wenn eine Aktion in einer Liste nicht erfolgreich abgeschlossen werden kann, ruft die SIP-Medienanwendung die AWS Lambda Funktion auf, um Sie über den Fehler zu informieren und neue Aktionen für diesen Anruf auszuführen. Das folgende Ereignis zeigt die Beispielnutzlast für den `ACTION_FAILED` Aufrufereignistyp nach einer Aktion. `PlayAudio`

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file.wav"            
            }
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
}
```

# Empfangen von Anrufereingaben für den Amazon Chime SDK PSTN-Audiodienst
<a name="case-4"></a>

Sie verwenden die `ReceiveDigits` Aktion, um eingehende DTMF-Ziffern zu sammeln und sie mit einem regulären Ausdruck abzugleichen. Wenn die SIP-Medienanwendung Ziffern empfängt, die dem regulären Ausdruck entsprechen, ruft sie eine AWS Lambda Funktion mit einem Ereignis auf. `ACTION_SUCCESSFUL` Die gesammelten Ziffern erscheinen im `ReceivedDigits` Wert im `ActionData` Objekt.

Beispiel:

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "ReceivedDigits": "",
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-1",
            "InputDigitsRegex": "^\d{2}#$",
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "FlushDigitsDurationInMilliseconds": 10000
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Sobald der Anrufer Ziffern eingibt, die Ihrem Muster für reguläre Ausdrücke entsprechen, ruft die SIP-Medienanwendung eine AWS Lambda Funktion auf, die den folgenden Payload-Typ zurückgibt:

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "DIGITS_RECEIVED",
    "ActionData": {
        "ReceivedDigits": "11#",
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-1",
            "InputDigitsRegex": "^\d{2}#$",
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "FlushDigitsDurationInMilliseconds": 10000
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

[Ein funktionierendes Beispiel finden Sie unter: -demand-recording GitHub https://github.com/aws-samples/ amazon-chime-sma-on](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Aktualisierung laufender Anrufe für Amazon Chime SDK PTSN-Audio
<a name="update-sip-call"></a>

Als Teil des PSTN-Audiodienstes können Sie mit SIP-Medienanwendungen Aktionen festlegen, die bei einem Anruf ausgeführt werden, indem Sie benutzerdefinierte Lambda-Funktionen aufrufen, die auf den Anrufereignissen basieren, z. B. einem eingehenden Anruf oder DTMF-Ziffern. Die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)Mit der API können Sie jederzeit eine Lambda-Funktion auslösen, während ein Aufruf aktiv ist. Dabei werden die aktuellen Aktionen durch neue Aktionen ersetzt, die vom Aufruf zurückgegeben werden.

**Workflow**  
Sie verwenden die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API in einer Vielzahl von Fällen, z. B. beim Hinzufügen von Teilnehmern zu einem Meeting, beim Stummschalten und Aufheben der Stummschaltung von Benutzern, beim Trennen der Verbindung usw. Der folgende Anwendungsfall beschreibt einen typischen Arbeitsablauf.

Ein Benutzer ruft an und hört Musik, während das Amazon Chime SDK das Meeting einrichtet. Sobald die Einrichtung abgeschlossen ist, stoppt das Amazon Chime SDK die Audiowiedergabe und lässt den Anrufer zur Besprechung zu. Gehen Sie als Nächstes davon aus, dass Sie ein separates System verwenden`MyMeetingService`, das Besprechungen verwaltet. Jeder eingehende Anruf sollte in die Warteschleife gestellt werden. Chime benachrichtigt MyMeetingService über eingehende Anrufe und erstellt MyMeetingService dann für jeden Anruf einen Teilnehmer. Wenn dieser bereit MyMeetingService ist, das Meeting zu starten, benachrichtigt es die SIP-Medienanwendung und stellt ein Token für die Teilnahme an der Besprechung bereit.

Um diesen Fall zu behandeln, muss die Lambda-Funktion die folgende Logik implementieren. 
+ Wenn ein neuer eingehender Anruf eingeht, wird Lambda mit einem `NEW_INBOUND_CALL` Ereignis aufgerufen. Das Lambda ruft den auf `MyMeetingService` und übergibt den`transactionId`, der den aktuellen Aufruf identifiziert, und gibt die `PlayAudio` Aktion zurück.
+ Wenn der bereit `MyMeetingService` ist, den Anrufer zur Besprechung hinzuzufügen, ruft der Dienst den [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API und übergibt das `transactionId` und des Aufrufs `JoinToken` als Teil seiner Argumente. Dieser API-Aufruf löst erneut die Lambda-Funktion aus, jetzt mit dem `CALL_UPDATE_REQUESTED` Ereignis. Der MyMeetingService übergibt die `JoinToken` an die Lambda-Funktion als Teil des Ereignisses, und das Token wird verwendet, um die `JoinChimeMeeting` Aktion an die SIP-Medienanwendung zurückzugeben, die die `PlayAudio` Aktion unterbricht und den Anrufer mit dem Meeting verbindet.

![\[Diagramm, das den Datenfluss in der API zeigt. UpdateSipMediaApplicationCall\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/update-sip-call-flow3.png)


**Anmerkung**  
Die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)Die API gibt HTTP 202 (Akzeptiert) zurück. Die SIP-Medienanwendung bestätigt, dass der Anruf läuft und aktualisiert werden kann, und versucht daher, die Lambda-Funktion aufzurufen. Der Aufruf erfolgt asynchron, sodass eine erfolgreiche Antwort der API nicht garantiert, dass die Lambda-Funktion gestartet oder abgeschlossen wurde.

Das folgende Beispiel zeigt die Anforderungssyntax.

```
{
    "SipMediaApplicationId": "string",
    "TransactionId": "string",
    "Arguments": {
        "string": "string"
    } 
}
```

**Anfrageparameter**
+ `SipMediaApplicationId`— Die ID der SIP-Medienanwendung, die den Anruf bearbeitet. 
+ `TransactionId`— Die ID der Aufruftransaktion. Bei eingehenden Aufrufen `TransactionId` kann das aus dem `NEW_INCOMING_CALL` Ereignis abgerufen werden, das bei ihrem ersten Aufruf an die Lambda-Funktion übergeben wurde. Bei ausgehenden Aufrufen `TransactionId` wird in der Antwort von zurückgegeben [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html). 
+ **Argumente** — Benutzerdefinierte Argumente, die der Lambda-Funktion als Teil der `CallUpdateRequest` Aktionsdaten zur Verfügung gestellt werden. Kann 0 bis 20 Schlüssel-Wert-Paare enthalten.

Das folgende Beispiel zeigt eine typische Anfrage.

```
aws chime update-sip-media-application-call --sip-media-application-id feb37a7e-2b66-49fb-b2dd-30f4780dc36d --transaction-id 1322a4e7-c106-4e70-aaaf-a8fa4c77c0cb --arguments '{"JoinToken": "abc123"}'
```

**Antwortsyntax**

```
{
  "SipMediaApplicationCall": {
  "TransactionId": "string"
  }
}
```

**Antwortelemente**
+ **TransactionId**— Die ID der Aufruftransaktion, dieselbe ID wie die Anfrage.

Das folgende Beispiel zeigt ein `CALL_UPDATE_REQUESTED` Aufrufereignis.

```
{
  "SchemaVersion": "1.0",
  "Sequence": 2,
  "InvocationEventType": "CALL_UPDATE_REQUESTED",
  "ActionData": {
    "Type": "CallUpdateRequest",
    "Parameters": {
      "Arguments": {
        "string": "string"
      }
    }
  },
  "CallDetails": {
    ...
  }
}
```

**Elemente des Ereignisses**
+ **SchemaVersion**— Die Version des JSON-Schemas (1.0)
+ **Sequenz** — Die Sequenznummer des Ereignisses im Aufruf
+ **InvocationEventType**— Der Typ des Lambda-Aufrufereignisses, in diesem Fall `CALL_UPDATE_REQUESTED`
+ **ActionData**— Die mit der Aktion verknüpften Daten. `CallUpdateRequest`
  + **Typ** — Die Art der Aktion, in diesem Fall `CallUpdateRequest`
  + **Parameter** — Die Parameter der Aktion
    + **Argumente** — Die Argumente, die als Teil der `UpdateSipMediaApplicationCall` API-Anfrage übergeben wurden
+ **CallDetails**— Die Informationen über den aktuellen Anrufstatus

**Grundlegendes zu unterbrechenden und unterbrechungsfreien Aktionen**  
Wenn eine Lambda-Funktion eine neue Liste von Aktionen zurückgibt, während bestehende Aktionen ausgeführt werden, werden alle Aktionen, die auf die laufende Aktion folgen, durch die neuen Aktionen ersetzt. In einigen Fällen unterbricht die Lambda-Funktion laufende Aktionen, um sofort neue Aktionen auszuführen.

Das folgende Diagramm zeigt ein typisches Beispiel. Der Text unter dem Diagramm erklärt die Logik.

![\[Das Diagramm zeigt, wie Aktionen während eines laufenden SIP-Medienanwendungsaufrufs ersetzt werden können.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/update-sip-actions.png)


Wenn Aktion 2 unterbrechbar ist, beenden wir sie und führen stattdessen die neue Aktion 1 aus.

Wenn Aktion 2 nicht unterbrechbar ist, wird sie abgeschlossen, bevor die neue Aktion 1 beginnt.

In beiden Fällen wird Aktion 3 nicht ausgeführt.

Wenn etwas eine Aktion unterbricht, wird die Lambda-Funktion mit einem Ereignis aufgerufen. `ACTION_INTERRUPTED` Dieses Ereignis wird nur zu Informationszwecken verwendet. Die SIP-Medienanwendung ignoriert alle Aktionen, die von diesem Aufruf zurückgegeben werden.

Arten von unterbrechbaren Aktionen:
+ `PlayAudio`
+ `RecordAudio`
+ `Pause`

**Beispiel-Lambda-Funktion**  
Dieses Beispiel zeigt eine typische Lambda-Funktion, die eine Audiodatei abspielt, ein Join-Token übergibt und den Aufruf aktualisiert.

```
const MMS = require('my-meeting-service');
const myMeetingServiceClient = new MMS.Client();

exports.handler = async (event) => {
    console.log('Request: ' + JSON.stringify(event));
    
    const playAudio = () => {
      return {
        Type: 'PlayAudio',
        Parameters: {
          ParticipantTag: 'LEG-A',
          AudioSource: {
            Type: 'S3',
            BucketName: 'chime-meetings-audio-files-bucket-name',
            Key: 'welcome.wav'
          }
        }
      }
    }
    
    const joinChimeMeeting = (joinToken) => {
      return {
        Type: 'JoinChimeMeeting',
        Parameters: {
          JoinToken: joinToken
        }
      }
    }
    
    const response = (...actions) => {
      const r = {
        SchemaVersion: '1.0',
        Actions: actions
      };
      console.log('Response: ' + JSON.stringify(r));
      return r;
    };
    
    switch (event.InvocationEventType) {
      case 'NEW_INBOUND_CALL': 
        myMeetingServiceClient.addPendingCall(event.CallDetails.TransactionId);         
        return response(playAudio());      
      case 'CALL_UPDATE_REQUESTED':
        const joinToken = event.ActionData.Parameters.Arguments['JoinToken']
        return response(joinChimeMeeting(joinToken));
      default:
        return response();
    }
}
```

# Beenden eines Anrufs mithilfe des Amazon Chime SDK PSTN-Audiodienstes
<a name="case-5"></a>

Sie können die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API verwenden, um einen ausgehenden Anruf zu beenden. Die API ruft den Endpunkt einer angegebenen **SIP-Medienanwendungs-ID** auf. Kunden können den Ablauf des Anrufs steuern, indem sie Aktionen an die SIP-Medienanwendung zurücksenden.

Im Falle einer erfolgreichen Antwort gibt die API zusammen mit dem einen HTTP-Statuscode 202 zurück`transactionId`, den Sie zusammen mit der [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API verwenden können, um einen laufenden Anruf zu aktualisieren.

Das folgende Diagramm zeigt die Aufrufe des AWS Lambda Funktionsendpunkts für einen ausgehenden Anruf.

![\[Der Datenfluss beim Aufrufen der API. CreateSipMediaApplicationCall Die API ruft einen anderen Endpunkt auf, wenn sich der Status eines ausgehenden Anrufs ändert.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sip-api-1.png)


Der für die SIP-Medienanwendung konfigurierte Endpunkt wird für verschiedene Status des ausgehenden Anrufs aufgerufen. Wenn ein Kunde einen Anruf beendet, ruft das Amazon Chime SDK den Endpunkt mit einem `HANGUP` Aufrufereignistyp auf. 

Dieses Beispiel zeigt ein typisches Aufrufereignis für a. `HANGUP`

```
{
    "SchemaVersion": "1.0",
    "Sequence": 6,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "Direction": "Inbound",
                 "To": "+12065551212",
                "From": "+15105550101",
                "StartTimeInMilliseconds": "1597009588",
                "Status": "Disconnected"
            }
        ]
    }
}

// if LEG-B receives a hangup in a bridged call, such as a meeting ending
{
    "SchemaVersion": "1.0",
    "Sequence": 6,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "ReceiveDigits",
        "Parameters": {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "Leg-A",
                 "To": "+12065551212",
                "From": "+15105550101",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "1597009588",
                "Status": "Connected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "Leg-B",
                "To": "+17035550122",
                "From": "SMA",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "15010595",
                "Status": "Disconnected"
            }
        ]
    }
}
```

# Grundlegendes zu end-to-end Aufrufen für den Amazon Chime SDK PSTN-Audiodienst
<a name="use-cases"></a>

Dieser Anwendungsfall bietet Beispielcode für das Empfangen eines Telefonanrufs von einem PSTN-Anrufer, das Begrüßen des Anrufers mit einer Audionachricht, das Abrufen der Meeting-PIN vom Anrufer, das Abspielen von Audio und das Hinzufügen des Anrufers zur Besprechung.

**Aufrufereignisse und Aktionen**  
Der Audiodienst übergibt Aufrufereignisse als AWS Lambda JSON-Objekte an Funktionen. Die Objekte enthalten den Aufrufereignistyp und alle relevanten Metadaten. Die AWS Lambda Funktion gibt auch Aktionen von SIP-Medienanwendungen als JSON-Objekte zurück, und diese Objekte enthalten einen Aktionstyp und alle relevanten Metadaten.

In der folgenden Tabelle sind die Aufrufereignisse und die möglichen Ereignisse aufgeführt`ActionData.Type`, wenn Sie ein Aufrufereignis erhalten.


|  Aufrufereignis  |  ActionData.Typ  | 
| --- | --- | 
|  ACTION\$1ERFOLGREICH  |  CallAndBridge ReceiveDigits PlayAudio PlayAudioAndGetDigits  JoinChimeMeeting ModifyChimeMeetingAttendees RecordMeeting  | 
|  ACTION\$1FAILED  |  CallAndBridge PlayAudio PlayAudioAndGetDigits ModifyChimeMeetingAttendees RecordMeeting  | 
| AUFLEGEN |  HangUp  | 
|  ZIFFERN\$1ERHALTEN  | ReceiveDigits | 

**Anmerkung**  
Um den folgenden Anwendungsfall zu implementieren, benötigen Sie mindestens eine Telefonnummer in Ihrem Amazon Chime SDK-Inventar, ein von einer SIP-Medienanwendung verwaltetes Objekt, das eine AWS Lambda Funktion mit einem Amazon-Ressourcennamen (ARN) verwendet, und eine SIP-Regel, die die Telefonnummer als Auslöser verwendet.

Wenn das Amazon Chime SDK einen Anruf an die in der Regel angegebene Telefonnummer empfängt, ruft der PSTN-Audiodienst eine AWS Lambda Funktion mit dem `NEW_INBOUND_CALL` Aufrufereignistyp auf.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 1,
    "InvocationEventType": "NEW_INBOUND_CALL",
    "CallDetails": {
        "TransactionId": "transaction-id",
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Sie können die AWS Lambda Funktion so programmieren, dass sie die Anrufdetails validiert und für die future Verwendung speichert. Bei einer `NEW_INBOUND_CALL` Veranstaltung reagiert die AWS Lambda Funktion mit einer Reihe von Aktionen, bei denen eine Begrüßungsaufforderung abgespielt und nach der Meeting-PIN gefragt wird.

Für Audiodateien gelten die folgenden Anforderungen:
+ Sie müssen Audiodateien aus einem Amazon Simple Storage Service (S3) -Bucket abspielen. Der S3-Bucket muss zu demselben AWS Konto gehören wie die SIP-Medienanwendung. Darüber hinaus müssen Sie dem Amazon Chime SDK Voice Connector-Service Principal die `s3:GetObject` Genehmigung erteilen—`voiceconnector.chime.amazonaws.com`. Sie können dazu die S3-Konsole oder die Befehlszeilenschnittstelle (CLI) verwenden.
+ Sie müssen PCM-WAV-Dateien mit einer Größe von nicht mehr als 50 MB verwenden. Das Amazon Chime SDK empfiehlt 8 KHz mono.
+ Die S3-Metadaten für jede WAV-Datei müssen Folgendes enthalten: `{'ContentType': 'audio/wav'}`

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type" : "PlayAudio",    
            "Parameters" : {
                "CallId": "call-id-1",
                
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "welcome-to-meetings.wav"
                }
            }
        },
        {
            "Type": "PlayAudioAndGetDigits",
            "Parameters" : {
                "ParticipantTag": "LEG-A",
                
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "enter-meeting-pin.wav"
                },
                "FailureAudioSource": {
                    "Type": "S3",
                    "BucketName": "chime-meetings-audio-files-bucket-name",
                    "Key": "invalid-meeting-pin.wav"
                },
                "MinNumberOfDigits": 3,
                "MaxNumberOfDigits": 5,
                "TerminatorDigits": ["#"],
                "InBetweenDigitsDurationInMilliseconds": 5000,
                "Repeat": 3,
                "RepeatDurationInMilliseconds": 10000
            }
        }
    ]
}
```

Die SIP-Medienanwendung führt diese Aktionen auf Anrufstrecke A aus. Unter der Annahme, dass die `PlayAudioAndGetDigits` Aktion die Ziffern empfängt, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit dem `ACTION_SUCCESSFUL` Ereignistyp auf.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "ParticipantTag": "LEG-A",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "chime-meetings-audio-files-bucket-name",
                "Key": "enter-meeting-pin.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "chime-meetings-audio-files-bucket-name",
                "Key": "invalid-meeting-pin.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ReceivedDigits": "12345" // meeting PIN
    },
    "CallDetails": {
        ... // same as in previous event
    }
}
}
```

Sie können eine AWS Lambda Funktion programmieren, um den Anrufer anhand der `CallDetails` Daten zu identifizieren. Sie können auch die zuvor erhaltene Besprechungs-PIN überprüfen. Wenn Sie eine korrekte PIN angeben, verwenden Sie dann [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html)und, [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html) APIs um das Amazon Chime SDK-Meeting zu erstellen und das vom Meeting-Teilnehmer verwendete Teilnahme-Token zu generieren. Die AWS Lambda Funktion reagiert mit der Aktion, am Amazon Chime SDK-Meeting teilzunehmen.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "JoinChimeMeeting",
            "Parameters": {
                "JoinToken": "meeting-attendee-join-token"
            }
        }
    ]
}
```

Unter der Annahme, dass gültig `JoinToken` ist, nimmt die SIP-Medienanwendung am Amazon Chime SDK-Meeting teil und ruft eine AWS Lambda Funktion mit dem `ACTION_SUCCESSFUL` Ereignis auf, die die Daten aus der SIP-Medienanwendung und dem Chime Media-Service `CallDetails` enthält () `LEG-B` 

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "JoinChimeMeeting",
        "Parameters" : {
            "JoinToken": "meeting-attendee-join-token"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id", 
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "LEG-B",
                "To": "SMA",
                "From": "+17035550122",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Connected"
            }
        ]
    }
}
```

Wenn Sie zu diesem Zeitpunkt die Ausführung von Aktionen für den Anruf oder die Anrufabteilung beenden möchten, können Sie mit einer leeren Gruppe von Aktionen antworten.

```
{
    "SchemaVersion": "1.0"
    "Actions": []
}
```

Nachdem der Anrufer aufgelegt hat, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit dem `HANGUP` Ereignis auf. 

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "HANGUP",
    "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        }
    },
    "CallDetails": {
        "TransactionId": "transaction-id", 
        "AwsAccountId": "aws-account-id",
        "AwsRegion": "us-east-1",
        "SipRuleId": "sip-rule-id",
        "SipApplicationId": "sip-application-id",
        "Participants": [
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                "To": "+11234567890",
                "From": "+19876543210",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Disconnected"
            },
            {
                "CallId": "call-id-2",
                "ParticipantTag": "LEG-B",
                "To": "SMA",
                "From": "+17035550122",
                "Direction": "Outbound",
                "StartTimeInMilliseconds": "159700958834234",
                "Status": "Disconnected"
            }
        ]
    }
}
```

Wenn Sie auf ein `Hangup` Ereignis mit einer Aktion antworten, ignoriert die SIP-Medienanwendung die Aktion, sofern keine andere Anwendung ein of `Participants` anzeigt. `Status` `Connected`

# Beantworten von Aufrufen mit Aktionslisten mithilfe des Amazon Chime SDK PSTN-Audiodienstes
<a name="invoke-on-call-leg"></a>

Sie können auf ein Aufrufereignis mit einer Liste von Aktionen antworten, die für die einzelnen Teilnehmer eines AWS Lambda Anrufs ausgeführt werden. Sie können mit maximal 10 Aktionen pro AWS Lambda Aufruf antworten und eine AWS Lambda Funktion 1.000 Mal pro Anruf aufrufen.

Standardmäßig wird bei SIP-Medienanwendungen ein Timeout ausgelöst, wenn eine Lambda-Funktion nach 20 Sekunden nicht reagiert.

Das folgende Beispiel zeigt die allgemeine Antwortstruktur.

```
{
    "SchemaVersion": "1.0",
    "Actions": [        
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "bucket-name",
                    "Key": "audio-file.wav"
                }
            }
        },
        {
            "Type": "RecordAudio",
            "Parameters": {
                "DurationInSeconds": "10",
                "RecordingTerminators": ["#"],
                "RecordingDestination": {
                    "Type": "S3",
                    "BucketName": "bucket-name"
                }
            }
        }
    ]
}
```

Wenn die AWS Lambda Funktion die Liste der Aktionen an die SIP-Medienanwendung zurückgibt, werden die folgenden Vorgänge ausgeführt:

1. Die Anwendung beendet die Ausführung der aktuellen Aktion bei einem Anruf.

1. Die Anwendung ersetzt dann den alten Aktionssatz durch einen neuen Satz von Aktionen, die vom letzten Aufrufereignis empfangen wurden.

Wenn die SIP-Medienanwendung einen `NULL` Aktionssatz empfängt, behält sie die vorhandenen Aktionen bei. 

# Unterstützte Aktionen für den Amazon Chime SDK PSTN-Audiodienst
<a name="specify-actions"></a>

Sie können in einer Antwort von einer Funktion verschiedene Arten von Signalisierung und Medienaktionen angeben. AWS Lambda Jede Aktion hat unterschiedliche Eigenschaften. Die folgenden Themen enthalten Beispielcode und erklären, wie die Aktionen verwendet werden.

**Topics**
+ [Die Verwendung von TransactionAttributes](transaction-attributes.md)
+ [Verwenden der Anrufaufzeichnung](sip-apps-call-record.md)
+ [CallAndBridge](call-and-bridge.md)
+ [Hangup](hangup.md)
+ [JoinChimeMeeting](join-chime-meeting.md)
+ [ModifyChimeMeetingAttendee(Audio stummschalten und Stummschaltung aufheben)](mute-unmute.md)
+ [Pause](pause.md)
+ [PlayAudio](play-audio.md)
+ [PlayAudioAndGetDigits](play-audio-get-digits.md)
+ [ReceiveDigits](listen-to-digits.md)
+ [RecordAudio](record-audio.md)
+ [SendDigits](send-digits.md)
+ [Speak](speak.md)
+ [SpeakAndGetDigits](speak-and-get-digits.md)
+ [StartBotConversation](start-bot-conversation.md)

# Die Verwendung von TransactionAttributes
<a name="transaction-attributes"></a>

Sie verwenden die `TransactionAttributes` Datenstruktur, um anwendungsspezifische Informationen wie Anrufstatus oder IDs Besprechungen zu speichern und diese Daten dann an AWS Lambda-Aufrufe weiterzuleiten. Diese Struktur macht das Speichern von Daten in externen Datenbanken wie Amazon DynamoDB überflüssig. 

`TransactionAttributes`sind [JSON-Objekte](https://www.w3schools.com/js/js_json_objects.asp), die key/value pairs. The objects can contain a maximum of 100 key/value Paare enthalten, und die Objekte haben eine maximale Nutzlastgröße von 20 KB. Die Daten in einer `TransactionAttributes` Struktur bleiben für die gesamte Lebensdauer einer Transaktion bestehen.

Wenn eine AWS Lambda Funktion `TransactionAttributes` an eine SIP-Medienanwendung übergeben wird, aktualisiert die Anwendung alle gespeicherten Attribute. Wenn Sie ein `TransactionAttributes` Objekt mit einem vorhandenen Schlüsselsatz übergeben, aktualisieren Sie die gespeicherten Werte. Wenn Sie einen anderen Schlüsselsatz übergeben, ersetzen Sie die vorhandenen Werte durch die Werte aus diesem anderen Schlüsselsatz. Wenn Sie eine leere Map (`{}`) übergeben, werden alle gespeicherten Werte gelöscht.

**Topics**
+ [Einstellung TransactionAttributes](set-trans-attributes.md)
+ [Aktualisieren TransactionAttributes](update-trans-attributes.md)
+ [Wird gelöscht TransactionAttributes](clear-trans-attributes.md)
+ [Handhabung ACTION\$1SUCCESSFUL Veranstaltungen](attribute-trans-success.md)
+ [Ungültige Eingaben](attribute-trans-invalid.md)

# Einstellung TransactionAttributes
<a name="set-trans-attributes"></a>

Das folgende Beispiel zeigt, wie Sie `TransactionAttributes` parallel zu einer [PlayAudio](play-audio.md) Aktion festlegen und die Attribute von einer AWS Lambda Funktion an eine SIP-Medienanwendung übergeben.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "key1": "value1",
        "key2": "value2"
    }
}
```

# Aktualisieren TransactionAttributes
<a name="update-trans-attributes"></a>

Um gespeicherte Daten zu ändern`TransactionAttributes`, aktualisieren Sie den Inhalt des JSON-Objekts mit neuen Werten. Im folgenden Beispiel `NewKey2` werden die Schlüssel `NewKey1` und zu den hinzugefügt`TransactionAttributes`. Diese Schlüssel sind jeweils mit den Werten `NewValue1` `NewValue2` und verknüpft.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "NewKey1": "NewValue1",
        "NewKey2": "NewValue2"
    }
}
```

Wenn Sie im vorherigen Beispiel `NewValue1` an übergeben haben`key1`, `key1` würde der bestehende Wert von durch ersetzt werden`NewValue1`. Wenn Sie jedoch einen Wert an übergeben, `NewKey1` wird ein neues Schlüssel/Wert-Paar erstellt.

# Wird gelöscht TransactionAttributes
<a name="clear-trans-attributes"></a>

Um den Inhalt des `TransactionAttributes` Objekts zu löschen, übergeben Sie das `TransactionAttributes` Feld mit einem leeren JSON-Objekt:

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
    }
}
```

**Anmerkung**  
Sie können Daten nicht aus einer `TransactionAttributes` Struktur löschen, indem Sie ihren Wert auf setzen`null`. Außerdem werden ihre Daten nicht gelöscht, wenn die `TransactionAttribute` Struktur weggelassen wird. Übergeben Sie immer ein leeres JSON-Objekt`TransactionAttributes`, um Daten aus dem Objekt zu löschen.

# Handhabung ACTION\$1SUCCESSFUL Veranstaltungen
<a name="attribute-trans-success"></a>

Das folgende Beispiel zeigt, wie erfolgreich die gespeicherten Daten `TransactionAttributes` als Teil von [PlayAudio](play-audio.md) gesendet werden`CallDetails `.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "ACTION_SUCCESSFUL", 
    "ActionData": { 
        "Type": "PlayAudio", 
        "Parameters": { 
            "AudioSource": { 
                "Type": "S3", 
                "BucketName": "mtg1-sipmedia-app-iad", 
                "Key": "Welcome3.wav" 
            }, 
            "Repeat": 1, 
            "ParticipantTag": "LEG-A" 
        } 
    }, 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "TransactionAttributes": { 
            "key1": "value1", 
            "key2": "value2" 
        }, 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "bbff30c5-866a-41b5-8d0a-5d23d5e19f3e", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644539405907", 
                "Status": "Connected" 
            } 
        ] 
    } 
}
```

# Ungültige Eingaben
<a name="attribute-trans-invalid"></a>

Das folgende Beispiel zeigt eine ungültige Eingabe. In diesem Fall übergibt das JSON-Objekt zu viele Elemente an eine SIP-Medienanwendung.

```
{ 
    "SchemaVersion": "1.0", 
    "Actions": [ 
        { 
            "Type": "PlayAudio", 
            "Parameters": { 
                "ParticipantTag": "LEG-A", 
                "AudioSource": { 
                    "Type": "S3", 
                    "BucketName": "mtg1-sipmedia-app-iad", 
                    "Key": "Welcome3.wav" 
                } 
            } 
        } 
    ], 
    "TransactionAttributes": { 
        "key1": "value1", 
        "key2": "value2", 
        "key3": "value3", 
        "key4": "value4", 
        "key5": "value5", 
        "key6": "value6", 
        "key7": "value7", 
        "key8": "value8", 
        "key9": "value9", 
        "key10": "value10", 
        "key11": "value11" 
    } 
}
```

Das folgende Beispiel zeigt die Antwort auf die zuvor angegebene Eingabe. Diese Ausgabe wird von einer SIP-Medienanwendung zurück an die AWS Lambda-Funktion übergeben, die die Anwendung aufgerufen hat.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "INVALID_LAMBDA_RESPONSE", 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "72cbec69-f098-45d8-9ad6-e26cb9af663a", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644540839987" 
            } 
        ] 
    }, 
    "ErrorType": "TransactionAttributesInvalidMapSize", 
    "ErrorMessage": "Transaction Attributes has too many mappings. Maximum number of mappings is 10" 
}
```

# Verwenden der Anrufaufzeichnung
<a name="sip-apps-call-record"></a>

Mit den Aktionen zur Anrufaufzeichnung für SIP-Medienanwendungen können Sie Lösungen für die Anrufaufzeichnung und die Transkription nach einem Anruf für eine Vielzahl von Anwendungen erstellen. Sie können beispielsweise Kundendienstanrufe aufzeichnen und sie für Schulungen verwenden.

Sie verwenden die Aktionen zur Anrufaufzeichnung zusammen mit Ihren SIP-Medienanwendungen. Sie können die Aktionen auch bei Bedarf oder als Reaktion auf ein SIP-Ereignis verwenden. 
+ Um die On-Demand-Aufzeichnung eines Anrufs in Ihrer SIP-Medienanwendung zu starten, verwenden Sie die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice_chime_UpdateSipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice_chime_UpdateSipMediaApplication.html)API, um Ihre Anwendung aufzurufen und die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartCallRecording.html)Aktion zurückzugeben. 
+ Um die Anrufaufzeichnung als Reaktion auf ein SIP-Ereignis zu starten, geben Sie die `StartCallRecording` Aktion in Ihrer Anwendung zurück. 

Sie können eine laufende Aufzeichnung anhalten und fortsetzen. Verwenden Sie die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PauseCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PauseCallRecording.html)Aktion, um eine Pause einzulegen. Verwenden Sie die `ResumeCallRecording` Aktion, um fortzufahren. Jedes Mal, wenn Sie eine Aufnahme anhalten oder fortsetzen, erfasst die Aktion einen Ton, der auf die Pause oder Wiederaufnahme hinweist. Wenn Sie pausieren, zeichnet die Aktion Stille auf, was Amazon Chime SDK verwendet, um die Dauer der Pause zu verfolgen und die Pausen in Ihre Rechnung aufzunehmen. Sie können die Aufnahme so oft wie nötig anhalten und fortsetzen.

Um die Anrufaufzeichnung zu beenden, geben Sie die [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopCallRecording.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopCallRecording.html)Aktion zurück. Die Anrufaufzeichnungen werden jedoch automatisch beendet, wenn der Anruf beendet wird. In diesem Fall müssen Sie die `StopCallRecording` Aktion nicht explizit zurückgeben. Sie können die Aufzeichnung für einen einzelnen Anrufabschnitt nur einmal starten und beenden.

Das Amazon Chime SDK übermittelt Anrufaufzeichnungen an einen Amazon S3 S3-Bucket, den Sie auswählen. Der Bucket muss zu Ihrem AWS Konto gehören. Sobald ein Anruf beendet ist, überträgt die SIP-Medienanwendung die Aufzeichnung in den Ordner, der im `Destination` Parameter der [StartCallRecording](start-call-recording.md) Aktion angegeben ist. Das Amazon Chime SDK zeichnet Anrufe in einem offenen WAV-Format auf. Anrufe, die eingehende und ausgehende Titel aufzeichnen, verwenden den Stereomodus, wobei sich der eingehende Titel im linken Kanal und der ausgehende Titel im rechten Kanal befindet. Wenn Sie nur den eingehenden oder ausgehenden Titel aufnehmen, verwendet das System den Monomodus.

**Anmerkung**  
Aufzeichnungen, die mit dieser Funktion aufgenommen werden, können Gesetzen oder Vorschriften in Bezug auf die Aufzeichnung elektronischer Kommunikation unterliegen. Es liegt in Ihrer Verantwortung und Ihren Endnutzern, alle geltenden Gesetze in Bezug auf die Aufzeichnung einzuhalten. Dazu gehört auch, alle Teilnehmer einer aufgezeichneten Sitzung oder Kommunikation ordnungsgemäß darüber zu informieren, dass die Sitzung oder Kommunikation aufgezeichnet wird, und deren Zustimmung einzuholen.

## Abrechnung für die Anrufaufzeichnung
<a name="call-billing"></a>

Amazon Chime SDK berechnet Ihnen pro Minute die Zeit, in der die Anrufaufzeichnung für einen Anrufabschnitt aktiviert ist, und diese Zeit beinhaltet alle Pausen. Die Nutzung der Anrufaufzeichnung wird Ihnen in Rechnung gestellt, sobald die Anrufaufzeichnung an Ihren Amazon S3 S3-Bucket gesendet wurde.

# Audiotracks aufnehmen
<a name="record-legs"></a>

Sie können nur die eingehenden oder ausgehenden Spuren eines Anrufs oder beide Spuren eines Anrufs aufzeichnen.

Dieses Bild zeigt einen typischen eingehenden Anruf mit einem Bein oder ohne Brücke. 

![\[Ein eingehender Anruf, der nur mit einer SIP-Medienanwendung kommuniziert.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/call-record-sma-one-leg.png)


Der Anruf hat nur ein Bein mit `callID` der **Anruf-ID-1**. Die `INCOMING` Audiospur ist das Audio vom Anrufer zur SIP-Medienanwendung. Die `OUTGOING` Audiospur ist das Audio von der SIP-Medienanwendung zum Anrufer. Ihre SIP-Medienanwendung gibt den Anruf `CallId` an, den Sie aufzeichnen möchten. Um den Teilnehmer aufzuzeichnen, der den Anruf getätigt hat, geben Sie Folgendes an`INCOMING`. Um den Teilnehmer aufzuzeichnen, der auf einen Anruf reagiert, geben Sie Folgendes an`OUTGOING`. Um beide Teilnehmer aufzuzeichnen, geben Sie an`BOTH`.

Dieses Bild zeigt einen typischen Brückenanruf mit zwei Teilnehmern.

![\[Ein eingehender Anruf, der mit einer SIP-Medienanwendung und einem zweiten Teilnehmer kommuniziert.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/call-record-sma-bridged.png)


****In diesem Beispiel hat der Anruf zwei Anrufabschnitte, Anruf-ID-1 und Anruf-ID-2, und **Anruf-ID-1** wird mit **Anruf-ID-2 verbunden**.**** Dadurch werden vier Audiospuren erstellt, die eingehenden und ausgehenden Audiostreams für beide Anrufe. IDs Sie können angeben, welcher Anruf IDs und welche Audiotracks aufgezeichnet werden sollen. Wenn Sie beispielsweise die Audiospur des angerufenen Teilnehmers aufnehmen möchten, zeichnen Sie die `INCOMING` Audiospur auf, indem Sie **Anruf-ID-2** als `CallId` und `INCOMING` als Titel angeben.

Wenn Sie alles aufnehmen möchten, was der Anrufer hört, zeichnen Sie die `OUTGOING` Audiospur auf, indem Sie **Anruf-ID-1** als und als Titel angeben. `CallId` `OUTGOING` Wenn Sie den gesamten Ton aufnehmen möchten, den der Benutzer `Caller` gesagt und gehört hat, nehmen Sie `BOTH` Audiotracks auf, indem Sie als und `call-id-1` als Titel angeben. `CallId` `BOTH`

# Beispiele für Anwendungsfälle
<a name="recording-use-cases"></a>

SIP-Medienanwendungen bieten Aktionen zur Aufzeichnung von Anrufen als Bausteine. Sie bieten Ihnen die Flexibilität, Lösungen zur Anrufaufzeichnung für Ihre geschäftlichen Anwendungsfälle zu entwickeln. Die folgenden Fälle veranschaulichen einige gängige Nutzungsszenarien.

**Topics**
+ [Fall 1: Aufzeichnen eines einbeinigen Anrufs, der SIP-Aktionen beinhaltet](#recording-case-1)
+ [Fall 2: Selektives Aufnehmen von Audio in einem Brückenanruf](#recording-case-2)
+ [Fall 3: Aufzeichnen mehrerer Gesprächsabschnitte](#recording-case-3)
+ [Fall 4: Aufnahme auf Abruf mit Pause und Wiederaufnahme](#on-demand-pause-resume)

## Fall 1: Aufzeichnen eines einbeinigen Anrufs, der SIP-Aktionen beinhaltet
<a name="recording-case-1"></a>

Sie können einen Anrufer und alle Audiodaten aufzeichnen, die durch Aktionen der SIP-Medienanwendung generiert wurden, z. B. die [PlayAudio](play-audio.md) Aktionen und. [PlayAudioAndGetDigits](play-audio-get-digits.md) Wenn ein Anrufer während der Aufnahme eine Ziffer drückt, erfasst die Aufnahme den Ton dieser Ziffer. In diesem Beispiel wird die `PlayAudioAndGetDigits` Aktion verwendet, aber bei der interaktiven Sprachantwort (IVR) kann es sich um eine komplexe Reihe von Aktionen für SIP-Medienanwendungen handeln.

In diesem Beispiel zeichnet die SIP-Medienanwendung beide Audiospuren zwischen dem Anrufer und der SIP-Medienanwendung selbst auf. Die Aufnahme beginnt, wenn der Anruf hergestellt ist, und sie stoppt, wenn der Anrufer auflegt. Die Abrechnung beginnt, wenn der Anruf hergestellt ist, und endet, wenn der Anrufer auflegt.

![\[Diagramm einer SIP-Medienanwendung, die zwei Audiotracks aufzeichnet, in diesem Fall zwischen einem Anrufer und der App selbst.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sma-recording-case-1.png)


## Fall 2: Selektives Aufnehmen von Audio in einem Brückenanruf
<a name="recording-case-2"></a>

Sie können die Audiospur eines einzelnen Gesprächsteilnehmers selektiv aufnehmen. Sie können diese Funktion verwenden, um die Anrufaufzeichnung selektiv nur für einen bestimmten Teilnehmer zu aktivieren.

In diesem Beispiel zeichnet die SIP-Medienanwendung die eingehenden Audiotracks zwischen dem angerufenen Teilnehmer und der SIP-Medienanwendung selbst auf, indem sie **Call-ID-2** als `CallId` und `INCOMING` als Track angibt. Die Anrufaufzeichnung beginnt, wenn der Anrufer mit dem angerufenen Teilnehmer verbunden ist, und zu diesem Zeitpunkt beginnt auch die Abrechnung. Die Aufzeichnung wird beendet, wenn der angerufene Teilnehmer auflegt, und damit endet auch die Abrechnung. Diese Aufnahme enthält nur die Audiospur des angerufenen Teilnehmers. 

![\[Diagramm einer SIP-Medienanwendung, die selektiv einen Titel aufzeichnet.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sma-recording-case-2.png)


## Fall 3: Aufzeichnen mehrerer Gesprächsabschnitte
<a name="recording-case-3"></a>

Sie können mehrere Anrufabschnitte aufzeichnen. Nehmen wir zum Beispiel an, Sie überbrücken einen Anruf mit einem Teilnehmer. Wenn dieser Teilnehmer auflegt, wird der Anruf an einen anderen Teilnehmer weitergeleitet. Sie können die Anrufaufzeichnung für alle drei Gesprächsabschnitte aktivieren. 

Dieses Beispiel zeigt drei separate Aufnahmedateien. In der Aufzeichnung des ersten Gesprächsabschnitts wird die Konversation zwischen dem Anrufer, Ihrer Anwendung und den beiden Teilnehmern aufgezeichnet, die in den Anruf eingebunden wurden. In der Aufzeichnung für den zweiten Gesprächsabschnitt wird das Gespräch zwischen dem Anrufer und dem ersten Teilnehmer aufgezeichnet. In der Aufzeichnung für den dritten Gesprächsabschnitt wird das Gespräch zwischen dem Anrufer und dem zweiten Teilnehmer aufgezeichnet. 

In diesem Fall entstehen drei Anrufabschnitte, und die Abrechnung erfolgt für den Anfang und das Ende jedes Anrufabschnitts. Anders ausgedrückt: Das System überträgt drei Aufzeichnungen an Ihren S3-Bucket, und jede Aufzeichnung wird Ihnen in Rechnung gestellt. 

![\[Diagramm einer SIP-Medienanwendung, die mehrere Anrufabschnitte aufzeichnet.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sma-recording-case-3.png)


## Fall 4: Aufnahme auf Abruf mit Pause und Wiederaufnahme
<a name="on-demand-pause-resume"></a>

Sie können die Anrufaufzeichnung bei Bedarf mithilfe der [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API starten, beenden, anhalten und fortsetzen. Sie können eine Client-Anwendung erstellen, die die `UpdateSipMediaApplicationCall` API aufruft und Ihre SIP-Medienanwendung aufruft, um Aktionen zur Anrufaufzeichnung zurückzugeben.

Ihre Endbenutzer verwenden die Client-Anwendung, um die Anrufaufzeichnung zu steuern. In einem Call Center würde ein Agent beispielsweise eine Desktop-Client-Anwendung verwenden, um bei Bedarf Anrufaufzeichnungsaktionen auszulösen. Im Callcenter-Beispiel könnte der Agent den Anrufer um Erlaubnis bitten, den Anruf aufzuzeichnen, und er kann in der Client-Anwendung klicken, um die Aufzeichnung zu starten, sobald der Anrufer zustimmt. In einem anderen Beispiel muss der Anrufer möglicherweise Informationen wie eine Sozialversicherungsnummer (SSN) angeben. Die Callcenter-Richtlinie verlangt jedoch, dass der Agent keine Informationen wie die SSN eines Kunden aufzeichnet. Der Mitarbeiter kann auf die Anwendung klicken, um die Aufzeichnung anzuhalten, während der Kunde die Informationen bereitstellt, und dann erneut klicken, um die Aufzeichnung fortzusetzen. Sobald der Agent die Anfrage des Anrufers bearbeitet hat, klickt der Agent auf die Anwendung, um die Aufzeichnung zu beenden, und beendet den Anruf.

In diesem Anwendungsfall zeichnet die SIP-Medienanwendung die Audiotracks zwischen dem Anrufer und der SIP-Medienanwendung auf. Da das `call-id-1` Bein mit dem `call-id-2` Bein verbunden ist, zeichnet das System den Ton auf beiden Beinen auf, dem Anrufer und dem Angerufenen. Die Aufzeichnung und die Abrechnung beginnen, wenn die `UpdateSipMediaApplicationCall` API die Aktion aufruft. `StartCallRecording` Die Aufzeichnung und die Abrechnung werden beendet, wenn die `UpdateSipMediaApplicationCall` API die Aktion aufruft. `StopCallRecording` Zur Erinnerung: Wenn Sie die Aufzeichnung pausieren, ändert sich ihre Dauer nicht, und alle Pausen werden Ihnen in Rechnung gestellt. 

![\[Diagramm einer SIP-Medienanwendung, die bei Bedarf aufzeichnet, wobei die Aufnahme angehalten und wieder aufgenommen wird.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/sma-recording-on-demand.png)


# Aktionen zur Anrufaufzeichnung für SIP-Medienanwendungen
<a name="use-recording-apis"></a>

In der AWS Lambda Funktion Ihrer SIP-Medienanwendung können Sie in einer Antwort verschiedene Aktionen zur Anrufaufzeichnung angeben. Die folgenden Themen enthalten Beispielcode und erklären, wie die Aktionen verwendet werden.

**Topics**
+ [StartCallRecording](start-call-recording.md)
+ [StopCallRecording](stop-call-recording.md)
+ [PauseCallRecording](pause-call-recording.md)
+ [ResumeCallRecording](resume-call-recording.md)

# StartCallRecording
<a name="start-call-recording"></a>

Die `StartCallRecording` Aktion startet die Aufzeichnung eines Anrufabschnitts. Sie starten die Anrufaufzeichnung in Ihren SIP-Medienanwendungen, entweder bei Bedarf oder als Reaktion auf ein SIP-Ereignis.
+ Um die On-Demand-Aufzeichnung eines Anrufs zu starten, verwenden Sie die `UpdateSipMediaApplication` API, um Ihre Anwendung aufzurufen und die `StartCallRecording` Aktion zurückzugeben.
+ Um die Anrufaufzeichnung als Reaktion auf ein SIP-Ereignis zu starten, geben Sie die `StartCallRecording` Aktion in Ihrer Anwendung zurück. 

Sie geben an, ob Sie den Audiotrack für den eingehenden Abschnitt, den ausgehenden Abschnitt oder für beide aufnehmen möchten. In den folgenden Abschnitten wird erklärt, wie die `StartCallRecording` Aktion verwendet wird.

**Anmerkung**  
Aufzeichnungen, die mit dieser Funktion aufgenommen wurden, können Gesetzen oder Vorschriften in Bezug auf die Aufzeichnung elektronischer Kommunikation unterliegen. Es liegt in Ihrer Verantwortung und Ihren Endnutzern, alle geltenden Gesetze in Bezug auf die Aufzeichnung einzuhalten. Dazu gehört auch, alle Teilnehmer einer aufgezeichneten Sitzung oder Kommunikation ordnungsgemäß darüber zu informieren, dass die Sitzung oder Kommunikation aufgezeichnet wird, und deren Zustimmung einzuholen.

**Topics**
+ [Eine StartCallRecording Aktion anfordern](#request-start)
+ [Angeben eines Aufnahmeziels](#recording-destination)
+ [Erteilen von Amazon S3 S3-Bucket-Berechtigungen](#grant-s3-perms)
+ [Aktion: erfolgreiche Antwort.](#action-successful)
+ [Aktion, Fehler, Antwort](#action-error)

## Eine StartCallRecording Aktion anfordern
<a name="request-start"></a>

Das folgende Beispiel zeigt, wie die `StartCallRecording` Aktion für `BOTH` Tracks angefordert wird.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "StartCallRecording",
            "Parameters":
            {
                "CallId": "call-id-1",
                "Track": "BOTH",
                "Destination":
                {
                    "Type": "S3",
                    "Location": "valid-bucket-name-and-optional-prefix"
                }
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Strecke**  
*Beschreibung* — Audio `Track` der Anrufaufzeichnung.  
*Zulässige Werte* — `BOTH``INCOMING`, oder `OUTGOING`  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Ziel.Typ**  
*Beschreibung* — Art des Ziels. Nur Amazon S3 ist zulässig.  
*Zulässige Werte* — Amazon S3  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Ziel.Standort**  
*Beschreibung* — Ein gültiger Amazon S3 S3-Bucket und ein optionales Amazon S3 S3-Schlüsselpräfix. Der Bucket muss über Berechtigungen für den Amazon Chime SDK Voice Connector-Service, voiceconnector.chime.amazonaws.com, verfügen.  
*Zulässige Werte* — Ein gültiger Amazon S3 S3-Pfad, für den das Amazon Chime SDK über Berechtigungen für die `s3:PutObject` Aktionen und verfügt. `s3:PutObjectAcl`  
*Erforderlich — Ja*  
*Standardwert* – Kein

## Angeben eines Aufnahmeziels
<a name="recording-destination"></a>

Das Amazon Chime SDK liefert Anrufaufzeichnungen an Ihren Amazon S3 S3-Bucket. Der Bucket muss zu Ihrem AWS Konto gehören. Sie geben den Standort des Buckets im `Destination` Parameter der `StartCallRecording` Aktion an. Das `Type` Feld im `Destination` Parameter muss sein`S3`. Das `Location` Feld besteht aus Ihrem Amazon S3 S3-Bucket sowie einem optionalen Objektschlüssel-Präfix, in dem die Anrufaufzeichnung übermittelt wird. 

Die SIP-Medienanwendung verwendet das angegebene `Location` Datum und die Uhrzeit des Anrufabschnitts, die Transaktions-ID und die Anruf-ID, um den Amazon S3 S3-Objektschlüssel zu formatieren. Die `StartCallRecording` Aktionsantwort gibt den vollständigen Amazon S3 S3-Objektschlüssel zurück.

Wenn Sie nur den Amazon S3 S3-Bucket im `Location` Feld angeben, hängt die SIP-Medienanwendung ein Standardpräfix,`Amazon-Chime-SMA-Call-Recordings`, an den Amazon S3 S3-Pfad an. Die SIP-Medienanwendung fügt außerdem das Jahr, den Monat und den Tag der Startzeit des Anrufs an, um die Aufzeichnungen zu organisieren. Das folgende Beispiel zeigt das allgemeine Format eines Amazon S3-Pfads mit dem Standardpräfix. In diesem Beispiel wird `myRecordingBucket` als `Location` Wert verwendet.

```
myRecordingBucket/Amazon-Chime-SMA-Call-Recordings/2019/03/01/2019–03–01–17–10–00–010_c4640e3b–1478–40fb-8e38–6f6213adf70b_7ab7748e–b47d–4620-ae2c–152617d3333c.wav
```

Das folgende Beispiel zeigt die Daten, die im Amazon S3 S3-Pfad für die Anrufaufzeichnung dargestellt werden.

```
s3Bucket/Amazon-Chime-SMA-Call-Recordings/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

Wenn Sie den Amazon S3 S3-Bucket und das Objektschlüsselpräfix in das `Location` Feld eingeben, verwendet die SIP-Medienanwendung Ihr Objektschlüsselpräfix im Amazon S3 S3-Zielpfad anstelle des Standardpräfixes. Das folgende Beispiel zeigt das allgemeine Format eines Amazon S3 S3-Pfads für die Anrufaufzeichnung mit Ihrem Präfix. Sie können beispielsweise myRecordingBucket /TechnicalSupport/English als. `Location` 

```
myRecordingBucket/technicalSupport/english/2019/03/01/2019–03–01–17–10–00–010_c4640e3b1478–40fb–8e38-6f6213adf70b_7ab7748e–b47d–4620–ae2c–152617d3333c.wav
```

Das folgende Beispiel zeigt die Daten im Amazon S3-Pfad.

```
s3Bucket/yourObjectKeyPrefix/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

Die an Ihren Amazon S3 S3-Bucket gesendete Aufzeichnung enthält zusätzliche [Amazon S3 S3-Objektmetadaten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) über den Anrufabschnitt. In der folgenden Tabelle sind die unterstützten Amazon S3 S3-Objektmetadaten aufgeführt.


| Name | Description | 
| --- | --- | 
| Transaktions-ID | Transaktions-ID des Telefonanrufs | 
| Anruf-ID | CallId des Teilnehmers am CallDetails Funktionsaufruf AWS Lambda  | 
| Dauer der Aufnahme | Dauer der Anrufaufzeichnung in Sekunden | 
| recording-audio-file-format | Das Audiodateiformat für die Anrufaufzeichnung wird als Internet-Medientyp dargestellt | 

## Erteilen von Amazon S3 S3-Bucket-Berechtigungen
<a name="grant-s3-perms"></a>

Ihr Amazon S3 S3-Ziel-Bucket muss zu demselben AWS Konto gehören wie Ihre Anwendung. Darüber hinaus muss die Aktion dem Amazon Chime SDK Voice Connector Service Principal eine `s3:PutObjectAcl` Genehmigung erteilen. `s3:PutObject` `voiceconnector.chime.amazonaws.com` Im folgenden Beispiel wird die entsprechende Genehmigung erteilt. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

Der PSTN-Audiodienst liest und schreibt im Namen Ihrer Sip-Medienanwendung in Ihren S3-Bucket. Um das [Problem mit dem verwirrten Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) zu vermeiden, können Sie die S3-Bucket-Berechtigungen auf eine einzelne SIP-Medienanwendung beschränken.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

## Aktion: erfolgreiche Antwort.
<a name="action-successful"></a>

Wenn die Anrufaufzeichnung für einen Anrufabschnitt erfolgreich gestartet wurde, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dem `ACTION_SUCCESSFUL` Ereignistyp auf. Der Ort der Anrufaufzeichnung wird in der Antwort zurückgegeben. 

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "CallRecordingDestination": {
            "Type": "S3",
            "Location": "call-recording-bucket-and-key"
        }
    }
    "CallDetails": {
        ...
    }
}
```

## Aktion, Fehler, Antwort
<a name="action-error"></a>

Bei Validierungsfehlern ruft die SIP-Medienanwendung die AWS Lambda Funktion mit der entsprechenden Fehlermeldung auf. In der folgenden Tabelle sind die Fehlermeldungen aufgeführt.




| Fehler | Fehlermeldung | Grund | 
| --- | --- | --- | 
| `InvalidActionParameter` | `CallId`Der Aktionsparameter ist ungültig | Jeder Parameter ist ungültig. | 
| `SystemException` | Systemfehler beim Ausführen einer Aktion. | Beim Ausführen einer Aktion ist ein anderer Systemfehler aufgetreten. | 

Wenn die Aktion die Medien eines Anrufabschnitts nicht aufzeichnet, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dem `ActionFailed` Ereignistyp auf. 

Das folgende Beispiel zeigt eine typische Fehlerreaktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "Error": "NoAccessToDestination: Error while accessing destination"
    }
    "CallDetails": {
        ...
    }
}
```

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# StopCallRecording
<a name="stop-call-recording"></a>

Die `StopCallRecording` Aktion stoppt die Aufzeichnung eines Anrufabschnitts. Die Aufzeichnung wird automatisch beendet, wenn ein Anruf beendet wird, und Ihre Anwendung muss die `StopCallRecording` Aktion nicht explizit zurückgeben. Sobald die Aufzeichnung für einen Anrufabschnitt beendet ist, kann sie nicht erneut gestartet werden, und die Aufzeichnung wird an das in der `StartCallRecording` Aktion angegebene Ziel übertragen. 

Im folgenden Beispiel wird die Aufzeichnung für den `call-id-1` Anrufabschnitt beendet. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "StopCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# PauseCallRecording
<a name="pause-call-recording"></a>

Die `PauseCallRecording` Aktion unterbricht die Aufzeichnung eines Anrufabschnitts. Jedes Mal, wenn Sie eine Aufnahme unterbrechen, erfasst die Aufnahme einen Ton, der die Pause anzeigt. Wenn Sie eine Pause einlegen, wird die Aufnahme fortgesetzt, es wird jedoch nur Stille erfasst. Das Anhalten der Aufnahme hat keinen Einfluss auf die Gesamtdauer der Aufnahme. Sie können die Aufnahme so oft wie nötig anhalten und fortsetzen.

Im folgenden Beispiel wird die Aufnahme angehalten. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "PauseCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# ResumeCallRecording
<a name="resume-call-recording"></a>

Die `ResumeCallRecording` Aktion setzt die Aufzeichnung eines Gesprächsabschnitts fort. Bevor die Aufnahme erneut gestartet wird, wird ein kurzer Ton abgespielt. Sie können eine Aufnahme für die Dauer des Anrufs mehrmals anhalten und fortsetzen. 

Im folgenden Beispiel wird die Aufnahme fortgesetzt. 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "ResumeCallRecording",
            "Parameters": {
                "CallId": "call-id-1"
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# CallAndBridge
<a name="call-and-bridge"></a>

Erstellt einen ausgehenden Anruf an eine PSTN-Telefonnummer oder an einen SIP-Trunk, der als Amazon Chime SDK Voice Connector oder Amazon Chime SDK Voice Connector-Gruppe konfiguriert ist, und verbindet ihn dann mit einem bestehenden Anruf. Sie verwenden `PSTN` es, wenn Sie eine Telefonnummer anrufen und `AWS` wenn Sie einen SIP-Trunk anrufen. 

Ein vorhandener Anruf kann ein ausgehender Anruf sein, der mithilfe der [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API erstellt wurde, oder ein eingehender Anruf, der durch eine SIP-Regel erstellt wurde, die die AWS Lambda Funktion mit einem Ereignis aufruft. `NewInboundCall` Wenn Sie eine `CallAndBridge` Aktion für einen Voice Connector- oder Voice Connector-Gruppenendpunkt implementieren, müssen Sie die Amazon-Ressourcennummer (ARN) des Voice Connectors oder der Voice Connector-Gruppe angeben.

Sie können ausgehenden Anrufen und AWS Lambda Funktionen auch benutzerdefinierte SIP-Header hinzufügen. Mit benutzerdefinierten Headern können Sie Werte wie Stockwerknummern und Postleitzahlen übergeben. Weitere Informationen zu benutzerdefinierten Überschriften finden Sie unter. [Verwenden von SIP-Headern im Amazon Chime SDK PTSN-Audiodienst](sip-headers.md)

Wenn Sie die Call- und Bridge-Funktion verwenden, ist es wichtig zu beachten, dass jeder Anruf auf die Anzahl der aktiven gleichzeitigen Anrufe angerechnet wird, die zur Berechnung der SMA-Limits für aktive Anrufe verwendet wird. Vor diesem Hintergrund sollten Sie bei der Verwaltung Ihrer SMA Active Call Limits für Call und Bridge 2 Anrufe pro 1 Call- und Bridge-Aktion zählen. Weitere Informationen finden Sie unter [SIP-Trunking und Sprachkontingente](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) im *Allgemeine AWS-Referenz*.

Der folgende Beispielcode zeigt eine typische Aktion, die eine Verbindung zu einem PSTN-Endpunkt herstellt.

```
{
    "SchemaVersion": "1.0",
    "Actions": [{
            "Type": "CallAndBridge",
            "Parameters": {
                "CallTimeoutSeconds": 30,
                "CallerIdNumber": "e164PhoneNumber", // required            
                "Endpoints": [{
                    "BridgeEndpointType": "PSTN", // required
                    "Uri": "e164PhoneNumber", // required                       
                }],
            }
        }
    ]
}
```

Das folgende Beispiel zeigt eine typische Aktion, die einen Voice Connector oder eine Voice Connector-Gruppe sowie einen benutzerdefinierten SIP-Header verwendet.

```
{
   "SchemaVersion":"1.0",
   "Actions":[
      {
         "Type":"CallAndBridge",
         "Parameters":{
            "CallTimeoutSeconds":30,
            "CallerIdNumber": "e164PhoneNumber", // required
            "RingbackTone": { // optional
                    "Type": "S3",
                    "BucketName": "s3_bucket_name",
                    "Key": "audio_file_name"
                },
            "Endpoints":[
               {
                  "BridgeEndpointType":"AWS", // enum type, required                                  
                  "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs" //VC or VCG ARN, required for AWS endpoints
                  "Uri":"ValidString", // required, see description below  
               }
            ],
            "SipHeaders": { 
                "x-String":"String"
            }
         }
      }
   ]
}
```

**CallTimeoutSeconds**  
*Beschreibung* — Das Intervall vor dem Timeout eines Anrufs. Der Timer beginnt bei der Einrichtung des Anrufs.  
*Zulässige Werte* — Zwischen 1 und 120, einschließlich  
*Erforderlich* — Nein  
*Standardwert* — 30

**CallerIdNumber**  
*Beschreibung* — Eine Nummer, die dem Kunden gehört, oder die Absendernummer der A-Strecke  
*Zulässige Werte* — Eine gültige Telefonnummer im E.164-Format  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Endpoints**  
*Beschreibung* — Die Endpunkte eines Anrufs  
*Zulässige Werte*:   
+ `BridgeEndpointType`— `AWS` für Voice Connectors und Voice Connector-Gruppen, andernfalls`PSTN`.
+ `Arn`— Der ARN eines Voice Connectors oder einer Voice Connector-Gruppe. Nur erforderlich, wenn Sie `AWS` als verwenden`BridgeEndpointType`. 
+ `Uri`— Der URI-Wert hängt vom Typ des Endpunkts ab.

  Für `PSTN` Endgeräte muss der URI eine gültige E.164-Telefonnummer sein.

  Bei `AWS` Endpunkten legt der URI-Wert den `user` Teil von fest. `Request-URI` Sie müssen das [Augmented Backus-Naur-Format](https://datatracker.ietf.org/doc/html/rfc2234) verwenden. Erforderliche Länge: zwischen 1 und einschließlich 36. Verwenden Sie die folgenden Werte: `a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, ` (`,`), (`.`)

  Der Host-Wert von `Request-URI` wird von den eingehenden Routen des Ziel-Voice Connectors abgeleitet. Das folgende Beispiel zeigt eine `CallAndBridge` Aktion mit einem `AWS` Endpunkt.

  ```
  {
     "SchemaVersion":"1.0",
     "Actions":[
        {
           "Type":"CallAndBridge",
           "Parameters":{
              "CallTimeoutSeconds":30,
              "CallerIdNumber": "+18005550122",
              "Endpoints":[
                 {
                    "BridgeEndpointType":"AWS",                                   
                    "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs", 
                    "Uri":"5550"   
                 }
              ],
              "SipHeaders": { 
                  "x-String":"String"
              }
           }
        }
     ]
  }
  ```

  Weitere Informationen zu eingehenden Routen und Voice Connectors finden Sie unter [Bearbeiten der Amazon Chime SDK Voice Connector-Einstellungen](https://docs.aws.amazon.com/chime-sdk/latest/ag/edit-voicecon.html).
*Erforderlich* — Ja  
*Standardwert* – Kein

**SipHeaders**  
*Beschreibung* — Ermöglicht es Ihnen, zusätzliche Werte zu übergeben. Nur mit dem `AWS` Endpunkttyp verwenden.  
*Zulässige Werte* — Gültiger SIP-Header  
*Erforderlich* — Nein  
*Standardwert* – Kein

Das folgende Beispiel zeigt eine erfolgreiche `CallAndBridge` Aktion, die einen PSTN-Endpunkt verwendet:

```
{
   "SchemaVersion": "1.0",
   "Sequence": 3,
   "InvocationEventType": "ACTION_SUCCESSFUL",
   "ActionData": {
      "Type": "CallAndBridge",
      "Parameters": {
         "CallTimeoutSeconds": 30,
         "CallerIdNumber": "e164PhoneNumber",
         "Endpoints":[
            {
               "BridgeEndpointType": "PSTN",
               "Uri": "e164PhoneNumber"               
            }
         ],
         "CallId": "call-id-1"
      }
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            .....   
            "Status": "Connected"
         },
         {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B",
            .....
            "Status": "Connected"
         }
      ]
   }
}
```

Das folgende Beispiel zeigt eine fehlgeschlagene `CallAndBridge` Aktion.

```
{
   "SchemaVersion": "1.0",
   "Sequence":2,
   "InvocationEventType": "ACTION_FAILED",
      "ActionData":{
      "Type": "CallAndBridge",
      "Parameters":{
         "CallTimeoutSeconds": 30,
         "CallerIdNumber": "e164PhoneNumber",
         "Endpoints": [
            {
               "BridgeEndpointType": "PSTN",
               "Uri": "e164PhoneNumber"           
            }
         ],
         "CallId": "call-id-1"
      },
      "ErrorType": "CallNotAnswered",
      "ErrorMessage": "Call not answered"
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            .....   
         }
      ]
   }
}
```

## Anrufflüsse
<a name="call-bridge-flows"></a>

Die `CallAndBridge` Aktion bietet ein anderes Anrufsignal- und Audioerlebnis für einen vorhandenen Anrufabschnitt, abhängig von den Parametern und davon, ob der Zweig verbunden ist.

Das folgende Diagramm zeigt die Anrufabläufe mit unterschiedlichen Parametern, wenn ein eingehender Anrufabschnitt A bereits verbunden ist.

![\[Der Ablauf eines beantworteten Anrufs durch die CallAndBridge Aktion.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/call-bridge-ans-2.png)


Das folgende Diagramm zeigt den Anrufablauf bei einem unbeantworteten Anruf.

![\[Der Ablauf eines unbeantworteten Anrufs während der CallAndBridge Aktion.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/SMA_Bridging_NotAns.png)


**Weitere Details**  
Erinnern Sie sich an diese Fakten über die `CallAndBridge` Aktion.
+ `CallTimeoutSeconds`— Dieser Timer startet, wenn die SIP-Einladung auf dem B-Leg gesendet wird. Sie können einen gewünschten Zielwert festlegen, dieser Wert kann jedoch von Upstream-Carriern ignoriert werden.
+ `CallerIdNumber`— Diese Telefonnummer muss dem Kunden gehören oder die Absendernummer eines A-Leg sein.
+ **Verhalten beim Auflegen und Sonderfälle** — Wenn ein Anrufabschnitt unterbrochen wird, legt der andere Anrufabschnitt den Anruf nicht automatisch auf. Wenn ein `Hangup` Ereignis an die AWS Lambda Funktion gesendet wird, muss die verbleibende Verbindung unabhängig voneinander getrennt werden. Bleibt ein Gesprächsteil hängen, wird der Anruf solange in Rechnung gestellt, bis er unterbrochen wird. Das folgende Szenario kann beispielsweise zu unerwarteten Gebühren führen:
  + Sie versuchen, eine Verbindung zu einer Zieltelefonnummer herzustellen. Das Ziel ist besetzt und der Anruf wird direkt an die Voicemail weitergeleitet. Aus Sicht des Audiodienstes ist der Wechsel zur Voicemail ein angenommener Anruf. Das A-Leg legt auf, aber das B-Leg wartet weiterhin auf die Voicemail-Nachricht. Während das B-Leg zuhört, wird Ihnen eine Rechnung gestellt.
  + Es hat sich bewährt, die AWS Lambda Funktion oder den Gesprächspartner am anderen Ende des Anrufs zu verwenden, um jeden Gesprächsabschnitt unabhängig voneinander aufzulegen.
+ **Abrechnung** — Wenn Sie Folgendes nutzen`CallAndBridge`, wird Ihnen Folgendes in Rechnung gestellt:
  + Aktive Gesprächsminuten für jeden erstellten Anrufabschnitt (A-Leg, B-Leg usw.) zum PSTN.
  + Nutzungsdauer des Audiodienstes in Minuten.

Arbeitsbeispiele finden Sie unter GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)
+ [https://github.com/aws-samples/amazon-chime-sma-call-Weiterleitung](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-on-Bedarfsaufzeichnung](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Hangup
<a name="hangup"></a>

Sendet einen `Hangup` Wert mit a `SipStatusCode` an eine beliebige Phase eines Anrufs.

Wenn der Audiodienst eine `Hangup` Aktion für einen Anrufabschnitt ausführt:
+ Bei einem Anruf mit nur einem Anrufabschnitt ruft die SIP-Medienanwendung die AWS Lambda Funktion mit einem `HANGUP` Ereignis auf und ignoriert die Antwort. Der Anruf wird dann unterbrochen.
+ Wenn bei einem Anrufabschnitt (Leg A), der mit einem anderen Anrufabschnitt (Leg B) verbunden ist, die `Hangup` Aktion dem überbrückten Anrufabschnitt (Leg B) zugeordnet ist, trennt der PSTN-Audiodienst den überbrückten Anrufabschnitt und ruft dann die Lambda-Funktion mit einem `HANGUP` Ereignis für Leg B auf. Der PSTN-Audiodienst führt dann alle Aktionen aus, die von diesem Lambda-Aufruf zurückgegeben wurden.
+ Wenn bei einem Anrufabschnitt (Leg A), der mit einem anderen Anrufabschnitt (Leg B) verbunden ist, die `Hangup` Aktion dem ursprünglichen Anrufabschnitt (Leg A) zugeordnet ist, trennt der PSTN-Audiodienst den ursprünglichen Anrufabschnitt und ruft dann die Lambda-Funktion mit einem `HANGUP` Ereignis für Leg A auf. Der PSTN-Audiodienst führt dann alle Aktionen aus, die von diesem Lambda-Aufruf zurückgegeben wurden.
+ Wenn bei einem Anrufabschnitt, der über die `JoinMeeting` Aktion zu einer Besprechung hinzugefügt wurde, die `Hangup` Aktion mit dem Besprechungsabschnitt verknüpft ist (normalerweise Abschnitt B), trennt der Anrufer die Verbindung zur Besprechung und erhält ein `ACTION_SUCCESSFUL` Ereignis für die `Hangup` Aktion.

Das folgende Beispiel zeigt eine typische `Hangup` Aktion.

```
{
    "Type": "Hangup",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "SipResponseCode": "0"
    }
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer am `CallDetails`  
*Zulässige Werte* — `LEG-A` oder `LEG-B`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**SipResponseCode**  
*Beschreibung* — Jeder der unterstützten SIP-Antwortcodes  
*Zulässige Werte* — 480 — Nicht verfügbar; 486 — Besetzt; 0 — Normaler Abbruch  
*Erforderlich — Nein*  
*Standardwert* — 0

Nachdem ein Benutzer einen Anruf beendet hat, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dem unter aufgeführten Code auf[Beenden eines Anrufs mithilfe des Amazon Chime SDK PSTN-Audiodienstes](case-5.md).

Arbeitsbeispiele finden Sie unter GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)
+ [https://github.com/aws-samples/amazon-chime-sma-call-Weiterleitung](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-Anrufbenachrichtigungen](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-Aufzeichnung bei Bedarf](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# JoinChimeMeeting
<a name="join-chime-meeting"></a>

Nehmen Sie an einem Amazon Chime SDK-Meeting teil, indem Sie dem Teilnehmer das Teilnahme-Token zur Verfügung stellen. Dazu tätigen Sie AWS SDK-Aufrufe an [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) und [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateAttendee.html) APIs um das Token zu erhalten und es in der Aktion weiterzugeben. Sehen Sie sich das folgende Beispiel an. 

**Anmerkung**  
Sie können diese Aktion nicht bei einem Brückenanruf ausführen.

```
{
    "Type": "JoinChimeMeeting",
    "Parameters": {
        "JoinToken": "meeting-attendee-join-token",
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "MeetingId": "meeting-id"
    }
}
```

**JoinToken**  
*Beschreibung* — Ein gültiges Teilnahme-Token des Amazon Chime SDK-Meeting-Teilnehmers  
*Zulässige Werte* — Gültiges Beitrittstoken  
*Erforderlich* — Ja  
*Standardwert* – Kein

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer am `CallDetails`  
*Zulässige Werte* — `LEG-A`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**MeetingId**  
*Beschreibung* — Eine gültige Amazon Chime SDK-Meeting-ID, die `JoinToken` mit dem verknüpft ist. Wenn das Meeting mit einer API im [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) erstellt wurde, ist die Meeting-ID nicht erforderlich. Wenn das Meeting mithilfe einer API im [Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html) Meetings-Namespace erstellt wurde, ist die Meeting-ID erforderlich. Die Teilnahme an der Besprechung erfolgt über den API-Endpunkt, der zur Erstellung des Meetings verwendet wurde.  
*Zulässige Werte* — Eine gültige Meeting-ID.  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

Die SIP-Medienanwendung ruft immer eine AWS Lambda Funktion auf, nachdem sie diese Aktion ausgeführt hat. Sie gibt entweder den `ACTION_SUCCESSFUL` oder den `ACTION_FAILED` Aufrufereignistyp zurück. Das folgende Beispiel zeigt eine erfolgreiche Aufrufereignisstruktur.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEvent": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "JoinChimeMeeting",
        "Parameters": {
            "JoinToken": "meeting-attendee-join-token",
            "CallId": "call-id-1"
            "ParticipantTag": "LEG-A"
        }
    }
    "CallDetails": {
        ...
    }
}
```

**Fehlerbehandlung**  
Wenn beim Bridging eines Meetings ein Validierungsfehler auftritt, ruft die SIP-Anwendung ihre AWS Lambda Funktion mit einer der in der folgenden Tabelle aufgeführten Fehlermeldungen auf.


|  Fehler  |  Fehlermeldung  |  Grund  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `JoinToken`Der Parameterwert ist ungültig.  |  Jeder der anderen Parameter der Aktion ist ungültig oder fehlt.  | 
|  `SystemException`  |  Systemfehler beim Ausführen der Aktion.  |  Beim Ausführen der Aktion ist ein anderer Systemfehler aufgetreten.  | 

Das folgende Beispiel zeigt ein typisches Fehlerereignis.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEvent": "ACTION_FAILED",
    "ActionData": {
        "Type": "JoinChimeMeeting",
        "Parameters": {
            "JoinToken": "meeting-attendee-join-token",
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A"
        },
        "Error": "ErrorJoiningMeeting: Error while joining meeting."
    }
    "CallDetails": {
        ...
    }
}
```

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-update-call](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ModifyChimeMeetingAttendee(Audio stummschalten und Stummschaltung aufheben)
<a name="mute-unmute"></a>

Ermöglicht der SIP-Medienanwendung, den Status eines Telefonie-Teilnehmers zu ändern, indem die Amazon Chime SDK-Meeting-ID und die Teilnehmerliste bereitgestellt werden.

**Anmerkung**  
Diese Aktion unterstützt derzeit Vorgänge zum Stummschalten und Aufheben der Stummschaltung für Telefonie-Teilnehmer. Außerdem muss der Benutzer mithilfe der `JoinChimeMeeting` Aktion an einem Meeting teilnehmen. Diese Aktion kann an einem oder einem `participantTag=“LEG-B”` entsprechenden ausgeführt werden`CallId`. 

Diese Aktion gilt nur für den CallLeg, der von der SIP-Medienanwendung zu LEG-B `"+` *13605550122* `"` führt, oder für den Abschnitt, der von der SIP-Medienanwendung zur Besprechung hinzugefügt wurde.

```
{
"SchemaVersion": "1.0",
  "Actions": [
    {
      "Type" : "ModifyChimeMeetingAttendees",
      "Parameters" : {
        "Operation": "Mute",
        "MeetingId": "meeting-id",
        "CallId": "call-id",
        "ParticipantTag": LEG-B",
        "AttendeeList": ["attendee-id-1", "attendee-id-2"]
      }
    }
  ]
}
```

**Operation**  
*Beschreibung* — Der Vorgang, der auf der Teilnehmerliste ausgeführt werden soll  
*Zulässige Werte* — Stummschalten, Stummschalten  
*Erforderlich* — Ja  
*Standardwert* – Kein

**MeetingId**  
*Beschreibung* — Die ID des Meetings, zu dem die Teilnehmer gehören  
*Zulässige Werte* — Eine gültige Meeting-ID. Die Person, die die Stummschaltung aktiviert oder die Stummschaltung aufheben möchte, muss ebenfalls der Besprechung angehören.  
*Erforderlich — Ja*  
*Standardwert* – Kein

**CallId**  
*Beschreibung* — Die ID des Meetings, zu dem die Teilnehmer gehören  
*Zulässige Werte* — Eine gültige Anruf-ID.  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — Das dem Teilnehmer zugewiesene Tag.  
*Zulässige Werte* — Ein gültiges Tag.  
*Erforderlich* — Nein  
*Standardwert* – Kein

**AttendeeList**  
*Beschreibung* — Liste der Teilnehmer, die stummgeschaltet oder IDs die Stummschaltung aufgehoben werden sollen  
*Zulässige Werte* — Eine Liste gültiger Teilnehmer IDs  
*Erforderlich* — Ja  
*Standardwert* — Keiner, maximal 100

Nach dem Ausführen dieser Aktion ruft der Audiodienst immer eine AWS Lambda Funktion mit dem `ACTION_FAILED` Ereignistyp `ACTION_SUCCESSFUL` oder auf. Der folgende Beispielcode zeigt ein typisches `ACTION_SUCCESSFUL` Aufrufereignis.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "ModifyChimeMeetingAttendees",
        "Parameters" : {
            "Operation": "Mute",
            "MeetingId": "meeting-id",
            "CallId": "call-id",
            "ParticipantTag": "LEG-B",
            "AttendeeList": ["attendee-id-1", "attendee-id-2"]
        }
    }
    "CallDetails": {
        ...
    }
}
```

**Fehlerbehandlung**  
Bei ungültigen Befehlsparametern oder API-Fehlern rufen SIP-Medienanwendungen eine AWS Lambda Funktion mit der für die fehlgeschlagene Anweisung oder API spezifischen Fehlermeldung auf.


|  Fehler  |  Fehlermeldung  |  Grund  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  Der `ModifyChimeMeetingAttendees Operation` Parameterwert ist ungültig  |  Der `Operation` Wert muss Stumm oder Stummschaltung aufheben sein.  | 
|     |  Der Wert des Meeting-ID-Parameters ist ungültig.  |  Die Meeting-ID ist leer.  | 
|     |  Der Parameterwert für die Teilnehmerliste ist ungültig.  |  Die Teilnehmer-ID-Liste ist leer oder sie überschreitet den Höchstwert von 100.  | 
|     |  Ungültige Aktion bei dem Anruf.  |  Der Anruf wurde nicht überbrückt.  | 
|     |  Der Anruf ist nicht mit Chime Meeting verbunden.  |  Der Teilnehmer ist nicht mit einem Chime-Meeting verbunden.  | 
|     |  Ein oder mehrere Teilnehmer nehmen nicht an dieser Besprechung teil. Alle Teilnehmer müssen an dieser Besprechung teilnehmen.  |  Der Teilnehmer ist nicht berechtigt, die Teilnehmer an der Besprechung zu ändern.  | 
|  `SystemException`  |  Systemfehler beim Ausführen der Aktion.  |  Beim Ausführen einer Aktion ist ein Systemfehler aufgetreten.  | 

Der folgende Beispielcode zeigt ein typisches Fehlerereignis:

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "ModifyChimeMeetingAttendees",
        "Parameters" : {
            "Operation": "Mute",
            "MeetingId": "meeting-id",
            "CallId": "call-id",
            "ParticipantTag": "LEG-B",
            "AttendeeList": ["attendee-id-1", "attendee-id-2"]
        },
        "ErrorType": "",
        "ErrorMessage": "",
        "ErrorList": []
    }
    "CallDetails": {
        ...
    }
}
```

Arbeitsbeispiele finden Sie unter GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-update-anrufen](https://github.com/aws-samples/amazon-chime-sma-update-call)

# Pause
<a name="pause"></a>

Unterbrechen Sie einen Anruf für eine bestimmte Zeit.

```
{
    "Type": "Pause",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "DurationInMilliseconds": "3000"
    }
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer am `CallDetails`  
*Zulässige Werte* — `LEG-A` oder `LEG-B`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**DurationInMilliseconds**  
*Beschreibung* — Dauer der Pause in Millisekunden  
*Zulässige Werte — Eine Ganzzahl* >0  
*Erforderlich* — Ja  
*Standardwert* – Kein

Arbeitsbeispiele finden Sie unter GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-Anrufbenachrichtigungen](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-Aufzeichnung bei Bedarf](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# PlayAudio
<a name="play-audio"></a>

Spielen Sie bei einem beliebigen Teil eines Anrufs eine Audiodatei ab. Das Audio kann beliebig oft wiederholt werden. Das laufende Audio kann mit den in der eingestellten DTMF-Ziffern beendet werden. `PlaybackTerminators`

Derzeit unterstützt das Amazon Chime SDK nur die Wiedergabe von Audiodateien aus dem Amazon Simple Storage Service (Amazon S3) -Bucket. Der S3-Bucket muss zu demselben AWS Konto gehören wie die SIP-Medienanwendung. Darüber hinaus müssen Sie dem Amazon Chime SDK Voice Connector-Service Principal die `s3:GetObject` Genehmigung erteilen. Sie können dies mithilfe der S3-Konsole oder der Befehlszeilenschnittstelle (CLI) tun.

Das folgende Codebeispiel zeigt eine typische Bucket-Richtlinie.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

Der Audiodienst liest und schreibt im Namen Ihrer Sip-Medienanwendung in Ihren S3-Bucket. Um das [Problem mit dem verwirrten Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) zu vermeiden, können Sie den Zugriff auf den S3-Bucket auf eine einzelne SIP-Medienanwendung beschränken.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

Das folgende Codebeispiel zeigt eine typische Aktion.

```
{
    "Type": "PlayAudio",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "PlaybackTerminators": ["1", "8", "#"],
        "Repeat": "5",
        "AudioSource": {
            "Type": "S3",
            "BucketName": "valid-S3-bucket-name",
            "Key": "wave-file.wav"
        }
    }
}
```

**CallID**  
*Beschreibung* — `CallId` des Teilnehmers am`CallDetails`.  
*Zulässige Werte* — Eine gültige Anruf-ID.  
*Erforderlich* — Nein, `ParticipantTag` wenn vorhanden.  
*Standardwert* — Keiner.

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer am`CallDetails`.  
*Zulässige Werte* — `LEG-A` oder`LEG-B`.  
*Erforderlich* — Nein, `CallId` wenn vorhanden.  
*Standardwert* — `ParticipantTag` des aufgerufenen`callLeg`. Wird ignoriert, wenn Sie angeben`CallId`.

**PlaybackTerminator**  
*Beschreibung* — Beendet die laufende Audiowiedergabe mithilfe von DTMF-Eingaben des Benutzers  
*Zulässige Werte* — Ein Array mit den folgenden Werten: „0“,“ 1“,“ 2“,“ 3“,“ 4“,“ 5“,“ 6“,“ 7“,“ 8“,“ 9“,“ \$1“,“ \$1“  
*Erforderlich* — Nein  
*Standardwert* – Kein

**Repeat**  
*Beschreibung* — Wiederholt das Audio so oft wie angegeben  
*Zulässige Werte* — Eine Ganzzahl größer als Null  
*Erforderlich* — Nein  
*Standardwert* — 1

**AudioSource.Type**  
*Beschreibung* — Art der Quelle für die Audiodatei.  
*Zulässige Werte* — S3.  
*Erforderlich* — Ja.  
*Standardwert* — Keiner.

**AudioSource.BucketName**  
*Beschreibung* — Für S3-Quelltypen muss der S3-Bucket zu demselben AWS Konto gehören wie die SIP-Anwendung. Der Bucket muss Zugriff auf den Amazon Chime SDK Voice Connector-Service Principal haben, der voiceconnector.chime.amazonaws.com lautet.  
*Zulässige Werte* — Ein gültiger S3-Bucket, für den Amazon Chime SDK Zugriff auf die `s3:GetObject` Aktion hat.  
*Erforderlich* — Ja.  
*Standardwert* — Keiner.

**AudioSource.key**  
*Beschreibung* — Für S3-Quelltypen der Dateiname aus dem S3-Bucket, der im `AudioSource.BucketName` Attribut angegeben ist.  
*Zulässige Werte* — Eine gültige Audiodatei.  
*Erforderlich* — Ja.  
*Standardwert* — Keiner.

Die SIP-Medienanwendung versucht, das Audio von der Quell-URL abzuspielen. Sie können unkomprimierte PCM-.wav-Dateien mit einer Größe von nicht mehr als 50 MB verwenden. Das Amazon Chime SDK empfiehlt 8 KHz mono.

Wenn die letzte Anweisung in einem Wählplan lautet `PlayAudio` und die Datei die Wiedergabe beendet, oder wenn ein Benutzer die Wiedergabe mit einem Tastendruck stoppt, ruft die Anwendung die AWS Lambda Funktion mit dem im folgenden Beispiel gezeigten Ereignis auf.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "valid-S3-bucket-name",
                "Key": "wave-file.wav",
         }           
     }
}
```

Wenn eine abschließende Ziffer die Audiowiedergabe stoppt, wird sie nicht wiederholt.

**Fehlerbehandlung**  
Wenn die Validierungsdatei Fehler enthält oder beim Ausführen einer Aktion ein Fehler auftritt, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dem entsprechenden Fehlercode auf.


|  Fehler  |  Fehlermeldung  |  Grund  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  Der Audioquellenparameter ist ungültig.  |  Dieser Fehler kann aus mehreren Gründen auftreten. Beispielsweise kann die SIP-Medienanwendung aufgrund von Berechtigungsproblemen oder Problemen mit der URL nicht auf die Datei zugreifen. Oder die Überprüfung der Audiodatei schlägt möglicherweise aufgrund von Format, Dauer, Größe usw. fehl.  | 
|  `SystemException`  |  Systemfehler beim Ausführen der Aktion.  |  Beim Ausführen der Aktion ist ein weiterer Systemfehler aufgetreten.   | 
|  `InvalidActionParameter`  |  CallId oder der ParticipantTag Parameter für die Aktion ist ungültig.  |  Die Aktion enthält einen ungültigen Parameter.  | 

Das folgende Codebeispiel zeigt einen typischen Aufruffehler.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "call-id-1",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file.wav"
            },
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        ...
    }
}
```

Arbeitsbeispiele finden Sie unter GitHub:
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-call-Weiterleitung](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-Anrufbenachrichtigungen](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-Aufzeichnung bei Bedarf](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-anrufen](https://github.com/aws-samples/amazon-chime-sma-update-call)

# PlayAudioAndGetDigits
<a name="play-audio-get-digits"></a>

Spielt Audio ab und sammelt DTMF-Ziffern. Tritt ein Fehler auf, z. B. wenn ein Benutzer nicht die richtige Anzahl von DTMF-Ziffern eingibt, spielt die Aktion das „Fehler“ -Audio ab und gibt dann das Haupt-Audio wieder, bis die SIP-Medienanwendung die im Parameter definierte Anzahl von Versuchen ausgeschöpft hat. `Repeat`

Sie müssen Audiodateien aus dem S3-Bucket abspielen. Der S3-Bucket muss zu demselben AWS Konto gehören wie die SIP-Medienanwendung. Darüber hinaus müssen Sie dem [Amazon Chime SDK Voice Connector-Service Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) die `s3:GetObject` Genehmigung erteilen. `voiceconnector.chime.amazonaws.com` Sie können dazu die S3-Konsole oder die CLI verwenden. 

Das folgende Codebeispiel zeigt eine typische S3-Bucket-Richtlinie.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

Der Audiodienst liest und schreibt im Namen Ihrer Sip-Medienanwendung in Ihren S3-Bucket. Um das [Problem mit dem verwirrten Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) zu vermeiden, können Sie den Zugriff auf den S3-Bucket auf eine einzelne SIP-Medienanwendung beschränken.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
                "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

Das folgende Beispiel zeigt eine typische `PlayAudioAndGetDigits` Aktion. 

```
{
    "Type" : "PlayAudioAndGetDigits",
    "Parameters" : {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A"      
        "InputDigitsRegex": "^\d{2}#$",
        "AudioSource": {
            "Type": "S3",
            "BucketName": "bucket-name",
            "Key": "audio-file-1.wav"
        },
        "FailureAudioSource": {
            "Type": "S3",
            "BucketName": "bucket-name",
            "Key": "audio-file-failure.wav"
        },
        "MinNumberOfDigits": 3,
        "MaxNumberOfDigits": 5,
        "TerminatorDigits": ["#"],        
        "InBetweenDigitsDurationInMilliseconds": 5000,
        "Repeat": 3,
        "RepeatDurationInMilliseconds": 10000
    }
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer an der `CallDetails`  
*Zulässige Werte* — `LEG-A` oder `LEG-B`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**InputDigitsRegex**  
*Beschreibung* — Ein Muster für reguläre Ausdrücke  
*Zulässige Werte* — Ein gültiges Muster für reguläre Ausdrücke  
*Erforderlich* — Nein  
*Standardwert* – Kein

**AudioSource.Type**  
*Beschreibung* — Art der Quelle für den Audiodateityp  
*Zulässige Werte* — Ein S3-Bucket  
*Erforderlich* — Ja  
*Standardwert* — `"S3"`

**AudioSource.BucketName**  
*Beschreibung* — Für `AudioSource.Type` S3-Werte muss der S3-Bucket zu demselben AWS Konto gehören wie die SIP-Medienanwendung. Der Bucket S3 muss Zugriff auf den [Amazon Chime SDK Voice Connector Service Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) haben,`voiceconnector.chime.amazonaws.com`.  
*Zulässige Werte* — Ein gültiger S3-Bucket, für den Amazon Chime SDK `s3:GetObject` Aktionszugriff hat.  
*Erforderlich* — Ja  
*Standardwert* – Kein

**AudioSource.Key**  
*Beschreibung* — Der Schlüsselname des Audioobjekts im `AudioSource.BucketName` S3-Bucket.  
*Zulässige Werte* — Gültige Audiodateien  
*Erforderlich* — Ja  
*Standardwert* – Kein

**FailureAudioSource.Type**  
*Beschreibung* — Der Schlüsselname des Audioobjekts im `FailureAudioSource.BucketName` S3-Bucket.  
*Zulässige Werte* — S3  
*Erforderlich* — Ja  
*Standardwert* – Kein

**FailureAudioSource.BucketName**  
*Beschreibung* — Für S3-Quelltypen muss der S3-Bucket demselben AWS Konto angehören wie die SIP-Medienanwendung. Der [Amazon Chime SDK Voice Connector-Service Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)`voiceconnector.chime.amazonaws.com`, muss Zugriff auf den S3-Bucket haben.  
*Zulässige Werte* — Ein gültiger S3-Bucket, für den Amazon Chime SDK `s3:GetObject` Aktionszugriff hat.  
*Erforderlich* — Ja  
*Standardwert* – Kein

**FailureAudioSource.Key**  
*Beschreibung* — Der Schlüsselname des Audioobjekts im `FailureAudioSource.BucketName` S3-Bucket.  
*Zulässige Werte* — Gültige Audiodateien  
*Erforderlich* — Ja  
*Standardwert* – Kein

**MinNumberOfDigits**  
*Beschreibung* — Die Mindestanzahl an Ziffern, die erfasst werden müssen, bevor eine Zeitüberschreitung eintritt oder die Audiodatei „Anruf fehlgeschlagen“ abgespielt wird.  
*Zulässige Werte* — >=0  
*Erforderlich* — Nein  
*Standardwert* — 0

**MaxNumberOfDigits**  
*Beschreibung* — Die maximale Anzahl von Ziffern, die erfasst werden sollen, bevor ein Stopp ohne eine letzte Ziffer beendet wird.  
*Zulässige Werte* — > `MinNumberOfDigits`  
*Erforderlich* — Nein  
*Standardwert* — 128

**TerminatorDigits**  
*Beschreibung* — Ziffern, die verwendet werden, um die Eingabe zu beenden, wenn der Benutzer weniger als die eingibt `MaxNumberOfDigits`  
*Zulässige Werte* — Eine der folgenden Ziffern: 0123456789\$1\$1  
*Erforderlich — Nein*  
*Standardwert* — \$1

**InBetweenDigitsDurationInMilliseconds**  
*Beschreibung* — Die Wartezeit in Millisekunden zwischen Zifferneingaben vor der Wiedergabe. `FailureAudio`  
*Zulässige Werte* — >0  
*Erforderlich* — Nein  
*Standardwert* — Wenn nicht angegeben, wird standardmäßig der `RepeatDurationInMilliseconds` Wert verwendet.

**Repeat**  
*Beschreibung* — Gesamtzahl der Versuche, Ziffern abzurufen  
*Zulässige Werte* — >0  
*Erforderlich* — Nein  
*Standardwert* — 1

**RepeatDurationInMilliseconds**  
*Beschreibung* — Wartezeit in Millisekunden zwischen Versuchen `Repeat`  
*Zulässige Werte* — >0  
*Erforderlich* — Ja  
*Standardwert* – Kein

Die SIP-Medienanwendung ruft ihre AWS Lambda Funktion immer auf, nachdem sie die `PlayAudioAndGetDigits` Aktion ausgeführt hat, und zwar mit dem `ACTION_FAILED` Ereignistyp `ACTION_SUCCESSFUL` oder. Wenn die Anwendung erfolgreich Ziffern erfasst hat, legt sie den `ReceivedDigits` Wert im Objekt fest. `ActionData` Das folgende Beispiel zeigt die Aufrufereignisstruktur dieser AWS Lambda Funktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            "InputDigitsRegex": "^\d{2}#$",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-1.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-failure.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    },
        "ReceivedDigits": "1234"
    },
    "CallDetails": {
        ...
    }
}
```

**Fehlerbehandlung**  
Wenn ein Validierungsfehler auftritt, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit der entsprechenden Fehlermeldung auf. In der folgenden Tabelle sind die möglichen Fehlermeldungen aufgeführt.


|  Fehler  |  Fehlermeldung  |  Grund  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  Der Wert des Audioquellenparameters ist ungültig.  |  Dieser Fehler kann aus mehreren Gründen auftreten. Beispielsweise kann die SIP-Medienanwendung aufgrund von Berechtigungsproblemen oder Problemen mit dem S3-Bucket nicht auf die Datei zugreifen. Oder die Überprüfung der Audiodatei schlägt möglicherweise aufgrund von Dauer, Größe oder nicht unterstütztem Format fehl.  | 
|  `InvalidActionParameter`  |  `CallId`oder der `ParticipantTag` Parameter für die Aktion ist ungültig.  |  Ein `CallId``ParticipantTag`, oder ein anderer Parameter ist nicht gültig.  | 
|  `SystemException`  |  Systemfehler beim Ausführen der Aktion.  |  Beim Ausführen der Aktion ist ein Systemfehler aufgetreten.  | 

Wenn die Aktion aufgrund eines Timeouts oder zu vieler Wiederholungen nicht die Anzahl der angegebenen Ziffern erfasst, ruft die SIP-Medienanwendung die AWS Lambda Funktion mit dem `ACTION_FAILED` Aufrufereignistyp auf.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 4,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "call-id-1",
            "ParticipantTag": "LEG-A",
            "InputDigitsRegex": "^\d{2}#$",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-1.wav"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "bucket-name",
                "Key": "audio-file-failure.wav"
            },
            "MinNumberOfDigits": 3,
            "MaxNumberOfDigits": 5,
            "TerminatorDigits": ["#"],
            "InBetweenDigitsDurationInMilliseconds": 5000,
            "Repeat": 3,
            "RepeatDurationInMilliseconds": 10000
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        ...
    }
}
```

Arbeitsbeispiele finden Sie unter: GitHub
+ [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging).
+ [https://github.com/aws-samples/amazon-chime-sma-update-anrufen](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ReceiveDigits
<a name="listen-to-digits"></a>

Wenn ein Benutzer Ziffern eingibt, die dem in dieser Aktion angegebenen Muster für reguläre Ausdrücke entsprechen, ruft die SIP-Medienanwendung die Funktion auf AWS Lambda .

```
{
    "Type": "ReceiveDigits",
    "Parameters": {
        "CallId": "call-id-1",
        "ParticipantTag": "LEG-A",
        "InputDigitsRegex": "^\d{2}#$",
        "InBetweenDigitsDurationInMilliseconds": 1000, 
        "FlushDigitsDurationInMilliseconds": 10000
    }
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer am `CallDetails`  
*Zulässige Werte* — `LEG-A` oder `LEG-B`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**InputDigitsRegex**  
*Beschreibung* — Ein Muster für reguläre Ausdrücke  
*Zulässige Werte* — Ein gültiges Muster für reguläre Ausdrücke  
*Erforderlich* — Ja  
*Standardwert* – Kein

**InBetweenDigitsDurationInMilliseconds**  
*Beschreibung* — Intervall zwischen den Ziffern, bevor geprüft wird, ob die Eingabe dem Muster des regulären Ausdrucks entspricht  
*Zulässige Werte* — Dauer in Millisekunden  
*Erforderlich — Ja*  
*Standardwert* – Kein

**FlushDigitsDurationInMilliseconds**  
*Beschreibung* — Intervall, nach dem die empfangenen DTMF-Ziffern gelöscht und an die AWS Lambda Funktion gesendet werden. Wenn die SIP-Medienanwendung nach Ablauf des Intervalls eine neue Ziffer empfängt, startet der Timer erneut.  
*Zulässige Werte* — `InBetweenDigitsDurationInMilliseconds`  
*Erforderlich* — Ja  
*Standardwert* – Kein

Die SIP-Medienanwendung verwirft DTMF-Ziffern für die Dauer eines Anrufs, bis sie eine neue `ReceiveDigits` Aktion empfängt. Das `FlushDigitsDurationInMilliseconds` Intervall beginnt, wenn die SIP-Medienanwendung die erste DTMF-Ziffer empfängt. Wenn der Benutzer vor Ablauf des Intervalls die richtigen Ziffern eingibt, ruft die SIP-Medienanwendung die unter beschriebene AWS Lambda Funktion auf. [Empfangen von Anrufereingaben für den Amazon Chime SDK PSTN-Audiodienst](case-4.md)

Wenn die Benutzereingabe nicht dem Muster für reguläre Ausdrücke entspricht, wiederholt die SIP-Medienanwendung die Meldung „Fehler“ in der Audiodatei, bis die Anwendung die Anzahl der Wiederholungen aufgebraucht hat oder der Benutzer gültige Ziffern eingibt. 

Arbeitsbeispiele finden Sie unter: GitHub
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-Anrufbenachrichtigungen](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-Aufzeichnung bei Bedarf](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-anrufen](https://github.com/aws-samples/amazon-chime-sma-update-call)

# RecordAudio
<a name="record-audio"></a>

Ermöglicht der SIP-Medienanwendung, Medien von einer bestimmten Anruf-ID aufzuzeichnen. Zum Beispiel eine Voicemail-Anwendung und Ankündigungen von Besprechungsteilnehmern. Die Anwendung zeichnet auf, bis die Dauer erreicht ist, die Sie festgelegt haben, oder wenn ein Benutzer auf eine der Tasten drückt oder bis die Anwendung feststellt`RecordingTerminators`, dass Stille ausbleibt. In diesen Fällen weist die Aktion Ihre Anwendung an, die resultierende Mediendatei in den angegebenen S3-Bucket zu legen. Der S3-Bucket muss zu demselben AWS Konto gehören wie die SIP-Medienanwendung. Darüber hinaus muss die Aktion dem Amazon Chime SDK Voice Connector-Serviceprinzipal, dem Amazon Chime SDK Voice [Connector-Serviceprinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), eine `s3:PutObjectAcl` Genehmigung erteilt werden. `s3:PutObject` `voiceconnector.chime.amazonaws.com` 

**Anmerkung**  
Aufzeichnungen, die mit dieser Funktion aufgenommen wurden, können Gesetzen oder Vorschriften in Bezug auf die Aufzeichnung elektronischer Kommunikation unterliegen. Es liegt in Ihrer Verantwortung und Ihren Endnutzern, alle geltenden Gesetze in Bezug auf die Aufzeichnung einzuhalten. Dazu gehört auch, alle Teilnehmer einer aufgezeichneten Sitzung oder Kommunikation ordnungsgemäß darüber zu informieren, dass die Sitzung oder Kommunikation aufgezeichnet wird, und deren Zustimmung einzuholen.

Das folgende Beispiel erteilt dem Amazon Chime SDK Voice Connector-Serviceprinzipal die `s3:PutObjectAcl` Berechtigung `s3:PutObject` und.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SMARead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}
```

------

Im folgenden Beispiel wird die Aufnahme beendet, wenn der Anrufer die Rautetaste (\$1) drückt oder wenn 10 Sekunden ohne Aktivität vergehen oder der Anrufer 3 Sekunden lang stumm bleibt und die resultierende Mediendatei an den durch den Parameter definierten Ort schreibt. `RecordingDestination`

**Anmerkung**  
In diesem Beispiel wird der Parameter verwendet. `CallId` Sie können stattdessen den `ParticipantTag` Parameter verwenden, aber Sie können nicht beide verwenden.

```
{
    "Type": "RecordAudio",
    "Parameters": {
        "CallId": "call-id-1",
        "DurationInSeconds": "10",
        "SilenceDurationInSeconds": 3,
        "SilenceThreshold": 100,
        "RecordingTerminators": [
            "#"
        ],
        "RecordingDestination": {
            "Type": "S3",
            "BucketName": "valid-bucket-name",
            "Prefix": "valid-prefix-name"
        }
    }
}
```

**CallId**  
*Beschreibung* — `CallId` des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Nein  
*Standardwert* – Kein

**ParticipantTag**  
*Beschreibung* — `ParticipantTag` eines der verbundenen Teilnehmer an der `CallDetails`  
*Zulässige Werte* — `LEG-A` oder `LEG-B`  
*Erforderlich* — Nein  
*Standardwert* — `ParticipantTag` der aufgerufene Wert wird `callLeg` ignoriert, wenn Sie Folgendes angeben `CallId`

**RecordingDestination.Type**  
*Beschreibung* — Art des Ziels. Nur S3.  
*Zulässige Werte* — S3  
*Erforderlich* — Ja  
*Standardwert* – Kein

**RecordingDestination.BucketName**  
*Beschreibung* — Ein gültiger S3-Bucket-Name. Der Bucket muss Zugriff auf den [Amazon Chime SDK Voice Connector-Service Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) haben,`voiceconnector.chime.amazonaws.com`.  
*Zulässige Werte* — Ein gültiger S3-Bucket, für den das Amazon Chime SDK Zugriff auf die `s3:PutObjectAcl` Aktionen `s3:PutObject` und hat.  
*Erforderlich* — Ja  
*Standardwert* – Kein

****RecordingDestination.Prefix****  
*Beschreibung* — S3-Präfix der Aufnahmedatei  
*Zulässige Werte* — Ein gültiger Präfixname mit bis zu 979 sicheren Zeichen. Weitere Informationen zu sicheren Zeichen finden Sie unter [Sichere Zeichen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) im Amazon Simple Storage Service-Benutzerhandbuch.  
*Erforderlich* — Nein  
*Standard* — Keine. Wenn nicht angegeben, werden die Aufzeichnungen im Stammverzeichnis des S3-Buckets gespeichert.

**DurationInSeconds**  
*Beschreibung* — Die Dauer der Aufnahme in Sekunden  
*Zulässige Werte* — >0  
*Erforderlich* — Nein  
*Standardwert* – Kein

****SilenceDurationInSeconds****  
*Beschreibung* — Die Dauer der Stille in Sekunden, nach der die Aufnahme beendet wird. Wenn nicht angegeben, ist die Erkennung von Stille deaktiviert.  
*Zulässige Werte* — [1; 1000]  
*Erforderlich* — Nein  
*Standardwert* — 200

****SilenceThreshold****  
*Beschreibung* — Geräuschpegel, der als „Stille“ gilt. Wenn Sie nichts angeben`SilenceDurationInSeconds`, wird dieser Parameter ignoriert.  

**Referenzwerte (Geräuschpegel und Schwellenwerte, um den Lärm als Stille zu behandeln):**
+ 1—30 dB oder weniger, z. B. in einem ruhigen Raum
+ 100—40-50 dB, z. B. ein Flüsterton oder ein leises Büro
+ 200—60 dB, z. B. in einem überfüllten Büro
+ 1000—75 dB, z. B. bei lauter Person oder Musik
*Zulässige Werte* — [1; 1000]  
*Erforderlich* — Nein  
*Standardwert* — 200

**RecordingTerminators**  
*Beschreibung* — Listet alle verfügbaren Aufnahmeabschlüsse auf.  
*Zulässige Werte* — Eine Reihe von einzelnen Ziffern und Symbolen aus [123456789\$10\$1]  
*Erforderlich — Ja*  
*Standardwert* – Kein

## Behandlung von ACTION\$1SUCCESSFULC
<a name="handle-action-successful"></a>

Wenn die Aufzeichnung beendet ist, ruft die Amazon Chime SDK SIP-Medienanwendung die AWS Lambda Funktion auf und übergibt ihr das Ereignis ACTION\$1SUCCESSFUL zusammen mit den Aufrufergebnissen.

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "RecordAudio",
        "Parameters": {
           ...           
        },
        "RecordingDestination": {
            "Type": "S3",
            "BucketName": "valid-bucket-name",
            "Key": "valid-S3-key"              
        },
        "RecordingTerminatorUsed":"#"
    },
    "CallDetails": {
        ...
    }
}
```

Das `ACTION_SUCCESSFUL` Ereignis enthält`ActionData`, das die folgenden Felder enthält:

**Type**  
*Beschreibung* — Der Typ der Aktion,`RecordAudio`.

**Parameters**  
*Beschreibung* — Die Parameter der Aktion.

**RecordingDestination.Type**  
*Beschreibung* — Art des Ziels. Nur S3. 

**RecordingDestination.BucketName**  
*Beschreibung* — Der S3-Bucket, der die Aufnahmedatei enthält. 

**RecordingDestination.Key**  
*Beschreibung* — Der S3-Schlüssel der Aufnahmedatei.

**RecordingTerminatorUsed**  
*Beschreibung* — Das Abschlusszeichen, mit dem die Aufnahme beendet wurde — eines der im Parameter übergebenen Abschlusszeichen. `RecordingTerminators` Wenn die Aufnahme nach Erreichen der maximalen Dauer (`DurationInSeconds`) oder aufgrund von Stille (`SilenceDurationInSeconds`) beendet wird, ist dieses Schlüssel-Wert-Paar nicht in der Ausgabe enthalten.

**Fehlerbehandlung**  
Bei Validierungsfehlern ruft die SIP-Medienanwendung die AWS Lambda Funktion mit der entsprechenden Fehlermeldung auf. In der folgenden Tabelle sind die möglichen Fehlermeldungen aufgeführt.


|  Fehler  |  Fehlermeldung  |  Grund  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `CallId`oder der `ParticipantTag` Aktionsparameter ist ungültig. `DurationInSeconds`Der Parameterwert ist ungültig. `SilenceDurationInSeconds`Der Parameterwert ist ungültig. `SilenceThreshold`Der Parameterwert ist ungültig. `RecordingDestination`Der Parameterwert ist ungültig. Beim Hochladen der Aufzeichnung in den S3-Bucket ist ein Fehler aufgetreten.  |  Jeder Parameter ist ungültig.  | 
|  `SystemException`  |  Systemfehler beim Ausführen einer Aktion.  |  Beim Ausführen einer Aktion ist ein anderer Systemfehler aufgetreten.  | 

## Behandlung von ACTION\$1FAILED Ereignissen
<a name="handle-action-failed"></a>

Wenn die Aktion die Medien eines Anrufabschnitts nicht aufzeichnet, ruft die SIP-Medienanwendung eine AWS Lambda Funktion mit dem `ACTION_FAILED` Ereignistyp auf. Sehen Sie sich das folgende Beispiel an.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "RecordAudio",
        "Parameters": {
           ...           
        },
        "ErrorType": "InvalidActionParameter",
        "ErrorMessage": "RecordingDestination parameter value is invalid."
    },
    "CallDetails": {
        ...
    }
}
```

Ein funktionierendes Beispiel finden Sie unter GitHub: [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)

# SendDigits
<a name="send-digits"></a>

Senden Sie bis zu 50 DTMF-Ziffern (Dual Tone Multifrequency) in einem beliebigen Abschnitt eines Anrufs. Die Signale können Folgendes beinhalten:
+ Zahlen 0 bis 9
+ Sonderzeichen Stern (\$1) und Pfund (\$1)
+ Netzwerksteuersignale A, B, C, D
+ Das Kommazeichen (,). Dieses Signal fügt eine Verzögerung von 0,5 Sekunden zwischen dem vorherigen und dem nächsten Signal hinzu.

**Topics**
+ [Verwendung der SendDigits action](#send-digits-action)
+ [Handhabung ACTION\$1SUCCESSFUL Veranstaltungen](#send-digit-success)
+ [Handhabung ACTION\$1FAILED Veranstaltungen](#send-digit-fail)
+ [Ablauf des Anrufs](#send-digits-call-flow)

## Verwendung der SendDigits action
<a name="send-digits-action"></a>

Das folgende Beispiel zeigt eine typische `SendDigits` Aktion:

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "SendDigits",
            "Parameters": {
                "CallId": "call-id-1", // required
                "Digits": ",,*1234,56,7890ABCD#", // required
                "ToneDurationInMilliseconds": 100 // optional
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — Die `CallId` eines Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Digits**  
*Beschreibung* — Die Ziffern, die auf dem Anrufabschnitt gesendet werden sollen, der dem entspricht `CallId`  
*Zulässige Werte* — 0-9, \$1, \$1, A, B, C, D, Komma (,)  
*Erforderlich* — Ja  
*Standardwert* – Kein

**ToneDurationInMilliseconds**  
*Beschreibung* — Die für die Übertragung der einzelnen Ziffern zulässige Zeit in Millisekunden.  
*Zulässige Werte* — Jede Ganzzahl zwischen 50 und 24000  
*Erforderlich* — Nein  
*Standardwert* — 250

## Handhabung ACTION\$1SUCCESSFUL Veranstaltungen
<a name="send-digit-success"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_SUCCESSFUL` Ereignis für die `SendDigits` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "SendDigits",
        "Parameters": {
            "Digits": "1,2A#",
            "ToneDurationInMilliseconds": 100,
            "CallId": "call-id-1"
        },  
    "CallDetails": { 
        ...
        }
    }
}
```

## Handhabung ACTION\$1FAILED Veranstaltungen
<a name="send-digit-fail"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_FAILED` Ereignis für die `SendDigits` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "SendDigits",
        "Parameters": {
            "Digits": "1,2A#",
            "ToneDurationInMilliseconds": 20000000,
            "CallId": "call-id-1"
        },
    "ErrorType": "InvalidActionParameter",
    "ErrorMessage": "ToneDuration parameter value is invalid."
    },
    "CallDetails": {
        ...
        }
    }
}
```

## Ablauf des Anrufs
<a name="send-digits-call-flow"></a>

Das folgende Diagramm zeigt den Programmablauf für das Senden von Ziffern von einem Anrufer an einen Angerufenen.

![\[Diagramm, das den Programmablauf der SendDigits Aktion zeigt.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/send-digits-1.png)


# Speak
<a name="speak"></a>

Sie können Sprache auf jeder beliebigen Gesprächsstrecke abspielen, indem Sie Text eingeben. Sie können Klartext oder SSML (Speech Synthesis Markup Language) verwenden. SSML bietet mehr Kontrolle darüber, wie das Amazon Chime SDK Sprache generiert, indem Pausen hinzugefügt, bestimmte Wörter hervorgehoben oder der Sprechstil geändert wird.

Das Amazon Chime SDK verwendet für die Konvertierung den Amazon Polly Polly-Service. text-to-speech Bei Amazon Polly können Sie für eine verbesserte Sprachqualität zwischen der Standard- und der Neural Engine wählen. Amazon Polly unterstützt mehr als 20 Sprachen und 60 Stimmen, um die Benutzererfahrung Ihrer Anwendung individuell zu gestalten. Das Amazon Chime SDK bietet Sprachfunktionen kostenlos, aber Sie zahlen für die Nutzung von Amazon Polly. Preisinformationen finden Sie auf der [Preisseite](https://aws.amazon.com/polly/pricing/) von Amazon Polly oder in Ihrem Abrechnungs-Dashboard.

**Wichtig**  
Die Nutzung von Amazon Polly unterliegt den [AWS-Servicebedingungen](https://aws.amazon.com/service-terms/), einschließlich der spezifischen Bedingungen für die AWS-Services für Machine Learning und künstliche Intelligenz.

**Topics**
+ [Verwendung der Speak action](#speak-action)
+ [Handhabung ACTION\$1SUCCESSFUL Veranstaltungen](#speak-action-success)
+ [Handhabung ACTION\$1FAILED Veranstaltungen](#speak-action-fail)
+ [Programmabläufe](#speak-flow)

## Verwendung der Speak action
<a name="speak-action"></a>

Das folgende Beispiel zeigt eine typische Verwendung der `Speak` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "Speak",
            "Parameters": {
                "Text": "Hello, World!",        // required
                "CallId": "call-id-1",          // required
                "Engine": "neural",             // optional. Defaults to standard
                "LanguageCode": "en-US",        // optional
                "TextType": "text",             // optional
                "VoiceId": "Joanna"             // optional. Defaults to Joanna
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — Der `CallId` Teilnehmer am Aufruf `CallDetails` der Lambda-Funktion  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Text**  
*Beschreibung* — Gibt den Eingabetext an, der zu Sprache synthetisiert werden soll. Wenn Sie `ssml` als angeben`TextType`, folgen Sie dem SSML-Format für den Eingabetext.  
*Zulässige Werte* — Zeichenfolge  
*Erforderlich* — Ja  
*Standardwert* – Kein

**Engine**  
*Beschreibung* — Gibt an, welche Engine (Standard oder Neuron) bei der Textverarbeitung für die Sprachsynthese verwendet werden soll.  
*Zulässige Werte* — Standard \$1 Neural  
*Erforderlich* — Nein  
*Standardwert* — Standard

**LanguageCode**  
*Beschreibung* — Gibt den Sprachcode an. Nur erforderlich, wenn Sie eine zweisprachige Stimme verwenden. Wenn Sie eine zweisprachige Stimme ohne Sprachcode verwenden, wird die Standardsprache der zweisprachigen Stimme verwendet.  
*Zulässige Werte* — [Amazon Polly Polly-Sprachcodes](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Erforderlich* — Nein  
*Standardwert* – Kein

**TextType**  
*Beschreibung* — Gibt den Typ des Eingabetextes an, Klartext oder SSML. Wenn kein Eingabetyp angegeben ist, wird Klartext als Standard verwendet. Weitere Informationen zu SSML finden Sie unter [Generating Speech from SSML-Dokumenten](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) im *Amazon Polly* Developer Guide.  
*Zulässige Werte — ssml* \$1 text  
*Erforderlich* — Nein  
*Standardwert* – Kein

**VoiceId**  
*Beschreibung* — Gibt die ID der Stimme an, die Sie verwenden möchten.  
*Zulässige Werte* — [Amazon Polly Voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Erforderlich* — Nein  
*Standardwert* — Joanna

## Handhabung ACTION\$1SUCCESSFUL Veranstaltungen
<a name="speak-action-success"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_SUCCESSFUL` Ereignis für eine Aktion, bei der der Text „Hello World“ mithilfe der Stimme von Amazon Polly in englischer Sprache zusammengefasst wird. `Joanna`

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
       "Type": "Speak",
       "Parameters": {
          "CallId": "call-id-1",          
          "Engine":  "neural",             
          "LanguageCode":  "en-US",        
          "Text": "Hello World",          
          "TextType":  "text",             
          "VoiceId":  "Joanna"        
       }
    },
    "CallDetails":{       
       ...
    }
}
```

## Handhabung ACTION\$1FAILED Veranstaltungen
<a name="speak-action-fail"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_FAILED` Ereignis für dasselbe Ereignis, das im vorherigen Beispiel verwendet wurde.

```
{
    "SchemaVersion": "1.0",
    "Sequence":2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
       "Type": "Speak",
       "Parameters": {
          "CallId": "call-id-1",          
          "Engine":  "neural",             
          "LanguageCode":  "en-US",        
          "Text": "Hello  World",          
          "TextType":  "text",             
          "VoiceId":  "Joanna"        
       },
       "ErrorType": "SystemException",
       "ErrorMessage": "System error while running  action"
    },
    "CallDetails":{       
       ...
    }
}
```

**Fehlerbehandlung**  
In dieser Tabelle werden die von der `Speak` Aktion ausgelösten Fehlermeldungen aufgeführt und beschrieben.


| Fehler | Fehlermeldung | Grund | 
| --- | --- | --- | 
| `AccessDenied` | Die mit dem `AWSServiceRoleForAmazonChimeVoiceConnector` Dienst verknüpfte Rolle ist nicht richtig konfiguriert. | Die serviceverknüpfte Rolle, die verwendet wird, um Anfragen an Amazon Polly zu stellen, existiert nicht oder es fehlen Berechtigungen. Informationen zur Problembehebung finden Sie in den Schritten im Abschnitt [Verwenden der serviceverknüpften Rolle Amazon Chime SDK Voice Connector](speak-and-get-digits.md#speak-digits-policy) | 
| `InvalidActionParameter` |   | Bei der Überprüfung der Aktionsparameter ist ein Fehler aufgetreten. Weitere Informationen zu Parametern finden Sie in der [SynthesizeSpeech API](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech) im *Amazon Polly Developer Guide*. | 
| ActionExecutionThrottled | Amazon Polly drosselt die Anforderung, Sprache zu synthetisieren. | Die Anfrage an Amazon Polly gibt eine Drosselungsausnahme zurück. Weitere Informationen zu den Drosselungsgrenzen von Amazon Polly finden Sie unter [ https://docs.aws.amazon.com/polly/latest/dg/limits.html](https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle) \$1limits -throttle. | 
| `MissingRequiredActionParameter` | `Text`ist ein erforderlicher Parameter. | Dort müssen Aktionsparameter einen `Text` Wert haben | 
| `MissingRequiredActionParameter` | `Text`ist auf 1.000 Zeichen begrenzt | Der Text hat die Zeichenbeschränkung überschritten. | 
| `SystemException` | Systemfehler beim Ausführen der Aktion. | Beim Ausführen der Aktion ist ein Systemfehler aufgetreten. | 

## Programmabläufe
<a name="speak-flow"></a>

Das folgende Diagramm zeigt den Programmablauf, der die `Speak` Aktion für einen Anrufer ermöglicht. In diesem Beispiel hört der Anrufer Text, der 

![\[Diagramm, das den Programmablauf zur Aktivierung der Speak Aktion für einen Anrufer zeigt.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/Speak1.png)


**Im Diagramm**  
Mit einem Softphone gibt ein Anrufer eine Nummer ein, die für eine SIP-Medienanwendung registriert ist. Die Anwendung verwendet die `INVITE` SIP-Methode und sendet dem Anrufer eine `Trying (100)` Antwort. Das bedeutet, dass der Next-Hop-Server die Anrufanfrage erhalten hat. Die SIP-Anwendung verwendet dann`INVITE`, um den Endpunkt zu kontaktieren. Sobald die Verbindung hergestellt ist, senden die Anwendungen eine `Ringing (180)` Antwort an den Anrufer, und die Alarmierung beginnt. 

Die SIP-Medienanwendung sendet dann ein `NEW_INBOUND_CALL` Ereignis an die Lambda-Funktion, die mit einer `Speak` Aktion reagiert, die die ID des Anrufers und den Text enthält, den Sie in Sprache umwandeln möchten. Die SIP-Anwendung sendet dann eine `200 (OK)` Antwort, um anzuzeigen, dass der Anruf beantwortet wurde. Das Protokoll aktiviert auch die Medien. 

Wenn die `Speak` Aktion erfolgreich ist und der Text in Sprache umgewandelt wird, wird ein `ACTION_SUCCESSFUL` Ereignis an die SIP-Medienanwendung zurückgegeben, die die nächsten Aktionen zurückgibt. Wenn die Aktion fehlschlägt, sendet die SIP-Medienanwendung ein `ACTION_FAILED` Ereignis an die Lambda-Funktion, die mit einer Reihe von `Hangup` Aktionen reagiert. Die Anwendung beendet den Anrufer und gibt ein `HANGUP` Ereignis an die Lambda-Funktion zurück, die keine weiteren Aktionen ausführt. 



Das folgende Diagramm zeigt den Programmablauf, der die `Speak` Aktion für einen aufgerufenen Benutzer aktiviert.

![\[Das Diagramm zeigt den Programmablauf zur Aktivierung der Speak Aktion für einen aufgerufenen Benutzer. Sie können dies bei jedem Brückenanruf tun.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/Speak2.png)


**Im Diagramm**  
Ein Anrufer gibt eine Nummer ein, die für eine SIP-Medienanwendung registriert ist, und die Anwendung reagiert wie im vorherigen Diagramm beschrieben. Wenn die Lambda-Funktion das `NEW_INBOUND_CALL` Ereignis empfängt, gibt sie die [CallAndBridge](call-and-bridge.md) Aktion an die SIP-Anwendung zurück. Die Anwendung verwendet dann die `INVITE` SIP-Methode, um die `Ringing (180)` Antworten `Trying (100)` und an den Angerufenen zu senden. 

Wenn der Anrufer antwortet, erhält die SIP-Medienanwendung eine `200 (OK)` Antwort und sendet dieselbe Antwort an den Anrufer. Dadurch werden Medien eingerichtet, und die SIP-Anwendung sendet ein `ACTION_SUCCESSFUL` Ereignis für die [CallAndBridge](call-and-bridge.md) Aktion an die Lambda-Funktion. Die Funktion gibt dann die Speak-Aktion und die Daten an die SIP-Anwendung zurück, die dann konvertiert 

# SpeakAndGetDigits
<a name="speak-and-get-digits"></a>

Spielen Sie Sprache ab, indem Sie Text eingeben, und erfassen Sie DTMF-Ziffern (Dual Tone Multifrequency) vom Benutzer. Bei dem Text kann es sich entweder um reinen Text oder um Text handeln, der durch die Sprachsynthese Markup Language (SSML) erweitert wurde, sodass Sie mehr Kontrolle darüber haben, wie das Amazon Chime SDK Sprache generiert, indem unter anderem Pausen hinzugefügt, bestimmte Wörter hervorgehoben oder der Sprechstil geändert wird. Wenn ein Fehler auftritt, z. B. wenn ein Benutzer nicht die richtige Anzahl von DTMF-Ziffern eingibt, spielt die Aktion die „Fehler“ -Sprache und dann die Hauptsprache erneut ab, bis die SIP-Medienanwendung die im `Repeat` Parameter definierte Anzahl von Versuchen ausgeschöpft hat.

Das Amazon Chime SDK verwendet Amazon Polly, einen Cloud-Dienst, der Text in naturgetreue Sprache umwandelt. Amazon Polly bietet sowohl eine Standard- als auch eine neuronale Engine für verbesserte Sprachqualität, mehr als 20 unterstützte Sprachen und 60 Stimmen. Amazon Polly stellt Sprachfunktionen kostenlos zur Verfügung, aber Sie zahlen für die Nutzung von Amazon Polly. Preisinformationen finden Sie auf der [Preisseite](https://aws.amazon.com/polly/pricing/) von Amazon Polly oder in Ihrem Abrechnungs-Dashboard.

**Wichtig**  
Die Nutzung von Amazon Polly unterliegt den [AWS Servicebedingungen](https://aws.amazon.com/service-terms/), einschließlich der spezifischen Bedingungen für die Dienste für AWS Machine Learning und künstliche Intelligenz.

**Topics**
+ [Verwendung der SpeakAndGetDigits action](#speak-digits-action)
+ [Handhabung ACTION\$1SUCCESSFUL Veranstaltungen](#speak-digits-success)
+ [Handhabung ACTION\$1FAILED Veranstaltungen](#speak-digits-fail)
+ [Verwenden der serviceverknüpften Rolle Amazon Chime SDK Voice Connector](#speak-digits-policy)

## Verwendung der SpeakAndGetDigits action
<a name="speak-digits-action"></a>

Das folgende Beispiel zeigt eine typische Verwendung der `SpeakAndGetDigits` Aktion:

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          // required
                "InputDigitsRegex": "^\d{2}#$", // optional
                "SpeechParameters": {
                    "Text": "Hello World",      // required
                    "Engine": "neural",         // optional. Defaults to standard
                    "LanguageCode": "en-US",    // optional
                    "TextType": "text",         // optional
                    "VoiceId": "Joanna"         // optional. Defaults to Joanna
                },
                "FailureSpeechParameters": {
                    "Text": "Hello World",      // required
                    "Engine": "neural",         // optional. Defaults to the Engine value in SpeechParameters
                    "LanguageCode": "en-US",    // optional. Defaults to the LanguageCode value in SpeechParameters
                    "TextType": "text",         // optional. Defaults to the TextType value in SpeechParameters
                    "VoiceId": "Joanna"         // optional. Defaults to the VoiceId value in SpeechParameters
                },
                "MinNumberOfDigits": 3,         // optional
                "MaxNumberOfDigits": 5,         // optional
                "TerminatorDigits": ["#"],      // optional
                "InBetweenDigitsDurationInMilliseconds": 5000,  // optional
                "Repeat": 3,                    // optional
                "RepeatDurationInMilliseconds": 10000           // required
            }
        }
    ]
}
```

**CallId**  
*Beschreibung* — Der `CallId` Teilnehmer am Aufruf CallDetails der Lambda-Funktion.  
*Zulässige Werte* — A gültig `callID`  
*Erforderlich* — Ja  
*Standardwert* — Nein

**InputDigitsRegex**  
*Beschreibung* — Ein Muster für reguläre Ausdrücke, das sicherstellt, dass Benutzer die richtigen Zahlen und Buchstaben eingeben.  
*Zulässige Werte* — Ein gültiges Muster für reguläre Ausdrücke  
*Erforderlich* — Nein  
*Standardwert* – Kein

**SpeechParameters.Engine**  
*Beschreibung* — Gibt an, welche Engine (Standard oder neuronal) bei der Verarbeitung von Text für die Sprachsynthese verwendet werden soll.  
*Zulässige Werte* — `standard` \$1 `neural`  
*Erforderlich* — Nein  
*Standardwert* — Standard

**SpeechParameters.LanguageCode**  
*Beschreibung* — Gibt den Sprachcode an. Dies ist nur erforderlich, wenn Sie eine zweisprachige Stimme verwenden. Wenn eine zweisprachige Stimme verwendet wird und kein Sprachcode angegeben ist, wird die Standardsprache der zweisprachigen Stimme verwendet.  
*Zulässige Werte* — [Amazon Polly Polly-Sprachcodes](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Erforderlich* — Nein  
*Standardwert* – Kein

**SpeechParameters.Text**  
*Beschreibung* — Gibt den Eingabetext an. Wenn Sie `ssml` als angeben`SpeechParameters.TextType`, müssen Sie das SSML-Format für den Eingabetext verwenden. Weitere Informationen zu SSML finden Sie unter [Generating Speech from SSML-Dokumenten](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) im *Amazon Polly* Developer Guide.  
*Zulässige Werte* — Zeichenfolge  
*Erforderlich* — Ja  
*Standardwert* – Kein

**SpeechParameters.TextType**  
*Beschreibung* — Gibt das Textformat für an`SpeechParameters.Text`. Wenn nicht angegeben, `text` wird es standardmäßig verwendet. Weitere Informationen zu SSML finden Sie unter [Generating Speech from SSML-Dokumenten](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) im *Amazon Polly* Developer Guide.  
*Zulässige Werte* — \$1 `ssml` `text`  
*Erforderlich* — Nein  
*Standardwert* — `text`

**SpeechParameters.VoiceId**  
*Beschreibung* — Die ID der Amazon Polly-Stimme, mit der der Text vorgelesen wurde`SpeechParameters.Text`.  
*Zulässige Werte* — [Amazon Polly Voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Erforderlich* — Nein  
*Standardwert* — Joanna

**FailureSpeechParameters.Engine**  
*Beschreibung* — Gibt an, welche Engine (Standard oder neuronal) zur Verarbeitung der Fehlermeldung verwendet werden soll, wenn der Kunde eine ungültige Antwort für die Sprachsynthese eingibt.  
*Zulässige Werte* — `standard` \$1 `neural`  
*Erforderlich* — Nein  
*Standardwert* — Der `SpeechParameters.Engine` Wert

**FailureSpeechParameters.LanguageCode**  
*Beschreibung* — Gibt den Sprachcode an, der verwendet wird, wenn der Kunde eine ungültige Antwort eingibt. Nur erforderlich, wenn Sie eine zweisprachige Stimme verwenden. Wenn Sie zweisprachige Stimme verwenden, ohne einen Sprachcode anzugeben, wird die Standardsprache der zweisprachigen Stimme verwendet.  
*Zulässige Werte* — [Amazon Polly Polly-Sprachcodes](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Erforderlich* — Nein  
*Standardwert* — Der `SpeechParameters.LanguageCode` Wert.

**FailureSpeechParameters.Text**  
*Beschreibung* — Gibt den Eingabetext an, der gesprochen wird, wenn der Kunde eine ungültige Antwort eingibt. Wenn Sie `ssml` als angeben`FailureSpeechParameters.TextType`, müssen Sie das SSML-Format für den Eingabetext verwenden.  
*Zulässige Werte* — Zeichenfolge  
*Erforderlich* — Ja  
*Standardwert* – Kein

**FailureSpeechParameters.TextType**  
*Beschreibung* — Gibt an, ob der in angegebene Eingabetext Klartext oder SSML `FailureSpeechParameters.Text` ist. Der Standardwert ist Klartext. Weitere Informationen finden Sie unter [Generating Speech from SSML-Dokumenten](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) im *Amazon Polly Developer Guide*.  
*Zulässige Werte* — \$1 `ssml` `text`  
*Erforderlich* — Nein  
*Standardwert* — Der `SpeechParameters.Text` Wert

**FailureSpeechParameters.VoiceId**  
*Beschreibung* — Die ID der Stimme, mit der die Zeichenfolge gesprochen wurde`FailureSpeechParameters.Text`.  
*Zulässige Werte* — [Amazon Polly Voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Erforderlich* — Ja  
*Standardwert* — Der `SpeechParameters.VoiceId` Wert

**MinNumberOfDigits**  
*Beschreibung* — Die Mindestanzahl an Ziffern, die erfasst werden müssen, bevor das Zeitlimit überschritten wird oder die Meldung „Anruf fehlgeschlagen“ abgespielt wird.  
*Zulässige Werte* — Größer als oder gleich Null  
*Erforderlich* — Nein  
*Standardwert* — 0

**MaxNumberOfDigits**  
*Beschreibung* — Die maximale Anzahl von Ziffern, die erfasst werden sollen, bevor ein Stopp ohne eine letzte Ziffer beendet wird.  
*Zulässige Werte* — Größer als `MinNumberOfDigits`  
*Erforderlich* — Nein  
*Standardwert* — 128

**TerminatorDigits**  
*Beschreibung* — Ziffer, die verwendet wird, um die Eingabe zu beenden, wenn der Benutzer weniger als MaxNumberOfDigits  
*Zulässige Werte* — Einer der folgenden Werte: 0 1 2 3 4 5 6 7 8 9 \$1 oder \$1  
*Erforderlich* — Nein  
*Standardwert* — \$1

**InBetweenDigitsDurationInMilliseconds**  
*Beschreibung* — Die Wartezeit in Millisekunden zwischen Zifferneingaben, bevor die Fehlersprache abgespielt wird.  
*Zulässige Werte — Größer* als Null  
*Erforderlich* — Nein  
*Standardwert* — Wenn nicht angegeben, wird standardmäßig der `RepeatDurationInMilliseconds` Wert verwendet

**Repeat**  
*Beschreibung* — Gesamtzahl der Versuche, Ziffern abzurufen. Wenn Sie diesen Parameter weglassen, ist die Standardeinstellung ein Versuch, Ziffern zu sammeln.  
*Zulässige Werte* — Größer als Null  
*Erforderlich* — Nein  
*Standardwert* — 1

**RepeatDurationInMilliseconds**  
*Beschreibung* — Timeout in Millisekunden für jeden Versuch, Ziffern abzurufen.  
*Zulässige Werte* — Größer als Null  
*Erforderlich* — Ja  
*Standardwert* – Kein

## Handhabung ACTION\$1SUCCESSFUL Veranstaltungen
<a name="speak-digits-success"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_SUCCESSFUL` Ereignis.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
            "Type":  "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          
                "InputDigitsRegex":  "^\d{2}#$", 
                "SpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode": "en-US",    
                    "Text":  "Hello World",           
                    "TextType":  "text",         
                    "VoiceId": "Joanna"         
                },
                "FailureSpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode":  "en-US",    
                    "Text":  "Hello World",           
                    "TextType": "text",         
                    "VoiceId": "Joanna"         
                },
                "MinNumberOfDigits": 3,         
                "MaxNumberOfDigits": 5,         
                "TerminatorDigits": ["#"],      
                "InBetweenDigitsDurationInMilliseconds": 5000,  
                "Repeat": 3,                    
                "RepeatDurationInMilliseconds": 10000           
            },
            "ReceivedDigits": "1234"
    },
    "CallDetails":{       
       ...
    }
}
```

## Handhabung ACTION\$1FAILED Veranstaltungen
<a name="speak-digits-fail"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_FAILED` Ereignis.

```
{
    "SchemaVersion": "1.0",
    "Sequence":2,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
            "Type":  "SpeakAndGetDigits",
            "Parameters": {
                "CallId": "call-id-1",          
                "InputDigitsRegex":  "^\d{2}#$", 
                "SpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode": "en-US",    
                    "Text":  "Hello World",           
                    "TextType":  "text",         
                    "VoiceId": "Joanna"         
                },
                "FailureSpeechParameters": {
                    "Engine":  "neural",         
                    "LanguageCode":  "en-US",    
                    "Text":  "Hello World",          
                    "TextType": "text",        
                    "VoiceId": "Joanna"        
                },
                "MinNumberOfDigits": 3,      
                "MaxNumberOfDigits": 5,        
                "TerminatorDigits": ["#"],      
                "InBetweenDigitsDurationInMilliseconds": 5000,  
                "Repeat": 3,                    
                "RepeatDurationInMilliseconds": 10000         
            },
            "ErrorType":  "SystemException",
            "ErrorMessage":  "System error while running action"
    },
    "CallDetails":{       
       ...
    }
}
```

**Fehlerbehandlung**  
In dieser Tabelle sind die von der `Speak` Aktion ausgelösten Fehlermeldungen aufgeführt und beschrieben.


| Fehler | Fehlermeldung | Grund | 
| --- | --- | --- | 
| `AccessDenied` | Die `AWSServiceRoleForAmazonChimeVoiceConnector` Rolle ist nicht richtig konfiguriert. | Die Rolle, mit der Anfragen an Amazon Polly gestellt wurden, ist nicht vorhanden oder es fehlen Berechtigungen. Informationen zur Problembehebung finden Sie in den Schritten im Abschnitt [Verwenden der serviceverknüpften Rolle Amazon Chime SDK Voice Connector](#speak-digits-policy) | 
| `InvalidActionParameter` |   | Bei der Überprüfung der Aktionsparameter ist ein Fehler aufgetreten. Informationen zu den verfügbaren Parametern für diese Aktion und deren Optionen finden Sie [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html)im Amazon Polly Developer Guide. | 
| `MissingRequiredActionParameter` | `Text`ist ein erforderlicher Parameter. | Die Aktionsparameter müssen einen `Text` Wert haben | 
| `MissingRequiredActionParameter` | `Text`ist auf 1.000 Zeichen begrenzt | Der Text hat die Zeichenbeschränkung überschritten. | 
| `SystemException` | Systemfehler beim Ausführen der Aktion. | Beim Ausführen der Aktion ist ein Systemfehler aufgetreten. | 

## Verwenden der serviceverknüpften Rolle Amazon Chime SDK Voice Connector
<a name="speak-digits-policy"></a>

Sie müssen für die oder -Aktionen keine manuell mit dem Service verknüpfte Rolle erstellen. `Speak` `SpeakAndGetDigits` Wenn Sie eine SIP-Medienanwendung in der Amazon Chime SDK-Konsole, der oder der AWS API erstellen oder aktualisieren AWS Command Line Interface, erstellt das Amazon Chime SDK die serviceverknüpfte Rolle für Sie.

Weitere Informationen finden Sie unter [Verwenden der serviceverknüpften Amazon Chime-Rolle](https://docs.aws.amazon.com/chime/latest/ag/using-service-linked-roles-stream.html) im *Amazon Chime SDK-Administratorhandbuch*.

# StartBotConversation
<a name="start-bot-conversation"></a>

Die `StartBotConversation` Aktion richtet eine Sprachkonversation zwischen einem Endbenutzer und Ihrem Amazon Lex v2-Bot ein. Der Benutzer stellt dem Bot die erforderlichen Informationen zur Verfügung. Der Bot gibt die Informationen dann an die Audio Lambda-Funktion des öffentlichen Telefonnetzes (PSTN) zurück, und die Funktion führt die angeforderten Aufgaben aus.

Beispielsweise kann der Bot zu Beginn einer Konversation eine optionale Willkommensnachricht abspielen, um kurz zu beschreiben, welche Aufgabe die PSTN-Audio-Lambda-Funktion ausführen kann. Die Konversation zwischen dem Benutzer und dem Bot geht hin und her, bis der Bot die erforderlichen Informationen gesammelt hat. Sobald die Konversation beendet ist, ruft das Amazon Chime SDK Ihre PSTN-Audio-Lambda-Funktion mit einem Aktionsereignis auf, das die vom Bot gesammelten Informationen enthält. Ihre PSTN-Audio-Lambda-Funktion verarbeitet die Informationen und führt die angeforderte Aufgabe aus.

Der Audiodienst bietet eine lebensechte Konversationsinteraktion mit Ihren Benutzern. Beispielsweise können Benutzer den Bot unterbrechen und eine Frage beantworten, bevor die Audioaufforderung beendet ist. Darüber hinaus können Benutzer eine beliebige Kombination aus Sprach- und DTMF-Ziffern verwenden, um Informationen bereitzustellen. Der Bot wartet darauf, dass der Benutzer Eingaben macht, bevor er antwortet. Sie können konfigurieren, wie lange der Bot wartet, bis der Benutzer mit dem Sprechen fertig ist, bevor er eine Spracheingabe interpretiert. Der Benutzer kann den Bot auch anweisen, zu warten, wenn er während eines Anrufs Zeit benötigt, um zusätzliche Informationen abzurufen, z. B. Kreditkartennummern.

Die `StartBotConversation` Aktion verwendet Amazon Lex und Amazon Polly für die Dauer der Bot-Konversation. Es fallen die Standardkosten für Amazon Lex und Amazon Polly an. Weitere Preisinformationen finden Sie auf den Seiten [Amazon Lex Streaming Conversation Pricing](https://aws.amazon.com/lex/pricing/) und [Amazon Polly Pricing](https://aws.amazon.com/polly/pricing/).

**Anmerkung**  
Sie können diese Aktion nicht bei einem Brückenanruf oder bei einem Anruf ausführen, der einem Amazon Chime SDK-Meeting beigetreten ist.

**Wichtig**  
Die Nutzung von Amazon Lex und Amazon Polly unterliegt den [AWS Servicebedingungen](https://aws.amazon.com/service-terms/), einschließlich der spezifischen Bedingungen für die Dienste für AWS Machine Learning und künstliche Intelligenz.

**Topics**
+ [StartBotConversation-Syntax](#startbot-syntax)
+ [Die StartBotConversation Aktion verwenden](#using-startbot)
+ [Umgang mit ACTION\$1SUCCESSFUL Ereignissen](#bot-action-success)
+ [Umgang mit ACTION\$1FAILED Ereignissen](#bot-action-fail)
+ [Erteilung von Berechtigungen zur Verwendung eines Bots](#bot-permissions)
+ [Konfiguration von Sprach- und DTMF-Timeouts](#bot-timeouts)
+ [Verwenden von DTMF-Eingaben während einer Konversation](#bot-dtmf)
+ [Abrechnung und Servicekontingente](#bot-billing)

## StartBotConversation-Syntax
<a name="startbot-syntax"></a>

Das folgende Beispiel zeigt eine typische `StartBotConversation` Syntax.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "string",
        "ParticipantTag": "string",
        "BotAliasArn": "string",
        "LocaleId": "string",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "string": "string" 
             },
             "DialogAction" : {
               "Type": "string"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "string",
              "ContentType": "string" 
            }
          ]
        }
      }
    }
  ]
}
```

**CallId**  
*Beschreibung* — Die `CallID` eines Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf. Die `StartBotConversation` Aktion verwendet diese ID als die des Bots`SessionId`. Alle Bot-Konversationen, die im Rahmen eines Anrufs stattfinden, teilen sich dieselbe Konversationssitzung. Sie können den Sitzungsstatus zwischen Ihrem Benutzer und Ihrem Bot mithilfe der [Amazon PutSession Lex-API](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html) ändern. Weitere Informationen finden Sie unter [Verwalten von Sitzungen mit der Amazon Lex v2-API](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) im *Amazon Lex Developer Guide*.  
*Zulässige Werte* — Eine gültige Anruf-ID.  
*Erforderlich* — Nein, `ParticipantTag` wenn vorhanden.  
*Standardwert* — Keiner.

**ParticipantTag**  
*Beschreibung* — Die `ParticipantTag` eines der verbundenen Teilnehmer am`CallDetails`.  
*Zulässige Werte* —`LEG-A`.  
*Erforderlich* — Nein, `CallId` wenn vorhanden.  
*Standardwert* — `ParticipantTag` des aufgerufenen`callLeg`. Wird ignoriert, wenn Sie angeben`CallDetails`.

**BotAliasArn**  
*Beschreibung* — Der Bot-Alias-ARN Ihres Lex-Bot. Sie müssen den Bot in derselben AWS-Region wie Ihre PSTN-Audioanwendung erstellen. Ein gültiger Amazon Lex Lex-Bot-Alias hat dieses Format:`arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId`, wobei die AWS-Region *`region`* ist, in der sich Ihr Bot befindet. Das `awsAccountId` ist die AWS-Konto-ID, in der Ihr Amazon Lex Lex-Bot erstellt wurde. Der `botId` Wert ist die Kennung, die dem Bot bei der Erstellung zugewiesen wurde. Sie finden die Bot-ID in der Amazon Lex-Konsole auf der Seite mit den **Bot-Details**. Das `botAliasId` ist die Kennung, die dem Bot-Alias zugewiesen wurde, als Sie ihn erstellt haben. Sie finden die Bot-Alias-ID in der Amazon Lex Lex-Konsole auf der Seite **Aliase**.   
*Zulässige Werte* — Ein gültiger Bot-ARN.  
*Erforderlich* — Ja.  
*Standardwert —Keiner*.

**LocaleId**  
*Beschreibung* — Die Kennung des Gebietsschemas, das Sie für Ihren Bot verwendet haben. Eine Liste der Gebietsschemas und Sprachcodes finden Sie unter [Von Amazon Lex unterstützte Sprachen und Gebietsschemas](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Zulässige Werte* — [Sprachen und Gebietsschemas, die von Amazon Lex unterstützt werden](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Erforderlich* — Nein.  
*Standardwert* —`en_US`.

**Configuration**  
*Beschreibung* — Die Konversationskonfiguration, einschließlich Sitzungsstatus und Willkommensnachrichten. Die Gesamtgröße der JSON-Zeichenfolgendarstellung des `Configuration` Objekts ist auf 10 KB begrenzt.  
*Zulässige Werte* — `Configuration` Objekt.  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.SessionState**  
*Beschreibung* — Der Status der Benutzersitzung mit Amazon Lex v2.  
*Zulässige Werte* — `SessionState` Objekt.  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.SessionState.SessionAttributes**  
*Beschreibung* — Eine Übersicht der key/value Paare, die sitzungsspezifische Kontextinformationen darstellen. Diese Map enthält Anwendungsinformationen, die zwischen Amazon Lex v2 und einer Client-Anwendung übertragen werden.  
*Zulässige Werte* — Zuordnung von Zeichenfolge zu Zeichenfolge.  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.SessionState.DialogAction.Type**  
*Beschreibung* — Die nächste Aktion, die der Bot bei seinen Interaktionen mit dem Benutzer ausführt. Mögliche Werte:  
+ *Delegate* Amazon Lex v2 bestimmt die nächste Aktion.
+ *ElicitIntent*Die nächste Aktion löst beim Benutzer eine Absicht aus.
*Zulässige Werte* — \$1`Delegate`. `ElicitIntent`  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.WelcomeMessages**  
*Beschreibung* — Eine Liste von Nachrichten, die zu Beginn der Konversation an den Benutzer gesendet werden sollen. Wenn Sie das `welcomeMessage` Feld festlegen, müssen Sie den `DialogAction.Type` Wert auf festlegen`ElicitIntent`.  
*Zulässige Werte* — Nachrichtenobjekt  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.WelcomeMessages.Content**  
*Beschreibung* — Der Text der Willkommensnachricht.  
*Zulässige Werte* — Zeichenfolge.  
*Erforderlich* — Nein.  
*Standardwert* — Keiner.

**Configuration.WelcomeMessages.ContentType**  
*Beschreibung* — Gibt den Typ der Willkommensnachricht an.  
*Zulässige Werte* — ` PlainText` \$1 `SSML`  
+ *PlainText*— Die Nachricht enthält einfachen UTF-8-Text. 
+ *SSML* — Die Nachricht enthält Text, der für die Sprachausgabe formatiert ist.
*Erforderlich* — Ja.  
*Standardwert* — Keiner.

## Die StartBotConversation Aktion verwenden
<a name="using-startbot"></a>

Das folgende Beispiel zeigt eine typische `StartBotConversation` Aktion.

```
{
  "SchemaVersion": "1.0",
  "Actions":[
    {
      "Type": "StartBotConversation",
      "Parameters": {
        "CallId": "call-id-1",
        "BotAliasArn": "arn:aws:lex:us-east-1:123456789012:bot-alias/ABCDEFGHIH/MNOPQRSTUV",
        "LocaleId": "en_US",
        "Configuration": {
          "SessionState": {
             "SessionAttributes": {
                "mykey1": "myvalue1" 
             },
             "DialogAction" : {
               "Type": "ElicitIntent"
             }
          },
          "WelcomeMessages": [
            {
              "Content": "Welcome. How can I help you?",
              "ContentType": "PlainText" 
            }
          ]
        }
      }
    }
  ]
}
```

## Umgang mit ACTION\$1SUCCESSFUL Ereignissen
<a name="bot-action-success"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_SUCCESSFUL` Ereignis für die `StartBotConversation` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData":
    {
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action.
        },
        "CallDetails": {
            // Information about the call associated with the AWS Lambda invocation.
        },
        "IntentResult": {
            "SessionId": "string",
            "SessionState": {
                "SessionAttributes": {
                    "string": "string"
                },
                "Intent": {
                    "Name": "string",
                    "Slots":  {
                        "string": {
                            "Value": {
                                "OriginalValue": "string",
                                "InterpretedValue": "string",
                                "ResolvedValues": ["string"]
                            },
                            "Values": []
                        }
                    },
                    "State": "string",
                    "ConfirmationState": "string"
                }
            },
            "Interpretations": [
                {
                    "NluConfidence": {
                        "Score": number
                    },
                    "Intent": {
                        "Name": "string",
                        "Slots": {
                            "string": {
                                "Value": {
                                    "OriginalValue": "string",
                                    "InterpretedValue": "string",
                                    "ResolvedValues": ["string"]
                                },
                                "Values": []
                            }
                        },
                        "State": "string",
                        "ConfirmationState": "string"
                    }
                }
            ]
        }
    }
}
```

**IntentResult**  
Das Ergebnis der Konversation zwischen dem Benutzer und dem Bot.

**SessionId**  
Die Kennung der Bot-Konversationssitzung. Wenn ein Benutzer eine Konversation mit Ihrem Bot beginnt, erstellt Amazon Lex eine Sitzung. Eine Sitzung kapselt die Informationen, die zwischen Ihrem Benutzer und dem Bot ausgetauscht werden. Die `StartBotConversation` Aktion verwendet die Anruf-ID wie die des Bots. `SessionId` Sie können den Sitzungsstatus zwischen Ihrem Benutzer und Ihrem Bot mithilfe der [https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html)Lex-API ändern. Weitere Informationen finden Sie unter [Verwalten von Sitzungen mit der Amazon Lex V2-API](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) im *Amazon Lex Developer Guide*.

**SessionState**  
Der Status der Amazon Lex v2-Sitzung des Benutzers. 

**SessionState.SessionAttributes**  
Karte von key/value Paaren, die sitzungsspezifische Kontextinformationen darstellen. Die Map enthält Bot-Konversationsinformationen, die zwischen der an Ihren Bot angeschlossenen Lambda-Funktion und der PSTN-Audio-Lambda-Funktion übertragen werden.

**Interpretationen**  
Eine von Amazon Lex abgeleitete Liste von Absichten, die den Äußerungen eines Kunden entsprechen könnten. Die Absicht mit der höchsten `NluConfidence` Punktzahl wird zur Absicht für. `SessionState` 

**Interpretationen. NluConfidence. Ergebnis**  
Ein Wert, der angibt, wie sicher Amazon Lex v2 ist, dass eine Absicht die Absicht eines Benutzers erfüllt. Der Bereich liegt zwischen 0,00 und 1,00. Höhere Werte deuten auf ein höheres Selbstvertrauen hin. 

**Intent**  
Die Aktion, die der Benutzer ausführen möchte.

**Intent.Name**  
Der Name der Absicht.

**Intent.Slots**  
Eine Karte mit allen Slots für die Absicht. Der Name des Slots entspricht dem Wert des Slots. Wenn ein Slot nicht gefüllt wurde, ist der Wert Null.

**Intent.Slots.Value**  
Der Wert des Steckplatzes.

**Intent.Slots.Values**  
Eine Liste mit einem oder mehreren Werten, die der Benutzer für den Slot angegeben hat.

**Intent.Slots.Value.OriginalValue**  
Der Text der Antwort des Benutzers, der für den Slot eingegeben wurde.

**Intent.Slots.Value.InterpretedValue**  
*Beschreibung* — Der Wert, den Amazon Lex v2 für den Steckplatz bestimmt. Der tatsächliche Wert hängt von der Einstellung der Strategie zur Werteauswahl durch den Bot ab. Sie können den vom Benutzer eingegebenen Wert verwenden oder Amazon Lex v2 den ersten Wert in der `resolvedValues` Liste auswählen lassen.

**Intent.Slots.Value.ResolvedValues**  
Eine Liste zusätzlicher Werte, die Amazon Lex v2 für den Steckplatz erkennt.

**Intent.State**  
*Beschreibung* — Informationen zur Erfüllung der Absicht. Mögliche Werte:  
+ `Failed`— Die Lambda-Funktion konnte die Absicht nicht erfüllen.
+ `Fulfilled`— Die Lambda-Funktion erfüllte die Absicht.
+ `ReadyForFulfillment`— Die Informationen für die Absicht sind vorhanden, und Ihre Lambda-Funktion kann die Absicht erfüllen. 

**Intent.ConfirmationState**  
*Beschreibung* — Zeigt die Bestätigung der Absicht an. Mögliche Werte:  
+ *Bestätigt* — Die Absicht ist erfüllt.
+ *Abgelehnt* — Der Benutzer hat auf die Bestätigungsaufforderung mit „Nein“ geantwortet.
+ *Keine* — Der Benutzer wurde nicht zur Bestätigung aufgefordert, oder der Benutzer wurde aufgefordert, hat die Aufforderung aber nicht bestätigt oder abgelehnt.

## Umgang mit ACTION\$1FAILED Ereignissen
<a name="bot-action-fail"></a>

Das folgende Beispiel zeigt ein typisches `ACTION_FAILED` Ereignis für die `StartBotConversation` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Sequence": number,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData":{
        "CallId": "string",
        "Type": "StartBotConversation",
        "Parameters": {
            // parameters provided in the StartBotConversation action
        },
        "ErrorType": "string",
        "ErrorMessage": "string"
    },
    "CallDetails":{
    }
}
```

**ErrorType**  
Eine Zeichenfolge, die eine Fehlerbedingung eindeutig identifiziert.

**ErrorMessage**  
Eine allgemeine Beschreibung der Fehlerbedingung.

### Fehlercodes
<a name="action-errors"></a>

In der folgenden Tabelle sind die Fehlermeldungen aufgeführt, die eine Lambda-Funktion bei einem `ACTION_FAILED` Ereignis zurückgeben kann.


| Fehler | Description | 
| --- | --- | 
|  `InvalidActionParameter` | Ein oder mehrere Aktionsparameter sind ungültig. Die Fehlermeldung beschreibt den ungültigen Parameter. | 
| `SystemException` | Beim Ausführen einer Aktion ist ein Systemfehler aufgetreten. | 
| `ResourceNotFound` | Ein bestimmter Bot wurde nicht gefunden. | 
| `ResourceAccessDenied` | Der Zugriff auf den Bot wurde verweigert. | 
| `ActionExecutionThrottled` | Das Limit für den Bot-Konversationsdienst wurde überschritten. Die Fehlermeldung beschreibt, dass das spezifische Service-Limit überschritten wurde. | 

## Erteilung von Berechtigungen zur Verwendung eines Bots
<a name="bot-permissions"></a>

Im folgenden Beispiel wird dem Amazon Chime SDK die Erlaubnis erteilt, Amazon Lex [https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_StartConversation.html) APIsaufzurufen. Sie müssen dem Audiodienst ausdrücklich die Erlaubnis erteilen, Ihren Bot zu verwenden. Der Bedingungsblock ist für Service-Principals erforderlich. Der Bedingungsblock muss die globalen Kontextschlüssel `AWS:SourceAccount` und `AWS:SourceArn` verwenden. Das `AWS:SourceAccount` ist Ihre AWS-Konto-ID. Das `AWS:SourceArn` ist der Ressourcen-ARN der PSTN-Audioanwendung, die den Lex-Bot aufruft.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowChimePstnAudioUseBot",
      "Effect": "Allow",
      "Principal": {
        "Service": "voiceconnector.chime.amazonaws.com"
      },
      "Action": "lex:StartConversation",
  "Resource": "arn:aws:lex:us-east-1:123456789012:bot-alias/botId/aliasId",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnEquals": {
        "AWS:SourceArn": "arn:aws:chime:us-east-1:123456789012:sma/smaId"
        }
      }
    }
  ]
}
```

------

## Konfiguration von Sprach- und DTMF-Timeouts
<a name="bot-timeouts"></a>

Sie können die Sprach- und DTMF-Timeouts bei der Erfassung von Benutzereingaben konfigurieren. Sie können Timeouts über Sitzungsattribute konfigurieren, wenn Sie eine Konversation mit einem Bot starten, und sie bei Bedarf in der Lambda-Funktion Ihres Lex-Bot überschreiben. Mit Amazon Lex können Sie mehrere Slots für eine Absicht oder Bots einrichten. Da Sie festlegen können, dass Sitzungsattribute für die Absicht- und Slot-Ebene gelten, können Sie angeben, dass das Attribut nur festgelegt wird, wenn Sie einen bestimmten Eingabetyp erfassen. Sie können beispielsweise beim Sammeln einer Kontonummer ein längeres Timeout angeben als bei der Erfassung eines Datums. Sie können Platzhalter im Sitzungsattributschlüssel verwenden. 

Um beispielsweise ein Sprach-Timeout für alle Slots in jeder Hinsicht auf 4000 Millisekunden festzulegen, können Sie ein Sitzungsattribut angeben, indem Sie: `x-amz-lex:start-timeout-ms:*:*` als Namen des Sitzungsattributs und `4000` als Wert für das Sitzungsattribut verwenden. Weitere Informationen finden Sie unter [Konfiguration von Timeouts für die Erfassung von Benutzereingaben](https://docs.aws.amazon.com/lexv2/latest/dg/session-attribs-speech.htm) im *Amazon Lex Developer Guide*. 

## Verwenden von DTMF-Eingaben während einer Konversation
<a name="bot-dtmf"></a>

Amazon Lex Lex-Bots unterstützen Sprach- und Tastatureingaben während einer Konversation. Die Bots interpretieren Tastatureingaben als DTMF-Ziffern. Sie können Kontakte auffordern, ihre Eingabe mit einer Rautetaste (\$1) zu beenden und eine Konversation mit der Sterntaste (\$1) abzubrechen. Wenn Sie Kunden nicht auffordern, ihre Eingabe mit der Rautetaste zu beenden, wartet Lex nach 5 Sekunden nicht mehr auf weitere Tastendrücke.

## Abrechnung und Servicekontingente
<a name="bot-billing"></a>

AWS stellt Ihnen die folgenden Kosten in Rechnung:
+ Nutzung des Amazon Chime SDK für den Anruf. Weitere Informationen finden Sie unter [Amazon Chime SDK-Preise](https://aws.amazon.com/chime/chime-sdk/pricing/).
+ Verwendung von Amazon Lex für die Interpretation der Sprache der Benutzer. Weitere Informationen finden Sie unter [Amazon Lex-Preise für Streaming-Konversationen](https://aws.amazon.com/lex/pricing/).
+ Verwendung von Amazon Polly zum Synthetisieren von Textantworten von Ihrem Bot. Weitere Informationen finden Sie unter [Amazon Polly Pricing](https://aws.amazon.com/polly/pricing/).

Sie müssen sich auch der folgenden Servicekontingente bewusst sein:
+ Das Amazon Chime SDK hat ein Servicekontingent für die maximale Anzahl von Amazon Lex Lex-Bots, die Sie mit der PSTN-Audioaktion verwenden können. [StartBotConversation](#start-bot-conversation) *Weitere Informationen finden Sie unter [SIP-Trunking und Sprachkontingente](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) in der Allgemeinen Referenz.AWS *
+ Amazon Lex hat ein Servicekontingent für die maximale Anzahl gleichzeitiger Sprachgespräche pro Lex-Bot. Für Kontingenterhöhungen können Sie sich an das Amazon Lex Lex-Serviceteam wenden. Weitere Informationen finden Sie in den Amazon Lex [Guidelines and Quotas](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) *im Amazon Lex Developer Guide*.
+ Amazon Polly hat ein Servicekontingent für die Synthese von Textantworten. Für Quotenerhöhungen können Sie sich an das Amazon Polly Polly-Serviceteam wenden. Weitere Informationen zu Amazon Polly-Servicekontingenten finden Sie unter [Kontingente in Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/limits.html) im *Amazon Polly* Developer Guide.

# Verwenden von SIP-Headern im Amazon Chime SDK PTSN-Audiodienst
<a name="sip-headers"></a>

Sie können jetzt in Ihren AWS Lambda Funktionen einen User-To-User Header, einen Umleitungsheader und benutzerdefinierte SIP-Header senden und empfangen, wenn Sie Anrufkontextinformationen mit Ihrer SIP-Infrastruktur austauschen möchten. 
+ Der User-to-User (UUI) -Header kann zum Senden von Anrufsteuerungsdaten verwendet werden. Diese Daten werden von der Anwendung eingefügt, die eine Sitzung initiiert, und von der Anwendung verwendet, die die Sitzung akzeptiert. Es wird nicht für grundlegende SIP-Funktionen verwendet. Sie könnten beispielsweise den UUI-Header in einem Call Center verwenden, um Informationen über einen Anruf zwischen Agenten weiterzugeben.
+ Der Umleitungsheader wird verwendet, um anzuzeigen, von wo aus der Anruf umgeleitet wurde und warum. Sie können diesen Header verwenden, um entweder Umleitungsinformationen von anderen SIP-Agenten zu sehen oder sie weiterzugeben.
+ Mit benutzerdefinierten SIP-Headern können Sie beliebige andere Informationen weitergeben. Wenn Sie beispielsweise eine Konto-ID weitergeben möchten, können Sie einen X-Header namens „X-Account-Id“ erstellen und diese Informationen hinzufügen.

Sie müssen Ihren benutzerdefinierten SIP-Headern ein Präfix voranstellen. `x-` Die Header werden in der AWS Lambda Funktion angezeigt und als Teil eines `NEW_INBOUND_CALL` Ereignisses während eines eingehenden Anrufs empfangen. Sie können diese Header auch in ausgehende Anrufabschnitte einbeziehen, wenn Sie eine Aktion auslösen, oder [CallAndBridge](call-and-bridge.md) [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API.

Der `Participants` Abschnitt einer Lambda-Funktion enthält das `SipHeaders` Feld. Dieses Feld ist verfügbar, wenn Sie einen benutzerdefinierten Header erhalten oder wenn Sie den Header `User-to-User` oder `Diversion` ausfüllen.

Dieses Beispiel zeigt eine erwartete Antwort, wenn ein AWS Lambda-Aufruf SIP-Header enthält.

```
{
    "SchemaVersion": "1.0",
    "Sequence": 3,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type":"actionType",
        "Parameters":{
            // Parameters vary by actionType
        }
    },
    "CallDetails":{
        .....
        .....
        "Participants":[
            {
                "CallId": "call-id-1",
                "ParticipantTag": "LEG-A",
                ..... 
                "Status": "Connected"
                "SipHeaders": {
                    "X-Test-Value": "String",
                    "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                    "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
                }
            },
            {
            "CallId": "call-id-2",
            "ParticipantTag": "LEG-B",
            .....
            "Status": "Connected"
            }
        ]
    }
}
```

Das folgende Beispiel zeigt eine erfolgreiche [CallAndBridge](call-and-bridge.md) Aktion, die auf einen ungültigen Eintrag für den Parameter zurückzuführen ist. `SipHeaders` 

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "CallAndBridge",
            "Parameters":{
            "CallTimeoutSeconds": 30,
            "CallerIdNumber": "e164PhoneNumber", // required
            "RingbackTone": { // optional
                "Type": "S3",
                "BucketName": "s3_bucket_name",
                "Key": "audio_file_name"
            },
            "Endpoints":[
               {
                    "Uri":"e164PhoneNumber", // required
                    "BridgeEndpointType":"PSTN" // required
               }
            ],
            "SipHeaders": {
                "X-Test-Value": "String",
                "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
            }
         }
      }
   ]
}
```

Das folgende Beispiel zeigt eine fehlgeschlagene [CallAndBridge](call-and-bridge.md) Aktion, die durch einen ungültigen `SipHeaders` Parameter verursacht wurde.

```
{
    "SchemaVersion":"1.0",
    "Sequence":3,
    "InvocationEventType":"ACTION_FAILED",
    "ActionData":{
        "Type":"actionType",
        "Parameters":{
            // Parameters vary by Action Type
            "SipHeaders": {
                "X-AMZN": "String",
                "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e;encoding=hex",
                "Diversion": "sip:+11234567891@public.test.com;reason=unconditional"
             },
        },
        "ErrorType": "InvalidActionParameter",
        "ErrorMessage": "Invalid SIP header(s) provided: X-AMZN"
   },
   "CallDetails":{
      .....
      "Participants":[
         {
            "CallId":"call-id-1",
            "ParticipantTag":"LEG-A",
            .....   
            "Status":"Connected"
         },
         {
            "CallId":"call-id-2",
            "ParticipantTag":"LEG-B",
            .....
            "Status":"Connected"
         }
      ]
   }
}
```

## Verwendung der SipHeaders field
<a name="custom-headers"></a>

Wenn Sie den auslösen [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API, das optionale `SipHeaders` Feld ermöglicht es Ihnen, benutzerdefinierte SIP-Header an einen ausgehenden Anrufabschnitt zu übergeben. Gültige Header-Schlüssel müssen einen der folgenden Schlüssel enthalten: 
+ Das `x-` Präfix
+ Der `User-to-User` Header
+ Der `Diversion` Header

`X-AMZN`ist ein reservierter Header. Wenn Sie diesen Header in einem API-Aufruf verwenden, schlägt er fehl. Die Header können eine maximale Länge von 2048 Zeichen haben. 

Das folgende Beispiel zeigt ein typisches [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API in der Befehlszeilenschnittstelle mit dem optionalen `SipHeaders` Parameter.

```
create-sip-media-application-call
    --from-phone-number value // (string)
    --to-phone-number value // (string)
    --sip-media-application-id value // (string)
    --sip-headers // (map)
```

Weitere Informationen finden Sie unter [Ein Mechanismus für die Übertragung von User-to-User Anrufsteuerungsinformationen in SIP und Umleitungsinformationen](https://datatracker.ietf.org/doc/html/rfc7433) [in SIP.](https://datatracker.ietf.org/doc/html/rfc5806)

# Verwenden von Anrufdetailaufzeichnungen im Amazon Chime SDK PTSN-Audiodienst
<a name="attributes"></a>

Amazon Chime SDK-Administratoren können Amazon Chime SDK Voice Connectors so konfigurieren, dass sie *Anruf-Detaildatensätze* speichern ()CDRs. Weitere Informationen zur Konfiguration von Amazon Chime SDK Voice Connectors zum Speichern CDRs finden Sie unter [Verwaltung globaler Einstellungen im Amazon Chime SDK im Amazon Chime *SDK-Administrationshandbuch*](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html).

Nach der Aktivierung CDRs sendet die SIP-Medienanwendung die Datensätze nach jedem Anruf an einen Ordner mit dem Namen **Amazon-Chime- SMADRs** in Ihrem S3-Bucket.

In der folgenden Tabelle sind die Attribute einer CDR und ihre korrekte Formatierung aufgeführt. Die Datensätze enthalten alle hier aufgeführten Felder für alle Anrufe.


|  Wert  |  Description  | 
| --- | --- | 
|  `"AwsAccountId":"AWS-account-ID"`  |  Die AWS Konto-ID, die der SIP-Medienanwendung zugeordnet ist, die die PSTN-Nutzung initiiert hat  | 
|  `"TransactionId":"transaction-ID" `  |  Die Transaktions-ID des Anrufs  | 
|  `"CallId":"SIP-media-application-call-ID"`  |  Die Anruf-ID des Teilnehmers für die zugehörige Nutzung  | 
|  `"VoiceConnectorId":"voice-connector-ID"`  |  Amazon Chime SDK Sprachverbinder-ID UUID  | 
|  `"Status":"status"`  |  Status des Anrufs (Abgeschlossen, Fehlgeschlagen)  | 
|  `"BillableDurationSeconds":"billable-duration-in-seconds"`  |  Abrechnungsfähige Dauer des Anrufs in Sekunden  | 
|  `"SchemaVersion":"schema-version"`  |  Die Version des CDR-Schemas  | 
|  `"SourcePhoneNumber":"12075550155"`  |  E.164-Telefonnummer des Absenders  | 
| "SourcePhoneNumberName":"North Campus Reception" | Der Name, der der Quell-Telefonnummer zugewiesen wurde | 
|  `"DestinationPhoneNumber":"13605551214"`  |  E.164 Ziel-Telefonnummer  | 
| "DestinationPhoneNumberName":"South Campus Reception" | Der Name, der der Zieltelefonnummer zugewiesen wurde | 
|  `"UsageType":"usage-type"`  |  Einzelheiten zur Verwendung des Einzelartikels in der Preislisten-API  | 
|  `"ServiceCode":"service-code" `  |  Der Code des Dienstes in der Preislisten-API  | 
|  `"Direction":"direction"`  |  Richtung des Anrufs `Outbound` oder `Inbound`  | 
|  `"TimeStampEpochSeconds":"start-time-epochseconds"`  |  Der Zeitstempel des Datensatzes im epoch/Unix Zeitstempelformat  | 
|  `"Region":"AWS-region"`  |  AWS Region für den Amazon Chime SDK Voice Connector  | 
|  `"SipRuleId":"sip-rule-id"`  |  Die ID der SIP-Regel, die ausgelöst wird, wenn ein Anruf den PSTN-Audiodienst erreicht  | 
|  `"SipApplicationId":"sip-application-id"`  |  Die ID der SIP-Anwendung, die einen Anruf bearbeitet  | 
|  `"CallLegTriggerType":"trigger-type"`  |  Die Art des Ereignisses, das einen Anruf ausgelöst hat  | 
|  `"BillableVoiceFocusSeconds":"billable-voice-focus-in-seconds"`  |  Der abrechnungsfähige Betrag der Voice Focus-Nutzung in Sekunden  | 

# Grundlegendes zu Timeouts und Wiederholungsversuchen für den Amazon Chime SDK PTSN-Audiodienst
<a name="timeouts"></a>

Der PSTN-Audiodienst interagiert synchron mit Funktionen. AWS Lambda Anwendungen warten 5 Sekunden, bis die AWS Lambda Funktionen reagieren, bevor sie erneut versuchen, einen Aufruf auszuführen. [Wenn nach 20 Sekunden keine Antwort eingeht, legt der PSTN-Audiodienst auf.](unexpected-hangups.md) Wenn eine Funktion einen Fehler mit einem der 4 *XX-Statuscodes* zurückgibt, versucht die SIP-Medienanwendung standardmäßig nur einmal, den Aufruf erneut durchzuführen. Wenn Ihnen die Wiederholungsversuche ausgehen, werden Anrufe mit dem `480 Unavailable` Fehlercode beendet. Weitere Informationen zu AWS Lambda Fehlern finden Sie unter [Problembehandlung bei Aufrufen unter](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-invocation.html). AWS Lambda

# Debuggen und Problembehebung des Amazon Chime SDK PTSN-Audiodienstes
<a name="debug-pstn"></a>

Verwenden Sie die folgenden Informationen, um häufig auftretende Probleme zu diagnostizieren und zu beheben, die bei der Arbeit mit dem Amazon Chime SDK PSTN-Audiodienst auftreten können.

**Topics**
+ [Überprüfung der Protokolle für den Amazon Chime SDK PTSN-Audiodienst](check-logs.md)
+ [Debuggen unerwarteter Probleme im Amazon Chime SDK PTSN-Audiodienst](unexpected-hangups.md)
+ [Debuggen unerwarteter ACTION\$1FAILED-Ereignisse](unexpected-action-fail.md)

# Überprüfung der Protokolle für den Amazon Chime SDK PTSN-Audiodienst
<a name="check-logs"></a>

Wenn Sie eine SIP-Medienanwendung debuggen, suchen Sie in den Cloudwatch-Protokollen nach der AWS Lambda Funktion, die mit der Anwendung verknüpft ist. 

Überprüfen Sie als Nächstes die mit der SIP-Medienanwendung verknüpften Protokolle. Bei Bedarf können Sie die SIP-Medienanwendung für die Protokollierung konfigurieren. Weitere Informationen finden Sie unter [Verwenden von SIP-Medienanwendungen](https://docs.aws.amazon.com/chime-sdk/latest/ag/use-sip-apps.html) im *Amazon Chime SDK-Administratorhandbuch*. Wenn Sie die Protokollierung aktivieren, finden Sie die Protokolle auf Cloudwatch in der `/aws/ChimeSipMediaApplicationSipMessages/<SIP-media-application-Id>` Protokollgruppe.

# Debuggen unerwarteter Probleme im Amazon Chime SDK PTSN-Audiodienst
<a name="unexpected-hangups"></a>

Gehen Sie wie folgt vor, wenn bei Funktionen für den PSTN-Audiodienst unerwartete Unterbrechungen oder Fehlermeldungen auftreten: AWS Lambda 
+ [Stellen Sie sicher, dass Ihre AWS Lambda Richtlinie dem Service-Principal von `lambda:InvokeFunction` voiceconnector.chime.amazonaws.com die entsprechende Genehmigung erteilt.](http://voiceconnector.chime.amazonaws.com/)
+ Überprüfen Sie die Protokolle Ihrer AWS Lambda Funktion, um sicherzustellen, dass sie erfolgreich aufgerufen wurde.
+ Wenn in den Protokollen eingehende Ereignisse und zurückgegebene Aktionen angezeigt werden, stellen Sie sicher, dass Sie beim Aufrufen der AWS Lambda Funktion keine Aufhängeaktion zurückgeben.
+ Überprüfen Sie die CloudWatch Protokolle für Ihre SIP-Medienanwendung. In der folgenden Tabelle sind einige der Nachrichten aufgeführt, auf die Sie möglicherweise stoßen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/unexpected-hangups.html)

# Debuggen unerwarteter ACTION\$1FAILED-Ereignisse
<a name="unexpected-action-fail"></a>

Wenn Sie ein unerwartetes `ACTION_FAILED` Ereignis erhalten, überprüfen Sie Folgendes:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/unexpected-action-fail.html)

# Verständnis VoiceFocus für den Amazon Chime SDK PTSN-Audiodienst
<a name="voice-focus"></a>

Ermöglicht es Ihnen, die Amazon Voice Focus-Geräuschunterdrückung auf eingehende und ausgehende Anrufabschnitte bei einem PSTN-Anruf (Public Switched Telephony Network) anzuwenden. Wenn Sie Amazon Voice Focus anwenden, werden Hintergrundgeräusche reduziert, ohne die menschliche Sprache zu beeinträchtigen. Dadurch kann der aktuelle Lautsprecher leichter zu hören sein.

Um eingehende Anrufabschnitte zu erstellen, verwenden Sie eine [SIP-Regel](https://docs.aws.amazon.com/chime/latest/ag/manage-sip-applications.html), die eine AWS Lambda Funktion mit einem `NewInboundCall` Ereignis aufruft. Sie können ausgehende Anrufabschnitte mithilfe der [CallAndBridge](call-and-bridge.md) Aktion oder mithilfe eines [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html)API-Vorgangs erstellen. Weitere Informationen zu Amazon Voice Focus finden Sie unter [So funktioniert die Geräuschunterdrückung des Amazon Chime SDK](https://www.amazon.science/blog/how-amazon-chimes-challenge-winning-noise-cancellation-works).

 Amazon Voice Focus reduziert unerwünschte Geräusche, die nicht mit Sprache zu tun haben, darunter: 
+ **Umgebungsgeräusche** — Wind, Lüfter, fließendes Wasser
+ **Hintergrundgeräusche** — Rasenmäher, bellende Hunde
+ **Geräusche im Vordergrund** — Tippen, paper mischen

**Anmerkung**  
Wenn Sie Amazon Voice Focus verwenden, werden Ihnen die aktiven Gesprächsminuten jedes Anrufabschnitts und jede Minute der Nutzung der SIP-Medienanwendung in AWS Rechnung gestellt.

Dieses Beispiel zeigt eine typische `VoiceFocus` Aktion.

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "VoiceFocus",
            "Parameters": {
                "Enable": True|False,            // required
                "CallId": "call-id-1",           // required    
            }
        }
    ]
}
```

**Enable**  
*Beschreibung* — Aktiviert oder deaktiviert Amazon Voice Focus  
*Zulässige Werte* — \$1 `True` `False`  
*Erforderlich* — Ja  
*Standardwert* – Kein

**CallId**  
*Beschreibung* — CallId des Teilnehmers am `CallDetails` AWS Lambda Funktionsaufruf  
*Zulässige Werte* — Eine gültige Anruf-ID  
*Erforderlich* — Ja  
*Standardwert* – Kein

Dieses Beispiel zeigt ein erfolgreiches `ACTION_SUCCESSFUL` Ereignis für die `VoiceFocus` Aktion.

```
{
   "SchemaVersion": "1.0",
   "Sequence": 3,
   "InvocationEventType": "ACTION_SUCCESSFUL",
   "ActionData": {
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
            "Status": "Connected"
         },
         {
            "CallId": "call-id-of-callee",
            .....
            "Status": "Connected"
         }
      ]
   }
}
```

Dieses Beispiel zeigt ein typisches `ACTION_FAILED` Ereignis für die `VoiceFocus` Aktion.

```
{
   "SchemaVersion": "1.0",
   "Sequence":2,
   "InvocationEventType": "ACTION_FAILED",
      "ActionData":{
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
      },
      "ErrorType": "SystemException",
      "ErrorMessage": "System error while running action"
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
         }
      ]
   }
}
```

**Fehlerbehandlung**  
Aus Sicherheitsgründen haben die PSTN-Audioaktionen ein Limit von 5 Anrufanfragen pro Sekunde pro Kundenkonto (CPS). Wenn Anrufanfragen das Limit von 5 CPS überschreiten, gibt die Aktion eine Fehlermeldung zurück. In dieser Tabelle sind die von der `VoiceFocus` Aktion zurückgegebenen Fehlermeldungen aufgeführt.


| Fehler | Fehlermeldung | Grund | 
| --- | --- | --- | 
| `ActionExecutionThrottled` | Die Aktion konnte nicht ausgeführt werden. Die maximale Anzahl von Aktionen pro Sekunde wurde erreicht. | Die Anzahl der Voice Focus-Aktionsanfragen pro Sekunde hat das Systemlimit überschritten.  | 
| `MissingRequiredActionParameter` | Der erforderliche Aktionsparameter fehlt. | Ein oder mehrere der erforderlichen Parameter fehlen beim Ausführen der Aktion. | 
| `SystemException` | Systemfehler beim Ausführen der Aktion. | Beim Ausführen der Aktion ist ein Systemfehler aufgetreten. | 

**Anrufflüsse**  
Dieses Diagramm zeigt den Anruffluss für die Aktivierung und Deaktivierung von Amazon Voice Focus für eine `CallAndBridge` Aktion zwischen zwei PSTN-Anrufen.

![\[Der Anruffluss, wenn Sie den Amazon Voice-Fokus für zwei überbrückte PSTN-Anrufe aktivieren oder deaktivieren.\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/images/voice_focus-pstn1.png)


Für den ausgehenden Anrufabschnitt aktiviert die AWS Lambda Funktion den Amazon Voice-Fokus für den Anrufer und gibt eine Reihe von Aktionen zurück, darunter. `CallAndBridge` Sobald der Anruf überbrückt ist, gibt die `VoiceFocus` Aktion ein `ACTION_SUCCESSFUL` Ereignis zurück, und die Lambda-Funktion gibt eine weitere Gruppe von Ereignissen zurück, die Amazon Voice Focus für die angerufene Person aktivieren. Diese Gruppe von Aktionen umfasst`VoiceFocus`, `Enable``True`, und die ID des Anrufers. Es werden keine weiteren Maßnahmen ergriffen, bis der Anrufer auflegt. Die Lambda-Funktion sendet dann eine `Hangup` Aktion an die SIP-Medienanwendung. Die Anwendung beendet die angerufene Person und sendet eine Hangup-Funktion zurück an die Lambda-Funktion, die keine weiteren Aktionen ausführt.

# Glossar zu den PSTN-Audiodiensten des Amazon Chime SDK
<a name="chm-dg-glossary"></a>

\$1 [A](#a) \$1 [C](#c) \$1 [E](#e) \$1 [I](#i) \$1 [L](#l) \$1 [M](#m) \$1 [N](#n) \$1 [O](#o) \$1 [P](#p) \$1 [S](#s) \$1 [T](#t) \$1 [V](#v) \$1 

## A
<a name="a"></a>

**Aktion**  
In einer AWS Lambda Funktion ist eine Aktion ein Element, das Sie im Anschluss an einen Telefonanruf ausführen möchten, z. B. das Senden oder Empfangen von Ziffern, die Teilnahme an einer Besprechung usw. Weitere Informationen zu Aktionen, die vom PSTN-Audiodienst unterstützt werden, finden Sie unter. [Unterstützte Aktionen für den Amazon Chime SDK PSTN-Audiodienst](specify-actions.md)

**AWS Lambda**  
Ein Rechendienst, mit dem Sie Code für fast jede Art von Anwendung oder Back-End-Dienst ausführen können, ohne Server bereitstellen oder verwalten zu müssen.

**AWS Lambda Funktion**  
Im Zusammenhang mit dem PSTN-Audiodienst wird eine Funktion als Reaktion auf Daten ausgeführt, die von einer SIP-Medienanwendung übergeben werden, z. B. wenn ein ausgehender Anruf getätigt wird. 

## C
<a name="c"></a>

**Aufzeichnung der Anrufdetails**  
Daten von Amazon Chime SDK Voice Connector-Anrufen, z. B. Konto IDs, Quelltelefonnummern und Zielländer. Die Datensätze landen als Objekte in einem Amazon Simple Storage Service (S3) -Bucket in Ihrem Konto. Weitere Informationen finden Sie unter [Verwaltung globaler Einstellungen im Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) im *Amazon Chime SDK-Administratorhandbuch*. Informationen zum Datensatzschema finden Sie [Verwenden von Anrufdetailaufzeichnungen im Amazon Chime SDK PTSN-Audiodienst](attributes.md) in diesem Handbuch.

**Anruf-ID**  
Die ID, die den Abschnitten aller eingehenden Anrufe zugewiesen wurde.

**Teil des Anrufs**  
Teil eines Anrufs. In Amazon Chime SDK-Anwendungen können Anrufe von gültigen Telefonnummern, einem PSTN oder Amazon Chime SDK Voice Connectors kommen. Weitere Informationen finden Sie unter [Erfahren Sie mehr über die Verwendung von Amazon Chime SDK PSTN Audio Service Call Legs](call-architecture.md) in diesem Handbuch. 

**Carrier**  
Ein Unternehmen, das mobile Dienste anbietet. Abkürzung für **Mobilfunkanbieter**.

**Amazon Chime**  
Ein einheitlicher Kommunikations- und Kollaborationsdienst von AWS.

**Amazon Chime SDK**  
Ein Software-Entwicklungskit, das von Entwicklern verwendet wird, um benutzerdefinierte Kommunikationsanwendungen um Echtzeitmedien und Kommunikation zu erweitern. 

## E
<a name="e"></a>

**E.164**  
Das einzige akzeptierte Format für Telefonnummern im PSTN-Audiodienst. Gemäß ITU-T-Empfehlung verwenden die Nummern eine 1-3-stellige Landesvorwahl, gefolgt von einer maximal 12-stelligen Abonnentennummer. Zum Beispiel: USA:`+14155552671`, Großbritannien:`+442071838750 44`, Australien:`+61285993444`. 

**Endpunkt**  
 Ein Hardwaregerät oder ein Softwaredienst, z. B. ein Telefon oder eine Unified Communications-Anwendung. 

**EventBridge**  
Ein serverloser Event-Bus-Dienst, mit dem Sie Ihre Anwendungen mit Daten aus einer Vielzahl von Quellen verbinden können.  
SIP-Medienanwendungen senden keine Daten an EventBridge. Weitere Informationen finden Sie unter [Automatisieren des Amazon Chime SDK mit EventBridge](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) im Amazon Chime *SDK-Administratorhandbuch*.

## I
<a name="i"></a>

**IVR**  
Interaktive Sprachantwort. Ein System, das es Menschen ermöglicht, über Spracherkennung oder Tastaturen mit einem computergesteuerten Telefonsystem zu interagieren.

## L
<a name="l"></a>

**Bein**  
Siehe [Call leg](#call-leg).

## M
<a name="m"></a>

**Medien**  
Die Audio-, Video- oder Chat-Nachrichten, die während eines Amazon Chime SDK-Meetings verwendet werden können. Eine benutzerdefinierte Kommunikationsanwendung kann einen oder mehrere Medientypen enthalten.

**Medienpipeline**  
Ein Mechanismus zum Streamen und Aufzeichnen von Audio, Video, Nachrichten und Ereignissen während eines Amazon Chime SDK-Meetings. Weitere Informationen finden Sie unter [Amazon Chime SDK-Medien-Pipelines erstellen](media-pipelines.md) in diesem Handbuch.

## N
<a name="n"></a>

**Übertragbarkeit von Nummern**  
Die Fähigkeit, Telefonnummern zwischen Telefonanbietern oder Unified Communicationssystemen zu verschieben. 

## O
<a name="o"></a>

**Ursprung**  
Der Prozess des Empfangens eines Anrufs von einem PSTN und der Weiterleitung dieses Anrufs an einen VoIP-Endpunkt. 

## P
<a name="p"></a>

**Teilnehmer-Tag**  
Eine Kennung, die jedem Gesprächsteilnehmer zugewiesen wurde, `LEG-A` oder`LEG-B`.

**Richtlinie**  
Für das Amazon Chime SDK sind die folgenden Arten von Richtlinien erforderlich:  
+ **IAM-Benutzerrichtlinie** — Eine Richtlinie, die die Berechtigungen für Identity and Access Management-Benutzer definiert. 
+ **Besprechungsrichtlinie** — Eine Richtlinie, die es einem Benutzer ermöglicht, den Computer eines anderen Benutzers zu kontrollieren, wenn er während einer Besprechung Bildschirme teilt, und die es Besprechungsteilnehmern ermöglicht, an Besprechungen teilzunehmen, indem sie einen Telefonanruf vom Amazon Chime SDK erhalten.

**PSTN**  
Öffentliches Telefonnetz mit Telefonanschluss. Die Infrastruktur und die Dienste, die Telefonanruffunktionen bereitstellen.

**PSTN-Audiodienst**  
Ein Amazon Chime SDK-Service, mit dem Entwickler ihre Kommunikationslösungen um Audiofunktionen erweitern können.

## R
<a name="r"></a>

**Routing**  
Apps, die mit dem Amazon Chime SDK erstellt wurden, verwenden eine oder mehrere Arten von Routing:  
+ **Netzwerk-Routing** — Der Prozess der Auswahl eines Pfads für den Verkehr in einem Netzwerk oder zwischen oder zwischen mehreren Netzwerken.
+ **Routing von Interaktionen** — Der Prozess, bei dem sichergestellt wird, dass ein Anruf an den richtigen Empfänger oder Endpunkt weitergeleitet wird. 
+ **Anrufweiterleitung** — Eine Funktion zur Anrufverwaltung, die eingehende Anrufe in die Warteschlange einreiht und an vordefinierte Empfänger oder Endpunkte weiterleitet.

## S
<a name="s"></a>

**SBC**  
Grenzcontroller für Sitzungen. Ein Netzwerkelement, das zum Schutz von SIP-basierten VoIP-Netzwerken (Voice over Internet Protocol) eingesetzt wird.

**Sequence**  
Die Abfolge von Ereignissen, die eine AWS Lambda Funktion aufrufen. Jedes Mal, wenn eine Funktion während eines Aufrufs aufgerufen wird, wird die Reihenfolge inkrementiert.

**Servicelimit/Servicekontingent**  
Die maximale Anzahl von Ressourcen, wie Besprechungen, Audiostreams oder Inhaltsfreigaben, die das Amazon Chime SDK zulässt. Weitere Informationen finden Sie [Audio](meetings-sdk.md#audio) in diesem Handbuch.

**SIP**  
Das Session Initiation Protocol, ein Signalprotokoll, das zum Initiieren, Verwalten und Beenden von Echtzeitsitzungen verwendet wird, die eine beliebige Kombination von Sprach-, Video- und Messaging-Anwendungen beinhalten. Weitere Informationen finden Sie unter [SIP: Session Initiation Protocol](https://www.rfc-editor.org/rfc/rfc3261.html).

**SIP-Header**  
Parameter in AWS Lambda Funktionen, die Daten zur Anrufsteuerung sowie andere Daten wie das Benutzerkonto IDs enthalten.

**SIP-Medienanwendung**  
Ein verwaltetes Objekt, das Werte aus einer SIP-Regel an eine AWS Lambda Zielfunktion weitergibt. Entwickler können das aufrufen [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplication.html)API zum Erstellen von SIP-Medienanwendungen, aber sie müssen dafür über Administratorrechte verfügen.

**SIP-Regel**  
Ein verwaltetes Objekt, das Telefonnummern für Amazon Chime SDK Voice Connector URIs an eine Ziel-SIP-Medienanwendung weitergibt.

**SIP-Trunk**  
Siehe [Amazon Chime SDK Voice Connector](#voice-connector).

**SMA**  
Siehe SIP-Medienanwendung.

**SMA-ID**  
Siehe SIP-Medienanwendung.

## T
<a name="t"></a>

**Telekommunikation**  
Ein Telekommunikationsdienstleister.

**Kündigung**  
Der Vorgang des Beenden eines Anrufs.

**Transaktion**  
Ein Anruf, der einen oder mehrere Anrufabschnitte enthält. Weitere Informationen finden Sie unter [Erfahren Sie mehr über die Verwendung von Amazon Chime SDK PSTN Audio Service Call Legs](call-architecture.md) in diesem Handbuch.

**Transaktions-ID**  
Die ID einer Transaktion, die mehrere Anrufabschnitte enthält. Weitere Informationen finden Sie unter [Erfahren Sie mehr über die Verwendung von Amazon Chime SDK PSTN Audio Service Call Legs](call-architecture.md) in diesem Handbuch.

## V
<a name="v"></a>

**Amazon Chime SDK Sprachanschluss**  
Ein Objekt, das den SIP-Trunking-Dienst (Session Initiation Protocol) für Telefonsysteme bereitstellt. Administratoren verwenden die Amazon Chime SDK-Verwaltungskonsole, um Voice Connectors zu erstellen und zu verwalten. Weitere Informationen finden Sie unter [Amazon Chime SDK Voice Connectors verwalten](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html) im *Amazon Chime SDK-Administratorhandbuch*.

**Amazon Chime SDK Voice Connector-Gruppe**  
Ein Wrapper, der mehrere Voice Connectors aus verschiedenen AWS Regionen enthält. Gruppen ermöglichen ein regionsübergreifendes Failover eingehender Anrufe, wodurch ein fehlertoleranter Mechanismus entsteht. Weitere Informationen finden Sie unter [Amazon Chime SDK Voice Connector-Gruppen verwalten](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connector-groups.html) im *Amazon Chime SDK-Administratorhandbuch*.