> ## Documentation Index
> Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Calling SDK

> CometChat Calling SDK v4 - Stable Release - Overview for Android. This is the stable v4 documentation. Most users should use this version.

<Note>
  🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/android/overview)
</Note>

## Overview

CometChat provides voice and video calling capabilities for your Android application. This guide helps you choose the right implementation approach based on your use case.

## Prerequisites

1. CometChat SDK installed and configured. See the [Setup](/sdk/android/setup) guide.
2. CometChat Calls SDK added to your project:

```gradle theme={null}
dependencies {
    implementation 'com.cometchat:calls-sdk-android:4.3.3'
}
```

For detailed setup instructions, see the [Calls SDK Setup](/calls/v4/android/setup) guide.

## Choose Your Implementation

CometChat offers three approaches to implement calling:

<CardGroup cols={3}>
  <Card title="Ringing" icon="phone-volume" href="/calls/v4/android/ringing">
    Complete calling flow with incoming/outgoing call UI, accept/reject functionality, and call notifications.
  </Card>

  <Card title="Call Session" icon="video" href="/calls/v4/android/call-session">
    Direct call session management. Use with Ringing flow or for custom call initiation logic.
  </Card>

  <Card title="Standalone Calling" icon="phone-flip" href="/calls/v4/android/standalone-calling">
    Calls SDK only implementation without the Chat SDK dependency.
  </Card>
</CardGroup>

### Ringing

Use this when you need a complete calling experience with:

* Incoming and outgoing call UI
* Call accept/reject/cancel functionality
* Call notifications via push notifications
* Integration with CometChat messaging

**Flow:** Initiate call → Receiver gets notified → Accept/Reject → Start session

[Get started with Ringing →](/calls/v4/android/ringing)

### Call Session

Use this when you need to:

* Start a call session after the Ringing flow completes
* Implement custom call initiation logic with your own UI
* Join participants to a shared session using a session ID

**Flow:** Generate token → Start session → Manage call → End session

[Get started with Call Session →](/calls/v4/android/call-session)

### Standalone Calling

Use this when you want:

* Calling functionality without the Chat SDK
* Your own user authentication system
* Minimal SDK footprint

**Flow:** Get auth token via REST API → Generate call token → Start session

[Get started with Standalone Calling →](/calls/v4/android/standalone-calling)

## Features

<CardGroup cols={2}>
  <Card title="Recording" icon="circle-dot" href="/calls/v4/android/recording">
    Record audio and video calls for playback, compliance, or archival purposes.
  </Card>

  <Card title="Video View Customization" icon="sliders" href="/calls/v4/android/video-view-customisation">
    Customize the video call UI layout, participant tiles, and visual appearance.
  </Card>

  <Card title="Presenter Mode" icon="presentation-screen" href="/calls/v4/android/presenter-mode">
    Enable screen sharing and presentation capabilities during calls.
  </Card>

  <Card title="Call Logs" icon="list" href="/calls/v4/android/call-logs">
    Retrieve and display call history including duration, participants, and status.
  </Card>

  <Card title="Session Timeout" icon="clock" href="/calls/v4/android/session-timeout">
    Configure automatic call termination when participants are inactive.
  </Card>
</CardGroup>
