diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 877e313745..596bcdcbf5 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -3127,7 +3127,7 @@ static switch_status_t conf_api_sub_bgdial(conference_obj_t * conference, switch static switch_status_t conf_api_sub_transfer(conference_obj_t * conference, switch_stream_handle_t *stream, int argc, char **argv) { switch_status_t ret_status = SWITCH_STATUS_SUCCESS; - char *params = NULL; + char *params = NULL, *chanvars = NULL; assert(conference != NULL); assert(stream != NULL); @@ -3170,8 +3170,9 @@ static switch_status_t conf_api_sub_transfer(conference_obj_t * conference, swit profile_name = "default"; } params = switch_mprintf("conf_name=%s&profile_name=%s", conf_name, profile_name); + chanvars = switch_channel_build_param_string(channel, NULL, params); /* Open the config from the xml registry */ - if (!(cxml = switch_xml_open_cfg(global_cf_name, &cfg, params))) { + if (!(cxml = switch_xml_open_cfg(global_cf_name, &cfg, chanvars))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", global_cf_name); goto done; } @@ -3243,6 +3244,8 @@ static switch_status_t conf_api_sub_transfer(conference_obj_t * conference, swit done: switch_safe_free(params); + switch_safe_free(chanvars); + return ret_status; } diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 5f853e7153..cce49404f3 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -853,13 +853,14 @@ static switch_ivr_action_t menu_handler(switch_ivr_menu_t * menu, char *param, c SWITCH_STANDARD_APP(ivr_application_function) { switch_channel_t *channel = switch_core_session_get_channel(session); - char *params; + char *params,*chanvars; if (channel && data && (params = switch_core_session_strdup(session, data))) { switch_xml_t cxml = NULL, cfg = NULL, xml_menus = NULL, xml_menu = NULL; // Open the config from the xml registry - if ((cxml = switch_xml_open_cfg(ivr_cf_name, &cfg, NULL)) != NULL) { + chanvars = switch_channel_build_param_string(channel, NULL, NULL); + if ((cxml = switch_xml_open_cfg(ivr_cf_name, &cfg, chanvars)) != NULL) { if ((xml_menus = switch_xml_child(cfg, "menus"))) { xml_menu = switch_xml_find_child(xml_menus, "menu", "name", params); @@ -890,6 +891,7 @@ SWITCH_STANDARD_APP(ivr_application_function) } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", ivr_cf_name); } + switch_safe_free(chanvars); } } diff --git a/src/mod/applications/mod_rss/mod_rss.c b/src/mod/applications/mod_rss/mod_rss.c index b7e7863e41..28e302fdcd 100644 --- a/src/mod/applications/mod_rss/mod_rss.c +++ b/src/mod/applications/mod_rss/mod_rss.c @@ -186,6 +186,7 @@ SWITCH_STANDARD_APP(rss_function) uint32_t matches = 0; switch_input_args_t args = { 0 }; const char *vcf = NULL; + char *chanvars = NULL; channel = switch_core_session_get_channel(session); assert(channel != NULL); @@ -194,10 +195,12 @@ SWITCH_STANDARD_APP(rss_function) cf = vcf; } + chanvars = switch_channel_build_param_string(channel, NULL, NULL); if (!(cxml = switch_xml_open_cfg(cf, &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", cf); return; } + switch_safe_free(chanvars); if ((feeds = switch_xml_child(cfg, "feeds"))) { for (feed = switch_xml_child(feeds, "feed"); feed; feed = feed->next) {