]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
allow profile to be specified sep from domain user@domain.com@myprofile
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 3 Sep 2009 18:21:15 +0000 (18:21 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 3 Sep 2009 18:21:15 +0000 (18:21 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14756 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_voicemail/mod_voicemail.c

index 76163c41018442797d5e47580c4c6e98c14c6460..7838ac63736434704f2ffd07b97af9d5b92b8e5c 100644 (file)
@@ -2614,7 +2614,7 @@ static switch_status_t deliver_vm(vm_profile_t *profile,
 static switch_status_t voicemail_inject(const char *data)
 {
        vm_profile_t *profile;
-       char *dup = NULL, *user = NULL, *domain = NULL;
+       char *dup = NULL, *user = NULL, *domain = NULL, *profile_name = NULL;
        switch_status_t status = SWITCH_STATUS_SUCCESS;
        int isgroup = 0, isall = 0;
        int argc = 0;
@@ -2649,6 +2649,12 @@ static switch_status_t voicemail_inject(const char *data)
                domain = user;
        }
 
+       if ((profile_name = strchr(domain, '@'))) {
+               *profile_name++ = '\0';
+       } else {
+               profile_name = domain;
+       }
+
        if (switch_stristr("group=", user)) {
                user += 6;
                isgroup++;
@@ -2662,8 +2668,10 @@ static switch_status_t voicemail_inject(const char *data)
                goto end;
        }
 
-       if (!(profile = get_profile(domain))) {
-               profile = get_profile("default");
+       if (!(profile = get_profile(profile_name))) {
+               if (!(profile = get_profile(domain))) {
+                       profile = get_profile("default");
+               }
        }
        
        if (!profile) {