了解 Amazon Chime SDK 的通话录音工作流程 - Amazon Chime SDK

了解 Amazon Chime SDK 的通话录音工作流程

本节中的主题列出并描述了录制通话和 Kinesis 视频流的工作流程。

在以下情况下使用此工作流程:

  • 您已经使用或计划使用 Voice Connector 将 SIP 媒体引入呼叫分析。

    注意

    Voice Connector 支持 SIP 和 SIPREC。有关更多信息,请参阅《Amazon Chime SDK 管理员指南》中的管理 Amazon Chime SDK Voice Connector

  • 您想以低延迟自动录制到您选择的 Amazon Simple Storage Service 目的地的 SIP 或 SIPREC 呼叫。

  • 您想使用 Amazon Chime SDK 控制台来创建配置并将其与 Voice Connector 关联。

  • 您想对每个 Voice Connector 呼叫应用相同的录音配置。如果要对一个或多个 Voice Connector 应用多种配置,请参阅下一节。

要启用以编程方式调用,请使用以下 Amazon Chime SDK API。

有关更多信息,请参阅《Amazon Chime SDK 管理员指南》中的配置 Voice Connector 以使用呼叫分析

下图显示了 Voice Connector 启动呼叫录音会话时的数据流。图表中的数字对应于下面的带编号的文本。

该图显示了 Voice Connector 开始录制呼叫时的数据流。

在下图中:

  1. 使用 Amazon Chime SDK 控制台或 CreateMediaInsightsPipelineConfiguration API 创建呼叫分析配置。在配置创建过程中,您只需激活通话录音,选择所需的录音文件格式,然后指定用于存储录音文件的 Amazon S3 目标即可。有关更多信息,请参阅《Amazon Chime SDK 管理员指南》中的创建呼叫分析配置

  2. 您可以使用 Amazon Chime SDK 控制台或 PutVoiceConnectorStreamingConfiguration API 将配置与 Voice Connector 关联起来。要使用控制台,请参阅配置 Voice Connector 以使用呼叫分析

  3. 在拨出呼叫期间,Voice Connector 会接收每个呼叫参与者的音频。

  4. 如果将呼叫分析录音配置附加到 Voice Connector,则 Voice Connector 服务将使用媒体管道服务启动呼叫分析录音会话。

  5. 媒体管道服务启动监视正在进行的呼叫的呼叫录音处理器。

  6. 通话结束后,媒体管道服务会将通话录音文件传送到指定的 Amazon S3 存储桶,并通过 Amazon Kinesis Data Streams 提供录音元数据。如果启用了数据仓库,则呼叫元数据也会进入 Amazon Simple Storage Service 数据仓库。如果使用 SIPREC 将 SIP 音频整合到呼叫分析中,则呼叫元数据会纳入表格格式的 SIPREC 元数据。有关录音表的更多信息,请参阅本节后文中的 了解 Amazon Chime SDK 的 AWS Glue 数据目录表

  7. 媒体管道服务将管道状态事件发送到默认的 Amazon EventBridge。有关更多信息,请参阅本指南中的使用 EventBridge 通知

注意

请注意,您必须启用 Voice Connector 流媒体才能使用 Voice Connector 进行录音。此功能允许将通话数据流式传输到您账户中由 Voice Connector 管理的 Kinesis 视频流。有关更多信息,请参阅《Amazon Chime SDK 管理员指南》中的将 Amazon Chime SDK Voice Connector 媒体流式传输到 Kinesis 视频流

您还可以将 Voice Connector 创建的呼叫数据存储在 Kinesis 视频流中,持续时间各不相同,从几小时到几天甚至几年。选择不保留数据会限制呼叫数据的可用性,便于立即使用。Kinesis 视频流的成本是根据使用的带宽和总存储空间来确定的。您可以随时在 Voice Connector 流媒体配置中调整数据保留期。要启用呼叫分析录音,您必须确保 Kinesis 视频流将数据保留足够长的时间以进行呼叫分析。您可以通过指定合适的数据保留期来达到此目的。

您可以根据需要将呼叫见解管道配置与任意数量的 Voice Connector 相关联。您也可以为每个 Voice Connector 创建不同的配置。Voice Connector 使用 AWSServiceRoleForAmazonChimeVoiceConnector 代表您调用 CreateMediaInsightsPipeline API,每个交易 ID 一次。有关该角色的信息,请参阅《Amazon Chime SDK 管理员指南》中的为 Amazon Chime SDK Voice Connector 使用 Amazon Chime SDK 服务相关角色

在以下情况下,您可以录制 Amazon Kinesis 视频流:

  • 您需要对呼叫应用不同的配置,而不是为每个 Voice Connector 呼叫使用相同的配置。

  • 您想要录制未由 Voice Connector 处理的 SIP 或非 SIP 音频。

要使用此通话录音选项,您需要将音频发布到 Kinesis 视频流(KVS),然后使用 KVS 流频道信息和呼叫分析配置 ARN 调用 CreateMediaInsightsPipeline API。

注意

呼叫分析 API 最多支持两个音频频道。您也可以启用 Voice Connector 流,然后使用 Voice Connector 的 EventBridge 通知中发布的 KVS 信息来启动通话录音。

在调用 CreateMediaInsightsPipeline API 时,您可以选择是否为每个 KVS 流频道定义指定片段编号。如果您提供片段编号,则呼叫分析将开始处理该片段上的流。如果您未指定片段 ID,则呼叫分析将开始处理来自最新可用片段的流。

下图显示了 Voice Connector 启动呼叫录音会话时的数据流。图表中的数字对应于下面的带编号的文本。

该图显示了 Voice Connector 开始录制呼叫时的数据流。

在下图中:

  1. 您可以使用 Amazon Chime SDK 控制台或 CreateMediaInsightsPipelineConfiguration API 来创建通话录音配置。

  2. 使用 AWS SDK 创建可将外部音频推送到 KVS 的应用程序,或者启用 Voice Connector 流式传输将呼叫音频自动发布到 KVS。有关更多信息,请参阅《Amazon Chime SDK 管理员指南》中的将 Amazon Chime SDK Voice Connector 媒体流式传输到 Kinesis 视频流

  3. 如果启用了 Voice Connector 流,则 Voice Connector 服务会将通知发送到默认的 EventBridge。

  4. 如果是 Voice Connector 流式传输,您的应用程序可以使用来自 EventBridge 的 Amazon Chime Voice Connector 流式传输 STARTED 事件来收集有关通话分支的 KVS 流信息。

  5. 当您的应用程序获得来自 Voice Connector 流式传输事件或外部来源的音频信息后,您的应用程序就会调用 Amazon Chime SDK CreateMediaInsightsPipeline API。

  6. 媒体管道服务启动监视正在进行的呼叫的呼叫录音处理器。

  7. 媒体管道服务将管道状态事件发送到默认的 Amazon EventBridge。有关更多信息,请参阅使用 EventBridge 通知

  8. 通话完成后,媒体管道服务会将通话录音文件传送到指定的 Amazon S3 存储桶,并通过 Amazon Kinesis Data Streams 提供录音元数据。如果启用了数据仓库,则呼叫元数据也将发送到 Amazon S3 数据仓库。如果使用 SIPREC 将 SIP 音频整合到呼叫分析中,则呼叫元数据会纳入采用方便表格格式的 SIPREC 元数据。有关录音表的更多信息,请参阅本节后文中的 了解 Amazon Chime SDK 的 AWS Glue 数据目录表

  9. 您的应用程序可以使用发布到 Amazon EventBridge 的事件监控管道,如果是 Voice Connector ,还可以使用发布到 Amazon EventBridge 的事件监控通话状态。有关更多信息,请参阅本指南中的使用 EventBridge 通知

  10. 要终止录音,请调用 DeleteMediaPipeline API 终止通话录音。

有关基于 API 的录制和示例,请参阅本指南中的 Amazon S3 录制接收器

本节中的示例向您说明如何执行以下操作:

  • 使用 CLI 运行呼叫分析配置并调用 CreateMediaInsightsPipeline

  • 使用 CLI 指定录制目标、音频文件格式和音频文件名。

运行配置并启动管道

使用以下命令运行配置并启动媒体见解管道。pipeline.json 文件包含配置设置。

aws chime-sdk-media-pipeline create-media-insights-pipeline --cli-input-json file://pipeline.json

以下示例介绍了典型的 pipeline.json 文件。

{ "MediaInsightsPipelineConfigurationArn": arn:aws:chime:region;account_id:media-insights-pipeline-configuration/MyConfiguration, "KinesisVideoStreamRecordingSourceRuntimeConfiguration": { "Streams": [ { "StreamArn": kinesis_video_stream_arn_1 }, { "StreamArn": kinesis_video_stream_arn_2 } ], "FragmentSelector": { "FragmentSelectorType": "selector_type", // Specify "server_timestamp" or "producer_timestamp" as the fragment selector type "TimestampRange": { "StartTimestamp": epoch_time_seconds, "EndTimestamp": epoch_time_seconds } } }, "S3RecordingSinkRuntimeConfiguration": { "Destination": arn:aws:s3:::bucket_name/prefix/optional_file_name, "RecordingFileFormat": file_format // Specify "Opus" or "WAV" as the recording file format, if you want to override the configuration } }

MediaInsightsPipelineConfigurationArn 是您在创建呼叫分析配置后收到的配置 ARN。

设置目的地、名称和格式

以下示例使用名为 MyRecordingBucket 的文件夹用作 S3SinkConfiguration.Destination 值,将 Opus 用作 RecordingFileFormat 值。

arn:aws:s3:::MyRecordingBucket/voice-connector-id/transaction-id_year-month-date-hour-minute-second-millisecond.ogg

以下示例将 MyRecordingBucket 用作 S3SinkConfiguration.Destination 值,将 Wav 用作 RecordingFileFormat 值。

arn:aws:s3:::MyRecordingBucket/voice-connector-id/transaction-id_year-month-date-hour-minute-second-millisecond.wav