diff --git a/src/switch_channel.c b/src/switch_channel.c index 2168fd396e..c27f1c5ff9 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1336,32 +1336,30 @@ SWITCH_DECLARE(switch_status_t) switch_channel_transfer_variable_prefix(switch_c SWITCH_DECLARE(void) switch_channel_set_presence_data_vals(switch_channel_t *channel, const char *presence_data_cols) { - if (!zstr(presence_data_cols)) { - char *cols[128] = { 0 }; - char header_name[128] = ""; - int col_count = 0, i = 0; - char *data_copy = NULL; - + char *cols[128] = { 0 }; + char header_name[128] = ""; + int col_count = 0, i = 0; + char *data_copy = NULL; + + if (zstr(presence_data_cols)) { + presence_data_cols = switch_channel_get_variable_dup(channel, "presence_data_cols", SWITCH_FALSE, -1); if (zstr(presence_data_cols)) { - presence_data_cols = switch_channel_get_variable_dup(channel, "presence_data_cols", SWITCH_FALSE, -1); - if (zstr(presence_data_cols)) { - return; - } + return; } - - data_copy = strdup(presence_data_cols); - - col_count = switch_split(data_copy, ':', cols); - - for (i = 0; i < col_count; i++) { - const char *val = NULL; - switch_snprintf(header_name, sizeof(header_name), "PD-%s", cols[i]); - val = switch_channel_get_variable(channel, cols[i]); - switch_channel_set_profile_var(channel, header_name, val); - } - - switch_safe_free(data_copy); } + + data_copy = strdup(presence_data_cols); + + col_count = switch_split(data_copy, ':', cols); + + for (i = 0; i < col_count; i++) { + const char *val = NULL; + switch_snprintf(header_name, sizeof(header_name), "PD-%s", cols[i]); + val = switch_channel_get_variable(channel, cols[i]); + switch_channel_set_profile_var(channel, header_name, val); + } + + switch_safe_free(data_copy); }