Skip to main content
Quick Reference for AI Agents & Developers
// Configure call settings with recording
val callSettings = CallSettingsBuilder(this, videoContainer)
    .setSessionId(sessionId)
    .showCallRecordButton(true)
    .startRecordingOnCallStart(false)
    .build()

// Start recording manually
CallManager.getInstance().startRecording()

// Stop recording
CallManager.getInstance().stopRecording()
Available via: SDK | Dashboard
This section guides you through implementing the call recording feature for voice and video calls.

Implementation

Once you have decided to implement Default Calling or Direct Calling and followed the steps to implement them, a few additional listeners and methods will help you quickly implement call recording in your app. You need to make changes in the CometChat.startCall method and add the required listeners for recording. Make sure your callSettings is configured accordingly for Default Calling or Direct Calling. Here is a basic example of how to implement recording for a direct/default call:
CallSettings callSettings = new CallSettings.CallSettingsBuilder(CallActivity.this, rlCallView)
  .setSessionId(sessionId)
  .showCallRecordButton(true)
  .build();

CometChat.startCall(callSettings, new CometChat.OngoingCallListener() {
  @Override
  public void onRecordingStarted(User user) {

  }

  @Override
  public void onRecordingStopped(User user) {

  }
});    

Settings for call recording

The CallSettings class allows you to customize the overall calling experience. The properties for the call/conference can be set using the CallSettingsBuilder class. This gives you an object of the CallSettings class which you can pass to the startCall() method to start the call. The options available for recording calls are:
SettingDescription
showCallRecordButton(boolean showCallRecordButton)If set to true it displays the Recording button in the button Layout. if set to false it hides the Recording button in the button Layout. Default value = false
startRecordingOnCallStart(boolean startRecordingOnCallStart)If set to true call recording will start as soon as the call is started. if set to false call recording will not start as soon as the call is started. Default value = false

Start Recording

You can use the startRecording() method to start call recording.
CallManager.getInstance().startRecording();  

Stop Recording

You can use the stopRecording() method to stop call recording.
CallManager.getInstance().stopRecording();    

Best Practices

Always notify participants when recording starts or stops. Use the onRecordingStarted() and onRecordingStopped() callbacks to display visual indicators (e.g., a red recording icon) in your UI.
Ensure your app has the necessary permissions to record audio and video. Request permissions at runtime and handle cases where users deny recording permissions.
Only enable startRecordingOnCallStart(true) when required by your use case (e.g., compliance, training). For most applications, let users manually control recording to respect privacy.
Recordings are stored on CometChat servers and can be accessed from the Dashboard. Inform users where they can find their recordings after the call ends.

Next Steps