diff --git a/main/cel.c b/main/cel.c
index bb0f75051960180ab21782b5c40aab3f51c0ae47..69bb2649e1f9dda74608119b6bdcb051c901cff0 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;
 	}
diff --git a/tests/test_cel.c b/tests/test_cel.c
index 2cde0978d873308e9047f189fed5fa535875fff5..b2a1fd3e58b966c4e7a8ea3393823c2d4f137537 100644
--- a/tests/test_cel.c
+++ b/tests/test_cel.c
@@ -169,22 +169,27 @@ static void do_sleep(void)
 
 #define BLINDTRANSFER_EVENT(channel, bridge, extension, context) do { \
 	RAII_VAR(struct ast_json *, extra, NULL, ast_json_unref); \
-	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", extension, \
 		"context", context, \
-		"bridge_id", bridge->uniqueid); \
+		"bridge_id", bridge->uniqueid, \
+		"transferee_channel_name", "N/A", \
+		"transferee_channel_uniqueid", "N/A"); \
 	ast_test_validate(test, extra != NULL); \
 	APPEND_EVENT(channel, AST_CEL_BLINDTRANSFER, NULL, extra); \
 	} while (0)
 
 #define ATTENDEDTRANSFER_BRIDGE(channel1, bridge1, channel2, bridge2, channel3, channel4) do { \
 	RAII_VAR(struct ast_json *, extra, NULL, ast_json_unref); \
-	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", ast_channel_name(channel2), \
+		"channel2_uniqueid", ast_channel_uniqueid(channel2), \
 		"bridge2_id", bridge2->uniqueid, \
 		"transferee_channel_name", ast_channel_name(channel4), \
-		"transfer_target_channel_name", ast_channel_name(channel3)); \
+		"transferee_channel_uniqueid", ast_channel_uniqueid(channel4), \
+		"transfer_target_channel_name", ast_channel_name(channel3), \
+		"transfer_target_channel_uniqueid", ast_channel_uniqueid(channel3)); \
 	ast_test_validate(test, extra != NULL); \
 	APPEND_EVENT(channel1, AST_CEL_ATTENDEDTRANSFER, NULL, extra); \
 	} while (0)
@@ -1572,7 +1577,8 @@ AST_TEST_DEFINE(test_cel_dial_pickup)
 		RAII_VAR(struct ast_json *, extra, NULL, ast_json_unref);
 		SCOPED_CHANNELLOCK(lock, chan_callee);
 
-		extra = ast_json_pack("{s: s}", "pickup_channel", ast_channel_name(chan_charlie));
+		extra = ast_json_pack("{s: s, s: s}", "pickup_channel", ast_channel_name(chan_charlie),
+			"pickup_channel_uniqueid", ast_channel_uniqueid(chan_charlie));
 		ast_test_validate(test, extra != NULL);
 
 		APPEND_EVENT(chan_callee, AST_CEL_PICKUP, NULL, extra);
@@ -1645,7 +1651,8 @@ AST_TEST_DEFINE(test_cel_local_optimize)
 	stasis_publish(ast_channel_topic(chan_alice), local_opt_begin);
 	stasis_publish(ast_channel_topic(chan_alice), local_opt_end);
 
-	extra = ast_json_pack("{s: s}", "local_two", bob_snapshot->name);
+	extra = ast_json_pack("{s: s, s: s}", "local_two", bob_snapshot->name,
+		"local_two_uniqueid", bob_snapshot->uniqueid);
 	ast_test_validate(test, extra != NULL);
 
 	APPEND_EVENT_SNAPSHOT(alice_snapshot, AST_CEL_LOCAL_OPTIMIZE, NULL, extra, NULL);