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