> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-013b37f0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Recording(Beta)

This section will guide you to implement call recording feature for the voice and video calls.

## Implementation

Once you have decided to implement [Direct Calling](/sdk/ionic/direct-call) followed the steps to implement them. Just few additional listeners and methods will help you quickly implement call recording in your app.

You need to make changes in the `CometChatCalls.startSession()` method and add the required listeners for recording. Please make sure your callSettings is configured accordingly for [Direct Calling](/sdk/ionic/direct-call).

A basic example of how to make changes to implement recording for a direct call/ a default call:

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={null}
    import { CometChatCalls } from '@cometchat/calls-sdk-ionic';

    const audioOnly = false;
    const defaultLayout = true;
    const showRecordingButton = true;

    const callListener = new CometChatCalls.OngoingCallListener({
      onRecordingStarted: (event) => {
        console.log("Call recording started:", event);
      },
      onRecordingStopped: (event) => {
        console.log("Call recording stopped:", event);
      }
    });

    const callSettings = new CometChatCalls.CallSettingsBuilder()
      .enableDefaultLayout(defaultLayout)
      .setIsAudioOnlyCall(audioOnly)
      .showRecordingButton(showRecordingButton)
      .setCallEventListener(callListener)
      .build();

    // Start the call using `startSession` method of `CometChatCalls`
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={null}
    import { CometChatCalls } from '@cometchat/calls-sdk-ionic';
    import { CallSettings } from '@cometchat/calls-sdk-ionic/dist/models/CallSettings';
    import { OngoingCallListener } from '@cometchat/calls-sdk-ionic/dist/models/Listner';

    const audioOnly = false;
    const defaultLayout = true;
    const showRecordingButton = true;

    const callListener: OngoingCallListener = new CometChatCalls.OngoingCallListener({
      onRecordingStarted: (event) => {
        console.log("Call recording started:", event);
      },
      onRecordingStopped: (event) => {
        console.log("Call recording stopped:", event);
      }
    });

    const callSettings: CallSettings = new CometChatCalls.CallSettingsBuilder()
      .enableDefaultLayout(defaultLayout)
      .setIsAudioOnlyCall(audioOnly)
      .showRecordingButton(showRecordingButton)
      .setCallEventListener(callListener)
      .build();

    // Start the call using `startSession` method of `CometChatCalls`
    ```
  </Tab>
</Tabs>

## Settings for call recording

The `CallSettings` class allows you to customise the overall calling experience. The properties for the call/conference can be set using the `CallSettingsBuilder` class. This will eventually give you an object of the `CallSettings` class which you can pass to the `startSession()` method to start the call.

The options available for recording of calls are:

| Setting                                                         | Description                                                                                                                                                                          |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `showRecordingButton(showRecordingButton: boolean)`             | 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(startRecordingOnCallStart: boolean)` | 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** |

## Downloading Recording

Currently, the call recordings are available on the [CometChat Dashboard](https://app.cometchat.com) under the Calls Section. You can refer to the below screenshot.

<Frame>
  <img src="https://mintcdn.com/cometchat-013b37f0/Fw6iDNWlWr8nzo9v/images/f95175df-1s26s11czkienxtcr5jp0e6cxp4bwbogqlcnd0d75bcg6cd2koxbw5ceisj0ygep-5b58e8c9377ee9bac1626a390525d975.png?fit=max&auto=format&n=Fw6iDNWlWr8nzo9v&q=85&s=b69d4e0b9489cf7a933b915786b8beae" width="3148" height="2400" data-path="images/f95175df-1s26s11czkienxtcr5jp0e6cxp4bwbogqlcnd0d75bcg6cd2koxbw5ceisj0ygep-5b58e8c9377ee9bac1626a390525d975.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/cometchat-013b37f0/awGGFw_rxAqc8o4X/images/9efba7cd-reu41ertm4ukyva9zcpiwioffws49ni9xe2q6olmbozpd4h1gxudydj41dc25dj3-4eb5d3cce059b21d7a1add99427296dd.png?fit=max&auto=format&n=awGGFw_rxAqc8o4X&q=85&s=a97c092543b9403099fd68b719a37813" width="3148" height="2400" data-path="images/9efba7cd-reu41ertm4ukyva9zcpiwioffws49ni9xe2q6olmbozpd4h1gxudydj41dc25dj3-4eb5d3cce059b21d7a1add99427296dd.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/cometchat-013b37f0/qPj1u-01bVacwjS9/images/c36b29a8-bbso1h0thwtp4yp0z8yvomzie7oluzx2vetlll5rabm7z24tgp9d94ndu2r6nygk-aad037f6953c6ba50729c8e00da500ef.png?fit=max&auto=format&n=qPj1u-01bVacwjS9&q=85&s=406eb4b1139a4262de39b7f38aceb880" width="3148" height="2400" data-path="images/c36b29a8-bbso1h0thwtp4yp0z8yvomzie7oluzx2vetlll5rabm7z24tgp9d94ndu2r6nygk-aad037f6953c6ba50729c8e00da500ef.png" />
</Frame>
