[Pkg-voip-commits] [dahdi-tools] 118/285: dahdi_registration: adapt to pinned-spans

tzafrir at debian.org tzafrir at debian.org
Thu Jul 7 19:18:41 UTC 2016


This is an automated email from the git hooks/post-receive script.

tzafrir pushed a commit to branch master
in repository dahdi-tools.

commit 680f3e1d1d827ae3e3aad9e501ad30b7c15c1a00
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Sun Sep 29 18:24:08 2013 +0200

    dahdi_registration: adapt to pinned-spans
    
    * If xpp.dahdi_autoreg parameter is 'Y' -- Skip actuall registration.
    * If dahdi.auto_assign_spans is '0' and there's no /etc/dahdi/pinned-spans.conf
      Than use 'span_assignments auto ...' to assign device spans.
    * Since dahdi_registration iterate in correct xpp_order, the span
      assignment logic provides migration path for users who did not
      generate their pinned-spans.conf configuration yet.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
---
 xpp/dahdi_registration | 52 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 48 insertions(+), 4 deletions(-)

diff --git a/xpp/dahdi_registration b/xpp/dahdi_registration
index 8b73aea..cdd715d 100755
--- a/xpp/dahdi_registration
+++ b/xpp/dahdi_registration
@@ -19,11 +19,27 @@ use Dahdi::Xpp::Xpd;
 use Getopt::Std;
 
 sub usage {
-	die "Usage: $0 [-s sort_order] [on|off|1|0]\n";
+	die "Usage: $0 [-v] [-R] [-s sort_order] [on|off|1|0]\n";
+}
+
+sub check_param {
+	my $param = shift || die;
+	open(F, $param) || return '';
+	my $val = <F>;
+	close F;
+	chomp $val;
+	return $val;
 }
 
 my %opts;
-getopts('s:', \%opts) || usage;
+getopts('vRs:', \%opts) || usage;
+
+my $dahdi_autoreg = check_param('/sys/module/xpp/parameters/dahdi_autoreg') eq 'Y';
+my $auto_assign_spans = check_param('/sys/module/dahdi/parameters/auto_assign_spans') eq '1';
+my $pinned_spans_config = $ENV{'PINNED_SPANS_CONF_FILE'} || '/etc/dahdi/pinned-spans.conf';
+my $span_types_config = $ENV{'SPAN_TYPES_CONF_FILE'} || '/etc/dahdi/span-types.conf';
+my $have_pinned_spans_config = -f $pinned_spans_config || 0;
+my $have_span_types_config = -f $span_types_config || 0;
 
 my $sorter;
 my $sort_order = $opts{'s'};
@@ -41,9 +57,11 @@ if(defined $sort_order) {
 
 @ARGV == 0 or @ARGV == 1 or usage;
 my $on = shift;
-my $verbose = 0;
+my $verbose = $opts{'v'};
 my $should_output = 1;
 
+#print "dahdi_autoreg=$dahdi_autoreg auto_assign_spans=$auto_assign_spans have_pinned_spans_config='$have_pinned_spans_config' have_span_types_config='$have_span_types_config'\n";
+
 if(defined($on)) {	# Translate to booleans
 	$on = uc($on);
 	$on =~ /^(ON|OFF|1|0)$/ or usage;
@@ -51,6 +69,8 @@ if(defined($on)) {	# Translate to booleans
 	$should_output = 0 unless $verbose;
 }
 
+undef $on if $dahdi_autoreg and not $opts{'R'};
+
 sub state2str($) {
 	return (shift)?"on":"off";
 }
@@ -80,6 +100,15 @@ foreach my $xbus (Dahdi::Xpp::xbuses($sorter)) {
 		}
 		myprintf "%3s ==> %3s\n", state2str($prev), state2str($on);
 	}
+	if (defined($on) && $on && ! $have_pinned_spans_config && ! $auto_assign_spans) {
+		# Emulate /etc/dahdi/pinned-spans.conf:
+		#   - We iterate over $xbus according to /etc/dahdi/xpp_order
+		#   - We "auto" assign all spans of current $xbus
+		my $devpath = sprintf "/sys/bus/dahdi_devices/devices/astribanks:xbus-%02d", $xbus->num;
+		my @cmd = ('span_assignments', 'auto', $devpath);
+		system @cmd;
+		warn "Failed '@cmd' (status=$?)\n" if $?;
+	}
 }
 myprintf "# Sorted: $sort_order\n" if defined $sort_order;
 
@@ -91,7 +120,7 @@ dahdi_registration - Handle registration of Xorcom XPD modules in dahdi.
 
 =head1 SYNOPSIS
 
-dahdi_registration [-s sortorder] [on|off]
+dahdi_registration [-v] [-s sortorder] [-R] [on|off]
 
 =head1 DESCRIPTION
 
@@ -105,6 +134,12 @@ Span registration should generally always succeed. Span unregistration may
 fail if channels from the span are in use by e.g. asterisk. In such a case
 you'll also see those channels as '(In use)' in the output of lsdahdi(8).
 
+dahdi_registration is intended to be used when the xpp module parameter
+B<dahdi_autoreg> is false (and implicitly: when the dahdi module parameter
+B<auto_assign_span> is true.
+
+If dahdi_autoreg is true, the program will normally do nothing.
+
 =head2 Parameters
 
 off -- deregisters all XPD's from dahdi.
@@ -115,6 +150,15 @@ on -- registers all XPD's to dahdi.
 
 =over
 
+=item -v
+
+verbose output.
+
+=item -R
+
+Force operations (on/off) even if the module parameter B<dahdi_autoreg>
+for xpp is enabled (which makes this program unneeded).
+
 =item -s I<sort_order>
 
 The sort order to use. 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-voip/dahdi-tools.git



More information about the Pkg-voip-commits mailing list