Browse SDKs · Android
SDKsAndroid

Audio and video calling overview

Learn about Android SDK call signaling, room information, and event boundaries.

Copy

The Android SDK SignalingManager provides the signaling APIs needed to invite, accept, reject, cancel, hang up, query rooms, and synchronize call state. It coordinates participants, room information, and the call lifecycle. It does not capture camera video, play remote media, or render a call interface.

Pass the returned roomID, token, and liveURL to your chosen real-time audio/video engine. Your application remains responsible for Android permissions, devices, media tracks, poor-network behavior, and UI state. The signaling APIs are not a complete real-time media SDK.

Call flow

  1. Call signalingInvite() for a one-to-one call or signalingInviteInGroup() for a group call.
  2. The invitee receives SignalingInfo through onReceiveNewInvitation and chooses to accept or reject.
  3. The invitee calls signalingAccept(), and both parties connect their media engine with the returned room credentials.
  4. During the call, update local state from participant, media stream, and custom signaling callbacks.
  5. The inviter can cancel a pending invitation; any participant can hang up an established call.

Core data

DataDescription
SignalingInvitationInfoInviter, invitees, group, room, media type, timeout, session type, and application extra data.
SignalingInfoCurrent operation user, original invitation, participant profiles, and optional offline push information.
SignalingCertificateThe roomID, token, liveURL, and busy user list returned by OpenIMServer.
RoomCallingInfoA snapshot of a group's room, invitation, participants, group, and join credentials.

Use customData and custom signaling only for application negotiation data. Do not place long-lived credentials, administrator secrets, or other sensitive data in these fields.

State updates and event ownership

For invite, accept, reject, cancel, and hang-up operations, handle both the API callback and the call listener. The API success callback means that the current signaling request completed. The listener represents incremental state observed by inviters, invitees, other devices, or room participants. They are not the same completion signal.

The complete invitation lifecycle, participant, hang-up, and stream listener belongs to Handle call events. Custom signaling belongs to Send a custom signal. Room, credential, and pending-invitation queries only return snapshots.

This overview does not register a listener. Use roomID as the call-state key and combine it with user ID for participant state. Query again when the current room needs to be restored or reconciled.

Find a page by task

TaskPage
Start a one-to-one or group callStart a one-to-one call, Start a group call
Accept or reject an invitationAccept a call, Reject a call
Cancel an invitation or hang upCancel a call invitation, Hang up a call
Restore a room or pending invitationGet a group call room, Get room credentials, Restore a pending invitation
Handle call events and negotiationHandle call events, Send a custom signal