> ## 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.

# Call Features

> Add CometChat Angular UI Kit call features for voice and video calls, call logs, ongoing calls, incoming calls, and call buttons.

## Overview

CometChat Calls integrates 1:1 and group audio/video calling into the Angular UIKit. Install the Calls SDK and the UIKit auto-detects it, enabling call components.

<Note>
  Ensure `CometChatUIKit.init()` has completed and the user is logged in before using call features.
</Note>

## Integration

Install the Calls SDK:

```bash theme={null}
npm install @cometchat/calls-sdk-javascript
```

Then enable calling in your `UIKitSettingsBuilder`:

```typescript theme={null}
const settings = new UIKitSettingsBuilder()
  .setAppId('APP_ID')
  .setRegion('REGION')
  .setAuthKey('AUTH_KEY')
  .setCallingEnabled(true)
  .build();
```

<Warning>
  Both steps are required. Installing the Calls SDK alone is not enough — you must also call `.setCallingEnabled(true)` on the builder. Without it, call buttons remain hidden and the Calls SDK is not initialized.
</Warning>

When enabled, [cometchat-call-buttons](/ui-kit/angular/components/cometchat-call-buttons) renders in [cometchat-message-header](/ui-kit/angular/components/cometchat-message-header) and the trailing call button appears in [cometchat-call-logs](/ui-kit/angular/components/cometchat-call-logs).

### Custom Call App Settings

By default the UIKit builds `CallAppSettings` from your `appId` and `region`. If you need custom configuration (e.g. a different region for the Calls SDK or additional settings), pass your own `CallAppSettings`:

```typescript theme={null}
import { CometChatUIKitCalls } from '@cometchat/calls-sdk-javascript';

const callAppSettings = new CometChatUIKitCalls.CallAppSettingsBuilder()
  .setAppId('APP_ID')
  .setRegion('REGION')
  .build();

const settings = new UIKitSettingsBuilder()
  .setAppId('APP_ID')
  .setRegion('REGION')
  .setAuthKey('AUTH_KEY')
  .setCallingEnabled(true)
  .setCallAppSettings(callAppSettings)
  .build();
```

<Info>
  `setCallAppSettings` is optional. When omitted, the UIKit automatically creates settings from the `appId` and `region` you already provided.
</Info>

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b/T-kVUXtubs0NtFU5/images/cf123e9d-calling_call_buttons_web_screens-a0a134d7d742a761689aaebe2d6e71c2.png?fit=max&auto=format&n=T-kVUXtubs0NtFU5&q=85&s=67920eeaf6afd9853ede0296ced165cc" width="1282" height="802" data-path="images/cf123e9d-calling_call_buttons_web_screens-a0a134d7d742a761689aaebe2d6e71c2.png" />
</Frame>

## Features

### Incoming Call

The [cometchat-incoming-call](/ui-kit/angular/components/cometchat-incoming-call) component displays a call screen when a call is received, showing caller info with accept/reject options.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b/NuY3hD_g_g_X-fwH/images/816facad-calling_incoming_call_web_screens-b969721c9da4153958fb08c3b7d7ec3c.png?fit=max&auto=format&n=NuY3hD_g_g_X-fwH&q=85&s=ae6d0131e69e6d5ce26702f3f4032c9b" width="1282" height="802" data-path="images/816facad-calling_incoming_call_web_screens-b969721c9da4153958fb08c3b7d7ec3c.png" />
</Frame>

### Outgoing Call

The [cometchat-outgoing-call](/ui-kit/angular/components/cometchat-outgoing-call) component displays an outgoing call screen with recipient info and call status. Transitions to the ongoing call screen when the receiver accepts.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b/_jsRdrzYcNj1bcHI/images/444a971e-calling_outgoing_call_web_screens-ace6b41a91fe1a23b9e1aaf99e51793e.png?fit=max&auto=format&n=_jsRdrzYcNj1bcHI&q=85&s=8d94d60d7312ab52c3cd881bf5004fab" width="1282" height="802" data-path="images/444a971e-calling_outgoing_call_web_screens-ace6b41a91fe1a23b9e1aaf99e51793e.png" />
</Frame>

### Call Logs

The [cometchat-call-logs](/ui-kit/angular/components/cometchat-call-logs) component displays call history — caller, time, and duration.

<Frame>
  <img src="https://mintcdn.com/cometchat-22654f5b/-ESEkh1kVWNrvtT0/images/68a2bfe8-calling_call_log_web_screens-e16bee4ca9212ac07ca2d21b8a5374bc.png?fit=max&auto=format&n=-ESEkh1kVWNrvtT0&q=85&s=b2f9613f067b9f37021087a6af706424" width="1282" height="802" data-path="images/68a2bfe8-calling_call_log_web_screens-e16bee4ca9212ac07ca2d21b8a5374bc.png" />
</Frame>

## Next Steps

<CardGroup cols={2}>
  <Card title="Call Buttons" icon="phone-flip" href="/ui-kit/angular/components/cometchat-call-buttons">
    Audio and video call buttons
  </Card>

  <Card title="Incoming Call" icon="phone-arrow-down-left" href="/ui-kit/angular/components/cometchat-incoming-call">
    Incoming call notifications and UI
  </Card>

  <Card title="Call Logs" icon="clock-rotate-left" href="/ui-kit/angular/components/cometchat-call-logs">
    Call history and details
  </Card>

  <Card title="Core Features" icon="comments" href="/ui-kit/angular/core-features">
    Core chat features
  </Card>
</CardGroup>
