FS-3863 try this please

This commit is contained in:
Anthony Minessale 2012-02-01 15:17:18 -06:00
parent 9c908b983f
commit 19d3e64636
1 changed files with 8 additions and 8 deletions

View File

@ -84,7 +84,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
switch_xml_t xcond, xaction, xexpression, xregex; switch_xml_t xcond, xaction, xexpression, xregex;
switch_channel_t *channel = switch_core_session_get_channel(session); switch_channel_t *channel = switch_core_session_get_channel(session);
char *exten_name = (char *) switch_xml_attr(xexten, "name"); char *exten_name = (char *) switch_xml_attr(xexten, "name");
int proceed = 0, save_proceed = 0; int proceed = 0, save_proceed = 0, soft_proceed = 0;
char *expression_expanded = NULL, *field_expanded = NULL; char *expression_expanded = NULL, *field_expanded = NULL;
switch_regex_t *re = NULL, *save_re = NULL; switch_regex_t *re = NULL, *save_re = NULL;
int offset = 0; int offset = 0;
@ -117,7 +117,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
if (switch_xml_child(xcond, "condition")) { if (switch_xml_child(xcond, "condition")) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Nested conditions are not allowed!\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Nested conditions are not allowed!\n");
proceed = 1; soft_proceed = 1;
goto done; goto done;
} }
@ -143,7 +143,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
"Dialplan: %s Date/Time Match (PASS) [%s] break=%s\n", "Dialplan: %s Date/Time Match (PASS) [%s] break=%s\n",
switch_channel_get_name(channel), exten_name, do_break_a ? do_break_a : "on-false"); switch_channel_get_name(channel), exten_name, do_break_a ? do_break_a : "on-false");
anti_action = SWITCH_FALSE; anti_action = SWITCH_FALSE;
proceed = 1; soft_proceed = 1;
} else if (time_match == 0) { } else if (time_match == 0) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG, switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG,
"Dialplan: %s Date/TimeMatch (FAIL) [%s] break=%s\n", "Dialplan: %s Date/TimeMatch (FAIL) [%s] break=%s\n",
@ -223,11 +223,11 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG, switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG,
"Dialplan: %s Absolute Condition [%s] match=%s\n", switch_channel_get_name(channel), exten_name, all ? "all" : "any"); "Dialplan: %s Absolute Condition [%s] match=%s\n", switch_channel_get_name(channel), exten_name, all ? "all" : "any");
pass++; pass++;
proceed = 1; soft_proceed = 1;
if (!all && !xor) break; if (!all && !xor) break;
} else if (time_match == 1) { } else if (time_match == 1) {
pass++; pass++;
proceed = 1; soft_proceed = 1;
if (!all && !xor) break; if (!all && !xor) break;
} }
@ -313,7 +313,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG, switch_log_printf(SWITCH_CHANNEL_SESSION_LOG_CLEAN(session), SWITCH_LOG_DEBUG,
"Dialplan: %s Absolute Condition [%s]\n", switch_channel_get_name(channel), exten_name); "Dialplan: %s Absolute Condition [%s]\n", switch_channel_get_name(channel), exten_name);
anti_action = SWITCH_FALSE; anti_action = SWITCH_FALSE;
proceed = 1; soft_proceed = 1;
} }
} }
@ -368,7 +368,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
switch_caller_extension_add_application(session, *extension, application, data); switch_caller_extension_add_application(session, *extension, application, data);
} }
} }
proceed = 1; soft_proceed = 1;
} }
} else { } else {
if (field && strchr(expression, '(')) { if (field && strchr(expression, '(')) {
@ -443,7 +443,7 @@ static int parse_exten(switch_core_session_t *session, switch_caller_profile_t *
switch_regex_safe_free(re); switch_regex_safe_free(re);
switch_safe_free(field_expanded); switch_safe_free(field_expanded);
switch_safe_free(expression_expanded); switch_safe_free(expression_expanded);
return proceed; return proceed ? proceed : soft_proceed;
} }
static switch_status_t dialplan_xml_locate(switch_core_session_t *session, switch_caller_profile_t *caller_profile, switch_xml_t *root, static switch_status_t dialplan_xml_locate(switch_core_session_t *session, switch_caller_profile_t *caller_profile, switch_xml_t *root,