How to handle calls when multiple incoming calls exist simultaneously?
2026-04-21
Products / Plugins:In-app chat
Platform / Framework:All
When the number of incoming calls has not reached the limit
- The caller clicks the "Call" button, and the callerUI reports outGoingCall to the caller (CallManager).
- The caller (CallManager) can set outgoing call limits based on business requirements.
- The caller (CallManager) displays the outgoing call UI to the callerUI.
- The caller (CallManager) sends a callInvite via ZIM.
- ZIM calls back the caller (CallManager) with onCallInvitationSent.
- ZIM forwards the invitation to the callee (CallManager) and calls back onCallInvitationReceived.
- The callee (CallManager) checks whether the current number of incoming calls has reached the limit — the limit has not been reached.
- The ongoing calls count increases by 1.
- The callee (CallManager) displays the new incoming call UI to the Callee UI.
When the number of incoming calls has reached the limit
- The caller clicks the "Call" button, and the callerUI reports outGoingCall to the caller (CallManager).
- The caller (CallManager) can set outgoing call limits based on business requirements.
- The caller (CallManager) increments the ongoing calls count by 1 and displays the outgoing call UI to the callerUI.
- The caller (CallManager) sends a callInvite via ZIM.
- ZIM forwards the invitation to the callee (CallManager) and calls back onCallInvitationReceived.
- The callee (CallManager) checks whether the current number of incoming calls has reached the limit — the limit has been reached.
- The callee (CallManager) calls CallEnd, with extendedData indicating the reason as the call limit has been reached.
- ZIM calls back the caller (CallManager) with callInvitationEnded and extendedData.
- The caller (CallManager) decrements the ongoing calls count by 1.
- The caller (CallManager) displays a busy line prompt to the callerUI.
Note
- For 1v1 calls, callEnd can be used instead of callReject to reject a call.
- For scenarios involving multi-party calls, use callReject to reject a call.
