Janus Client

336 views
Skip to first unread message

alfonso....@crossover.com

unread,
Jun 7, 2017, 3:21:47 PM6/7/17
to meetecho-janus
Hey , hi everyone, just beginning to explore Janus, I have some questions you may help on, first:

- Do you have handy a JS Client? Planning to create some cross-platform client from JS OSS.

APFG

Ju Ju

unread,
Jun 7, 2017, 4:14:04 PM6/7/17
to meetecho-janus
janus.js

Lorenzo Miniero

unread,
Jun 8, 2017, 4:42:39 AM6/8/17
to meetecho-janus
Plus several resources here: https://janus.conf.meetecho.com/docs/resources
Alfonso, you may want to check the documentation and older posts for questions that have been asked several times.

Lorenzo

alfonso....@crossover.com

unread,
Jun 9, 2017, 10:26:54 AM6/9/17
to meetecho-janus
Thanks Lorenzo, believe me when I tell you that I am hardly studying all the docs , forum and the janus.cfg file. I even bought your article from the ACM digital library. But... I do not find some answers to what it is urgent to me now:

- Why do I need a TURN server if the Janus media gateway already relays any communication? In case I need it, It shouldn`t  be out of my AWS containers?

- Plugings can be requested by the  RESTfull API or websockets API , but are the plugings decoupled to the core or are compiled inside, can they be a decoupled service on different servers for scaling? 

Sorry for using this post I hope you can answer.

Regards.

APFG.

Ju Ju

unread,
Jun 9, 2017, 10:34:06 AM6/9/17
to alfonso....@crossover.com, meetecho-janus

>
>
> - Why do I need a TURN server if the Janus media gateway already relays any communication? In case I need it, It shouldn`t be out of my AWS containers?

The TURN server is for your client not for Janus. Your client need a TURN server when they are behind a proxy or a firewall and can’t access internet using UDP.
>
> - Plugings can be requested by the RESTfull API or websockets API , but are the plugings decoupled to the core or are compiled inside, can they be a decoupled service on different servers for scaling?
>
Plugin and core are on the same server. If you want scaling you must forward RTP stream to another janus server

Lorenzo Miniero

unread,
Jun 9, 2017, 10:36:51 AM6/9/17
to meetecho-janus, alfonso....@crossover.com
To clarify, they're on the same servers because the plugins are shared objects, libraries dynamically loaded by the core, not individual applications you can distribute.

L. 

alfonso....@crossover.com

unread,
Jun 9, 2017, 10:49:40 AM6/9/17
to meetecho-janus, alfonso....@crossover.com
Thanks Ju Ju, I know that Janus doesn`t need TURN, In fact I was expecting Janus acting as a TURN Server since it manages the media channel, I do not understand two servers doing relay at the same time. 

So If I need a TURN server for discovery at least, (I think I only need STUN)  does it mean that TURN delegated the media relay in Janus? How?

What if I use Websocket and TCP for data channel instead UPD?

Where should be anyway installed the TURN server ( in my Infrastructure but publicly accesible?) 

Lorenzo Miniero

unread,
Jun 9, 2017, 11:46:07 AM6/9/17
to meetecho-janus, alfonso....@crossover.com
Il giorno venerdì 9 giugno 2017 16:49:40 UTC+2, alfonso....@crossover.com ha scritto:
Thanks Ju Ju, I know that Janus doesn`t need TURN, In fact I was expecting Janus acting as a TURN Server since it manages the media channel, I do not understand two servers doing relay at the same time. 

So If I need a TURN server for discovery at least, (I think I only need STUN)  does it mean that TURN delegated the media relay in Janus? How?



They solve different problems. Janus is a media server, and handles media in different ways (e.g., 1 to many to make a simple example). TURN is a media relay, and knows nothing of the application layer: it's basically an application level transport. For most cases, users are just fine with STUN. If they're behind a firewall that filters important stuff out, though (e.g., a firewall that only lets traffic to 80/443 through), then the random ports Janus advertizes for WebRTC won't work, and you'll need a TURN server. The TURN server can listen on 80/443, users point their media there, and the TURN server takes care of relaying to/from Janus as if it were the real WebRTC user.

If this is still confusing, try looking for some tutorials/lessons on what TURN is, how it works and how they differ.

 
What if I use Websocket and TCP for data channel instead UPD?


Not sure what the datachannel has to do with all this? If you mean the WebRTC datachannel, that's SCTP over DTLS over UDP. WebSockets are not part of the picture. You're still free to share your data over websockets instead of datachannels, of course.

If by datachannel you mean "whatever carries audio and video", that's a different thing, and uses RTP/UDP. 

 

Where should be anyway installed the TURN server ( in my Infrastructure but publicly accesible?) 


You can either do that or use commercially available options. There are providers that charge you for using TURN servers. Not sure about the costs.

L.

alfonso....@crossover.com

unread,
Jun 9, 2017, 1:43:44 PM6/9/17
to meetecho-janus, alfonso....@crossover.com
Thanks guys for your time. Still confusing trying to see some light.

see the attached diagram please. In my architecture 50 % of the user cases will be n-n communications so not only P2P also Peer-To-Server.

as far as I know:
I need a media server to act as SFU / MCU , ---> 
Peer to Server.jpeg

alfonso....@crossover.com

unread,
Jun 9, 2017, 1:51:40 PM6/9/17
to meetecho-janus, alfonso....@crossover.com
OPs!!! I posted it unwittingly!

I continue:

I need a media server to act as SFU / MCU , ---> Janus
I need a signaling server as part of the application server (see the diagram), ----> Janus?

Thanks again guys. 
Peer to Server.jpeg

Ju Ju

unread,
Jun 9, 2017, 2:38:10 PM6/9/17
to alfonso....@crossover.com, meetecho-janus
>
>
> I need a media server to act as SFU / MCU , ---> Janus
> I need a signaling server as part of the application server (see the diagram), ——>
Not janus but for instance an http server (apache, lighthttp etc..) running html and js page
For instance the videoroom demo is composed of an html page and some js pages (videoroomtest.js, janus.js , adapter.js…)

alfonso....@crossover.com

unread,
Jun 9, 2017, 2:42:28 PM6/9/17
to meetecho-janus, alfonso....@crossover.com
Got it , some light now! thanks a lot JuJu!
Reply all
Reply to author
Forward
0 new messages