Index: apps/app_confbridge.c =================================================================== --- apps/app_confbridge.c (revision 360189) +++ apps/app_confbridge.c (working copy) @@ -537,35 +537,42 @@ manager_event(EVENT_FLAG_CALL, "ConfbridgeEnd", "Conference: %s\r\n", conf_name); } -static void send_join_event(struct ast_channel *chan, const char *conf_name) +static void send_join_event(struct conference_bridge_user *user, struct conference_bridge *conf) { - ast_manager_event(chan, EVENT_FLAG_CALL, "ConfbridgeJoin", + char name_recording_path[277] = ""; + if (!ast_strlen_zero(user->name_rec_location)) { + sprintf(name_recording_path, "NameRecordingPath: %s\r\n", user->name_rec_location); + } + + ast_manager_event(user->chan, EVENT_FLAG_CALL, "ConfbridgeJoin", "Channel: %s\r\n" "Uniqueid: %s\r\n" "Conference: %s\r\n" "CallerIDnum: %s\r\n" - "CallerIDname: %s\r\n", - ast_channel_name(chan), - ast_channel_uniqueid(chan), - conf_name, - S_COR(ast_channel_caller(chan)->id.number.valid, ast_channel_caller(chan)->id.number.str, ""), - S_COR(ast_channel_caller(chan)->id.name.valid, ast_channel_caller(chan)->id.name.str, "") + "CallerIDname: %s\r\n" + "%s", /* name_recording_path, which may be empty */ + ast_channel_name(user->chan), + ast_channel_uniqueid(user->chan), + conf->name, + S_COR(ast_channel_caller(user->chan)->id.number.valid, ast_channel_caller(user->chan)->id.number.str, ""), + S_COR(ast_channel_caller(user->chan)->id.name.valid, ast_channel_caller(user->chan)->id.name.str, ""), + name_recording_path ); } -static void send_leave_event(struct ast_channel *chan, const char *conf_name) +static void send_leave_event(struct conference_bridge_user *user, struct conference_bridge *conf) { - ast_manager_event(chan, EVENT_FLAG_CALL, "ConfbridgeLeave", + ast_manager_event(user->chan, EVENT_FLAG_CALL, "ConfbridgeLeave", "Channel: %s\r\n" "Uniqueid: %s\r\n" "Conference: %s\r\n" "CallerIDnum: %s\r\n" "CallerIDname: %s\r\n", - ast_channel_name(chan), - ast_channel_uniqueid(chan), - conf_name, - S_COR(ast_channel_caller(chan)->id.number.valid, ast_channel_caller(chan)->id.number.str, ""), - S_COR(ast_channel_caller(chan)->id.name.valid, ast_channel_caller(chan)->id.name.str, "") + ast_channel_name(user->chan), + ast_channel_uniqueid(user->chan), + conf->name, + S_COR(ast_channel_caller(user->chan)->id.number.valid, ast_channel_caller(user->chan)->id.number.str, ""), + S_COR(ast_channel_caller(user->chan)->id.name.valid, ast_channel_caller(user->chan)->id.name.str, "") ); } @@ -1496,13 +1503,13 @@ handle_video_on_join(conference_bridge, conference_bridge_user.chan, ast_test_flag(&conference_bridge_user.u_profile, USER_OPT_MARKEDUSER)); /* Join our conference bridge for real */ - send_join_event(conference_bridge_user.chan, conference_bridge->name); + send_join_event(&conference_bridge_user, conference_bridge); ast_bridge_join(conference_bridge->bridge, chan, NULL, &conference_bridge_user.features, &conference_bridge_user.tech_args); - send_leave_event(conference_bridge_user.chan, conference_bridge->name); + send_leave_event(&conference_bridge_user, conference_bridge); /* if we're shutting down, don't attempt to do further processing */ if (ast_shutting_down()) { @@ -2320,6 +2327,7 @@ struct conference_bridge *bridge = NULL; struct conference_bridge tmp; char id_text[80] = ""; + char name_recording_path[277] = ""; int total = 0; if (!ast_strlen_zero(actionid)) { @@ -2345,6 +2353,13 @@ ao2_lock(bridge); AST_LIST_TRAVERSE(&bridge->users_list, participant, list) { total++; + + if (!ast_strlen_zero(participant->name_rec_location)) { + sprintf(name_recording_path, "NameRecordingPath: %s\r\n", participant->name_rec_location); + } else { + *name_recording_path = '\0'; + } + astman_append(s, "Event: ConfbridgeList\r\n" "%s" @@ -2354,6 +2369,7 @@ "Channel: %s\r\n" "Admin: %s\r\n" "MarkedUser: %s\r\n" + "%s" /* name_recording_path, which may be empty */ "\r\n", id_text, bridge->name, @@ -2361,7 +2377,9 @@ S_COR(ast_channel_caller(participant->chan)->id.name.valid, ast_channel_caller(participant->chan)->id.name.str, ""), ast_channel_name(participant->chan), ast_test_flag(&participant->u_profile, USER_OPT_ADMIN) ? "Yes" : "No", - ast_test_flag(&participant->u_profile, USER_OPT_MARKEDUSER) ? "Yes" : "No"); + ast_test_flag(&participant->u_profile, USER_OPT_MARKEDUSER) ? "Yes" : "No", + name_recording_path + ); } ao2_unlock(bridge); ao2_ref(bridge, -1);