Does ORTC and/or Edge support DataChannel? - webrtc

Finding definitive information on ORTC seems difficult, and finding examples even more so. I need to send strings between iframes and was looking into using WebRTC but in order to support Windows Edge I have been looking into ORTC. I wanted to see if anyone had successfully used some sort of data channel with ORTC in Windows Edge. I thought ORTC was specifically for Edge but it seems to define a data channel but Edge does not implement it.
The information I have come across leads me to believe that ORTC cannot do data channels, despite the fact it is listed in their API.
RTCDataChannel defined in the API, section 11.3 http://publications.ortc.org/2016/20161202/)
The RTCDataChannel interface represents a bi-directional data channel between two peers.
But at https://learn.microsoft.com/en-us/microsoft-edge/dev-guide/realtime-communication/object-rtc-api I found:
Since Microsoft Edge does not implement the data channel, the RTCDataChannel and RTCSctpTransport objects are not supported.
and
Microsoft Edge currently does not support any of the DataChannel functionality currently defined in the ORTC spec.
Please offer additional resources I can research in order to have a definitive answer. Also helpful would be any resources stating whether Windows Edge will in the future be supporting this.

According to their roadmap, ORTC Data channels are "Under consideration".
Roadmap Priority: Low — We are still evaluating this technology. There
may be significant spec stabilization, foundational work, or
additional community input required before we can begin development.
But the real question is:
Why do you need webRTC in the first place?
You said that you need to send strings between iframes.
Are the iframes loaded on the same page?
If the answer is yes, you don't need webRTC at all. Take a look at the postMessage API instead.

Related

CAN-bus bootloader standards

I'm developping an open source OTA update system for a few MCUs of a certain project. I wonder if there is some "standard" protocol for CAN-bus based bootloaders. Everything I saw online and in Application Notes from the chip manufacturers seem to be using their own brand of communication and thus their own specialized upload software too (mainly for demonstration for ANs).
My question is, am I missing something? Is there some standard way of doing this I'd rather adhere to, or should I just roll my own like they do and call it a day?
Features I'm interested in for the protocol side besides the obvious ones: checksumming, digital signatures, authenticated encryption.
Based on your tag, despite I do not see this from your question, I assume for now that you want to develop a boot-loader for automotive ECUs, which have a CAN connection.
The relevant protocols, which provide the services, are ISO 14229-3 or SAE J1939/73, with the first one much more common to my experience.
For development purposes, also ASAM MCD-1 XCP has support for that.
However, these are just the communication services and does not include usual usage patterns, which differ a lot across the OEMs.
For security, the German OEMs put a document together called "HIS Security. Module Specification", which I unfortunately did not find any more on the web.
They also have a blueprint for the design of a boot-loader.
However, this is anyway somewhat outdated, as boot-loaders today often are at least partially based on AUTOSAR, like the applications.
Last from them, you could also get a document partially specifying how the services above are used for flashing an ECU.
If you need further input, feel free to ask.
However, you will need yourself access to the non-free industry standards and recommendations.

What technologies Google Meet uses for screen and audio/video recording?

Now a days since HTML5 is around, neither Flash nor Java is supported by browsers for audio/video recording. As per my knowledge WebRTC is leading framework being used by developers to achieve this. In a web based application my client wants to provide audio/video/screen recording. I can quickly think of WebRTC as I believe Google Meet uses same. However when digging out little further I realized WebRTC cannot record screen. Then question came to my mind:
What framework is mostly used for audio/video/screen recordings? There are few other web services (for e.g. Loom) they too provided similar interface and allow a/v/s recordings. Please can someone share what framework and technologies these web applications use now a days?
Many thanks in advance.

sequence diagram for typical webrtc use cases (like text, video, audio )

I hope my question is legit... I am asking this question because after 1 week reading many blogs, playing with many sample apps, and the official API, I am still very confused, and where to start the coding...
Overall, in term of system architecture between browers <-> web servers <-> Signaling servers, etc.. I got it clearly since there are tons of diagrams out there. But I cannot get myself confidence with the coding, all those classes and methods and events... such as RTCPeerConnection Interface , RTCDataChannel, signalingState , etc...
A sequence diagram for "Alice text/video call Bob" would be very helpful for the coding. If N/A I will make one myself and share in answer section
http://www.w3.org/TR/webrtc/
See the section: 10.4 Call Flow Browser to Browser
It is a complete workflow diagram, including all the webRTC internals topics, like PeerConnections, media description, offer, answers, etc.
This slide might help:
http://www.slideshare.net/alexpiwi5/overviewpeerconnectionlifetime
you have on each side of the central row the sequence of the JS API you need to call.

What options are there for a IP camera to webRTC/ORTC gateway? Onvif compatible or not

There was some discussion on this topic here but not specific to my questions. You can consider this as an extension to the question asked there. Googling gives only two possible solutions: Kurento and Janus. The questions I have are:
Are there other options, opensource or otherwise?
Among these options, can someone share some experience based upon actual use?
Is there a list of IP Cameras which are compatible with such gateways? Or
What specific features must an IP camera have to be able to use such a WebRTC gateway?
Is is correct to say that if webRTC indeed takes off, then webRTC support for IP cameras is just a matter of time, which will get incorporated in standards such as Onvif?
I do not need an application per se but just the bare minimum so that other WebRTC components can be plugged in to create an application. The issue is not just about codec conversion but about some related signalling (as distinct from the WebRTC signalling which is anyway not standardized). This is discussed nicely on Kurento here.
I have also read about IP Camera standards, in particular Onvif. I am not looking for any compatibility with this standard which is a different issue.
I did take a look at arguably the most popular opensource software for CCTV cameras: Zoneminder but that is a very bloated software, a full-fledged application and does not have any support for streaming camera video/audio over webRTC.
Kurento has been reported to work well with RTSP camera feeds in many occasions. You can check the official mailing list for that. There's a demo here, if you are interested on how it would be done. There's a pull-request that you'll need to include, and though it could be outdated, the demo works just fine still, for letting you know how to do that.
Disclaimer: I'm part of the Kurento project.

What is the status of HTML5 Database?

This spec http://www.w3.org/TR/webdatabase/ says:
This document was on the W3C Recommendation track but specification work has stopped. The specification reached an impasse: all interested implementors have used the same SQL backend (Sqlite), but we need multiple independent implementations to proceed along a standardisation path.
Does this mean that HTML5 database is going away, and for some time we will have a de-facto standard using SQLite, possibly with browser differences? Or has the W3C published a plan of attack for finishing the standard?
According to this article:
[...] we think it is worth explaining our design choices, and why we think IndexedDB is a better solution for the web than Web SQL Database.
In another article, we compare IndexedDB with Web SQL Database, and note that the former provides much syntactic simplicity over the latter. IndexedDB leaves room for a third-party JavaScript library to straddle the underlying primitives with a BTree API, and we look forward to seeing initiatives like BrowserCouch built on top of IndexedDB. Intrepid web developers can even build a SQL API on top of IndexedDB. We’d particularly welcome an implementation of the Web SQL Database API on top of IndexedDB, since we think that this is technically feasible. Starting with a SQL-based API for use with browser primitives wasn’t the right first step, but certainly there’s room for SQL-based APIs on top of IndexedDB.
I'm not personally swayed by the arguments put forth in the article, but it seems clear that (for the time being) Mozilla has decided that Web SQL Database is dead.
Further interesting comments about this article may be found on Hacker News.
My understanding is that this is now called "IndexedDB"
http://www.w3.org/TR/IndexedDB/
Apparently the Firefox team has started implementing this:
http://hacks.mozilla.org/2011/01/indexeddb-in-firefox-4/
I don't know if anyone knows the answer. Mozilla doesn't like the dependence upon SQLite and has decided to go a different way. However, all WebKit based browsers already have it implemented and I don't see them removing it as any websites built to take advantage of the spec would be broken.
This means that at least in certain contexts, mostly within the mobile sphere where most browsers have a webkit implementation, it can still makes sense to use the HTML5 Web SQL spec. I see this as especially true for developers who are looking to create mobile applications using a framework like phonegap.
There are some times where as an application developer you want to provide users with access to data even if they aren't connected to the internet or if the connection is slow and some types of data is just more efficiently stored in a database than in a cookie or JSON cashe. For example, if you have data that has relationships it is much easier and quicker to do a join query to pull the data you need than it is to search a json map.
I don't think the spec is dead, and I actually hope that Mozilla will reverse their stance so that developers can use it to solve problems outside of the mobile webkit world.