mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
Bug 6699 - Fix for ENUMLOOKUP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13710 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -64,7 +64,7 @@ static int function_enum(struct ast_channel *chan, char *cmd, char *data,
|
|||||||
);
|
);
|
||||||
int res = 0;
|
int res = 0;
|
||||||
char tech[80];
|
char tech[80];
|
||||||
char dest[256] = "";
|
char dest[256] = "", tmp[2] = "", num[AST_MAX_EXTENSION] = "";
|
||||||
struct localuser *u;
|
struct localuser *u;
|
||||||
char *s, *p;
|
char *s, *p;
|
||||||
|
|
||||||
@@ -82,6 +82,8 @@ static int function_enum(struct ast_channel *chan, char *cmd, char *data,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOCAL_USER_ADD(u);
|
||||||
|
|
||||||
ast_copy_string(tech, args.tech ? args.tech : "sip", sizeof(tech));
|
ast_copy_string(tech, args.tech ? args.tech : "sip", sizeof(tech));
|
||||||
|
|
||||||
if (!args.zone)
|
if (!args.zone)
|
||||||
@@ -92,24 +94,24 @@ static int function_enum(struct ast_channel *chan, char *cmd, char *data,
|
|||||||
|
|
||||||
/* strip any '-' signs from number */
|
/* strip any '-' signs from number */
|
||||||
for (s = p = args.number; *s; s++) {
|
for (s = p = args.number; *s; s++) {
|
||||||
if (*s != '-')
|
if (*s != '-') {
|
||||||
*p++ = *s;
|
snprintf(tmp, sizeof(tmp), "%c", *s);
|
||||||
|
strncat(num, tmp, sizeof(num));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
*p = '\0';
|
|
||||||
|
|
||||||
LOCAL_USER_ADD(u);
|
res = ast_get_enum(chan, num, dest, sizeof(dest), tech, sizeof(tech), args.zone,
|
||||||
|
|
||||||
res = ast_get_enum(chan, p, dest, sizeof(dest), tech, sizeof(tech), args.zone,
|
|
||||||
args.options);
|
args.options);
|
||||||
|
|
||||||
LOCAL_USER_REMOVE(u);
|
|
||||||
|
|
||||||
p = strchr(dest, ':');
|
p = strchr(dest, ':');
|
||||||
if (p && strcasecmp(tech, "ALL"))
|
if (p && strcasecmp(tech, "ALL"))
|
||||||
ast_copy_string(buf, p + 1, len);
|
ast_copy_string(buf, p + 1, len);
|
||||||
else
|
else
|
||||||
ast_copy_string(buf, dest, len);
|
ast_copy_string(buf, dest, len);
|
||||||
|
|
||||||
|
LOCAL_USER_REMOVE(u);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user