Write to read monitor before translation

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2003-05-28 19:38:02 +00:00
parent b27b9b09c6
commit 37d41292bb

View File

@@ -1064,10 +1064,17 @@ struct ast_frame *ast_read(struct ast_channel *chan)
ast_log(LOG_NOTICE, "Dropping incompatible voice frame on %s of format %d since our native format has changed to %d\n", chan->name, f->subclass, chan->nativeformats); ast_log(LOG_NOTICE, "Dropping incompatible voice frame on %s of format %d since our native format has changed to %d\n", chan->name, f->subclass, chan->nativeformats);
ast_frfree(f); ast_frfree(f);
f = &null_frame; f = &null_frame;
} else if (chan->pvt->readtrans) { } else {
f = ast_translate(chan->pvt->readtrans, f, 1); if (chan->monitor && chan->monitor->read_stream ) {
if (!f) if( ast_writestream( chan->monitor->read_stream, f ) < 0 ) {
f = &null_frame; ast_log(LOG_WARNING, "Failed to write data to channel monitor read stream\n");
}
}
if (chan->pvt->readtrans) {
f = ast_translate(chan->pvt->readtrans, f, 1);
if (!f)
f = &null_frame;
}
} }
} }
@@ -1089,11 +1096,7 @@ struct ast_frame *ast_read(struct ast_channel *chan)
/* Answer the CDR */ /* Answer the CDR */
ast_setstate(chan, AST_STATE_UP); ast_setstate(chan, AST_STATE_UP);
ast_cdr_answer(chan->cdr); ast_cdr_answer(chan->cdr);
} else if( ( f->frametype == AST_FRAME_VOICE ) && chan->monitor && chan->monitor->read_stream ) { }
if( ast_writestream( chan->monitor->read_stream, f ) < 0 ) {
ast_log(LOG_WARNING, "Failed to write data to channel monitor read stream\n");
}
}
pthread_mutex_unlock(&chan->lock); pthread_mutex_unlock(&chan->lock);
/* Run any generator sitting on the line */ /* Run any generator sitting on the line */