

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.

# Especificación de acciones en respuesta a eventos de telefonía para el servicio de audio de Amazon Chime SDK PSTN
<a name="use-case-2"></a>

En el servicio de audio, las aplicaciones multimedia SIP invocan AWS Lambda funciones. A su vez, una función de Lambda puede devolver una lista de instrucciones conocidas como *acciones*. Una acción es un elemento que se desea ejecutar en un tramo de una llamada telefónica, como enviar o recibir dígitos, unirse a una reunión, etc. Para obtener más información sobre las acciones que invoca el servicio de audio PSTN, consulte [Descripción de los eventos de telefonía para el servicio de audio PSTN de Amazon Chime SDK](pstn-invocations.md).

Cuando una aplicación multimedia SIP ejecuta correctamente una lista de acciones, la aplicación llama a la AWS Lambda función con un tipo de evento de invocación de. `ACTION_SUCCESSFUL` Si alguna de las acciones no se completa, la aplicación multimedia SIP llama a la AWS Lambda función con el `ACTION_FAILED` evento.

La aplicación multimedia SIP solo devuelve `ACTION_SUCCESSFUL` si todas las acciones de la lista se han realizado correctamente. Si alguna de las acciones de la lista falla, la aplicación multimedia SIP invoca la AWS Lambda función con el `ACTION_FAILED` evento y borra las acciones restantes de la lista después de la fallida. A continuación, la aplicación multimedia SIP ejecuta la siguiente acción devuelta por la AWS Lambda función. La clave `ActionData` se utiliza para identificar qué llamada ha invocado la función.

El siguiente evento muestra un ejemplo de carga útil para el tipo de evento de invocación `ACTION_SUCCESSFUL` después de una acción `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"
                }
            ]
        }
    }
}
```

Cuando alguna acción de una lista no se completa correctamente, la aplicación multimedia SIP invoca la AWS Lambda función para notificarle el error y ejecutar un nuevo conjunto de acciones en esa llamada. El siguiente evento muestra un ejemplo de carga útil para el tipo de evento de invocación `ACTION_FAILED` después de una acción `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"
            }
        ]
    }
}
}
```