diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-28 19:13:53 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-28 19:13:53 +0000 |
commit | 97c3f0762e601deeecec2511823c0df60c0a825b (patch) | |
tree | 68e70a372d62505ac69fbf4c9e02c237274baf62 /channels/sig_pri.c | |
parent | fd1fa0983f1bdb501e70edd0d5350230c3b18f46 (diff) |
Move discardremoteholdretrieval test so it applies only to the specific notification indicator values.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@214654 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/sig_pri.c')
-rw-r--r-- | channels/sig_pri.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 2184b841b..9276ebb15 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -2294,20 +2294,26 @@ static void *pri_dchannel(void *vpri) if (chanpos < 0) { ast_log(LOG_WARNING, "Received NOTIFY on unconfigured channel %d/%d span %d\n", PRI_SPAN(e->notify.channel), PRI_CHANNEL(e->notify.channel), pri->span); - } else if (!pri->discardremoteholdretrieval) { - struct ast_frame f = { AST_FRAME_CONTROL, }; - + } else { sig_pri_lock_private(pri->pvts[chanpos]); sig_pri_handle_subcmds(pri, chanpos, e->e, e->notify.channel, e->notify.subcmds); switch (e->notify.info) { case PRI_NOTIFY_REMOTE_HOLD: - f.subclass = AST_CONTROL_HOLD; - pri_queue_frame(pri->pvts[chanpos], &f, pri); + if (!pri->discardremoteholdretrieval) { + struct ast_frame f = { AST_FRAME_CONTROL, }; + + f.subclass = AST_CONTROL_HOLD; + pri_queue_frame(pri->pvts[chanpos], &f, pri); + } break; case PRI_NOTIFY_REMOTE_RETRIEVAL: - f.subclass = AST_CONTROL_UNHOLD; - pri_queue_frame(pri->pvts[chanpos], &f, pri); + if (!pri->discardremoteholdretrieval) { + struct ast_frame f = { AST_FRAME_CONTROL, }; + + f.subclass = AST_CONTROL_UNHOLD; + pri_queue_frame(pri->pvts[chanpos], &f, pri); + } break; } sig_pri_unlock_private(pri->pvts[chanpos]); |