summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2007-12-05 22:55:49 +0000
committerMark Michelson <mmichelson@digium.com>2007-12-05 22:55:49 +0000
commitb32e39cbda3de5ffc502b930bcf261dae9654d50 (patch)
tree1f5a165638d765d969f93a6542f305c9fc17e885
parent470a68b4aa78c34d8b436ae5404214f1dd81d5fb (diff)
Merged revisions 91273 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r91273 | mmichelson | 2007-12-05 16:35:52 -0600 (Wed, 05 Dec 2007) | 11 lines The 'G' option for Dial() did not properly handle the case where only a label was provided. This was due to the fact that the answering channel did not have an extension set, so ast_parseable_goto would fail. This fix eliminates the call to ast_parseable_goto on the answering channel since it is a wasteful call. The answering channel and the calling channel are both directed to the same extension and context, just different priorities, so we can just copy the values from the calling channel to the answering channel and increment the answering channel's priority. (closes issue #11382, reported by jon, patch by me with correction by jon) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91291 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--apps/app_dial.c6
-rw-r--r--apps/app_voicemail.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index af5a877d2..b82743bfd 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -1591,8 +1591,10 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
if (chan && peer && ast_test_flag64(&opts, OPT_GOTO) && !ast_strlen_zero(opt_args[OPT_ARG_GOTO])) {
replace_macro_delimiter(opt_args[OPT_ARG_GOTO]);
ast_parseable_goto(chan, opt_args[OPT_ARG_GOTO]);
- ast_parseable_goto(peer, opt_args[OPT_ARG_GOTO]);
- peer->priority++;
+ /* peer goes to the same context and extension as chan, so just copy info from chan*/
+ ast_copy_string(peer->context, chan->context, sizeof(peer->context));
+ ast_copy_string(peer->exten, chan->exten, sizeof(peer->exten));
+ peer->priority = chan->priority + 2;
ast_pbx_start(peer);
hanguptree(outgoing, NULL, ast_test_flag64(&opts, OPT_CANCEL_ELSEWHERE) ? 1 : 0);
if (continue_exec)
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 7e4045d3a..7ceef6eb6 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -6956,9 +6956,7 @@ static int vm_execmain(struct ast_channel *chan, void *data)
/* Set language from config to override channel language */
if (!ast_strlen_zero(vmu->language))
ast_string_field_set(chan, language, vmu->language);
-#ifndef IMAP_STORAGE
create_dirpath(vms.curdir, sizeof(vms.curdir), vmu->context, vms.username, "");
-#endif
/* Retrieve old and new message counts */
ast_debug(1, "Before open_mailbox\n");
res = open_mailbox(&vms, vmu, OLD_FOLDER);