Hello Sebastian!

This issue happens without SIP integration. You can see it with laslo
debuger.
After somebody click "(Re) start audio/video" button, other clients receive
newStream twice.

Here part of log from laszlo debuger:
**** closeStream: «Object#935| {allowRecording: true, avsettings: 'av',
broadCastID: 5, ...
sendVarsToMessageWithClient : «Array(0)#937| []» «Array(3)#938|
['avsettings', '0', 'av']» avsettings
newStream: «Object#939| {allowRecording: true, avsettings: 'av',
broadCastID: 6, ...
**** closeStream: «Object#942| {allowRecording: true, avsettings: 'av',
broadCastID: 6, ...
newStream: «Object#944| {allowRecording: true, avsettings: 'av',
broadCastID: 6, ...

Sometimes i see that client receive second closeStream before newStream and
stream is duplicated.

I checked log when SIP user connects:
newStream: «Object#975| {allowRecording: true, ..., broadCastID: 10,
canDraw: false, ...
addNewUser: «Object#977| {allowRecording: true, avsettings: 'av',
broadCastID: 10, ...
### initializeStreams addClientItem: «Date#978| Wed Feb 13 13:01:03
GMT+0700 2013» false 11 2 null
participantList addItem: «Object#977| {allowRecording: true, avsettings:
'av', broadCastID: 10, ...
object.isSuperModerator false
updateByMod, false 2
onmicMutedStatusChangedItem :3: b8d379ff26758fd4ff0ebe8de3921e54 false
newStream: «Object#980| {allowRecording: true, avsettings: 'av',
broadCastID: 10, ...

Actually newStream called twice in this case. So setSipTransport should be
fixed.


2013/2/13 seba.wag...@gmail.com <seba.wag...@gmail.com>

> I actually don't understand:
> ((IServiceCapableConnection) conn).invoke("newStream", new
> Object[]{currentClient}, this);
> in the method setSipTransport
>
> Actually _every_ stream that starts broadcasting will trigger an Event in
> OpenMeetings.
> We catch those "stream start events" in the method:
> @Override
>     public synchronized void streamPublishStart(IBroadcastStream stream)
>
> In the ScopeApplicationAdapter.
>
> Where this stream is coming from, if its screensharing or audio/video, it
> does not matter.
> I would expect that if a SIP user connects via red5SIP, this method will be
> still invoked, as it is just a "yet another stream" from the view of the
> red5 server.
> So why does "setSipTransport" call this method actively?
> "streamPublishStart" (and through that "newStream") should be called
> automatically as soon as the SIP user starts to stream audio to red5.
>
> You just need to make sure that the Client (former RoomClient) has the
> right flags set _before_ you start to stream. Cause the method
> "streamPublishStart" will send a client object to all users. And you can't
> pass any variables to "streamPublishStart" as this is a method/event
> listener of Red5.
>
> Calling "addNewUser" from "setSipTransport" makes sense for me, as this
> logic is the same like in "setRoomValues". But calling "newStream" from
> "setSipTransport" makes no sense to me. From my point of view you would get
> a duplicated "newStream" method call everytime a SIP user connects:
> 1) When setSipTransport is invoked
> 2) When the actual stream starts
>
> Can you check with that with Timur?
>
> Sebastian
>
>
> 2013/2/13 seba.wag...@gmail.com <seba.wag...@gmail.com>
>
> > Is this a problem that only happens with SIP integration or also
> > standalone?
> >
> > I will have to test that first. It sounds a bit weird, but I can't test
> it
> > as I don have 5-7 pc's.
> > And using a single pc makes no sense when testing audio/video.
> >
> > We have two rtmp connection per stream, but that would still not explain
> > your issues with the id.
> > Which Id are your refering to exactly? broadCastId or streamId ?
> > broadcastId would be the name of the stream under which the user publishs
> > (aka NetStream) streamId is the rtmp connection (aka NetConnection),
> > you connect to: rtmp://blabla:1935/openmeetings/
> > And each client will publish his webcam+micro in one stream, with the
> name
> > of the "broadCastId".
> >
> > The StreamId can stay the same, for example if you re-publish your
> > settings, the NetConnection will always stay, but each time your webcam
> is
> > published a new "broadCastId" is requested from the server. (See
> > ScopeApplicationAdapter::getBroadCastId()). It is better to use a fresh
> > broadCastId each time you make a new NetStream.
> >
> > "setSipTransport"  and "streamPublishStart" are new only methods that
> > invoke "newStream" as event in the client.
> >
> > Sebastian
> >
> >
> > 2013/2/13 Maxim Solodovnik <solomax...@gmail.com>
> >
> >> Hello Sebastian,
> >>
> >> sorry for double post, but I would like to gain your attention at the
> >> following problem:
> >>
> >>
> >> if there is lot of users lots of users in the room (5-7) some of them
> >> can't hear some others until "reload" of streams on the client.
> >> Timur told me that according to the log of red5sip there is weird queue
> >> of method calls: newStream gets called twice. Additionally if user has
> >> stream with id 24 and select "reload" the following methods are gets
> called:
> >> closeStream(25) // NOTE 25 not 24
> >> then
> >> newStream(25)
> >>
> >> Maybe you can say what is wrong?
> >>
> >> --
> >> WBR
> >> Maxim aka solomax
> >>
> >
> >
> >
> > --
> > Sebastian Wagner
> > https://twitter.com/#!/dead_lock
> > http://www.webbase-design.de
> > http://www.wagner-sebastian.com
> > seba.wag...@gmail.com
> >
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wag...@gmail.com
>



-- 
Timur Tleukenov

Reply via email to