]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Chan_dahdi sends an empty COLP on the bridged channel.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 22 Dec 2010 02:10:39 +0000 (02:10 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 22 Dec 2010 02:10:39 +0000 (02:10 +0000)
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

index 9b6d63a5177371623cd5805b0eb84657573cc8fc..f439081a0be9139905046b91c6c8dadaa697bc98 100644 (file)
@@ -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 */