

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de AWS Lambda fonctions pour le service audio PSTN du SDK Amazon Chime
<a name="writing-lambdas"></a>

Les rubriques de cette section expliquent comment créer les AWS Lambda fonctions utilisées par votre service audio PSTN. 

**Topics**
+ [Comprendre les événements de téléphonie pour le service audio PSTN du SDK Amazon Chime](pstn-invocations.md)
+ [Comprendre les actions du service audio PSTN du SDK Amazon Chime](about-actions.md)
+ [Découvrez les événements de téléphonie qui invoquent des AWS Lambda fonctions pour le service audio PSTN du SDK Amazon Chime](invoking-Lambda.md)
+ [Répondre aux appels avec des listes d'actions à l'aide du service audio PSTN du SDK Amazon Chime](invoke-on-call-leg.md)
+ [Actions prises en charge pour le service audio PSTN du SDK Amazon Chime](specify-actions.md)
+ [Utilisation des en-têtes SIP dans le service audio PTSN du SDK Amazon Chime](sip-headers.md)
+ [Utilisation des enregistrements détaillés des appels dans le service audio PTSN du SDK Amazon Chime](attributes.md)
+ [Comprendre les délais d'expiration et les nouvelles tentatives pour le service audio PTSN du SDK Amazon Chime](timeouts.md)
+ [Débogage et résolution des problèmes du service audio PTSN du SDK Amazon Chime](debug-pstn.md)
+ [Compréhension VoiceFocus du service audio PTSN du SDK Amazon Chime](voice-focus.md)
+ [Glossaire des services audio PSTN du SDK Amazon Chime](chm-dg-glossary.md)

# Comprendre les événements de téléphonie pour le service audio PSTN du SDK Amazon Chime
<a name="pstn-invocations"></a>

Le service audio invoque votre AWS AWS Lambda fonction lorsque certains événements se produisent au cours d'un appel. L'exemple suivant montre les événements, et le texte qui suit l'exemple explique chaque événement.

```
{ 
    "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**  
Version du schéma utilisée pour créer cet objet d'événement.

**Sequence**  
La séquence d'événements qui invoque votre AWS Lambda fonction. Chaque fois que votre fonction est invoquée pendant un appel, la séquence est incrémentée.

**InvocationEventType**  
Type d'événement qui déclenche un AWS Lambda appel. Pour plus d'informations, consultez [Types d’événements](#pstn-event-types) plus loin dans cette rubrique.

**CallDetails**  
Informations sur l'appel associé à l' AWS Lambda invocation.

**TransactionId**  
L'ID d'un appel associé à une AWS Lambda invocation.

**AwsAccountId**  
L'ID de AWS compte associé à l'application multimédia SIP qui a entraîné le routage des appels.

**SipMediaApplicationId**  
ID de l'application multimédia SIP associée à l'appel.

**Participants**  
Informations sur les participants à l'appel qui invoque une AWS AWS Lambda fonction.

**CallId**  
Un identifiant unique attribué à chaque participant.

**ParticipantTag**  
Chaque participant à l'appel reçoit un tag, `LEG-A` ou`LEG-B`.

**To**  
Le numéro de téléphone « à » du participant, au format E.164.

**From**  
Le numéro de téléphone « du » participant, au format E.164.

**Direction**  
La direction d'où provient un segment d'appel. `Inbound`représente un appel effectué vers le service audio. `Outbound`représente un appel effectué depuis le service audio.

**StartTimeInMilliseconds**  
Durée en millisecondes, à partir du moment où un participant rejoint un appel.

**Status**  
Si un participant est `Connected` ou `Disconnected`

## Types d’événements
<a name="pstn-event-types"></a>

Le service audio invoque la fonction Lambda avec les types d'événements suivants :

**NEW\$1INBOUND\$1CALL**  
Un nouvel appel a été lancé par un numéro de téléphone associé à votre application multimédia SIP.

**NEW\$1OUTBOUND\$1CALL**  
Un nouvel appel sortant a été effectué via l'[CreateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API.

**ACTION\$1SUCCESSFUL**  
Une action renvoyée par votre AWS Lambda fonction a réussi. Les actions réussies incluent `ActionData` celles qui correspondent à l'action réussie.   

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

**ACTION\$1FAILED**  
Une action renvoyée par votre AWS Lambda fonction n'a pas abouti. Les actions `ActionData` qui ont échoué incluent celles qui correspondent à l'action échouée, un type d'erreur et un message d'erreur décrivant l'échec :  

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

**ACTION\$1INTERRUPTED**  
Une action en cours d'exécution a été interrompue par un appel d'[ UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API. `ActionData`Cela inclut les actions interrompues :   

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

**HANGUP**  
Un utilisateur ou l'application a raccroché un segment d'appel. `ActionData`Cela inclut les détails suivants sur l'événement :  

```
   "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "SipResponseCode": 486,
            "CallId": "c70f341a-adde-4406-9dea-1e01d34d033d",
            "ParticipantTag": "LEG-A"
        }
    },
```  
**Type**  
Raccrochez.  
**Parameters**  
Informations sur l'`HANGUP`événement :   
+ **SipResponseCode**— Le code de réponse associé à l'événement. Les codes les plus courants sont les suivants :
  + **0** — Effacement normal
  + **480** — Pas de réponse
  + **486** — L'utilisateur est occupé
+ **CallId**L'identifiant du participant qui a raccroché.
+ **ParticipantTag**L'étiquette du participant qui a raccroché.

**CALL\$1ANSWERED**  
Le service audio a répondu à un appel entrant. Cet événement est renvoyé lors d'un appel d'appel sortant, sauf si l'appel est ponté.

**INVALID\$1LAMBDA\$1RESPONSE**  
La réponse fournie à la dernière AWS Lambda invocation a causé un problème. `ActionData`Cela inclut les champs supplémentaires suivants :  

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

**DIGITS\$1RECEIVED**  
L'application a reçu des chiffres DTMF après la fin d'une `ReceiveDigits` action. `ActionData`Inclut les chiffres reçus.  

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

**CALL\$1UPDATE\$1REQUESTED**  
L'[UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API a été invoquée. `ActionData`Cela inclut des informations sur la demande de mise à jour :  

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

**RINGING**  
Une jambe d'appel sonne

# Comprendre les actions du service audio PSTN du SDK Amazon Chime
<a name="about-actions"></a>

Dans le service audio PSTN, les applications multimédia SIP déclenchent AWS Lambda des fonctions. À leur tour, les AWS Lambda fonctions peuvent renvoyer une liste d'instructions appelées *actions*. Une action est un élément que vous souhaitez exécuter lors d'une partie d'un appel téléphonique, par exemple envoyer ou recevoir des chiffres, rejoindre une réunion, etc. Les actions peuvent également renvoyer des données. Vous pouvez donc les considérer comme des objets dotés de champs de données. Pour plus d'informations sur les actions invoquées par le service audio PSTN, consultez. [Comprendre les événements de téléphonie pour le service audio PSTN du SDK Amazon Chime](pstn-invocations.md)

# Découvrez les événements de téléphonie qui invoquent des AWS Lambda fonctions pour le service audio PSTN du SDK Amazon Chime
<a name="invoking-Lambda"></a>

Le service audio invoque des AWS Lambda fonctions en réponse à différents événements. Chaque appel spécifie un type d'événement d'invocation et fournit les détails de l'appel, y compris ses participants, le cas échéant. Les rubriques suivantes décrivent les événements du service audio qui appellent des AWS Lambda fonctions. 

# Passer un appel sortant pour utiliser le service audio PSTN du SDK Amazon Chime
<a name="use-create-call-api"></a>

Pour créer un appel sortant, vous devez utiliser l'[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. L'API invoque le point de terminaison d'un paramètre spécifié`SIP media application ID`. Les clients peuvent contrôler le flux de l'appel en émettant différents signaux et [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html)actions depuis le terminal. 

En cas de réponse positive, l'API renvoie un code d'état http 202 ainsi qu'un ID de transaction, que vous pouvez utiliser avec l'[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 pour mettre à jour un appel en cours.

Le schéma suivant montre les appels effectués vers le point de terminaison de la AWS Lambda fonction pour un appel sortant.

![\[Schéma illustrant le flux de programmation pour les appels adressés au point de terminaison AWS Lambda.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sip-api-1.png)


Le point de terminaison configuré pour l'application multimédia SIP est invoqué pour différents états de l'appel sortant. Lorsqu'un client lance un appel, le SDK Amazon Chime appelle le point de terminaison avec `NEW_OUTBOUND_CALL` un type d'événement d'invocation. 

Cet exemple montre un événement d'invocation typique pour un`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"
                }
            ]
    }
}
```

Toute réponse à un appel lié à un AWS Lambda événement est ignorée.

Lorsque nous recevons une `RINGING` notification du destinataire, le SDK Amazon Chime appelle à nouveau le point de terminaison configuré. 

Cet exemple montre un événement d'invocation typique pour`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"
                }
           ]
    }
}
```

Toute réponse à un appel lié à un AWS Lambda événement est ignorée.

Si le récepteur ne répond pas à l'appel ou si l'appel échoue en raison d'une erreur, Chime déconnecte l'appel et appelle le point de terminaison avec le `Hangup` type d'événement. Pour plus d'informations sur le type d'`Hangup`événement, reportez-vous à[Fin d'un appel à l'aide du service audio PSTN du SDK Amazon Chime](case-5.md). 

Si l'appel est répondu, Chime appelle le point de terminaison avec l'`CALL_ANSWERED`action. Cet exemple montre un événement d'invocation typique.

```
{
  "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"
            }
        ]
    }
}
```

À ce stade, vous pouvez renvoyer des actions en répondant à l'invocation par une liste d'actions. Si vous ne souhaitez exécuter aucune action, répondez par une liste vide. Vous pouvez répondre avec un maximum de 10 actions pour chaque AWS Lambda appel, et vous pouvez invoquer une fonction Lambda 1 000 fois par appel. Pour plus d'informations sur la réponse par des ensembles d'actions, reportez-vous à[Répondre aux appels avec des listes d'actions à l'aide du service audio PSTN du SDK Amazon Chime](invoke-on-call-leg.md).

# Réception d'un appel entrant à l'aide du service audio PSTN du SDK Amazon Chime
<a name="case-1"></a>

Lorsqu'un `NEW_INCOMING_CALL` événement se produit, le service audio crée un message unique `TransactionID` et unique `CallID` qui persiste jusqu'à ce que l'`HANGUP`événement se produise.

Vous pouvez réagir de différentes manières à un `NEW_INCOMING_CALL` événement. Par exemple :
+ Envoyez `PlayAudio` des `RecordAudio` actions et répondez automatiquement à l'appel. 
+ Envoyez une `Pause` action.
+ Envoyez une `Hangup` action, auquel cas l'appel n'est pas répondu et le client n'est pas débité.
+ Envoyez une `CallAndBridge` action et ajoutez un autre utilisateur à l'appel.
+ Ne faites rien, la tentative d'appel expire au bout de 30 secondes.

Lorsqu'un nouvel appel entrant est reçu, l'application multimédia SIP invoque une AWS Lambda fonction avec cette charge utile.

```
{
    "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"
            }
        ]
    }
}
```

# Spécification des actions en réponse aux événements de téléphonie pour le service audio PSTN du SDK Amazon Chime
<a name="use-case-2"></a>

Dans le service audio, les applications multimédia SIP invoquent AWS Lambda des fonctions. *À son tour, une fonction Lambda peut renvoyer une liste d'instructions appelées actions.* Une action est un élément que vous souhaitez exécuter lors d'une partie d'un appel téléphonique, par exemple envoyer ou recevoir des chiffres, rejoindre une réunion, etc. Pour plus d'informations sur les actions invoquées par le service audio PSTN, consultez. [Comprendre les événements de téléphonie pour le service audio PSTN du SDK Amazon Chime](pstn-invocations.md)

Lorsqu'une application multimédia SIP exécute avec succès une liste d'actions, l'application appelle la AWS Lambda fonction avec un événement d'invocation du `ACTION_SUCCESSFUL` type. Si l'une des actions échoue, l'application multimédia SIP appelle la AWS Lambda fonction avec l'`ACTION_FAILED`événement.

L'application multimédia SIP ne revient que `ACTION_SUCCESSFUL` si toutes les actions de la liste aboutissent. Si l'une des actions de la liste échoue, l'application multimédia SIP invoque la AWS Lambda fonction associée à l'`ACTION_FAILED`événement et efface les actions restantes de la liste après l'échec. L'application multimédia SIP exécute ensuite l'action suivante renvoyée par la AWS Lambda fonction. Vous utilisez la `ActionData` touche pour identifier l'appel qui a appelé la fonction.

L'événement suivant montre un exemple de charge utile pour le type d'événement `ACTION_SUCCESSFUL` d'invocation après une `PlayAudioAndGetDigits` action.

```
{
    "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"
                }
            ]
        }
    }
}
```

Lorsqu'une action d'une liste échoue, l'application multimédia SIP invoque la AWS Lambda fonction pour vous informer de l'échec et pour obtenir un nouvel ensemble d'actions à exécuter sur cet appel. L'événement suivant montre l'exemple de charge utile pour le type d'événement `ACTION_FAILED` d'invocation après une `PlayAudio` action.

```
{
    "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"
            }
        ]
    }
}
}
```

# Réception de l'entrée de l'appelant pour le service audio PSTN du SDK Amazon Chime
<a name="case-4"></a>

Vous utilisez cette `ReceiveDigits` action pour collecter les chiffres DTMF entrants et les comparer à une expression régulière. Lorsque l'application multimédia SIP reçoit des chiffres correspondant à l'expression régulière, elle invoque une AWS Lambda fonction avec un `ACTION_SUCCESSFUL` événement. Les chiffres collectés apparaissent dans la `ReceivedDigits` valeur de l'`ActionData`objet.

Par exemple :

```
{
    "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"
            }
        ]
    }
}
```

Une fois que l'appelant a saisi des chiffres correspondant à votre modèle d'expression régulière, l'application multimédia SIP invoque une AWS Lambda fonction qui renvoie le type de charge utile suivant :

```
{
    "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"
            }
        ]
    }
}
```

Voir un exemple pratique sur GitHub : [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

# Mise à jour des appels en cours pour l'audio PTSN du SDK Amazon Chime
<a name="update-sip-call"></a>

Dans le cadre du service audio PSTN, les applications multimédia SIP vous permettent de définir des actions à exécuter lors d'un appel en invoquant des fonctions Lambda définies par l'utilisateur en fonction des événements de l'appel, tels qu'un appel entrant ou des chiffres DTMF. La [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)L'API vous permet de déclencher une fonction Lambda à tout moment pendant qu'un appel est actif, en remplaçant les actions en cours par de nouvelles actions renvoyées par l'invocation.

**Flux de travail**  
Vous utilisez le [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 dans divers cas, tels que l'ajout de participants à une réunion, la désactivation ou la désactivation d'un utilisateur, sa déconnexion, etc. Le cas d'utilisation suivant décrit un flux de travail typique.

Un utilisateur appelle et écoute de la musique pendant que le SDK Amazon Chime organise la réunion. Une fois la configuration terminée, le SDK Amazon Chime arrête le son et admet l'appelant dans la réunion. Supposons ensuite l'utilisation d'un système distinct qui gère les réunions. `MyMeetingService` Chaque appel entrant doit être mis en attente. Chime MyMeetingService avertit des appels entrants, MyMeetingService puis crée un participant pour chaque appel, et lorsque celui-ci MyMeetingService est prêt à démarrer la réunion, il avertit l'application multimédia SIP et fournit un jeton pour rejoindre la réunion.

Pour gérer ce cas, la fonction Lambda doit implémenter la logique suivante. 
+ Lorsqu'un nouvel appel entrant arrive, le Lambda est invoqué avec un `NEW_INBOUND_CALL` événement. Le Lambda appelle le `MyMeetingService` et transmet `transactionId` celui qui identifie l'appel en cours et renvoie l'`PlayAudio`action.
+ Lorsque le service `MyMeetingService` est prêt à ajouter l'appelant à la réunion, il appelle [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 et transmet l'appel `transactionId` et dans `JoinToken` le cadre de ses arguments. Cet appel d'API déclenche à nouveau la fonction Lambda, désormais associée à l'`CALL_UPDATE_REQUESTED`événement. La fonction est MyMeetingService transmise `JoinToken` à la Lambda dans le cadre de l'événement, et le jeton est utilisé pour renvoyer l'`JoinChimeMeeting`action à l'application multimédia SIP, qui interrompt l'`PlayAudio`action et connecte l'appelant à la réunion.

![\[Schéma illustrant le flux de données dans l'UpdateSipMediaApplicationCallAPI.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/update-sip-call-flow3.png)


**Note**  
La [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)L'API renvoie HTTP 202 (accepté). L'application multimédia SIP confirme que l'appel est en cours et peut être mis à jour. Elle tente donc d'appeler la fonction Lambda. L'appel étant effectué de manière asynchrone, une réponse réussie de l'API ne garantit pas le démarrage ou la fin de la fonction Lambda.

L'exemple suivant montre la syntaxe de la demande.

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

**Paramètres de requête**
+ `SipMediaApplicationId`— L'ID de l'application multimédia SIP qui gère l'appel. 
+ `TransactionId`— L'identifiant de la transaction d'appel. Pour les appels entrants, ils `TransactionId` peuvent être obtenus à partir de l'`NEW_INCOMING_CALL`événement transmis à la fonction Lambda lors de son premier appel. Pour les appels sortants, `TransactionId` est renvoyé dans la réponse de [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html). 
+ **Arguments** — Arguments personnalisés mis à la disposition de la fonction Lambda dans le cadre des données d'`CallUpdateRequest`action. Peut contenir de 0 à 20 paires clé-valeur.

L'exemple suivant illustre une demande type.

```
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"}'
```

**Syntaxe de réponse**

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

**Éléments de réponse**
+ **TransactionId**— L'identifiant de la transaction d'appel, le même identifiant que celui de la demande.

L'exemple suivant montre un événement d'`CALL_UPDATE_REQUESTED`invocation.

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

**Éléments de l'événement**
+ **SchemaVersion**— La version du schéma JSON (1.0)
+ **Séquence** — Le numéro de séquence de l'événement dans l'appel
+ **InvocationEventType**— Le type d'événement d'invocation Lambda, dans ce cas, `CALL_UPDATE_REQUESTED`
+ **ActionData**— Les données associées à l'`CallUpdateRequest`action.
  + **Type** — Le type d'action, dans ce cas, `CallUpdateRequest`
  + **Paramètres** — Les paramètres de l'action
    + **Arguments** — Les arguments transmis dans le cadre de la demande `UpdateSipMediaApplicationCall` d'API
+ **CallDetails**— Les informations sur l'état actuel de l'appel

**Comprendre les actions interruptibles et non interruptibles**  
Lorsqu'une fonction Lambda renvoie une nouvelle liste d'actions alors que des actions existantes sont exécutées, toutes les actions qui suivent l'action en cours sont remplacées par les nouvelles actions. Dans certains cas, la fonction Lambda interrompt les actions en cours afin d'exécuter immédiatement de nouvelles actions.

Le schéma suivant illustre un exemple typique. Le texte situé sous le diagramme explique la logique.

![\[Schéma montrant comment les actions peuvent être remplacées lors d'un appel d'application multimédia SIP en cours.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/update-sip-actions.png)


Si l'action 2 est interruptible, nous l'arrêtons et exécutons la nouvelle action 1 à la place.

Si l'action 2 n'est pas interruptible, elle se termine avant le début de la nouvelle action 1.

Dans les deux cas, l'Action 3 n'est pas exécutée.

Si quelque chose interrompt une action, la fonction Lambda est invoquée avec `ACTION_INTERRUPTED` un événement. Cet événement est utilisé à titre informatif uniquement. L'application multimédia SIP ignore toutes les actions renvoyées par cet appel.

Types d'actions interruptibles :
+ `PlayAudio`
+ `RecordAudio`
+ `Pause`

**Exemple de fonction Lambda**  
Cet exemple montre une fonction Lambda typique qui lit un fichier audio, transmet un jeton de jointure et met à jour l'appel.

```
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();
    }
}
```

# Fin d'un appel à l'aide du service audio PSTN du SDK Amazon Chime
<a name="case-5"></a>

Vous pouvez utiliser l'[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 pour mettre fin à un appel sortant. L'API appelle le point de terminaison d'un **ID d'application multimédia SIP** spécifié. Les clients peuvent contrôler le flux de l'appel en renvoyant des actions à l'application multimédia SIP.

En cas de réponse positive, l'API renvoie un code d'état http 202 avec le`transactionId`, que vous pouvez utiliser avec l'[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 pour mettre à jour un appel en cours.

Le schéma suivant montre les appels effectués vers le point de terminaison de la AWS Lambda fonction pour un appel sortant.

![\[Le flux de données lorsque vous appelez l'CreateSipMediaApplicationCallAPI. L'API invoque un point de terminaison différent lorsque le statut d'un appel sortant change.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sip-api-1.png)


Le point de terminaison configuré pour l'application multimédia SIP est invoqué pour différents états de l'appel sortant. Lorsqu'un client reçoit un appel, le SDK Amazon Chime appelle le point de terminaison avec un `HANGUP` type d'événement d'invocation. 

Cet exemple montre un événement d'invocation typique pour un`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"
            }
        ]
    }
}
```

# Comprendre end-to-end les appels pour le service audio PSTN du SDK Amazon Chime
<a name="use-cases"></a>

Ce cas d'utilisation fournit un exemple de code permettant de recevoir un appel téléphonique d'un appelant PSTN, d'accueillir l'appelant avec un message audio, d'obtenir le code PIN de la réunion auprès de l'appelant, de lire du son et de rejoindre l'appelant à la réunion.

**Événements et actions d'invocation**  
Le service audio transmet les événements d'invocation aux AWS Lambda fonctions sous forme d'objets JSON. Les objets incluent le type d'événement d'invocation et toutes les métadonnées pertinentes. La AWS Lambda fonction renvoie également les actions des applications multimédia SIP sous forme d'objets JSON, et ces objets incluent un type d'action et toutes les métadonnées pertinentes.

Le tableau suivant répertorie les événements d'invocation, et les événements possibles`ActionData.Type`, lorsque vous recevez un événement d'invocation.


|  Événement d'invocation  |  ActionData.Type  | 
| --- | --- | 
|  ACTION\$1RÉUSSIE  |  CallAndBridge ReceiveDigits PlayAudio PlayAudioAndGetDigits  JoinChimeMeeting ModifyChimeMeetingAttendees RecordMeeting  | 
|  ACTION\$1ÉCHEC  |  CallAndBridge PlayAudio PlayAudioAndGetDigits ModifyChimeMeetingAttendees RecordMeeting  | 
| RACCROCHER |  HangUp  | 
|  CHIFFRES\$1REÇUS  | ReceiveDigits | 

**Note**  
Pour implémenter le cas d'utilisation suivant, vous avez besoin d'au moins un numéro de téléphone dans votre inventaire du SDK Amazon Chime, d'un objet géré par une application multimédia SIP qui utilise une AWS Lambda fonction avec un nom de ressource Amazon (ARN) et d'une règle SIP qui utilise le numéro de téléphone comme déclencheur.

Lorsque le SDK Amazon Chime reçoit un appel au numéro de téléphone spécifié dans la règle, le service audio PSTN appelle une AWS Lambda fonction avec le type d'événement d'invocation. `NEW_INBOUND_CALL`

```
{
    "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"
            }
        ]
    }
}
```

Vous pouvez programmer la AWS Lambda fonction pour valider les détails de l'appel et les enregistrer pour une utilisation future. Lors d'un `NEW_INBOUND_CALL` événement, la AWS Lambda fonction répond par un ensemble d'actions qui lancent une invite de bienvenue et demandent le code PIN de la réunion.

Les fichiers audio répondent aux exigences suivantes :
+ Vous devez lire des fichiers audio à partir d'un bucket Amazon Simple Storage Service (S3). Le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. En outre, vous devez donner l'`s3:GetObject`autorisation au principal du service Amazon Chime SDK Voice Connector—. `voiceconnector.chime.amazonaws.com` Pour ce faire, vous pouvez utiliser la console S3 ou l'interface de ligne de commande (CLI).
+ Vous devez utiliser des fichiers WAV PCM d'une taille maximale de 50 Mo. Le SDK Amazon Chime recommande 8 monos. KHz 
+ Les métadonnées S3 de chaque fichier WAV doivent contenir`{'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
            }
        }
    ]
}
```

L'application multimédia SIP exécute ces actions sur le segment d'appel A. En supposant que l'`PlayAudioAndGetDigits`action reçoit les chiffres, l'application multimédia SIP invoque la AWS Lambda fonction avec le type d'`ACTION_SUCCESSFUL`événement.

```
{
    "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
    }
}
}
```

Vous pouvez programmer une AWS Lambda fonction pour identifier l'appelant en fonction des `CallDetails` données. Vous pouvez également valider le code PIN de la réunion reçu plus tôt. En supposant que le code PIN est correct, vous utilisez ensuite le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html)et [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 pour créer la réunion du SDK Amazon Chime et générer le jeton de participation utilisé par le participant à la réunion. La AWS Lambda fonction répond en demandant de rejoindre la réunion du SDK Amazon Chime.

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

En supposant que `JoinToken` c'est valide, l'application multimédia SIP rejoint la réunion du SDK Amazon Chime et invoque une AWS Lambda fonction avec l'`ACTION_SUCCESSFUL`événement, qui `CallDetails` contient les données de l'application multimédia SIP et du service Chime Media () `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"
            }
        ]
    }
}
```

Si vous souhaitez arrêter d'exécuter des actions lors de l'appel ou du volet appel à ce stade, vous pouvez répondre par un ensemble d'actions vide.

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

Une fois que l'appelant a raccroché, l'application multimédia SIP invoque la AWS Lambda fonction associée à l'événement. `HANGUP` 

```
{
    "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"
            }
        ]
    }
}
```

Si vous répondez à un `Hangup` événement par une action, l'application multimédia SIP ignore l'action si aucun autre n'`Participants`affiche un `Status` de`Connected`.

# Répondre aux appels avec des listes d'actions à l'aide du service audio PSTN du SDK Amazon Chime
<a name="invoke-on-call-leg"></a>

Vous pouvez répondre à un événement d' AWS Lambda invocation avec une liste d'actions à exécuter sur les participants individuels à un appel. Vous pouvez répondre par un maximum de 10 actions pour chaque AWS Lambda appel, et vous pouvez invoquer une AWS Lambda fonction 1 000 fois par appel.

Par défaut, les applications multimédia SIP expirent si une fonction Lambda ne répond pas au bout de 20 secondes.

L'exemple suivant montre la structure générale des réponses.

```
{
    "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"
                }
            }
        }
    ]
}
```

Lorsque la AWS Lambda fonction renvoie la liste des actions à l'application multimédia SIP, les opérations suivantes se produisent :

1. L'application termine l'exécution de l'action en cours sur un appel.

1. L'application remplace ensuite l'ancien ensemble d'actions par un nouvel ensemble d'actions reçu à la suite du dernier événement d'invocation.

Si l'application multimédia SIP reçoit un ensemble `NULL` d'actions, elle conserve les actions existantes. 

# Actions prises en charge pour le service audio PSTN du SDK Amazon Chime
<a name="specify-actions"></a>

Vous pouvez spécifier différents types de signalisation et d'actions multimédias dans la réponse d'une AWS Lambda fonction. Chaque action possède des propriétés différentes. Les rubriques suivantes fournissent des exemples de code et expliquent comment utiliser les actions.

**Topics**
+ [Utilisation TransactionAttributes](transaction-attributes.md)
+ [Utilisation de l'enregistrement des appels](sip-apps-call-record.md)
+ [CallAndBridge](call-and-bridge.md)
+ [Hangup](hangup.md)
+ [JoinChimeMeeting](join-chime-meeting.md)
+ [ModifyChimeMeetingAttendee(sourdine et désactivation du son)](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)

# Utilisation TransactionAttributes
<a name="transaction-attributes"></a>

Vous utilisez la structure de `TransactionAttributes` données pour stocker des informations spécifiques à l'application, telles que l'état des appels ou les réunions IDs, puis vous transmettez ces données aux appels Lambda AWS . Cette structure élimine le besoin de stocker des données dans des bases de données externes telles qu'Amazon DynamoDB. 

`TransactionAttributes`sont [des objets JSON](https://www.w3schools.com/js/js_json_objects.asp) contenant des key/value pairs. The objects can contain a maximum of 100 key/value paires, et les objets ont une taille de charge utile maximale de 20 Ko. Les données d'une `TransactionAttributes` structure sont conservées pendant toute la durée d'une transaction.

Lorsqu'une AWS Lambda fonction passe `TransactionAttributes` à une application multimédia SIP, l'application met à jour tous les attributs enregistrés. Si vous transmettez un `TransactionAttributes` objet avec un jeu de clés existant, vous mettez à jour les valeurs enregistrées. Si vous transmettez un autre jeu de clés, vous remplacez les valeurs existantes par les valeurs de ce jeu de clés différent. Le passage d'une carte vide (`{}`) efface toutes les valeurs stockées.

**Topics**
+ [Paramètre TransactionAttributes](set-trans-attributes.md)
+ [Mise à jour TransactionAttributes](update-trans-attributes.md)
+ [Effacement TransactionAttributes](clear-trans-attributes.md)
+ [Manipulation ACTION\$1SUCCESSFUL événements](attribute-trans-success.md)
+ [Entrées non valides](attribute-trans-invalid.md)

# Paramètre TransactionAttributes
<a name="set-trans-attributes"></a>

L'exemple suivant montre comment associer une `TransactionAttributes` [PlayAudio](play-audio.md) action et transmettre les attributs d'une AWS Lambda fonction à une application multimédia SIP.

```
{
    "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"
    }
}
```

# Mise à jour TransactionAttributes
<a name="update-trans-attributes"></a>

Pour modifier le stockage`TransactionAttributes`, mettez à jour le contenu de l'objet JSON avec de nouvelles valeurs. Dans l'exemple suivant, les clés `NewKey1` et `NewKey2` sont ajoutées au`TransactionAttributes`. Ces clés sont associées aux valeurs `NewValue1` et`NewValue2`, respectivement.

```
{
    "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"
    }
}
```

Si, dans l'exemple précédent, vous êtes passé `NewValue1` à`key1`, la valeur existante de `key1` sera remplacée par`NewValue1`. Cependant, le passage d'une valeur à `NewKey1` crée une nouvelle paire clé/valeur.

# Effacement TransactionAttributes
<a name="clear-trans-attributes"></a>

Pour effacer le contenu de l'`TransactionAttributes`objet, transmettez au `TransactionAttributes` champ un objet JSON vide :

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

**Note**  
Vous ne pouvez pas effacer les données d'une `TransactionAttributes` structure en définissant sa valeur sur`null`. De plus, l'omission de la `TransactionAttribute` structure n'efface pas ses données. Passez toujours un objet JSON vide avec `TransactionAttributes` pour effacer les données de l'objet.

# Manipulation ACTION\$1SUCCESSFUL événements
<a name="attribute-trans-success"></a>

L'exemple suivant montre comment une personne réussit à [PlayAudio](play-audio.md) envoyer le fichier stocké dans le `TransactionAttributes` cadre du`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" 
            } 
        ] 
    } 
}
```

# Entrées non valides
<a name="attribute-trans-invalid"></a>

L'exemple suivant montre une entrée non valide. Dans ce cas, l'objet JSON transmet trop d'éléments à une application multimédia SIP.

```
{ 
    "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" 
    } 
}
```

L'exemple suivant montre la réponse à l'entrée précédemment donnée. Cette sortie est retransmise d'une application multimédia SIP à la fonction AWS Lambda qui a invoqué l'application.

```
{ 
    "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" 
}
```

# Utilisation de l'enregistrement des appels
<a name="sip-apps-call-record"></a>

Les actions d'enregistrement d'appels pour les applications multimédia SIP vous permettent de créer des solutions d'enregistrement d'appels et de transcription post-appel pour une variété d'utilisations. Par exemple, vous pouvez enregistrer les appels du service client et les utiliser à des fins de formation.

Vous utilisez les actions d'enregistrement des appels de concert avec vos applications multimédia SIP. Vous pouvez également utiliser les actions à la demande ou en réponse à un événement SIP. 
+ Pour démarrer l'enregistrement à la demande d'un appel dans votre application multimédia SIP, vous utilisez l'[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 pour appeler votre application et renvoyer l'[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)action. 
+ Pour démarrer l'enregistrement des appels en réponse à un événement SIP, vous devez renvoyer l'`StartCallRecording`action dans votre application. 

Vous pouvez suspendre et reprendre un enregistrement en cours. Pour faire une pause, utilisez l'[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)action. Pour reprendre, utilisez l'`ResumeCallRecording`action. Chaque fois que vous interrompez ou reprenez un enregistrement, l'action capte une tonalité indiquant la pause ou la reprise. Lorsque vous faites une pause, l'action enregistre le silence, que le SDK Amazon Chime utilise pour suivre la durée de la pause et inclure les pauses dans votre facture. Vous pouvez suspendre et reprendre l'enregistrement aussi souvent que nécessaire.

Pour arrêter l'enregistrement des appels, vous devez retourner à l'[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)action. Cependant, les enregistrements d'appels s'arrêtent automatiquement lorsque l'appel s'arrête, et dans ce cas, il n'est pas nécessaire de renvoyer explicitement l'`StopCallRecording`action. Vous ne pouvez démarrer et arrêter l'enregistrement qu'une seule fois pour un cycle d'appel individuel.

Le SDK Amazon Chime fournit les enregistrements d'appels vers un compartiment Amazon S3 que vous sélectionnez. Le bucket doit appartenir à votre AWS compte. Une fois qu'un appel s'arrête, l'application multimédia SIP envoie l'enregistrement dans le dossier spécifié dans le `Destination` paramètre de l'[StartCallRecording](start-call-recording.md)action. Le SDK Amazon Chime enregistre les appels dans un format WAV ouvert. Les appels qui enregistrent des pistes entrantes et sortantes utilisent le mode stéréo, la piste entrante étant sur le canal gauche et la piste sortante sur le canal droit. Si vous enregistrez uniquement la piste entrante ou sortante, le système utilise le mode mono.

**Note**  
Les enregistrements réalisés à l'aide de cette fonctionnalité peuvent être soumis aux lois ou réglementations relatives à l'enregistrement des communications électroniques. Il est de votre responsabilité et de celle de vos utilisateurs finaux de respecter toutes les lois applicables concernant l'enregistrement, notamment d'informer correctement tous les participants à une session ou à une communication enregistrée que la session ou la communication est enregistrée, et d'obtenir leur consentement.

## Facturation de l'enregistrement des appels
<a name="call-billing"></a>

Le SDK Amazon Chime vous facture à la minute la durée pendant laquelle l'enregistrement des appels est activé pour un segment d'appel, et cette durée inclut toutes les pauses. L'utilisation de l'enregistrement des appels vous est facturée une fois que l'enregistrement des appels est envoyé à votre compartiment Amazon S3.

# Enregistrement de pistes audio
<a name="record-legs"></a>

Vous pouvez enregistrer uniquement les pistes d'appel entrant ou sortant, ou les deux pistes d'un appel.

Cette image montre un appel entrant unijambiste classique ou non ponté. 

![\[Appel entrant qui communique uniquement avec une application multimédia SIP.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/call-record-sma-one-leg.png)


L'appel n'a qu'une seule étape avec un identifiant `callID` de **call-id-1**. La piste `INCOMING` audio est le son transmis par l'appelant à l'application multimédia SIP. La piste `OUTGOING` audio est le son envoyé par l'application multimédia SIP à l'appelant. Votre application multimédia SIP indique `CallId` l'appel que vous souhaitez enregistrer. Pour enregistrer le participant qui a passé l'appel, vous devez spécifier`INCOMING`. Pour enregistrer le participant qui répond à un appel, vous devez spécifier`OUTGOING`. Pour enregistrer les deux participants, spécifiez`BOTH`.

Cette image montre un appel ponté typique avec deux participants.

![\[Appel entrant qui communique avec une application multimédia SIP et un deuxième participant.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/call-record-sma-bridged.png)


****Dans cet exemple, l'appel comporte deux segments d'appel, call-id-1 et **call-id-2, et call-id-1** **est relié à call-id-2**.**** Cela crée quatre pistes audio, les flux audio entrants et sortants pour les deux appels IDs. Vous pouvez spécifier les pistes audio IDs et les appels à enregistrer. Par exemple, si vous souhaitez enregistrer la piste audio du participant appelé, vous devez l'`INCOMING`enregistrer en spécifiant **call-id-2** comme piste `CallId` et `INCOMING` comme piste.

Si vous souhaitez enregistrer tout ce que l'appelant entend, vous devez enregistrer la piste `OUTGOING` audio en spécifiant **call-id-1** comme piste `CallId` et `OUTGOING` comme piste. Si vous souhaitez enregistrer tout le son qu'ils ont `Caller` dit et entendu, vous devez enregistrer les pistes `BOTH` audio en spécifiant `call-id-1` « `CallId` et » `BOTH` comme piste.

# Exemples de cas d'utilisation
<a name="recording-use-cases"></a>

Les applications multimédia SIP fournissent des actions d'enregistrement d'appels comme éléments de base. Ils vous offrent la flexibilité nécessaire pour créer des solutions d'enregistrement des appels adaptées à vos cas d'utilisation professionnels. Les cas suivants illustrent certains scénarios d'utilisation courants.

**Topics**
+ [Cas 1 : enregistrement d'un appel unijambiste impliquant des actions SIP](#recording-case-1)
+ [Cas 2 : enregistrement audio sélectif lors d'un appel ponté](#recording-case-2)
+ [Cas 3 : enregistrement de plusieurs étapes d'appel](#recording-case-3)
+ [Cas 4 : enregistrement à la demande avec pause et reprise](#on-demand-pause-resume)

## Cas 1 : enregistrement d'un appel unijambiste impliquant des actions SIP
<a name="recording-case-1"></a>

Vous pouvez enregistrer un appelant et tout son généré par les actions de l'application multimédia SIP, telles que les [PlayAudioAndGetDigits](play-audio-get-digits.md) actions [PlayAudio](play-audio.md) et. Pendant l'enregistrement, si un appelant appuie sur un chiffre, l'enregistrement capture la tonalité de ce chiffre. Cet exemple utilise l'`PlayAudioAndGetDigits`action, mais la réponse vocale interactive (IVR) peut être une série complexe d'actions d'applications multimédia SIP.

Dans cet exemple, l'application multimédia SIP enregistre les deux pistes audio entre l'appelant et l'application multimédia SIP elle-même. L'enregistrement commence lorsque l'appel est établi et s'arrête lorsque l'appelant raccroche. La facturation commence lorsque l'appel est établi et s'arrête lorsque l'appelant raccroche.

![\[Schéma d'une application multimédia SIP enregistrant deux pistes audio, dans ce cas, entre un appelant et l'application elle-même.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sma-recording-case-1.png)


## Cas 2 : enregistrement audio sélectif lors d'un appel ponté
<a name="recording-case-2"></a>

Vous pouvez enregistrer de manière sélective la piste audio d'un seul participant à un appel. Vous pouvez utiliser cette fonctionnalité pour activer de manière sélective l'enregistrement des appels uniquement pour un participant spécifique.

Dans cet exemple, l'application multimédia SIP enregistre les pistes audio entrantes entre l'appelé et l'application multimédia SIP elle-même en spécifiant **call-id-2** comme piste `CallId` et `INCOMING` comme piste. L'enregistrement des appels commence lorsque l'appelant est relié à l'appelé, et c'est également à ce moment-là que la facturation commence. L'enregistrement s'arrête lorsque l'appelé raccroche, et c'est également à ce moment-là que la facturation prend fin. Cet enregistrement contient uniquement la piste audio de l'appelé. 

![\[Schéma d'une application multimédia SIP enregistrant sélectivement une piste.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sma-recording-case-2.png)


## Cas 3 : enregistrement de plusieurs étapes d'appel
<a name="recording-case-3"></a>

Vous pouvez enregistrer plusieurs étapes d'appel. Imaginons, par exemple, que vous reliez un appel à un participant. Lorsque ce participant raccroche, l'appel téléphonique est transféré à un autre participant. Vous pouvez activer l'enregistrement des appels pour les trois étapes d'appel. 

Cet exemple montre trois fichiers d'enregistrement distincts. L'enregistrement de la première partie de l'appel capture la conversation entre l'appelant, votre application et les deux participants qui ont participé à l'appel. L'enregistrement du deuxième segment d'appel capture la conversation entre l'appelant et le premier participant. L'enregistrement du troisième segment d'appel capture la conversation entre l'appelant et le deuxième participant. 

Ce cas crée trois segments d'appel, et la facturation s'applique au début et à la fin de chaque segment d'appel. En d'autres termes, le système fournit trois enregistrements à votre compartiment S3, et chacun vous est facturé. 

![\[Schéma d'une application multimédia SIP enregistrant plusieurs étapes d'appel.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sma-recording-case-3.png)


## Cas 4 : enregistrement à la demande avec pause et reprise
<a name="on-demand-pause-resume"></a>

Vous pouvez démarrer, arrêter, suspendre et reprendre l'enregistrement des appels à la demande à l'aide de l'[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. Vous pouvez créer une application client qui appelle l'`UpdateSipMediaApplicationCall`API et appelle votre application multimédia SIP pour renvoyer les actions d'enregistrement des appels.

Vos utilisateurs finaux utilisent l'application cliente pour contrôler l'enregistrement des appels. Par exemple, dans un centre d'appels, un agent utiliserait une application client de bureau pour déclencher des actions d'enregistrement d'appels à la demande. Dans l'exemple du centre d'appels, l'agent peut demander à l'appelant l'autorisation d'enregistrer l'appel téléphonique, et il peut cliquer dans l'application cliente pour démarrer l'enregistrement une fois que l'appelant est d'accord. Dans un autre exemple, l'appelant peut avoir besoin de fournir des informations telles qu'un numéro de sécurité sociale (SSN). Cependant, la politique du centre d'appels exige que l'agent n'enregistre pas d'informations telles que le SSN d'un client. L'agent peut cliquer sur l'application pour suspendre l'enregistrement pendant que le client fournit les informations, puis cliquer à nouveau pour reprendre l'enregistrement. Une fois que l'agent a traité la demande de l'appelant, il clique sur l'application pour arrêter l'enregistrement et raccroche l'appel.

Dans ce cas d'utilisation, l'application multimédia SIP enregistre les pistes audio entre l'appelant et l'application multimédia SIP. Comme la `call-id-1` jambe est attachée à la `call-id-2` jambe, le système enregistre le son sur les deux jambes, celui de l'appelant et celui de l'appelant. L'enregistrement et la facturation commencent lorsque l'`UpdateSipMediaApplicationCall`API appelle l'`StartCallRecording`action. L'enregistrement et la facturation s'arrêtent lorsque l'`UpdateSipMediaApplicationCall`API appelle l'`StopCallRecording`action. Pour rappel, la mise en pause de l'enregistrement ne modifie pas sa durée et toutes les pauses vous sont facturées. 

![\[Schéma d'une application multimédia SIP enregistrant à la demande avec enregistrement suspendu et repris.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/sma-recording-on-demand.png)


# Actions d'enregistrement d'appels pour les applications multimédia SIP
<a name="use-recording-apis"></a>

Vous pouvez spécifier différentes actions d'enregistrement d'appels dans une réponse à partir de la AWS Lambda fonction de votre application multimédia SIP. Les rubriques suivantes fournissent des exemples de code et expliquent comment utiliser les actions.

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

L'`StartCallRecording`action lance l'enregistrement d'un segment d'appel. Vous démarrez l'enregistrement des appels dans vos applications multimédia SIP, soit à la demande, soit en réponse à un événement SIP.
+ Pour démarrer l'enregistrement à la demande d'un appel, vous utilisez l'`UpdateSipMediaApplication`API pour appeler votre application et renvoyer l'`StartCallRecording`action.
+ Pour démarrer l'enregistrement des appels en réponse à un événement SIP, vous devez renvoyer l'`StartCallRecording`action dans votre application. 

Vous spécifiez si vous souhaitez enregistrer la piste audio de l'étape entrante, de la partie sortante ou des deux. Les sections suivantes expliquent comment utiliser cette `StartCallRecording` action.

**Note**  
Les enregistrements réalisés à l'aide de cette fonctionnalité peuvent être soumis aux lois ou réglementations relatives à l'enregistrement des communications électroniques. Il est de votre responsabilité et de celle de vos utilisateurs finaux de respecter toutes les lois applicables concernant l'enregistrement, notamment d'informer correctement tous les participants à une session ou à une communication enregistrée que la session ou la communication est enregistrée, et d'obtenir leur consentement.

**Topics**
+ [Demander une StartCallRecording action](#request-start)
+ [Spécification d'une destination d'enregistrement](#recording-destination)
+ [Octroi d'autorisations de compartiment Amazon S3](#grant-s3-perms)
+ [Action, réponse réussie](#action-successful)
+ [Réponse à une erreur d'action](#action-error)

## Demander une StartCallRecording action
<a name="request-start"></a>

L'exemple suivant montre comment demander l'`StartCallRecording`action pour les `BOTH` pistes.

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Piste**  
*Description* — Audio `Track` de l'enregistrement de l'appel.  
*Valeurs autorisées* — `BOTH``INCOMING`, ou `OUTGOING`  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Type de destination**  
*Description* — Type de destination. Seul Amazon S3 est autorisé.  
*Valeurs autorisées* — Amazon S3  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Destination. Emplacement**  
*Description* — Un compartiment Amazon S3 valide et un préfixe de clé Amazon S3 facultatif. Le bucket doit disposer d'autorisations pour accéder au principal service Amazon Chime SDK Voice Connector, voiceconnector.chime.amazonaws.com.  
*Valeurs autorisées* : chemin Amazon S3 valide pour lequel le SDK Amazon Chime dispose des autorisations relatives aux actions et. `s3:PutObject` `s3:PutObjectAcl`  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

## Spécification d'une destination d'enregistrement
<a name="recording-destination"></a>

Le SDK Amazon Chime fournit les enregistrements d'appels à votre compartiment Amazon S3. Le bucket doit appartenir à votre AWS compte. Vous spécifiez l'emplacement du compartiment dans le `Destination` paramètre de l'`StartCallRecording`action. Le `Type` champ du `Destination` paramètre doit être`S3`. Le `Location` champ comprend votre compartiment Amazon S3, plus un préfixe de clé d'objet facultatif dans lequel l'enregistrement des appels est transmis. 

L'application multimédia SIP utilise la date et l'heure spécifiées`Location`, la date et l'heure du segment d'appel, l'ID de transaction et l'ID d'appel pour formater la clé d'objet Amazon S3. La réponse à l'`StartCallRecording`action renvoie la clé complète de l'objet Amazon S3.

Lorsque vous fournissez uniquement le compartiment Amazon S3 `Location` sur le terrain, l'application multimédia SIP ajoute un préfixe par défaut`Amazon-Chime-SMA-Call-Recordings`, au chemin Amazon S3. L'application multimédia SIP ajoute également l'année, le mois et le jour de début de l'appel pour aider à organiser les enregistrements. L'exemple suivant montre le format général d'un chemin Amazon S3 avec le préfixe par défaut. Cet exemple utilise `myRecordingBucket` comme `Location` valeur.

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

L'exemple suivant montre les données représentées dans le chemin Amazon S3 qui enregistre les appels.

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

Lorsque vous fournissez le compartiment Amazon S3 et le préfixe de clé d'objet `Location` sur le terrain, l'application multimédia SIP utilise votre préfixe de clé d'objet dans le chemin Amazon S3 de destination au lieu du préfixe par défaut. L'exemple suivant montre le format général d'un appel enregistrant le chemin Amazon S3 avec votre préfixe. Par exemple, vous pouvez spécifier myRecordingBucket /TechnicalSupport/English comme. `Location` 

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

L'exemple suivant montre les données du chemin Amazon S3.

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

L'enregistrement envoyé à votre compartiment Amazon S3 contient des [métadonnées d'objet Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) supplémentaires concernant le segment d'appel. Le tableau suivant répertorie les métadonnées d'objets Amazon S3 prises en charge.


| Nom | Description | 
| --- | --- | 
| identifiant de transaction | Numéro de transaction de l'appel téléphonique | 
| identifiant d'appel | CallId du participant à l' CallDetails invocation de la AWS Lambda fonction | 
| durée d'enregistrement | Durée d'enregistrement des appels en secondes | 
| recording-audio-file-format | Format de fichier audio d'enregistrement d'appels représenté par le type de média Internet | 

## Octroi d'autorisations de compartiment Amazon S3
<a name="grant-s3-perms"></a>

Votre compartiment Amazon S3 de destination doit appartenir au même AWS compte que votre application. En outre, l'action doit donner une `s3:PutObject` `s3:PutObjectAcl` autorisation au responsable du service Amazon Chime SDK Voice Connector,. `voiceconnector.chime.amazonaws.com` L'exemple suivant accorde l'autorisation appropriée. 

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

Le service audio PSTN lit et écrit dans votre compartiment S3 pour le compte de votre application Sip Media. Pour éviter le [problème des adjoints confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), vous pouvez limiter les autorisations du bucket S3 à une seule application multimédia SIP.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

## Action, réponse réussie
<a name="action-successful"></a>

Lorsque l'enregistrement d'appel est démarré avec succès sur un segment d'appel, l'application multimédia SIP invoque une AWS Lambda fonction du type d'`ACTION_SUCCESSFUL`événement. L'emplacement de l'enregistrement des appels est renvoyé dans la réponse. 

```
{
    "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": {
        ...
    }
}
```

## Réponse à une erreur d'action
<a name="action-error"></a>

En cas d'erreur de validation, l'application multimédia SIP appelle la AWS Lambda fonction avec le message d'erreur approprié. Le tableau suivant répertorie les messages d'erreur.




| Erreur | Message | Raison | 
| --- | --- | --- | 
| `InvalidActionParameter` | `CallId`le paramètre d'action n'est pas valide | Tout paramètre n'est pas valide. | 
| `SystemException` | Erreur système lors de l'exécution d'une action. | Un autre type d'erreur système s'est produit lors de l'exécution d'une action. | 

Lorsque l'action ne parvient pas à enregistrer le contenu multimédia lors d'un segment d'appel, l'application multimédia SIP invoque une AWS Lambda fonction du type d'`ActionFailed`événement. 

L'exemple suivant montre une réponse d'erreur typique.

```
{
    "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": {
        ...
    }
}
```

Voir un exemple pratique sur 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>

L'`StopCallRecording`action arrête l'enregistrement d'un segment d'appel. L'enregistrement s'arrête automatiquement à la fin d'un appel, et votre application n'a pas besoin de renvoyer explicitement l'`StopCallRecording`action. Une fois que l'enregistrement d'un segment d'appel s'arrête, il ne peut pas recommencer et l'enregistrement est livré à la destination spécifiée dans l'`StartCallRecording`action. 

L'exemple suivant arrête l'enregistrement pour le segment `call-id-1` d'appel. 

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

Voir un exemple pratique sur 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>

L'`PauseCallRecording`action interrompt l'enregistrement d'un segment d'appel. Chaque fois que vous interrompez un enregistrement, celui-ci capte une tonalité indiquant la pause. Lorsque vous faites une pause, l'enregistrement continue, mais il ne capture que le silence. La suspension de l'enregistrement n'a aucune incidence sur la durée totale de l'enregistrement. Vous pouvez suspendre et reprendre l'enregistrement aussi souvent que nécessaire.

L'exemple suivant met en pause l'enregistrement. 

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

Voir un exemple pratique sur 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>

L'`ResumeCallRecording`action reprend l'enregistrement d'un segment d'appel. Avant le redémarrage de l'enregistrement, une courte tonalité est jouée. Vous pouvez suspendre et reprendre un enregistrement plusieurs fois pendant toute la durée de la phase d'appel. 

L'exemple suivant reprend l'enregistrement. 

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

Voir un exemple pratique sur 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>

Crée un appel sortant vers un numéro de téléphone PSTN ou vers une liaison SIP configurée comme connecteur vocal Amazon Chime SDK ou groupe de connecteurs vocaux Amazon Chime SDK, puis le relie à un appel existant. Vous l'utilisez `PSTN` lorsque vous appelez un numéro de téléphone et `AWS` lorsque vous appelez une ligne principale SIP. 

Un appel existant peut être un appel sortant créé à l'aide de l'[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 ou un appel entrant créé par une règle SIP qui invoque la AWS Lambda fonction avec un événement. `NewInboundCall` Lorsque vous implémentez une `CallAndBridge` action sur un point de terminaison d'un connecteur vocal ou d'un groupe de connecteurs vocaux, vous devez spécifier le numéro de ressource Amazon (ARN) du connecteur vocal ou du groupe de connecteurs vocaux.

Vous pouvez également ajouter des en-têtes SIP personnalisés aux appels sortants et AWS Lambda aux fonctions. Les en-têtes personnalisés vous permettent de transmettre des valeurs telles que les numéros d'étage et les codes postaux. Pour plus d'informations sur les en-têtes personnalisés, reportez-vous à[Utilisation des en-têtes SIP dans le service audio PTSN du SDK Amazon Chime](sip-headers.md).

Lorsque vous utilisez la fonction d'appel et de pont, il est important de noter que chaque appel est pris en compte dans le compte du nombre d'appels simultanés actifs utilisé pour calculer les limites d'appels actifs du SMA. Dans cette optique, lorsque vous gérez vos limites d'appels actives SMA pour les appels et le pont, vous devez compter 2 appels pour chaque appel et chaque action de pont. Pour plus d'informations, consultez la section [Trunking SIP et quotas vocaux](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) dans le *Références générales AWS*.

L'exemple de code suivant montre une action typique qui relie un point de terminaison PSTN.

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

L'exemple suivant montre une action typique qui utilise un connecteur vocal ou un groupe de connecteurs vocaux, ainsi qu'un en-tête SIP personnalisé.

```
{
   "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**  
*Description* — Intervalle avant l'expiration d'un appel. Le minuteur démarre lors de la configuration de l'appel.  
*Valeurs autorisées* : entre 1 et 120 inclus  
*Obligatoire* — Non  
*Valeur par défaut* : 30

**CallerIdNumber**  
*Description* — Un numéro appartenant au client, ou le numéro From du A Leg  
*Valeurs autorisées* : numéro de téléphone valide au format E.164  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Endpoints**  
*Description* — Les points de terminaison d'un appel  
*Valeurs autorisées* :   
+ `BridgeEndpointType`— `AWS` pour les connecteurs vocaux et les groupes de connecteurs vocaux, sinon`PSTN`.
+ `Arn`— L'ARN d'un connecteur vocal ou d'un groupe de connecteurs vocaux. Nécessaire uniquement lorsque vous l'utilisez `AWS` en tant que`BridgeEndpointType`. 
+ `Uri`— La valeur de l'URI dépend du type de point de terminaison.

  Pour les `PSTN` points de terminaison, l'URI doit être un numéro de téléphone E.164 valide.

  Pour les `AWS` points de terminaison, la valeur de l'URI définit la `user` partie du`Request-URI`. Vous devez utiliser le format [Augmented Backus-Naur](https://datatracker.ietf.org/doc/html/rfc2234). Longueur requise : entre 1 et 36, inclus. Utilisez les valeurs suivantes : `a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, ` (`,`), (`.`)

  La valeur d'hôte de `Request-URI` est dérivée des routes entrantes du connecteur vocal cible. L'exemple suivant montre une `CallAndBridge` action avec un `AWS` point de terminaison.

  ```
  {
     "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"
              }
           }
        }
     ]
  }
  ```

  Pour plus d'informations sur les routes entrantes et les connecteurs vocaux, consultez la section [Modification des paramètres du connecteur vocal du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/edit-voicecon.html).
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**SipHeaders**  
*Description* — Vous permet de transmettre des valeurs supplémentaires. À utiliser uniquement avec le type de `AWS` point de terminaison.  
*Valeurs autorisées* — En-tête SIP valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

L'exemple suivant montre une `CallAndBridge` action réussie qui utilise un point de terminaison PSTN :

```
{
   "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"
         }
      ]
   }
}
```

L'exemple suivant montre une `CallAndBridge` action qui a échoué.

```
{
   "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",
            .....   
         }
      ]
   }
}
```

## Flux d'appels
<a name="call-bridge-flows"></a>

L'`CallAndBridge`action fournit une signalisation d'appel et une expérience audio différentes pour un segment d'appel existant, en fonction des paramètres et du fait que le segment est connecté ou non.

Le schéma suivant montre les flux d'appels avec différents paramètres lorsqu'un segment d'appel entrant A est déjà connecté.

![\[Le flux d'une réponse à un appel tout au long de l'CallAndBridgeaction.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/call-bridge-ans-2.png)


Le schéma suivant montre le flux d'appels pour un appel sans réponse.

![\[Le flux d'un appel sans réponse tout au long de l'CallAndBridgeaction.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/SMA_Bridging_NotAns.png)


**Informations supplémentaires**  
Souvenez-vous de ces faits concernant l'`CallAndBridge`action.
+ `CallTimeoutSeconds`— Ce temporisateur démarre lorsque l'invitation SIP est envoyée sur le B-Leg. Vous pouvez définir la valeur cible souhaitée, mais cette valeur peut être ignorée par les transporteurs en amont.
+ `CallerIdNumber`— Ce numéro de téléphone doit appartenir au client ou être le numéro de téléphone d'un A-Leg.
+ **Comportement de raccrochage et cas** extrêmes : si un segment d'appel raccroche, l'autre branche d'appel ne raccroche pas automatiquement. Lorsqu'un `Hangup` événement est envoyé à la AWS Lambda fonction, le segment restant doit être déconnecté indépendamment. Si un segment d'appel est laissé en suspens, l'appel est facturé jusqu'à ce qu'il soit raccroché. Par exemple, le scénario suivant peut entraîner des frais imprévus :
  + Vous essayez de vous connecter à un numéro de téléphone de destination. La destination est occupée et envoie l'appel directement vers la messagerie vocale. Du point de vue du service audio, accéder à la messagerie vocale est une réponse à un appel. Le A-Leg raccroche, mais le B-Leg continue d'écouter le message vocal. Pendant que le B-Leg écoute, vous êtes facturé.
  + Il est recommandé d'utiliser la AWS Lambda fonction, ou le correspondant à l'autre bout de l'appel, pour raccrocher chaque segment d'appel indépendamment.
+ **Facturation** — Les frais suivants vous sont facturés lorsque vous utilisez `CallAndBridge` :
  + Minutes d'appel actives pour chaque segment d'appel créé (A-Leg, B-Leg, etc.) vers le PSTN.
  + Minutes d'utilisation du service audio.

Consultez des exemples pratiques sur 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-transfert](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-on-enregistrement de la demande](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Envoie une `Hangup` valeur avec un `SipStatusCode` à n'importe quel segment d'un appel.

Lorsque le service audio exécute une `Hangup` action sur un segment d'appel :
+ Pour un appel comportant un seul segment d'appel, l'application multimédia SIP invoque la AWS Lambda fonction avec un `HANGUP` événement et ignore la réponse. L'appel est ensuite déconnecté.
+ Pour un segment d'appel (étape A) relié à un autre segment d'appel (étape B), si l'`Hangup`action est associée au segment d'appel ponté (étape B), le service audio PSTN déconnecte le segment d'appel ponté, puis invoque la fonction Lambda avec un `HANGUP` événement pour l'étape B. Le service audio PSTN exécute ensuite toutes les actions renvoyées par cet appel Lambda.
+ Pour un segment d'appel (étape A) relié à un autre segment d'appel (étape B), si l'`Hangup`action est associée au segment d'appel d'origine (étape A), le service audio PSTN déconnecte le segment d'appel d'origine, puis invoque la fonction Lambda avec un `HANGUP` événement pour le segment A. Le service audio PSTN exécute ensuite toutes les actions renvoyées par cet appel Lambda.
+ Pour un segment d'appel qui a rejoint une réunion à l'aide de l'`JoinMeeting`action, si l'`Hangup`action est associée à l'étape de réunion (généralement l'étape B), l'appelant se déconnecte de la réunion et reçoit un `ACTION_SUCCESSFUL` événement pour l'`Hangup`action.

L'exemple suivant montre une `Hangup` action typique.

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A` ou `LEG-B`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**SipResponseCode**  
*Description* — Tous les codes de réponse SIP pris en charge  
*Valeurs autorisées* : 480 : non disponible ; 486 : occupé ; 0 : résiliation normale  
*Obligatoire* — Non  
*Valeur par défaut* — 0

Une fois qu'un utilisateur a terminé un appel, l'application multimédia SIP invoque une AWS Lambda fonction dont le code est répertorié dans[Fin d'un appel à l'aide du service audio PSTN du SDK Amazon Chime](case-5.md).

Consultez des exemples pratiques sur 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-transfert](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifications d'appels](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-enregistrement de la demande](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Participez à une réunion du SDK Amazon Chime en fournissant le jeton de connexion au participant. Pour ce faire, vous devez appeler le AWS SDK au [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html) et [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 pour obtenir le jeton et le transmettre dans l'action. Consultez l'exemple suivant. 

**Note**  
Vous ne pouvez pas exécuter cette action sur un appel ponté.

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

**JoinToken**  
*Description* — Un jeton de participation valide du participant à la réunion du SDK Amazon Chime  
*Valeurs autorisées* : jeton de jointure valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**MeetingId**  
*Description* — Un identifiant de réunion du SDK Amazon Chime valide associé au. `JoinToken` Si la réunion a été créée à l'aide d'une API dans l'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html), l'identifiant de réunion n'est pas requis. Si la réunion a été créée à l'aide d'une API dans l'espace de noms [Amazon Chime SDK Meetings](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html), l'identifiant de réunion est requis. La réunion est jointe à l'aide du point de terminaison API utilisé pour créer la réunion.  
*Valeurs autorisées* : identifiant de réunion valide.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

L'application multimédia SIP invoque toujours une AWS Lambda fonction après avoir exécuté cette action. Il renvoie soit le type d'événement, `ACTION_SUCCESSFUL` soit le type d'événement d'`ACTION_FAILED`invocation. L'exemple suivant montre une structure d'événement d'invocation réussie.

```
{
    "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": {
        ...
    }
}
```

**Gestion des erreurs**  
Lorsqu'une erreur de validation se produit lors de la transition d'une réunion, l'application SIP appelle sa AWS Lambda fonction avec l'un des messages d'erreur présentés dans le tableau suivant.


|  Erreur  |  Message  |  Raison  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `JoinToken`la valeur du paramètre n'est pas valide.  |  L'un des autres paramètres de l'action n'est pas valide ou est absent.  | 
|  `SystemException`  |  Erreur système lors de l'exécution de l'action.  |  Un autre type d'erreur système s'est produit lors de l'exécution de l'action.  | 

L'exemple suivant illustre un événement de défaillance typique.

```
{
    "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": {
        ...
    }
}
```

Voir un exemple pratique sur GitHub : [https://github.com/aws-samples/amazon-chime-sma-update-call](https://github.com/aws-samples/amazon-chime-sma-update-call)

# ModifyChimeMeetingAttendee(sourdine et désactivation du son)
<a name="mute-unmute"></a>

Permet à l'application multimédia SIP de modifier le statut d'un participant à la téléphonie en fournissant l'identifiant de réunion du SDK Amazon Chime et la liste des participants.

**Note**  
Cette action prend actuellement en charge les opérations de désactivation et de désactivation du son sur les participants au téléphone. En outre, l'utilisateur doit être joint à une réunion à l'aide de l'`JoinChimeMeeting`action. Cette action peut être effectuée sur un `participantTag=“LEG-B”` ou un correspondant`CallId`. 

Cette action s'applique uniquement au CallLeg qui rejoint la réunion depuis l'application multimédia SIP vers `"+` *13605550122* `"` LEG-B, ou au segment joint depuis l'application multimédia SIP à la réunion.

```
{
"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**  
*Description* — L'opération à effectuer sur la liste des participants  
*Valeurs autorisées* : muet, non muet  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**MeetingId**  
*Description* — L'identifiant de la réunion à laquelle appartiennent les participants  
*Valeurs autorisées* : identifiant de réunion valide. La personne qui active ou désactive le son doit également participer à la réunion.  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**CallId**  
*Description* — L'identifiant de la réunion à laquelle appartiennent les participants  
*Valeurs autorisées* : un identifiant d'appel valide.  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — Le tag attribué au participant.  
*Valeurs autorisées* : balise valide.  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**AttendeeList**  
*Description* — Liste des participants IDs à désactiver ou rétablir le son  
*Valeurs autorisées* : liste des participants valides IDs  
*Obligatoire* — Oui  
*Valeur par défaut* — Aucune, maximum de 100

Après avoir exécuté cette action, Audio Service invoque toujours une AWS Lambda fonction du type d'événement `ACTION_SUCCESSFUL` ou `ACTION_FAILED` d'invocation. L'exemple de code suivant illustre un événement d'`ACTION_SUCCESSFUL`invocation typique.

```
{
    "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": {
        ...
    }
}
```

**Gestion des erreurs**  
En cas de paramètres d'instruction non valides ou d'échec de l'API, les applications multimédia SIP appellent une AWS Lambda fonction avec le message d'erreur spécifique à l'instruction ou à l'API défaillante.


|  Erreur  |  Message  |  Raison  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  La valeur du `ModifyChimeMeetingAttendees Operation` paramètre n'est pas valide  |  La `Operation` valeur doit être Mute ou Unmute.  | 
|     |  La valeur du paramètre Meeting ID n'est pas valide.  |  L'identifiant de réunion est vide.  | 
|     |  La valeur du paramètre de la liste des participants n'est pas valide.  |  La liste des identifiants des participants est vide ou dépasse le maximum de 100.  | 
|     |  Action non valide lors de l'appel.  |  L'appel n'est pas interrompu.  | 
|     |  L'appel n'est pas connecté à Chime Meeting.  |  Le participant n'est pas connecté à une réunion Chime.  | 
|     |  Un ou plusieurs participants ne participent pas à cette réunion. Tous les participants doivent participer à cette réunion.  |  Le participant n'est pas autorisé à modifier les participants à la réunion.  | 
|  `SystemException`  |  Erreur système lors de l'exécution de l'action.  |  Une erreur système s'est produite lors de l'exécution d'une action.  | 

L'exemple de code suivant illustre un événement de défaillance typique :

```
{
    "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": {
        ...
    }
}
```

Consultez des exemples pratiques sur 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-appeler](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Suspend un appel pendant une durée spécifiée.

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A` ou `LEG-B`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**DurationInMilliseconds**  
*Description* — Durée de la pause, en millisecondes  
*Valeurs autorisées* : un entier supérieur à 0  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

Consultez des exemples pratiques sur GitHub :
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifications d'appels](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-enregistrement de la demande](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)

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

Écoutez un fichier audio à n'importe quel moment d'un appel. Le son peut être répété autant de fois que vous le souhaitez. Le son en cours peut être interrompu à l'aide des chiffres DTMF définis dans le. `PlaybackTerminators`

Actuellement, le SDK Amazon Chime prend uniquement en charge la lecture de fichiers audio à partir du bucket Amazon Simple Storage Service (Amazon S3). Le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. En outre, vous devez donner l'`s3:GetObject`autorisation au responsable du service Amazon Chime SDK Voice Connector. Vous pouvez le faire à l'aide de la console S3 ou de l'interface de ligne de commande (CLI).

L'exemple de code suivant illustre une politique de bucket typique.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

Le service audio lit et écrit dans votre compartiment S3 pour le compte de votre application Sip Media. Pour éviter le [problème de confusion lié aux adjoints](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), vous pouvez restreindre l'accès au compartiment S3 à une seule application multimédia SIP.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

L'exemple de code suivant illustre une action typique.

```
{
    "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**  
*Description* — `CallId` du participant au`CallDetails`.  
*Valeurs autorisées* : un identifiant d'appel valide.  
*Obligatoire* — Non, s'`ParticipantTag`il est présent.  
*Valeur par défaut* : aucune.

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au`CallDetails`.  
*Valeurs autorisées* — `LEG-A` ou`LEG-B`.  
*Obligatoire* — Non, s'`CallId`il est présent.  
*Valeur par défaut* — `ParticipantTag` de l'invoqué`callLeg`. Ignoré si vous le spécifiez`CallId`.

**PlaybackTerminator**  
*Description* — Termine le son en cours en utilisant l'entrée DTMF de l'utilisateur  
*Valeurs autorisées* : tableau des valeurs suivantes : « 0 », « 1 », » 2 », « 3 », « 4 », « 5 », « 6 », » 7 », « 8 », « 9 », » \$1 », « \$1 »  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**Repeat**  
*Description* — Répète le son le nombre de fois spécifié  
*Valeurs autorisées* : nombre entier supérieur à zéro  
*Obligatoire* — Non  
*Valeur par défaut* — 1

**AudioSource.Type**  
*Description* — Type de source pour le fichier audio.  
*Valeurs autorisées* : S3.  
*Obligatoire* — Oui.  
*Valeur par défaut* : aucune.

**AudioSource.BucketName**  
*Description* — Pour les types de source S3, le compartiment S3 doit appartenir au même AWS compte que l'application SIP. Le bucket doit avoir accès au principal service Amazon Chime SDK Voice Connector, à savoir voiceconnector.chime.amazonaws.com.  
*Valeurs autorisées* : compartiment S3 valide pour lequel le SDK Amazon Chime a accès à l'action. `s3:GetObject`  
*Obligatoire* — Oui.  
*Valeur par défaut* : aucune.

**AudioSource.key**  
*Description* — Pour les types de source S3, nom de fichier du compartiment S3 spécifié dans l'`AudioSource.BucketName`attribut.  
*Valeurs autorisées* : fichier audio valide.  
*Obligatoire* — Oui.  
*Valeur par défaut* : aucune.

L'application multimédia SIP essaie de lire le son à partir de l'URL source. Vous pouvez utiliser des fichiers .wav PCM bruts et non compressés d'une taille maximale de 50 Mo. Le SDK Amazon Chime recommande 8 monochromes. KHz 

Lorsque la dernière instruction d'un plan de dialogue est terminée `PlayAudio` et que la lecture du fichier est terminée, ou si un utilisateur arrête la lecture en appuyant sur une touche, l'application invoque la AWS Lambda fonction avec l'événement illustré dans l'exemple suivant.

```
{
    "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",
         }           
     }
}
```

Une fois qu'un dernier chiffre arrête le son, celui-ci ne sera pas répété.

**Gestion des erreurs**  
Lorsque le fichier de validation contient des erreurs ou qu'une erreur se produit lors de l'exécution d'une action, l'application multimédia SIP appelle une AWS Lambda fonction avec le code d'erreur approprié.


|  Erreur  |  Message  |  Raison  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  Le paramètre de source audio n'est pas valide.  |  Cette erreur peut se produire pour plusieurs raisons. Par exemple, l'application multimédia SIP ne peut pas accéder au fichier en raison de problèmes d'autorisation ou d'URL. Il se peut également que la validation du fichier audio échoue en raison du format, de la durée, de la taille, etc.  | 
|  `SystemException`  |  Erreur système lors de l'exécution de l'action.  |  Une autre erreur système s'est produite lors de l'exécution de l'action.   | 
|  `InvalidActionParameter`  |  CallId ou ParticipantTag le paramètre d'action n'est pas valide.  |  L'action contient un paramètre non valide.  | 

L'exemple de code suivant illustre un échec d'invocation typique.

```
{
    "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": {
        ...
    }
}
```

Consultez des exemples pratiques sur 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-transfert](https://github.com/aws-samples/amazon-chime-sma-call-forwarding)
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifications d'appels](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-enregistrement de la demande](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-appeler](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Lit le son et collecte des chiffres DTMF. En cas d'échec, par exemple si l'utilisateur ne saisit pas le nombre correct de chiffres DTMF, l'action joue le signal audio « défaillant », puis rejoue le son principal jusqu'à ce que l'application multimédia SIP ait épuisé le nombre de tentatives défini dans le paramètre. `Repeat`

Vous devez lire les fichiers audio depuis le compartiment S3. Le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. En outre, vous devez donner l'`s3:GetObject`autorisation au responsable du [service Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html),. `voiceconnector.chime.amazonaws.com` Pour ce faire, vous pouvez utiliser la console S3 ou la CLI. 

L'exemple de code suivant illustre une politique de compartiment S3 typique.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

Le service audio lit et écrit dans votre compartiment S3 pour le compte de votre application Sip Media. Pour éviter le [problème de confusion lié aux adjoints](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), vous pouvez restreindre l'accès au compartiment S3 à une seule application multimédia SIP.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

L'exemple suivant montre une `PlayAudioAndGetDigits` action typique. 

```
{
    "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**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A` ou `LEG-B`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**InputDigitsRegex**  
*Description* — Un modèle d'expression régulière  
*Valeurs autorisées* : modèle d'expression régulière valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**AudioSource.Type**  
*Description* — Type de source pour le type de fichier audio  
*Valeurs autorisées* : un compartiment S3  
*Obligatoire* — Oui  
*Valeur par défaut* — `"S3"`

**AudioSource.BucketName**  
*Description* — Pour `AudioSource.Type` les valeurs S3, le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. Le bucket S3 doit avoir accès au principal [service Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html),. `voiceconnector.chime.amazonaws.com`  
*Valeurs autorisées* : compartiment S3 valide pour lequel le SDK Amazon Chime dispose `s3:GetObject` d'un accès aux actions.  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**AudioSource.Key**  
*Description* — Le nom clé de l'objet audio dans le compartiment `AudioSource.BucketName` S3.  
*Valeurs autorisées* : fichiers audio valides  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**FailureAudioSource.Type**  
*Description* — Le nom clé de l'objet audio dans le compartiment `FailureAudioSource.BucketName` S3.  
*Valeurs autorisées* — S3  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**FailureAudioSource.BucketName**  
*Description* — Pour les types de source S3, le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. Le [responsable du service Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) doit avoir accès au compartiment S3. `voiceconnector.chime.amazonaws.com`  
*Valeurs autorisées* : compartiment S3 valide pour lequel le SDK Amazon Chime dispose `s3:GetObject` d'un accès aux actions.  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**FailureAudioSource.Key**  
*Description* — Le nom clé de l'objet audio dans le compartiment `FailureAudioSource.BucketName` S3.  
*Valeurs autorisées* : fichiers audio valides  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**MinNumberOfDigits**  
*Description* — Le nombre minimum de chiffres à capturer avant l'expiration du délai imparti ou avant la lecture du signal audio « échec de l'appel ».  
*Valeurs autorisées* : >=0  
*Obligatoire* — Non  
*Valeur par défaut* — 0

**MaxNumberOfDigits**  
*Description* — Le nombre maximal de chiffres à capturer avant l'arrêt sans un chiffre final.  
*Valeurs autorisées* — > `MinNumberOfDigits`  
*Obligatoire* — Non  
*Valeur par défaut* : 128

**TerminatorDigits**  
*Description* — Chiffres utilisés pour terminer la saisie si l'utilisateur saisit une valeur inférieure à `MaxNumberOfDigits`  
*Valeurs autorisées* — N'importe lequel de ces chiffres : 0123456789\$1\$1  
*Obligatoire* — Non  
*Valeur par défaut* — \$1

**InBetweenDigitsDurationInMilliseconds**  
*Description* — Le temps d'attente en millisecondes entre les entrées de chiffres avant de jouer. `FailureAudio`  
*Valeurs autorisées* : >0  
*Obligatoire* — Non  
*Valeur par défaut* : si elle n'est pas spécifiée, la `RepeatDurationInMilliseconds` valeur par défaut est la même.

**Repeat**  
*Description* — Nombre total de tentatives pour obtenir des chiffres  
*Valeurs autorisées* : >0  
*Obligatoire* — Non  
*Valeur par défaut* — 1

**RepeatDurationInMilliseconds**  
*Description* — Temps d'attente en millisecondes entre les tentatives `Repeat`  
*Valeurs autorisées* : >0  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

L'application multimédia SIP invoque toujours sa AWS Lambda fonction après avoir exécuté l'`PlayAudioAndGetDigits`action, avec un type d'événement d'`ACTION_FAILED`invocation `ACTION_SUCCESSFUL` ou. Lorsque l'application parvient à rassembler des chiffres, elle définit la `ReceivedDigits` valeur dans l'`ActionData`objet. L'exemple suivant montre la structure des événements d'invocation de cette AWS Lambda fonction.

```
{
    "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": {
        ...
    }
}
```

**Gestion des erreurs**  
Lorsqu'une erreur de validation se produit, l'application multimédia SIP appelle la AWS Lambda fonction avec le message d'erreur correspondant. Le tableau suivant répertorie les messages d'erreur possibles.


|  Erreur  |  Message  |  Raison  | 
| --- | --- | --- | 
|  `InvalidAudioSource`  |  La valeur du paramètre de source audio n'est pas valide.  |  Cette erreur peut se produire pour plusieurs raisons. Par exemple, l'application multimédia SIP ne peut pas accéder au fichier en raison de problèmes d'autorisation ou de problèmes liés au compartiment S3. Il se peut également que la validation du fichier audio échoue en raison de sa durée, de sa taille ou de son format non pris en charge.  | 
|  `InvalidActionParameter`  |  `CallId`ou le `ParticipantTag` paramètre de l'action n'est pas valide.  |  Un `CallId``ParticipantTag`, ou un autre paramètre n'est pas valide.  | 
|  `SystemException`  |  Erreur système lors de l'exécution de l'action.  |  Une erreur système s'est produite lors de l'exécution de l'action.  | 

Lorsque l'action ne parvient pas à collecter le nombre de chiffres spécifiés en raison d'un délai d'attente ou d'un trop grand nombre de tentatives, l'application multimédia SIP invoque la AWS Lambda fonction avec le type d'événement d'`ACTION_FAILED`invocation.

```
{
    "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": {
        ...
    }
}
```

Consultez des exemples pratiques sur 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-appeler](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Lorsqu'un utilisateur saisit des chiffres correspondant au modèle d'expression régulière spécifié dans cette action, l'application multimédia SIP invoque la AWS Lambda fonction.

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

**CallId**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A` ou `LEG-B`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**InputDigitsRegex**  
*Description* — Un modèle d'expression régulière  
*Valeurs autorisées* : modèle d'expression régulière valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**InBetweenDigitsDurationInMilliseconds**  
*Description* — Intervalle entre les chiffres avant de vérifier si l'entrée correspond au modèle d'expression régulière  
*Valeurs autorisées* : durée en millisecondes  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**FlushDigitsDurationInMilliseconds**  
*Description* — Intervalle après lequel les chiffres DTMF reçus sont vidangés et envoyés à la fonction. AWS Lambda Si l'application multimédia SIP reçoit un nouveau chiffre après la fin de l'intervalle, le temporisateur recommence.  
*Valeurs autorisées* — `InBetweenDigitsDurationInMilliseconds`  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

L'application multimédia SIP supprime les chiffres DTMF pendant la durée d'un appel jusqu'à ce qu'elle reçoive une nouvelle `ReceiveDigits` action. L'`FlushDigitsDurationInMilliseconds`intervalle commence lorsque l'application multimédia SIP reçoit le premier chiffre DTMF. Si l'utilisateur saisit les bons chiffres avant l'expiration de l'intervalle, l'application multimédia SIP invoque la AWS Lambda fonction décrite dans[Réception de l'entrée de l'appelant pour le service audio PSTN du SDK Amazon Chime](case-4.md).

Si l'entrée utilisateur ne correspond pas au modèle d'expression régulière, l'application multimédia SIP répète le message « échec » du fichier audio jusqu'à ce que l'application ait épuisé le nombre de répétitions ou que l'utilisateur saisisse des chiffres valides. 

Consultez des exemples pratiques sur GitHub :
+ [https://github.com/aws-samples/amazon-chime-sma-outbound-notifications d'appels](https://github.com/aws-samples/amazon-chime-sma-outbound-call-notifications)
+ [https://github.com/aws-samples/amazon-chime-sma-on-enregistrement de la demande](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)
+ [https://github.com/aws-samples/amazon-chime-sma-update-appeler](https://github.com/aws-samples/amazon-chime-sma-update-call)

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

Permet à l'application multimédia SIP d'enregistrer du contenu multimédia à partir d'un identifiant d'appel donné. Par exemple, une application de messagerie vocale et des annonces destinées aux participants à une réunion. L'application enregistre jusqu'à ce que la durée que vous avez définie soit atteinte, soit lorsqu'un utilisateur appuie sur l'un des `RecordingTerminators` boutons, soit lorsque l'application détecte un silence. Dans ces cas, l'action indique à votre application de placer le fichier multimédia obtenu dans le compartiment S3 spécifié. Le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. En outre, l'action doit donner une `s3:PutObject` `s3:PutObjectAcl` autorisation au responsable du service Amazon Chime SDK Voice Connector, au principal du service [Amazon Chime SDK](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) Voice Connector,. `voiceconnector.chime.amazonaws.com` 

**Note**  
Les enregistrements réalisés à l'aide de cette fonctionnalité peuvent être soumis aux lois ou réglementations relatives à l'enregistrement des communications électroniques. Il est de votre responsabilité et de celle de vos utilisateurs finaux de respecter toutes les lois applicables concernant l'enregistrement, notamment d'informer correctement tous les participants à une session ou à une communication enregistrée que la session ou la communication est enregistrée, et d'obtenir leur consentement.

L'exemple suivant donne l'`s3:PutObjectAcl`autorisation `s3:PutObject` et au principal du service Amazon Chime SDK Voice Connector.

------
#### [ 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/*"
        }
    ]
}
```

------

L'exemple suivant arrête l'enregistrement lorsque l'appelant appuie sur la touche dièse (\$1), lorsque 10 secondes s'écoulent sans aucune activité, ou lorsque l'appelant reste silencieux pendant 3 secondes, et qu'il écrit le fichier multimédia obtenu à l'emplacement défini par le paramètre. `RecordingDestination`

**Note**  
Cet exemple utilise le `CallId` paramètre. Vous pouvez utiliser le `ParticipantTag` paramètre à la place, mais vous ne pouvez pas utiliser les deux.

```
{
    "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**  
*Description* — `CallId` du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**ParticipantTag**  
*Description* — `ParticipantTag` de l'un des participants connectés au `CallDetails`  
*Valeurs autorisées* — `LEG-A` ou `LEG-B`  
*Obligatoire* — Non  
*Valeur par défaut* — `ParticipantTag` de la valeur `callLeg` ignorée invoquée si vous spécifiez `CallId`

**RecordingDestination.Type**  
*Description* — Type de destination. S3 uniquement.  
*Valeurs autorisées* — S3  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**RecordingDestination.BucketName**  
*Description* — Nom de compartiment S3 valide. Le bucket doit avoir accès au principal [service Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html),. `voiceconnector.chime.amazonaws.com`  
*Valeurs autorisées* : compartiment S3 valide pour lequel le SDK Amazon Chime a accès aux `s3:PutObject` actions et. `s3:PutObjectAcl`  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

****RecordingDestination.Prefix****  
*Description* — Préfixe S3 du fichier d'enregistrement  
*Valeurs autorisées* : nom de préfixe valide contenant jusqu'à 979 caractères sûrs. Pour plus d'informations sur les caractères sûrs, reportez-vous à la section [Caractères sécurisés](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) du guide de l'utilisateur d'Amazon Simple Storage Service.  
*Obligatoire* — Non  
*Par défaut* : aucun. Si ce n'est pas spécifié, les enregistrements sont enregistrés à la racine du compartiment S3.

**DurationInSeconds**  
*Description* — Durée de l'enregistrement, en secondes  
*Valeurs autorisées* : >0  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

****SilenceDurationInSeconds****  
*Description* — Durée du silence en secondes, après laquelle l'enregistrement s'arrête. Si elle n'est pas spécifiée, la détection du silence est désactivée.  
*Valeurs autorisées* — [1 ; 1000]  
*Obligatoire* — Non  
*Valeur par défaut* : 200

****SilenceThreshold****  
*Description* — Niveau de bruit considéré comme « silencieux ». Si vous ne le spécifiez pas`SilenceDurationInSeconds`, ce paramètre est ignoré.  

**Valeurs de référence (niveaux de bruit et seuils permettant de traiter le bruit comme du silence) :**
+ 1 à 30 dB ou moins, par exemple dans une pièce calme
+ 100—40 à 50 dB, par exemple dans un bureau silencieux ou silencieux
+ 200 à 60 dB, par exemple dans un bureau bondé
+ 1000—75 dB, par exemple une personne bruyante ou de la musique
*Valeurs autorisées* — [1 ; 1000]  
*Obligatoire* — Non  
*Valeur par défaut* : 200

**RecordingTerminators**  
*Description* — Répertorie tous les terminateurs d'enregistrement disponibles.  
*Valeurs autorisées* : tableau de chiffres et de symboles uniques provenant de [123456789\$10\$1]  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

## Gestion des événements ACTION\$1SUCCESSFUL
<a name="handle-action-successful"></a>

À la fin de l'enregistrement, l'application multimédia SIP du SDK Amazon Chime appelle la AWS Lambda fonction et lui transmet l'événement ACTION\$1SUCCESSFUL, ainsi que les résultats de l'appel.

```
{
    "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": {
        ...
    }
}
```

L'`ACTION_SUCCESSFUL`événement contient`ActionData`, qui contient les champs suivants :

**Type**  
*Description* — Type de l'action,`RecordAudio`.

**Parameters**  
*Description* — Les paramètres de l'action.

**RecordingDestination.Type**  
*Description* — Type de destination. S3 uniquement. 

**RecordingDestination.BucketName**  
*Description* — Le compartiment S3 qui contient le fichier d'enregistrement. 

**RecordingDestination.Key**  
*Description* — La clé S3 du fichier d'enregistrement.

**RecordingTerminatorUsed**  
*Description* — Le terminateur utilisé pour arrêter l'enregistrement : l'un des terminateurs transmis dans le paramètre. `RecordingTerminators` Si l'enregistrement s'arrête après avoir atteint la durée maximale (`DurationInSeconds`) ou à cause du silence (`SilenceDurationInSeconds`), cette paire clé-valeur n'est pas incluse dans la sortie.

**Gestion des erreurs**  
En cas d'erreur de validation, l'application multimédia SIP appelle la AWS Lambda fonction avec le message d'erreur approprié. Le tableau suivant répertorie les messages d'erreur possibles.


|  Erreur  |  Message  |  Raison  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  `CallId`ou `ParticipantTag` le paramètre d'action n'est pas valide. `DurationInSeconds`la valeur du paramètre n'est pas valide. `SilenceDurationInSeconds`la valeur du paramètre n'est pas valide. `SilenceThreshold`la valeur du paramètre n'est pas valide. `RecordingDestination`la valeur du paramètre n'est pas valide. Une erreur s'est produite lors du téléchargement de l'enregistrement dans le compartiment S3.  |  Tout paramètre n'est pas valide.  | 
|  `SystemException`  |  Erreur système lors de l'exécution d'une action.  |  Un autre type d'erreur système s'est produit lors de l'exécution d'une action.  | 

## Gestion des ACTION\$1FAILED événements
<a name="handle-action-failed"></a>

Lorsque l'action ne parvient pas à enregistrer le contenu multimédia lors d'un segment d'appel, l'application multimédia SIP invoque une AWS Lambda fonction du type d'`ACTION_FAILED`événement. Consultez l'exemple suivant.

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

Consultez un exemple pratique sur 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>

Envoyez jusqu'à 50 chiffres à double tonalité et multifréquence (DTMF) sur n'importe quel segment d'un appel. Les signaux peuvent inclure les éléments suivants :
+ Chiffres 0 à 9
+ Caractères spéciaux étoile (\$1) et livre (\$1)
+ Signaux de commande réseau A, B, C, D
+ La virgule (,). Ce signal ajoute un délai de 0,5 seconde entre le signal précédent et le signal suivant.

**Topics**
+ [Utilisation de SendDigits action](#send-digits-action)
+ [Manipulation ACTION\$1SUCCESSFUL événements](#send-digit-success)
+ [Manipulation ACTION\$1FAILED événements](#send-digit-fail)
+ [Flux d'appels](#send-digits-call-flow)

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

L'exemple suivant illustre une `SendDigits` action typique :

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

**CallId**  
*Description* — Le nom `CallId` d'un participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Digits**  
*Description* — Les chiffres à envoyer sur le segment d'appel qui correspondent au `CallId`  
*Valeurs autorisées* : 0-9, \$1, \$1, A, B, C, D, virgule (,)  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**ToneDurationInMilliseconds**  
*Description* — Durée autorisée, en millisecondes, pour transmettre chaque chiffre.  
*Valeurs autorisées* : tout entier compris entre 50 et 24 000  
*Obligatoire* — Non  
*Valeur par défaut* : 250

## Manipulation ACTION\$1SUCCESSFUL événements
<a name="send-digit-success"></a>

L'exemple suivant montre un `ACTION_SUCCESSFUL` événement typique de l'`SendDigits`action.

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

## Manipulation ACTION\$1FAILED événements
<a name="send-digit-fail"></a>

L'exemple suivant montre un `ACTION_FAILED` événement typique de l'`SendDigits`action.

```
{
    "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": {
        ...
        }
    }
}
```

## Flux d'appels
<a name="send-digits-call-flow"></a>

Le schéma suivant montre le déroulement du programme pour l'envoi de chiffres d'un appelant à un appelé.

![\[Schéma illustrant le déroulement du programme de l'SendDigitsaction.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/send-digits-1.png)


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

Vous pouvez lire la parole sur n'importe quel segment d'appel en fournissant du texte. Vous pouvez utiliser du texte brut ou le langage de balisage de synthèse vocale (SSML). SSML permet de mieux contrôler la manière dont le SDK Amazon Chime génère la parole en ajoutant des pauses, en soulignant certains mots ou en modifiant le style de parole.

Le SDK Amazon Chime utilise le service Amazon Polly pour convertir. text-to-speech Amazon Polly vous permet de choisir entre le moteur standard ou le moteur neuronal pour une meilleure qualité vocale. Amazon Polly prend en charge plus de 20 langues et 60 voix pour personnaliser l'expérience utilisateur de votre application. Le SDK Amazon Chime fournit des fonctionnalités vocales gratuitement, mais l'utilisation d'Amazon Polly est payante. Consultez la [page de tarification](https://aws.amazon.com/polly/pricing/) d'Amazon Polly ou votre tableau de bord de facturation pour obtenir des informations sur les prix.

**Important**  
L'utilisation d'Amazon Polly est soumise aux [conditions de service AWS](https://aws.amazon.com/service-terms/), y compris les conditions spécifiques aux services AWS Machine Learning et d'intelligence artificielle.

**Topics**
+ [Utilisation de Speak action](#speak-action)
+ [Manipulation ACTION\$1SUCCESSFUL événements](#speak-action-success)
+ [Manipulation ACTION\$1FAILED événements](#speak-action-fail)
+ [Flux de programmes](#speak-flow)

## Utilisation de Speak action
<a name="speak-action"></a>

L'exemple suivant montre une utilisation typique de l'`Speak`action.

```
{
    "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**  
*Description* — Le `CallId` participant à l'invocation `CallDetails` de la fonction Lambda  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Text**  
*Description* — Spécifie le texte d'entrée à synthétiser sous forme vocale. Si vous `ssml` le spécifiez`TextType`, suivez le format SSML pour le texte d'entrée.  
*Valeurs autorisées* — Chaîne  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**Engine**  
*Description* — Spécifie le moteur (standard ou neuronal) à utiliser lors du traitement de texte pour la synthèse vocale.  
*Valeurs autorisées* — standard \$1 neuronal  
*Obligatoire* — Non  
*Valeur par défaut* — standard

**LanguageCode**  
*Description* — Spécifie le code de langue. Nécessaire uniquement si vous utilisez une voix bilingue. Si vous utilisez une voix bilingue sans code de langue, la langue par défaut de la voix bilingue est utilisée.  
*Valeurs autorisées* — Codes de [langue Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**TextType**  
*Description* — Spécifie le type de texte d'entrée, texte brut ou SSML. Si aucun type de saisie n'est spécifié, le texte brut est utilisé par défaut. Pour plus d'informations sur le protocole SSML, consultez la section [Génération de discours à partir de documents SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) dans le manuel *Amazon Polly Developer Guide*.  
*Valeurs autorisées* — ssml \$1 texte  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**VoiceId**  
*Description* — Spécifie l'ID de voix que vous souhaitez utiliser.  
*Valeurs autorisées* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatoire* — Non  
*Valeur par défaut* — Joanna

## Manipulation ACTION\$1SUCCESSFUL événements
<a name="speak-action-success"></a>

L'exemple suivant montre un `ACTION_SUCCESSFUL` événement typique d'une action qui synthétise le texte « Hello World » en discours, en anglais, en utilisant la voix d'Amazon Polly. `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":{       
       ...
    }
}
```

## Manipulation ACTION\$1FAILED événements
<a name="speak-action-fail"></a>

L'exemple suivant montre un `ACTION_FAILED` événement typique pour le même événement que celui utilisé dans l'exemple précédent.

```
{
    "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":{       
       ...
    }
}
```

**Gestion des erreurs**  
Ce tableau répertorie et décrit les messages d'erreur générés par l'`Speak`action.


| Erreur | Message | Raison | 
| --- | --- | --- | 
| `AccessDenied` | Le rôle `AWSServiceRoleForAmazonChimeVoiceConnector` lié au service n'est pas configuré correctement. | Le rôle lié au service utilisé pour envoyer des demandes à Amazon Polly n'existe pas ou ne dispose pas d'autorisations. Pour résoudre le problème, consultez les étapes décrites dans la [Utilisation du rôle lié au service Amazon Chime SDK Voice Connector](speak-and-get-digits.md#speak-digits-policy) section | 
| `InvalidActionParameter` |   | Une erreur s'est produite lors de la validation des paramètres de l'action. Consultez l'[SynthesizeSpeech API](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech) dans le *guide du développeur Amazon Polly* pour plus d'informations sur les paramètres. | 
| ActionExecutionThrottled | Amazon Polly limite la demande de synthèse vocale. | La demande adressée à Amazon Polly renvoie une exception de limitation. [Pour plus d'informations sur les limites de limitation d'Amazon Polly, consultez https://docs.aws.amazon.com/polly/ latest/dg/limits .html \$1limits -throttle.](https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle) | 
| `MissingRequiredActionParameter` | `Text`est un paramètre obligatoire. | Les paramètres d'action doivent avoir une `Text` valeur | 
| `MissingRequiredActionParameter` | `Text`est limité à 1 000 caractères | Le texte a dépassé la limite de caractères. | 
| `SystemException` | Erreur système lors de l'exécution de l'action. | Une erreur système s'est produite lors de l'exécution de l'action. | 

## Flux de programmes
<a name="speak-flow"></a>

Le schéma suivant montre le flux du programme qui active l'`Speak`action pour un appelant. Dans cet exemple, l'appelant entend un texte qui 

![\[Schéma illustrant le déroulement du programme permettant d'activer l'Speakaction pour un appelant.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/Speak1.png)


**Dans le schéma**  
À l'aide d'un téléphone logiciel, l'appelant saisit un numéro enregistré dans une application multimédia SIP. L'application utilise la `INVITE` méthode SIP et envoie une `Trying (100)` réponse à l'appelant. Cela indique que le serveur du saut suivant a reçu la demande d'appel. L'application SIP contacte `INVITE` ensuite le point de terminaison. Une fois la connexion établie, les applications envoient `Ringing (180)` une réponse à l'appelant et l'alerte commence. 

L'application multimédia SIP envoie ensuite un `NEW_INBOUND_CALL` événement à la fonction Lambda, qui répond par une `Speak` action incluant l'identifiant de l'appelant et le texte que vous souhaitez convertir en voix. L'application SIP envoie ensuite une `200 (OK)` réponse indiquant que l'appel a été répondu. Le protocole active également les médias. 

Si l'`Speak`action réussit et convertit le texte en parole, elle renvoie un `ACTION_SUCCESSFUL` événement à l'application multimédia SIP, qui renvoie la série d'actions suivante. Si l'action échoue, l'application multimédia SIP envoie un `ACTION_FAILED` événement à la fonction Lambda, qui répond par un ensemble d'`Hangup`actions. L'application raccroche l'appelant et renvoie un `HANGUP` événement à la fonction Lambda, qui n'entreprend aucune autre action. 



Le schéma suivant montre le déroulement du programme qui active l'`Speak`action pour un appelé.

![\[Schéma illustrant le déroulement du programme permettant d'activer l'Speakaction pour un appelé. Vous pouvez le faire pour n'importe quel appel ponté.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/Speak2.png)


**Dans le schéma**  
Un appelant saisit un numéro enregistré dans une application multimédia SIP, et l'application répond comme décrit dans le schéma précédent. Lorsque la fonction Lambda reçoit l'`NEW_INBOUND_CALL`événement, elle renvoie l'[CallAndBridge](call-and-bridge.md)action à l'application SIP. L'application utilise ensuite la `INVITE` méthode SIP pour envoyer les `Ringing (180)` réponses `Trying (100)` et à l'appelé. 

Si l'appelé répond, l'application multimédia SIP reçoit une `200 (OK)` réponse et envoie la même réponse à l'appelant. Cela établit le média, et l'application SIP envoie un `ACTION_SUCCESSFUL` événement pour l'[CallAndBridge](call-and-bridge.md)action à la fonction Lambda. La fonction renvoie ensuite l'action Speak et les données à l'application SIP, qui convertit 

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

Écoutez la parole en fournissant du texte et collectez les chiffres à double tonalité et multifréquence (DTMF) de l'utilisateur. Le texte peut être du texte brut ou du texte amélioré en langage SSML (Speech Synthesis Markup Language) afin de mieux contrôler la manière dont le SDK Amazon Chime génère la parole en ajoutant des pauses, en soulignant certains mots ou en modifiant le style de parole, entre autres fonctionnalités SSML prises en charge. En cas d'échec, par exemple si l'utilisateur ne saisit pas le nombre correct de chiffres DTMF, l'action joue le discours d'échec, puis rejoue le discours principal jusqu'à ce que l'application multimédia SIP ait épuisé le nombre de tentatives défini dans le paramètre. `Repeat`

Le SDK Amazon Chime utilise Amazon Polly, un service cloud qui convertit le texte en discours réaliste. Amazon Polly fournit à la fois un moteur standard et un moteur neuronal pour une meilleure qualité vocale, plus de 20 langues prises en charge et 60 voix. Amazon Polly fournit des fonctionnalités vocales gratuitement, mais vous payez pour utiliser Amazon Polly. Consultez la [page de tarification](https://aws.amazon.com/polly/pricing/) d'Amazon Polly ou votre tableau de bord de facturation pour obtenir des informations sur les prix.

**Important**  
L'utilisation d'Amazon Polly est soumise aux [conditions de AWS service](https://aws.amazon.com/service-terms/), y compris les conditions spécifiques aux services de AWS Machine Learning et d'intelligence artificielle.

**Topics**
+ [Utilisation de SpeakAndGetDigits action](#speak-digits-action)
+ [Manipulation ACTION\$1SUCCESSFUL événements](#speak-digits-success)
+ [Manipulation ACTION\$1FAILED événements](#speak-digits-fail)
+ [Utilisation du rôle lié au service Amazon Chime SDK Voice Connector](#speak-digits-policy)

## Utilisation de SpeakAndGetDigits action
<a name="speak-digits-action"></a>

L'exemple suivant illustre une utilisation typique de l'`SpeakAndGetDigits`action :

```
{
    "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**  
*Description* — Le nom `CallId` du participant à l' CallDetails invocation de la fonction Lambda.  
*Valeurs autorisées* : A valide `callID`  
*Obligatoire* — Oui  
*Valeur par défaut* — Non

**InputDigitsRegex**  
*Description* : modèle d'expression régulière permettant de garantir que les utilisateurs saisissent les bons chiffres et lettres.  
*Valeurs autorisées* : modèle d'expression régulière valide  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**SpeechParameters.Engine**  
*Description* — Spécifie le moteur (standard ou neuronal) à utiliser lors du traitement de texte pour la synthèse vocale.  
*Valeurs autorisées* — `standard` \$1 `neural`  
*Obligatoire* — Non  
*Valeur par défaut* — Standard

**SpeechParameters.LanguageCode**  
*Description* — Spécifie le code de langue. Cela n'est nécessaire que si vous utilisez une voix bilingue. Si une voix bilingue est utilisée et qu'aucun code de langue n'est spécifié, la langue par défaut de la voix bilingue est utilisée.  
*Valeurs autorisées* — Codes de [langue Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatoire* — Non  
*Valeur par défaut* – Aucune

**SpeechParameters.Text**  
*Description* — Spécifie le texte d'entrée. Si vous le spécifiez `ssml` comme`SpeechParameters.TextType`, vous devez suivre le format SSML pour le texte d'entrée. Pour plus d'informations sur le protocole SSML, consultez la section [Génération de discours à partir de documents SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) dans le manuel *Amazon Polly Developer Guide*.  
*Valeurs autorisées* — Chaîne  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**SpeechParameters.TextType**  
*Description* — Spécifie le format de texte pour`SpeechParameters.Text`. S'il n'est pas spécifié, `text` il est utilisé par défaut. Pour plus d'informations sur le protocole SSML, consultez la section [Génération de discours à partir de documents SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) dans le manuel *Amazon Polly Developer Guide*.  
*Valeurs autorisées* — `ssml` \$1 `text`  
*Obligatoire* — Non  
*Valeur par défaut* — `text`

**SpeechParameters.VoiceId**  
*Description* — L'identifiant de la voix Amazon Polly utilisée pour prononcer le texte. `SpeechParameters.Text`  
*Valeurs autorisées* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatoire* — Non  
*Valeur par défaut* — Joanna

**FailureSpeechParameters.Engine**  
*Description* — Spécifie le moteur (standard ou neuronal) à utiliser lors du traitement du message d'échec utilisé lorsque le client saisit une réponse non valide pour la synthèse vocale.  
*Valeurs autorisées* — `standard` \$1 `neural`  
*Obligatoire* — Non  
*Valeur par défaut* — La `SpeechParameters.Engine` valeur

**FailureSpeechParameters.LanguageCode**  
*Description* — Spécifie le code de langue utilisé lorsque le client saisit une réponse non valide. Nécessaire uniquement en cas d'utilisation d'une voix bilingue. Si vous utilisez une voix bilingue sans spécifier de code de langue, la langue par défaut de la voix bilingue est utilisée.  
*Valeurs autorisées* — Codes de [langue Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*Obligatoire* — Non  
*Valeur par défaut* : `SpeechParameters.LanguageCode` valeur.

**FailureSpeechParameters.Text**  
*Description* — Spécifie le texte d'entrée prononcé lorsque le client saisit une réponse non valide. Si vous le spécifiez `ssml` comme`FailureSpeechParameters.TextType`, vous devez suivre le format SSML pour le texte d'entrée.  
*Valeurs autorisées* — Chaîne  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**FailureSpeechParameters.TextType**  
*Description* — Spécifie si le texte d'entrée spécifié dans `FailureSpeechParameters.Text` est du texte brut ou du SSML. La valeur par défaut est le texte brut. Pour plus d'informations, consultez la section [Génération de discours à partir de documents SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) dans le manuel *Amazon Polly* Developer Guide.  
*Valeurs autorisées* — `ssml` \$1 `text`  
*Obligatoire* — Non  
*Valeur par défaut* — La `SpeechParameters.Text` valeur

**FailureSpeechParameters.VoiceId**  
*Description* — Identifiant de la voix utilisée pour prononcer la chaîne`FailureSpeechParameters.Text`.  
*Valeurs autorisées* — [Amazon Polly voice IDs](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*Obligatoire* — Oui  
*Valeur par défaut* — La `SpeechParameters.VoiceId` valeur

**MinNumberOfDigits**  
*Description* — Le nombre minimum de chiffres à saisir avant l'expiration du délai imparti ou avant la lecture du message « échec de l'appel ».  
*Valeurs autorisées* : supérieures ou égales à zéro  
*Obligatoire* — Non  
*Valeur par défaut* — 0

**MaxNumberOfDigits**  
*Description* — Le nombre maximal de chiffres à capturer avant l'arrêt sans un chiffre final.  
*Valeurs autorisées* : supérieures à `MinNumberOfDigits`  
*Obligatoire* — Non  
*Valeur par défaut* : 128

**TerminatorDigits**  
*Description* — Chiffre utilisé pour terminer la saisie si l'utilisateur saisit moins que MaxNumberOfDigits  
*Valeurs autorisées* — N'importe laquelle des valeurs suivantes : 0 1 2 3 4 5 6 7 8 9 \$1 ou \$1  
*Obligatoire* — Non  
*Valeur par défaut* — \$1

**InBetweenDigitsDurationInMilliseconds**  
*Description* — Le temps d'attente en millisecondes entre les entrées numériques avant de lire le discours d'échec.  
*Valeurs autorisées* : supérieures à zéro  
*Obligatoire* — Non  
*Valeur par défaut* — Si elle n'est pas spécifiée, la `RepeatDurationInMilliseconds` valeur par défaut est

**Repeat**  
*Description* — Nombre total de tentatives pour obtenir des chiffres. Si vous omettez ce paramètre, la valeur par défaut est une tentative de collecte de chiffres.  
*Valeurs autorisées* : supérieures à zéro  
*Obligatoire* — Non  
*Valeur par défaut* — 1

**RepeatDurationInMilliseconds**  
*Description* — Délai d'expiration en millisecondes pour chaque tentative d'obtention de chiffres.  
*Valeurs autorisées* : supérieures à zéro  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

## Manipulation ACTION\$1SUCCESSFUL événements
<a name="speak-digits-success"></a>

L'exemple suivant illustre un `ACTION_SUCCESSFUL` événement typique.

```
{
    "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":{       
       ...
    }
}
```

## Manipulation ACTION\$1FAILED événements
<a name="speak-digits-fail"></a>

L'exemple suivant illustre un `ACTION_FAILED` événement typique.

```
{
    "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":{       
       ...
    }
}
```

**Gestion des erreurs**  
Ce tableau répertorie et décrit les messages d'erreur générés par l'`Speak`action.


| Erreur | Message | Raison | 
| --- | --- | --- | 
| `AccessDenied` | Le `AWSServiceRoleForAmazonChimeVoiceConnector` rôle n'est pas configuré correctement. | Le rôle utilisé pour envoyer des demandes à Amazon Polly n'existe pas ou ne dispose pas d'autorisations. Pour résoudre le problème, consultez les étapes décrites dans la [Utilisation du rôle lié au service Amazon Chime SDK Voice Connector](#speak-digits-policy) section | 
| `InvalidActionParameter` |   | Une erreur s'est produite lors de la validation des paramètres de l'action. Pour consulter les paramètres disponibles pour cette action et leurs options, consultez [SynthesizeSpeech](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html)le manuel Amazon Polly Developer Guide. | 
| `MissingRequiredActionParameter` | `Text`est un paramètre obligatoire. | Les paramètres de l'action doivent avoir une `Text` valeur | 
| `MissingRequiredActionParameter` | `Text`est limité à 1 000 caractères | Le texte a dépassé la limite de caractères. | 
| `SystemException` | Erreur système lors de l'exécution de l'action. | Une erreur système s'est produite lors de l'exécution de l'action. | 

## Utilisation du rôle lié au service Amazon Chime SDK Voice Connector
<a name="speak-digits-policy"></a>

Il n'est pas nécessaire de créer manuellement un rôle lié à un service pour les actions `Speak` or`SpeakAndGetDigits`. Lorsque vous créez ou mettez à jour une application multimédia SIP dans la console Amazon Chime SDK, ou dans l' AWS API AWS Command Line Interface, le SDK Amazon Chime crée le rôle lié au service pour vous.

*Pour plus d'informations, consultez la section [Utilisation du rôle lié au service Amazon Chime](https://docs.aws.amazon.com/chime/latest/ag/using-service-linked-roles-stream.html) dans le guide de l'administrateur du SDK Amazon Chime.*

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

L'`StartBotConversation`action établit une conversation vocale entre un utilisateur final et votre bot Amazon Lex v2. L'utilisateur fournit les informations requises au bot. Le bot renvoie ensuite les informations à la fonction Lambda audio du réseau téléphonique public commuté (PSTN), qui exécute les tâches demandées.

Par exemple, le bot peut diffuser un message de bienvenue facultatif au début d'une conversation pour décrire brièvement la tâche que la fonction Lambda audio PSTN peut effectuer. La conversation va et vient entre l'utilisateur et le bot jusqu'à ce que le bot recueille les informations requises. Une fois la conversation terminée, le SDK Amazon Chime appelle votre fonction Lambda audio PSTN avec un événement de réussite de l'action, qui contient les informations recueillies par le bot. Votre fonction Lambda audio PSTN traite les informations et exécute la tâche demandée.

Le service audio permet une interaction conversationnelle réaliste avec vos utilisateurs. Par exemple, les utilisateurs peuvent interrompre le bot et répondre à une question avant la fin de l'invite audio. De plus, les utilisateurs peuvent utiliser n'importe quelle combinaison de chiffres vocaux et DTMF pour fournir des informations. Le bot attend que l'utilisateur fournisse des informations avant de répondre. Vous pouvez configurer la durée pendant laquelle le bot attend que l'utilisateur ait fini de parler avant d'interpréter une entrée vocale. L'utilisateur peut également demander au bot d'attendre s'il a besoin de temps pour récupérer des informations supplémentaires lors d'un appel, telles que les numéros de carte de crédit.

L'`StartBotConversation`action utilise Amazon Lex et Amazon Polly pendant la durée de la conversation avec le bot. Les frais Amazon Lex et Amazon Polly standard s'appliquent. Pour plus d'informations sur les tarifs, consultez les pages de [tarification des conversations en streaming Amazon Lex](https://aws.amazon.com/lex/pricing/) et de [tarification d'Amazon Polly](https://aws.amazon.com/polly/pricing/).

**Note**  
Vous ne pouvez pas exécuter cette action sur un appel ponté ou sur un appel qui a rejoint une réunion du SDK Amazon Chime.

**Important**  
L'utilisation d'Amazon Lex et d'Amazon Polly est soumise aux [conditions de AWS service](https://aws.amazon.com/service-terms/), y compris les conditions spécifiques aux services de AWS Machine Learning et d'intelligence artificielle.

**Topics**
+ [Syntaxe de StartBotConversation](#startbot-syntax)
+ [Utilisation de l'StartBotConversationaction](#using-startbot)
+ [Gestion des ACTION\$1SUCCESSFUL événements](#bot-action-success)
+ [Gestion des ACTION\$1FAILED événements](#bot-action-fail)
+ [Octroi d'autorisations pour utiliser un bot](#bot-permissions)
+ [Configuration des délais d'attente vocaux et DTMF](#bot-timeouts)
+ [Utilisation des entrées DTMF pendant une conversation](#bot-dtmf)
+ [Quotas de facturation et de service](#bot-billing)

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

L'exemple suivant montre une `StartBotConversation` syntaxe typique.

```
{
  "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**  
*Description* — Le nom `CallID` d'un participant à l'invocation `CallDetails` de la AWS Lambda fonction. L'`StartBotConversation`action utilise cet identifiant comme celui du bot`SessionId`. Toutes les conversations de bot qui ont lieu lors d'un appel partagent la même session de conversation. Vous pouvez modifier l'état de session entre votre utilisateur et votre bot à l'aide de l'PutSessionAPI [Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html). Pour plus d'informations, consultez [la section Gestion des sessions avec l'API Amazon Lex v2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) dans le manuel *Amazon Lex Developer Guide*.  
*Valeurs autorisées* : un identifiant d'appel valide.  
*Obligatoire* — Non, s'`ParticipantTag`il est présent.  
*Valeur par défaut* : aucune.

**ParticipantTag**  
*Description* — Celui `ParticipantTag` de l'un des participants connectés au`CallDetails`.  
*Valeurs autorisées* —`LEG-A`.  
*Obligatoire* — Non, s'`CallId`il est présent.  
*Valeur par défaut* — `ParticipantTag` de l'invoqué`callLeg`. Ignoré si vous le spécifiez`CallDetails`.

**BotAliasArn**  
*Description* — L'alias ARN de votre robot Lex. Vous devez créer le bot dans la même région AWS que votre application audio PSTN. Un alias de bot Amazon Lex valide a le format suivant :`arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId`, où se *`region`* trouve la région AWS dans laquelle réside votre bot. `awsAccountId`Il s'agit de l'ID de compte AWS dans lequel votre bot Amazon Lex a été créé. La `botId` valeur est l'identifiant attribué au bot lorsque vous l'avez créé. Vous pouvez trouver l'ID du bot dans la console Amazon Lex sur la page de **détails du bot**. `botAliasId`Il s'agit de l'identifiant attribué à l'alias du bot lorsque vous l'avez créé. Vous pouvez trouver l'ID d'alias du bot sur la console Amazon Lex sur la page **Alias**.   
*Valeurs autorisées* : un ARN de bot valide.  
*Obligatoire* —Oui.  
*Valeur par défaut* : aucune.

**LocaleId**  
*Description* — L'identifiant de la localisation que vous avez utilisée pour votre bot. Pour obtenir la liste des paramètres régionaux et des codes de langue, consultez la section [Langues et paramètres régionaux pris en charge par Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).  
*Valeurs autorisées* : [langues et paramètres régionaux pris en charge par Amazon Lex.](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html)  
*Obligatoire* — Non  
*Valeur par défaut* —`en_US`.

**Configuration**  
*Description* — Configuration de la conversation, y compris l'état de la session et les messages de bienvenue. La taille totale de la représentation sous forme de chaîne JSON de l'`Configuration`objet est limitée à 10 Ko.  
*Valeurs autorisées* : `Configuration` objet.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState**  
*Description* — État de la session de l'utilisateur avec Amazon Lex v2.  
*Valeurs autorisées* : `SessionState` objet.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState.SessionAttributes**  
*Description* — Carte des key/value paires représentant les informations contextuelles spécifiques à la session. Cette carte contient les informations d'application transmises entre Amazon Lex v2 et une application cliente.  
*Valeurs autorisées* : mappage de chaîne à chaîne.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.SessionState.DialogAction.Type**  
*Description* — L'action suivante que le bot entreprend lors de ses interactions avec l'utilisateur. Valeurs possibles :  
+ *Le délégué* Amazon Lex v2 détermine l'action suivante.
+ *ElicitIntent*L'action suivante suscite une intention de la part de l'utilisateur.
*Valeurs autorisées* — `Delegate` \$1`ElicitIntent`.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages**  
*Description* — Liste des messages à envoyer à l'utilisateur au début de la conversation. Si vous définissez le `welcomeMessage` champ, vous devez définir la `DialogAction.Type` valeur sur`ElicitIntent`.  
*Valeurs autorisées* — Objet du message  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages.Content**  
*Description* — Le texte du message de bienvenue.  
*Valeurs autorisées* : chaîne.  
*Obligatoire* — Non  
*Valeur par défaut* : aucune.

**Configuration.WelcomeMessages.ContentType**  
*Description* — Indique le type de message de bienvenue.  
*Valeurs autorisées* — ` PlainText` \$1 `SSML`  
+ *PlainText*— Le message contient du texte UTF-8 brut. 
+ *SSML* — Le message contient du texte formaté pour la sortie vocale.
*Obligatoire* — Oui.  
*Valeur par défaut* : aucune.

## Utilisation de l'StartBotConversationaction
<a name="using-startbot"></a>

L'exemple suivant montre une `StartBotConversation` action typique.

```
{
  "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" 
            }
          ]
        }
      }
    }
  ]
}
```

## Gestion des ACTION\$1SUCCESSFUL événements
<a name="bot-action-success"></a>

L'exemple suivant montre un `ACTION_SUCCESSFUL` événement typique de l'`StartBotConversation`action.

```
{
    "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**  
Le résultat de la conversation entre l'utilisateur et le bot.

**SessionId**  
Identifiant de la session de conversation du bot. Lorsqu'un utilisateur entame une conversation avec votre bot, Amazon Lex crée une session. Une session encapsule les informations échangées entre votre utilisateur et le bot. L'`StartBotConversation`action utilise l'identifiant d'appel comme celui du bot`SessionId`. Vous pouvez modifier l'état de session entre votre utilisateur et votre bot à l'aide de l'[https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html](https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_PutSession.html)API Lex. Pour plus d'informations, consultez [la section Gestion des sessions avec l'API Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) dans le *manuel du développeur Amazon Lex*.

**SessionState**  
État de la session Amazon Lex v2 de l'utilisateur. 

**SessionState.SessionAttributes**  
Carte des key/value paires représentant les informations contextuelles spécifiques à la session. La carte contient les informations de conversation transmises entre la fonction Lambda attachée à votre robot et la fonction Lambda audio PSTN.

**Interprétations**  
Une liste d'intentions dérivée par Amazon Lex qui peuvent satisfaire l'énoncé du client. L'intention ayant obtenu le `NluConfidence` score le plus élevé devient l'intention du`SessionState`. 

**Interprétations. NluConfidence.Note**  
Un score qui indique dans quelle mesure Amazon Lex v2 est certain qu'une intention répond à celle de l'utilisateur. Varie entre 0,00 et 1,00. Des scores plus élevés indiquent une plus grande confiance. 

**Intent**  
L'action que l'utilisateur souhaite effectuer.

**Intent.Name**  
Nom de l'intention.

**Intent.Slots**  
Une carte de tous les emplacements correspondant à l'intention. Le nom de l'emplacement correspond à la valeur de l'emplacement. Si un emplacement n'est pas rempli, la valeur est nulle.

**Intent.Slots.Value**  
La valeur de l'emplacement.

**Intent.Slots.Values**  
Liste d'une ou de plusieurs valeurs fournies par l'utilisateur pour le slot.

**Intent.Slots.Value.OriginalValue**  
Le texte de la réponse de l'utilisateur, saisi pour le créneau.

**Intent.Slots.Value.InterpretedValue**  
*Description* — La valeur qu'Amazon Lex v2 détermine pour l'emplacement. La valeur réelle dépend du paramétrage de la stratégie de sélection de valeur du bot. Vous pouvez choisir d'utiliser la valeur saisie par l'utilisateur ou demander à Amazon Lex v2 de choisir la première valeur de la `resolvedValues` liste.

**Intent.Slots.Value.ResolvedValues**  
Liste des valeurs supplémentaires reconnues par Amazon Lex v2 pour le slot.

**Intent.State**  
*Description* — Informations d'exécution correspondant à l'intention. Valeurs possibles :  
+ `Failed`— La fonction Lambda n'a pas répondu à l'intention.
+ `Fulfilled`— La fonction Lambda a répondu à l'objectif.
+ `ReadyForFulfillment`— Les informations relatives à l'intention sont présentes et votre fonction Lambda peut répondre à l'intention. 

**Intent.ConfirmationState**  
*Description* — Indique la confirmation de l'intention. Valeurs possibles :  
+ *Confirmé* — L'intention est remplie.
+ *Refusé* — L'utilisateur a répondu « non » à l'invite de confirmation.
+ *Aucune* : l'utilisateur n'a pas été invité à confirmer, ou l'utilisateur a été invité mais n'a pas confirmé ou refusé l'invite.

## Gestion des ACTION\$1FAILED événements
<a name="bot-action-fail"></a>

L'exemple suivant montre un `ACTION_FAILED` événement typique de l'`StartBotConversation`action.

```
{
    "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**  
Chaîne qui identifie de manière unique une condition d'erreur.

**ErrorMessage**  
Description générique de la condition d'erreur.

### Codes d’erreur
<a name="action-errors"></a>

Le tableau suivant répertorie les messages d'erreur qu'une fonction Lambda peut renvoyer lors d'un `ACTION_FAILED` événement.


| Erreur | Description | 
| --- | --- | 
|  `InvalidActionParameter` | Un ou plusieurs paramètres d'action ne sont pas valides. Le message d'erreur décrit le paramètre non valide. | 
| `SystemException` | Une erreur système s'est produite lors de l'exécution d'une action. | 
| `ResourceNotFound` | Le bot spécifié est introuvable. | 
| `ResourceAccessDenied` | L'accès au bot est refusé. | 
| `ActionExecutionThrottled` | La limite du service de conversation avec les robots est dépassée. Le message d'erreur décrit la limite de service spécifique dépassée. | 

## Octroi d'autorisations pour utiliser un bot
<a name="bot-permissions"></a>

L'exemple suivant autorise le SDK Amazon Chime à appeler 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) APIs Vous devez explicitement autoriser le service audio à utiliser votre bot. Le bloc de condition est obligatoire pour les principaux de service. Le bloc de conditions doit utiliser les clés de contexte globales `AWS:SourceAccount` et`AWS:SourceArn`. `AWS:SourceAccount`Il s'agit de votre identifiant de compte AWS. `AWS:SourceArn`Il s'agit de l'ARN de la ressource de l'application audio PSTN qui invoque le bot Lex.

------
#### [ 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"
        }
      }
    }
  ]
}
```

------

## Configuration des délais d'attente vocaux et DTMF
<a name="bot-timeouts"></a>

Vous pouvez configurer les délais d'expiration de la voix et du DTMF lors de la capture des entrées utilisateur. Vous pouvez configurer les délais d'expiration via les attributs de session lorsque vous démarrez une conversation avec un bot, et les remplacer dans la fonction Lambda de votre robot Lex si nécessaire. Amazon Lex vous permet de définir plusieurs emplacements pour une intention ou des robots. Étant donné que vous pouvez spécifier que les attributs de session s'appliquent au niveau de l'intention et de l'emplacement, vous pouvez spécifier que l'attribut est défini uniquement lorsque vous collectez un certain type d'entrée. Par exemple, vous pouvez spécifier un délai d'expiration plus long lorsque vous collectez un numéro de compte que lorsque vous collectez une date. Vous pouvez utiliser des caractères génériques dans la clé d'attribut de session. 

Par exemple, pour définir un délai d'attente vocal pour tous les créneaux à 4 000 millisecondes à toutes fins utiles, vous pouvez fournir un attribut de session en utilisant : `x-amz-lex:start-timeout-ms:*:*` comme nom d'attribut de session et `4000` comme valeur d'attribut de session. Pour plus d'informations, consultez la [section Configuration des délais d'expiration pour la capture des données saisies par les utilisateurs](https://docs.aws.amazon.com/lexv2/latest/dg/session-attribs-speech.htm) dans le manuel *Amazon Lex Developer Guide*. 

## Utilisation des entrées DTMF pendant une conversation
<a name="bot-dtmf"></a>

Les robots Amazon Lex prennent en charge la saisie vocale et au clavier au cours d'une conversation. Les robots interprètent les entrées du clavier comme des chiffres DTMF. Vous pouvez demander à vos contacts de terminer leur saisie par une virgule (\$1) et d'annuler une conversation à l'aide de la touche étoile (\$1). Si vous n'invitez pas les clients à terminer leur saisie par la touche dièse, Lex arrête d'attendre que d'autres touches soient appuyées au bout de 5 secondes.

## Quotas de facturation et de service
<a name="bot-billing"></a>

AWS vous facture les frais suivants :
+ Utilisation du SDK Amazon Chime pour l'appel. Pour plus d'informations, consultez la tarification du [SDK Amazon Chime](https://aws.amazon.com/chime/chime-sdk/pricing/).
+ Utilisation d'Amazon Lex pour interpréter le discours des utilisateurs. Pour plus d'informations, consultez la [tarification des conversations en streaming Amazon Lex](https://aws.amazon.com/lex/pricing/).
+ Utilisation d'Amazon Polly pour synthétiser les réponses textuelles de votre bot. Pour plus d'informations, consultez les [tarifs d'Amazon Polly.](https://aws.amazon.com/polly/pricing/)

Vous devez également connaître les quotas de service suivants :
+ Le SDK Amazon Chime dispose d'un quota de service correspondant au nombre maximum de robots Amazon Lex que vous pouvez utiliser avec l'action audio PSTN. [StartBotConversation](#start-bot-conversation) Pour plus d'informations, reportez-vous à la section [Trunking SIP et quotas vocaux](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html#chm-sdk-pstn-quotas) dans le manuel de *référence AWS général*.
+ Amazon Lex dispose d'un quota de service pour le nombre maximum de conversations vocales simultanées par bot Lex. Vous pouvez contacter l'équipe du service Amazon Lex pour obtenir des augmentations de quotas. Pour plus d'informations, consultez les [directives Amazon Lex et les quotas](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) dans le *guide du développeur Amazon Lex*.
+ Amazon Polly dispose d'un quota de service pour la synthèse des réponses textuelles. Vous pouvez contacter l'équipe du service Amazon Polly pour obtenir des augmentations de quotas. Pour plus d'informations sur les quotas de service Amazon Polly, consultez la section [Quotas dans Amazon Polly](https://docs.aws.amazon.com/polly/latest/dg/limits.html), dans le manuel du développeur Amazon *Polly.*

# Utilisation des en-têtes SIP dans le service audio PTSN du SDK Amazon Chime
<a name="sip-headers"></a>

Vous pouvez désormais envoyer et recevoir un User-To-User en-tête, un en-tête Diversion et des en-têtes SIP personnalisés dans vos AWS Lambda fonctions lorsque vous souhaitez échanger des informations sur le contexte des appels avec votre infrastructure SIP. 
+ L'en-tête User-to-User (UUI) peut être utilisé pour envoyer des données de contrôle des appels. Ces données sont insérées par l'application qui lance une session et utilisées par l'application qui accepte la session. Il n'est utilisé pour aucune fonctionnalité SIP de base. Par exemple, vous pouvez utiliser l'en-tête UUI d'un centre d'appels pour transmettre des informations entre les agents concernant un appel.
+ L'en-tête Diversion est utilisé pour indiquer d'où l'appel a été redirigé et pourquoi. Vous pouvez utiliser cet en-tête pour voir les informations de détournement provenant d'autres agents SIP ou pour les transmettre.
+ Les en-têtes SIP personnalisés vous permettent de transmettre toute autre information que vous souhaitez. Par exemple, si vous souhaitez transmettre un identifiant de compte, vous pouvez créer un en-tête X appelé « X-Account-Id » et ajouter ces informations.

Vous devez préfixer vos en-têtes SIP personnalisés avec. `x-` Les en-têtes sont exposés dans la AWS Lambda fonction et reçus dans le cadre d'un `NEW_INBOUND_CALL` événement lors d'un appel entrant. Vous pouvez également inclure ces en-têtes dans les segments d'appel sortants lorsque vous déclenchez une [CallAndBridge](call-and-bridge.md) action ou [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.

La `Participants` section d'une fonction Lambda contient le `SipHeaders` champ. Ce champ est disponible lorsque vous recevez un en-tête personnalisé ou lorsque vous renseignez l'`Diversion`en-tête `User-to-User` ou.

Cet exemple montre une réponse attendue lorsqu'un appel AWS Lambda contient des en-têtes SIP.

```
{
    "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"
            }
        ]
    }
}
```

L'exemple suivant montre une [CallAndBridge](call-and-bridge.md) action réussie en raison d'une entrée non valide pour le `SipHeaders` paramètre. 

```
{
    "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"
            }
         }
      }
   ]
}
```

L'exemple suivant montre une [CallAndBridge](call-and-bridge.md) action qui a échoué en raison d'un `SipHeaders` paramètre non valide.

```
{
    "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"
         }
      ]
   }
}
```

## Utilisation de SipHeaders field
<a name="custom-headers"></a>

Lorsque vous déclenchez le [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, le `SipHeaders` champ facultatif vous permet de transmettre des en-têtes SIP personnalisés à un segment d'appel sortant. Les clés d'en-tête valides doivent inclure l'un des éléments suivants : 
+ Le `x-` préfixe
+ L'`User-to-User`en-tête
+ L'`Diversion`en-tête

`X-AMZN`est un en-tête réservé. Si vous utilisez cet en-tête dans un appel d'API, il échouera. Les en-têtes peuvent comporter au maximum 2 048 caractères. 

L'exemple suivant montre un [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 dans l'interface de ligne de commande avec le paramètre optionnel`SipHeaders`.

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

Pour plus d'informations, voir [Un mécanisme de transport des informations de contrôle des User-to-User appels dans le SIP](https://datatracker.ietf.org/doc/html/rfc7433) et l'[indication de détournement dans le SIP](https://datatracker.ietf.org/doc/html/rfc5806).

# Utilisation des enregistrements détaillés des appels dans le service audio PTSN du SDK Amazon Chime
<a name="attributes"></a>

*Les administrateurs du SDK Amazon Chime peuvent configurer les connecteurs vocaux du SDK Amazon Chime pour stocker les enregistrements détaillés des appels ().* CDRs Pour plus d'informations sur la configuration des connecteurs vocaux du SDK Amazon Chime à stocker CDRs, consultez la section [Gestion des paramètres globaux dans le SDK Amazon Chime dans le guide d'administration du SDK Amazon *Chime*](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html).

Une fois que vous l'avez activé CDRs, après chaque appel, l'application multimédia SIP envoie les enregistrements dans un dossier nommé **Amazon-Chime- SMADRs** dans votre compartiment S3.

Le tableau suivant répertorie les attributs d'un CDR et indique leur mise en forme appropriée. Les enregistrements contiennent tous les champs répertoriés ici pour tous les appels.


|  Value  |  Description  | 
| --- | --- | 
|  `"AwsAccountId":"AWS-account-ID"`  |  L'ID de AWS compte associé à l'application multimédia SIP qui a initié l'utilisation du PSTN  | 
|  `"TransactionId":"transaction-ID" `  |  L'identifiant de transaction de l'appel  | 
|  `"CallId":"SIP-media-application-call-ID"`  |  L'identifiant d'appel du participant pour l'utilisation associée  | 
|  `"VoiceConnectorId":"voice-connector-ID"`  |  ID UUID du connecteur vocal Amazon Chime SDK  | 
|  `"Status":"status"`  |  État de l'appel (terminé, échec)  | 
|  `"BillableDurationSeconds":"billable-duration-in-seconds"`  |  Durée facturable de l'appel en secondes  | 
|  `"SchemaVersion":"schema-version"`  |  Version du schéma CDR  | 
|  `"SourcePhoneNumber":"12075550155"`  |  Numéro de téléphone d'origine E.164  | 
| "SourcePhoneNumberName":"North Campus Reception" | Le nom attribué au numéro de téléphone source | 
|  `"DestinationPhoneNumber":"13605551214"`  |  Numéro de téléphone de destination E.164  | 
| "DestinationPhoneNumberName":"South Campus Reception" | Le nom attribué au numéro de téléphone de destination | 
|  `"UsageType":"usage-type"`  |  Détails d'utilisation de l'article dans l'API Price List  | 
|  `"ServiceCode":"service-code" `  |  Le code du service dans l'API Price List  | 
|  `"Direction":"direction"`  |  Direction de l'appel, `Outbound` ou `Inbound`  | 
|  `"TimeStampEpochSeconds":"start-time-epochseconds"`  |  L'horodatage de l'enregistrement au format horodatage epoch/Unix   | 
|  `"Region":"AWS-region"`  |  AWS Région pour le connecteur vocal du SDK Amazon Chime  | 
|  `"SipRuleId":"sip-rule-id"`  |  L'ID de la règle SIP qui est déclenchée lorsqu'un appel atteint le service audio PSTN  | 
|  `"SipApplicationId":"sip-application-id"`  |  L'ID de l'application SIP qui gère un appel  | 
|  `"CallLegTriggerType":"trigger-type"`  |  Type d'événement qui a déclenché un appel  | 
|  `"BillableVoiceFocusSeconds":"billable-voice-focus-in-seconds"`  |  Le montant facturable de l'utilisation de Voice Focus, en secondes  | 

# Comprendre les délais d'expiration et les nouvelles tentatives pour le service audio PTSN du SDK Amazon Chime
<a name="timeouts"></a>

Le service audio PSTN interagit avec AWS Lambda les fonctions de manière synchrone. Les applications attendent 5 secondes que les AWS Lambda fonctions répondent avant de réessayer un appel. Si aucune réponse n'est reçue après 20 secondes, le service PSTN Audio [raccrochera](unexpected-hangups.md). Lorsqu'une fonction renvoie une erreur avec l'un des 4 codes d'état *XX*, l'application multimédia SIP ne réessaie par défaut l'appel qu'une seule fois. Si vous n'avez plus de tentatives, les appels se terminent avec le code `480 Unavailable` d'erreur. Pour plus d'informations sur AWS Lambda les erreurs, voir [Résoudre les problèmes d'invocation dans](https://docs.aws.amazon.com/lambda/latest/dg/troubleshooting-invocation.html). AWS Lambda

# Débogage et résolution des problèmes du service audio PTSN du SDK Amazon Chime
<a name="debug-pstn"></a>

Utilisez les informations suivantes pour vous aider à diagnostiquer et à résoudre les problèmes courants que vous pouvez rencontrer lors de l'utilisation du service audio PSTN du SDK Amazon Chime.

**Topics**
+ [Vérification des journaux du service audio PTSN du SDK Amazon Chime](check-logs.md)
+ [Débogage des blocages inattendus dans le service audio PTSN du SDK Amazon Chime](unexpected-hangups.md)
+ [Débogage d'événements ACTION\$1FAILED inattendus](unexpected-action-fail.md)

# Vérification des journaux du service audio PTSN du SDK Amazon Chime
<a name="check-logs"></a>

Si vous débugez une application multimédia SIP, consultez les journaux Cloudwatch pour connaître la AWS Lambda fonction associée à l'application. 

Vérifiez ensuite les journaux associés à l'application multimédia SIP. Le cas échéant, vous pouvez configurer l'application multimédia SIP pour la journalisation. Pour plus d'informations, consultez la section [Utilisation des applications multimédia SIP](https://docs.aws.amazon.com/chime-sdk/latest/ag/use-sip-apps.html) dans le guide de l'administrateur du *SDK Amazon Chime*. Si vous activez la journalisation, vous pouvez trouver les journaux sur Cloudwatch, dans le groupe de `/aws/ChimeSipMediaApplicationSipMessages/<SIP-media-application-Id>` journaux.

# Débogage des blocages inattendus dans le service audio PTSN du SDK Amazon Chime
<a name="unexpected-hangups"></a>

Effectuez les actions de dépannage suivantes si vous rencontrez des blocages inattendus ou des messages d'erreur liés aux AWS Lambda fonctions du service audio PSTN :
+ Vérifiez que votre AWS Lambda politique accorde l'`lambda:InvokeFunction`autorisation au principal du service [voiceconnector.chime.amazonaws.com](http://voiceconnector.chime.amazonaws.com/).
+ Consultez les journaux de votre AWS Lambda fonction pour vous assurer qu'elle est correctement invoquée.
+ Si les journaux indiquent des événements entrants et des actions renvoyées, vérifiez que vous ne renvoyez pas d'action de blocage lorsque la AWS Lambda fonction est invoquée.
+ Consultez les CloudWatch journaux de votre application multimédia SIP. Le tableau suivant répertorie certains des messages que vous pouvez rencontrer.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/unexpected-hangups.html)

# Débogage d'événements ACTION\$1FAILED inattendus
<a name="unexpected-action-fail"></a>

Si vous recevez un `ACTION_FAILED` événement inattendu, vérifiez les points suivants :

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

# Compréhension VoiceFocus du service audio PTSN du SDK Amazon Chime
<a name="voice-focus"></a>

Vous permet d'appliquer la suppression du bruit d'Amazon Voice Focus aux tronçons d'appels entrants et sortants d'un appel sur un réseau téléphonique public commuté (PSTN). Lorsque vous appliquez Amazon Voice Focus, cela réduit le bruit de fond sans affecter le langage humain. Cela peut rendre l'orateur actuel plus facile à entendre.

Pour créer des segments d'appel entrants, vous utilisez une [règle SIP](https://docs.aws.amazon.com/chime/latest/ag/manage-sip-applications.html) qui invoque une AWS Lambda fonction associée à un `NewInboundCall` événement. Vous pouvez créer des segments d'appel sortants à l'aide de l'[CallAndBridge](call-and-bridge.md)action ou à l'aide d'une opération d'[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. Pour plus d'informations sur Amazon Voice Focus, consultez [Comment fonctionne la suppression du bruit du SDK Amazon Chime](https://www.amazon.science/blog/how-amazon-chimes-challenge-winning-noise-cancellation-works).

 Amazon Voice Focus réduit les bruits indésirables non liés à la parole, notamment : 
+ **Bruits environnementaux** : vent, ventilateurs, eau courante
+ **Bruits de fond : tondeuses** à gazon, chiens qui aboient
+ **Bruits au premier plan** : dactylographie, paper shuffling

**Note**  
Lorsque vous utilisez Amazon Voice Focus, vous AWS facture les minutes d'appel actives de chaque segment d'appel et pour chaque minute d'utilisation de l'application multimédia SIP.

Cet exemple montre une `VoiceFocus` action typique.

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

**Enable**  
*Description* — Active ou désactive Amazon Voice Focus  
*Valeurs autorisées* — `True` \$1 `False`  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

**CallId**  
*Description* — CallId du participant à l'`CallDetails`invocation de la AWS Lambda fonction  
*Valeurs autorisées* : un identifiant d'appel valide  
*Obligatoire* — Oui  
*Valeur par défaut* – Aucune

Cet exemple montre un `ACTION_SUCCESSFUL` événement réussi pour l'`VoiceFocus`action.

```
{
   "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"
         }
      ]
   }
}
```

Cet exemple montre un `ACTION_FAILED` événement typique de l'`VoiceFocus`action.

```
{
   "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",
            .....   
         }
      ]
   }
}
```

**Gestion des erreurs**  
Pour des raisons de sécurité, les actions audio PSTN sont limitées à 5 demandes d'appel par seconde, par compte client (CPS). Lorsque les demandes d'appel dépassent la limite de 5 CPS, l'action renvoie un message d'erreur. Ce tableau répertorie les messages d'erreur renvoyés par l'`VoiceFocus`action.


| Erreur | Message | Raison | 
| --- | --- | --- | 
| `ActionExecutionThrottled` | Impossible d'exécuter l'action. Le nombre maximum d'actions par seconde a été atteint. | Le nombre de demandes d'action Voice Focus par seconde a dépassé la limite du système.  | 
| `MissingRequiredActionParameter` | Paramètre d'action obligatoire manquant. | Il manque un ou plusieurs des paramètres requis lors de l'exécution de l'action. | 
| `SystemException` | Erreur système lors de l'exécution de l'action. | Une erreur système s'est produite lors de l'exécution de l'action. | 

**Flux d'appels**  
Ce schéma montre le flux d'appels permettant d'activer et de désactiver Amazon Voice Focus pour une `CallAndBridge` action entre deux appels PSTN.

![\[Le flux d'appels lorsque vous activez ou désactivez Amazon Voice focus pour deux appels PSTN pontés.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/voice_focus-pstn1.png)


Pour le segment des appels sortants, la AWS Lambda fonction permet à Amazon Voice de se concentrer sur l'appelant et renvoie un ensemble d'actions, notamment. `CallAndBridge` Une fois que l'appel est ponté, l'`VoiceFocus`action renvoie un `ACTION_SUCCESSFUL` événement, et la fonction Lambda renvoie un autre ensemble d'événements qui active Amazon Voice Focus pour la personne appelée. Cet ensemble d'actions inclut`VoiceFocus`, `Enable``True`, et l'identifiant de l'appelant. Aucune autre action n'est entreprise tant que l'appelant n'a pas raccroché. La fonction Lambda envoie ensuite une `Hangup` action à l'application multimédia SIP. L'application raccroche la personne appelée et renvoie une fonction de blocage à la fonction Lambda, qui n'effectue aucune autre action.

# Glossaire des services audio PSTN du SDK Amazon Chime
<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>

**Action**  
Dans une AWS Lambda fonction, une action est un élément que vous souhaitez exécuter lors d'une partie d'un appel téléphonique, comme l'envoi ou la réception de chiffres, la participation à une réunion, etc. Pour plus d'informations sur les actions prises en charge par le service audio PSTN, consultez. [Actions prises en charge pour le service audio PSTN du SDK Amazon Chime](specify-actions.md)

**AWS Lambda**  
Un service de calcul qui vous permet d'exécuter du code pour presque tous les types d'applications ou de services principaux sans provisionner ni gérer de serveurs.

**AWS Lambda fonction**  
Dans le contexte du service audio PSTN, fonction exécutée en réponse aux données transmises par une application multimédia SIP, par exemple en passant un appel sortant. 

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

**Enregistrement détaillé des appels**  
Les données issues des appels du SDK Amazon Chime Voice Connector, telles que le compte IDs, les numéros de téléphone source et les pays de destination. Les enregistrements arrivent sous forme d'objets dans un compartiment Amazon Simple Storage Service (S3) de votre compte. Pour plus d'informations, consultez [la section Gestion des paramètres globaux dans le SDK Amazon Chime dans le Guide de l'administrateur du SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/manage-global.html) *Amazon Chime*. Pour plus d'informations sur le schéma d'enregistrement, consultez [Utilisation des enregistrements détaillés des appels dans le service audio PTSN du SDK Amazon Chime](attributes.md) ce guide.

**ID d'appel**  
L'identifiant attribué aux tronçons de tous les appels entrants.

**Jambe d'appel**  
Ça fait partie d'un appel. Dans les applications du SDK Amazon Chime, les appels peuvent provenir de numéros de téléphone valides, d'un PSTN ou de connecteurs vocaux du SDK Amazon Chime. Pour plus d’informations, consultez [En savoir plus sur l'utilisation des étapes d'appel du service audio PSTN du SDK Amazon Chime](call-architecture.md) dans ce guide. 

**Carrier**  
Une entreprise qui fournit des services mobiles. Abréviation de **opérateur sans fil**.

**Amazon Chime**  
Un service de communication et de collaboration unifiées fourni par AWS.

**Kit SDK Amazon Chime**  
Kit de développement logiciel utilisé par les développeurs pour ajouter des médias et des communications en temps réel à des applications de communication personnalisées. 

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

**E.164**  
Le seul format accepté pour les numéros de téléphone dans le service audio PSTN. Selon une recommandation de l'UIT-T, les numéros utilisent un code de pays de 1 à 3 chiffres, suivi d'un numéro d'abonné à 12 chiffres maximum. Par exemple : États-Unis :`+14155552671`, Royaume-Uni :`+442071838750 44`, Australie `+61285993444` :. 

**Point de terminaison**  
 Un périphérique matériel ou un service logiciel, tel qu'un téléphone ou une application de communications unifiées. 

**EventBridge**  
Un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données provenant de diverses sources.  
Les applications multimédia SIP n'envoient pas de données à EventBridge. Pour plus d'informations, consultez [Automatiser le SDK Amazon Chime dans le Guide de l' EventBridgeadministrateur du SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) Amazon *Chime*.

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

**IVR**  
Réponse vocale interactive. Système qui permet aux utilisateurs d'interagir avec un système téléphonique commandé par ordinateur par reconnaissance vocale ou clavier tactile.

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

**Jambe**  
Consultez [Call leg](#call-leg).

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

**Multimédia**  
Les messages audio, vidéo ou de chat disponibles lors d'une réunion du SDK Amazon Chime. Une application de communication personnalisée peut contenir un ou plusieurs types de médias.

**Pipeline multimédia**  
Mécanisme permettant de diffuser et de capturer de l'audio, de la vidéo, des messages et des événements lors d'une réunion du SDK Amazon Chime. Pour plus d’informations, consultez [Création de pipelines multimédias du SDK Amazon Chime](media-pipelines.md) dans ce guide.

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

**Portabilité des numéros**  
Possibilité de déplacer des numéros de téléphone entre opérateurs téléphoniques ou systèmes de communication unifiés. 

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

**Origine**  
Processus consistant à recevoir un appel d'un PSTN et à le transmettre à un terminal VoIP. 

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

**Tag de participant**  
Un identifiant attribué à chaque participant à l'appel, `LEG-A` ou`LEG-B`.

**Politique**  
Le SDK Amazon Chime nécessite les types de politiques suivants :  
+ **Politique utilisateur IAM : politique** qui définit les autorisations pour les utilisateurs d'Identity and Access Management. 
+ **Politique de réunion** : politique qui permet à un utilisateur de contrôler l'ordinateur d'un autre utilisateur lorsqu'il partage des écrans pendant une réunion, et qui permet aux participants de rejoindre les réunions en recevant un appel téléphonique du SDK Amazon Chime.

**PSTN**  
Réseau téléphonique public commuté. L'infrastructure et les services qui fournissent des capacités d'appel téléphonique.

**Service audio PSTN**  
Un service de SDK Amazon Chime qui permet aux développeurs d'ajouter des fonctionnalités audio à leurs solutions de communication.

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

**Routage**  
Les applications créées à l'aide du SDK Amazon Chime utilisent un ou plusieurs types de routage :  
+ **Routage réseau** : processus de sélection d'un chemin pour le trafic dans un réseau, ou entre ou à travers plusieurs réseaux.
+ **Routage des interactions** : processus qui permet de s'assurer qu'un appel est acheminé vers le bon destinataire ou le bon point de terminaison. 
+ **Routage des appels** : fonctionnalité de gestion des appels qui met en file d'attente et distribue les appels entrants à des destinataires ou à des points de terminaison prédéfinis.

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

**SBC**  
Contrôleur de session en bordure. Élément de réseau déployé pour protéger les réseaux de voix sur protocole Internet (VoIP) basés sur le protocole SIP.

**Séquence**  
Séquence d'événements qui invoque une AWS Lambda fonction. Chaque fois qu'une fonction est invoquée pendant un appel, la séquence est incrémentée.

**Limite de service/quota de service**  
Le nombre maximum de ressources, telles que les réunions, les flux audio ou les partages de contenu, autorisé par le SDK Amazon Chime. Pour plus d'informations, consultez ce guide[Audio](meetings-sdk.md#audio).

**SIP**  
Protocole d'initiation de session, protocole de signalisation utilisé pour initier, maintenir et terminer des sessions en temps réel qui incluent n'importe quelle combinaison d'applications vocales, vidéo et de messagerie. Pour plus d'informations, voir [SIP : Session Initiation Protocol](https://www.rfc-editor.org/rfc/rfc3261.html).

**En-têtes SIP**  
Paramètres des AWS Lambda fonctions contenant des données de contrôle des appels, ainsi que d'autres données telles que le compte utilisateur IDs.

**Application multimédia SIP**  
Objet géré qui transmet les valeurs d'une règle SIP à une AWS Lambda fonction cible. Les développeurs peuvent appeler le [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 pour créer des applications multimédia SIP, mais elles doivent disposer d'autorisations administratives pour le faire.

**Règle SIP**  
Objet géré qui transmet les numéros de téléphone du connecteur vocal Amazon Chime SDK URIs à une application multimédia SIP cible.

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

**SMA**  
Voir application multimédia SIP.

**IDENTIFIANT SMA**  
Voir application multimédia SIP.

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

**Télécom**  
Un fournisseur de services de télécommunications.

**Résiliation**  
Le processus de fin d'un appel.

**Transaction**  
Un appel contenant un ou plusieurs segments d'appel. Pour plus d’informations, consultez [En savoir plus sur l'utilisation des étapes d'appel du service audio PSTN du SDK Amazon Chime](call-architecture.md) dans ce guide.

**Numéro de transaction**  
L'ID d'une transaction contenant plusieurs étapes d'appel. Pour plus d’informations, consultez [En savoir plus sur l'utilisation des étapes d'appel du service audio PSTN du SDK Amazon Chime](call-architecture.md) dans ce guide.

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

**Connecteur vocal Amazon Chime SDK**  
Un objet qui fournit un service de jonction SIP (Session Initiation Protocol) pour les systèmes téléphoniques. Les administrateurs utilisent la console d'administration du SDK Amazon Chime pour créer et gérer les connecteurs vocaux. Pour plus d'informations, consultez [la section Gestion des connecteurs vocaux du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html) dans le guide de l'administrateur du SDK *Amazon Chime*.

**Groupe de connecteurs vocaux du SDK Amazon Chime**  
Un wrapper qui contient plusieurs connecteurs vocaux provenant de différentes AWS régions. Les groupes permettent aux appels entrants de basculer d'une région à l'autre, ce qui crée un mécanisme tolérant aux pannes. Pour plus d'informations, consultez [la section Gestion des groupes de connecteurs vocaux du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connector-groups.html) dans le guide de l'administrateur du SDK *Amazon Chime*.