New functionality

29 views
Skip to first unread message

German Grekhov

unread,
Nov 22, 2011, 3:12:34 AM11/22/11
to seba....@gmail.com, openmeet...@googlegroups.com
Sebastian,

I want to talk about some new functionality. First of all I want to talk about "give exclusive audio" (give the floor) functionality. This functionality is very popular among our russian consumers, and it very good to include it to the trunk version. Because many of people have cheap microphones and they listen to some noise during their conference if more than one people talk simultaneously. Another reason is providing a new interesting feature that gives a user more opportunities in his conference.

Yes, it is a special feature therefore it is some controversial, and you are not fully agree about it.
So, we offer to make a new type of conference room which is called something like  "Microphone permission room" or just "Microphone room". Every user at this room type could use this functionality. But other room types would not provide it.

And our implementation of this functionality have changed from the last time we communicated about it.
There are next changes:
1) "Give the floor" button is not placed on the left user list, but it is placed on the video window. If a user move his mouse into some video window this button appears in the center of it. And it disappears after moving the mouse out of the video window. It was made because it provides a fast way to give the floor to somebody. Old implementation let a user make several clicks to give the floor, but not only one.
2) This button is a big button, because it is more handy for using it.
3) Every user could give the floor himself, but he can't give it another user. Is was made for avoiding some chaos at the conference.
4) A moderator of the conference could give the floor every user.
5) A hot-key was added. If you press F12 you will give the floor yourself.

I can send you the patch with it and you will check these thing. Maybe you will have any comments.

Thank you. Best regards,
German Grekhov.

seba....@gmail.com

unread,
Nov 22, 2011, 3:39:25 AM11/22/11
to German Grekhov, openmeet...@googlegroups.com
Hi German,

the problem about the "exclusive audio" was not the functionality as, it was a good idea to add it, But the implementation had some issues. There where calls in the code that simply where referencing nowhere. Also it seemed to me that you've put the button in the video-view to avoid need to code the logic behind such a button in the user list :)))
I still plan to add this functionality again, I just had no time yet.

About muting other to avoid noises from bad microphones:
The other theory about doing such kind of noise reduction is the way other video-conferencing application have done it: Instead of "giving" exclusive audio, you have a button "Push to Talk", that means that your micro is only enabled as long as you hold the button.
That way also two parties or more can speak at a time without any need to somebody to enable or disable the audio.

I don't understand what you mean by the term "giving floor to somebody"?

Maybe we could discuss those functionality that you propose and then implement some compromise.

Sebastian

2011/11/22 German Grekhov <german....@gmail.com>



--
Sebastian Wagner
http://www.openmeetings.de
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba....@gmail.com

German Grekhov

unread,
Nov 22, 2011, 4:01:27 AM11/22/11
to seba....@gmail.com, openmeet...@googlegroups.com
Ok, maybe I have already forgotten why you didn't include this to the trunk...
But we have moved this button to the video-view after receiving the users feedback. Those placement of button was very unhandy for users and they didn't clearly understand how to use it and how it worked. But this implementation was successfully received by them. It is very clear way of giving exclusive audio.

I remember that you wanted to give this button more complex logic. But I think that this logic is very complex for users too. They want to use some fast and handy ways (and attractive). Your solution is not so clear, fast and handy for a simple user's work. So, I offer you look at our implementation, may be you will change your opinion.

And the last... "Give the floor smb" means "give smb permission to talk at the conference". It is a synonym for "give smb exclusive audio" :)

German.

seba....@gmail.com

unread,
Nov 22, 2011, 4:06:02 AM11/22/11
to German Grekhov, openmeet...@googlegroups.com
Ok!

is your patch developed against trunk ?

German Grekhov

unread,
Nov 23, 2011, 1:30:25 AM11/23/11
to seba....@gmail.com, openmeet...@googlegroups.com
Sebastian,

I have made a patch against current trunk. This patch is not full because there is no compatibility with current microphone buttons on the user list. Also this patch doesn't contain those new room type that I told about. I just want to show you the idea, just want to show our implementation of the functionality for this room:
1) every user can give himself an exclusive audio
2) a moderator can give everyone an exclusive audio
3) you can also press F12 to give yourself an exclusive audio

There is a new picture of microphone in the patch.

Best regards,
German Grekhov.

exclusive-audio.patch
mic.png

seba....@gmail.com

unread,
Nov 24, 2011, 4:32:31 AM11/24/11
to German Grekhov, openmeet...@googlegroups.com
Hi German,

the patch seems to be okay, didn't test yet but actually it only changes 3 files, so it should be no big deal.

In the baseVideoObject.lzx
var itIsMyVideo = (canvas.publicSID == this.publicSID);
this is not needed, there is a param: isremote
So you can write:
if (canvas.ismoderator || !this.isremote) {

Instead of x="${(parent.width)*0.5 - 20}" y="${(parent.height)*0.5 - 20}"
you could also use: valign="middle" align="center"

Lets commit it, I will test the UI result later.

Sebastian

2011/11/23 German Grekhov <german....@gmail.com>

seba....@gmail.com

unread,
Nov 24, 2011, 4:34:21 AM11/24/11
to German Grekhov, openmeet...@googlegroups.com
++ don't forget to put your keydownhandler in ALL conference rooms, but just the roomtype "conference".
Or even better put the keydown listener in a global file that does never change. You need to check then

if (canvas._videocontainer != null) {
...
}

to see if there is currently a video conference room open.

Sebastian

seba....@gmail.com

unread,
Nov 24, 2011, 4:44:25 AM11/24/11
to German Grekhov, openmeet...@googlegroups.com
And it would be good if you could extend your logic to be able to change the key-configuration:

The F12 button is maybe not the optimum (you can think about the number of emails in the mailing list  from people "where can I change the key code" :))

So probably you could set this key in Administration > Configuration.

There is a hook in the client that loads a number of config keys from the server to the client, I can lookup this hook if you can't find it.
So it would be very handy if you could make this config key configurable in the global configuration.

Sebastian

seba....@gmail.com

unread,
Nov 24, 2011, 4:58:04 AM11/24/11
to German Grekhov, openmeet...@googlegroups.com
Also I think you can very simple integrate it with the current mute functionality:
In the canvas there is a function "setMuteStatus" that expects a "RoomClient" object.

You could modify this function, and it will update the status icons in the user list according to your settings.

If somebody is "muted" the icons in the user-list have to show that.

Sebastian

seba....@gmail.com

unread,
Nov 24, 2011, 4:59:28 AM11/24/11
to German Grekhov, openmeet...@googlegroups.com
*In the canvas there is a function "setMuteStatus"*
=> In mainMethods.lzx Line: 781

you can call this function with canvas.setMuteStatus(rcl) (where rcl is a RoomClient object/array)

Sebastian

German Grekhov

unread,
Dec 1, 2011, 7:47:46 AM12/1/11
to seba....@gmail.com, openmeet...@googlegroups.com
Hello, Sebastian.

I have done my work. I've made refactoring you asked and also added a key to the configuration management. Now it contains "exclusive.audio.keycode" key that is 123 by default (F12). Revision 4647.

German.

Maxim Solodovnik

unread,
Dec 1, 2011, 7:50:49 AM12/1/11
to openmeet...@googlegroups.com, seba....@gmail.com
Hello German,

from my point of view 123 is not good enough for the end user
Can you enhance it to be "F12" or Ctrl+Shift+Esc, etc.?


--
You received this message because you are subscribed to the Google Groups "OpenMeetings developers" group.
To post to this group, send email to openmeet...@googlegroups.com.
To unsubscribe from this group, send email to openmeetings-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/openmeetings-dev?hl=en.



--
WBR
Maxim aka solomax

seba....@gmail.com

unread,
Dec 1, 2011, 8:56:23 AM12/1/11
to German Grekhov, openmeet...@googlegroups.com
Hi German,

I have moved your call to get the key into a more general loading sequence (r4648, r4649, r4650):
In MainService there is a new method:
public List<Configuration> getGeneralOptions(String SID) {

the key will now only load one time: When the whole app is loaded (hibrtmpConection.lzx Line 632 instead of every time you enter the conference room.
I guess we will have some more configs in the future to load initialy with this method.

Calling a method when you enter a room in baseConferenceRoom is slightly dangerous:
The OepnMeetings Client Application does re-connect the NetConnection _globally_ everytime you enter a room, cause it needs to change the connection URL / scope from:
rtmp://$host:$port/openmeetings/hibernate
to
rtmp://$host:$port/openmeetings/$room_id

(see for example participants.lzx Line 33 => disconnect() in the oninit method )

So calling a method exactly when entering the room can have some unexpected side effects. Maybe there is not even a connection at this moment.

The other reason for moving this remotecall away from baseConferenceRoom.lzx is:
Entering a conference room should happens really fast, and actually the NetConnection will handles method calls sequencly, that means you can call 10 methods at the same time but actually the NetConnection does handle them One-By-One, not parallel. There is no plan to change that to a connection pooling yet.
... I've done some performance optimization in the past to change the NetConnection into a Connection Pool that uses some kind of "round-rubin" mechanism to get a free NetConnection, but OpenMeetings has no such optimization yet.

Sebastian



2011/12/1 Maxim Solodovnik <solom...@gmail.com>

Alexei Fedotov

unread,
Jun 6, 2013, 7:31:48 AM6/6/13
to openmeet...@googlegroups.com, German Grekhov
[We have just discussed where this functionality vanished with Artyom
and Irina.]
--
With best regards / с наилучшими пожеланиями,
Alexei Fedotov / Алексей Федотов,
http://dataved.ru/
+7 916 562 8095
Reply all
Reply to author
Forward
0 new messages