WebRTC android Data Channels aren't connecting. It shows Closing and then closed state

497 views Asked by At

I've been trying to connect to data channels on webrtc but its bugging me for quite a while now. When I try to connect, it shows closing and then closed state. There's no connecting or connected state in logs.

Here's my code:

 setupDataChannel(localPeerConnection);

        MediaConstraints sdpConstraints = new MediaConstraints();
        //sdpConstraints.optional.add(new MediaConstraints.KeyValuePair("RtpDataChannels", "true"));
        sdpConstraints.optional.add(new MediaConstraints.KeyValuePair("DtlsSrtpKeyAgreement", "true"));
        sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveAudio", "true"));
        sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveVideo", "true"));
        session.createLocalOffer(sdpConstraints);

And setupDataChannel method is this:

private void setupDataChannel(PeerConnection localPeerConnection) {
    if (localPeerConnection != null) {
        DataChannel localDataChannel = localPeerConnection.createDataChannel("sendDataChannel", new DataChannel.Init());
        localDataChannel.registerObserver(new DataChannel.Observer() {
            @Override
            public void onBufferedAmountChange(long l) {

            }

            @Override
            public void onStateChange() {
                Log.d("DATA_CHANNEL====>", localDataChannel.state().name());
                if (localDataChannel.state() == DataChannel.State.OPEN) {
                    //New we can share stuff

                }
            }

            @Override
            public void onMessage(DataChannel.Buffer buffer) {
                ByteBuffer data = buffer.data;
                byte[] bytes = new byte[data.remaining()];
                data.get(bytes);
                final String command = new String(bytes);
                Log.d("DATA_CHANNEL====>", "Message====>" + command);
            }
        });
    }
}

I'm creating data channel before creating local offer.

Edit

    {
  "id": 2,
  "result": {
    "sdpAnswer": "v=0\r\no=- 3857470224 3857470224 IN IP4 0.0.0.0\r\ns=Kurento Media Server\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=extmap-allow-mixed:\r\na=msid-semantic: WMS 102\r\na=group:BUNDLE audio video\r\nm=audio 1 UDP/TLS/RTP/SAVPF 111 0\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=mid:audio\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=setup:active\r\na=rtcp-mux\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=ssrc:1011141331 cname:user1361371708@host-6b2bcb32\r\na=ice-ufrag:nkwA\r\na=ice-pwd:jSdzsqywcfhIUvmHZ2Etll\r\na=fingerprint:sha-256 89:47:8D:DD:98:5E:B1:CB:CF:F0:4E:44:24:0F:51:11:2B:37:7D:19:D5:1F:07:6B:F4:CF:16:A1:1A:7C:00:06\r\nm=video 1 UDP/TLS/RTP/SAVPF 96\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=mid:video\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=setup:active\r\na=rtcp-mux\r\na=ssrc:2767340447 cname:user1361371708@host-6b2bcb32\r\na=ice-ufrag:nkwA\r\na=ice-pwd:jSdzsqywcfhIUvmHZ2Etll\r\na=fingerprint:sha-256 89:47:8D:DD:98:5E:B1:CB:CF:F0:4E:44:24:0F:51:11:2B:37:7D:19:D5:1F:07:6B:F4:CF:16:A1:1A:7C:00:06\r\nm=application 0 UDP/DTLS/SCTP webrtc-datachannel\r\na=inactive\r\na=mid:data\r\n",
    "id": "str_CAM_EfyH_con_XzInBuyH1y",
    "createdAt": 1648481424951,
    "sessionId": "nsrdm1j4ja507fgfn1dk7mj1"
  },
  "jsonrpc": "2.0"
}
0

There are 0 answers