From 30a74dd9febac2af61a5900a64fbcf38e58b3b6a Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Wed, 22 Dec 2010 02:10:39 +0000 Subject: [PATCH] Chan_dahdi sends an empty COLP on the bridged channel. Chan_dahdi always inserts a connected party IE when you call from one dahdi channel to another dahdi channel, even if no such information was received on the 2nd channel. This clears the display of many phones. * Removed leftover artifact from before the valid flag was added. * Updated all of the channel's caller id information with the new connected line information instead of just the string parts. (closes issue #18508) Reported by: wimpy Patches: issue18508_trunk.patch uploaded by rmudgett (license 664) Tested by: wimpy, rmudgett git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@299405 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/sig_pri.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 9b6d63a517..f439081a0b 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -3751,9 +3751,6 @@ static void sig_pri_handle_subcmds(struct sig_pri_span *pri, int chanpos, int ev ast_connected.id.number.str, sizeof(pri->pvts[chanpos]->cid_num)); pri->pvts[chanpos]->cid_ton = ast_connected.id.number.plan; caller_id_update = 1; - } else { - ast_connected.id.number.valid = 1; - ast_connected.id.number.str = ast_strdup(""); } ast_connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER; @@ -3770,12 +3767,16 @@ static void sig_pri_handle_subcmds(struct sig_pri_span *pri, int chanpos, int ev } #endif /* defined(HAVE_PRI_SUBADDR) */ if (caller_id_update) { + struct ast_party_caller ast_caller; + pri->pvts[chanpos]->callingpres = ast_party_id_presentation(&ast_connected.id); sig_pri_set_caller_id(pri->pvts[chanpos]); - ast_set_callerid(owner, S_OR(ast_connected.id.number.str, NULL), - S_OR(ast_connected.id.name.str, NULL), - S_OR(ast_connected.id.number.str, NULL)); + + ast_party_caller_set_init(&ast_caller, &owner->caller); + ast_caller.id = ast_connected.id; + ast_caller.ani = ast_connected.id; + ast_channel_set_caller_event(owner, &ast_caller, NULL); } /* Update the connected line information on the other channel */