提交 2e0da1e8 authored 作者: Anthony Minessale's avatar Anthony Minessale

update

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1372 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 9fbaceaa
......@@ -99,14 +99,14 @@ DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run aclocal-1.9
ACLOCAL = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run aclocal-1.9
AMDEP_FALSE = #
AMDEP_TRUE =
AMTAR = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run tar
AMTAR = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run automake-1.9
AUTOCONF = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run automake-1.9
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
......@@ -126,8 +126,8 @@ ECHO_N = -n
ECHO_T =
EGREP = grep -E
EXEEXT =
F77 =
FFLAGS =
F77 = g77
FFLAGS = -g -O2
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
......@@ -138,7 +138,7 @@ LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LN_S = ln -s
LTLIBOBJS =
MAKEINFO = ${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run makeinfo
MAKEINFO = ${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run makeinfo
OBJEXT = o
PACKAGE = libspeakup
PACKAGE_BUGREPORT = BUG-REPORT-ADDRESS
......@@ -155,7 +155,7 @@ VERSION = 0.1
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_F77 =
ac_ct_F77 = g77
ac_ct_RANLIB = ranlib
ac_ct_STRIP = strip
am__fastdepCC_FALSE = #
......@@ -182,7 +182,7 @@ host_os = linux-gnu
host_vendor = pc
includedir = ${prefix}/include
infodir = ${prefix}/info
install_sh = /usr/src/freeswitch.trunk/libs/libspeakup/install-sh
install_sh = /usr/src/SVN/freeswitch/libs/libspeakup/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localstatedir = ${prefix}/var
......
差异被折叠。
......@@ -480,12 +480,12 @@ s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
s,@CYGPATH_W@,echo,;t t
s,@PACKAGE@,libspeakup,;t t
s,@VERSION@,0.1,;t t
s,@ACLOCAL@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run aclocal-1.9,;t t
s,@AUTOCONF@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run autoconf,;t t
s,@AUTOMAKE@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run automake-1.9,;t t
s,@AUTOHEADER@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run autoheader,;t t
s,@MAKEINFO@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run makeinfo,;t t
s,@install_sh@,/usr/src/freeswitch.trunk/libs/libspeakup/install-sh,;t t
s,@ACLOCAL@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run aclocal-1.9,;t t
s,@AUTOCONF@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run autoconf,;t t
s,@AUTOMAKE@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run automake-1.9,;t t
s,@AUTOHEADER@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run autoheader,;t t
s,@MAKEINFO@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run makeinfo,;t t
s,@install_sh@,/usr/src/SVN/freeswitch/libs/libspeakup/install-sh,;t t
s,@STRIP@,strip,;t t
s,@ac_ct_STRIP@,strip,;t t
s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
......@@ -493,7 +493,7 @@ s,@mkdir_p@,mkdir -p --,;t t
s,@AWK@,gawk,;t t
s,@SET_MAKE@,,;t t
s,@am__leading_dot@,.,;t t
s,@AMTAR@,${SHELL} /usr/src/freeswitch.trunk/libs/libspeakup/missing --run tar,;t t
s,@AMTAR@,${SHELL} /usr/src/SVN/freeswitch/libs/libspeakup/missing --run tar,;t t
s,@am__tar@,${AMTAR} chof - "$$tardir",;t t
s,@am__untar@,${AMTAR} xf -,;t t
s,@CC@,gcc,;t t
......@@ -535,9 +535,9 @@ s,@CXXDEPMODE@,depmode=gcc3,;t t
s,@am__fastdepCXX_TRUE@,,;t t
s,@am__fastdepCXX_FALSE@,#,;t t
s,@CXXCPP@,g++ -E,;t t
s,@F77@,,;t t
s,@FFLAGS@,,;t t
s,@ac_ct_F77@,,;t t
s,@F77@,g77,;t t
s,@FFLAGS@,-g -O2,;t t
s,@ac_ct_F77@,g77,;t t
s,@LIBTOOL@,$(SHELL) $(top_builddir)/libtool,;t t
s,@LIBOBJS@,,;t t
s,@LTLIBOBJS@,,;t t
......
差异被折叠。
......@@ -758,6 +758,13 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
}
payload = tech_pvt->read_frame.payload;
if (switch_rtp_has_dtmf(tech_pvt->rtp_session)) {
char dtmf[128];
switch_rtp_dequeue_dtmf(tech_pvt->rtp_session, dtmf, sizeof(dtmf));
switch_channel_queue_dtmf(channel, dtmf);
switch_set_flag(tech_pvt, TFLAG_DTMF);
}
if (switch_test_flag(tech_pvt, TFLAG_DTMF)) {
switch_clear_flag(tech_pvt, TFLAG_DTMF);
return SWITCH_STATUS_BREAK;
......@@ -767,12 +774,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
tech_pvt->read_frame.datalen = tech_pvt->last_read ? tech_pvt->last_read : tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
}
if (switch_rtp_has_dtmf(tech_pvt->rtp_session)) {
char dtmf[128];
switch_rtp_dequeue_dtmf(tech_pvt->rtp_session, dtmf, sizeof(dtmf));
switch_channel_queue_dtmf(channel, dtmf);
}
if (tech_pvt->read_frame.datalen > 0) {
bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
frames = (tech_pvt->read_frame.datalen / bytes);
......
......@@ -710,10 +710,9 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
}
bytes = sbytes;
}
if (bytes > 0) {
uint32_t effective_size = (uint32_t)(bytes - sizeof(srtp_mini_hdr_t));
if (rtp_session->recv_msg.header.pt == RTP_MAGIC_NUMBER) {
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_MINI)) {
switch_set_flag(rtp_session, SWITCH_RTP_FLAG_MINI);
......@@ -724,7 +723,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
continue;
}
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_MINI) && rtp_session->rpacket_size && effective_size > 0) {
uint32_t mfactor = (effective_size % rtp_session->rpacket_size);
......@@ -807,44 +806,44 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
return 0;
}
break;
}
rtp_session->last_read = switch_time_now();
rtp_session->next_read += rtp_session->ms_per_packet;
*payload_type = rtp_session->recv_msg.header.pt;
/* RFC2833 ... TBD try harder to honor the duration etc.*/
if (*payload_type == 101) {
unsigned char *packet = (unsigned char *) rtp_session->recv_msg.body;
int end = packet[1]&0x80;
int duration = (packet[2]<<8) + packet[3];
char key = switch_rfc2833_to_char(packet[0]);
/* RFC2833 ... TBD try harder to honor the duration etc.*/
if (rtp_session->recv_msg.header.pt == 101) {
unsigned char *packet = (unsigned char *) rtp_session->recv_msg.body;
int end = packet[1]&0x80;
int duration = (packet[2]<<8) + packet[3];
char key = switch_rfc2833_to_char(packet[0]);
/* SHEESH.... Curse you RFC2833 inventors!!!!*/
if ((time(NULL) - rtp_session->dtmf_data.last_digit_time) > 2) {
rtp_session->dtmf_data.last_digit = 0;
rtp_session->dtmf_data.dc = 0;
}
if (duration && end) {
if (key != rtp_session->dtmf_data.last_digit) {
char digit_str[] = {key, 0};
time(&rtp_session->dtmf_data.last_digit_time);
switch_rtp_queue_dtmf(rtp_session, digit_str);
/* SHEESH.... Curse you RFC2833 inventors!!!!*/
if ((time(NULL) - rtp_session->dtmf_data.last_digit_time) > 2) {
rtp_session->dtmf_data.last_digit = 0;
rtp_session->dtmf_data.dc = 0;
}
if (++rtp_session->dtmf_data.dc >= 3) {
if (duration && end) {
if (key != rtp_session->dtmf_data.last_digit) {
char digit_str[] = {key, 0};
time(&rtp_session->dtmf_data.last_digit_time);
switch_rtp_queue_dtmf(rtp_session, digit_str);
}
if (++rtp_session->dtmf_data.dc >= 3) {
rtp_session->dtmf_data.last_digit = 0;
rtp_session->dtmf_data.dc = 0;
}
rtp_session->dtmf_data.last_digit = key;
} else {
rtp_session->dtmf_data.last_digit = 0;
rtp_session->dtmf_data.dc = 0;
}
rtp_session->dtmf_data.last_digit = key;
} else {
rtp_session->dtmf_data.last_digit = 0;
rtp_session->dtmf_data.dc = 0;
continue;
}
break;
}
rtp_session->last_read = switch_time_now();
rtp_session->next_read += rtp_session->ms_per_packet;
*payload_type = rtp_session->recv_msg.header.pt;
if (*payload_type == SWITCH_RTP_CNG_PAYLOAD) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论