Skip to main content
CometChat sends real-time webhook notifications throughout the lifecycle of your ringing calls and call sessions. Use these to track activity, trigger backend workflows, build analytics dashboards, or keep your systems in sync.
To configure webhooks for your app, see the Webhook Management guide. For general webhook concepts, see the Webhooks Overview.

How It Works

When a calling event occurs (a call is initiated, a participant joins, a recording is generated, etc.), CometChat sends an HTTP POST request to your configured webhook endpoint with a JSON payload describing the event. Each payload includes:
  • trigger — the event name (e.g. call_initiated, meeting_ended)
  • data — event-specific payload with call/session details
  • appId and region — your CometChat app identifiers
  • webhook — the webhook configuration ID

Webhook Event Flows

Ringing Flow

Call Session Flow

Event Categories

CometChat calling webhooks are split into two categories based on how the call was initiated:

Ringing Events

Triggered when using the Ringing flow — where a caller initiates a call and the recipient receives an incoming call notification with accept/reject options.Covers the full call lifecycle: initiation, busy, cancelled, rejected, unanswered, and session start/end.

Call Session Events

Triggered when using Call Sessions — where participants join a session directly without a ringing flow.Covers session start/end, participant join/leave, and recording generation.

Idempotency

Webhooks may be delivered more than once due to network retries. Each event includes an idempotency key composed of multiple fields from the payload. Use this key to deduplicate events on your end. See the individual event pages for the specific idempotency key for each event.

Quick Reference

Ringing Events

EventDescription
call_initiatedA user initiates a call to another user or group
call_startedThe call session begins (first participant joins)
call_participant_joinedA participant joins the active call
call_participant_leftA participant leaves the active call
call_endedThe call session ends
call_busyRecipient is on another call (1-on-1 only)
call_cancelledCaller cancels before the call is answered
call_rejectedRecipient explicitly rejects the call (1-on-1 only)
call_unansweredCall goes unanswered (group: no one joins)

Call Session Events

EventDescription
meeting_startedA call session begins
meeting_participant_joinedA participant joins the session
meeting_participant_leftA participant leaves the session
meeting_endedThe session ends
recording_generatedA recording is ready for download