[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Linphone-developers] oRTP pb during SIP refresh
From: |
Simon Morlat |
Subject: |
Re: [Linphone-developers] oRTP pb during SIP refresh |
Date: |
Thu, 21 Jan 2010 10:58:26 +0100 |
Hi,
Yes it's a problem with particular gateways that do early-media or
session timers without media continuity.
Simon
Le jeudi 21 janvier 2010 à 10:43 +0100, Joerg Bergmann a écrit :
> Hi Simon,
>
> As I understand: When I open a call with Linphone, the first second of
> the stream is missing? When I do a call, my dialog partner says his
> name or simply "Hello". This is done in about one second, and mostly
> I'm missing that piece of stream... So I have problems with opening the
> conversation, mostly. Is this due to that Linphone feature? I would
> call it a bug, commercial phones do not have that feature.
>
> Joerg
>
> Am Donnerstag, den 21.01.2010, 10:22 +0100 schrieb Frédérik Rouleau:
> > Hi Simon,
> >
> > I cannot see why my patch is a problem. You are still locked to a
> > stream, it just enable to switch faster on a new stream when you ask
> > oRTP to.
> > Linphone has the same problem, at each refresh, you have a 1 second
> > silence (50 * 20ms). The gateway is a Cirpack, the same equipement
> > used by Free operator in France. Might be difficult to have any
> > upgrade on that side !!!
> > You also have this problem during ringing, when you answer the call,
> > the RTP stream is reset by the Cirpack, then you also have a 1 s
> > silence !
> > I am looking for a way to solve this issues. If you have better
> > suggestion, I am open to any proposal.
> >
> > Regards,
> >
> > Frédérik
> >
> >
> > 2010/1/19 Simon Morlat <address@hidden>
> > Hi Frédérik,
> >
> > I understand this change solves your problem, but it is not
> > really
> > compatible with what this SSRC checking was done for.
> > Initially the goal was to lock on the initial stream (and
> > discard any
> > others), and when one stream appears to be active (50 packet
> > received
> > without any other SSRC in between), we lock to this new
> > stream.
> > I think the gateway should not reinit the seq and timestamp
> > numbers.
> >
> > RFC4028 was implemented in linphone quite recently. If you
> > have both
> > last svn/git of linphone and last svn of eXosip2, and have
> > use_session_timers=1 in the [sip] section of the .linphonerc
> > config
> > file, they are enabled.
> >
> > Try it, this may workaround the gateway behaviour.
> >
> > Simon
> >
> > Le mardi 12 janvier 2010 à 16:03 +0100, Frédérik Rouleau a
> > écrit :
> >
> > > Hello all,
> > >
> > > I am using oRTP and a SIP gateway which support SIP REFRESH
> > (RFC
> > > 4028). So at a fixed interval (600 s) I receive a SIP UPDATE
> > but the
> > > gateway also reinit the SSRC et seq number of the RTP flow.
> > > The problem is that oRTP waits 1 second before it sends
> > SSRC_CHANGED
> > > message and during that ime I am loosing RTP paquets.
> > Looking into the
> > > code shows that there is a constant SSRC_CHANGED_THRESHOLD
> > set at 50
> > > setting this delay.
> > >
> > > Reducing the threshold might have some side effects but can
> > we add a
> > > kind of SSRC_change_pending state which set the flag
> > > RTP_SESSION_RECV_SYNC on the first SSRC change paquet. for
> > example the
> > > rtp_parse code will look like:
> > >
> > > if
> > (session->inc_same_ssrc_count>SSRC_CHANGED_THRESHOLD){
> > >
> > > /* store the sender rtp address to do
> > symmetric RTP */
> > > if (!session->use_connect){
> > > if (session->rtp.socket>0 &&
> > > session->symmetric_rtp){
> > > /* store the sender rtp address to
> > do
> > > symmetric RTP */
> > >
> > memcpy(&session->rtp.rem_addr,addr,addrlen);
> > > session->rtp.rem_addrlen=addrlen;
> > > }
> > > }
> > > session->rtp.rcv_last_ts = rtp->timestamp;
> > > session->rcv.ssrc=rtp->ssrc;
> > >
> > rtp_signal_table_emit(&session->on_ssrc_changed);
> > > }else if (session->ssrc_change_pending){
> > > session->ssrc_change_pending=FALSE;
> > > rtp_session_set_flag(session,
> > RTP_SESSION_RECV_SYNC);
> > > }else{
> > > /*discard the packet*/
> > > ortp_debug("Receiving packet with unknown
> > ssrc.");
> > > stats->bad++;
> > > ortp_global_stats.bad++;
> > > freemsg(mp);
> > > return;
> > > }
> > >
> > > What do you think about it ? If you agree I can make changes
> > and
> > > propose a patch.
> > >
> > > Regards,
> > >
> > >
> >
> > > _______________________________________________
> > > Linphone-developers mailing list
> > > address@hidden
> > > http://lists.nongnu.org/mailman/listinfo/linphone-developers
> >
> >
> >
> > _______________________________________________
> > Linphone-developers mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/linphone-developers
>
- [Linphone-developers] oRTP pb during SIP refresh, Frédérik Rouleau, 2010/01/12
- Re: [Linphone-developers] oRTP pb during SIP refresh, Simon Morlat, 2010/01/19
- Re: [Linphone-developers] oRTP pb during SIP refresh, Frédérik Rouleau, 2010/01/21
- Re: [Linphone-developers] oRTP pb during SIP refresh, Simon Morlat, 2010/01/21
- Re: [Linphone-developers] oRTP pb during SIP refresh, Frédérik Rouleau, 2010/01/21
- Re: [Linphone-developers] oRTP pb during SIP refresh, Frédérik Rouleau, 2010/01/25
- Re: [Linphone-developers] oRTP pb during SIP refresh, Simon Morlat, 2010/01/27