如何通过communications/callRecords/getPstnCalls端点判断Teams PSTN通话状态?
判断Teams PSTN通话接听状态的方法
针对你使用communications/callRecords/getPstnCalls端点生成客服通话统计的需求,可以通过以下字段组合判断通话的接听、拒接或转语音信箱状态:
1. 人工座席接听的判定
- 核心依据:
connectionDuration字段值大于0,且targets数组中存在类型为user的目标(即座席账号)。 - 辅助验证:
callEndReason为userHungUp或peerHungUp,说明通话是在人工接听后正常挂断的。 - 注意:如果通话存在转接(比如从IVR转到座席),需要查看
targets数组的顺序,确认最终连接的目标是人工用户而非语音信箱。
2. 通话被拒接的判定
- 当
callEndReason为declined或busy,同时connectionDuration为0时,可判定为通话被直接拒接或因座席忙线未接听。 - 部分场景下,
targets数组中对应座席的状态会标注declined,可作为补充佐证。
3. 转语音信箱的判定
- 直接标识:
callEndReason为forwardedToVoicemail时,明确是通话被转至语音信箱。 - 间接判断:
targets数组中包含类型为voicemail的目标,且connectionDuration较短(或为0),说明呼叫未被人工接听直接转至语音信箱。 - 额外参考:
recorded字段为true时,大概率是语音信箱录制了留言,但需结合其他字段避免误判(比如人工通话也可能开启录音)。
进阶补充:获取更精准的通话细节
如果getPstnCalls返回的字段不足以覆盖复杂场景(比如多次转接的通话),可以调用communications/callRecords/{callRecordId}端点获取完整通话记录,其中的segments数组会记录通话每个阶段的目标、时长和状态,能更精准拆分人工接听、转语音信箱等环节。
内容的提问来源于stack exchange,提问作者sreimer
相关产品推荐
相关产品推荐

