

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 指定回應 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 函數。

只有在清單上的所有動作都成功`ACTION_SUCCESSFUL`時，SIP 媒體應用程式才會傳回 。如果清單中的任何動作失敗，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"
            }
        ]
    }
}
}
```