I was planning to implement this feature, but have end up with some questions
I know Mattermost supports audio/video calling with Janus, Plugin for Zoom and exists too as far as I have seen a plugin too for Jitsi. When thinking in all of them and trying to decide which of them to setup :
- Janus option -> Seems to pretty unstable but the comments seen… and the own doc sais when warns you not to use in production. Perhaps could it cause a security issue in the server apart from just not working?.
- Zoom plugin -> Seems not being an option as it seems to require a subscription payment for obtaining the api key.
- Jitsi plugin -> Seems to be a fork of the previous one but with tons of commits pending for being stable… it talks about cleaning code, improve status of participants and so…
By saying all this, which one would you think would be the best way of implementing this in Mattermost?. I’m using team edition.
If you don’t want to pay (as in the case of Zoom plugin), I think you could try WebRTC/Janus - there are no security issues and lot of users are using it. Some users have experienced issues with it (e.g. the video not working properly), but if it’s set up correctly then it should work fine.
I’m not familiar enough with Jitsi, perhaps you could contact the creator of the plugin (Sean Sackowitz) to ask what Mattermost server it supports https://github.com/seansackowitz/mattermost-plugin-jitsi.
So then I’ll try the WebRTC/Janus implementation and see how it works… In this sense is fine the way Mattermost is designed… because you can use a separate different machine for using Janus without afecting in that way Mattermost… if in addition you tell me it shouldn’t cause damage to Mattermost… I’ll give a try.
Thank you so much much for your time,
It’s a total pitty. I can’t make Janus/WebRTC work. I have been debugging all this morning. I’m stalled at the phase when the call is received and when the other side answers you see the tipical message “Cannot connect video”, the tipical message I’ve seen many people gets…
Have been trying to debug that… have intercepted the traffic between one of the sides and the other one and have get the following error https://pastebin.com/xz5F8saR
I can’t see any traffic at the machine “thewebsocketserver” although I can do a telnet to 8188 port and any port in that machine… but nothing else…
The env… is two mm firefox clients, a mm server (4.1) and a separate janus docker server (with your proposed image)… Firefox clients are behind nat… but I have set the stun server… By the way… I have not seen the option of “Preview pre-release features and there the one-to-one webrtc option” but when I talk to someone, at the top I can see the webrtc button… is this ok? I assume so…
I have seen too in the web browsers : “kern: Too large subtable, table discarded”…
Could anyone enlighten me please?
Can you help take a look at this thread for troubleshooting tips: How to start WebRTC?.
Some tips include:
- adding this value to the config.json
"StunURI": "stun:stun.l.google.com:19302" , without updating the Janus server or any code changes.
- setting the nat mapping in the janus cfg.
that all was already set that way… have tried several ways…
Thanks in advance
@egoitzr To confirm, is your server version 4.1 or 5.1?
Thank you so much for all your time and effort. I did finally upgrade to a LTS. Concretely to 4.10 but the problem was still not resolved. I was hitting the same error. I got all working now and now I have some time I’m trying to write here some statements for setting all this apropiately.
First I would recommend using a stable or updated version. Concretely I went to 4.10. Was in 4.1 (answering to your question Amy). ALthough I’d say it would have worked too in 4.1 by the nature of the problems.
I have Mattermost running behind Nginx although Janus is accesed directly. I suppose that if you set a correct config in Nginx (setting properly to proxy websockets, which is totally sure possible, in fact I do for Mattermost) should work but you should set in the proxy in /etc/hosts (talking all the time about a Linux setup) the real ip of the Janus machine. This just, if you make Janus be accesed through Nginx (and as said I pretty surely suppose, because I don’t have Janus through Nginx, only Mattermost).
You can use different URL for calling Janus and Mattermost (as said note I don’t Janus behind the proxy, only Mattermost). You CAN’T or at least I haven’t get it to work, to use https for Mattermost and ws (plain websockets) for Janus. Same for wss (secure websockets for Janus and plain for Mattermost). So I have all setup with TLS.
It’s totally essential for avoiding problems with “hopeless” users to use if you go with TLS/SSL to use a valid and signed certificate. Be sure too to include all the certification chain in the public key. Basically copy to Janus the files the same way as you give to Nginx (if you use it). It’s essential not to be having trust issues with your certificate because it’s not clear (and not a clear error, unless you go to web debug console) for a plain user to know that all he/she must do is to define an exception for the certificate.
I’m using Janus at a container (the recommended way of Mattermost) and have the recommended config for Nginx to interact with Mattermost (the one proposed at Mattermost site).
If you mates keep in mind I can surely say now it will work :).
I wanted to thank to Amy and those other Mattermost staff which have been trying their best for trying to solve all this. Wanted too to apology because I have needed some times to answer and comment all this, but they are being a very busy days (in fact I’m writting all this in Saturday ).
In short, just wanted to share with all you mates my debugging results for trying to make simplier for you to setup all this nice piece of software.
Long Live to Mattermost
If I can help you please don’t hesitate contacting me. Write me to egoitz ( A T ) ramattack.net specifying in the subject JANUS-MM at the beggining and I’ll try my bests to help all you. You can surely contact me too in this forum but in case I don’t enter here and see your message I would like to, you know, help people with all the learned topics and that are not easy to debug
can you show your configuration? I have tried several days. Though webrtc works, the audio is ok, the video is not. I can see a lot of ‘Getting a lot of NACKs (slow downlink) for video’ in janus log. How can i solve this problem.
There’s now a newly created WebRTC plugin for Mattermost, supporting one-on-one voice and video calls, developed by Nikhil Rajan. There’s no third-party dependancy, and uses a browser-to-browser and serverless approach to initiate calls.
Other video and audio calling options are listed here: https://docs.mattermost.com/deployment/video-and-audio-calling.html
Feedback is highly appreciated!