It's not actual anymore. Sorry for disturbing.
2013/6/6 Maxim Solodovnik <[email protected]> > I'll take a look at it later today > On Jun 6, 2013 7:46 PM, "Artyom Horuzhenko" <[email protected]> wrote: > > > Hello people, > > > > We have a bug with reconnection. I did next steps for diagnosing it: > > 1. Increase connection attempts count to 300 (hibRtmpConnection.lzx:232) > > 2. Enter the room > > 3. Unplug network cable for a short time > > 4. User exited to dashboard > > > > I repeated this test for 2.0, but it was failed again. I did next > > modification in hibRtmpConnection: > > > > Index: WebContent/src/base/hibernate/hibRtmpConnection.lzx > > =================================================================== > > --- WebContent/src/base/hibernate/hibRtmpConnection.lzx (revision > 1485993) > > +++ WebContent/src/base/hibernate/hibRtmpConnection.lzx (working copy) > > @@ -64,6 +64,7 @@ > > <attribute name="reconnectedRoomInstance" value="null" /> > > > > <attribute name="reconnectionAction" value="false" type="boolean" /> > > + <attribute name="connectionWasBroken" value="false" type="boolean" > /> > > <attribute name="reconnectObjRef" value="null" /> > > > > <attribute name="userobject" value="null" /> > > @@ -195,6 +196,8 @@ > > <method name="reconnectComplete"> > > if (this.reconnectionAction){ > > this.reconnectionAction = false; > > + this.connectionWasBroken = false; > > + this.counterror = 0; > > this.reconnectObjRef.reconnectSuccess(); > > } else if (this.reconnectAfterRoomleft) { > > loadContentByTempActionForNavi(); > > @@ -213,21 +216,26 @@ > > new lz.labelerrorPopup(canvas,{errorlabelid:606}); > > canvas._loadingAll.hideContentOnly(); > > return; > > - } else if (this.reconnectionAction){ > > + } else if (this.reconnectionAction && !connectionWasBroken){ > > this.connect(); > > - } else if (this.reconnectAfterRoomleft) { > > + } else if (this.reconnectAfterRoomleft && > > !connectionWasBroken) { > > if ($debug) Debug.write("this.reconnectAfterRoomleft: > > ",this.reconnectAfterRoomleft); > > this.counterror=0; > > this.connect(); > > } else { > > - this.useRTMPT = true > > + this.useRTMPT = true; > > var src = getUrl(); > > this.setAttribute('src',src); > > //Debug.write("new src ",this.src); > > - if (this.counterror<3){ > > + if (this.counterror<300){ > > this.counterror++; > > - //Debug.write("try ",this.counterror,"one"); > > + Debug.write("try " + this.counterror); > > > > canvas.thishib.loaderVar.error.setAttribute('text',"try > > "+this.counterror); > > + if (this.status == > > "NetConnection.Connect.NetworkChange") { > > + this.reconnectionAction = true; > > + this.connectionWasBroken = true; > > + } > > this.connect(); > > } else { > > //Debug.write("connection failed"); > > > > Reconnection had started to work, but there were some isues: > > 1. It took around two seconds or more > > 2. Some video windows were needed to be reloaded > > 3. Sometimes the user had left the room after reconnection within 1-2 > > minutes > > > > I think my way is not correct enough. Is there anybody who could recomend > > better way of entering rooms? > > > > > > 2013/6/6 Alexei Fedotov <[email protected]> > > > > > [Now with better list and subject] > > > > > > On Thu, Jun 6, 2013 at 3:31 PM, Alexei Fedotov < > [email protected] > > > > > > wrote: > > > > [We have just discussed where this functionality vanished with Artyom > > > > and Irina.] > > > > > > > > > > > > > > > On Thu, Dec 1, 2011 at 5:56 PM, [email protected] > > > > <[email protected]> wrote: > > > >> 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. > > > > > >
