summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2014-08-14 19:20:51 +0000
committerMatthew Jordan <mjordan@digium.com>2014-08-14 19:20:51 +0000
commit6e4d44c2a1ff020e66ee8ab16471b3158f63cfe5 (patch)
tree544be23b637b7b5229702797aed39055255813de /main
parentee93b5a3148929422f2d77d5ca29ff9e148e0281 (diff)
cel: Make sure channels in extra fields include their unique IDs as well
CEL typically tracks a lot of information using the unique ID of the channel. This is typically needed due to tying events together using the linked ID of the various channels involved in a "call", which is derived from the channel ID of the oldest channel involved in a bridge (or in the case of a Dial, the parent channel). Previously, we had updated the extra fields to include the involved channel names, but forgot to put in the unique ID. This patch corrects that error. ........ Merged revisions 421037 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@421042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/cel.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/main/cel.c b/main/cel.c
index bb0f75051..69bb2649e 100644
--- a/main/cel.c
+++ b/main/cel.c
@@ -1367,11 +1367,12 @@ static void cel_blind_transfer_cb(
return;
}
- extra = ast_json_pack("{s: s, s: s, s: s}",
+ extra = ast_json_pack("{s: s, s: s, s: s, s: s, s: s}",
"extension", transfer_msg->exten,
"context", transfer_msg->context,
"bridge_id", bridge_snapshot->uniqueid,
- "transferee_channel_name", transfer_msg->transferee ? transfer_msg->transferee->name: "N/A");
+ "transferee_channel_name", transfer_msg->transferee ? transfer_msg->transferee->name : "N/A",
+ "transferee_channel_uniqueid", transfer_msg->transferee ? transfer_msg->transferee->uniqueid : "N/A");
if (extra) {
cel_report_event(chan_snapshot, AST_CEL_BLINDTRANSFER, NULL, extra, NULL);
ast_json_unref(extra);
@@ -1407,24 +1408,30 @@ static void cel_attended_transfer_cb(
case AST_ATTENDED_TRANSFER_DEST_BRIDGE_MERGE:
case AST_ATTENDED_TRANSFER_DEST_LINK:
case AST_ATTENDED_TRANSFER_DEST_THREEWAY:
- extra = ast_json_pack("{s: s, s: s, s: s, s: s, s: s}",
+ extra = ast_json_pack("{s: s, s: s, s: s, s: s, s: s, s: s, s: s, s: s}",
"bridge1_id", bridge1->uniqueid,
"channel2_name", channel2->name,
+ "channel2_uniqueid", channel2->uniqueid,
"bridge2_id", bridge2->uniqueid,
"transferee_channel_name", xfer->transferee ? xfer->transferee->name : "N/A",
- "transfer_target_channel_name", xfer->target ? xfer->target->name : "N/A");
+ "transferee_channel_uniqueid", xfer->transferee ? xfer->transferee->uniqueid : "N/A",
+ "transfer_target_channel_name", xfer->target ? xfer->target->name : "N/A",
+ "transfer_target_channel_uniqueid", xfer->target ? xfer->target->uniqueid : "N/A");
if (!extra) {
return;
}
break;
case AST_ATTENDED_TRANSFER_DEST_APP:
case AST_ATTENDED_TRANSFER_DEST_LOCAL_APP:
- extra = ast_json_pack("{s: s, s: s, s: s, s: s, s: s}",
+ extra = ast_json_pack("{s: s, s: s, s: s, s: s, s: s, s: s, s: s, s: s}",
"bridge1_id", bridge1->uniqueid,
"channel2_name", channel2->name,
+ "channel2_uniqueid", channel2->uniqueid,
"app", xfer->dest.app,
"transferee_channel_name", xfer->transferee ? xfer->transferee->name : "N/A",
- "transfer_target_channel_name", xfer->target ? xfer->target->name : "N/A");
+ "transferee_channel_uniqueid", xfer->transferee ? xfer->transferee->uniqueid : "N/A",
+ "transfer_target_channel_name", xfer->target ? xfer->target->name : "N/A",
+ "transfer_target_channel_uniqueid", xfer->target ? xfer->target->uniqueid : "N/A");
if (!extra) {
return;
}
@@ -1447,7 +1454,9 @@ static void cel_pickup_cb(
return;
}
- extra = ast_json_pack("{s: s}", "pickup_channel", channel->name);
+ extra = ast_json_pack("{s: s, s: s}",
+ "pickup_channel", channel->name,
+ "pickup_channel_uniqueid", channel->uniqueid);
if (!extra) {
return;
}
@@ -1469,7 +1478,9 @@ static void cel_local_cb(
return;
}
- extra = ast_json_pack("{s: s}", "local_two", localtwo->name);
+ extra = ast_json_pack("{s: s, s: s}",
+ "local_two", localtwo->name,
+ "local_two_uniqueid", localtwo->uniqueid);
if (!extra) {
return;
}