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.