> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-rn-guide-message-privately.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform Compatibility

> Check CometChat Calls platform compatibility for SDK support, browser requirements, mobile platforms, features, and known limitations.

This page provides detailed information about feature availability across platforms, browser support, and minimum version requirements.

## Platform Feature Comparison

Not all features are available on every platform. Use this table to understand feature availability:

| Feature                | JavaScript | React Native | iOS | Android | Flutter |
| ---------------------- | :--------: | :----------: | :-: | :-----: | :-----: |
| **Core Features**      |            |              |     |         |         |
| Voice Calls            |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Video Calls            |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Group Calls            |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Screen Sharing         |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Recording              |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Call Layouts           |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| **Call Management**    |            |              |     |         |         |
| Ringing                |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Call Logs              |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Participant Management |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| In-Call Chat           |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| **Advanced Features**  |            |              |     |         |         |
| Virtual Background     |      ✓     |       ✗      |  ✗  |    ✗    |    ✗    |
| Picture-in-Picture     |      ✓     |       ✗      |  ✗  |    ✓    |    ✗    |
| Raise Hand             |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Audio Modes            |      ✗     |       ✓      |  ✓  |    ✓    |    ✓    |
| **Customization**      |            |              |     |         |         |
| Custom Control Panel   |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Idle Timeout           |      ✓     |       ✓      |  ✓  |    ✓    |    ✓    |
| Device Management      |      ✓     |       ✗      |  ✗  |    ✗    |    ✗    |
| **Platform-Specific**  |            |              |     |         |         |
| VoIP / CallKit         |      ✗     |       ✓      |  ✓  |    ✓    |    ✗    |
| Background Handling    |      ✗     |       ✓      |  ✓  |    ✓    |    ✗    |

✓ = Available, ✗ = Not Available

## Browser Support

### Desktop Browsers

| Browser | Minimum Version | Notes          |
| ------- | --------------- | -------------- |
| Chrome  | 72+             | Recommended    |
| Firefox | 68+             | Full support   |
| Safari  | 12.1+           | macOS 10.14.4+ |
| Edge    | 79+             | Chromium-based |
| Opera   | 60+             | Chromium-based |

### Mobile Browsers

| Browser             | Minimum Version |
| ------------------- | --------------- |
| Chrome for Android  | 72+             |
| Firefox for Android | 68+             |
| Samsung Internet    | 12+             |
| Edge for Android    | 79+             |
| Safari for iOS      | 12.1+           |
| Chrome for iOS      | 72+             |
| Edge for iOS        | 79+             |

## Native Mobile Platforms

### iOS

| Requirement           | Value                                |
| --------------------- | ------------------------------------ |
| Minimum Version       | iOS 16.0+                            |
| Architecture          | arm64                                |
| Package Manager       | CocoaPods, SPM                       |
| Platform Capabilities | CallKit, VoIP Push, Background Audio |

### Android

| Requirement           | Value                                           |
| --------------------- | ----------------------------------------------- |
| Minimum API           | API 24 (Android 7.0+)                           |
| Architecture          | arm64-v8a, armeabi-v7a                          |
| Package Manager       | Gradle                                          |
| Platform Capabilities | PiP Mode, Foreground Service, ConnectionService |

## Cross-Platform Frameworks

### React Native

| Requirement     | Value         |
| --------------- | ------------- |
| Minimum Version | 0.70+         |
| Platforms       | iOS, Android  |
| Package Manager | npm, yarn     |
| Expo Support    | Bare workflow |

### Flutter

| Requirement     | Value        |
| --------------- | ------------ |
| Minimum Flutter | 3.0+         |
| Minimum Dart    | 2.17+        |
| Platforms       | iOS, Android |
| Package Manager | pub          |

## Network Requirements

### Ports & Protocols

| Protocol | Port        | Purpose                     |
| -------- | ----------- | --------------------------- |
| HTTPS    | 443         | API calls, signaling        |
| UDP      | 10000-20000 | Media streaming (preferred) |
| TCP      | 443         | Media fallback (TURN)       |

### Bandwidth Recommendations

| Call Type       | Bandwidth         |
| --------------- | ----------------- |
| Voice Call      | 100 - 300 kbps    |
| Video Call (SD) | 500 kbps - 1 Mbps |
| Video Call (HD) | 1.5 - 3 Mbps      |
| Screen Sharing  | 1 - 2 Mbps        |

<Warning>
  **HTTPS Required**: Camera and microphone access requires HTTPS in production environments. Localhost (`http://localhost` or `http://127.0.0.1`) is exempt during development.
</Warning>

## Permissions Required

### Web

* Camera access
* Microphone access
* Screen capture (for screen sharing)
* Notifications (optional)

### iOS

```
NSCameraUsageDescription
NSMicrophoneUsageDescription
```

### Android

```xml theme={null}
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Key Features" icon="list" href="/calls/platform/features">
    Explore all available features
  </Card>

  <Card title="User Sync" icon="users" href="/calls/platform/user-sync">
    Set up user authentication
  </Card>
</CardGroup>
