fix phrase stuff

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6181 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-11-07 23:37:22 +00:00
parent de8928f33b
commit 2e3d02ef5c
2 changed files with 14 additions and 2 deletions

View File

@ -1160,10 +1160,13 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
{
int informed = 0;
char msg_count[80] = "";
switch_channel_set_variable(channel, "voicemail_current_folder", myfolder);
message_count(profile, myid, domain_name, myfolder, &total_new_messages, &total_saved_messages,
&total_new_urgent_messages, &total_saved_urgent_messages);
if (total_new_urgent_messages > 0) {
snprintf(msg_count, sizeof(msg_count), "%d:urgent-new", total_new_urgent_messages);
TRY_CODE(switch_ivr_phrase_macro(session, VM_MESSAGE_COUNT_MACRO, msg_count, NULL, NULL));
@ -1416,7 +1419,8 @@ static void voicemail_check_main(switch_core_session_t *session, const char *pro
char *xtra;
int ok = 1;
caller_profile = switch_channel_get_caller_profile(channel);
xtra = switch_mprintf("mailbox=%s&destination_number=%s&caller_id_number=%s", myid,caller_profile->destination_number,caller_profile->caller_id_number);
xtra = switch_mprintf("mailbox=%s&destination_number=%s&caller_id_number=%s",
myid,caller_profile->destination_number,caller_profile->caller_id_number);
assert(xtra);

View File

@ -100,6 +100,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro(switch_core_session_t *s
const char *module_name = NULL, *chan_lang = NULL;
switch_channel_t *channel;
uint8_t done = 0;
int matches = 0;
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
@ -214,6 +215,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro(switch_core_session_t *s
char *expanded = NULL;
switch_xml_t match = NULL;
status = SWITCH_STATUS_SUCCESS;
if ((proceed = switch_regex_perform(data, pattern, &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) {
match = switch_xml_child(input, "match");
} else {
@ -221,7 +224,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro(switch_core_session_t *s
}
if (match) {
status = SWITCH_STATUS_SUCCESS;
matches++;
for (action = switch_xml_child(match, "action"); action && status == SWITCH_STATUS_SUCCESS; action = action->next) {
char *adata = (char *) switch_xml_attr_soft(action, "data");
char *func = (char *) switch_xml_attr_soft(action, "function");
@ -302,12 +305,17 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro(switch_core_session_t *s
}
done:
if (!matches) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "macro [%s] did not match any patterns\n", macro_name);
}
if (old_sound_prefix) {
switch_channel_set_variable(channel, "sound_prefix", old_sound_prefix);
}
if (xml) {
switch_xml_free(xml);
}
return status;
}