From 6e15f28d6a7a8c54f0425787c4e302b64c100a18 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Tue, 23 Mar 2004 05:32:36 +0000
Subject: [PATCH] Clarify documentation on Directory

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_directory.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/apps/app_directory.c b/apps/app_directory.c
index 8e8f624552..199888b237 100755
--- a/apps/app_directory.c
+++ b/apps/app_directory.c
@@ -37,7 +37,8 @@ static char *descrip =
 "discovered from  voicemail.conf. The  context  argument  is  required,  and\n"
 "specifies  the  context  in  which to interpret the extensions. Returns 0\n"
 "unless the user hangs up. It  also sets up the channel on exit to enter the\n"
-"extension the user selected.\n";
+"extension the user selected.  Please note that the context must be the same\n"
+"as the section in voicemail.conf that the mailbox is processed from as well.\n";
 
 /* For simplicity, I'm keeping the format compatible with the voicemail config,
    but i'm open to suggestions for isolating it */
@@ -199,10 +200,15 @@ ahem:
 				ast_stopstream(chan);
 				if (res > -1) {
 					if (res == '1') {
-						strncpy(chan->exten, v->name, sizeof(chan->exten)-1);
-						chan->priority = 0;
-						strncpy(chan->context, context, sizeof(chan->context)-1);
-						res = 0;
+						if (ast_exists_extension(chan, context, v->name, 1, chan->callerid)) {
+							strncpy(chan->exten, v->name, sizeof(chan->exten)-1);
+							chan->priority = 0;
+							strncpy(chan->context, context, sizeof(chan->context)-1);
+							res = 0;
+						} else {
+							ast_log(LOG_WARNING, "Can't find extension '%s' in context '%s'.  Did you pass the wrong context to Directory?\n", v->name, context);
+							res = -1;
+						}
 						break;
 					} else if (res == '*') {
 						res = 0;
-- 
GitLab