diff -urN asterisk-base/channel.c asterisk-new/channel.c --- asterisk-base/channel.c 2005-06-24 15:17:42.000000000 +0400 +++ asterisk-new/channel.c 2005-06-30 22:46:06.000000000 +0400 @@ -1822,8 +1822,6 @@ } else f = fr; if (f) { - res = chan->tech->write(chan, f); - if (f->frametype == AST_FRAME_VOICE && chan->spiers) { struct ast_channel_spy *spying; for (spying = chan->spiers; spying; spying=spying->next) { @@ -1854,6 +1852,8 @@ if (ast_writestream(chan->monitor->write_stream, f) < 0) ast_log(LOG_WARNING, "Failed to write data to channel monitor write stream\n"); } + + res = chan->tech->write(chan, f); } else res = 0; }