diff --git a/apps/app_cdr.c b/apps/app_cdr.c index 8ef10ba978..86b1db219c 100644 --- a/apps/app_cdr.c +++ b/apps/app_cdr.c @@ -31,7 +31,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/channel.h" #include "asterisk/module.h" -#include "asterisk/pbx.h" static char *nocdr_descrip = " NoCDR(): This application will tell Asterisk not to maintain a CDR for the\n" diff --git a/apps/app_dumpchan.c b/apps/app_dumpchan.c index 85f6789ca7..48fb6215d9 100644 --- a/apps/app_dumpchan.c +++ b/apps/app_dumpchan.c @@ -32,12 +32,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/file.h" -#include "asterisk/channel.h" #include "asterisk/pbx.h" #include "asterisk/module.h" -#include "asterisk/utils.h" -#include "asterisk/lock.h" +#include "asterisk/channel.h" static char *app = "DumpChan"; static char *synopsis = "Dump Info About The Calling Channel"; diff --git a/apps/app_echo.c b/apps/app_echo.c index e3cd3b1160..b12b08f89b 100644 --- a/apps/app_echo.c +++ b/apps/app_echo.c @@ -32,6 +32,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/file.h" #include "asterisk/pbx.h" #include "asterisk/module.h" +#include "asterisk/channel.h" static char *app = "Echo"; diff --git a/apps/app_milliwatt.c b/apps/app_milliwatt.c index 99a1e160c1..315e86ab11 100644 --- a/apps/app_milliwatt.c +++ b/apps/app_milliwatt.c @@ -31,6 +31,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" +#include "asterisk/channel.h" static char *app = "Milliwatt"; diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c index bc24b4a189..f60d6f05fe 100644 --- a/apps/app_mixmonitor.c +++ b/apps/app_mixmonitor.c @@ -44,6 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" #include "asterisk/cli.h" #include "asterisk/app.h" +#include "asterisk/channel.h" #define get_volfactor(x) x ? ((x > 0) ? (1 << x) : ((1 << abs(x)) * -1)) : 0 diff --git a/apps/app_read.c b/apps/app_read.c index 4ddd24de31..a7fdf624bd 100644 --- a/apps/app_read.c +++ b/apps/app_read.c @@ -31,6 +31,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/file.h" #include "asterisk/pbx.h" +#include "asterisk/channel.h" #include "asterisk/app.h" #include "asterisk/module.h" #include "asterisk/indications.h" diff --git a/apps/app_readexten.c b/apps/app_readexten.c index 21f7950fb4..cb4fd8c2a7 100644 --- a/apps/app_readexten.c +++ b/apps/app_readexten.c @@ -34,6 +34,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/app.h" #include "asterisk/module.h" #include "asterisk/indications.h" +#include "asterisk/channel.h" enum { OPT_SKIP = (1 << 0), diff --git a/apps/app_record.c b/apps/app_record.c index a41ed5906d..7214e1f070 100644 --- a/apps/app_record.c +++ b/apps/app_record.c @@ -33,6 +33,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/app.h" +#include "asterisk/channel.h" #include "asterisk/dsp.h" /* use dsp routines for silence detection */ diff --git a/apps/app_senddtmf.c b/apps/app_senddtmf.c index 3e39736202..67bd4feaa7 100644 --- a/apps/app_senddtmf.c +++ b/apps/app_senddtmf.c @@ -33,6 +33,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" #include "asterisk/app.h" #include "asterisk/manager.h" +#include "asterisk/channel.h" static char *app = "SendDTMF"; diff --git a/apps/app_stack.c b/apps/app_stack.c index 8d3d7bcc93..341b4c1d99 100644 --- a/apps/app_stack.c +++ b/apps/app_stack.c @@ -33,6 +33,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" #include "asterisk/app.h" #include "asterisk/manager.h" +#include "asterisk/channel.h" static const char *app_gosub = "Gosub"; static const char *app_gosubif = "GosubIf"; diff --git a/apps/app_system.c b/apps/app_system.c index 9526965f04..1f39c5a4ed 100644 --- a/apps/app_system.c +++ b/apps/app_system.c @@ -32,6 +32,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/app.h" +#include "asterisk/channel.h" /* autoservice */ static char *app = "System"; diff --git a/apps/app_transfer.c b/apps/app_transfer.c index 96c514eeb1..ee6c2c5889 100644 --- a/apps/app_transfer.c +++ b/apps/app_transfer.c @@ -31,12 +31,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/lock.h" -#include "asterisk/file.h" -#include "asterisk/channel.h" #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/app.h" +#include "asterisk/channel.h" static const char *app = "Transfer"; diff --git a/apps/app_url.c b/apps/app_url.c index 169511689e..f71b32fd05 100644 --- a/apps/app_url.c +++ b/apps/app_url.c @@ -32,6 +32,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/app.h" +#include "asterisk/channel.h" static char *app = "SendURL"; diff --git a/apps/app_verbose.c b/apps/app_verbose.c index abe73c5c46..0f7145131b 100644 --- a/apps/app_verbose.c +++ b/apps/app_verbose.c @@ -31,6 +31,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" #include "asterisk/app.h" +#include "asterisk/channel.h" static char *app_verbose = "Verbose"; static char *verbose_synopsis = "Send arbitrary text to verbose output"; diff --git a/apps/app_while.c b/apps/app_while.c index 933dd9ba12..1c61d966ea 100644 --- a/apps/app_while.c +++ b/apps/app_while.c @@ -31,6 +31,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/module.h" +#include "asterisk/channel.h" static char *start_app = "While"; static char *start_desc = diff --git a/include/asterisk.h b/include/asterisk.h index 2aa9785115..71cb4d454c 100644 --- a/include/asterisk.h +++ b/include/asterisk.h @@ -171,5 +171,7 @@ int64_t ast_mark(int, int start1_stop0); struct ast_channel; struct ast_frame; struct ast_module; +struct ast_variable; +struct ast_str; #endif /* _ASTERISK_H */ diff --git a/include/asterisk/app.h b/include/asterisk/app.h index 0529f92585..656e8390fc 100644 --- a/include/asterisk/app.h +++ b/include/asterisk/app.h @@ -23,6 +23,8 @@ #ifndef _ASTERISK_APP_H #define _ASTERISK_APP_H +struct ast_flags64; + #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif @@ -227,12 +229,7 @@ int ast_unlock_path(const char *path); /*! Read a file into asterisk*/ char *ast_read_textfile(const char *file); -struct ast_group_info { - struct ast_channel *chan; - char *category; - char *group; - AST_LIST_ENTRY(ast_group_info) list; -}; +struct ast_group_info; /*! Split a group string into group and category, returning a default category if none is provided. */ int ast_app_group_split_group(const char *data, char *group, int group_max, char *category, int category_max); diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index b79c0c29c2..5e2213c3a3 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -1442,6 +1442,15 @@ struct ast_variable *ast_channeltype_list(void); */ const char *ast_channel_reason2str(int reason); +/*! \brief channel group info + */ +struct ast_group_info { + struct ast_channel *chan; + char *category; + char *group; + AST_LIST_ENTRY(ast_group_info) list; +}; + #if defined(__cplusplus) || defined(c_plusplus) } diff --git a/include/asterisk/module.h b/include/asterisk/module.h index 4091045f8c..1b257ed157 100644 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -370,6 +370,59 @@ static void __restore_globals(void) ) #endif +/*! + * \brief Register an application. + * + * \param app Short name of the application + * \param execute a function callback to execute the application. It should return + * non-zero if the channel needs to be hung up. + * \param synopsis a short description (one line synopsis) of the application + * \param description long description with all of the details about the use of + * the application + * + * This registers an application with Asterisk's internal application list. + * \note The individual applications themselves are responsible for registering and unregistering + * and unregistering their own CLI commands. + * + * \retval 0 success + * \retval -1 failure. + */ +#define ast_register_application(app, execute, synopsis, description) ast_register_application2(app, execute, synopsis, description, ast_module_info->self) + +/*! + * \brief Register an application. + * + * \param app Short name of the application + * \param execute a function callback to execute the application. It should return + * non-zero if the channel needs to be hung up. + * \param synopsis a short description (one line synopsis) of the application + * \param description long description with all of the details about the use of + * the application + * \param mod module this application belongs to + * + * This registers an application with Asterisk's internal application list. + * \note The individual applications themselves are responsible for registering and unregistering + * and unregistering their own CLI commands. + * + * \retval 0 success + * \retval -1 failure. + */ +int ast_register_application2(const char *app, int (*execute)(struct ast_channel *, void *), + const char *synopsis, const char *description, void *mod); + +/*! + * \brief Unregister an application + * + * \param app name of the application (does not have to be the same string as the one that was registered) + * + * This unregisters an application from Asterisk's internal application list. + * + * \retval 0 success + * \retval -1 failure + */ +int ast_unregister_application(const char *app); + + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h index 3479d6f2b0..61617f5a26 100644 --- a/include/asterisk/pbx.h +++ b/include/asterisk/pbx.h @@ -24,8 +24,7 @@ #define _ASTERISK_PBX_H #include "asterisk/sched.h" -#include "asterisk/channel.h" -#include "asterisk/linkedlists.h" +#include "asterisk/chanvars.h" #if defined(__cplusplus) || defined(c_plusplus) extern "C" { @@ -300,58 +299,6 @@ int ast_add_extension2(struct ast_context *con, int replace, const char *extensi const char *application, void *data, void (*datad)(void *), const char *registrar); -/*! - * \brief Register an application. - * - * \param app Short name of the application - * \param execute a function callback to execute the application. It should return - * non-zero if the channel needs to be hung up. - * \param synopsis a short description (one line synopsis) of the application - * \param description long description with all of the details about the use of - * the application - * - * This registers an application with Asterisk's internal application list. - * \note The individual applications themselves are responsible for registering and unregistering - * and unregistering their own CLI commands. - * - * \retval 0 success - * \retval -1 failure. - */ -#define ast_register_application(app, execute, synopsis, description) ast_register_application2(app, execute, synopsis, description, ast_module_info->self) - -/*! - * \brief Register an application. - * - * \param app Short name of the application - * \param execute a function callback to execute the application. It should return - * non-zero if the channel needs to be hung up. - * \param synopsis a short description (one line synopsis) of the application - * \param description long description with all of the details about the use of - * the application - * \param mod module this application belongs to - * - * This registers an application with Asterisk's internal application list. - * \note The individual applications themselves are responsible for registering and unregistering - * and unregistering their own CLI commands. - * - * \retval 0 success - * \retval -1 failure. - */ -int ast_register_application2(const char *app, int (*execute)(struct ast_channel *, void *), - const char *synopsis, const char *description, void *mod); - -/*! - * \brief Unregister an application - * - * \param app name of the application (does not have to be the same string as the one that was registered) - * - * This unregisters an application from Asterisk's internal application list. - * - * \retval 0 success - * \retval -1 failure - */ -int ast_unregister_application(const char *app); - /*! * \brief Uses hint and devicestate callback to get the state of an extension * diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c index 9ee6c02b49..0782e7a7b7 100644 --- a/pbx/pbx_config.c +++ b/pbx/pbx_config.c @@ -35,6 +35,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" #include "asterisk/logger.h" #include "asterisk/cli.h" +#include "asterisk/channel.h" /* AST_MAX_EXTENSION */ #include "asterisk/callerid.h" static char *config = "extensions.conf"; diff --git a/res/ael/pval.c b/res/ael/pval.c index 923a55148c..56794041d3 100644 --- a/res/ael/pval.c +++ b/res/ael/pval.c @@ -43,6 +43,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/logger.h" #include "asterisk/cli.h" #include "asterisk/app.h" +#include "asterisk/channel.h" #include "asterisk/callerid.h" #include "asterisk/pval.h" #include "asterisk/ael_structs.h"