linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] Negative time stamp jump, proposed patch on oRTP 0


From: Emmanuel BUU
Subject: [Linphone-developers] Negative time stamp jump, proposed patch on oRTP 0.11
Date: Sun, 15 Oct 2006 17:28:45 +0200
User-agent: Thunderbird 1.5.0.7 (Macintosh/20060909)

Dear all,

I have encountered a case of negative time stamp jump when interacting with an Asterisk server. This typically happens when you accept the call on the asterisk side, then play a prompt then bridge the call to another SIP phone.

Please find attached  a patch on rtpparse.cthat calls the signal timestamp_jump if RTP timestamp + session-> ts_jump < session->timestamp


--
logo

Emmanuel BUU - Gérant / General Manager - IVèS

Mobile : +33 6 07 55 28 71
--- rtpparse.c.ori      2006-10-14 23:54:09.000000000 +0200
+++ rtpparse.c  2006-10-15 00:01:28.000000000 +0200
@@ -181,6 +181,18 @@
                else if 
(RTP_TIMESTAMP_IS_STRICTLY_NEWER_THAN(session->rtp.rcv_last_ts,rtp->timestamp)){
                        /* avoid very old packet to enqueued, because the user 
is no more supposed to get them */
                        ortp_debug("rtp_parse: silently discarding very old 
packet (ts=%i)",rtp->timestamp);
+                        /* Call timstamp jumb in case of
+                         * large negative Ts jump or if ts is set to 0
+                         */
+
+                        if (rtp->timestamp == 0
+                             || 
+                            
RTP_TIMESTAMP_IS_STRICTLY_NEWER_THAN(session->rtp.rcv_last_ts, rtp->timestamp + 
session->rtp.ts_jump) )
+                        {
+                             ortp_warning("rtp_parse: negative timestamp 
jump");
+                            rtp_signal_table_emit2(&session->on_timestamp_jump,
+                                                    (long)&rtp->timestamp);
+                        }
                        freemsg(mp);
                        stats->outoftime++;
                        ortp_global_stats.outoftime++;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]