28
28
print "echocanceller=$echo_can,$chans\n";
32
my $self = shift || die;
33
my $gconfig = shift || die;
34
my $parameters = $gconfig->{PARAMETERS} || die;
35
my $genconf_file = $parameters->{GENCONF_FILE} || die;
36
my $span = shift || die;
37
my $num = $span->num() || die;
38
my $proto = $span->proto || die;
39
die "Generate configuration for '$proto' is not possible. Maybe you meant R2?"
40
unless $proto eq 'T1';
41
my $pri_connection_type = $gconfig->{pri_connection_type} || die;
42
die "Span #$num is analog" unless $span->is_digital();
43
die "Span #$num is not CAS" unless $span->is_pri && $pri_connection_type eq 'CAS';
44
my $termtype = $span->termtype() || die "$0: Span #$num -- unkown termtype [NT/TE]\n";
47
my $framing = $gconfig->{tdm_framing};
48
if(!defined $framing) {
50
} elsif($framing ne 'esf' && $framing ne 'd4') {
51
die "T1-CAS valid framing is only 'esf' or 'd4'. Not '$framing'. Check '$genconf_file'\n";
53
my $coding = $span->coding() || die "$0: No coding information for span #$num\n";
54
my $span_crc4 = $span->crc4();
55
$span_crc4 = (defined $span_crc4) ? ",$span_crc4" : '';
56
my $span_yellow = $span->yellow();
57
$span_yellow = (defined $span_yellow) ? ",$span_yellow" : '';
58
$timing = ($termtype eq 'NT') ? 0 : $bri_te_last_timing++;
59
printf "span=%d,%d,%d,%s,%s%s%s\n",
67
printf "# termtype: %s\n", lc($termtype);
71
if ($pri_connection_type eq 'PRI') {
72
$chan_range = Dahdi::Config::Gen::bchan_range($span);
73
printf "bchan=%s\n", $chan_range;
74
my $dchan = $span->dchan();
75
printf "dchan=%d\n", $dchan->num();
76
} elsif ($pri_connection_type eq 'R2' ) {
77
my $idle_bits = $gconfig->{'r2_idle_bits'};
78
$chan_range = Dahdi::Config::Gen::bchan_range($span);
79
printf "cas=%s:$idle_bits\n", $chan_range;
80
printf "dchan=%d\n", $span->dchan()->num();
81
} elsif ($pri_connection_type eq 'CAS' ) {
82
my $type = ($termtype eq 'TE') ? 'FXO' : 'FXS';
83
my $sig = $gconfig->{'dahdi_signalling'}{$type};
84
my $em_signalling = $gconfig->{'em_signalling'};
85
if ($em_signalling ne 'none') {
87
# FIXME: but we don't handle E1 yet
88
$sig = 'e&me1' if $proto eq 'E1';
90
die "unknown default dahdi signalling for chan $num type $type" unless defined $sig;
91
$chan_range = Dahdi::Config::Gen::chan_range($span->chans());
92
printf "%s=%s\n", $sig, $chan_range;
95
die "Digital span $num is not PRI";
97
print_echo_can($gconfig, $chan_range);
100
sub gen_digital($$$) {
101
my $self = shift || die;
32
102
my $gconfig = shift || die;
33
103
my $span = shift || die;
34
104
my $num = $span->num() || die;
146
216
foreach my $span (@spans) {
147
217
printf "# Span %d: %s %s\n", $span->num, $span->name, $span->description;
148
if($span->is_digital()) {
149
gen_digital($gconfig, $span);
218
if($span->is_digital) {
220
if($gconfig->{'pri_connection_type'} eq 'CAS') {
221
$self->gen_t1_cas($gconfig, $span);
223
$self->gen_digital($gconfig, $span);
225
} elsif($span->is_bri) {
226
$self->gen_digital($gconfig, $span);
151
229
foreach my $chan ($span->chans()) {
152
230
if(1 || !defined $chan->type) {