From: maniacikarus Date: Mon, 4 Feb 2008 06:47:55 +0000 (+0000) Subject: Added option for firewall adjustment on blue X-Git-Tag: v2.3-beta1~203 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=42dc0090e3e3e02aa881a137eb6a29fb9fc793ea Added option for firewall adjustment on blue Added the Asterisk GUI written by Peter Changed the style of the graphs git-svn-id: http://svn.ipfire.org/svn/ipfire/branches/2.1/trunk@1183 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- diff --git a/config/cfgroot/graphs.pl b/config/cfgroot/graphs.pl index a01b4cc840..a58b8f33b8 100644 --- a/config/cfgroot/graphs.pl +++ b/config/cfgroot/graphs.pl @@ -264,7 +264,7 @@ sub updatediskgraph { "COMMENT:$Lang::tr{'minimal'}", "COMMENT:$Lang::tr{'current'}\\j", "AREA:st".$color{"color20"}."A0:standby\\j", - "AREA:read".$color{"color14"}."A0:".sprintf("%-25s",$Lang::tr{'read bytes'}), + "AREA:read".$color{"color12"}."A0:".sprintf("%-25s",$Lang::tr{'read bytes'}), "GPRINT:read:MAX:%8.1lf %sBps", "GPRINT:read:AVERAGE:%8.1lf %sBps", "GPRINT:read:MIN:%8.1lf %sBps", diff --git a/config/menu/20-status.menu b/config/menu/20-status.menu index a66b4ec787..84a6ff02e8 100644 --- a/config/menu/20-status.menu +++ b/config/menu/20-status.menu @@ -37,12 +37,6 @@ 'title' => "$Lang::tr{'network other'}", 'enabled' => 1, }; - $substatus->{'50.proxygraphs'} = { - 'caption' => $Lang::tr{'ssproxy graphs'}, - 'uri' => '/cgi-bin/proxygraphs.cgi', - 'title' => "$Lang::tr{'ssproxy graphs'}", - 'enabled' => 1, - }; $substatus->{'60.hardwaregraphs'} = { 'caption' => "$Lang::tr{'hardware graphs'}", 'uri' => '/cgi-bin/hardwaregraphs.cgi', diff --git a/config/menu/EX-asterisk.menu b/config/menu/EX-asterisk.menu new file mode 100644 index 0000000000..506fb6d2f5 --- /dev/null +++ b/config/menu/EX-asterisk.menu @@ -0,0 +1,15 @@ + $subipfire->{'31.asterisk'} = {'caption' => 'Asterisk Status', + 'uri' => '/cgi-bin/asterisk/status.cgi', + 'title' => 'Asterisk Status', + 'enabled' => 1, + }; + $subipfire->{'32.asterisk'} = {'caption' => 'Asterisk Config', + 'uri' => '/cgi-bin/asterisk/conf.cgi', + 'title' => 'Asterisk Config', + 'enabled' => 1, + }; + $subipfire->{'33.asterisk'} = {'caption' => 'Asterisk Calls', + 'uri' => '/cgi-bin/asterisk/calls.cgi', + 'title' => 'Asterisk Calls', + 'enabled' => 1, + }; diff --git a/config/rootfiles/packages/asterisk b/config/rootfiles/packages/asterisk index de9a8427f9..3ccf8047ad 100644 --- a/config/rootfiles/packages/asterisk +++ b/config/rootfiles/packages/asterisk @@ -1,4 +1,8 @@ etc/init.d/asterisk +var/ipfire/menu.d/EX-asterisk.menu +var/ipfire/asterisk +srv/web/ipfire/cgi-bin/asterisk +usr/sbin/asterisk #usr/include/asterisk #usr/include/asterisk.h #usr/include/asterisk/abstract_jb.h diff --git a/doc/language_issues.de b/doc/language_issues.de index 503c703210..e64532bee7 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -155,6 +155,7 @@ WARNING: translation string unused: hint WARNING: translation string unused: host WARNING: translation string unused: host configuration WARNING: translation string unused: hostname and domain already in use +WARNING: translation string unused: hour WARNING: translation string unused: hours2 WARNING: translation string unused: ibod for dual isdn only WARNING: translation string unused: id diff --git a/doc/language_issues.en b/doc/language_issues.en index f30083055e..ba59472f67 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -181,6 +181,7 @@ WARNING: translation string unused: hint WARNING: translation string unused: host WARNING: translation string unused: host configuration WARNING: translation string unused: hostname and domain already in use +WARNING: translation string unused: hour WARNING: translation string unused: hours2 WARNING: translation string unused: ibod for dual isdn only WARNING: translation string unused: id diff --git a/html/cgi-bin/asterisk/calls.cgi b/html/cgi-bin/asterisk/calls.cgi new file mode 100644 index 0000000000..c5877b2ea4 --- /dev/null +++ b/html/cgi-bin/asterisk/calls.cgi @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +&Header::showhttpheaders(); + +my (%asterisksettings, %checked); + +my %cgiparams; + +&Header::getcgihash(\%cgiparams); + +$asterisksettings{'ACTION'} = ''; + +$file = "/var/log/asterisk/cdr-csv/Master.csv"; + +open(DATEN, "$file") or die "Can't open file: $file: $!\n"; +@datafile = ; +close(DATEN); + +$file = "./conf/telbook.conf"; +open(DATEN, "$file") or die "Can't open file: $file: $!\n"; +@telbook = ; +close(DATEN); + +&Header::openpage('asterisk', 1, ''); + +&Header::openbigbox('100%', 'LEFT'); + +if ($cgiparams{'ACTION'} eq $Lang::tr{'update'}) +{ + $mday3 = $cgiparams{'day3'}; + $mon3 = $cgiparams{'month3'}; + $jahr3 = $cgiparams{'year3'}; + $mday4 = $cgiparams{'day4'}; + $mon4 = $cgiparams{'month4'}; + $jahr4 = $cgiparams{'year4'}; +} +else +{ + @datum3 = localtime(time()); + ($sec3,$min3,$stunde3,$mday3,$mon3,$jahr3,$wday3,$yday3,$isdst3)=@datum3; + $jahr3 = $jahr3 + 1900; + $mon3 = $mon3+1; + if ($mon3 < 10) { $mon3 = "0$mon3"; } + if ($mday3 <10) { $mday3= "0$mday3";} + $sec4 = $sec3; + $min4 = $min3; + $stunde4 = $stunde3; + $mday4 = $mday3; + $mon4 = $mon3; + $jahr4 = $jahr3; + $wday4 = $wday3; + $isdst4 = $isdst3; +} + +if ($errormessage) { + &openbox('100%', 'LEFT', $tr{'error messages'}); + print "$errormessage \n"; + &closebox(); +} + +print "
\n"; + +&Header::openbox('100%', 'LEFT', 'Filter'); + +print < +
 Tag:Monat:Jahr:
Von: +
Bis: + +
Von oder zum Anrufer mit der ID/Nummer: + +
+
+END +; + +&Header::closebox(); + +&Header::openbox('100%', 'LEFT', 'Anrufe'); +print "
Anfrufer Angerufene CallerID Start des Anrufs Ende des Anrufs Dauer (in Sek.) Status"; +print "
 "; +foreach $line (reverse @datafile) { +chomp $line; +(@spalten) = split (/,/, $line); +$spalten[1] =~ s/"//g; +$spalten[2] =~ s/"//g; +$spalten[4] =~ s/"//g; +$spalten[10]=~ s/"//g; +$spalten[11]=~ s/"//g; +$spalten[13]=~ s/"//g; +$spalten[14]=~ s/"//g; +(@zdatum) = split (/ /, $spalten[11]); +(@datu) = split (/-/, $zdatum[0]); +(@dzeit) = split (/:/, $zdatum[1]); +$datum1 = $datu[0].$datu[1].$datu[2]; +@datum2_1 = localtime(time()); +($sec,$min,$stunde,$mday,$mon,$jahr,$wday,$yday,$isdst)=@datum2_1; +$jahr = $jahr + 1900; +$mon = $mon+1; +if ($mon < 10) { $mon = "0$mon"; } +if ($mday <10) { $mday= "0$mday";} +$datum2 = $jahr.$mon.$mday; +$datum3_1 = $jahr3.$mon3.$mday3; +$datum4_1 = $jahr4.$mon4.$mday4; +$datum2 = $datum2-100; +if ($datum1 ge $datum3_1 && $datum1 le $datum4_1 && ($cgiparams{'number'} eq '' || $cgiparams{'number'} eq $spalten[1] || $cgiparams{'number'} eq $spalten[2])) { +$telline = @telbook[0]; +$telline =~ s/\[telnr\]/$spalten[1]/g; +$dauer_m = int($spalten[13]/60); +$dauer_s = $spalten[13]%60; +$dauer_h = int($spalten[13]/3600); +$dauer_m2= $dauer_m-($dauer_h*60); +$dauer_t = $dauer_h.":"; +if ($dauer_m2 < 10) { $dauer_t .= "0".$dauer_m2."."; } + else { $dauer_t .= $dauer_m2."."; } +if ($dauer_s < 10) { $dauer_t .= "0".$dauer_s; } + else { $dauer_t .= $dauer_s; } +print "
$spalten[1] $spalten[2] $spalten[4] $spalten[10] $spalten[11] $dauer_t $spalten[14]\n";} +} +print "
"; + +&Header::closebox(); + +print "\n"; + +&Header::closebigbox(); + +&Header::closepage(); diff --git a/html/cgi-bin/asterisk/conf.cgi b/html/cgi-bin/asterisk/conf.cgi new file mode 100644 index 0000000000..2dd8cf0a87 --- /dev/null +++ b/html/cgi-bin/asterisk/conf.cgi @@ -0,0 +1,161 @@ +#!/usr/bin/perl + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +&Header::showhttpheaders(); + +my %cgiparams; + +&Header::getcgihash(\%cgiparams); + +&Header::openpage('asterisk', 1, ''); + +&Header::openbigbox('100%', 'LEFT'); + +if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) + { + $conf_file = $cgiparams{'save_path'}; + open (FILE, ">$conf_file") or die "Kann die Datei nicht speichern: $!"; + flock (FILE, 2); + print FILE "$cgiparams{'textarea'}"; + close FILE; + &Header::openbox('100%', 'LEFT', 'info'); + print "$conf_file wurde gespeichert"; + &Header::closebox(); + } + +if ($cgiparams{'ACTION'} eq Bearbeiten) + { + $conf_file = $cgiparams{'conf_file'}; + } + +if ($conf_file eq '') { + $conf_file='/var/ipfire/asterisk/extensions.conf'; + } + +if ($cgiparams{'ACTION'} eq extensions) + { + $conf_file='/var/ipfire/asterisk/extensions.conf'; + } + +if ($cgiparams{'ACTION'} eq sip) + { + $conf_file='/var/ipfire/asterisk/sip.conf'; + } + +if ($cgiparams{'ACTION'} eq iax) + { + $conf_file='/var/ipfire/asterisk/iax.conf'; + } + + + + +if ($errormessage) { + &Header::openbox('100%', 'LEFT', $tr{'error messages'}); + print "$errormessage \n"; + &Header::closebox(); +} + +$cgiparams{'ACTION'} = ''; + +print "
\n"; + +if ($conf_file ne '') { + +&Header::openbox('100%', 'LEFT', $conf_file); + print < +
\n + +
+

+

+

+ +END +; + +&Header::closebox(); +} + +&Header::openbox('100%', 'LEFT', 'Dateiauswahl'); + +my $dir = '/var/ipfire/asterisk/'; +my @dateien; + +listFiles ($dir); + +print < + + + + +
 "; + +sub listFiles { +local *DH; +my ($item, $pfad); +my $dir = shift; + +opendir (DH, $dir) or return; +while ($item = readdir (DH)) { +next if ( $item =~ /^\./ ); +$pfad = ( ($dir =~ /\/$/) ? ($dir . $item) : ($dir . '/'.$item) ); +push (@dateien, $pfad) if (-f $pfad); +listFiles ($pfad) if (-d $pfad); +} +closedir (DH); +} + +sub listFiles2 { +local *DH2; +my ($item2, $pfad2); +my $dir2 = shift; + +opendir (DH2, $dir2) or return; +while ($item2 = readdir (DH2)) { +next if ( $item2 =~ /^\./ ); +$pfad2 = ( ($dir2 =~ /\/$/) ? ($dir2 . $item2) : ($dir2 . '/'.$item2) ); +push (@dateien2, $pfad2) if (-f $pfad2); +listFiles2 ($pfad2) if (-d $pfad2); +} +closedir (DH2); +} + + +&Header::closebox(); + +print "\n"; + +&Header::closebigbox(); + +&Header::closepage(); diff --git a/html/cgi-bin/asterisk/conf/telbook.conf b/html/cgi-bin/asterisk/conf/telbook.conf new file mode 100644 index 0000000000..b2a1d6a976 --- /dev/null +++ b/html/cgi-bin/asterisk/conf/telbook.conf @@ -0,0 +1 @@ +http://tel.search.ch/result.html?name=&misc=&strasse=&ort=&kanton=&tel=[telnr] diff --git a/html/cgi-bin/asterisk/status.cgi b/html/cgi-bin/asterisk/status.cgi new file mode 100644 index 0000000000..12c4c9feae --- /dev/null +++ b/html/cgi-bin/asterisk/status.cgi @@ -0,0 +1,101 @@ +#!/usr/bin/perl + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +&Header::showhttpheaders(); + +my %asterisksettings; + +&Header::getcgihash(\%asterisksettings); + +&Header::openpage('asterisk', 1, ''); + +&Header::openbigbox('100%', 'LEFT'); + +if ($asterisksettings{'ACTION'} eq 'Start') +{ + system("/etc/init.d/asterisk start >/dev/null 2>&1"); + sleep 5; +} +if ($asterisksettings{'ACTION'} eq $Lang::tr{'stop'}) +{ + system("/etc/init.d/asterisk stop >/dev/null 2>&1"); + sleep 5; +} +if ($asterisksettings{'ACTION'} eq $Lang::tr{'reboot'}) +{ + system("/etc/init.d/asterisk restart >/dev/null 2>&1"); + sleep 5; +} +if ($asterisksettings{'ACTION'} eq "$Lang::tr{'reload'} EXT") +{ + system("/etc/init.d/asterisk remod ext >/dev/null 2>&1"); +} +if ($asterisksettings{'ACTION'} eq "$Lang::tr{'reload'} SIP") +{ + system("/etc/init.d/asterisk remod sip >/dev/null 2>&1"); +} +if ($asterisksettings{'ACTION'} eq "$Lang::tr{'reload'} IAX") +{ + system("/etc/init.d/asterisk remod iax >/dev/null 2>&1"); +} + +$checked{'ENABLE_AST'}{'status'} = system("/etc/init.d/asterisk status >/dev/null 2>&1"); +if ($checked{'ENABLE_AST'}{'status'}) { + $checked{'ENABLE_AST'}{'status_s'}=" $Lang::tr{'not running'}"; + $checked{'ENABLE_AST'}{'status_b'}=""; +} else { + $checked{'ENABLE_AST'}{'status_s'}=" $Lang::tr{'running'}"; + $checked{'ENABLE_AST'}{'status_b'}=""; +} + +if ($errormessage) { + &Header::openbox('100%', 'LEFT', $tr{'error messages'}); + print "$errormessage \n"; + &Header::closebox(); +} + +if ($message) { + &Header::openbox('100%', 'LEFT', 'Message'); + print "$message \n"; + &Header::closebox(); +} + +print "
\n"; + +&Header::openbox('100%', 'LEFT', 'Status:'); + print < + + + + + + + + + + + + + + + + + + + + + + +
Asterisk$checked{'ENABLE_AST'}{'status_s'}$checked{'ENABLE_AST'}{'status_b'}
Dialplan
SIP
IAX
+END +; + +&Header::closebox(); + +&Header::closebigbox(); + +&Header::closepage(); diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi index de68fea4e5..cfbd10194e 100644 --- a/html/cgi-bin/optionsfw.cgi +++ b/html/cgi-bin/optionsfw.cgi @@ -32,6 +32,8 @@ $settings{'DROPNEWNOTSYN'} = 'on'; $settings{'DROPINPUT'} = 'on'; $settings{'DROPOUTPUT'} = 'on'; $settings{'DROPPORTSCAN'} = 'on'; +$settings{'DROPWIRELESSINPUT'} = 'on'; +$settings{'DROPWIRELESSFORWARD'} = 'on'; my $errormessage = ''; my $warnmessage = ''; @@ -70,6 +72,12 @@ $checked{'DROPOUTPUT'}{$settings{'DROPOUTPUT'}} = "checked='checked'"; $checked{'DROPPORTSCAN'}{'off'} = ''; $checked{'DROPPORTSCAN'}{'on'} = ''; $checked{'DROPPORTSCAN'}{$settings{'DROPPORTSCAN'}} = "checked='checked'"; +$checked{'DROPWIRELESSINPUT'}{'off'} = ''; +$checked{'DROPWIRELESSINPUT'}{'on'} = ''; +$checked{'DROPWIRELESSINPUT'}{$settings{'DROPWIRELESSINPUT'}} = "checked='checked'"; +$checked{'DROPWIRELESSFORWARD'}{'off'} = ''; +$checked{'DROPWIRELESSFORWARD'}{'on'} = ''; +$checked{'DROPWIRELESSFORWARD'}{$settings{'DROPWIRELESSFORWARD'}} = "checked='checked'"; &Header::openbox('100%', 'center', $Lang::tr{'options fw'}); print ""; @@ -86,6 +94,10 @@ print < off $Lang::tr{'drop portscan'}on / off +$Lang::tr{'drop wirelessinput'}on / + off +$Lang::tr{'drop wirelessforward'}on / + off
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index a812923bee..602c2bbea4 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -657,6 +657,8 @@ 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen', 'drop output' => 'Verworfene Output Pakete loggen', 'drop portscan' => 'Verworfene Portscan Pakete loggen', +'drop wirelessforward' => 'Verworfene Wireless Forward Pakete loggen', +'drop wirelessinput' => 'Verworfene Wireless Input Pakete loggen', 'dst port' => 'Ziel-Port', 'dstprt range overlaps' => 'Der Zielportbereich überlappt mit einem bereits definierten Port.', 'dstprt within existing' => 'Der Zielport liegt innerhalb eines bereits definierten Portbereichs.', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 6e654f41bd..06b0c88d61 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -681,6 +681,8 @@ 'drop newnotsyn' => 'Log dropped New Not Syn pakets', 'drop output' => 'Log dropped Output pakets', 'drop portscan' => 'Log dropped Portscan pakets', +'drop wirelessforward' => 'Log dropped wireless Forward pakets', +'drop wirelessinput' => 'Log dropped wireless Input pakets', 'dst port' => 'Dst Port', 'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', 'dstprt within existing' => 'Destination port is within an already defined port range.', diff --git a/lfs/asterisk b/lfs/asterisk index ecf9c31bb1..6dadd0ca68 100644 --- a/lfs/asterisk +++ b/lfs/asterisk @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = asterisk -PAK_VER = 1 +PAK_VER = 2 DEPS = "sox zaptel libpri spandsp libmad" @@ -109,4 +109,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) tar xfz $(DIR_DL)/asterisk-1.4-de-prompts.tar.gz -C /var/lib/asterisk/sounds/ -rm -f /var/lib/asterisk/sounds/README.txt @rm -rf $(DIR_APP) $(DIR_SRC)/asterisk-* + -mkdir -p /var/ipfire/asterisk + cp -vrf $(DIR_SRC)/config/asterisk/* /var/ipfire/asterisk/ + chmod o+w /var/ipfire/asterisk + ln -f -s /var/ipfire/asterisk/wakeup/wakeup.sh /etc/fcron.minutely/wakeup.sh @$(POSTBUILD) diff --git a/src/initscripts/init.d/asterisk b/src/initscripts/init.d/asterisk index 223c016888..5e04bfb17f 100644 --- a/src/initscripts/init.d/asterisk +++ b/src/initscripts/init.d/asterisk @@ -18,6 +18,8 @@ case "${1}" in start) boot_mesg "Starting Asterisk PBX..." + /sbin/modprobe zaptel + /sbin/modprobe ztdummy loadproc /usr/sbin/asterisk ;; @@ -40,11 +42,28 @@ case "${1}" in ;; status) - statusproc /usr/sbin/asterisk + statusproc /usr/sbin/asterisk > /tmp/ast 2>&1 + STAT=$(cat /tmp/ast) + /bin/rm -f /tmp/ast + echo $STAT + EX_Z=$(echo $STAT | grep "not" | wc -l) + exit $EX_Z + ;; + + remod) + case "${2}" in + sip)asterisk -rx "sip reload" >/dev/null 2>&1 ;; + iax)asterisk -rx "iax2 reload" >/dev/null 2>&1 ;; + ext)asterisk -rx "dialplan reload" >/dev/null 2>&1 ;; + *) echo "Usage: ${0} remod {sip|iax|ext}"; exit 1 ;; + esac + ;; + + test) touch /tmp/test$$ ;; *) - echo "Usage: ${0} {start|stop|reload|restart|status}" + echo "Usage: ${0} {start|stop|reload|restart|status|remod}" exit 1 ;; esac diff --git a/src/misc-progs/wirelessctrl.c b/src/misc-progs/wirelessctrl.c index 51f3f254d2..321addf905 100644 --- a/src/misc-progs/wirelessctrl.c +++ b/src/misc-progs/wirelessctrl.c @@ -19,6 +19,7 @@ #include #include #include "setuid.h" +#include FILE *fd = NULL; char blue_dev[STRING_SIZE] = ""; @@ -26,11 +27,21 @@ char command[STRING_SIZE]; void exithandler(void) { + struct keyvalue *kv = NULL; + char buffer[STRING_SIZE]; if(strlen(blue_dev)) { - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j LOG_DROP", blue_dev); + if(findkey(kv, "DROPWIRELESSINPUT", buffer) && !strcmp(buffer,"on")){ + snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j LOG --log-prefix 'DROP_Wirelessinput'", blue_dev); safe_system(command); - snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j LOG_DROP", blue_dev); + } + if(findkey(kv, "DROPWIRELESSFORWARD", buffer) && !strcmp(buffer,"on")){ + snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -i %s -j LOG --log-prefix 'DROP_Wirelessforward'", blue_dev); + safe_system(command); + } + snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessinput'", blue_dev); + safe_system(command); + snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -i %s -j DROP -m comment --comment 'DROP_Wirelessforward'", blue_dev); safe_system(command); } @@ -64,6 +75,13 @@ int main(void) exit(1); } + /* Read in the firewall values */ + if (!readkeyvalues(kv, CONFIG_ROOT "/optionsfw/settings")) + { + fprintf(stderr, "Cannot read optionsfw settings\n"); + exit(1); + } + /* Get the GREEN interface details */ if(!findkey(kv, "GREEN_DEV", green_dev)) { diff --git a/src/scripts/asterisk b/src/scripts/asterisk new file mode 100644 index 0000000000..cb6ccbbac6 Binary files /dev/null and b/src/scripts/asterisk differ