Compare commits
15 Commits
v2.4.0
...
v2.4.1-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
955a1d0df6 | ||
|
|
b79f28837a | ||
|
|
d551ed3cfc | ||
|
|
6189813aa8 | ||
|
|
c2395b44ec | ||
|
|
0e700f80c5 | ||
|
|
3940110c35 | ||
|
|
47111ff7a5 | ||
|
|
c7a957e14e | ||
|
|
842130f99d | ||
|
|
41143e105f | ||
|
|
44289a813d | ||
|
|
07d9024623 | ||
|
|
2b3b134c11 | ||
|
|
08605ea73b |
89
ChangeLog
89
ChangeLog
@@ -1,3 +1,92 @@
|
||||
2011-02-15 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-tools version 2.4.1-rc1 released.
|
||||
|
||||
2011-02-08 14:42 +0000 [r9733-9744] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
|
||||
|
||||
* xpp/perl_modules/Dahdi/Chans.pm,
|
||||
xpp/perl_modules/Dahdi/Config/Gen/System.pm: dahdi-perl: more
|
||||
left-over $span->xpd Replace the remaining $span->xpd with
|
||||
xpd_of_span(). Following up on r9648. Merged revisions 9731 via
|
||||
svnmerge from http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* xpp/perl_modules/Dahdi/Hardware/USB.pm, /: dahdi-perl: fix xpp
|
||||
driver in dahdi_hardware Don't require 'dahdi_hardware -v' to
|
||||
show the driver for a USB device. Only works when the usbfs is
|
||||
not used (when /proc/bus/usb is not mounted). Signed-off-by:
|
||||
Tzafrir Cohen <tzafrir.cohen@xorcom.com> Merged revisions 9699
|
||||
via svnmerge from http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* xpp/perl_modules/Dahdi/Span.pm: dahdi-perl: left-over
|
||||
$span->xpd Replace one remaining $span->{XPD} with xpd_of_span().
|
||||
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Merged
|
||||
revisions 9648 via svnmerge from
|
||||
http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* xpp/perl_modules/Dahdi/Config/Gen/System.pm: dahdi_genconf:
|
||||
Don't generate configurations that use channel 16 on E1 CAS
|
||||
Attempting to use channel 16 on E1 CAS is disallowed since that
|
||||
channel is reserved for RBS signaling. Configurations should not
|
||||
be generated that attempt to use it. Closes DAHDI-763. Patch by
|
||||
dmartinez. Merged revisions 9485 via svnmerge from
|
||||
http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* xpp/xpp_fxloader: xpp_fxloader: Don't try to load FPGA
|
||||
firmware twice When called from udev to load the FPGA firmware,
|
||||
make sure that this is not the event generated for the first
|
||||
end-point of the existing two, as we need to talk with the second
|
||||
one. This is probably better done in the udev rules, but will be
|
||||
slightly more complicated to apply only to the FPGA loading and
|
||||
not to USB firmware loading. Merged revisions 9482 via svnmerge
|
||||
from http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* dahdi_scan.c: dahdi_scan: Show CAS framing on the framing
|
||||
line. Also, always append "/CRC4" on any span where that was
|
||||
specified as an option. Signed-off-by: Shaun Ruffell
|
||||
<sruffell@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com>
|
||||
Merged revisions 9473 via svnmerge from
|
||||
http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* dahdi_scan.c: Fixed up the loss of crc4-multiframe alignment
|
||||
logic Loss of crc4-multiframe alignment on an E1 link is not a
|
||||
condition which brings the span down. The span will continue to
|
||||
run as long as it can maintain double frame alignment. Because of
|
||||
this, we cannot place the LMFA alarm in the usual spaninfo.alarms
|
||||
member, due to userspace programs using this as a catch-all for a
|
||||
span being up or down. We can detect the alarm by watching the
|
||||
frame error counter (fecount). If it continuously increments, the
|
||||
span is configured for crc4, and the span remains OK (alarms =
|
||||
0), then we are in loss of crc4-multiframe state. In order to
|
||||
test this alarm, you'll need to synthesize a loss of crc4
|
||||
alignment on the span. You can usually do this by configuring the
|
||||
local span to use crc4 and the remote end to not use crc4. I used
|
||||
the Fireberd 6000 in my lab to do this. dahdi-743 & dahdi-420
|
||||
Acked-by: Shaun Ruffell <sruffell@digium.com> Merged revisions
|
||||
9458 via svnmerge from
|
||||
http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* xpp/perl_modules/Dahdi/Hardware/PCI.pm, /: Dahdi::Hardware:
|
||||
Support beroNet BN4S0e PCI Express card Add extra PCI IDs to
|
||||
support "beroNet BN4S0e PCI Express 4x S0 Karte". Origin:
|
||||
http://bugs.debian.org/600839 Merged revisions 9452 via svnmerge
|
||||
from http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* autoconfig.h.in, xpp/astribank_is_starting.c, /, configure,
|
||||
configure.ac: astribank_is_starting: use semop if no semtimedop
|
||||
astribank_is_starting should use a timeout for the semaphore, but
|
||||
if the GNU-specific semtimedop() is not available, we'll just
|
||||
fall back to using semop with no time out. Not as good, but
|
||||
better than nothing. (closes issue #16783) Reported by: abelbeck
|
||||
Merged revisions 9426 via svnmerge from
|
||||
http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
* zonedata.c: tonezone: Add Macao,China to tone zone data Adding
|
||||
Macao tone zone data according to
|
||||
http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf (closes
|
||||
issue #17744) Reported by: alfredtang Patches: zonedata.patch
|
||||
uploaded by alfredtang (license 1094) Merged revisions 9313 via
|
||||
svnmerge from http://svn.digium.com/svn/dahdi/tools/trunk
|
||||
|
||||
2010-08-31 Shaun Ruffell <sruffell@digium.com>
|
||||
|
||||
* dahdi-tools version 2.4.0 released.
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
/* Define if your system has the DAHDI headers. */
|
||||
#undef HAVE_DAHDI
|
||||
|
||||
/* Define if your system has the DAHDI23 headers. */
|
||||
#undef HAVE_DAHDI23
|
||||
|
||||
/* Define DAHDI23 headers version */
|
||||
#undef HAVE_DAHDI23_VERSION
|
||||
|
||||
/* Define DAHDI headers version */
|
||||
#undef HAVE_DAHDI_VERSION
|
||||
|
||||
@@ -21,6 +27,9 @@
|
||||
/* Define to indicate the ${NEWT_DESCRIP} library version */
|
||||
#undef HAVE_NEWT_VERSION
|
||||
|
||||
/* Define to 1 if you have the `semtimedop' function. */
|
||||
#undef HAVE_SEMTIMEDOP
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
@@ -63,6 +72,9 @@
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
|
||||
@@ -99,6 +99,8 @@ AST_C_DEFINE_CHECK([DAHDI23], [DAHDI_CONFIG_NTTE], [dahdi/user.h])
|
||||
AST_EXT_LIB_CHECK([NEWT], [newt], [newtBell], [newt.h])
|
||||
AST_EXT_LIB_CHECK([USB], [usb], [usb_init], [usb.h])
|
||||
|
||||
AC_CHECK_FUNCS([semtimedop])
|
||||
|
||||
PBX_HDLC=0
|
||||
AC_MSG_CHECKING([for GENERIC_HDLC_VERSION version 4 in linux/hdlc.h])
|
||||
AC_COMPILE_IFELSE(
|
||||
|
||||
40
dahdi_scan.c
40
dahdi_scan.c
@@ -95,11 +95,13 @@ int main(int argc, char *argv[])
|
||||
strcat(alarms, "YEL/");
|
||||
if (s.alarms & DAHDI_ALARM_RED) {
|
||||
strcat(alarms, "RED/");
|
||||
|
||||
/* Extended alarm feature test. Allows compilation with
|
||||
* versions of dahdi-linux prior to 2.4
|
||||
*/
|
||||
#ifdef DAHDI_ALARM_LFA
|
||||
if (s.alarms & DAHDI_ALARM_LFA)
|
||||
strcat(alarms, "LFA/");
|
||||
if (s.alarms & DAHDI_ALARM_LMFA)
|
||||
strcat(alarms, "LMFA/");
|
||||
#endif /* ifdef DAHDI_ALARM_LFA */
|
||||
}
|
||||
if (s.alarms & DAHDI_ALARM_LOOPBACK)
|
||||
@@ -115,10 +117,35 @@ int main(int argc, char *argv[])
|
||||
alarms[strlen(alarms)-1]='\0';
|
||||
}
|
||||
} else {
|
||||
if (s.numchans)
|
||||
strcpy(alarms, "OK");
|
||||
else
|
||||
if (s.numchans) {
|
||||
#ifdef DAHDI_ALARM_LFA
|
||||
/* If we continuously receive framing errors
|
||||
* but our span is still in service, and we
|
||||
* are configured for E1 & crc4. We've lost
|
||||
* crc4-multiframe alignment
|
||||
*/
|
||||
if ((s.linecompat & DAHDI_CONFIG_CRC4) &&
|
||||
(s.fecount > 0)) {
|
||||
struct dahdi_spaninfo t;
|
||||
memset(&t, 0, sizeof(t));
|
||||
t.spanno = x;
|
||||
sleep(1);
|
||||
if (ioctl(ctl, DAHDI_SPANSTAT, &t))
|
||||
continue;
|
||||
|
||||
/* Test fecount at two separate time
|
||||
* intervals, if they differ, throw LMFA
|
||||
*/
|
||||
if ((t.fecount > s.fecount) &&
|
||||
!t.alarms) {
|
||||
strcat(alarms, "LMFA/");
|
||||
}
|
||||
}
|
||||
#endif /* ifdef DAHDI_ALARM_LFA */
|
||||
strcat(alarms, "OK");
|
||||
} else {
|
||||
strcpy(alarms, "UNCONFIGURED");
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stdout, "[%d]\n", x);
|
||||
@@ -169,7 +196,8 @@ int main(int argc, char *argv[])
|
||||
if (s.lineconfig & DAHDI_CONFIG_ESF) fprintf(stdout, "ESF");
|
||||
else if (s.lineconfig & DAHDI_CONFIG_D4) fprintf(stdout, "D4");
|
||||
else if (s.lineconfig & DAHDI_CONFIG_CCS) fprintf(stdout, "CCS");
|
||||
else if (s.lineconfig & DAHDI_CONFIG_CRC4) fprintf(stdout, "/CRC4");
|
||||
else fprintf(stdout, "CAS");
|
||||
if (s.lineconfig & DAHDI_CONFIG_CRC4) fprintf(stdout, "/CRC4");
|
||||
fprintf(stdout, "\n");
|
||||
} else {
|
||||
/* this is an analog span */
|
||||
|
||||
@@ -15,6 +15,10 @@ static int debug;
|
||||
static int verbose;
|
||||
static int timeout_seconds = 60;
|
||||
|
||||
/* If libc provides no timeout variant: try to do without it: */
|
||||
#ifndef HAVE_SEMTIMEDEOP
|
||||
#define semtimedop(sem, ops, n, timeout) semop(sem, ops, n)
|
||||
#endif
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
|
||||
@@ -229,7 +229,7 @@ sub battery($) {
|
||||
return undef unless defined $self->type && $self->type eq 'FXO';
|
||||
return $self->{BATTERY} if defined $self->{BATTERY};
|
||||
|
||||
my $xpd = $span->xpd;
|
||||
my $xpd = Dahdi::Xpp::xpd_of_span($span);
|
||||
my $index = $self->index;
|
||||
return undef if !$xpd;
|
||||
|
||||
@@ -251,7 +251,7 @@ sub blink($$) {
|
||||
my $on = shift;
|
||||
my $span = $self->span or die;
|
||||
|
||||
my $xpd = $span->xpd;
|
||||
my $xpd = Dahdi::Xpp::xpd_of_span($span);
|
||||
my $index = $self->index;
|
||||
return undef if !$xpd;
|
||||
|
||||
|
||||
@@ -77,7 +77,6 @@ sub gen_t1_cas($$) {
|
||||
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 ($pri_connection_type eq 'CAS' ) {
|
||||
my $type = ($termtype eq 'TE') ? 'FXO' : 'FXS';
|
||||
my $sig = $gconfig->{'dahdi_signalling'}{$type};
|
||||
@@ -138,7 +137,7 @@ sub gen_digital($$$) {
|
||||
if ($span->is_bri()) {
|
||||
my $use_bristuff = 0;
|
||||
my $cfg_hardhdlc = $gconfig->{'bri_hardhdlc'};
|
||||
my $xpd = $span->xpd();
|
||||
my $xpd = Dahdi::Xpp::xpd_of_span($span);
|
||||
if(!defined($cfg_hardhdlc) || $cfg_hardhdlc =~ /AUTO/i) {
|
||||
# Autodetect
|
||||
if(defined($xpd)) {
|
||||
|
||||
@@ -119,6 +119,7 @@ my %pci_ids = (
|
||||
'1397:16b8/1397:e998' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'OpenVox B800P' },
|
||||
'1397:08b4/1397:b566' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'BeroNet BN2S0' },
|
||||
'1397:08b4/1397:b560' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'BeroNet BN4S0' },
|
||||
'1397:08b4/1397:b762' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'BeroNet BN4S0 PCI-E card' },
|
||||
'1397:16b8/1397:b562' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'BeroNet BN8S0' },
|
||||
'1397:08b4' => { DRIVER => 'qozap', DESCRIPTION => 'Generic Cologne ISDN card' },
|
||||
'1397:16b8' => { DRIVER => 'qozap', DESCRIPTION => 'Generic OctoBRI ISDN card' },
|
||||
|
||||
@@ -140,8 +140,9 @@ sub scan_devices_sysfs($) {
|
||||
|
||||
# Older kernels, e.g. 2.6.9, don't have the attribute
|
||||
# busnum:
|
||||
m|/(\d+)-[\d.]+$|;
|
||||
my $busnum = $1 || next;
|
||||
m|/((\d+)-[\d.]+)$|;
|
||||
my $busnum = $2 || next;
|
||||
my $dev_sys_name = $1;
|
||||
my $vendor = _get_attr("$_/idVendor");
|
||||
my $product = _get_attr("$_/idProduct");
|
||||
my $model = $usb_ids{"$vendor:$product"};
|
||||
@@ -149,6 +150,12 @@ sub scan_devices_sysfs($) {
|
||||
my $devnum = _get_attr("$_/devnum");
|
||||
my $serial = _get_attr_optional("$_/serial", '');
|
||||
my $devname = sprintf("%03d/%03d", $busnum, $devnum);
|
||||
# Get driver for first interface of the device:
|
||||
my $iface = "$_/$dev_sys_name:1.0";
|
||||
my $loaded = readlink("$iface/driver");
|
||||
if (defined $loaded) {
|
||||
$loaded =~ s|.*/||;
|
||||
}
|
||||
my $d = Dahdi::Hardware::USB->new(
|
||||
IS_ASTRIBANK => ($model->{DRIVER} eq 'xpp_usb')?1:0,
|
||||
PRIV_DEVICE_NAME => $devname,
|
||||
@@ -157,6 +164,7 @@ sub scan_devices_sysfs($) {
|
||||
SERIAL => $serial,
|
||||
DESCRIPTION => $model->{DESCRIPTION},
|
||||
DRIVER => $model->{DRIVER},
|
||||
LOADED => $loaded,
|
||||
);
|
||||
push(@devices, $d);
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ sub pri_set_fromconfig($$) {
|
||||
}
|
||||
push(@pri_specs , 'SPAN/* TE'); # Default
|
||||
my @patlist = ( "SPAN/" . $span->num );
|
||||
my $xpd = $span->{XPD};
|
||||
my $xpd = Dahdi::Xpp::xpd_of_span($span);
|
||||
if(defined $xpd) {
|
||||
my $xbus = $xpd->xbus;
|
||||
my $xbus_name = $xbus->name;
|
||||
|
||||
@@ -349,6 +349,9 @@ udev_delayed_load() {
|
||||
run_fxload -D "$DEVICE" -I "$FIRM_USB"
|
||||
;;
|
||||
e4e4/11[3456]1/*)
|
||||
# There are potentially two separate udev events, for
|
||||
# each of the two endpoints. Ignore the first interface:
|
||||
case "$DEVPATH" in *.0) exit 0;; esac
|
||||
if [ "$prod_id" = 1131 ]; then
|
||||
FIRM_FPGA="FPGA_FXS.hex" # Legacy
|
||||
else
|
||||
|
||||
23
zonedata.c
23
zonedata.c
@@ -979,5 +979,28 @@ struct tone_zone builtin_zones[] =
|
||||
.mfr1_level = -7,
|
||||
.mfr2_level = -8,
|
||||
},
|
||||
{
|
||||
.zone = 43,
|
||||
.country = "mo",
|
||||
.description = "Macao,China",
|
||||
.ringcadence = { 1000, 4000 },
|
||||
.tones = {
|
||||
/* References: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf */
|
||||
{ DAHDI_TONE_DIALTONE, "425" },
|
||||
{ DAHDI_TONE_BUSY, "425/500,0/500" },
|
||||
{ DAHDI_TONE_RINGTONE, "425/1000,0/4000" },
|
||||
{ DAHDI_TONE_CONGESTION, "425/250,0/250" },
|
||||
{ DAHDI_TONE_CALLWAIT, "425/200,0/600" },
|
||||
/* RECORD TONE - not specified */
|
||||
{ DAHDI_TONE_RECORDTONE, "1400/400,0/15000" },
|
||||
{ DAHDI_TONE_INFO, "950/333,1400/333,1800/333,0/1000" },
|
||||
/* STUTTER TONE - not specified */
|
||||
{ DAHDI_TONE_STUTTER, "!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425" },
|
||||
},
|
||||
.dtmf_high_level = -10,
|
||||
.dtmf_low_level = -10,
|
||||
.mfr1_level = -10,
|
||||
.mfr2_level = -8,
|
||||
},
|
||||
{ .zone = -1 }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user