通知
本站点除 Legacy 产品与方案外,已迁移至 声网新文档中心 ,当前页面不再维护
Documentation
All
Console 官网 Community Technical support

How do I get the user's call duration?

Type: Integration issues    Platform: All Platforms   Last Updated: 2022/09/15 02:19:50

Introduction

During a call, a user may join and leave a RTC channel for multiple times, and the user's call duration is the actual time when the user is in the channel. You can use the the Agora RTC SDK or Agora Analytics to get a user's call duration.

Implementation

Use the Agora RTC SDK

By design, the SDK triggers the onRtcStats callback after a user successfully joins a RTC channel. To get the duration between each channel-join and channel-leave, use the totalDuration parameter of the last onRtcStats callback triggered before the user leaves the channel. If a user joins and leaves a RTC channel for multiple times, you can calculate the user's call duration by adding up the values of totalDuration.

The above callback is in Java. For other programming languages, use the following parameters to get the user's call duration:
  • C++: The duration parameter of the onRtcStats callback.
  • Objective-C: The duration parameter of the reportRtcStats callback.
  • Javascript: The Duration parameter of the Client.getSessionStats method.
  • If the connection is lost under poor network conditions, the calculated duration maybe inaccurate. Use Agora RTM SDK or a different signaling system to implement a heartbeat mechanism, and get the disconnected time of the client. You can calculate the user's call duration by subtracting the disconnected time of the client from the call duration obtained from the Agora RTC SDK.

    Use Agora Analytics

    On the Call Search page of Agora Analytics, you can find a user's call duration in the In-call Periods column. See Call Search.