亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vmail.cgi

?? asterisk 是一個很有知名度開源軟件
?? CGI
?? 第 1 頁 / 共 2 頁
字號:
#!/usr/bin/perl## Web based Voicemail for Asterisk## Copyright (C) 2002, Linux Support Services, Inc.## Distributed under the terms of the GNU General Public License## Written by Mark Spencer <markster@linux-support.net>## (icky, I know....  if you know better perl please help!)### Synchronization added by GDS Partners (www.gdspartners.com)#			 Stojan Sljivic (stojan.sljivic@gdspartners.com)#use CGI qw/:standard/;use Carp::Heavy;use CGI::Carp qw(fatalsToBrowser);use DBI;use Fcntl qw ( O_WRONLY O_CREAT O_EXCL );use Time::HiRes qw ( usleep );$context=""; # Define here your by default context (so you dont need to put voicemail@context in the login)@validfolders = ( "INBOX", "Old", "Work", "Family", "Friends", "Cust1", "Cust2", "Cust3", "Cust4", "Cust5" );%formats = (	"wav" => {		name => "Uncompressed WAV",		mime => "audio/x-wav",		pref => 1	},	"WAV" => {		name => "GSM Compressed WAV",		mime => "audio/x-wav",		pref => 2	},	"gsm" => {		name => "Raw GSM Audio",		mime => "audio/x-gsm",		pref => 3	});$astpath = "/_asterisk";$stdcontainerstart = "<table align=center width=600><tr><td>\n";$footer = "<hr><font size=-1><a href=\"http://www.asterisk.org\">The Asterisk Open Source PBX</a> Copyright 2004-2008, <a href=\"http://www.digium.com\">Digium, Inc.</a></a>";$stdcontainerend = "</td></tr><tr><td align=right>$footer</td></tr></table>\n";sub lock_path($) {	my($path) = @_;	my $rand;	my $rfile;	my $start;	my $res;		$rand = rand 99999999;		$rfile = "$path/.lock-$rand";		sysopen(RFILE, $rfile, O_WRONLY | O_CREAT | O_EXCL, 0666) or return -1;	close(RFILE);		$res = link($rfile, "$path/.lock");	$start = time;	if ($res == 0) {	while (($res == 0) && (time - $start <= 5)) {		$res = link($rfile, "$path/.lock");		usleep(1);	}	}	unlink($rfile);		if ($res == 0) {		return -1;	} else {		return 0;	}}sub unlock_path($) {	my($path) = @_;		unlink("$path/.lock");}sub untaint($) {	my($data) = @_;		if ($data =~ /^([-\@\w.]+)$/) {		$data = $1;	} else {		die "Security violation.";	}		return $data;}sub login_screen($) {	print header;	my ($message) = @_;	print <<_EOH;<TITLE>Asterisk Web-Voicemail</TITLE><BODY BGCOLOR="white">$stdcontainerstart<FORM METHOD="post"><input type=hidden name="action" value="login"><table align=center><tr><td valign=top align=center rowspan=6><img align=center src="$astpath/animlogo.gif"></td></tr><tr><td align=center colspan=2><font size=+2>Comedian Mail Login</font></td></tr><tr><td align=center colspan=2><font size=+1>$message</font></td></tr><tr><td>Mailbox:</td><td><input type=text name="mailbox"></td></tr><tr><td>Password:</td><td><input type=password name="password"></td></tr><tr><td align=right colspan=2><input value="Login" type=submit></td></tr><input type=hidden name="context" value="$context"></table></FORM>$stdcontainerend</BODY>\n_EOH}sub check_login($$){	local ($filename, $startcat) = @_;	local ($mbox, $context) = split(/\@/, param('mailbox'));	local $pass = param('password');	local $category = $startcat;	local @fields;	local $tmp;	local (*VMAIL);	if (!$category) {		$category = "general";	}	if (!$context) {		$context = param('context');	}	if (!$context) {		$context = "default";	}	if (!$filename) {		$filename = "/etc/asterisk/voicemail.conf";	}#	print header;#	print "Including <h2>$filename</h2> while in <h2>$category</h2>...\n";	open(VMAIL, "<$filename") || die("Bleh, no $filename");	while(<VMAIL>) {		chomp;		if (/include\s\"([^\"]+)\"$/) {			($tmp, $category) = &check_login("/etc/asterisk/$1", $category);			if (length($tmp)) {#				print "Got '$tmp'\n";				return ($tmp, $category);			}		} elsif (/\[(.*)\]/) {			$category = $1;		} elsif ($category eq "general") {			if (/([^\s]+)\s*\=\s*(.*)/) {				if ($1 eq "dbname") {					$dbname = $2;				} elsif ($1 eq "dbpass") {					$dbpass = $2;				} elsif ($1 eq "dbhost") {					$dbhost = $2;				} elsif ($1 eq "dbuser") {					$dbuser = $2;				}			}			if ($dbname and $dbpass and $dbhost and $dbuser) {				# db variables are present.  Use db for authentication.				my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);				my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});				$sth->execute();				if (($fullname, $category) = $sth->fetchrow_array()) {					return ($fullname ? $fullname : "Extension $mbox in $context",$category);				}			}		} elsif (($category ne "general") && ($category ne "zonemessages")) { 			if (/([^\s]+)\s*\=\>?\s*(.*)/) {				@fields = split(/\,\s*/, $2);#				print "<p>Mailbox is $1\n";				if (($mbox eq $1) && (($pass eq $fields[0]) || ("-${pass}" eq $fields[0])) && ($context eq $category)) {					return ($fields[1] ? $fields[1] : "Extension $mbox in $context", $category);				}			}		}	}	close(VMAIL);	return check_login_users();}sub check_login_users {	my ($mbox, $context) = split(/\@/, param('mailbox'));	my $pass = param('password');	my ($found, $fullname) = (0, "");	open VMAIL, "</etc/asterisk/users.conf";	while (<VMAIL>) {		chomp;		if (m/\[(.*)\]/) {			if ($1 eq $mbox) {				$found = 1;			} elsif ($found == 2) {				close VMAIL;				return (($fullname ? $fullname : "Extension $mbox in $context"), $context);			} else {				$found = 0;			}		} elsif ($found) {			my ($var, $value) = split /\s*=\s*/, $_, 2;			if ($var eq 'vmsecret' and $value eq $pass) {				$found = 2;			} elsif ($var eq 'fullname') {				$fullname = $value;				if ($found == 2) {					close VMAIL;					return ($fullname, $context);				}			}		}	}	close VMAIL;	return ("", "");}sub validmailbox($$$$){	local ($context, $mbox, $filename, $startcat) = @_;	local $category = $startcat;	local @fields;	local (*VMAIL);	if (!$context) {		$context = param('context');	}	if (!$context) {		$context = "default";	}	if (!$filename) {		$filename = "/etc/asterisk/voicemail.conf";	}	if (!$category) {		$category = "general";	}	open(VMAIL, "<$filename") || die("Bleh, no $filename");	while (<VMAIL>) {		chomp;		if (/include\s\"([^\"]+)\"$/) {			($tmp, $category) = &validmailbox($mbox, $context, "/etc/asterisk/$1");			if ($tmp) {				return ($tmp, $category);			}		} elsif (/\[(.*)\]/) {			$category = $1;		} elsif ($category eq "general") {			if (/([^\s]+)\s*\=\s*(.*)/) {				if ($1 eq "dbname") {					$dbname = $2;				} elsif ($1 eq "dbpass") {					$dbpass = $2;				} elsif ($1 eq "dbhost") {					$dbhost = $2;				} elsif ($1 eq "dbuser") {					$dbuser = $2;				}			}			if ($dbname and $dbpass and $dbhost and $dbuser) {				# db variables are present.  Use db for authentication.				my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);				my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});				$sth->execute();				if (($fullname, $context) = $sth->fetchrow_array()) {					return ($fullname ? $fullname : "unknown", $category);				}			}		} elsif (($category ne "general") && ($category ne "zonemessages") && ($category eq $context)) {			if (/([^\s]+)\s*\=\>?\s*(.*)/) {				@fields = split(/\,\s*/, $2);				if (($mbox eq $1) && ($context eq $category)) {					return ($fields[2] ? $fields[2] : "unknown", $category);				}			}		}	}	return ("", $category);}sub mailbox_options(){	local($context, $current, $filename, $category) = @_;	local (*VMAIL);	local $tmp2;	local $tmp;	if (!$filename) {		$filename = "/etc/asterisk/voicemail.conf";	}	if (!$category) {		$category = "general";	}#	print header;#	print "Including <h2>$filename</h2> while in <h2>$category</h2>...\n";	open(VMAIL, "<$filename") || die("Bleh, no voicemail.conf");	while(<VMAIL>) {		chomp;		s/\;.*$//;		if (/include\s\"([^\"]+)\"$/) {			($tmp2, $category) = &mailbox_options($context, $current, "/etc/asterisk/$1", $category);#			print "Got '$tmp2'...\n";			$tmp .= $tmp2;		} elsif (/\[(.*)\]/) {			$category = $1;		} elsif ($category eq "general") {			if (/([^\s]+)\s*\=\s*(.*)/) {				if ($1 eq "dbname") {					$dbname = $2;				} elsif ($1 eq "dbpass") {					$dbpass = $2;				} elsif ($1 eq "dbhost") {					$dbhost = $2;				} elsif ($1 eq "dbuser") {					$dbuser = $2;				}			}			if ($dbname and $dbpass and $dbhost and $dbuser) {				# db variables are present.  Use db for authentication.				my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);				my $sth = $dbh->prepare(qq{select mailbox,fullname,context from voicemail where context='$context' order by mailbox});				$sth->execute();				while (($mailbox, $fullname, $category) = $sth->fetchrow_array()) {					$text = $mailbox;					if ($fullname) {						$text .= " (".$fullname.")";					}					if ($mailbox eq $current) {						$tmp .= "<OPTION SELECTED>$text</OPTION>\n";					} else {						$tmp .= "<OPTION>$text</OPTION>\n";					}				}				return ($tmp, $category);			}		} elsif (($category ne "general") && ($category ne "zonemessages")) {			if (/([^\s]+)\s*\=\>?\s*(.*)/) {				@fields = split(/\,\s*/, $2);				$text = "$1";				if ($fields[1]) {					$text .= " ($fields[1])";				}				if ($1 eq $current) {					$tmp .= "<OPTION SELECTED>$text</OPTION>\n";				} else {					$tmp .= "<OPTION>$text</OPTION>\n";				}							}		}	}	close(VMAIL);	return ($tmp, $category);}sub mailbox_list(){	local ($name, $context, $current) = @_;	local $tmp;	local $text;	local $tmp;	local $opts;	if (!$context) {		$context = "default";	}	$tmp = "<SELECT name=\"$name\">\n";	($opts) = &mailbox_options($context, $current);	$tmp .= $opts;	$tmp .= "</SELECT>\n";	}sub msgcount() {	my ($context, $mailbox, $folder) = @_;	my $path = "/var/spool/asterisk/voicemail/$context/$mailbox/$folder";	if (opendir(DIR, $path)) {		my @msgs = grep(/^msg....\.txt$/, readdir(DIR));		closedir(DIR);		return sprintf "%d", $#msgs + 1;	}	return "0";}sub msgcountstr(){	my ($context, $mailbox, $folder) = @_;	my $count = &msgcount($context, $mailbox, $folder);	if ($count > 1) {		"$count messages";	} elsif ($count > 0) {		"$count message";	} else {		"no messages";	}}sub messages(){	my ($context, $mailbox, $folder) = @_;	my $path = "/var/spool/asterisk/voicemail/$context/$mailbox/$folder";	if (opendir(DIR, $path)) {		my @msgs = sort grep(/^msg....\.txt$/, readdir(DIR));		closedir(DIR);		return map { s/^msg(....)\.txt$/$1/; $_ } @msgs;	}	return ();}sub getcookie(){	my ($var) = @_;	return cookie($var);}sub makecookie(){	my ($format) = @_;	cookie(-name => "format", -value =>["$format"], -expires=>"+1y");}sub getfields(){	my ($context, $mailbox, $folder, $msg) = @_;	my $fields;	if (open(MSG, "</var/spool/asterisk/voicemail/$context/$mailbox/$folder/msg${msg}.txt")) {		while(<MSG>) {			s/\#.*$//g;			if (/^(\w+)\s*\=\s*(.*)$/) {				$fields->{$1} = $2;			}		}		close(MSG);		$fields->{'msgid'} = $msg;	} else { print "<BR>Unable to open '$msg' in '$mailbox', '$folder'\n<B>"; }	$fields;}sub message_prefs(){	my ($nextaction, $msgid) = @_;	my $folder = param('folder');	my $mbox = param('mailbox');	my $context = param('context');	my $passwd = param('password');	my $format = param('format');	if (!$format) {		$format = &getcookie('format');	}	print header;	print <<_EOH;<TITLE>Asterisk Web-Voicemail: Preferences</TITLE><BODY BGCOLOR="white">$stdcontainerstart<FORM METHOD="post"><table width=100% align=center><tr><td align=right colspan=3><font size=+2>Web Voicemail Preferences</font></td></tr><tr><td align=left><font size=+1>Preferred&nbsp;Audio&nbsp;Format:</font></td><td colspan=2></td></tr>_EOHforeach $fmt (sort { $formats{$a}->{'pref'} <=> $formats{$b}->{'pref'} } keys %formats) {	my $clicked = "checked" if $fmt eq $format;	print "<tr><td></td><td align=left><input type=radio name=\"format\" $clicked value=\"$fmt\"></td><td width=100%>&nbsp;$formats{$fmt}->{name}</td></tr>\n";}print <<_EOH;<tr><td align=right colspan=3><input type=submit value="save settings..."></td></tr></table><input type=hidden name="action" value="$nextaction"><input type=hidden name="folder" value="$folder"><input type=hidden name="mailbox" value="$mbox"><input type=hidden name="context" value="$context"><input type=hidden name="password" value="$passwd"><input type=hidden name="msgid" value="$msgid">$stdcontainerend</BODY>\n_EOH}sub message_play(){	my ($message, $msgid) = @_;	my $folder = param('folder');	my ($mbox, $context) = split(/\@/, param('mailbox'));	my $passwd = param('password');	my $format = param('format');		my $fields;	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');	}	if (!$format) {		&message_prefs("play", $msgid);	} else {		print header(-cookie => &makecookie($format));		$fields = &getfields($context, $mbox, $folder, $msgid);		if (!$fields) {			print "<BR>Bah!\n";			return;		}		my $duration = $fields->{'duration'};		if ($duration) {			$duration = sprintf "%d:%02d", $duration/60, $duration % 60; 		} else {			$duration = "<i>Unknown</i>";		}		print <<_EOH;	<TITLE>Asterisk Web-Voicemail: $folder Message $msgid</TITLE><BODY BGCOLOR="white">$stdcontainerstart<FORM METHOD="post"><table width=100% align=center><tr><td align=right colspan=3><font size=+1>$folder Message $msgid</font></td></tr>_EOH		print <<_EOH;<tr><td align=center colspan=3><table>	<tr><td colspan=2 align=center><font size=+1>$folder <b>$msgid</b></font></td></tr>	<tr><td><b>Message:</b></td><td>$msgid</td></tr>\n	<tr><td><b>Mailbox:</b></td><td>$mbox\@$context</td></tr>\n	<tr><td><b>Folder:</b></td><td>$folder</td></tr>\n	<tr><td><b>From:</b></td><td>$fields->{callerid}</td></tr>\n	<tr><td><b>Duration:</b></td><td>$duration</td></tr>\n	<tr><td><b>Original Date:</b></td><td>$fields->{origdate}</td></tr>\n	<tr><td><b>Original Mailbox:</b></td><td>$fields->{origmailbox}</td></tr>\n	<tr><td><b>Caller Channel:</b></td><td>$fields->{callerchan}</td></tr>\n	<tr><td align=center colspan=2>	<input name="action" type=submit value="index">&nbsp;	<input name="action" type=submit value="delete ">&nbsp;	<input name="action" type=submit value="forward to -> ">&nbsp;	$mailboxes&nbsp;	<input name="action" type=submit value="save to ->">	$folders&nbsp;	<input name="action" type=submit value="play ">	<input name="action" type=submit value="download"></td></tr><tr><td colspan=2 align=center><embed width=400 height=40 src="vmail.cgi?action=audio&folder=$folder&mailbox=$mbox&context=$context&password=$passwd&msgid=$msgid&format=$format&dontcasheme=$$.$format" autostart=yes loop=false></embed></td></tr></table></td></tr></table><input type=hidden name="folder" value="$folder"><input type=hidden name="mailbox" value="$mbox"><input type=hidden name="context" value="$context"><input type=hidden name="password" value="$passwd"><input type=hidden name="msgid" value="$msgid">

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av一级电影| 69堂国产成人免费视频| 国产精品性做久久久久久| 日韩黄色在线观看| 婷婷六月综合网| 视频精品一区二区| 日本不卡免费在线视频| 日韩精品一二三四| 日本午夜一本久久久综合| 日韩精品91亚洲二区在线观看| 亚洲va欧美va人人爽| 午夜精品成人在线视频| 免费成人性网站| 韩国av一区二区三区在线观看| 国产在线观看一区二区| 国产一区二区三区香蕉| 国产成人av资源| 成人精品国产免费网站| 一本久久a久久精品亚洲| 欧美午夜精品一区| 日韩亚洲欧美中文三级| 精品国产一区二区亚洲人成毛片 | 国产.欧美.日韩| 不卡视频一二三四| 欧美影院午夜播放| 日韩一区二区三区四区五区六区| 欧美精品一区二区三区高清aⅴ| 欧美精品一区二区在线观看| 亚洲国产精品av| 一区二区三区蜜桃| 日日夜夜精品视频免费 | 欧美一区二区三区在| 精品欧美一区二区在线观看| 国产欧美一区二区三区网站| 中文字幕一区免费在线观看| 一区二区免费视频| 九九视频精品免费| 97精品国产露脸对白| 国产精品免费aⅴ片在线观看| 日韩电影在线一区二区三区| 免费不卡在线观看| 国产iv一区二区三区| 色婷婷综合久色| 日韩欧美视频在线| 成人深夜视频在线观看| 日本一不卡视频| 久久99国产精品尤物| 国内一区二区在线| 国产99一区视频免费 | 欧美午夜免费电影| 欧美日韩精品综合在线| 91精品国产福利| 日韩欧美中文一区| 久久综合久久综合久久综合| 久久久久国产精品麻豆| 国产精品国产三级国产三级人妇 | 亚洲制服丝袜在线| 亚洲1区2区3区4区| 免费人成网站在线观看欧美高清| 久久 天天综合| 国产aⅴ综合色| 欧美最猛黑人xxxxx猛交| 欧美肥妇bbw| 久久久久国产精品厨房| 亚洲欧洲一区二区在线播放| 亚洲一二三级电影| 精品一区二区三区久久久| 国产成人无遮挡在线视频| www.日韩精品| 91.xcao| 精品日产卡一卡二卡麻豆| 国产女同性恋一区二区| 亚洲一区二区高清| 国内成人精品2018免费看| eeuss鲁片一区二区三区在线观看| 在线免费观看一区| 欧美成人乱码一区二区三区| 欧美激情在线免费观看| 亚洲国产一区二区三区青草影视| 免费高清在线视频一区·| 北条麻妃国产九九精品视频| 欧美三区在线观看| 国产欧美日产一区| 婷婷成人激情在线网| 粉嫩绯色av一区二区在线观看| 欧美视频在线观看一区二区| 26uuu精品一区二区在线观看| 亚洲精品国产精华液| 狠狠久久亚洲欧美| 欧美视频自拍偷拍| 国产精品午夜春色av| 日韩成人午夜电影| 9人人澡人人爽人人精品| 欧美一区二区三区思思人| 亚洲日本欧美天堂| 国产精品自拍在线| 日韩一区二区三| 亚洲永久精品大片| 成人丝袜高跟foot| 亚洲精品在线网站| 偷窥国产亚洲免费视频| 99久久99久久免费精品蜜臀| 亚洲精品一区二区三区影院| 亚洲一二三四在线| 不卡的av电影在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲精品乱码久久久久久黑人 | 欧美日韩黄色一区二区| 国产精品电影一区二区| 国产一区二区精品久久91| 欧美久久免费观看| 一区二区三区中文字幕在线观看| 国产成都精品91一区二区三| 日韩欧美一级精品久久| 亚洲国产综合人成综合网站| bt欧美亚洲午夜电影天堂| 国产偷国产偷亚洲高清人白洁| 蜜臀久久久99精品久久久久久| 在线观看日韩一区| 亚洲人成7777| voyeur盗摄精品| 国产精品卡一卡二| 成人深夜在线观看| 欧美—级在线免费片| 国产福利一区二区三区在线视频| 精品美女一区二区三区| 久久99精品一区二区三区三区| 欧美精品粉嫩高潮一区二区| 亚洲风情在线资源站| 欧美在线短视频| 一区二区免费看| 欧美写真视频网站| 亚洲国产精品自拍| 欧美麻豆精品久久久久久| 亚洲18女电影在线观看| 欧美日韩精品一区视频| 亚洲国产精品久久人人爱蜜臀| 欧美视频一二三区| 午夜精品福利久久久| 制服丝袜中文字幕一区| 美女在线观看视频一区二区| 日韩欧美一级特黄在线播放| 久久99精品视频| 久久久久久久av麻豆果冻| 国产成人在线看| 国产精品二区一区二区aⅴ污介绍| av在线不卡电影| 一区二区在线观看视频| 欧美私人免费视频| 免费看欧美美女黄的网站| 精品成人免费观看| 成人黄色免费短视频| 亚洲另类中文字| 欧美精品在线一区二区| 久久精品国产精品亚洲综合| 国产丝袜欧美中文另类| 91麻豆成人久久精品二区三区| 一区二区视频在线看| 在线播放中文一区| 精品一区二区国语对白| 亚洲国产高清aⅴ视频| 91国产福利在线| 美女一区二区视频| 欧美激情一区不卡| 欧美影片第一页| 黑人精品欧美一区二区蜜桃| 国产精品麻豆久久久| 欧美私人免费视频| 国模套图日韩精品一区二区| 中文字幕一区二区日韩精品绯色| 欧美性生交片4| 国产精一区二区三区| 亚洲主播在线观看| 久久精品欧美一区二区三区不卡| 91视频91自| 久久精品国产秦先生| 亚洲女性喷水在线观看一区| 欧美一级免费大片| 粉嫩13p一区二区三区| 香蕉加勒比综合久久| 国产日韩欧美不卡在线| 欧美日韩国产精品成人| 国产成人啪免费观看软件| 亚洲在线一区二区三区| 久久久影视传媒| 欧美日韩一级片在线观看| 国产精品1024| 亚欧色一区w666天堂| 国产精品乱人伦一区二区| 欧美一区二区三区男人的天堂| 91在线看国产| 激情文学综合网| 性久久久久久久| 亚洲三级电影全部在线观看高清| 精品国产免费久久| 91超碰这里只有精品国产| av一区二区三区四区| 国产一区激情在线| 日日夜夜免费精品| 一区二区欧美在线观看|