struct ast_frame *f = NULL;
static struct ast_frame null_frame = { AST_FRAME_NULL, };
static struct ast_frame answer_frame = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER };
- ast_pthread_mutex_lock(&p->lock);
- if (p->chan)
+ ast_pthread_mutex_lock(&p->lock);
+ if (p->chan) {
+ p->chan->pvt->rawreadformat = ast->pvt->rawreadformat;
f = ast_read(p->chan);
- else
+ } else
f = &null_frame;
if (!f) {
/* If there's a channel, hang it up (if it's on a callback) make it NULL */
struct agent_pvt *p = ast->pvt->pvt;
int res = -1;
ast_pthread_mutex_lock(&p->lock);
- if (p->chan)
+ if (p->chan) {
+ p->chan->pvt->rawwriteformat = ast->pvt->rawwriteformat;
res = ast_write(p->chan, f);
- else
+ } else
res = 0;
CLEANUP(ast, p);
ast_pthread_mutex_unlock(&p->lock);