]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Generate error message when AMI action originate extension doesn't exist
authorOlle Johansson <oej@edvina.net>
Tue, 4 Oct 2011 09:43:03 +0000 (09:43 +0000)
committerOlle Johansson <oej@edvina.net>
Tue, 4 Oct 2011 09:43:03 +0000 (09:43 +0000)
Review: https://reviewboard.asterisk.org/r/1445/

Is this a bug or a new feature? No responses on Asterisk-dev so I'm
committing to trunk only.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@339206 65c4cc65-6c06-0410-ace0-fbb531ad65f3

CHANGES
main/manager.c

diff --git a/CHANGES b/CHANGES
index bcc4beff1199231aa14713da5346e3be28e6b40e..3f7315ea8ae10a46e33a51910966668bf34724da 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -40,6 +40,10 @@ CDR postgresql driver changes
 -----------------------------
  * Added command "cdr show pgsql status" to check connection status
 
+AMI (Asterisk Manager Interface) changes
+----------------------------------------
+ * Originate now generates an error response if the extension given
+   is not found in the dialplan
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
index 5320b3f5244e1d216d38ed00b2a79f9be757d783..af03e25e59e94e6095d93b66bdc17e5e027e5443 100644 (file)
@@ -3997,6 +3997,16 @@ static int action_originate(struct mansession *s, const struct message *m)
                }
        }
 
+       /* Check early if the extension exists. If not, we need to bail out here. */
+       if (exten && context && pi) {
+               if (! ast_exists_extension(NULL, context, exten, pi, l)) {
+                       /* The extension does not exist. */
+                       astman_send_error(s, m, "Extension does not exist.");
+                       res = 0;
+                       goto fast_orig_cleanup;
+               }
+       }
+
        /* Allocate requested channel variables */
        vars = astman_get_variables(m);