Merged revisions 91677 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Fri, 7 Dec 2007 02:43:21 +0000 (02:43 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 7 Dec 2007 02:43:21 +0000 (02:43 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91677 | russell | 2007-12-06 20:38:40 -0600 (Thu, 06 Dec 2007) | 4 lines

Allow dialing local channels from Queue() and Dial() again.  There was a slight
flaw in the code to prevent call forwards from looping that caused this problem.
(related to issue #11486)

........

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

apps/app_dial.c
apps/app_queue.c

index 70a3555..85fab4b 100644 (file)
@@ -1390,7 +1390,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                        }
                        strcpy(di->interface, interface);
                        AST_LIST_INSERT_TAIL(dialed_interfaces, di, list);
-               } else {
+               } else if (dialed) {
                        AST_LIST_UNLOCK(dialed_interfaces);
                        ast_log(LOG_WARNING, "Skipping dialing interface '%s' again since it has already been dialed\n", di->interface);
                        fulldial++;
index eb65274..9b667d6 100644 (file)
@@ -2851,9 +2851,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
                        }
                        strcpy(di->interface, cur->interface);
                        AST_LIST_INSERT_TAIL(dialed_interfaces, di, list);
-               } else {
-                       if (di)
-                               ast_log(LOG_DEBUG, "Skipping dialing interface '%s' since it has already been dialed\n", di->interface);
+               } else if (dialed) {
+                       ast_log(LOG_DEBUG, "Skipping dialing interface '%s' since it has already been dialed\n", di->interface);
                        AST_LIST_UNLOCK(dialed_interfaces);
                        free(tmp);
                        continue;