Skip to content
Snippets Groups Projects
Commit 6ff8f148 authored by Kinsey Moore's avatar Kinsey Moore
Browse files

Prevent Echo() from relaying control, null, and modem frames

Echo()'s description states that it echoes audio, video, and DTMF except for #
while it actually echoes any frame that it receives other than DTMF #.  This
was causing frame storms in the test suite in some circumstances where Echo()
was attached to both ends of a pair of local channels and control frames
were being periodically generated.  Echo()'s behavior and description have
been modifed so that it only echoes media and non-# DTMF frames.
........

Merged revisions 360033 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 360034 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@360036 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 3a231e09
No related branches found
No related tags found
No related merge requests found
......@@ -40,12 +40,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
/*** DOCUMENTATION
<application name="Echo" language="en_US">
<synopsis>
Echo audio, video, DTMF back to the calling party
Echo media, DTMF back to the calling party
</synopsis>
<syntax />
<description>
<para>Echos back any audio, video or DTMF frames read from the calling
channel back to itself. Note: If '#' detected application exits</para>
<para>Echos back any media or DTMF frames read from the calling
channel back to itself. This will not echo CONTROL, MODEM, or NULL
frames. Note: If '#' detected application exits.</para>
<para>This application does not automatically answer and should be
preceeded by an application such as Answer() or Progress().</para>
</description>
......@@ -70,7 +71,10 @@ static int echo_exec(struct ast_channel *chan, const char *data)
}
f->delivery.tv_sec = 0;
f->delivery.tv_usec = 0;
if (ast_write(chan, f)) {
if (f->frametype != AST_FRAME_CONTROL
&& f->frametype != AST_FRAME_MODEM
&& f->frametype != AST_FRAME_NULL
&& ast_write(chan, f)) {
ast_frfree(f);
goto end;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment