

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 (\#), 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\*0\#]  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Gestión de los eventos ACTION\_SUCCESSFUL
<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\_SUCCESSFUL, 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.<br />El valor del parámetro `DurationInSeconds` no es válido.<br />El valor del parámetro `SilenceDurationInSeconds` no es válido.<br />El valor del parámetro `SilenceThreshold` no es válido.<br />El valor del parámetro `RecordingDestination` no es válido.<br />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\_FAILED
<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)