Audio and video calling overview
Learn about Android SDK call signaling, room information, and event boundaries.
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
- Call
signalingInvite()for a one-to-one call orsignalingInviteInGroup()for a group call. - The invitee receives
SignalingInfothroughonReceiveNewInvitationand chooses to accept or reject. - The invitee calls
signalingAccept(), and both parties connect their media engine with the returned room credentials. - During the call, update local state from participant, media stream, and custom signaling callbacks.
- The inviter can cancel a pending invitation; any participant can hang up an established call.
Core data
| Data | Description |
|---|---|
SignalingInvitationInfo | Inviter, invitees, group, room, media type, timeout, session type, and application extra data. |
SignalingInfo | Current operation user, original invitation, participant profiles, and optional offline push information. |
SignalingCertificate | The roomID, token, liveURL, and busy user list returned by OpenIMServer. |
RoomCallingInfo | A 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
| Task | Page |
|---|---|
| Start a one-to-one or group call | Start a one-to-one call, Start a group call |
| Accept or reject an invitation | Accept a call, Reject a call |
| Cancel an invitation or hang up | Cancel a call invitation, Hang up a call |
| Restore a room or pending invitation | Get a group call room, Get room credentials, Restore a pending invitation |
| Handle call events and negotiation | Handle call events, Send a custom signal |
Was this page helpful?