aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--funcs/func_strings.c6
-rw-r--r--pbx.c3
2 files changed, 5 insertions, 4 deletions
diff --git a/funcs/func_strings.c b/funcs/func_strings.c
index 27c457dd4..6da95b54c 100644
--- a/funcs/func_strings.c
+++ b/funcs/func_strings.c
@@ -41,13 +41,15 @@
static char *function_fieldqty(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
- char *varname, *varval, workspace[256];
+ char *varname, *varval;
char *delim = ast_strdupa(data);
int fieldcount = 0;
if (delim) {
varname = strsep(&delim, "|");
- pbx_retrieve_variable(chan, varname, &varval, workspace, sizeof(workspace), NULL);
+ varval = pbx_builtin_getvar_helper(chan, varname);
+ if (varval)
+ varval = ast_strdupa(varval);
if (delim) {
while (strsep(&varval, delim))
fieldcount++;
diff --git a/pbx.c b/pbx.c
index b126c3ddb..7a8f9979d 100644
--- a/pbx.c
+++ b/pbx.c
@@ -974,8 +974,7 @@ static char *substring(const char *value, int offset, int length, char *workspac
return ret;
}
-/*! \brief pbx_retrieve_variable: Support for Asterisk built-in variables and
- functions in the dialplan
+/*! \brief pbx_retrieve_variable: Support for Asterisk built-in variables
---*/
void pbx_retrieve_variable(struct ast_channel *c, const char *var, char **ret, char *workspace, int workspacelen, struct varshead *headp)
{