From 17d2c0f78765b0b5639c4627c21be9598382f3fb Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Wed, 22 Dec 2010 02:12:01 +0000 Subject: Merged revisions 299405 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r299405 | rmudgett | 2010-12-21 20:10:39 -0600 (Tue, 21 Dec 2010) | 17 lines 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/trunk@299406 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/sig_pri.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'channels') diff --git a/channels/sig_pri.c b/channels/sig_pri.c index ab9c7d927..7f7cfccd4 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 */ -- cgit v1.2.3