summaryrefslogtreecommitdiff
path: root/channels/sig_pri.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2009-08-28 19:13:53 +0000
committerRichard Mudgett <rmudgett@digium.com>2009-08-28 19:13:53 +0000
commitf199054c88ea146da16164fd4d2d6b96f4417cee (patch)
tree68e70a372d62505ac69fbf4c9e02c237274baf62 /channels/sig_pri.c
parent27fb59b0016c02fa73f9513f13b311f76735bb09 (diff)
Move discardremoteholdretrieval test so it applies only to the specific notification indicator values.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@214654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_pri.c')
-rw-r--r--channels/sig_pri.c20
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]);