aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/asterisk/devicestate.h9
-rw-r--r--include/asterisk/pbx.h9
-rw-r--r--main/devicestate.c25
-rw-r--r--main/pbx.c26
4 files changed, 35 insertions, 34 deletions
diff --git a/include/asterisk/devicestate.h b/include/asterisk/devicestate.h
index a88546ff9..dd2cb9095 100644
--- a/include/asterisk/devicestate.h
+++ b/include/asterisk/devicestate.h
@@ -248,15 +248,6 @@ void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_dev
enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg);
/*!
- * \brief Map devstate to an extension state.
- *
- * \param[in] device state
- *
- * \return the extension state mapping.
- */
-enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate);
-
-/*!
* \brief You shouldn't care about the contents of this struct
*
* This struct is only here so that it can be easily declared on the stack.
diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h
index c6b3c7cb8..ed21159c5 100644
--- a/include/asterisk/pbx.h
+++ b/include/asterisk/pbx.h
@@ -24,6 +24,7 @@
#define _ASTERISK_PBX_H
#include "asterisk/sched.h"
+#include "asterisk/devicestate.h"
#include "asterisk/chanvars.h"
#include "asterisk/hashtab.h"
@@ -320,6 +321,14 @@ int ast_add_extension2(struct ast_context *con, int replace, const char *extensi
int priority, const char *label, const char *callerid,
const char *application, void *data, void (*datad)(void *), const char *registrar);
+/*!
+ * \brief Map devstate to an extension state.
+ *
+ * \param[in] device state
+ *
+ * \return the extension state mapping.
+ */
+enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate);
/*!
* \brief Uses hint and devicestate callback to get the state of an extension
diff --git a/main/devicestate.c b/main/devicestate.c
index 097ee714f..b6a24e505 100644
--- a/main/devicestate.c
+++ b/main/devicestate.c
@@ -821,31 +821,6 @@ void ast_devstate_aggregate_add(struct ast_devstate_aggregate *agg, enum ast_dev
}
}
-enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate)
-{
- switch (devstate) {
- case AST_DEVICE_ONHOLD:
- return AST_EXTENSION_ONHOLD;
- 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);
- case AST_DEVICE_RINGING:
- return AST_EXTENSION_RINGING;
- case AST_DEVICE_INUSE:
- return AST_EXTENSION_INUSE;
- case AST_DEVICE_NOT_INUSE:
- return AST_EXTENSION_NOT_INUSE;
- case AST_DEVICE_TOTAL: /* not a device state, included for completeness */
- break;
- }
-
- return AST_EXTENSION_NOT_INUSE;
-}
enum ast_device_state ast_devstate_aggregate_result(struct ast_devstate_aggregate *agg)
{
diff --git a/main/pbx.c b/main/pbx.c
index 45a999645..146997a18 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -3256,6 +3256,32 @@ static struct ast_exten *ast_hint_extension(struct ast_channel *c, const char *c
return e;
}
+enum ast_extension_states ast_devstate_to_extenstate(enum ast_device_state devstate)
+{
+ switch (devstate) {
+ case AST_DEVICE_ONHOLD:
+ return AST_EXTENSION_ONHOLD;
+ 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);
+ case AST_DEVICE_RINGING:
+ return AST_EXTENSION_RINGING;
+ case AST_DEVICE_INUSE:
+ return AST_EXTENSION_INUSE;
+ case AST_DEVICE_NOT_INUSE:
+ return AST_EXTENSION_NOT_INUSE;
+ case AST_DEVICE_TOTAL: /* not a device state, included for completeness */
+ break;
+ }
+
+ return AST_EXTENSION_NOT_INUSE;
+}
+
/*! \brief Check state of extension by using hints */
static int ast_extension_state2(struct ast_exten *e)
{