]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 264779 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Thu, 20 May 2010 22:24:16 +0000 (22:24 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Thu, 20 May 2010 22:24:16 +0000 (22:24 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r264779 | tilghman | 2010-05-20 17:23:32 -0500 (Thu, 20 May 2010) | 8 lines

  Let ExtensionState resolve dynamic hints.

  (closes issue #16623)
   Reported by: tilghman
   Patches:
         20100116__issue16623.diff.txt uploaded by tilghman (license 14)
   Tested by: lmadsen
........

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

main/pbx.c

index f454fdbd3edabbd8631c4ca62eaff03f5da23b56..682a17ee809c00d99d7ebca8f2eb13d136e6325f 100644 (file)
@@ -3837,6 +3837,17 @@ int ast_extension_state(struct ast_channel *c, const char *context, const char *
                return -1;                   /* No hint, return -1 */
        }
 
+       if (e->exten[0] == '_') {
+               /* Create this hint on-the-fly */
+               ast_add_extension(e->parent->name, 0, exten, e->priority, e->label,
+                       e->matchcid ? e->cidmatch : NULL, e->app, ast_strdup(e->data), ast_free_ptr,
+                       e->registrar);
+               if (!(e = ast_hint_extension(c, context, exten))) {
+                       /* Improbable, but not impossible */
+                       return -1;
+               }
+       }
+
        return ast_extension_state2(e);  /* Check all devices in the hint */
 }