

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.

# 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 concernant les participants à une réunion. L'application enregistre jusqu'à ce qu'elle atteigne la durée que vous avez définie, ou lorsqu'un utilisateur appuie sur l'une des touches`RecordingTerminators`, ou 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 accorder une `s3:PutObject` `s3:PutObjectAcl` autorisation au principal du service Amazon Chime SDK Voice Connector, au principal du service [ Amazon Chime SDK Voice Connector,. ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) `voiceconnector.chime.amazonaws.com` 

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

L'exemple de politique IAM suivant accorde les `s3:PutObjectAcl` autorisations `s3:PutObject` et au principal du service Amazon Chime SDK Voice Connector :

**Example : Politique IAM pour l'enregistrement des appels**  

```
{
    "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/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                }
            }
        }
    ]
}
```

L'exemple suivant arrête l'enregistrement lorsque l'appelant appuie sur la touche dièse (\#), ou 10 secondes s'écoulent sans aucune activité, ou lorsque l'appelant reste silencieux pendant 3 secondes, et le fichier multimédia obtenu est écrit à 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 * : numéro 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 invoquée `callLeg` Ignoré 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 [ du service ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) Amazon Chime SDK Voice Connector,. `voiceconnector.chime.amazonaws.com`  
*Valeurs autorisées * : compartiment S3 valide pour lequel le SDK Amazon Chime a accès aux actions `s3:PutObject` 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écurisés, reportez-vous à la section Caractères [https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) sécurisés du guide de l'utilisateur d'Amazon Simple Storage Service.  
*Obligatoire * — Non  
*Par défaut * : aucune. 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 pour traiter le bruit comme du silence) :**
+ 1 à 30 dB ou moins, par exemple dans une pièce calme
+ 100—40-50 dB, par exemple en cas de chuchotement ou de silence au bureau
+ 200 à 60 dB, comme dans un bureau bondé
+ 1 000 à 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\*0\#]  
*Obligatoire * — Oui  
*Valeur par défaut* – Aucune

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

À la fin de l'enregistrement, l'application multimédia SIP Amazon Chime SDK appelle la AWS Lambda fonction et lui transmet l'événement ACTION\_SUCCESSFUL, 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` les champs suivants :

**Type**  
*Description * : type de l'action,`RecordAudio`.

**Parameters**  
*Description * : paramètres de l'action.

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

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

**RecordingDestination.Key**  
*Description * : touche S3 du fichier d'enregistrement.

**RecordingTerminatorUsed**  
*Description * : 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.<br />`DurationInSeconds`la valeur du paramètre n'est pas valide.<br />`SilenceDurationInSeconds`la valeur du paramètre n'est pas valide.<br />`SilenceThreshold`la valeur du paramètre n'est pas valide.<br />`RecordingDestination`la valeur du paramètre n'est pas valide.<br />Une erreur s'est produite lors du téléchargement de l'enregistrement dans le compartiment S3. | Aucun paramètre n'est 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. | 

## Manipulation ÉCHEC DE L'ACTION events
<a name="handle-action-failed"></a>

Lorsque l'action ne parvient pas à enregistrer le contenu multimédia d'un segment d'appel, l'application multimédia SIP invoque une AWS Lambda fonction avec le 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 concret sur GitHub : [ https://github.com/aws-samples/amazon-chime-sma-bridging ](https://github.com/aws-samples/amazon-chime-sma-bridging)