CDR 日志事件参考

AWS

对于日志 Webhook 发送的 cdr_logged 事件,payload 对象包含电话集成处理的呼叫详情记录 (CDR) 事件的相关数据。 CDR 事件的 payload 对象包含以下属性。

表 1. CDR webhook 有效载荷对象的属性

属性

Type

描述

primary_phone_number

string

拨打的电话号码。

global_session_id

string

唯一会话标识符。

failure_occurred

boolean

通话过程中是否发生故障。

failure_details

string

发生故障的详细信息。

transfer_occurred

boolean

是否尝试过呼叫转移。

active_calls

编号

通话开始时的通话次数。

x-global-sip-trunk-call-id

string

从初始 SIP INVITE 请求中提取的 SIP 中继呼叫 ID 标头的值。 支持以下 SIP 中继呼叫 ID 标头: \n - X-Twilio-CallSid \n - X-SID \n - X-Global-SIP-Trunk-Call-ID

call

对象

通话信息。 请参阅 call

session_initiation_protocol

对象

与 SIP 协议相关的详细信息。 请参阅 session_initiation_protocol

max_response_milliseconds

对象

通话期间使用服务的最大延迟。 请参阅 max_response_milliseconds

assistant_interaction_summaries

数组

有关通话期间与AI助手互动的详细信息。 参见 assistant_interaction_summaries

injected_custom_data

对象

cdr_custom_data 上下文变量中提取的一组键/值对。

warnings_and_errors

数组

通话过程中记录的警告或错误。 请参阅 warnings_and_errors

realtime_transport_network_summary

对象

inbound_stream 对象中的入站数据流统计信息,以及 outbound_stream 对象中的出站数据流统计信息。 仅在启用 RTCP 时才包括在内。 请参见 realtime_transport_network_summary

call

call 对象包含以下属性。

表 2. call 对象的属性

属性

Type

描述

start_timestamp

字符串

呼叫开始的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

stop_timestamp

字符串

通话结束的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

milliseconds_elapsed

编号

呼叫持续时间,毫秒。

end_reason

string

通话结束的原因。 可能的原因包括:\n - 转接失败 \n - 转接方挂断 \n - 主叫方挂断 \n - 失败

security.media_encrypted

布尔值

介质是否加密。

security.signaling_encrypted

布尔值

SIP 信令是否加密。

security.sip_authenticated

布尔值

是否使用 SIP 身份验证来验证呼叫者。

session_initiation_protocol

session_initiation_protocol 对象包含以下属性。

表 3. session_initiation_protocol 对象的属性

属性

Type

描述

invite_arrival_timestamp

字符串

INVITE 请求到达的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

setup_milliseconds

编号

建立呼叫所需的时间,毫秒。 从收到初始 SIP INVITE 请求到收到最终 SIP ACK 请求之间的时间。

headers.call_id

字符串

从与呼叫相关的 SIP Call-ID 标头字段中提取的 SIP INVITE 标头字段。

headers.from_uri

字符串

来自初始 SIP INVITE From 标头的 SIP URI。

headers.to_uri

字符串

来自初始 SIP INVITE To 标头的 SIP URI。

assistant_interaction_summaries

assistant_interaction_summaries 对象包含以下属性。

表 4. assistant_interaction_summaries 对象的属性

属性

Type

描述

assistant_id

字符串

AI 助手的唯一标识符。

session_id

字符串

会话的唯一标识符。

turns

数组

一个描述对话过程中AI助手交互情况的对象数组。 参见 [assistant_interaction_summaries.turns[]](#cdr-log-reference-turns)。

assistant_interaction_summaries.turns[]

assistant_interaction_summaries.turns 数组中的对象包含以下属性。

表 5. assistant_interaction_summaries.turns [] 数组中对象的属性

属性

Type

描述

assistant.log_id

字符串

记录事件的唯一标识符,可用于关联消息日志和 CDR 事件。

assistant.start_timestamp

字符串

AI 助手发送请求的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

assistant.response_milliseconds

编号

从发送请求到收到助手响应的时间(毫秒)。

request

对象

发送给AI助手的请求。 参见 [assistant_interaction_summaries.turns[].request](#cdr-log-reference-request)。

response

数组

与请求相关联的 response 对象数组。

assistant_interaction_summaries.turns[].request

assistant_interaction_summaries.turns[].request 对象包含以下属性。

表 6. assistant_interaction_summaries.turns [].request 对象的属性

属性

Type

描述

type

字符串

请求类型:\n - start: 向 AI 助手发送初始请求 \n - speech_to_text: 从 Speech to Text 服务接收输入 \n - dtmf: DTMF 采集完成 \n - sms: 收到呼叫方发送的短信 \n - post_response_timeout: 响应后计时器超时 \n - redirect: 呼叫被重定向 \n - transfer: 呼叫被转接 \n - transfer_failed: 呼叫转接失败 \n - final_utterance_timeout: 最终语音时限到期 \n - no_input_turn: no input turn 被启用 \n - sms_failure: 无法向呼叫方发送短信 \n - speech_to_text_result_filtered: 因置信度较低而过滤某条语音 \n - mrcp_recognition_unsuccessful: MRCP 识别在未收到最终语音的情况下完成 \n - network_warning: 检测到网络错误 \n - media_capability_change: 通话过程中媒体功能发生变化。

streaming_statistics

对象

与“ Speech to Text ”认证相关的信息和统计数据。 参见 [assistant_interaction_summaries.turns[].request.streaming_statistics](#cdr-log-reference-request-streaming_statistics)。

assistant_interaction_summaries.turns[].request.streaming_statistics

assistant_interaction_summaries.turns[].request.streaming_statistics 对象包含以下属性。

表 7. assistant_interaction_summaries.turns [].streaming_statistics 对象的属性

属性

Type

描述

transaction_id

字符串

交易的唯一标识符。

start_timestamp

字符串

交易开始的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

stop_timestamp

字符串

交易结束的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

response_milliseconds

编号

从检测到呼叫者语音中出现静默到收到 AI 助手的最终结果之间的时间延迟(以毫秒为单位)。

echo_detected

布尔值

是否检测到回音。

confidence

编号

最终语音的可信度得分。

assistant_interaction_summaries.turns[].response

assistant_interaction_summaries.turns[].response 对象包含以下属性。

表 8. assistant_interaction_summaries.turns [].response 对象的属性

属性

Type

描述

type

字符串

响应类型:\n - text_to_speech: 向呼叫方播放语音的命令 \n - sms : 向呼叫方发送短信的命令 \n - url: 向呼叫方播放音频文件的命令 \n - transfer: 转接通话的命令 \n - text_to_speech_config: 更改 Text to Speech 设置的命令 \n - speech_to_text_config: 更改 Speech to Text 设置的命令 \n - pause_speech_to_text: 停止语音识别的命令 \n - unpause_speech_to_text: 启动语音识别的命令 \n - pause_dtmf: 停止处理传入 DTMF 信号的命令 \n - unpause_dtmf: unpause_dtmf:启动处理传入 DTMF 信号的命令 \n - enable_speech_barge_in: 启用语音插话功能的命令,使呼叫者可以通过说话中断播放 \n - disable_speech_barge_in: 禁用语音插话的命令,确保在音频播放期间呼叫者说话时不会中断播放 \n - enable_dtmf_barge_in: 启用 DTMF 插话的命令,使呼叫者可以通过按键中断电话集成中的播放 \n - disable_dtmf_barge_in: 禁用 DTMF 插话的命令,确保呼叫者按键时不会中断电话集成中的播放 \n - dtmf: 向呼叫方发送 DTMF 信号的命令 \n - hangup: 挂断通话的命令 \n 请参阅 CDR 与 AI 助手响应类型的映射

barge_in_occurred

布尔值

是否在该回合中发生了闯入事件。

streaming_statistics

对象

Text to Speech 的合成和播放相关的信息和统计数据。 参见 [assistant_interaction_summaries.turns[].response.streaming_statistics](#cdr-log-reference-response-streaming_statistics)。

CDR 与 AI 助手响应类型的映射

type 属性的值对应于 AI 助手的响应类型。

CDR 响应类型

AI 助手回复类型

text_to_speech

text

url

audio

dtmf

dtmf, command_info.type : send

sms

user_defined, vgwAction.command : vgwActSendSMS

transfer

connect_to_agent

text_to_speech_config

text_to_speech, command_info.type : configure

speech_to_text_config

speech_to_text, command_info.type : configure

unpause_speech_to_text

start_activities, type:speech_to_text_recognition

pause_speech_to_text

stop_activities, type:speech_to_text_recognition

unpause_dtmf

start_activities, type:dtmf_collection

pause_dtmf

stop_activities, type:dtmf_collection

enable_speech_barge_in

text_to_speech, command_info.type : enable_barge_in

disable_speech_barge_in

text_to_speech, command_info.type : disable_barge_in

enable_dtmf_barge_in

dtmf, command_info.type : enable_barge_in

disable_dtmf_barge_in

dtmf, command_info.type : disable_barge_in

hangup

end_session

assistant_interaction_summaries.turns[].response.streaming_statistics

assistant_interaction_summaries.turns[].response.streaming_statistics 对象包含以下属性。

表9。 assistant_interaction_summaries.turns [] 对象的属性。 response.streaming_statistics

属性

Type

描述

transaction_id

字符串

交易的唯一标识符。

start_timestamp

字符串

交易开始的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

stop_timestamp

字符串

交易结束的时间,采用 ISO 格式 (yyyy-MM-ddTHH:mm:ss.SSSZ)。

response_milliseconds

编号

从文本指令发送给 AI助手到手机端接收到第一包合成音频之间的时间(以毫秒为单位)。

warnings_and_errors

warnings_and_errors 对象包含调用过程中记录的警告和错误,按发生顺序排列。 包括针对以下情况的警告。

  • 根据置信度得分阈值筛选出语篇时的信息。

  • Text to Speech 下溢,即当 Text to Speech 的合成速度跟不上手机集成流媒体的传输速率时,音频可能会出现卡顿。

  • 如果启用了 RTCP,RTP 网络警告,如高丢包率或高平均抖动。

下面的示例显示了 warnings_and_errors 对象的结构:

  "warnings_and_errors": [
    {
      "message": "CWSMR0032W: A Watson Speech to Text final utterance has a confidence score of 0.1, which does not meet the confidence score threshold of 0.2. The utterance will be ignored.",
      "id": "CWSMR0032W"
    },
    {
      "message": "CWSMR0031W: The synthesis stream from the Watson Text-to-Speech service can't keep up with the playback rate to the caller, so audio might skip. transaction ID=a1b2c3d4e5",
      "id": "CWSMR0031W"
    }
  ]

每个警告的对象都包含以下属性。

表 10. warnings_and_errors 对象的属性

属性

Type

描述

message

字符串

警告信息文本。

id

字符串

唯一的信息标识符。

max_response_milliseconds

max_response_milliseconds 对象包含以下属性。

表 11. max_response_milliseconds 对象的属性

属性

Type

描述

assistant

编号

最大往返延迟(以毫秒为单位),根据与该通话相关的所有 AI 助手请求计算得出。

text_to_speech

编号

从文本语音指令发送至 Text to Speech 服务,到手机集成接收第一包合成音频之间的时间上限(以毫秒为单位)。 该值是根据与该调用相关的所有 Text to Speech 请求计算得出的。

speech_to_text

编号

从检测到呼叫方语音中出现静默到收到 Speech to Text 服务的最终结果之间,最长延迟(以毫秒为单位)。 该值是根据与该通话相关的所有 Speech to Text 识别结果计算得出的。

realtime_transport_network_summary

启用 RTCP 后,realtime_transport_network_summary 对象将在 inbound_stream 对象中提供入站数据流的统计信息,并在 outbound_stream 对象中提供出站数据流的统计信息。

下面的示例显示了 realtime_transport_network_summary 对象的结构。

"realtime_transport_network_summary": {
  "inbound_stream": {
    "maximum_jitter": 5,
    "average_jitter": 1,
    "packets_lost": 0,
    "packets_transmitted": 1000,
    "canonical_name": "user@example.com",
    "tool_name": "User SIP Phone"
   },
  "outbound_stream": {
    "maximum_jitter": 5,
    "average_jitter": 1,
    "packets_lost": 0,
    "packets_transmitted": 2000,
    "canonical_name": "voice.gateway@127.0.0.1",
    "tool_name": "IBM Voice Gateway/1.0.0.5"
   }
}

每个数据流的对象都包含以下属性。

表 12. `realtime_transport_network_summary` 对象的属性

属性

Type

描述

maximum_jitter

编号

通话过程中的最大抖动。

average_jitter

编号

在通话过程中计算出的平均抖动。

packets_lost

编号

估计通话过程中丢失的数据包数量。

packets_transmitted

编号

估计通话期间传输的数据包总数。

canonical_name

字符串

数据流发送方的唯一标识符,通常采用 @ 格式。

tool_name

字符串

数据流来源的应用程序或工具名称。 对于电话集成,默认值为 IBM Voice Gateway/