Package 

Interface CallJoinInterceptor


  • 
    public interface CallJoinInterceptor
    
                        

    Controls 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 Unit callReadyToJoin(Call call) Called when the SDK is ready to transition to RingingState.Active.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.