

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Permite que la aplicación multimedia SIP grabe contenido multimedia desde un identificador de llamada determinado. Por ejemplo, una aplicación de correo de voz y anuncios para los participantes de una reunión. La aplicación graba hasta que alcanza la duración establecida, o cuando un usuario pulsa una de ellas o cuando la aplicación `RecordingTerminators` detecta silencio. En esos casos, la acción indica a la aplicación que coloque el archivo multimedia resultante en el bucket de S3 especificado. El bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, la acción debe conceder a `s3:PutObject` y `s3:PutObjectAcl` permiso a la entidad principal del servicio Amazon Chime SDK Voice Connector, a la entidad principal del servicio del conector de [voz de Amazon Chime SDK](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`. 

**nota**  
Las grabaciones realizadas con esta característica pueden estar sujetas a las leyes o reglamentos relativos a la grabación de comunicaciones electrónicas. Es su responsabilidad y la de sus usuarios finales cumplir con todas las leyes aplicables en relación con la grabación, incluida la notificación adecuada a todos los participantes de una sesión o comunicación grabada de que la sesión o la comunicación se está grabando y obtener su consentimiento.

El siguiente ejemplo otorga el permiso a `s3:PutObject` y `s3:PutObjectAcl` y el permiso a la entidad principal de servicio 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/*"
        }
    ]
}
```

------

En el siguiente ejemplo, se detiene la grabación cuando la persona que llama pulsa la tecla mayúscula (\$1), o si transcurren 10 segundos sin actividad, o cuando la persona que llama permanece en silencio durante 3 segundos y escribe el archivo multimedia resultante en la ubicación definida por el parámetro `RecordingDestination`.

**nota**  
Este ejemplo utiliza el parámetro `CallId`. Puede usar el parámetro `ParticipantTag` en su lugar, pero no puede usar ambos.

```
{
    "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**  
*Descripción*: `CallId` del participante en la invocación `CallDetails` de la AWS Lambda función  
*Valores permitidos*: un identificador de llamada válido  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

**ParticipantTag**  
*Descripción*: la `ParticipantTag` de uno de los participantes conectados en los `CallDetails`  
*Valores permitidos*: `LEG-A` o `LEG-B`  
*Obligatorio:* no  
*Valor predeterminado*: `ParticipantTag` del `callLeg` invocado ignorado si se especifica el `CallId`

**RecordingDestination.Type**  
*Descripción:* tipo de destino. Solo S3.  
*Valores permitidos*: S3  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**RecordingDestination.BucketName**  
*Descripción:* un nombre de bucket de S3 válido. El bucket debe tener acceso a la [entidad principal de servicio de Amazon Chime SDK Voice Connector](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html), `voiceconnector.chime.amazonaws.com`.  
*Valores permitidos*: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones `s3:PutObject` y `s3:PutObjectAcl`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

****RecordingDestination.Prefix****  
*Descripción:* prefijo S3 del archivo de grabación  
*Valores permitidos*: un nombre de prefijo válido que contiene hasta 979 caracteres seguros. Para obtener más información acerca de los caracteres seguros, consulte la sección de [caracteres seguros](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters) de la Guía del usuario de Amazon Simple Storage Service.  
*Obligatorio:* no  
*Valor predeterminado*: ninguno. Si no se especifica, las grabaciones se guardan en la raíz del bucket de S3.

**DurationInSeconds**  
*Descripción*: duración, en segundos, de la grabación  
*Valores permitidos*: >0  
*Obligatorio:* no  
*Valor predeterminado:* ninguno

****SilenceDurationInSeconds****  
*Descripción*: la duración del silencio en segundos, tras la cual se detiene la grabación. Si no se especifica, la detección de silencio está desactivada  
*Valores permitidos*: [1; 1000]  
*Obligatorio:* no  
*Valor predeterminado:* 200

****SilenceThreshold****  
*Descripción*: nivel de ruido que se considera “silencio”. Si no especifica la `SilenceDurationInSeconds`, este parámetro se ignora.  

**Valores de referencia (niveles y umbrales de ruido para tratar el ruido como silencio):**
+ De 1 a 30 dB o menos, como en una habitación silenciosa
+ De 100 a 40-50 dB, como en una oficina silenciosa o un suspiro
+ De 200 a 60 dB, como en una oficina abarrotada
+ De 1000 a 75 dB, como una persona o música ruidosa
*Valores permitidos*: [1; 1000]  
*Obligatorio:* no  
*Valor predeterminado:* 200

**RecordingTerminators**  
*Descripción*: enumera todos los terminadores de grabación disponibles.  
*Valores permitidos*: matriz de un solo dígito y símbolos de [123456789\$10\$1]  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Gestión de los eventos ACTION\$1SUCCESSFUL
<a name="handle-action-successful"></a>

Cuando finaliza la grabación, la aplicación multimedia SIP del SDK de Amazon Chime llama a la AWS Lambda función y le pasa el evento ACTION\$1SUCCESSFUL, junto con los resultados de la invocación.

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

El evento `ACTION_SUCCESSFUL` contiene `ActionData`, que contiene los siguientes campos:

**Type**  
*Descripción*: el tipo de acción, `RecordAudio`.

**Parameters**  
*Descripción*: los parámetros de la acción.

**RecordingDestination.Type**  
*Descripción:* tipo de destino. Solo S3. 

**RecordingDestination.BucketName**  
*Descripción*: bucket de S3 que contiene el archivo de grabación. 

**RecordingDestination.Key**  
*Descripción*: la clave S3 del archivo de grabación.

**RecordingTerminatorUsed**  
*Descripción*: el terminador utilizado para detener la grabación, uno de los terminadores incluidos en el parámetro `RecordingTerminators`. Si la grabación se detiene después de alcanzar la duración máxima (`DurationInSeconds`) o debido al silencio (`SilenceDurationInSeconds`), este par clave-valor no se incluye en la salida.

**Gestión de errores**  
En caso de errores de validación, la aplicación multimedia SIP llama a la AWS Lambda función con el mensaje de error correspondiente. En la siguiente tabla se enumeran los posibles mensajes de error.


|  Error  |  Mensaje  |  Motivo  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  El parámetro `CallId` o `ParticipantTag` de acción no es válido. El valor del parámetro `DurationInSeconds` no es válido. El valor del parámetro `SilenceDurationInSeconds` no es válido. El valor del parámetro `SilenceThreshold` no es válido. El valor del parámetro `RecordingDestination` no es válido. Se ha producido un error al cargar la grabación en el bucket de S3.  |  Cualquier parámetro no es válido.  | 
|  `SystemException`  |  Error del sistema al ejecutar una acción.  |  Se produjo otro tipo de error del sistema al ejecutar una acción.  | 

## Gestión de eventos de ACTION\$1FAILED
<a name="handle-action-failed"></a>

Cuando la acción no graba el contenido multimedia de un tramo de llamada, la aplicación multimedia SIP invoca una AWS Lambda función con el tipo de `ACTION_FAILED` evento. Consulte el siguiente ejemplo.

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

Vea un ejemplo práctico sobre GitHub: [https://github.com/aws-samples/amazon-chime-sma-bridging](https://github.com/aws-samples/amazon-chime-sma-bridging)