From d262f07d0fa0bf8f25a633f499f2512c5c0e054c Mon Sep 17 00:00:00 2001 From: Brian West Date: Thu, 20 Aug 2015 20:57:58 -0500 Subject: [PATCH] FS-7855 pass userVariables back to the live array --- .../mod_conference/conference_event.c | 4 +-- .../mod_conference/conference_member.c | 25 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/mod/applications/mod_conference/conference_event.c b/src/mod/applications/mod_conference/conference_event.c index 1f172871a1..bbed44305e 100644 --- a/src/mod/applications/mod_conference/conference_event.c +++ b/src/mod/applications/mod_conference/conference_event.c @@ -417,8 +417,8 @@ void conference_event_adv_la(conference_obj_t *conference, conference_member_t * switch_core_get_variables(&variables); for (hp = variables->headers; hp; hp = hp->next) { - if (!strncasecmp(hp->name, "conference_verto_", 11)) { - char *var = hp->name + 11; + if (!strncasecmp(hp->name, "conference_verto_", 17)) { + char *var = hp->name + 17; if (var) { cJSON_AddItemToObject(data, var, cJSON_CreateString(hp->value)); } diff --git a/src/mod/applications/mod_conference/conference_member.c b/src/mod/applications/mod_conference/conference_member.c index 28134d1358..0a05b7c9f0 100644 --- a/src/mod/applications/mod_conference/conference_member.c +++ b/src/mod/applications/mod_conference/conference_member.c @@ -905,6 +905,10 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m if (conference->la && member->channel && !switch_channel_test_flag(member->channel, CF_VIDEO_ONLY)) { if (!conference_utils_member_test_flag(member, MFLAG_SECOND_SCREEN)) { + cJSON *dvars; + switch_event_t *var_event; + switch_event_header_t *hi; + member->json = cJSON_CreateArray(); cJSON_AddItemToArray(member->json, cJSON_CreateStringPrintf("%0.4d", member->id)); cJSON_AddItemToArray(member->json, cJSON_CreateString(switch_channel_get_variable(member->channel, "caller_id_number"))); @@ -915,12 +919,27 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m switch_channel_get_variable(member->channel, "original_read_rate") )); - - - member->status_field = cJSON_CreateString(""); cJSON_AddItemToArray(member->json, member->status_field); + switch_channel_get_variables(member->channel, &var_event); + + dvars = cJSON_CreateObject(); + + for (hi = var_event->headers; hi; hi = hi->next) { + if (!strncasecmp(hi->name, "verto_dvar_", 11)) { + char *var = hi->name + 11; + + if (var) { + cJSON_AddItemToObject(dvars, var, cJSON_CreateString(hi->value)); + } + } + } + + cJSON_AddItemToArray(member->json, dvars); + + switch_event_destroy(&var_event); + cJSON_AddItemToArray(member->json, cJSON_CreateNull()); conference_member_update_status_field(member);