[Freeswitch-svn] [commit] r7168 - freeswitch/trunk/src
Freeswitch SVN
mikej at freeswitch.org
Thu Jan 10 20:27:24 EST 2008
Author: mikej
Date: Thu Jan 10 20:27:24 2008
New Revision: 7168
Modified:
freeswitch/trunk/src/switch_rtp.c
Log:
fix 160 timestamps on 2833 dtmf
Modified: freeswitch/trunk/src/switch_rtp.c
==============================================================================
--- freeswitch/trunk/src/switch_rtp.c (original)
+++ freeswitch/trunk/src/switch_rtp.c Thu Jan 10 20:27:24 2008
@@ -105,7 +105,7 @@
unsigned int out_digit_sofar;
unsigned int out_digit_dur;
uint16_t in_digit_seq;
- int32_t timestamp_dtmf;
+ uint32_t timestamp_dtmf;
char last_digit;
unsigned int dc;
time_t last_digit_time;
@@ -818,7 +818,7 @@
rtp_session->te,
rtp_session->dtmf_data.timestamp_dtmf,
&flags);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Send %s packet for [%c] ts=%d dur=%d seq=%d\n",
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Send %s packet for [%c] ts=%u dur=%d seq=%d\n",
loops == 1 ? "middle" : "end", rtp_session->dtmf_data.out_digit, rtp_session->dtmf_data.timestamp_dtmf,
rtp_session->dtmf_data.out_digit_sofar, rtp_session->seq);
}
@@ -845,7 +845,6 @@
rtp_session->dtmf_data.timestamp_dtmf = rtp_session->last_write_ts + samples;
-
switch_rtp_write_manual(rtp_session,
rtp_session->dtmf_data.out_digit_packet,
4,
@@ -856,7 +855,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG,
SWITCH_LOG_DEBUG,
- "Send start packet for [%c] ts=%d dur=%d seq=%d\n",
+ "Send start packet for [%c] ts=%u dur=%d seq=%d\n",
rtp_session->dtmf_data.out_digit,
rtp_session->dtmf_data.timestamp_dtmf,
rtp_session->dtmf_data.out_digit_sofar,
@@ -1447,8 +1446,11 @@
}
if (send) {
+ uint32_t last_ts = ntohl(send_msg->header.ts);
- rtp_session->last_write_ts = ntohl(send_msg->header.ts);
+ if (last_ts) {
+ rtp_session->last_write_ts = last_ts;
+ }
rtp_session->last_write_seq = rtp_session->seq;
if (rtp_session->timer.interval) {
switch_core_timer_check(&rtp_session->timer);
@@ -1662,6 +1664,10 @@
return -1;
}
+ if (ts) {
+ rtp_session->last_write_ts = ts;
+ }
+
rtp_session->last_write_seq = rtp_session->seq;
return (int) bytes;
More information about the Freeswitch-svn
mailing list