Skip to main content
Build a custom participant list UI that displays real-time participant information with full control over layout and interactions. This guide demonstrates how to hide the default participant list and create your own using participant events and actions.

Overview

The SDK provides participant data through events, allowing you to build custom UIs for:
  • Participant roster with search and filtering
  • Custom participant cards with role badges or metadata
  • Moderation dashboards with quick access to controls
  • Attendance tracking and engagement monitoring

Prerequisites

  • CometChat Calls SDK installed and initialized
  • Active call session (see Join Session)
  • Basic understanding of UITableView or UICollectionView

Step 1: Hide Default Participant List

Configure session settings to hide the default participant list button:

Step 2: Create Participant List Layout

Create a custom view controller for displaying participants:

Step 3: Create Participant Cell

Build a custom table view cell to display participant information.
Participant carries only identity and timing fields — uid, name, avatar, mid, state, isJoined, joinedAt, leftAt, deviceID and the total*Minutes counters. It has no mute / video / screen-share / hand-raise / pin flags, and the SDK exposes no getter for them. Accumulate that state in your own app from the participant events, as below. Because those events fire only on change, a client that joins mid-call cannot recover state that was already in effect.

Step 4: Implement Participant Events

Listen for participant updates and handle actions:

Step 5: Implement Table View Data Source


Step 6: Present Participant List

Show the participant list from your call view controller: