你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

管理通话持续时间

为开发人员提供在通话启动时以编程方式触发和跟踪事件的功能。 捕获通话的发起使企业能够执行关键的工作流,包括记录通话元数据、启动持续时间跟踪计时器或触发用户界面更新以反映实时通话状态。

开始时间

“通话开始时间事件”功能使开发人员能够捕获和利用发起通话的确切时间。 通过订阅这些事件,开发人员可以获得有价值的见解并在各种用例中应用这些见解,例如性能跟踪和用户体验提升等等。

用例

增强的用户体验

开发人员可以使用通话开始时间实时向用户显示通话持续时间,通过提供用户通话时间的透明度来改善用户体验。

示例:在视频会议应用中,UI 可以显示活动的通话计时器,显示参与者参加会议的时长,从而提高用户参与度。

通过通话开始时间 API 事件,开发人员可以构建更可靠、功能更丰富的应用程序,以改善用户体验、确保合规性并支持详细的性能监视。

性能和监视分析

通过检索通话开始时间,开发人员可以测量通话持续时间并与监视系统集成,以分析通话的性能。 此信息对于识别通话质量问题、优化网络性能以及了解用户行为至关重要。

示例:客户服务中心可以跟踪代理在通话中停留的时间,并确定与通话持续时间相关的趋势,从而改进资源管理。

先决条件

获取通话开始时间

若要检索通话开始时间,请在 CommonCall 对象上订阅 addOnStartTimeUpdatedListener。 开始时间将作为 Date 对象返回,指示何时启动通话。

CommonCall call;
PropertyChangedListener onStartTimeUpdated = this::OnStartTimeUpdated;

// subscribe to start time updated
call.addOnStartTimeUpdatedListener(onStartTimeUpdated);

// get start time
private void OnStartTimeUpdated(PropertyChangedEvent propertyChangedEvent) {
    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    dateFormatter.setTimeZone(TimeZone.getDefault());
    String dateString = dateFormatter.format(call.getStartTime());
    // dateString with dateFormatter
}

// unsubscribe to start time updated
call.removeOnStartTimeUpdatedListener(onStartTimeUpdated);

获取通话开始时间

若要检索通话开始时间,请设置 CallDelegate 上的 didUpdateStartTime。 开始时间将作为 Date 对象返回,指示何时启动通话。

class CallObserver : NSObject, CallDelegate
{
    // subscribe to didUpdateStartTime
    public func call(_ call: Call, didUpdateStartTime args: PropertyChangedEventArgs) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        dateFormatter.timeZone = TimeZone.current
        let dateString = dateFormatter.string(from: call.startTime)
        print("==> didUpdateStartTime for call: \(dateString)")
    }
}

// set call delegate
call.delegate = CallObserver()

获取通话开始时间

若要检索通话开始时间,请在 CommonCommunicationCall 对象上订阅 StartTimeUpdated。 开始时间将作为 DateTimeOffset 对象返回,指示何时启动通话。

CommonCommunicationCall call;

// subscribe to start time updated
call.StartTimeUpdated += Call_OnStartTimeUpdated;

private async void Call_OnStartTimeUpdated(object sender, PropertyChangedEventArgs args)
{
    // call.StartTime
}

// unsubscribe to start time updated
call.StartTimeUpdated -= Call_OnStartTimeUpdated;

后续步骤