How do I get the user's call duration?
During a call, a user may join and leave a Video SDK 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 Video SDK or Agora Analytics to get a user's call duration.
Implementation
Use the Agora Video SDK
By design, the SDK triggers the onRtcStats
callback after a user successfully joins a Video SDK 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 Video SDK 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 theonRtcStats
callback. - Objective-C: The
duration
parameter of thereportRtcStats
callback. - Javascript: The
Duration
parameter of theClient.getSessionStats
method.
If the connection is lost under poor network conditions, the calculated duration maybe inaccurate. Use Agora Signaling 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 Video 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.