]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add missing connected line macro calls to initial dial for Dial and Queue apps.
authorRichard Mudgett <rmudgett@digium.com>
Thu, 15 Mar 2012 18:22:01 +0000 (18:22 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 15 Mar 2012 18:22:01 +0000 (18:22 +0000)
The connected line interception macros do not get executed when the
outgoing channel is initially created and that channel's caller-id is
implicitly imported into the incoming channel's connected line data.  If
you are using the interception macros, you would expect that they get run
for every change to a channel's connected line information outside of
normal dialplan execution.

Review: https://reviewboard.asterisk.org/r/1817/
........

Merged revisions 359609 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

apps/app_dial.c
apps/app_queue.c

index 82a4d2e3f9caf8a0b0190a6224dc4deadf70c450..b5d06870fd24e9ee008d03a57311c2e0dbd62d40 100644 (file)
@@ -1060,7 +1060,9 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                        ast_connected_line_copy_from_caller(&connected_caller, &outgoing->chan->caller);
                        ast_channel_unlock(outgoing->chan);
                        connected_caller.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-                       ast_channel_update_connected_line(in, &connected_caller, NULL);
+                       if (ast_channel_connected_line_macro(outgoing->chan, in, &connected_caller, 1, 0)) {
+                               ast_channel_update_connected_line(in, &connected_caller, NULL);
+                       }
                        ast_party_connected_line_free(&connected_caller);
                }
        }
@@ -1124,7 +1126,9 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                                                        ast_connected_line_copy_from_caller(&connected_caller, &c->caller);
                                                        ast_channel_unlock(c);
                                                        connected_caller.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-                                                       ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                       if (ast_channel_connected_line_macro(c, in, &connected_caller, 1, 0)) {
+                                                               ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                       }
                                                        ast_party_connected_line_free(&connected_caller);
                                                }
                                        }
@@ -1196,7 +1200,9 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                                                                ast_connected_line_copy_from_caller(&connected_caller, &c->caller);
                                                                ast_channel_unlock(c);
                                                                connected_caller.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-                                                               ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                               if (ast_channel_connected_line_macro(c, in, &connected_caller, 1, 0)) {
+                                                                       ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                               }
                                                                ast_party_connected_line_free(&connected_caller);
                                                        }
                                                }
index fa94b402ba0ab361210296381d74d6173080cfc9..03ca5b35b91f3b40af4d9d9003af83e682e36fcd 100644 (file)
@@ -3613,7 +3613,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
                                                        ast_connected_line_copy_from_caller(&connected_caller, &o->chan->caller);
                                                        ast_channel_unlock(o->chan);
                                                        connected_caller.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-                                                       ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                       if (ast_channel_connected_line_macro(o->chan, in, &connected_caller, 1, 0)) {
+                                                               ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                       }
                                                        ast_party_connected_line_free(&connected_caller);
                                                }
                                        }
@@ -3742,7 +3744,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
                                                                                ast_connected_line_copy_from_caller(&connected_caller, &o->chan->caller);
                                                                                ast_channel_unlock(o->chan);
                                                                                connected_caller.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
-                                                                               ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                                               if (ast_channel_connected_line_macro(o->chan, in, &connected_caller, 1, 0)) {
+                                                                                       ast_channel_update_connected_line(in, &connected_caller, NULL);
+                                                                               }
                                                                                ast_party_connected_line_free(&connected_caller);
                                                                        }
                                                                }