#!/usr/bin/perl ############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007-2014 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # ############################################################################### use strict; # enable only the following on debugging purpose use warnings; use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; require "${General::swroot}/modem-lib.pl"; my $modem; my %ethsettings = {}; my %pppsettings = {}; &General::readhash("${General::swroot}/ethernet/settings", \%ethsettings); if ($ethsettings{"RED_TYPE"} eq "PPPOE") { &General::readhash("${General::swroot}/ppp/settings", \%pppsettings); # Establish the connection to the modem. my $port = $pppsettings{'MONPORT'}; if ($port) { $port = "/dev/$port"; $modem = Modem->new($port, $pppsettings{"DTERATE"}); } } &Header::showhttpheaders(); &Header::openpage($Lang::tr{'modem information'}, 1, ''); &Header::openbigbox('100%', 'left'); if ($modem) { &Header::openbox("100%", "center", $Lang::tr{'modem hardware details'}); print < END my $vendor = $modem->get_vendor(); if ($vendor) { print < $Lang::tr{'vendor'} $vendor END } my $model = $modem->get_model(); if ($model) { print < $Lang::tr{'model'} $model END } my $software_version = $modem->get_software_version(); if ($software_version) { print < $Lang::tr{'software version'} $software_version END } my $imei = $modem->get_imei(); if ($imei) { print < $Lang::tr{'imei'} $imei END } my @caps = $modem->get_capabilities(); if (@caps) { my $caps_string = join(", ", @caps); print < $Lang::tr{'capabilities'} $caps_string END } print < END &Header::closebox(); &Header::openbox("100%", "center", $Lang::tr{'modem sim information'}); print < END my $imsi = $modem->get_sim_imsi(); if ($imsi) { print < $Lang::tr{'imsi'} $imsi END } print < END &Header::closebox(); &Header::openbox("100%", "center", $Lang::tr{'modem network information'}); print < END my $network_registration = $modem->get_network_registration(); if ($network_registration) { print < $Lang::tr{'modem network registration'} $network_registration END } my $network_operator = $modem->get_network_operator(); if ($network_operator) { print < $Lang::tr{'modem network operator'} $network_operator END } my $network_mode = $modem->get_network_mode(); if ($network_mode) { print < $Lang::tr{'modem network mode'} $network_mode END } my $signal_quality = $modem->get_signal_quality(); if ($signal_quality) { print < $Lang::tr{'modem network signal quality'} $signal_quality dBm END } my $bit_error_rate = $modem->get_bit_error_rate(); if ($bit_error_rate) { print < $Lang::tr{'modem network bit error rate'} $bit_error_rate END } print < END &Header::closebox(); } else { &Header::openbox("100%", "center", $Lang::tr{'modem no connection'}); print "

$Lang::tr{'modem no connection message'}

"; &Header::closebox(); } &Header::closebigbox(); &Header::closepage();