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"
}