

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 指定 Amazon Chime SDK PSTN 音频服务响应电话事件的操作
<a name="use-case-2"></a>

在音频服务中，SIP 媒体应用程序调用 AWS Lambda 功能。反过来，Lambda 函数可以返回称为*操作*的指令列表。操作是您要在电话呼叫分支上运行的项目，例如发送或接收数字、加入会议等。有关 PSTN 音频服务调用的操作的更多信息，请参阅 [了解 Amazon Chime SDK PSTN 音频服务的电话事件](pstn-invocations.md)。

当 SIP 媒体应用程序成功运行操作列表时，该应用程序调用该 AWS Lambda 函数的调用事件类型为。`ACTION_SUCCESSFUL`如果任何操作未能完成，SIP 媒体应用程序将使用该`ACTION_FAILED`事件调用该 AWS Lambda 函数。

仅当列表中的所有操作都成功时，SIP 媒体应用程序才会返回 `ACTION_SUCCESSFUL`。如果列表中的任何操作失败，SIP 媒体应用程序将使用该`ACTION_FAILED`事件调用该 AWS Lambda 函数，并在失败的操作之后清除列表中的其余操作。然后，SIP 媒体应用程序运行该 AWS Lambda 函数返回的下一个操作。您可以使用 `ActionData` 密钥识别呼叫调用的函数。

以下事件显示了 `PlayAudioAndGetDigits` 操作后 `ACTION_SUCCESSFUL` 调用事件类型的示例有效负载。

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

当列表中的任何操作未能成功完成时，SIP 媒体应用程序会调用该 AWS Lambda 函数来通知您失败，并在该呼叫上运行一组新的操作。以下事件显示了 `PlayAudio` 操作后 `ACTION_FAILED` 调用事件类型的示例有效负载。

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