

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.

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

La acción `StartCallRecording` inicia la grabación del tramo de una llamada. Puede iniciar la grabación de llamadas en sus aplicaciones multimedia SIP, ya sea bajo demanda o en respuesta a un evento SIP.
+ Para iniciar la grabación bajo demanda de una llamada, utilice la API `UpdateSipMediaApplication` para invocar la aplicación y devolver la acción `StartCallRecording`.
+ Para iniciar la grabación de llamadas en respuesta a un evento SIP, devuelva la acción de `StartCallRecording` a su aplicación. 

Especifique si desea grabar la pista de audio para el tramo entrante, el tramo saliente o ambos. En las secciones siguientes se explica cómo utilizar la acción `StartCallRecording`.

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

**Topics**
+ [Solicitar una StartCallRecording acción](#request-start)
+ [Especificación de un destino de grabación](#recording-destination)
+ [Conceder permisos de bucket de Amazon S3](#grant-s3-perms)
+ [Respuesta correcta de la acción](#action-successful)
+ [Respuesta incorrecta de la acción](#action-error)

## Solicitar una StartCallRecording acción
<a name="request-start"></a>

El siguiente ejemplo muestra cómo restringir la acción `StartCallRecording` a `BOTH` pistas.

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

**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*: sí  
*Valor predeterminado:* ninguno

**Pista**  
*Descripción*: `Track` de audio de la grabación de la llamada.  
*Valores permitidos*: `BOTH`, `INCOMING` o `OUTGOING`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Tipo de destino**  
*Descripción*: tipo de destino. Solo se permite Amazon S3.  
*Valores permitidos*: Amazon S3  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

**Ubicación de destino**  
*Descripción*: un bucket de Amazon S3 válido y un prefijo de clave de Amazon S3 opcional. El bucket debe tener permisos para la entidad principal de servicio de Amazon Chime SDK Voice Connector, voiceconnector.chime.amazonaws.com.  
*Valores permitidos*: una ruta de Amazon S3 válida para la que el Amazon Chime SDK tiene permisos para las acciones `s3:PutObject` y `s3:PutObjectAcl`.  
*Obligatorio*: sí  
*Valor predeterminado:* ninguno

## Especificación de un destino de grabación
<a name="recording-destination"></a>

Amazon Chime SDK proporciona grabaciones de llamadas a su bucket de Amazon S3. El depósito debe pertenecer a tu AWS cuenta. La ubicación del bucket se especifica en el parámetro `Destination` de la acción `StartCallRecording`. El campo `Type` del parámetro `Destination` debe ser `S3`. El campo `Location` consta de su bucket de Amazon S3 y un prefijo de clave de objeto opcional en el que se entrega la grabación de la llamada. 

La aplicación multimedia SIP utiliza la `Location` especificada, la fecha y hora del tramo de llamada, el identificador de transacción y el identificador de llamada para formatear la clave de objeto de Amazon S3. La respuesta a la acción `StartCallRecording` devuelve la clave de objeto completa de Amazon S3.

Si solo proporciona el bucket de Amazon S3 en el campo `Location`, la aplicación multimedia SIP añade un prefijo predeterminado, `Amazon-Chime-SMA-Call-Recordings`, a la ruta de Amazon S3. La aplicación multimedia SIP también agrega el año, el mes y el día de la hora de inicio de la llamada para ayudar a organizar las grabaciones. El siguiente ejemplo muestra el formato general de una ruta de Amazon S3 con el prefijo predeterminado. En este ejemplo `myRecordingBucket` se utiliza como valor de `Location`.

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

En el ejemplo siguiente se muestran los datos que se representan en la ruta de Amazon S3 de la grabación de la llamada.

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

Cuando proporciona el bucket de Amazon S3 y el prefijo de clave de objeto en el campo `Location`, la aplicación multimedia SIP utiliza su prefijo de clave de objeto en la ruta de Amazon S3 de destino en lugar del prefijo predeterminado. El siguiente ejemplo muestra el formato general de una llamada grabando la ruta de Amazon S3 con su prefijo. Por ejemplo, puede especificar myRecordingBucket /TechnicalSupport/English como. `Location` 

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

En el siguiente ejemplo, se muestran los datos de la ruta de Amazon S3.

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

La grabación enviada a su bucket de Amazon S3 contiene [metadatos de objetos de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) adicionales sobre el tramo de llamada. En la siguiente tabla se muestran los metadatos de objetos de Amazon S3 admitidos.


| Name | Description (Descripción) | 
| --- | --- | 
| transaction-id | ID de transacción de la llamada de teléfono | 
| call-id | CallId del participante en la invocación de la función CallDetails AWS Lambda  | 
| recording-duration | Duración de la grabación de llamadas en segundos | 
| recording-audio-file-format | Formato de archivo de audio para grabación de llamadas representado como tipo de medio de Internet | 

## Conceder permisos de bucket de Amazon S3
<a name="grant-s3-perms"></a>

El bucket de Amazon S3 de destino debe pertenecer a la misma AWS cuenta que la aplicación. Además, la acción debe otorgar a `s3:PutObject` y `s3:PutObjectAcl` permiso a la entidad principal del servicio Amazon Chime SDK Voice Connector, `voiceconnector.chime.amazonaws.com`. En el siguiente ejemplo, se otorgan los permisos. 

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

------

El servicio de audio PSTN lee y escribe en su bucket S3 en nombre de su aplicación multimedia Sip. Para evitar este [problema de suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), puede restringir los permisos del bucket S3 a una sola aplicación multimedia 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"
                }
            }
        }
    ]
}
```

------

## Respuesta correcta de la acción
<a name="action-successful"></a>

Cuando la grabación de la llamada se inicia correctamente en un tramo de llamada, la aplicación multimedia SIP invoca una AWS Lambda función con el tipo de `ACTION_SUCCESSFUL` evento. En la respuesta se recupera la ubicación de la grabación de la llamada. 

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

## Respuesta incorrecta de la acción
<a name="action-error"></a>

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 muestran los mensajes de error.




| Error | Mensaje | Motivo | 
| --- | --- | --- | 
| `InvalidActionParameter` | El parámetro de acción `CallId` no es válido | Cualquier parámetro no es válido. | 
| `SystemException` | Error del sistema al ejecutar una acción. | Se ha producido otro tipo de error del sistema al ejecutar una acción. | 

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

El ejemplo siguiente muestra una respuesta de error típica.

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

Consulte un ejemplo práctico en GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)