Compare commits
11 Commits
v2.5.0-rc2
...
v2.5.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8358a234a5 | ||
|
|
5795575cf2 | ||
|
|
a33696c81e | ||
|
|
2f10cda05a | ||
|
|
e9ea988620 | ||
|
|
0245fef736 | ||
|
|
e8c7b0042e | ||
|
|
ff04c5db31 | ||
|
|
b3824291d5 | ||
|
|
58afc8f173 | ||
|
|
13f0f2235d |
30
README
30
README
@@ -4,7 +4,7 @@ Asterisk Development Team <asteriskteam@digium.com>
|
||||
$Revision$, $Date$
|
||||
|
||||
DAHDI stands for Digium Asterisk Hardware Device Interface. This
|
||||
package contains the userspace tools to configure the kernel modules
|
||||
package contains the user-space tools to configure the kernel modules
|
||||
included in the package dahdi-linux.
|
||||
|
||||
Build Requirements
|
||||
@@ -14,7 +14,7 @@ dahdi-linux before building dahdi-tools.
|
||||
|
||||
Build System
|
||||
~~~~~~~~~~~~
|
||||
gcc and friends. Generally you will need to install the package gcc.
|
||||
GCC and friends. Generally you will need to install the package gcc.
|
||||
There may be cases where you will need a specific version of gcc to build
|
||||
kernel modules.
|
||||
|
||||
@@ -51,7 +51,7 @@ There are some make targets that are provided to build or install just
|
||||
parts of DAHDI:
|
||||
|
||||
. Build targets:
|
||||
- make: Build DAHDI userspace programs. partial
|
||||
- make: Build DAHDI user-space programs. partial
|
||||
targets of it:
|
||||
* make 'utilname': builds 'utilname' alone (e.g: `make dahdi_diag`)
|
||||
* make utils: Build libtonezone.
|
||||
@@ -66,7 +66,7 @@ Installation to a Subtree
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
The following may be useful when testing the package or when preparing a
|
||||
package for a binary distribution (such as an rpm package) installing
|
||||
onto a subtree rather than on th real system.
|
||||
onto a subtree rather than on the real system.
|
||||
|
||||
make install DESTDIR=targetdir
|
||||
|
||||
@@ -89,7 +89,7 @@ run, use:
|
||||
To re-run ./configure with the same parameters it was run with last
|
||||
time, use:
|
||||
|
||||
./ocnfig.status --recheck
|
||||
./config.status --recheck
|
||||
|
||||
|
||||
Configuration
|
||||
@@ -138,7 +138,7 @@ include::genconf_parameters.asciidoc[]
|
||||
Tonezones
|
||||
~~~~~~~~~
|
||||
The file zonedata.c contains the information about the tone zones used
|
||||
in libtonezone (and hence also in ztcfg). Here is a list of those zones:
|
||||
in libtonezone (and hence also in dahdi_cfg). Here is a list of those zones:
|
||||
|
||||
include::tonezones.txt[]
|
||||
|
||||
@@ -146,14 +146,14 @@ include::tonezones.txt[]
|
||||
DAHDI PERL modules
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
The directory xpp has, in addition to helper utilities for the
|
||||
Xorcom Astribank, a collection of perl modules to provide information
|
||||
related to DAHDI. The perl modules themselves are under xpp/perl_modules/ .
|
||||
Xorcom Astribank, a collection of PERL modules to provide information
|
||||
related to DAHDI. The PERL modules themselves are under xpp/perl_modules/ .
|
||||
In xpp/ there are several utilities that use those modules:
|
||||
- xpp-specific: dahdi_registration, xpp_sync, xpp_blink .
|
||||
- General: lsdahdi, dahdi_genconf, dahdi_hardware, dahdi_drivers
|
||||
|
||||
The DAHDI perl modules will currently only be automatically installed if you
|
||||
happen to install the xpp directory. Those utilities require the perl modules
|
||||
The DAHDI PERL modules will currently only be automatically installed if you
|
||||
happen to install the xpp directory. Those utilities require the PERL modules
|
||||
to be installed, however they will also look for them in the directory
|
||||
perl_modules, and thus can be run directly from the DAHDI source tree. For
|
||||
example:
|
||||
@@ -167,7 +167,7 @@ instance:
|
||||
perldoc ./xpp/lsdahdi
|
||||
|
||||
Some of them are specific for the Xorcom Astribank and described in its
|
||||
docuemntation. the others are:
|
||||
documentation. the others are:
|
||||
|
||||
lsdahdi::
|
||||
A somewhat glorified `cat /proc/dahdi/*`.
|
||||
@@ -176,9 +176,9 @@ dahdi_genconf::
|
||||
/etc/dahdi/genconf_parameters (replaces genzaptelconf as well).
|
||||
dahdi_drivers::
|
||||
A two-liner script (not installed by default) that simply returns the
|
||||
modules that should be modprobed on this system.
|
||||
modules that should be modprobe-d on this system.
|
||||
dahdi_hardware::
|
||||
Uses the information from sysfs and its own knowledge to show
|
||||
Uses the information from SysFS and its own knowledge to show
|
||||
what PCI/USB DAHDI hardware is connected and if it is currently used
|
||||
by a driver. Shows also some more information for Astribanks from
|
||||
/proc/xpp .
|
||||
@@ -186,8 +186,8 @@ dahdi_hardware::
|
||||
|
||||
PPP Support
|
||||
~~~~~~~~~~~
|
||||
DAHDI digital cards can provide data channels through ppp as
|
||||
point-to-point connections. This requires a plugin to the ppp daemon
|
||||
DAHDI digital cards can provide data channels through PPP as
|
||||
point-to-point connections. This requires a plug-in to the PPP daemon
|
||||
that is included in the ppp/ subdirectory. To install it:
|
||||
|
||||
1. Make sure you have the PPP source / headers installed. On Debian:
|
||||
|
||||
@@ -43,27 +43,42 @@ an FXO module of two ports.
|
||||
|
||||
Building and Installation
|
||||
-------------------------
|
||||
Apart from the standard DAHDI build requirements, you also need libusb
|
||||
development headers to build the fpga_load firmware loader. This is
|
||||
typically the package libusb-dev on Debian (and derivatives like Ubuntu)
|
||||
or libusb-devel on RedHat (and derivatives like CentOS/Trixbox).
|
||||
Apart from the standard DAHDI build requirements, you also need:
|
||||
|
||||
Patch for BRI
|
||||
~~~~~~~~~~~~~
|
||||
(As of DAHDI 2.2 this patch is no longer needed. Furthermore, it does
|
||||
not apply. The same directory has a newer patch that applies. This
|
||||
section is kept in the document for the time being for the benefit of
|
||||
those with older versions)
|
||||
* *libusb development headers* to build the fpga_load firmware loader.
|
||||
This is typically the package libusb-dev on Debian (and derivatives
|
||||
like Ubuntu) or libusb-devel on RedHat (and derivatives like
|
||||
CentOS/Trixbox).
|
||||
* *Echo Canceller Module firmware*: If you have an Astribank with an
|
||||
echo canceller module, see the following section.
|
||||
|
||||
In order for the BRI module (xpd_bri.ko) to build, you still need an
|
||||
external patch:
|
||||
Follow the build instructions of DAHDI-linux and DAHDI-tools. But
|
||||
Basically, in dahdi-linux run:
|
||||
|
||||
http://updates.xorcom.com/astribank/bristuff/dahdi_bri_dchan.diff[]
|
||||
make
|
||||
make install # as root
|
||||
|
||||
You need to apply it to the dahdi-linux tarball before building:
|
||||
And later in dahdi-tools:
|
||||
|
||||
wget http://updates.xorcom.com/astribank/bristuff/dahdi_bri_dchan.diff
|
||||
patch -p1 <dahdi_bri_dchan.diff
|
||||
./configure
|
||||
make
|
||||
make install # as root
|
||||
|
||||
|
||||
Echo Canceller Firmware
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
If you install from source, you should copy OCT6104E-256D.ima to the
|
||||
source tree (before running make install:
|
||||
|
||||
wget http://updates.xorcom.com/astribank/hwec/OCT6104E-256D.ima
|
||||
mv OCT6104E-256D.ima drivers/dahdi/xpp/firmwares/
|
||||
|
||||
Alternatively, if you have already installed DAHDI-linux (e.g. from a
|
||||
binary package that does not include the firmware) you can just copy
|
||||
it directly to the target directory, /usr/share/dahdi using:
|
||||
|
||||
cd /usr/share/dahdi
|
||||
wget http://updates.xorcom.com/astribank/hwec/OCT6104E-256D.ima
|
||||
|
||||
|
||||
Installation Scenarios
|
||||
|
||||
@@ -131,7 +131,7 @@ my @bri_strings = (
|
||||
'(?:quad|octo)BRI PCI ISDN Card.* \[(NT|TE)\]',
|
||||
'octoBRI \[(NT|TE)\] ',
|
||||
'HFC-S PCI A ISDN.* \[(NT|TE)\] ',
|
||||
'(B4XXP) \(PCI\) Card', # Does not expose NT/TE type
|
||||
'(B4XXP) \(PCI\) Card', # Use dahdi_scan to determine TE/NT mode
|
||||
'(WCBRI)', # has selectable NT/TE modes via dahdi_cfg
|
||||
);
|
||||
|
||||
@@ -177,6 +177,28 @@ sub init_proto($$) {
|
||||
$self->{TYPE} = "${proto}_$self->{TERMTYPE}";
|
||||
}
|
||||
|
||||
sub get_digital_spantype {
|
||||
my $span_no = shift;
|
||||
my @lines = split /\n/, `dahdi_scan`;
|
||||
my $found_span = 0;
|
||||
foreach my $line (@lines) {
|
||||
if (! $found_span) {
|
||||
if ($line =~ m/\[$span_no\]/) {
|
||||
$found_span = 1;
|
||||
}
|
||||
} else {
|
||||
if ($line !~ m/^\[/) {
|
||||
if ($line =~ m/digital-(TE|NT)/ ){
|
||||
return $1;
|
||||
}
|
||||
} else {
|
||||
$found_span = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
die "Cannot determine digital spantype";
|
||||
}
|
||||
|
||||
sub new($$) {
|
||||
my $pack = shift or die "Wasn't called as a class method\n";
|
||||
my $proc_file = shift or die "Missing a proc file parameter\n";
|
||||
@@ -191,10 +213,16 @@ sub new($$) {
|
||||
$self->{IS_DIGITAL} = 0;
|
||||
$self->{IS_BRI} = 0;
|
||||
$self->{IS_PRI} = 0;
|
||||
$self->{TERMTYPE} = "UNKNOWN";
|
||||
foreach my $cardtype (@bri_strings) {
|
||||
if($head =~ m/$cardtype/) {
|
||||
my $termtype = $1;
|
||||
$termtype = 'TE' if ( $1 eq 'B4XXP' or $1 eq 'WCBRI' );
|
||||
if ($1 eq 'B4XXP') {
|
||||
$termtype = get_digital_spantype($num);
|
||||
}
|
||||
if ($1 eq 'WCBRI') {
|
||||
$termtype = 'TE';
|
||||
}
|
||||
$self->{IS_DIGITAL} = 1;
|
||||
$self->{IS_BRI} = 1;
|
||||
$self->{TERMTYPE} = $termtype;
|
||||
@@ -230,6 +258,11 @@ sub new($$) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
if (($self->is_soft_term_type == 0) and ($self->termtype eq "UNKNOWN")) {
|
||||
$self->{IS_SOFT_TERM_TYPE} = 1;
|
||||
}
|
||||
|
||||
($self->{NAME}, $self->{DESCRIPTION}) = (split(/\s+/, $head, 4))[2, 3];
|
||||
$self->{IS_DAHDI_SYNC_MASTER} =
|
||||
($self->{DESCRIPTION} =~ /\(MASTER\)/) ? 1 : 0;
|
||||
@@ -368,7 +401,7 @@ SPEC:
|
||||
#print STDERR "match: $match\n";
|
||||
foreach my $pattern (@patlist) {
|
||||
#print STDERR "testmatch: $pattern =~ $match\n";
|
||||
if($pattern =~ $match) {
|
||||
if($pattern =~ /^$match$/) {
|
||||
#print STDERR "MATCH '$pattern' ~ '$match' termtype=$termtype\n";
|
||||
$match_termtype = $termtype;
|
||||
last SPEC;
|
||||
|
||||
@@ -29,6 +29,7 @@ set -e
|
||||
# For lab testing
|
||||
mydir=`dirname $0`
|
||||
PATH="${mydir}:${PATH}"
|
||||
XPP_WAIT_AB_TIMEOUT=80
|
||||
|
||||
[ -r /etc/dahdi/init.conf ] && . /etc/dahdi/init.conf
|
||||
|
||||
@@ -56,7 +57,7 @@ fi
|
||||
|
||||
# Wait for driver and first device
|
||||
echo -n 1>&2 "Astribanks detection "
|
||||
tries=40
|
||||
tries="$XPP_WAIT_AB_TIMEOUT"
|
||||
while [ ! -e "/sys/bus/astribanks/devices/xbus-00" ]
|
||||
do
|
||||
if [ "$tries" -le 0 ]; then
|
||||
|
||||
Reference in New Issue
Block a user