From 955a891a84203fdab9dade2049bb8268d69a2949 Mon Sep 17 00:00:00 2001 From: Corey Farrell <git@cfware.com> Date: Mon, 16 Oct 2017 11:53:07 -0400 Subject: [PATCH] app_macro deprecation. * Mark the module deprecated. * Disable the module by default. * Produce a warning the first time a macro is used. * Note deprecation related options in app_dial and app_queue. ASTERISK-27350 Change-Id: I560ea043bacdbc5534a17d97854273d52c2f1bdc --- CHANGES | 6 ++++++ UPGRADE.txt | 5 +++++ apps/app_dial.c | 4 ++++ apps/app_macro.c | 12 ++++++++++-- apps/app_queue.c | 3 +++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 63c8c6f7ce..68617a4418 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,12 @@ --- Functionality changes from Asterisk 15 to Asterisk 16 -------------------- ------------------------------------------------------------------------------ +app_macro +------------------ + * The app_macro module is now deprecated and by default it is no longer + built. Users should migrate to app_stack (Gosub). A warning is logged + the first time any Macro is used. + chan_sip ------------------ * New function SIP_HEADERS() enumerates all headers in the incoming INVITE. diff --git a/UPGRADE.txt b/UPGRADE.txt index 1fe82c04ea..39c0f8cec8 100644 --- a/UPGRADE.txt +++ b/UPGRADE.txt @@ -26,6 +26,11 @@ New in 16.0.0: +app_macro: + - The app_macro module is now deprecated and by default it is no longer + built. Users should migrate to app_stack (Gosub). A warning is logged + the first time any Macro is used. + New in 15.0.0: Build System: diff --git a/apps/app_dial.c b/apps/app_dial.c index 847a095f44..8c51f3f1a4 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -324,6 +324,10 @@ <warning><para>Be aware of the limitations that macros have, specifically with regards to use of the <literal>WaitExten</literal> application. For more information, see the documentation for <literal>Macro()</literal>.</para></warning> + <note> + <para>Macros are deprecated, GoSub should be used instead, + see the <literal>U</literal> option.</para> + </note> </option> <option name="n"> <argument name="delete"> diff --git a/apps/app_macro.c b/apps/app_macro.c index 4ef525295c..c6f051ea09 100644 --- a/apps/app_macro.c +++ b/apps/app_macro.c @@ -26,7 +26,8 @@ */ /*** MODULEINFO - <support_level>core</support_level> + <defaultenabled>no</defaultenabled> + <support_level>deprecated</support_level> <replacement>app_stack (GoSub)</replacement> ***/ @@ -250,12 +251,19 @@ static int _macro_exec(struct ast_channel *chan, const char *data, int exclusive char *save_macro_offset; int save_in_subroutine; struct ast_datastore *macro_store = ast_channel_datastore_find(chan, ¯o_ds_info, NULL); + static int deprecation_notice = 0; if (ast_strlen_zero(data)) { ast_log(LOG_WARNING, "Macro() requires arguments. See \"core show application macro\" for help.\n"); return -1; } + if (!deprecation_notice) { + deprecation_notice = 1; + ast_log(LOG_WARNING, "Macro() is deprecated and will be removed from a future version of Asterisk.\n"); + ast_log(LOG_WARNING, "Dialplan should be updated to use Gosub instead.\n"); + } + do { if (macro_store) { break; @@ -665,4 +673,4 @@ static int load_module(void) return res; } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Extension Macros"); +AST_MODULE_INFO_STANDARD_DEPRECATED(ASTERISK_GPL_KEY, "Extension Macros"); diff --git a/apps/app_queue.c b/apps/app_queue.c index e3a4e22a9f..801695ffff 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -235,6 +235,9 @@ </parameter> <parameter name="macro"> <para>Will run a macro on the called party's channel (the queue member) once the parties are connected.</para> + <note> + <para>Macros are deprecated, GoSub should be used instead.</para> + </note> </parameter> <parameter name="gosub"> <para>Will run a gosub on the called party's channel (the queue member) once the parties are connected.</para> -- GitLab