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.
> > >
> >
>

Reply via email to