From 61d081ee599570b0a6d910f397a4e527d40a76cd Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 9 Jul 2008 00:53:10 +0000 Subject: [PATCH] do expand_variables in the set app git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8952 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_dptools/mod_dptools.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 792d626e87..d6320a6681 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -701,10 +701,13 @@ SWITCH_STANDARD_APP(deflect_function) SWITCH_STANDARD_APP(set_function) { char *var, *val = NULL; - + if (switch_strlen_zero(data)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No variable name specified.\n"); } else { + switch_channel_t *channel = switch_core_session_get_channel(session); + char *expanded = NULL; + var = switch_core_session_strdup(session, data); val = strchr(var, '='); @@ -715,8 +718,16 @@ SWITCH_STANDARD_APP(set_function) } } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SET [%s]=[%s]\n", var, val ? val : "UNDEF"); - switch_channel_set_variable(switch_core_session_get_channel(session), var, val); + if (val) { + expanded = switch_channel_expand_variables(channel, val); + } + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SET [%s]=[%s]\n", var, expanded ? expanded : "UNDEF"); + switch_channel_set_variable(channel, var, expanded); + + if (expanded && expanded != val) { + switch_safe_free(expanded); + } } }