]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
MODAPP-251
authorMathieu Rene <mrene@avgs.ca>
Mon, 6 Apr 2009 16:36:33 +0000 (16:36 +0000)
committerMathieu Rene <mrene@avgs.ca>
Mon, 6 Apr 2009 16:36:33 +0000 (16:36 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12916 d0543943-73ff-0310-b7d9-9358b9ac24b2

conf/autoload_configs/voicemail.conf.xml
src/mod/applications/mod_voicemail/mod_voicemail.c

index 0053e1b748ae4d595cd291d1cd78f67733be0a00..e18f82301bdbf37c9dc3f389798585c8d5f0333f 100644 (file)
@@ -15,6 +15,7 @@
       <param name="callback-context" value="default"/>
       <param name="play-new-messages-key" value="1"/>
       <param name="play-saved-messages-key" value="2"/>
+      <param name="login-keys" value="0"/>
       <param name="main-menu-key" value="0"/>
       <param name="config-menu-key" value="5"/>
       <param name="record-greeting-key" value="1"/>
index b747cce9cb482f5eb7d258bfc61b27a3b1b2d884..6f5deec87e2d139442ab229d67d01c1fbbb92b49 100644 (file)
@@ -73,6 +73,7 @@ struct vm_profile {
        char play_new_messages_key[2];
        char play_saved_messages_key[2];
 
+       char login_keys[16];
        char main_menu_key[2];
        char skip_greet_key[2];
        char config_menu_key[2];
@@ -283,6 +284,7 @@ static switch_status_t load_config(void)
                char *play_new_messages_key = "1";
                char *play_saved_messages_key = "2";
 
+               char *login_keys = "0";
                char *main_menu_key = "0";
                char *skip_greet_key = "#";
                char *config_menu_key = "5";
@@ -464,6 +466,8 @@ static switch_status_t load_config(void)
                                play_new_messages_key = val;
                        } else if (!strcasecmp(var, "play-saved-messages-key") && !switch_strlen_zero(val)) {
                                play_saved_messages_key = val;
+                       } else if (!strcasecmp(var, "login-keys") && !switch_strlen_zero(val)) {
+                               login_keys = val;
                        } else if (!strcasecmp(var, "main-menu-key") && !switch_strlen_zero(val)) {
                                main_menu_key = val;
                        } else if (!strcasecmp(var, "skip-greet-key") && val && (!*val || is_dtmf(*val))) {
@@ -762,6 +766,7 @@ static switch_status_t load_config(void)
                        *profile->terminator_key = *terminator_key;
                        *profile->play_new_messages_key = *play_new_messages_key;
                        *profile->play_saved_messages_key = *play_saved_messages_key;
+                       switch_set_string(profile->login_keys, login_keys);
                        *profile->main_menu_key = *main_menu_key;
                        *profile->skip_greet_key = *skip_greet_key;
                        *profile->config_menu_key = *config_menu_key;
@@ -2925,7 +2930,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, cons
 
        if (*buf != '\0') {
   greet_key_press:
-               if (!strcasecmp(buf, profile->main_menu_key)) {
+               if (switch_stristr(buf, profile->login_keys)) {
                        voicemail_check_main(session, profile_name, domain_name, id, 0);
                } else if (!strcasecmp(buf, profile->operator_key) && !switch_strlen_zero(profile->operator_key)) {
                        int argc;