Converse.js: Audio/video calls integration

Created on 3 Aug 2015  Â·  10Comments  Â·  Source: conversejs/converse.js

Hello, I just found an old draft for an Audio/Video support request I was planning to submit here. @jcbrand is this something you'd like to have in converse.js? I did a quick research on possible implementations. Pasting the contents below


A quick search for FOSS a/v web chat solutions returned https://www.jsxc.org/ (XMPP + voice/video) and https://github.com/Rantanen/mumble-web (mumble). I didn't find the sources for Firefox Hello (client and server), which works.

The go-to solution for audio/video over XMPP seems to be jingle. Much related to https://github.com/jcbrand/converse.js/issues/161

Relevant links I found:

XEP-0166: Jingle - This specification defines an XMPP protocol extension for initiating and managing peer-to-peer media sessions between two XMPP entities in a way that is interoperable with existing Internet standards. The protocol provides a pluggable model that enables the core session management semantics (compatible with SIP) to be used for a wide variety of application types (e.g., voice chat, video chat, file transfer) and with a wide variety of transport methods (e.g., TCP, UDP, ICE, application-specific transports).

XEP-0266: Codecs for Jingle Audio - This document describes implementation considerations related to audio codecs for use in Jingle RTP sessions.

XMPP Technologies: Jingle – The XMPP Standards Foundation

XEP-0167: Jingle RTP Sessions - This specification defines a Jingle application type for negotiating one or more sessions that use the Real-time Transport Protocol (RTP) to exchange media such as voice or video. The application type includes a straightforward mapping to Session Description Protocol (SDP) for interworking with SIP media endpoints.

Combining SIP and XMPP | OnSIP -> sixpac Discussion Archive - Date Index

OTR does not seem to be able to encrypt audio/video streams, but there's ZRTP: XEP-0262: Use of ZRTP in Jingle RTP Sessions. Also:

[cryptography] Jingle and Otr - If you know the face of the person you are talking to, you can surely tell if the right person is speaking the right SAS, which makes the methods used by OTR overkill for video.



Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Feature help wanted

Most helpful comment

I have a working conversejs plugin for jingle audio/video calls that works with the jingle implementation in Conversations. However, it has outstanding issues and requires a make-over to remove the out-dated jquery xml parsing. I am not free to work on it at the moment, but for anyone who has the time, space and ability, here is the link

https://github.com/igniterealtime/pade/blob/master/docs/inverse/plugins/jinglecalls.js

All 10 comments

Thanks for doing some research into this.

I think the approach I would take is to use Strophe.jingle (or something similar) with WebRTC.

Would be a nice feature to have. Ideally a company that needs this feature would fund the development for it.

I found this libjingle adaption for javascript https://github.com/otalk/jingle.js
libjingle is a library that makes it possible to use audio and videochat over xmpp and clients like pidging are already using libjingle. So maybe this could help you to implement that feature.

Any news?

There are no plans to add audio/video support, but pull requests are welcome if someone wants to take up the challenge.

maybe now webRTC would be a good technology to use. But yes it needs some effort to implement.

If there is a person who can do this and embed the code for audio / video as in pix-art messages, he is ready to sponsor this project.

@free-14 you mean Conversations, since Pix-Art is just a fork, right? Also... that's Java on Android... This is Javascript.

I have a working conversejs plugin for jingle audio/video calls that works with the jingle implementation in Conversations. However, it has outstanding issues and requires a make-over to remove the out-dated jquery xml parsing. I am not free to work on it at the moment, but for anyone who has the time, space and ability, here is the link

https://github.com/igniterealtime/pade/blob/master/docs/inverse/plugins/jinglecalls.js

@free-14 you mean Conversations, since Pix-Art is just a fork, right? Also... that's Java on Android... This is Javascript.
Yes, you noticed correctly. It's just that I'm already used to the design and additional features of pix-art. )

There is another ready-made solution that works well in nextcloud - Jsxc. It is open source. I think this decision is not bad when combined.

Was this page helpful?
0 / 5 - 0 ratings