static void cli_match_char_tree(struct match_char *node, char *prefix, int fd)
{
char my_prefix[1024];
-
- ast_cli(fd, "%s%s:%c:%d:%s%s\n", prefix, node->x, node->is_pattern ? 'Y':'N', node->specificity, node->exten? "EXTEN:":"", node->exten ? node->exten->exten : "");
+ if (strlen(node->x) > 1 )
+ ast_cli(fd, "%s[%s]:%c:%d:%s%s\n", prefix, node->x, node->is_pattern ? 'Y':'N', node->specificity, node->exten? "EXTEN:":"", node->exten ? node->exten->exten : "");
+ else
+ ast_cli(fd, "%s%s:%c:%d:%s%s\n", prefix, node->x, node->is_pattern ? 'Y':'N', node->specificity, node->exten? "EXTEN:":"", node->exten ? node->exten->exten : "");
strcpy(my_prefix,prefix);
strcat(my_prefix,"+ ");
if (node->next_char)
if (pattern && *s1 == '[' && *(s1-1) != '\\') {
char *s2 = buf;
buf[0] = 0;
+ s1++; /* get past the '[' */
while (*s1 != ']' && *(s1-1) != '\\' ) {
if (*s1 == '\\') {
if (*(s1+1) == ']') {
*s2++ = *s1++;
}
}
+ *s2 = 0; /* null terminate the exploded range */
specif = strlen(buf);
} else {
if (*s1 == '\\') {
}
if (con) {
char returnexten[AST_MAX_EXTENSION];
+ char peername_flat[AST_MAX_EXTENSION]; /* using something like Zap/52 for an extension name is NOT a good idea */
+ int i;
+ ast_copy_string(peername_flat,peername,sizeof(peername_flat));
+ for(i=0; peername_flat[i] && i < AST_MAX_EXTENSION; i++) {
+ if (peername_flat[i] == '/')
+ peername_flat[i]= '0';
+ }
snprintf(returnexten, sizeof(returnexten), "%s,,t", peername);
- ast_add_extension2(con, 1, peername, 1, NULL, NULL, "Dial", ast_strdup(returnexten), ast_free_ptr, registrar);
+ ast_add_extension2(con, 1, peername_flat, 1, NULL, NULL, "Dial", ast_strdup(returnexten), ast_free_ptr, registrar);
}
if (comebacktoorigin) {
set_c_e_p(chan, parking_con_dial, peername, 1);