VideoRoom plugin: new feature request - Temporary Rooms

196 views
Skip to first unread message

Igor Khomenko

unread,
Feb 15, 2018, 7:12:14 AM2/15/18
to meetecho-janus
Hi everybody,

I would like to request a new feature for VideoRoom plugin - Temporary Rooms.

If you are familiar with XMPP, especially with its XEP-0045, you should understand what does it mean https://xmpp.org/extensions/xep-0045.html


Temporary Room
A room that is destroyed if the last occupant exits; antonym: Persistent Room.


Also,

If the room does not already exist when the user seeks to enter it, the service SHOULD create it;


This is a useful feature for Janus if we integrate it with already existent application.


Let's say we integrate Janus with existing Chat application, where people can have chats between each other - private and group chats. Chat is a persistent record in DB.

Let's say sometimes they want to have a call in particular chat. With current Janus implementation they have to create a Janus room beforehand, but this is not optimal because of the following things:

  • people do not use video chat a lot, but this room will consume Janus RAM all the time.
  • Janus do not provide a convenient storage for rooms, all the rooms are in txt file now, which is not optimal if we have lots of rooms.

Just think about 2 above things with case of 100K active Chats.


What I propose is to have a feature which is called Temporary Rooms.

Such room will be create on Janus on 1st user join and will be removed on last user exit.

For room id we can use a Chat id from original app.

It could be a global VideoRoom plugin config, e.g. treat all rooms as Temporary if room does not exist on 1st user join or something similar.

I believe it can be a very useful thing when integrate Janus on top of existing application.


Please consider this feature.

Lorenzo Miniero

unread,
Feb 15, 2018, 9:56:04 AM2/15/18
to meetecho-janus
To be honest, we're not particularly interested in this, and so would be pretty low in our priority list. We already support "volatile" rooms (rooms you create that are not permanently saved to the configuration file), so a behaviour like this can already be replicated using something like listparticipants on leave, and if that's 0 call destroy. As always, we'd consider contributions that implement this.

L.

Igor Khomenko

unread,
Feb 27, 2018, 9:18:45 AM2/27/18
to meetecho-janus
Thanks Lorenzo,

unfortunately I'm not happy with this solution because it requires additional API calls and also we can got into a de-sync issue.

XEP-0045 Temporary Rooms implementation looks very good here

I have my own fork with implementation of this approach, but I'm not happy with it quality, will try to make it better and then share

Lorenzo Miniero

unread,
Feb 27, 2018, 9:22:00 AM2/27/18
to meetecho-janus
Il giorno martedì 27 febbraio 2018 15:18:45 UTC+1, Igor Khomenko ha scritto:
Thanks Lorenzo,

unfortunately I'm not happy with this solution because it requires additional API calls and also we can got into a de-sync issue.

XEP-0045 Temporary Rooms implementation looks very good here

I have my own fork with implementation of this approach, but I'm not happy with it quality, will try to make it better and then share



Sure, if you can clean that up and create a pull request we'll definitely review, thanks!

L.

Peter T

unread,
Apr 2, 2018, 4:44:47 PM4/2/18
to meetecho-janus
Hi Igor,

Did you manage to finish implementation of this feature?

Igor Khomenko

unread,
Apr 3, 2018, 11:34:52 AM4/3/18
to meetecho-janus
Hi Peter,

what I did for now is built 'join not existent' room feature.
If somebody joins a non exist room then it will be created automatically.

This is tested and works well.

It still looks more like a 'hard-code' patch, not a configuration option.

If you want I can share a patch file of it

thanks
Reply all
Reply to author
Forward
0 new messages