summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-09-27 15:01:20 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-09-27 15:01:20 +0000
commiteb06c1715a94dc137f37e602d231e4a9b87883d7 (patch)
treec0b8e329531214d455749781884e4bf415fffd49
parent5e7248ff7599594067bfd731a8e4fa8cd71dc0ce (diff)
dahdi_perl: improved config generation for T1 CAS
A few extra options for a CAS span signalling. xpp rev: 7343, 7346, 7369 git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@7224 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--xpp/genconf_parameters17
-rw-r--r--xpp/perl_modules/Dahdi/Config/Gen.pm2
-rw-r--r--xpp/perl_modules/Dahdi/Config/Gen/Chandahdi.pm6
-rw-r--r--xpp/perl_modules/Dahdi/Config/Gen/System.pm14
-rw-r--r--xpp/perl_modules/Dahdi/Config/Params.pm2
5 files changed, 36 insertions, 5 deletions
diff --git a/xpp/genconf_parameters b/xpp/genconf_parameters
index 3a4b2fc..ff839c7 100644
--- a/xpp/genconf_parameters
+++ b/xpp/genconf_parameters
@@ -107,8 +107,23 @@
# chan_dahdi.conf . The meaning of this may be extended somehow to support
# R2 through openr2/chan_dahdi later on.
#pri_connection_type R2
+#pri_connection_type CAS
+#
+# Explicitly set the idle bits for E1 CAS (Sample value is the default):
#r2_idle_bits 1101
-
+#
+#
+# Use E&M on CAS (default is FXS/FXO). If set, E1 spans will be used as
+# E&M-E1 and T1 will use the requested type:
+#em_signalling em
+#em_signalling em_w
+#em_signalling featd
+#em_signalling featdtmf
+#em_signalling featdtmf_ta
+#em_signalling featb
+#em_signalling fgccama
+#em_signalling fgccamamf
+#
# pri_termtype contains a list of settings:
# Currently the only setting is for TE or NT (the default is TE). This
# sets two different but normally related configuration items:
diff --git a/xpp/perl_modules/Dahdi/Config/Gen.pm b/xpp/perl_modules/Dahdi/Config/Gen.pm
index d9964d4..5cfeb9c 100644
--- a/xpp/perl_modules/Dahdi/Config/Gen.pm
+++ b/xpp/perl_modules/Dahdi/Config/Gen.pm
@@ -205,10 +205,12 @@ sub new($) {
bri_hardhdlc
bri_sig_style
r2_idle_bits
+ tdm_framing
echo_can
brint_overlap
pri_termtype
pri_connection_type
+ em_signalling
);
foreach my $k (@trivial) {
$gconfig->{$k} = $p->item($k);
diff --git a/xpp/perl_modules/Dahdi/Config/Gen/Chandahdi.pm b/xpp/perl_modules/Dahdi/Config/Gen/Chandahdi.pm
index caa7607..613566a 100644
--- a/xpp/perl_modules/Dahdi/Config/Gen/Chandahdi.pm
+++ b/xpp/perl_modules/Dahdi/Config/Gen/Chandahdi.pm
@@ -94,6 +94,12 @@ sub gen_cas($$$) {
# Fake type for signalling
my $faketype = ($termtype eq 'TE') ? 'FXO' : 'FXS';
my $sig = $gconfig->{'chan_dahdi_signalling'}{$faketype};
+ my $em_signalling = $gconfig->{'em_signalling'};
+ if ($em_signalling ne 'none') {
+ $sig = $em_signalling;
+ # FIXME: but we don't handle E1 yet
+ $sig = 'em_e1' if $span->proto eq 'E1';
+ }
my @to_reset = qw/context group/;
my $chans = Dahdi::Config::Gen::chan_range($span->chans());
$group .= "," . (10 + $num); # Invent unique group per span
diff --git a/xpp/perl_modules/Dahdi/Config/Gen/System.pm b/xpp/perl_modules/Dahdi/Config/Gen/System.pm
index c408298..eacfb15 100644
--- a/xpp/perl_modules/Dahdi/Config/Gen/System.pm
+++ b/xpp/perl_modules/Dahdi/Config/Gen/System.pm
@@ -58,19 +58,25 @@ sub gen_cas($$) {
my $dchan_type;
my $chan_range;
if($span->is_pri()) {
- if ($gconfig->{'pri_connection_type'} eq 'PRI') {
+ if ($pri_connection_type eq 'PRI') {
$chan_range = Dahdi::Config::Gen::bchan_range($span);
printf "bchan=%s\n", $chan_range;
my $dchan = $span->dchan();
printf "dchan=%d\n", $dchan->num();
- } elsif ($gconfig->{'pri_connection_type'} eq 'R2' ) {
+ } elsif ($pri_connection_type eq 'R2' ) {
my $idle_bits = $gconfig->{'r2_idle_bits'};
$chan_range = Dahdi::Config::Gen::bchan_range($span);
printf "cas=%s:$idle_bits\n", $chan_range;
printf "dchan=%d\n", $span->dchan()->num();
- } elsif ($gconfig->{'pri_connection_type'} eq 'CAS' ) {
+ } elsif ($pri_connection_type eq 'CAS' ) {
my $type = ($termtype eq 'TE') ? 'FXO' : 'FXS';
my $sig = $gconfig->{'dahdi_signalling'}{$type};
+ my $em_signalling = $gconfig->{'em_signalling'};
+ if ($em_signalling ne 'none') {
+ $sig = 'e&m';
+ # FIXME: but we don't handle E1 yet
+ $sig = 'e&me1' if $proto eq 'E1';
+ }
die "unknown default dahdi signalling for chan $num type $type" unless defined $sig;
$chan_range = Dahdi::Config::Gen::chan_range($span->chans());
printf "%s=%s\n", $sig, $chan_range;
@@ -202,7 +208,7 @@ HEAD
if($span->is_digital) {
if($span->is_pri) {
if($gconfig->{'pri_connection_type'} eq 'CAS') {
- $self->gen_cas($gconfig, $span);
+ $self->gen_t1_cas($gconfig, $span);
} else {
$self->gen_digital($gconfig, $span);
}
diff --git a/xpp/perl_modules/Dahdi/Config/Params.pm b/xpp/perl_modules/Dahdi/Config/Params.pm
index dd886e7..0cc0d88 100644
--- a/xpp/perl_modules/Dahdi/Config/Params.pm
+++ b/xpp/perl_modules/Dahdi/Config/Params.pm
@@ -101,6 +101,7 @@ sub item($$@) {
fxs_immediate => 'no',
fxs_default_start => 'ks',
fxo_default_start => 'ks',
+ em_signalling => 'none',
lc_country => 'us',
context_lines => 'from-pstn',
context_phones => 'from-internal',
@@ -114,6 +115,7 @@ sub item($$@) {
bri_hardhdlc => 'auto',
pri_connection_type => 'PRI',
r2_idle_bits => '1101',
+ tdm_framing => 'esf',
'pri_termtype' => [ 'SPAN/* TE' ],
);
return $self->{$key} if exists($self->{$key}) or $options{NODEFAULTS};