1

Im trying to implement video calls and it works fine until android-client receives onSessionClosed event. After that onReceiveNewSession never called, though i can see new <signalType>call</signalType> signals in logs.

Setting callbacks after successful login:

private boolean addSignalingManagerListener() {
    Log.e(TAG, "isSignedIn = " + isSignedIn());
    if (QBChatService.getInstance().isLoggedIn()) {
        QBChatService.getInstance().getVideoChatWebRTCSignalingManager()
                .addSignalingManagerListener((qbSignaling, createdLocally) -> {
            if (!createdLocally) QBRTCClient.getInstance(this).addSignaling(qbSignaling);
        });

        initAudio();
        QBRTCClient.getInstance(this).addSessionCallbacksListener(this);
        QBRTCClient.getInstance(this).prepareToProcessCalls();

        return true;
    }
    return false;
}

Accepting incoming calls:

@Override
public void onReceiveNewSession(QBRTCSession qbrtcSession) { //- Called only once
    qbrtcSession.removeSessionCallbacksListener(this);
    qbrtcSession.removeVideoTrackCallbacksListener(this);
    qbrtcSession.removeAudioTrackCallbacksListener(this);

    qbrtcSession.addSessionCallbacksListener(this);
    qbrtcSession.addVideoTrackCallbacksListener(this);
    qbrtcSession.addAudioTrackCallbacksListener(this);

    qbrtcSession.acceptCall(null);
}

Do i have to call QBChatService.getInstance().logout() before accepting new incoming video calls in QuickBlox? Asking because i discovered that relogging solves the problem but starts another one - https://github.com/QuickBlox/quickblox-android-sdk/issues/450.

cora32
  • 388
  • 3
  • 15

0 Answers0