Interoperability between Jingle and webRTC

1.5k views Asked by At

Is it possible to establish a XMPP/Jingle (audio video) session from a ‘device’ (not a browser) with a webRTC client (browser)?

After the Jingle ICE offer/answer negotiation is complete, the session/stream should be used by the webRTC app on the browser to receive audio/video, sent from a Jingle device (e.g. using libjitsi or smack library). The device does not have any native webRTC implementation. I guess, this will require translation of XML to SDP (webRTC uses SDP). Otalk and related libraries/tools seems to support this, but could not find an example. There are some JavaScript demos here. But, these demos assume browser environment/context. I do not want to route the audio/video through the external server (i.e., avoid a video bridge, if possible).

Questions:

  • Is it possible to establish the session using Jingle (using an external XMPP server for authentication and session establishment ) and have the device send the audio/video/data streams using jingle libraries (specifically, Java libraries such as libjitsi or smack or any other JavaScript libraries/APIs that can run under node.js), without using the webRTC APIs/libraries (on the device)?

  • Is there any example/explanation of doing this ?

  • OR is routing the audio and video through a bridge or use a MUC server with conference or ‘room’ facility the only solution ?

1

There are 1 answers

0
user3465463 On

Question 1: Yes, this is possible. You will need to translate between SDP and Jingle on the browser end (in the javascript app), because WebRTC uses SDP only.

Question 2: One example is Jitsi Hammer. It uses Jingle to establish a session with a WebRTC-enabled browser (or an SFU/bridge such as Jitsi Videobridge). Once connected, it streams a pre-recorded audio and/or video file. It uses smack for XMPP, and ice4j and libjitsi for the WebRTC part.

Question 3: The browser doesn't really care if it is connected to another browser, an MCU/SFU or another kind of device. As long as it is provided with a valid remoteDescription SDP and the other end supports the protocols required by WebRTC (ICE, DTLS/SRTP).