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 <[email protected]>

> 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.?
>
> On Thu, Dec 1, 2011 at 19:47, German Grekhov <[email protected]>wrote:
>
>> 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.
>>
>> 2011/11/24 [email protected] <[email protected]>
>>
>> *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
>>>
>>> 2011/11/24 [email protected] <[email protected]>
>>>
>>> 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
>>>>
>>>> 2011/11/24 [email protected] <[email protected]>
>>>>
>>>> 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
>>>>>
>>>>> 2011/11/24 [email protected] <[email protected]>
>>>>>
>>>>> ++ 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
>>>>>>
>>>>>> 2011/11/24 [email protected] <[email protected]>
>>>>>>
>>>>>> 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 <[email protected]>
>>>>>>>
>>>>>>>> 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.
>>>>>>>>
>>>>>>>> 2011/11/22 [email protected] <[email protected]>
>>>>>>>>
>>>>>>>> Ok!
>>>>>>>>>
>>>>>>>>> is your patch developed against trunk ?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Sebastian
>>>>>>>>>
>>>>>>>>> 2011/11/22 German Grekhov <[email protected]>
>>>>>>>>>
>>>>>>>>>> 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.
>>>>>>>>>>
>>>>>>>>>> 2011/11/22 [email protected] <[email protected]>
>>>>>>>>>>
>>>>>>>>>> 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 <[email protected]>
>>>>>>>>>>>
>>>>>>>>>>>> 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.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Sebastian Wagner
>>>>>>>>>>> http://www.openmeetings.de
>>>>>>>>>>> http://www.webbase-design.de
>>>>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Sebastian Wagner
>>>>>>>>> http://www.openmeetings.de
>>>>>>>>> http://www.webbase-design.de
>>>>>>>>> http://www.wagner-sebastian.com
>>>>>>>>> [email protected]
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Wagner
>>>>>>> http://www.openmeetings.de
>>>>>>> http://www.webbase-design.de
>>>>>>> http://www.wagner-sebastian.com
>>>>>>> [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sebastian Wagner
>>>>>> http://www.openmeetings.de
>>>>>> http://www.webbase-design.de
>>>>>> http://www.wagner-sebastian.com
>>>>>> [email protected]
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sebastian Wagner
>>>>> http://www.openmeetings.de
>>>>> http://www.webbase-design.de
>>>>> http://www.wagner-sebastian.com
>>>>> [email protected]
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sebastian Wagner
>>>> http://www.openmeetings.de
>>>> http://www.webbase-design.de
>>>> http://www.wagner-sebastian.com
>>>> [email protected]
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> http://www.openmeetings.de
>>> http://www.webbase-design.de
>>> http://www.wagner-sebastian.com
>>> [email protected]
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "OpenMeetings developers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/openmeetings-dev?hl=en.
>>
>
>
>
> --
> WBR
> Maxim aka solomax
>



-- 
Sebastian Wagner
http://www.openmeetings.de
http://www.webbase-design.de
http://www.wagner-sebastian.com
[email protected]

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

Reply via email to