指定 Amazon Chime SDK PSTN 音频服务响应电话事件的操作 - Amazon Chime SDK

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

指定 Amazon Chime SDK PSTN 音频服务响应电话事件的操作

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

当 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" } ] } } }