[zaptel-commits] tzafrir: branch 1.2 r4455 - in /branches/1.2/xpp/utils: ./ zconf/Zaptel/ zcon...

SVN commits to the Zaptel project zaptel-commits at lists.digium.com
Mon Aug 4 10:43:33 CDT 2008


Author: tzafrir
Date: Mon Aug  4 10:43:32 2008
New Revision: 4455

URL: http://svn.digium.com/view/zaptel?view=rev&rev=4455
Log:
Add channel alarms in Zaptel-perl and lszaptel specifically.

* Zaptel::Chans now provides a method alarms() for a list (or number of)
  alarms. 
* lszaptel uses it for a more correct display of channel status.
* Also update PCI hardware list.

Modified:
    branches/1.2/xpp/utils/lszaptel
    branches/1.2/xpp/utils/zconf/Zaptel/Chans.pm
    branches/1.2/xpp/utils/zconf/Zaptel/Hardware/PCI.pm

Modified: branches/1.2/xpp/utils/lszaptel
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/utils/lszaptel?view=diff&rev=4455&r1=4454&r2=4455
==============================================================================
--- branches/1.2/xpp/utils/lszaptel (original)
+++ branches/1.2/xpp/utils/lszaptel Mon Aug  4 10:43:32 2008
@@ -36,8 +36,10 @@
 		my ($type) = map { $type_map{$_} or $_ } $chan->type || ("unknown");
 		my $batt = "";
 		$batt = "(battery)" if $chan->battery;
-		printf "%3d %-10s %-10s %s %s\n",
-			$chan->num, $type, $chan->signalling, $chan->info, $batt;
+		my @alarms = $chan->alarms;
+		my $alarm_str = join(" ", @alarms);
+		printf "%3d %-10s %-10s %s %s %s\n",
+			$chan->num, $type, $chan->signalling, $chan->info, $batt, $alarm_str;
 		$index++;
 	}
 }

Modified: branches/1.2/xpp/utils/zconf/Zaptel/Chans.pm
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/utils/zconf/Zaptel/Chans.pm?view=diff&rev=4455&r1=4454&r2=4455
==============================================================================
--- branches/1.2/xpp/utils/zconf/Zaptel/Chans.pm (original)
+++ branches/1.2/xpp/utils/zconf/Zaptel/Chans.pm Mon Aug  4 10:43:32 2008
@@ -17,6 +17,12 @@
 This package allows access from perl to information about a Zaptel
 channel. It is part of the Zaptel Perl package.
 
+=head1 alarms()
+
+In an array context returns a list of alarm strings (RED, BLUE, etc.)
+for this channel (an empty list == false if there are no alarms).
+In scalar context returns the number of alarms for a specific channel.
+
 =head1 battery()
 
 Returns 1 if channel reports to have battery (A remote PBX connected to
@@ -53,6 +59,8 @@
 Returns the type of the channel: 'FXS', 'FXO', 'EMPTY', etc.
 
 =cut
+
+my @alarm_types = qw(BLUE YELLOW RED LOOP RECOVERING NOTOPEN);
 
 sub new($$$$$$) {
 	my $pack = shift or die "Wasn't called as a class method\n";
@@ -69,18 +77,29 @@
 	$num or die "Missing a channel number parameter\n";
 	$fqn or die "Missing a channel fqn parameter\n";
 	my $signalling = '';
+	my @alarms = ();
 	my $info = '';
 	if(defined $rest) {
+		# remarks in parenthesis (In use), (no pcm)
+		while($rest =~ s/(\([^)]+\))\s*//) {
+			$info .= " $1";
+		}
+		# Alarms
+		foreach my $alarm (@alarm_types) {
+			if($rest =~ s/\s*(\b${alarm}\b)\s*//) {
+				push(@alarms, $1);
+			}
+		}
 		if($rest =~ s/^\s*(\w+)\s*//) {
 			$signalling = $1;
 		}
-		if($rest =~ s/(.*)//) {
-			$info = $1;
-		}
+		die "Unrecognized garbage '$rest' in $fqn\n"
+			if length($rest);
 	}
 	$self->{NUM} = $num;
 	$self->{FQN} = $fqn;
 	$self->{SIGNALLING} = $signalling;
+	$self->{ALARMS} = \@alarms;
 	$self->{INFO} = $info;
 	my $type;
 	if($fqn =~ m|\bXPP_(\w+)/.*$|) {
@@ -184,6 +203,13 @@
 	return $line->battery;
 }
 
+sub alarms($) {
+	my $self = shift or die;
+	my @alarms = @{$self->{ALARMS}};
+
+	return @alarms;
+}
+
 sub blink($$) {
 	my $self = shift or die;
 	my $on = shift;

Modified: branches/1.2/xpp/utils/zconf/Zaptel/Hardware/PCI.pm
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/utils/zconf/Zaptel/Hardware/PCI.pm?view=diff&rev=4455&r1=4454&r2=4455
==============================================================================
--- branches/1.2/xpp/utils/zconf/Zaptel/Hardware/PCI.pm (original)
+++ branches/1.2/xpp/utils/zconf/Zaptel/Hardware/PCI.pm Mon Aug  4 10:43:32 2008
@@ -118,6 +118,9 @@
 	'1923:0100'	=> { DRIVER => 'wanpipe', DESCRIPTION => 'Sangoma Technologies Corp. A104d QUAD T1/E1 AFT card' },
 	'1923:0300'	=> { DRIVER => 'wanpipe', DESCRIPTION => 'Sangoma Technologies Corp. A101 single-port T1/E1' },
 	'1923:0400'	=> { DRIVER => 'wanpipe', DESCRIPTION => 'Sangoma Technologies Corp. A104u Quad T1/E1 AFT' },
+
+	# Yeastar (from output of modinfo):
+	'e159:0001/2151' => { DRIVER => 'ystdm8xx', DESCRIPTION => 'Yeastar YSTDM8xx'},
 	);
 
 $ENV{PATH} .= ":/usr/sbin:/sbin:/usr/bin:/bin";




More information about the zaptel-commits mailing list