diff --git a/include/asterisk/devicestate.h b/include/asterisk/devicestate.h index ff4cdd40bd936ba82ac1f0bc4d4284660e613ed8..4c516870e2e99c0daa579353051d8f6de2330b36 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 * diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h index 0a5819bb61c3ac84ebe8547fe5843c489fe703c0..67d2227fa4e913595c323046875797737440ac70 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" #include "asterisk/stringfields.h" @@ -361,6 +362,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 d7d8ea4cb70785a780bf208f6cf5b70a4dd0b038..49e24d8abfcdbc06805f193eba8f28f96709fba1 100644 --- a/main/devicestate.c +++ b/main/devicestate.c @@ -791,31 +791,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 5e31078fe0fdbb386dc648569d81a3636ed85cea..f733423fa278d57d9161f8c0a8e4351f7ae62016 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -4083,6 +4083,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) {