From 03e42f7339727e7b99b7ee74de6f5c9e23a2ce17 Mon Sep 17 00:00:00 2001 From: markster Date: Sat, 10 May 2003 16:10:07 +0000 Subject: Update vmail.cgi for the new segmented voicemail system git-svn-id: http://svn.digium.com/svn/asterisk/trunk@987 f38db490-d61c-443f-a65b-d21fe96a405b --- vmail.cgi | 132 ++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 86 insertions(+), 46 deletions(-) (limited to 'vmail.cgi') diff --git a/vmail.cgi b/vmail.cgi index c2ec26227..99eed585b 100755 --- a/vmail.cgi +++ b/vmail.cgi @@ -67,10 +67,16 @@ _EOH sub check_login() { - my $mbox = param('mailbox'); + my ($mbox, $context) = split(/\@/, param('mailbox')); my $pass = param('password'); my $category = "general"; my @fields; + if (!$context) { + $context = param('context'); + } + if (!$context) { + $context = "default"; + } open(VMAIL, ") { chomp; @@ -79,8 +85,8 @@ sub check_login() } elsif ($category ne "general") { if (/([^\s]+)\s*\=\>?\s*(.*)/) { @fields = split(/\,\s*/, $2); - if (($mbox eq $1) && ($pass eq $fields[0])) { - return $fields[1] ? $fields[1] : "Extension $mbox"; + if (($mbox eq $1) && ($pass eq $fields[0]) && ($context eq $category)) { + return $fields[1] ? $fields[1] : "Extension $mbox in $context"; } } } @@ -89,7 +95,7 @@ sub check_login() sub validmailbox() { - my ($mbox) = @_; + my ($context, $mbox) = @_; my $category = "general"; my @fields; open(VMAIL, "?\s*(.*)/) { @fields = split(/\,\s*/, $2); if ($mbox eq $1) { @@ -110,7 +116,7 @@ sub validmailbox() sub mailbox_list() { - my ($name, $current) = @_; + my ($name, $context, $current) = @_; my $tmp; my $text; $tmp = " + $stdcontainerend @@ -253,12 +260,20 @@ sub message_play() { my ($message, $msgid) = @_; my $folder = param('folder'); - my $mbox = param('mailbox'); + my ($mbox, $context) = split(/\@/, param('mailbox')); my $passwd = param('password'); my $format = param('format'); + my $fields; - my $folders = &folder_list('newfolder', $mbox, $folder); - my $mailboxes = &mailbox_list('forwardto', $mbox); + if (!$context) { + $context = param('context'); + } + if (!$context) { + $context = "default"; + } + + my $folders = &folder_list('newfolder', $context, $mbox, $folder); + my $mailboxes = &mailbox_list('forwardto', $context, $mbox); if (!$format) { $format = &getcookie('format'); } @@ -266,7 +281,7 @@ sub message_play() &message_prefs("play", $msgid); } else { print header(-cookie => &makecookie($format)); - $fields = &getfields($mbox, $folder, $msgid); + $fields = &getfields($context, $mbox, $folder, $msgid); if (!$fields) { print "
Bah!\n"; return; @@ -316,6 +331,7 @@ _EOH + $stdcontainerend @@ -361,7 +377,7 @@ sub message_audio() sub message_index() { my ($folder, $message) = @_; - my $mbox = param('mailbox'); + my ($mbox, $context) = split(/\@/, param('mailbox')); my $passwd = param('password'); my $message2; my $msgcount; @@ -371,12 +387,18 @@ sub message_index() if (!$format) { $format = &getcookie('format'); } + if (!$context) { + $context = param('context'); + } + if (!$context) { + $context = "default"; + } if ($folder) { - $msgcount = &msgcountstr($mbox, $folder); - $message2 = "   Folder '$folder' has " . &msgcountstr($mbox, $folder); + $msgcount = &msgcountstr($context, $mbox, $folder); + $message2 = "   Folder '$folder' has " . &msgcountstr($context, $mbox, $folder); } else { - $newmessages = &msgcount($mbox, "INBOX"); - $oldmessages = &msgcount($mbox, "Old"); + $newmessages = &msgcount($context, $mbox, "INBOX"); + $oldmessages = &msgcount($context, $mbox, "Old"); if (($newmessages > 0) || ($oldmessages < 1)) { $folder = "INBOX"; } else { @@ -413,9 +435,9 @@ sub message_index() } } - my $folders = &folder_list('newfolder', $mbox, $folder); - my $cfolders = &folder_list('changefolder', $mbox, $folder); - my $mailboxes = &mailbox_list('forwardto', $mbox); + my $folders = &folder_list('newfolder', $context, $mbox, $folder); + my $cfolders = &folder_list('changefolder', $context, $mbox, $folder); + my $mailboxes = &mailbox_list('forwardto', $context, $mbox); print header(-cookie => &makecookie($format)); print <<_EOH; @@ -433,9 +455,9 @@ _EOH print " Msg From Duration Date \n"; print "



\n"; -foreach $msg (&messages($mbox, $folder)) { +foreach $msg (&messages($context, $mbox, $folder)) { - $fields = &getfields($mbox, $folder, $msg); + $fields = &getfields($context, $mbox, $folder, $msg); $duration = $fields->{'duration'}; if ($duration) { $duration = sprintf "%d:%02d", $duration / 60, $duration % 60; @@ -476,6 +498,7 @@ print <<_EOH; + $stdcontainerend @@ -491,12 +514,12 @@ sub validfolder() sub folder_list() { - my ($name, $mbox, $selected) = @_; + my ($name, $context, $mbox, $selected) = @_; my $f; my $count; my $tmp = "