add switch_channel_export_variable
This commit is contained in:
parent
54e73c774f
commit
019c4471ad
|
@ -245,6 +245,11 @@ SWITCH_DECLARE(const char *) switch_channel_get_variable_partner(switch_channel_
|
||||||
#define switch_channel_set_variable(_channel, _var, _val) switch_channel_set_variable_var_check(_channel, _var, _val, SWITCH_TRUE)
|
#define switch_channel_set_variable(_channel, _var, _val) switch_channel_set_variable_var_check(_channel, _var, _val, SWITCH_TRUE)
|
||||||
#define switch_channel_set_variable_partner(_channel, _var, _val) switch_channel_set_variable_partner_var_check(_channel, _var, _val, SWITCH_TRUE)
|
#define switch_channel_set_variable_partner(_channel, _var, _val) switch_channel_set_variable_partner_var_check(_channel, _var, _val, SWITCH_TRUE)
|
||||||
|
|
||||||
|
|
||||||
|
SWITCH_DECLARE(switch_status_t) switch_channel_export_variable_var_check(switch_channel_t *channel, const char *varname, const char *value, switch_bool_t var_check, switch_bool_t nolocal);
|
||||||
|
|
||||||
|
#define switch_channel_export_variable(_channel, _varname, _value, _nolocal) switch_channel_export_variable_var_check(_channel, _varname, _value, SWITCH_TRUE, _nolocal)
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Retrieve a variable from a given channel
|
\brief Retrieve a variable from a given channel
|
||||||
\param channel channel to retrieve variable from
|
\param channel channel to retrieve variable from
|
||||||
|
|
|
@ -737,6 +737,37 @@ SWITCH_DECLARE(switch_status_t) switch_channel_set_profile_var(switch_channel_t
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SWITCH_DECLARE(switch_status_t) switch_channel_export_variable_var_check(switch_channel_t *channel, const char *varname, const char *value, switch_bool_t var_check, switch_bool_t nolocal)
|
||||||
|
{
|
||||||
|
const char *exports, *exports_varname = varname;
|
||||||
|
switch_status_t status;
|
||||||
|
|
||||||
|
exports = switch_channel_get_variable(channel, SWITCH_EXPORT_VARS_VARIABLE);
|
||||||
|
|
||||||
|
if (nolocal) {
|
||||||
|
exports_varname = switch_mprintf("nolocal:%s", varname);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((status = switch_channel_set_variable_var_check(channel, exports_varname, value, var_check)) != SWITCH_STATUS_SUCCESS) {
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (varname && value) {
|
||||||
|
if (exports) {
|
||||||
|
switch_channel_set_variable_printf(channel, SWITCH_EXPORT_VARS_VARIABLE, "%s,%s", exports, exports_varname);
|
||||||
|
} else {
|
||||||
|
switch_channel_set_variable(channel, SWITCH_EXPORT_VARS_VARIABLE, exports_varname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (exports_varname != varname) {
|
||||||
|
free((char*)exports_varname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_var_check(switch_channel_t *channel,
|
SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_var_check(switch_channel_t *channel,
|
||||||
const char *varname, const char *value, switch_bool_t var_check)
|
const char *varname, const char *value, switch_bool_t var_check)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue