diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-08-13 01:12:19 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-08-13 01:12:19 +0000 |
commit | 68b80c39d0c3d3a3a8bd4c40de53e2cbe72d03b9 (patch) | |
tree | 66138b5bf2a9495949a38741d80e9a0668858873 /channels/chan_agent.c | |
parent | fcbcad7af7a3d35e5ed2b6bce9529da4144f3aa6 (diff) |
In agent, forward codecs along
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1306 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-x | channels/chan_agent.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index b3ae6f0b8..53dd4e7e9 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -226,10 +226,11 @@ static struct ast_frame *agent_read(struct ast_channel *ast) 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 */ @@ -278,9 +279,10 @@ static int agent_write(struct ast_channel *ast, struct ast_frame *f) 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); |