-
public interface CallJoinInterceptorControls when a ringing call transitions to RingingState.Active.
Implement this to insert custom logic (e.g. waiting for user confirmation) between the publisher peer connection becoming ready and the call going active. Has no effect on non-ringing joins (livestream, direct join).
Concurrent Call.join callers share one in-flight join. Interceptor ownership is first non-cancelled wins: the first
join(interceptor)waiter whose coroutine is still not cancelled supplies the interceptor. If that waiter is cancelled (Activity destroyed / recreated) before the interceptor runs, the next still-active waiter's interceptor is used.join(null)does not erase an earlier interceptor. Once callReadyToJoin starts, the selected interceptor is frozen for that invocation.
-
-
Method Summary
Modifier and Type Method Description abstract UnitcallReadyToJoin(Call call)Called when the SDK is ready to transition to RingingState.Active. -
-
Method Detail
-
callReadyToJoin
abstract Unit callReadyToJoin(Call call)
Called when the SDK is ready to transition to RingingState.Active. Suspend here to delay the transition; return to allow it to proceed.
Throw CallJoinInterceptionException to abort the join — the SDK will leave the call cleanly
The SDK enforces a 5-second maximum — the transition proceeds automatically on timeout.
-
-
-
-