diff options
-rw-r--r-- | apps/app_dial.c | 15 | ||||
-rw-r--r-- | apps/app_queue.c | 10 |
2 files changed, 20 insertions, 5 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c index e641356ac..fbd4ef68b 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -1061,7 +1061,10 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, ast_connected_line_copy_from_caller(&connected_caller, ast_channel_caller(outgoing->chan)); 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_sub(outgoing->chan, in, &connected_caller, 0) && + 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); } } @@ -1126,7 +1129,10 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, ast_connected_line_copy_from_caller(&connected_caller, ast_channel_caller(c)); 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_sub(c, in, &connected_caller, 0) && + 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); } } @@ -1199,7 +1205,10 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, ast_connected_line_copy_from_caller(&connected_caller, ast_channel_caller(c)); 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_sub(c, in, &connected_caller, 0) && + 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); } } diff --git a/apps/app_queue.c b/apps/app_queue.c index ef3223b53..d372a50ba 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -3756,7 +3756,10 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte ast_connected_line_copy_from_caller(&connected_caller, ast_channel_caller(o->chan)); 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_sub(o->chan, in, &connected_caller, 0) && + 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); } } @@ -3886,7 +3889,10 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte ast_connected_line_copy_from_caller(&connected_caller, ast_channel_caller(o->chan)); 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_sub(o->chan, in, &connected_caller, 0) && + 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); } } |