summaryrefslogtreecommitdiff
path: root/main/pbx.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2009-06-26 19:31:14 +0000
committerRussell Bryant <russell@russellbryant.com>2009-06-26 19:31:14 +0000
commitcce4fad52281001b51f61a8c33ebe04838e8f18c (patch)
treeef26687a5ece766d96505570dba41297299cd8ed /main/pbx.c
parent59c1998d67ecd9c2ade02c288aaef7596fcdfd4a (diff)
Make invalid hints report Unavailable instead of Idle.
(closes issue #14413) Reported by: pj git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203702 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/pbx.c')
-rw-r--r--main/pbx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/main/pbx.c b/main/pbx.c
index c7de70f87..4d1bfb493 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -4101,8 +4101,9 @@ static int ast_extension_state2(struct ast_exten *e)
rest = ast_str_buffer(hint); /* One or more devices separated with a & character */
- while ( (cur = strsep(&rest, "&")) )
+ while ( (cur = strsep(&rest, "&")) ) {
ast_devstate_aggregate_add(&agg, ast_device_state(cur));
+ }
state = ast_devstate_aggregate_result(&agg);
@@ -4112,6 +4113,8 @@ static int ast_extension_state2(struct ast_exten *e)
case AST_DEVICE_BUSY:
return AST_EXTENSION_BUSY;
case AST_DEVICE_UNAVAILABLE:
+ case AST_DEVICE_UNKNOWN:
+ case AST_DEVICE_INVALID:
return AST_EXTENSION_UNAVAILABLE;
case AST_DEVICE_RINGINUSE:
return (AST_EXTENSION_INUSE | AST_EXTENSION_RINGING);
@@ -4119,8 +4122,6 @@ static int ast_extension_state2(struct ast_exten *e)
return AST_EXTENSION_RINGING;
case AST_DEVICE_INUSE:
return AST_EXTENSION_INUSE;
- case AST_DEVICE_UNKNOWN:
- case AST_DEVICE_INVALID:
case AST_DEVICE_NOT_INUSE:
return AST_EXTENSION_NOT_INUSE;
}