-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IoT use-case requires direct one-way media support #1
Comments
Sorry for the noise but +1000. |
I completely agree with @steely-glint. WebRTC is the only way of implementing ultra-low-latency real-time streaming on the Web. WebRTC is increasingly used for one-way real-time streams, rather than for two-way communications. Requiring user permission for ICE candidate discovery is perfectly reasonable. However, doing that via getUserMedia is a round hole, and assumes that all WebRTC applications are round pegs. My consumer-only application seems to be a square peg. Perhaps we can have a dedicated permissions request mechanism for cases where GUM isn't used. |
Completely agreed. A permission request just for creating PeerConnections would fix this. |
Another datapoint here :) I work on a project where we provide a web application that can connect to a smartphone app and exchange data. We are perfectly fine asking the user for "permission to establish a direct connection", but "please let us access your microphone and camera in order to load data from your smartphone" is definitely a no-go, no matter how much you explain it to the user. When the alternative is using TURN servers to relay all data, then what is the point of using WebRTC in the first place? |
Now, I can already hear "but there is NAT hair-pinning!". But:
|
@steely-glint @lgrahl It seems that several use cases may have a requirement for support of one-way media and related permissions support. This requirement comes up not only in IoT, but in scenarios such as MOOCs (where gUM may not be called until the student asks a question). I'd also argue that overloading gUM as a universal permissions mechanism for WebRTC 1.0 is becoming unworkable. So we probably need to address the permissions issue for WebRTC 1.0 as well as NV. |
We're having a lot of issues with the new Chrome 77 update and connecting our end users to our deployed IoT devices with a one way connection... Any update on this? Asking a user for microphone/camera to connect them to their toaster is undoable 😂. Is there anything we can do in the meantime to fix our product? |
@bfitec can you file a bug at http://crbug.com? Chrome should be able to reach your device without any additional permissions. |
@bfitec If you do file a bug - please let me know - I'd be happy to chime in. |
@steely-glint would you be willing to do a post on webrtchacks regarding this? If you control one of the endpoints a direct connection should be possible with or without mDNS. |
TBH I think the OP description on this issue is incorrect; no new API surface is needed for these scenarios. @steely-glint, please clarify or close this issue. |
@juberti I've had problems connecting over a relay after Chrome 77. Chrome is telling my STUN/TURN servers that the browser "hostCandidate" is null ( |
Here is the w3c description of hostCandidate (https://w3c.github.io/webrtc-pc/#attributes-6): hostCandidate of type DOMString, readonly
|
Chrome doesn't send hostCandidate to the TURN servers; that's provided to the JS application. Also, do you know who is looking up hostCandidate? That seems rather strange too. |
On 29 Sep 2019, at 00:08, Justin Uberti ***@***.***> wrote:
@steely-glint <https://github.com/steely-glint> would you be willing to do a post on webrtchacks regarding this? If you control one of the endpoints a direct connection should be possible with or without mDNS.
Interesting idea. I’ll see if I can gather some usable data and a narrative to make a readable blog post.
… —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#1?email_source=notifications&email_token=AAFODYCB4RL4FCK5C3GC2V3QL7PWDA5CNFSM4FUVJBNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD73EBAY#issuecomment-536232067>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAFODYE444BNQDKVHKSRMELQL7PWDANCNFSM4FUVJBNA>.
|
@bfitec, any more thoughts on this? |
Putting mDNS aside, I think this is also (if not mainly) about mode 1 vs mode 2/3 (or "default mode" vs "best available mode"). The above mentioned use cases should also be able to leverage themself into the "best available mode" just as gUM usually does nowadays. And that issue can be resolved by e.g. w3c/webrtc-pc#2175 or merging #14. |
While that makes sense in theory, I think you'll need to show a more specific need regarding why the current APIs are insufficient. I actually think this particular bug is underspecified and perhaps should be closed. |
I've stumbled on an interesting example - admittedly under tested, since I don't have access to the relevant hardware ;-) |
I don't follow the reasoning. The Tesla implementation should hand out host IPs, right? And if not, the smartphone will. So what's the issue? |
Sorry, to be clear, both ends of this scenario are browsers. I am assuming that the smartphone is running latest chrome. I'd be very surprised if tesla added mdns support to the MCU's os. |
OK, that helps. But still, Tesla and phone will both be on separate cell networks and a direct host-host connection won't be possible, right? (unless you're sitting in your garage with wifi) |
Turns out that the video tag is disabled unless you are in 'park' so being on wifi (or tethered to the smartphone) is a pretty plausible situation. |
Tethering a Tesla to a smartphone seems like a true corner case; if you could do the reverse it would be a more plausible scenario. Regardless, I agree with the meta-point; when both ends support only mDNS, a direct connection is not possible in some cases. (Suggest the bug title and description be updated accordingly.) |
Many IoT usecases (security cameras, baby monitors, drones etc) use unidirectional media
Unfortunately the trend in the current specification is to force such media though a TURN server since
that is the only usable candidate that will be generated without a GUM permission.
The costs (and latency) of running every video camera through TURN would negate two of webRTC's main advantages in this product area.
srflx and host ICE candidates should be available to this usecase in a way that isn't bemusing to the user.
The text was updated successfully, but these errors were encountered: