Revision
14392
Author
mikej
Date
2009-07-27 15:46:05 -0500 (Mon, 27 Jul 2009)

Log Message

mod_voicemail: allow to skip the info section of a message by pressing a key (MODAPP-314)

<!--<param name="skip-info-key" value=""/>-->

Modified Paths

Diff

Modified: freeswitch/trunk/conf/autoload_configs/voicemail.conf.xml (14391 => 14392)


--- freeswitch/trunk/conf/autoload_configs/voicemail.conf.xml	2009-07-27 20:26:00 UTC (rev 14391)
+++ freeswitch/trunk/conf/autoload_configs/voicemail.conf.xml	2009-07-27 20:46:05 UTC (rev 14392)
@@ -37,6 +37,7 @@
       <param name="rew-msec" value="6000"/>
       <!--<param name="previous-message-key" value=""/>-->
       <!--<param name="next-message-key" value=""/>-->
+      <!--<param name="skip-info-key" value=""/>-->
       <param name="record-silence-threshold" value="200"/>
       <param name="record-silence-hits" value="2"/>
       <param name="web-template-file" value="web-vm.tpl"/>

Modified: freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c (14391 => 14392)


--- freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c	2009-07-27 20:26:00 UTC (rev 14391)
+++ freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c	2009-07-27 20:46:05 UTC (rev 14392)
@@ -87,6 +87,7 @@
 	char login_keys[16];
 	char main_menu_key[2];
 	char skip_greet_key[2];
+	char skip_info_key[2];
 	char config_menu_key[2];
 	char record_greeting_key[2];
 	char choose_greeting_key[2];
@@ -476,6 +477,8 @@
 		&profile->main_menu_key, "0", &config_dtmf, NULL, NULL);
 	SWITCH_CONFIG_SET_ITEM(profile->config[i++], "skip-greet-key", SWITCH_CONFIG_STRING, CONFIG_RELOADABLE, 
 		&profile->skip_greet_key, "#", &config_dtmf, NULL, NULL);		
+	SWITCH_CONFIG_SET_ITEM(profile->config[i++], "skip-info-key", SWITCH_CONFIG_STRING, CONFIG_RELOADABLE,
+		&profile->skip_info_key, "", &config_dtmf, NULL, NULL);
 	SWITCH_CONFIG_SET_ITEM(profile->config[i++], "config-menu-key", SWITCH_CONFIG_STRING, CONFIG_RELOADABLE, 
 		&profile->config_menu_key, "5", &config_dtmf, NULL, NULL);
 	SWITCH_CONFIG_SET_ITEM(profile->config[i++], "record-greeting-key", SWITCH_CONFIG_STRING, CONFIG_RELOADABLE, 
@@ -888,7 +891,8 @@
 
 			if (!cc->noexit
 				&& (dtmf->digit == *cc->profile->delete_file_key || dtmf->digit == *cc->profile->save_file_key
-					|| dtmf->digit == *cc->profile->prev_msg_key || dtmf->digit == *cc->profile->next_msg_key)) {
+					|| dtmf->digit == *cc->profile->prev_msg_key || dtmf->digit == *cc->profile->next_msg_key
+					|| dtmf->digit == *cc->profile->terminator_key || dtmf->digit == *cc->profile->skip_info_key)) {
 				*cc->buf = dtmf->digit;
 				return SWITCH_STATUS_BREAK;
 			}
@@ -1486,7 +1490,8 @@
 			TRY_CODE(switch_ivr_phrase_macro(session, VM_SAY_DATE_MACRO, cbt->created_epoch, NULL, &args));
 		}
 
-		if (!*cc.buf) {
+		if (!*cc.buf || *cc.buf == *cc.profile->skip_info_key) {
+			*cc.buf = '\0';
 			memset(&fh, 0, sizeof(fh));
 			cc.fh = &fh;
 			TRY_CODE(switch_ivr_play_file(session, &fh, cbt->file_path, &args));