diff options
Diffstat (limited to 'xpp/utils/zconf/Zaptel/Span.pm')
-rw-r--r-- | xpp/utils/zconf/Zaptel/Span.pm | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/xpp/utils/zconf/Zaptel/Span.pm b/xpp/utils/zconf/Zaptel/Span.pm index 8496910..47a5a56 100644 --- a/xpp/utils/zconf/Zaptel/Span.pm +++ b/xpp/utils/zconf/Zaptel/Span.pm @@ -46,28 +46,51 @@ my @bri_strings = ( 'HFC-S PCI A ISDN.* \[(NT|TE)\] ' ); +my @pri_strings = ( + 'PRI_(NT|TE)' + ); + our $ZAPBRI_NET = 'bri_net'; our $ZAPBRI_CPE = 'bri_cpe'; +our $ZAPPRI_NET = 'pri_net'; +our $ZAPPRI_CPE = 'pri_cpe'; + sub new($$) { my $pack = shift or die "Wasn't called as a class method\n"; my $num = shift or die "Missing a span number parameter\n"; my $self = { NUM => $num }; bless $self, $pack; + $self->{TYPE} = "UNKNOWN"; open(F, "$proc_base/$num") or die "Failed to open '$proc_base/$num\n"; my $head = <F>; chomp $head; foreach my $cardtype (@bri_strings) { if($head =~ m/$cardtype/) { + $self->{IS_DIGITAL} = 1; $self->{IS_BRI} = 1; $self->{TERMTYPE} = $1; + $self->{TYPE} = "BRI_$1"; $self->{DCHAN_IDX} = 2; $self->{BCHAN_LIST} = [ 0, 1 ]; last; } } + foreach my $cardtype (@pri_strings) { + if($head =~ m/$cardtype/) { + $self->{IS_DIGITAL} = 1; + $self->{IS_PRI} = 1; + $self->{TERMTYPE} = $1; + $self->{TYPE} = "PRI_$1"; + { + $self->{DCHAN_IDX} = 15; # Depends on E1/T1/J1 + $self->{BCHAN_LIST} = [ 0 .. 14, 16 .. 30 ]; + } + last; + } + } die "$0: Unkown TERMTYPE [NT/TE]\n" - if $self->is_bri and !defined $self->{TERMTYPE}; + if $self->is_digital and !defined $self->{TERMTYPE}; ($self->{NAME}, $self->{DESCRIPTION}) = (split(/\s+/, $head, 4))[2, 3]; $self->{IS_ZAPTEL_SYNC_MASTER} = ($self->{DESCRIPTION} =~ /\(MASTER\)/) ? 1 : 0; @@ -99,6 +122,15 @@ sub new($$) { $self->{SIGNALLING} = 'gsm'; } } + if($self->is_pri()) { + $self->{DCHAN} = ($self->chans())[$self->{DCHAN_IDX}]; + $self->{BCHANS} = [ ($self->chans())[@{$self->{BCHAN_LIST}}] ]; + $self->{CODING} = 'hdb3'; + $self->{YELLOW} = undef; + $self->{FRAMING} = 'ccs'; + $self->{SIGNALLING} = ($self->{TERMTYPE} eq 'NT') ? $ZAPPRI_NET : $ZAPPRI_CPE ; + $self->{SWITCHTYPE} = 'euroisdn'; + } return $self; } |