

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

# Especificar ações em resposta a eventos de telefonia do serviço de áudio PSTN do SDK do Amazon Chime
<a name="use-case-2"></a>

No Serviço de Áudio, os aplicativos de mídia SIP AWS Lambda invocam funções. Por sua vez, as funções do Lambda podem retornar uma lista de instruções conhecidas como *ações*. Uma ação é um item que você deseja executar em uma parte de uma chamada telefônica, como enviar ou receber dígitos, participar de uma reunião, e assim por diante. Para ter mais informações sobre as ações invocadas pelo serviço de áudio PSTN, consulte [Noções básicas sobre eventos de telefonia do serviço de áudio PSTN do SDK do Amazon Chime](pstn-invocations.md).

Quando um aplicativo de mídia SIP executa com êxito uma lista de ações, o aplicativo chama a AWS Lambda função com um evento de invocação do tipo. `ACTION_SUCCESSFUL` Se alguma das ações não for concluída, o aplicativo de mídia SIP chamará a AWS Lambda função com o `ACTION_FAILED` evento.

O aplicativo de mídia SIP só retornará `ACTION_SUCCESSFUL` se todas as ações na lista forem bem-sucedidas. Se alguma das ações na lista falhar, o aplicativo de mídia SIP invoca a AWS Lambda função com o `ACTION_FAILED` evento e limpa as ações restantes na lista após a falha. Em seguida, o aplicativo de mídia SIP executa a próxima ação retornada pela AWS Lambda função. Você usa a chave `ActionData` para identificar qual chamada invocou a função.

O evento a seguir mostra um exemplo de carga útil para o tipo de evento de invocação `ACTION_SUCCESSFUL` após uma ação `PlayAudioAndGetDigits`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": {{3}},
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type": "PlayAudioAndGetDigits",
        "Parameters" : {
            "CallId": "{{call-id-1}}",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "{{bucket-name}}",
                "Key": "{{failure-audio-file.wav}}"
            },
            "FailureAudioSource": {
                "Type": "S3",
                "BucketName": "{{bucket-name}}",
                "Key": "{{failure-audio-file.wav}}"
            },
            "MinNumberOfDigits": {{3}},
            "MaxNumberOfDigits": {{5}},
            "TerminatorDigits": ["{{#}}"],
            "InBetweenDigitsDurationInMilliseconds": {{5000}},
            "Repeat": 3,
            "RepeatDurationInMilliseconds": {{10000}}
        },
        "ReceivedDigits": "{{123}}"
    }
    "CallDetails": {
        "TransactionId": "{{transaction-id}}",
        "AwsAccountId": "{{aws-account-id}}",
        "AwsRegion": "{{us-east-1}}",
        "SipRuleId": "{{sip-rule-id}}",
        "SipApplicationId": "{{sip-application-id}}",
        "Participants": [
            {
                "CallId": "{{call-id-1}}",
                "ParticipantTag": "LEG-A",
                "To": "{{+12065551212}}",
                "From": "{{+15105550101}}",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "{{159700958834234}}",
                "Status": "Connected"
                }
            ]
        }
    }
}
```

Quando qualquer ação em uma lista não é concluída com êxito, o aplicativo de mídia SIP invoca a AWS Lambda função para notificá-lo sobre a falha e fazer com que um novo conjunto de ações seja executado nessa chamada. O evento a seguir mostra o exemplo de carga útil para o tipo de evento de invocação `ACTION_FAILED` após uma ação `PlayAudio`.

```
{
    "SchemaVersion": "1.0",
    "Sequence": {{4}},
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type": "PlayAudio",
        "Parameters" : {
            "CallId": "{{call-id-1}}",
            "AudioSource": {
                "Type": "S3",
                "BucketName": "{{bucket-name}}",
                "Key": "{{audio-file.wav}}"            
            }
        },
        "ErrorType": "InvalidAudioSource",
        "ErrorMessage": "Audio Source parameter value is invalid."
    }
    "CallDetails": {
        "TransactionId": "{{transaction-id}}",
        "AwsAccountId": "{{aws-account-id}}",
        "AwsRegion": "{{us-east-1}}",
        "SipRuleId": "{{sip-rule-id}}",
        "SipApplicationId": "{{sip-application-id}}",
        "Participants": [
            {
                "CallId": "{{call-id-1}}",
                "ParticipantTag": "LEG-A",
                "To": "{{+12065551212}}",
                "From": "{{+15105550101}}",
                "Direction": "Inbound",
                "StartTimeInMilliseconds": "{{159700958834234}}",
                "Status": "Connected"
            }
        ]
    }
}
}
```