summaryrefslogtreecommitdiff
path: root/channels/chan_local.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2005-03-05 04:35:23 +0000
committerMark Spencer <markster@digium.com>2005-03-05 04:35:23 +0000
commit0eb1f2ec44e8262602a29ed3e34717f6ae132f9b (patch)
tree84cdd3ef40c851eb84f4fa743570f690cce52b0e /channels/chan_local.c
parent6f2ed85340892715fe3d1cf14e179f31aa84a253 (diff)
If we're only queueing audio, don't queue when we really want to engage the masquerade
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5145 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_local.c')
-rwxr-xr-xchannels/chan_local.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 994f900f3..62ae7a8c0 100755
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -206,8 +206,14 @@ static int local_write(struct ast_channel *ast, struct ast_frame *f)
/* Just queue for delivery to the other side */
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
- res = local_queue_frame(p, isoutbound, f, ast);
- check_bridge(p, isoutbound);
+ if (f && (f->frametype == AST_FRAME_VOICE))
+ check_bridge(p, isoutbound);
+ if (!p->alreadymasqed)
+ res = local_queue_frame(p, isoutbound, f, ast);
+ else {
+ ast_log(LOG_DEBUG, "Not posting to queue since already masked on '%s'\n", ast->name);
+ res = 0;
+ }
ast_mutex_unlock(&p->lock);
return res;
}