]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
finish up vm changes
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 18 Mar 2010 22:12:51 +0000 (22:12 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 18 Mar 2010 22:12:51 +0000 (22:12 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@17047 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_voicemail/mod_voicemail.c

index 918cdd690e0e28d4de4d5dd7e2f7c2a43fe2d9d8..90c17c5d4c0c619ca076624035cc1a50e30f8845 100644 (file)
@@ -4014,6 +4014,14 @@ SWITCH_STANDARD_API(voicemail_read_api_function)
        if (e && (p = strchr(e, ' '))) {
                *p++ = '\0';
                ru = e = p;
+       }
+
+       if (e && (p = strchr(e, ' '))) {
+               *p++ = '\0';
+               uuid = p;
+       }
+
+       if (ru) {
                if (!strcasecmp(ru, "read")) {
                        mread = 1;
                } else if (!strcasecmp(ru, "unread")) {
@@ -4023,13 +4031,6 @@ SWITCH_STANDARD_API(voicemail_read_api_function)
                }
        }
 
-       if (mread > -1) {
-               if (e && (p = strchr(e, ' '))) {
-                       *p++ = '\0';
-                       uuid = p;
-               }
-       }
-
 
        if (mread > -1 && id && domain && profile_name && (profile = get_profile(profile_name))) {
                
@@ -4094,7 +4095,7 @@ static int api_list_callback(void *pArg, int argc, char **argv, char **columnNam
 SWITCH_STANDARD_API(voicemail_list_api_function)
 {
        char *sql;
-       char *id = NULL, *domain = NULL, *format = "text", *profile_name = "default";
+       char *id = NULL, *uuid = NULL, *domain = NULL, *format = "text", *profile_name = "default";
        char *p, *e = NULL;
        vm_profile_t *profile;
 
@@ -4117,13 +4118,24 @@ SWITCH_STANDARD_API(voicemail_list_api_function)
 
        if (e && (p = strchr(e, ' '))) {
                *p++ = '\0';
-               format = p;
+               format = e = p;
+       }
+
+       if (e && (p = strchr(e, ' '))) {
+               *p++ = '\0';
+               uuid = p;
        }
 
        if (id && domain && profile_name && (profile = get_profile(profile_name))) {
-               sql = switch_mprintf("select created_epoch, read_epoch, username, domain, in_folder, file_path, uuid, cid_name, cid_number, "
-                                                        "'%q' from voicemail_msgs where username='%q' and domain='%q'", 
-                                                        format, id, domain);
+               if (uuid) {
+                       sql = switch_mprintf("select created_epoch, read_epoch, username, domain, in_folder, file_path, uuid, cid_name, cid_number, "
+                                                                "'%q' from voicemail_msgs where username='%q' and domain='%q' and uuid='%q'", 
+                                                                format, id, domain, uuid);
+               } else {
+                       sql = switch_mprintf("select created_epoch, read_epoch, username, domain, in_folder, file_path, uuid, cid_name, cid_number, "
+                                                                "'%q' from voicemail_msgs where username='%q' and domain='%q'", 
+                                                                format, id, domain);
+               }
 
                if (!strcasecmp(format, "xml")) {
                        stream->write_function(stream, "<voicemail>\n");