According to the WebRTC 1.0: Real-time Communication Between Browsers, webrtc peerConnection state fails only when the previous state doesn't apply and any RTCIceTransports or RTCDtlsTransports are in the failed state.
But I logged iceConnectionState and dtls state when peerConnection state change to failed by wifi closed, and I found out that iceConnectionState is disconnected and dtls state is connected.
It's inconsistent with the description on WebRTC 1.0: Real-time Communication Between Browsers
Why is it inconsistent?
Yea that looks wrong to me!
I would file a bug with Chromium project https://bugs.chromium.org/p/chromium/issues/list
Related
I've the following situation using bluetooth:
There several bluetooth devices which we can connect to.
First time we load the fragment in which we control the device connection any attempt of connection is done to the indicated bluetooth device.
But if we navigateup from the fragment with findNaController().navigateUp() then the following error (among others, which I've managed to bypass by several hacks, happen), happens once the fragment is loaded again (despite being in theory completely created as if it were the first time, as in debug mode I've checked that goes through onCreateView method again).
No matter what bluetooth device we order it to connect to, despite having checked that the data that it's told to use to connect to the bluetooth device is the one it should be for that bluetooth device, it always connects to the last bluetooth device which was connected before the up navigation.
What could be causing this faulty behavior?
PD: I've only checked this to happen in device with API 23, not sure about others.
I've been reading about Janus, looked at the examples. I'm looking for a webRTC component that I can use in the following way:
Receive RTP video packets from some external sender
Become a WebRTC peer and connect to an external WebRTC signaling server, STUN, TURN, the usuals
Send the incoming RTP packets as a coherent video via the WebRTC peer connection to some other peer on a browser on the Internet
Is Janus the right tool? Maybe there are other tools? Would appreciate some directions..
Thanks!
I am not sure about Janus.
You can achieve these functionalities with LM Tools (lmtools.com) with easy configuration. It can receive RTP packets from external sender and can send those packets as per WebRTC specification to other peer.
Please note LM tools is not free software like JSON, though you can have free trial for 1 month.
Disclaimer: I work for LM Tools.
Can Janus WebRTC server implement server-side peer?
Yes, can can do that. What you are looking for is an RTP forwarding and you will get more context, and expert opinion from their community friendly google group page.
I hope you are looking for a Gateway solution.
(RTP/RTCP separate streams are converted to webrtc RTP/RTCP mux)
For this you need to make changes in the Janus code or use some plugin supporting RTP/RTSP.
Current Janus server relays RTP/RTCP and messages between browsers.
https://janus.conf.meetecho.com/docs/
We are releasing the webrtc endpoints when user leaves the group call and same on the java script side (disposing the webrtc peer).
In the java logs I also get a callback for successful release of webrtc endpoints.
However, that webrtc peer is not getting removed when we monitor Chrome's webrtc internals. But, those peers don't show any traffic.
Is this an issue with Chrome's webrtc internals that it is not getting cleared from the list?
-Thanks.
It is an issue when releasing RTCPeerConnection resources. The standard does not specify when those resources must be freed, so they stay there until you reload the page. There's little we can do about that, sorry!
Unless of course we are doing something wrong ;-)
How can i detect that a broadcaster has a network failure and disconnected from Red5 server? streamBroadcastClose method doesnt help me. I looked at the red5 reference but couldnt find any event that detects the broadcaster disconnection.
If there's a network disconnect, you're more likely to get a socket or write exception; there is no Flash NetConnection event specific to this type of failure that I know of.
webRTC is implemented PeerConnection as per https://apprtc.appspot.com/
How does webRTC implement synchronization of the their audio and video streams from remote?
Normal RTP a/v sync done using RTCP SR/RR reports and the timestamps in each SRTP packet.
See any VoIP application.