

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

A ação `StartCallRecording` inicia a gravação de um trecho de chamada. Você inicia a gravação de chamadas em seus aplicativos de mídia SIP, sob demanda ou em resposta a um evento SIP.
+ Para iniciar a gravação sob demanda de uma chamada, você usa a API `UpdateSipMediaApplication` para invocar seu aplicativo e retornar a ação `StartCallRecording`.
+ Para iniciar a gravação de chamadas em resposta a um evento SIP, você retorna a ação `StartCallRecording` em seu aplicativo. 

Você especifica se deseja gravar a faixa de áudio para a etapa de entrada, a etapa de saída ou ambas. As seções a seguir explicam como usar a ação `StartCallRecording`.

**nota**  
As gravações feitas usando esse atributo podem estar sujeitas a leis ou regulamentos relacionados à gravação de comunicações eletrônicas. É responsabilidade sua e de seus usuários finais cumprir todas as leis aplicáveis em relação à gravação, incluindo notificar adequadamente todos os participantes de uma sessão ou comunicação gravada de que a sessão ou comunicação está sendo gravada e obter o consentimento deles.

**Topics**
+ [Solicitando uma StartCallRecording ação](#request-start)
+ [Como especificar um destino de gravação](#recording-destination)
+ [Como conceder permissões do bucket do Amazon S3](#grant-s3-perms)
+ [Resposta bem-sucedida da ação](#action-successful)
+ [Resposta de erro da ação](#action-error)

## Solicitando uma StartCallRecording ação
<a name="request-start"></a>

O exemplo a seguir mostra como solicitar a ação `StartCallRecording` para faixas `BOTH`.

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

**CallId**  
*Descrição* — `CallId` do participante na `CallDetails` invocação da AWS Lambda função  
*Valores permitidos*: um ID de chamada válido  
*Obrigatório* – Sim  
*Valor-padrão*: nenhum

**Faixa**  
*Descrição* – Áudio da `Track` da gravação da chamada.  
*Valores permitidos*: `BOTH`, `INCOMING` ou `OUTGOING`  
*Obrigatório* – Sim  
*Valor-padrão*: nenhum

**Destination.Type**  
*Descrição* – Tipo de destino. Somente o Amazon S3 é permitido.  
*Valores permitidos*: Amazon S3  
*Obrigatório* – Sim  
*Valor-padrão*: nenhum

**Destination.Location**  
*Descrição* – Um bucket válido do Amazon S3 e um prefixo de chave opcional do Amazon S3. O bucket deve ter permissões para a entidade principal de serviço de conector de voz do SDK do Amazon Chime, o voiceconnector.chime.amazonaws.com.  
*Valores permitidos*: um caminho do Amazon S3 válido para o qual o SDK do Amazon Chime tem acesso às ações `s3:PutObject` e `s3:PutObjectAcl`.  
*Obrigatório* – Sim  
*Valor-padrão*: nenhum

## Como especificar um destino de gravação
<a name="recording-destination"></a>

O SDK do Amazon Chime fornece gravações de chamadas para se bucket do Amazon S3. O bucket deve pertencer à sua AWS conta. Você especifica a localização do bucket no parâmetro `Destination` da ação `StartCallRecording`. O campo `Type` no parâmetro `Destination` deve ser `S3`. O campo `Location` consiste em seu bucket do Amazon S3, além de um prefixo de chave de objeto opcional no qual a gravação da chamada é entregue. 

O aplicativo de mídia SIP usa a `Location` especificada, a data e a hora do trecho da chamada, o ID da transação e o ID da chamada para formatar a chave de objeto do Amazon S3. A resposta da ação `StartCallRecording` retorna a chave de objeto completa do Amazon S3.

Quando você fornece somente o bucket do Amazon S3 no campo `Location`, o aplicativo de mídia SIP acrescenta um prefixo-padrão, `Amazon-Chime-SMA-Call-Recordings`, ao caminho do Amazon S3. O aplicativo de mídia SIP também anexa o ano, mês e dia do horário de início da chamada para ajudar a organizar as gravações. O exemplo a seguir mostra o formato geral de um caminho do Amazon S3 com o prefixo-padrão. Este exemplo usa `myRecordingBucket` 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
```

O exemplo a seguir mostra os dados representados no nome de registro de caminho do Amazon S3.

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

Quando você fornece o bucket do Amazon S3 e o prefixo da chave do objeto no campo `Location`, o aplicativo de mídia SIP usa seu prefixo de chave de objeto no caminho de destino do Amazon S3 em vez do prefixo-padrão. O exemplo a seguir mostra o formato geral de um caminho do Amazon S3 de gravação de chamadas com seu prefixo. Por exemplo, você pode especificar myRecordingBucket /TechnicalSupport/English como o. `Location` 

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

O exemplo a seguir mostra os dados no caminho do Amazon S3.

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

A gravação enviada para seu bucket do Amazon S3 contém [metadados de objetos do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) adicionais sobre o trecho da chamada. A tabela a seguir lista os metadados do objeto do Amazon S3 compatíveis.


| Name (Nome) | Description | 
| --- | --- | 
| transaction-id | O ID da transação da chamada telefônica | 
| call-id | CallId do participante na invocação CallDetails da AWS Lambda função | 
| recording-duration | Duração da gravação de chamadas em segundos | 
| recording-audio-file-format | Formato de arquivo de áudio de gravação de chamadas representado como tipo de mídia da Internet | 

## Como conceder permissões do bucket do Amazon S3
<a name="grant-s3-perms"></a>

Seu bucket Amazon S3 de destino deve pertencer à mesma AWS conta do seu aplicativo. Além disso, a ação deve conceder permissão `s3:PutObject` e `s3:PutObjectAcl` à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime, `voiceconnector.chime.amazonaws.com`. O exemplo a seguir concede a permissão apropriada. 

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

------

O serviço de áudio PSTN lê e grava no bucket do S3 em nome da aplicação de mídia Sip. Para evitar o [problema do substituto confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), você pode restringir as permissões do bucket do S3 a um único aplicativo de mí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"
                }
            }
        }
    ]
}
```

------

## Resposta bem-sucedida da ação
<a name="action-successful"></a>

Quando a gravação da chamada é iniciada com sucesso em um trecho de chamada, o aplicativo de mídia SIP invoca uma AWS Lambda função com o `ACTION_SUCCESSFUL` tipo de evento. A localização da gravação da chamada é retornada na resposta. 

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

## Resposta de erro da ação
<a name="action-error"></a>

Para erros de validação, o aplicativo de mídia SIP chama a AWS Lambda função com a mensagem de erro apropriada. A seguinte tabela lista as mensagens de erro.




| Erro | Mensagem | Motivo | 
| --- | --- | --- | 
| `InvalidActionParameter` | O parâmetro `CallId` para a ação é inválido | Qualquer parâmetro é inválido. | 
| `SystemException` | Erro do sistema ao executar uma ação. | Ocorreu outro tipo de erro do sistema na execução de uma ação. | 

Quando a ação falha ao gravar a mídia em um trecho de chamada, o aplicativo de mídia SIP invoca uma função AWS Lambda com o tipo de evento `ActionFailed`. 

O exemplo a seguir mostra uma resposta de erro 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": {
        ...
    }
}
```

Veja um exemplo prático em GitHub: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)