androidwebrtclibjingle

onIceGatheringChange not been in COMPLETE state


After all of the candidates are generated, IceGatheringState should be in COMPLETE state. But IceGatheringState on GATHERING state and only goes to COMPLETE when signaling state become CLOSED.

PeerConnection::OnIceGatheringChange has been called once and IceGatheringState became GATHERING state, but after all the candidates are generated IceGatheringState still on GATHERING state. When the call has disconnected Signaling state becomes CLOSED and then only IceGatheringState in COMPLETE state.

    @Override
    public void onIceGatheringChange(PeerConnection.IceGatheringState newState) {
        Log.d(TAG, "IceGatheringState: " + newState);
    }

Anyone have any idea? I'm using AppRTCMobile app for android webrtc build in Ubuntu 16.0.4


Solution

  • Its Continuous Nomination feature to make seamless switch between WiFi & Cellular Networks. (Available only in native clients)

    We can control this with the peerConnection configuration.
    If you enable PeerConnection.RTCConfiguration.continualGatheringPolicy, then PeerConnection will continually look for network changes/ new candidates. Always you have to send the new candidates to remote peer.