

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menentukan tindakan dalam menanggapi peristiwa telepon untuk layanan audio Amazon Chime SDK PSTN
<a name="use-case-2"></a>

Di Layanan Audio, aplikasi media SIP memanggil AWS Lambda fungsi. *Pada gilirannya, fungsi Lambda dapat mengembalikan daftar instruksi yang dikenal sebagai tindakan.* Tindakan adalah item yang ingin Anda jalankan di kaki panggilan telepon, seperti mengirim atau menerima digit, bergabung dengan rapat, dan sebagainya. Untuk informasi selengkapnya tentang tindakan yang dipanggil oleh layanan audio PSTN, lihat. [Memahami peristiwa telepon untuk layanan audio Amazon Chime SDK PSTN](pstn-invocations.md)

Ketika aplikasi media SIP berhasil menjalankan daftar tindakan, aplikasi memanggil AWS Lambda fungsi dengan jenis acara pemanggilan. `ACTION_SUCCESSFUL` Jika salah satu tindakan gagal diselesaikan, aplikasi media SIP memanggil AWS Lambda fungsi dengan `ACTION_FAILED` acara tersebut.

Aplikasi media SIP hanya kembali `ACTION_SUCCESSFUL` jika semua tindakan dalam daftar berhasil. Jika salah satu tindakan dalam daftar gagal, aplikasi media SIP memanggil AWS Lambda fungsi dengan `ACTION_FAILED` acara tersebut dan menghapus tindakan yang tersisa dalam daftar setelah yang gagal. Kemudian aplikasi media SIP menjalankan tindakan berikutnya yang dikembalikan oleh AWS Lambda fungsi. Anda menggunakan `ActionData` kunci untuk mengidentifikasi panggilan mana yang memanggil fungsi.

Peristiwa berikut menunjukkan payload sampel untuk jenis acara `ACTION_SUCCESSFUL` pemanggilan setelah tindakan. `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"
                }
            ]
        }
    }
}
```

Ketika tindakan apa pun dalam daftar gagal diselesaikan dengan sukses, aplikasi media SIP memanggil AWS Lambda fungsi untuk memberi tahu Anda tentang kegagalan tersebut, dan untuk mendapatkan serangkaian tindakan baru untuk dijalankan pada panggilan itu. Peristiwa berikut menunjukkan payload sampel untuk jenis acara `ACTION_FAILED` pemanggilan setelah tindakan. `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"
            }
        ]
    }
}
}
```