Compare commits

..

20 Commits

Author SHA1 Message Date
Oron Peled
a9338d9b74 Makefile: new 'make-dist' target
Creates a tar.gz:
* Identical results to Digium's distributed tarballs
* Named "dahdi-tools-<version>.tar.gz"
* Only from committed files (uses git-archive)
* Adds a .version file

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-12-02 23:01:17 +02:00
Shaun Ruffell
c0e19d47e8 dahdi_span_assignments, dahdi_span_types: Allow conf file to be overridden.
The environment variables that specified the full path the the configuration
files for dahdi_span_types and dahdi_span_assignments was documented, but they
were not actually set from the environment.

Also, the case of the variable was changed to match the one for the directory
where the rest of the config files are located.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
2013-11-26 13:50:02 -06:00
Shaun Ruffell
ffced0cad2 Add dahdi_ prefix to handle_device, span_types, span_assignments, and span_config.
All new dahdi tools and utilities will be prefixed with "dahdi_" in order to
avoid any future conflicts with other packages.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Oron Peled <oron.peled@xorcom.com>
2013-11-26 13:50:02 -06:00
Shaun Ruffell
e298eb1237 span_types: Fix bug that would prevent matching on devpath.
If a configuration file was specified that used the devpath, like:

  # Device: [] @Board_ID_Switch_0 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/pci:0000:02:08.0
  /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/pci:0000:02:08.0 1:E1
  /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/pci:0000:02:08.0 2:E1
  /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/pci:0000:02:08.0 3:E1
  /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:08.0/pci:0000:02:08.0 4:E1

Then the span_types script would silently fail to match the configuration lines
for the device and silently fail to change the linemodes.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Oron Peled <oron.peled@xorcom.com>
2013-11-25 16:11:37 -06:00
Tzafrir Cohen
a97d373d95 configure: regenerate for 6d10525
Regenerate configure script following changes in commit
6d10525863.

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2013-11-24 18:11:04 +02:00
Shaun Ruffell
c27664dc1b dahdi.init: Remove spurious "Missing '/sys/bus/astribanks/drivers/xppdrv/sync'".
The xpp_sync will fail if there are not any Astribank devices loaded. Check for
existence of the tools before trying to sync.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2013-11-24 10:06:11 -06:00
Tzafrir Cohen
365a12f42a README: include pinned spans config files
Include pinned-spans.conf and span-types.conf in the generated
README.html. Reformat them to render properly.

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
2013-11-24 16:48:29 +02:00
Oron Peled
2a84216fe4 Terminology rename: "pinned" -> "assigned"
* File names fixed
* File contents fixed

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:42:15 +02:00
Oron Peled
791a596c07 dahdi.rules: add persistent channel names as well
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:39:33 +02:00
Oron Peled
d145364c00 dahdi.rules: don't process "add" events unless needed
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:38:43 +02:00
Oron Peled
0afba16b2e hotplug: run fxotune from span_config:
* Use fxotune -b/-e options to run on wanted channel range
2013-11-24 16:36:01 +02:00
Oron Peled
c163caca00 fxotune: Now options '-b/-e' also apply with '-s'
* Now we can limit fxotune "set" mode to specific channel range.

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:35:10 +02:00
Oron Peled
c9e8ec7499 dahdi.rules: use tools_rootdir from driver
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:30:49 +02:00
Oron Peled
1356a55d77 span_types: fix for white-space in hardware_id
* Sanitize hardware_id/location attributes, just like span_assignments
* Allow control of keys via SPAN_ASSIGNMENTS_KEY or '-k <key>' option
* In general, import most features/options from span_assignments

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:22:58 +02:00
Oron Peled
10a6622774 udev scripts now read /etc/dahdi/init.conf
Added two override variables in init.conf:
* DAHDI_UDEV_DISABLE_DEVICES
* DAHDI_UDEV_DISABLE_SPANS

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:20:08 +02:00
Oron Peled
a4217f6977 sysfs: restored legacy names /etc/dahdi/<channo>:
Update dahdi.rules to create again the old fashioned device files
(/dev/dahdi/<channo>), but as symlinks to modern names.

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:17:35 +02:00
Oron Peled
fb1a2b5572 added udev rules and their install target:
* Added missing Makefile install rule for dahdi.rules
* Pulled xpp.rules from dahdi-linux and added install rules for it

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:16:33 +02:00
Oron Peled
6d10525863 pinned-spans: remove '--enable-pinned' from configure
pinned-spans utilities are now essential:
* Called by udev rules
* Called by dahdi_genconf

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:13:51 +02:00
Oron Peled
a1d4355c20 pinned-spans: fix examples in configuration files
* Correctly use the new "location" attribute
* Document the possibility to match against sysfs devpath
  (used to be the "location")

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:08:31 +02:00
Oron Peled
b303802658 pinned-spans: fix configuration file names
* Install them as *.conf.sample -- that's what they are
* Correctly rename spantype.conf to span-types.conf (new name)

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
2013-11-24 16:05:11 +02:00
26 changed files with 509 additions and 329 deletions

View File

@@ -85,6 +85,7 @@ MAN_DIR:=$(mandir)/man8
DATA_DIR:=${datadir}/dahdi
CONFIG_DIR:=$(sysconfdir)/dahdi
CONFIG_FILE:=$(CONFIG_DIR)/system.conf
UDEVRULES_DIR:=$(sysconfdir)/udev/rules.d
# Utilities we build with a standard build procedure:
UTILS = dahdi_tool dahdi_test dahdi_monitor dahdi_speed sethdlc dahdi_cfg \
@@ -102,11 +103,12 @@ endif
ifeq (1,$(PBX_HDLC))
BINS += sethdlc
endif
MAN_PAGES:=$(wildcard $(BINS:%=doc/%.8))
ASSIGNED_DATA_SCRIPTS:=dahdi_handle_device dahdi_span_config
ASSIGNED_UTILS:=dahdi_span_assignments dahdi_span_types
ASSIGNED_CONF:=assigned-spans.conf.sample span-types.conf.sample
PINNED_DATA_SCRIPTS:=handle_device span_config
PINNED_UTILS:=span_assignments span_types
PINNED_CONF:=pinned-spans.conf spantype.conf
MAN_PAGES:=$(wildcard $(BINS:%=doc/%.8))
MAN_PAGES:=$(wildcard $(ASSIGNED_UTILS:%=doc/%.8))
TEST_BINS:=patgen pattest patlooptest hdlcstress hdlctest hdlcgen hdlcverify timertest dahdi_maint
# All the man pages. Not just installed ones:
@@ -191,7 +193,8 @@ genconf_parameters.sample: xpp/genconf_parameters
cp $< $@
README.html: README system.conf.asciidoc init.conf.asciidoc tonezones.txt \
UPGRADE.txt genconf_parameters.asciidoc
UPGRADE.txt genconf_parameters.asciidoc assigned-spans.conf.asciidoc \
span-types.conf.asciidoc
$(ASCIIDOC) -n -a toc -a toclevels=3 $<
README.Astribank.html: xpp/README.Astribank
@@ -226,12 +229,10 @@ ifeq (,$(wildcard $(DESTDIR)$(CONFIG_FILE)))
$(INSTALL) -d $(DESTDIR)$(CONFIG_DIR)
$(INSTALL) -m 644 system.conf.sample $(DESTDIR)$(CONFIG_FILE)
endif
ifeq ($(DAHDI_PINNED),yes)
install -d $(DESTDIR)$(DATA_DIR)
install $(PINNED_DATA_SCRIPTS) $(DESTDIR)$(DATA_DIR)/
install $(PINNED_UTILS) $(DESTDIR)/$(BIN_DIR)/
install -m 644 $(PINNED_CONF) $(DESTDIR)/$(CONFIG_DIR)/
endif
install $(ASSIGNED_DATA_SCRIPTS) $(DESTDIR)$(DATA_DIR)/
install $(ASSIGNED_UTILS) $(DESTDIR)/$(BIN_DIR)/
install -m 644 $(ASSIGNED_CONF) $(DESTDIR)/$(CONFIG_DIR)/
install-libs: libs
$(INSTALL) -d -m 755 $(DESTDIR)/$(LIB_DIR)
@@ -294,6 +295,8 @@ endif
ifeq (,$(wildcard $(DESTDIR)$(BLACKLIST_FILE)))
$(INSTALL) -D -m 644 blacklist.sample $(DESTDIR)$(BLACKLIST_FILE)
endif
$(INSTALL) -d $(DESTDIR)$(UDEVRULES_DIR)
$(INSTALL) -D -m 644 dahdi.rules $(DESTDIR)$(UDEVRULES_DIR)/
ifneq (,$(COPY_NETSCR))
$(COPY_NETSCR)
endif
@@ -328,6 +331,9 @@ update:
echo "Not under version control"; \
fi
dist:
@./build_tools/make_dist "dahdi-tools" "$(TOOLSVERSION)"
clean:
rm -f $(BINS) $(TEST_BINS)
rm -f *.o dahdi_cfg tzdriver sethdlc
@@ -360,7 +366,7 @@ config.status: configure
@echo "****"
@exit 1
.PHONY: distclean dist-clean clean all install programs tests devel data config update install-programs install-libs install-utils-subdirs utils-subdirs prereq
.PHONY: distclean dist-clean clean all install programs tests devel data config update install-programs install-libs install-utils-subdirs utils-subdirs prereq dist
FORCE:

10
README
View File

@@ -133,6 +133,16 @@ FIXME: still not properly formatted.
include::genconf_parameters.asciidoc[]
Sample assigned-spans.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~
include::assigned-spans.conf.asciidoc[]
Sample span-types.conf
~~~~~~~~~~~~~~~~~~~~~~
include::span-types.conf.asciidoc[]
Tonezones
~~~~~~~~~
The file zonedata.c contains the information about the tone zones used

View File

@@ -1,5 +1,5 @@
#
# /etc/dahdi/pinned-spans.conf:
# /etc/dahdi/assigned-spans.conf:
#
# This file assigns span and channel numbers to dahdi devices
#
@@ -10,6 +10,7 @@
# * The <id> field may be either:
# hardware_id
# @location
# devpath (in sysfs)
# * Shell-style globbing is allowed for the <id> field
# * There may one or more of <spanspec>
# * Each <spanspec> is composed as:
@@ -44,13 +45,13 @@
# Astribank with 4*BRI without hardware_id :-(
# We use the location on the bus (ie: where it is physically
# located). Note the '@' prefix that indicate the location key.
#@pci0000:00/0000:00:03.3/usb1/1-6/xbus-01/astribanks:xbus-01 1:1:50
#@pci0000:00/0000:00:03.3/usb1/1-6/xbus-01/astribanks:xbus-01 2:2:100
#@pci0000:00/0000:00:03.3/usb1/1-6/xbus-01/astribanks:xbus-01 3:3:150
#@pci0000:00/0000:00:03.3/usb1/1-6/xbus-01/astribanks:xbus-01 4:4:200
#@usb-0000:00:1d.7-3 1:1:50
#@usb-0000:00:1d.7-3 2:2:100
#@usb-0000:00:1d.7-3 3:3:150
#@usb-0000:00:1d.7-3 4:4:200
# Same configuration with globbing:
#@*/usb1/1-6/* 1:1:50
#@*/usb1/1-6/* 2:2:100
#@*/usb1/1-6/* 3:3:150
#@*/usb1/1-6/* 4:4:200
#/sys/*/usb1/1-6/* 1:1:50
#/sys/*/usb1/1-6/* 2:2:100
#/sys/*/usb1/1-6/* 3:3:150
#/sys/*/usb1/1-6/* 4:4:200

26
build_tools/make_dist Executable file
View File

@@ -0,0 +1,26 @@
#! /bin/sh
if [ "$#" -ne 2 ]; then
echo >&2 "Usage: $0 <package> <version>"
exit 1
fi
package="$1"
version="$2"
tarball_prefix="$package-$version"
echo "I: Making dist tarball for $tarball_prefix"
tarball_name="$tarball_prefix.tar.gz"
tmp_work_dir=".tmp"
tmp_version_dir="$tmp_work_dir/$tarball_prefix"
if [ "$DESTDIR" != '' ]; then
destdir="$DESTDIR/"
fi
output="$destdir$tarball_name"
mkdir -p "$tmp_version_dir"
git archive --format tar HEAD | tar xf - -C "$tmp_version_dir"
echo "$version" > "$tmp_version_dir/.version"
tar czf "$output" -C "$tmp_work_dir" "$tarball_prefix"
rm -rf "$tmp_work_dir"
echo "I: tarball is ready: '$output'"

66
configure vendored
View File

@@ -1,7 +1,9 @@
#! /bin/sh
# From configure.ac Revision.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
# Generated by GNU Autoconf 2.69 for dahdi 2.8.0.
#
# Report bugs to <www.asterisk.org>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -267,10 +269,11 @@ fi
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
$as_echo "$0: Please tell bug-autoconf@gnu.org and www.asterisk.org
$0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or
$0: manually run the script under such a shell if you do
$0: have one."
fi
exit 1
fi
@@ -578,14 +581,13 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME=
PACKAGE_TARNAME=
PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=
PACKAGE_URL=
PACKAGE_NAME='dahdi'
PACKAGE_TARNAME='dahdi'
PACKAGE_VERSION='2.8.0'
PACKAGE_STRING='dahdi 2.8.0'
PACKAGE_BUGREPORT='www.asterisk.org'
PACKAGE_URL=''
ac_unique_file="dahdi"
ac_unique_file="dahdi_cfg.c"
# Factoring default headers for most tests.
ac_includes_default="\
@@ -643,7 +645,6 @@ DAHDI_DIR
DAHDI_INCLUDE
DAHDI_LIB
DAHDI_DECLARATION_AFTER_STATEMENT
DAHDI_PINNED
DAHDI_DEVMODE
DOWNLOAD
FETCH
@@ -710,7 +711,6 @@ ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_dev_mode
enable_pinned
with_dahdi
with_newt
with_usb
@@ -766,7 +766,7 @@ sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
@@ -1266,7 +1266,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures this package to adapt to many kinds of systems.
\`configure' configures dahdi 2.8.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1314,7 +1314,7 @@ Fine tuning of the installation directories:
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--docdir=DIR documentation root [DATAROOTDIR/doc/dahdi]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@@ -1326,7 +1326,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of dahdi 2.8.0:";;
esac
cat <<\_ACEOF
Optional Features:
@@ -1334,7 +1336,6 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-dev-mode Turn on developer mode
--enable-pinned Install pinned-spans support
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1358,7 +1359,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
Report bugs to <www.asterisk.org>.
_ACEOF
ac_status=$?
fi
@@ -1421,7 +1422,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
dahdi configure 2.8.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1582,6 +1583,10 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
( $as_echo "## ------------------------------- ##
## Report this to www.asterisk.org ##
## ------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
@@ -1788,7 +1793,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
It was created by dahdi $as_me 2.8.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4602,17 +4607,6 @@ fi
# Check whether --enable-pinned was given.
if test "${enable_pinned+set}" = set; then :
enableval=$enable_pinned; case "${enableval}" in
y|ye|yes) DAHDI_PINNED=yes ;;
n|no) DAHDI_PINNED=no ;;
*) as_fn_error $? "bad value ${enableval} for --enable-pinned" "$LINENO" 5 ;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wdeclaration-after-statement support" >&5
$as_echo_n "checking for -Wdeclaration-after-statement support... " >&6; }
if $(${CC} -Wdeclaration-after-statement -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
@@ -5699,7 +5693,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by $as_me, which was
This file was extended by dahdi $as_me 2.8.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5755,13 +5749,13 @@ $config_files
Configuration headers:
$config_headers
Report bugs to the package provider."
Report bugs to <www.asterisk.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
dahdi config.status 2.8.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View File

@@ -79,15 +79,6 @@ AC_ARG_ENABLE(dev-mode,
esac])
AC_SUBST(DAHDI_DEVMODE)
AC_ARG_ENABLE(pinned,
[ --enable-pinned Install pinned-spans support],
[case "${enableval}" in
y|ye|yes) DAHDI_PINNED=yes ;;
n|no) DAHDI_PINNED=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-pinned) ;;
esac])
AC_SUBST(DAHDI_PINNED)
AC_MSG_CHECKING(for -Wdeclaration-after-statement support)
if $(${CC} -Wdeclaration-after-statement -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
AC_MSG_RESULT(yes)

View File

@@ -286,8 +286,12 @@ case "$1" in
$FXOTUNE -s || :
fi
# Set the right Astribanks ticker:
LC_ALL=C xpp_sync "$XPP_SYNC"
# Do not try to call xpp_sync if there are no Astribank devices
# installed.
if test -e /sys/bus/astribanks; then
# Set the right Astribanks ticker:
LC_ALL=C xpp_sync "$XPP_SYNC"
fi
hpec_start
;;

View File

@@ -1,4 +1,18 @@
ACTION!="add", GOTO="dahdi_add_end"
# DAHDI devices with ownership/permissions for running as non-root
SUBSYSTEM=="dahdi", OWNER="asterisk", GROUP="asterisk", MODE="0660"
SUBSYSTEM=="dahdi_devices", RUN="/usr/share/dahdi/handle_device"
SUBSYSTEM=="dahdi_spans", RUN="/usr/share/dahdi/span_config"
# Backward compat names: /dev/dahdi/<channo>
SUBSYSTEM=="dahdi_channels", SYMLINK+="dahdi/%m"
# Add persistant names as well
SUBSYSTEM=="dahdi_channels", SYSFS{hardware_id}!="", SYMLINK+="dahdi/devices/%s{hardware_id}/%s{local_spanno}/%n"
SUBSYSTEM=="dahdi_channels", SYSFS{location}!="", SYMLINK+="dahdi/devices/@%s{location}/%s{local_spanno}/%n"
LABEL="dahdi_add_end"
# hotplug scripts
SUBSYSTEM=="dahdi_devices", RUN="%E{DAHDI_TOOLS_ROOTDIR}/usr/share/dahdi/dahdi_handle_device"
SUBSYSTEM=="dahdi_spans", RUN="%E{DAHDI_TOOLS_ROOTDIR}/usr/share/dahdi/dahdi_span_config"

View File

@@ -1,6 +1,6 @@
#! /bin/sh
#
# /usr/share/dahdi/handle_device
# /usr/share/dahdi/dahdi_handle_device
#
# Called by UDEV when a dahdi device is added/removed
#
@@ -25,6 +25,16 @@ set -e
#echo >&2 "$0($ACTION): DEBUG($# args): '$*'"
# Do we have a configuration?
if [ -f /etc/dahdi/init.conf ]; then
. /etc/dahdi/init.conf
fi
if [ "$DAHDI_UDEV_DISABLE_DEVICES" = 'yes' ]; then
echo "DAHDI_UDEV_DISABLE_DEVICES=yes. Skip $DEVPATH" | $LOGGER
exit 0
fi
# Check if we can safely do our job
if [ ! -f /sys/module/dahdi/parameters/auto_assign_spans ]; then
echo "Old driver (no auto_assign_spans parameter). Skip $DEVPATH" | $LOGGER
@@ -50,13 +60,13 @@ add)
# Don't block udev for too long
(
if [ -r "$DAHDICONFDIR/span-types.conf" ]; then
span_types set "/sys$DEVPATH"
dahdi_span_types set "/sys$DEVPATH"
fi
if [ -r "$DAHDICONFDIR/pinned-spans.conf" ]; then
span_assignments add "/sys$DEVPATH"
if [ -r "$DAHDICONFDIR/assigned-spans.conf" ]; then
dahdi_span_assignments add "/sys$DEVPATH"
else
# No configuration. No order guaranteed
span_assignments auto
dahdi_span_assignments auto
fi
) 2>&1 < /dev/null | $LOGGER &
;;

View File

@@ -1,22 +1,22 @@
#! /bin/sh
#
# /usr/sbin/span_assignments:
# /usr/sbin/dahdi_span_assignments:
#
# this script can be used both from udev and
# from the command line to assign/unassign and list
# current span assignments.
#
# It uses a configuration file: $DAHDICONFDIR/pinned-spans.conf
# It uses a configuration file: $DAHDICONFDIR/assigned-spans.conf
# (default DAHDICONFDIR=/etc/dahdi)
#
# The first argument is an action:
# "auto" - trigger driver auto_assign attribute for given devices
# (no configuration file is used)
# "add" - assign (spans which are not already assigned), according
# to /etc/dahdi/pinned-spans.conf configuration file
# to /etc/dahdi/assigned-spans.conf configuration file
# "remove" - unassign spans which are not already unassigned
# "list" - human-readable list of all spans (with/without assignments)
# "dumpconfig" - dump current assignments in a /etc/dahdi/pinned-spans.conf
# "dumpconfig" - dump current assignments in a /etc/dahdi/assigned-spans.conf
# compatible format
#
# Without further arguments, it operates on all existing spans
@@ -45,16 +45,16 @@
# variable.
#
# Examples:
# span_assignments list
# span_assignments add # all unassigned devices
# span_assignments add /sys/bus/dahdi_devices/devices/astribanks:xbus-00
# span_assignments remove # all assigned devices
# span_assignments -k location dumpconfig
# dahdi_span_assignments list
# dahdi_span_assignments add # all unassigned devices
# dahdi_span_assignments add /sys/bus/dahdi_devices/devices/astribanks:xbus-00
# dahdi_span_assignments remove # all assigned devices
# dahdi_span_assignments -k location dumpconfig
#
devbase='/sys/bus/dahdi_devices/devices'
DAHDICONFDIR="${DAHDICONFDIR:-/etc/dahdi}"
pinned_spans_conf="$DAHDICONFDIR/pinned-spans.conf"
DAHDISASSIGNEDSPANSCONF="${DAHDIASSIGNEDSPANSCONF:-"${DAHDICONFDIR}/assigned-spans.conf"}"
SPAN_ASSIGNMENTS_KEY=${SPAN_ASSIGNMENTS_KEY:-hwid}
dry_run=
verbose=
@@ -63,7 +63,7 @@ usage() {
echo >&2 "Usage: $0 [options] action [devpath ...]"
echo >&2 " action:"
echo >&2 " auto - trigger driver auto_assign attribute for given devices"
echo >&2 " add - assign spans, according to /etc/dahdi/pinned-spans.conf"
echo >&2 " add - assign spans, according to /etc/dahdi/assigned-spans.conf"
echo >&2 " remove - unassign spans"
echo >&2 " list - human-readable list of all spans"
echo >&2 " dumpconfig - dump current state as new configuration"
@@ -228,7 +228,7 @@ unassign_all_spans() {
# Allow comments and empty lines in config file
filter_conf() {
sed -e 's/#.*//' -e '/^[ \t]*$/d' "$pinned_spans_conf"
sed -e 's/#.*//' -e '/^[ \t]*$/d' "$DAHDISASSIGNEDSPANSCONF"
}
assign_device_spans() {
@@ -289,11 +289,11 @@ match_device() {
}
assign_devices() {
if [ ! -f "$pinned_spans_conf" ]; then
echo >&2 "$0: Missing '$pinned_spans_conf'"
if [ ! -f "$DAHDISASSIGNEDSPANSCONF" ]; then
echo >&2 "$0: Missing '$DAHDISASSIGNEDSPANSCONF'"
exit 1
fi
echo "using '$pinned_spans_conf'"
echo "using '$DAHDISASSIGNEDSPANSCONF'"
for device in $DEVICES
do
match_device "$device"

View File

@@ -1,6 +1,6 @@
#! /bin/sh
#
# /usr/share/dahdi/span_config
# /usr/share/dahdi/dahdi_span_config
#
# Called by UDEV when a dahdi span is added/removed
#
@@ -25,6 +25,16 @@ set -e
#echo >&2 "$0($ACTION): DEBUG($# args): '$*'"
# Do we have a configuration?
if [ -f /etc/dahdi/init.conf ]; then
. /etc/dahdi/init.conf
fi
if [ "$DAHDI_UDEV_DISABLE_SPANS" = 'yes' ]; then
echo "DAHDI_UDEV_DISABLE_SPANS=yes. Skip $DEVPATH" | $LOGGER
exit 0
fi
# Can we pass a different value so we can use
# alternate (testing) configuration?
# Meanwhile, make it hard-coded.
@@ -32,7 +42,7 @@ DAHDICONFDIR='/etc/dahdi'
export DAHDICONFDIR
run_dahdi_cfg() {
echo "dahdi_cfg: span $spanno <$basechan-$endchan>"
echo "dahdi_cfg: span $spanno <$basechan-$endchan> ($DEVPATH)"
dahdi_cfg -c "$cfg_file" -S "$spanno" -C "$basechan-$endchan"
}
@@ -60,6 +70,11 @@ configure_span() {
cfg_file='-'
DAHDI_CONF_FILE="$cfg_file" dahdi_genconf system | run_dahdi_cfg
fi
fxotune_cfg='/etc/fxotune.conf'
if [ -r "$fxotune_cfg" ]; then
echo "fxotune: span $spanno <$basechan-$endchan> ($DEVPATH)"
fxotune -s -b "$basechan" -e "$endchan"
fi
# Add to asterisk
asterisk -rx "dahdi create channels $basechan $endchan"

268
dahdi_span_types Executable file
View File

@@ -0,0 +1,268 @@
#! /bin/sh
#
# /usr/sbin/dahdi_span_types
#
# This script can be used both from udev and
# from the command line to manage PRI spans
# type (E1/T1/J1).
#
# Span types can be set only *BEFORE* span are assigned.
#
# It uses a configuration file: $DAHDICONFDIR/span-types.conf
# (default DAHDICONFDIR=/etc/dahdi)
# (the format is documented inside that file)
#
# The first argument is an action:
# "set" - actually write the setting to the driver
# "list" - human-readable list of E1/T1/J1 types
# "dumpconfig" - dump current assignments in a /etc/dahdi/span-types.conf
# compatible format
#
# Without further arguments, it operates on all existing spans
# With one or more sysfs dahdi_devices it is limited to those.
#
# We may use alternative "keys" for device matching:
# * Available keys:
# - "hwid" - Hardware id attribute from sysfs
# - "@location" - Location attribute from sysfs (embeded inside '<>')
# - "/devpath" - The sysfs absolute devpath
#
# * During "dumpconfig", for each device we take the first available key:
# - The preference is: "hwid" or else "@location" or else "/devpath"
# - This can be overriden via the SPAN_ASSIGNMENTS_KEY environment variable
# or the '{-k|--key} key' command line option.
#
# Command line options:
# - The '-h|--help' show a usage message.
# - The '-k <key>|--key <key>' overrides the SPAN_ASSIGNMENTS_KEY environment
# variable.
#
# Examples:
# dahdi_span_types list
# dahdi_span_types set # all devices
# dahdi_span_types set /sys/bus/dahdi_devices/devices/astribanks:xbus-00
# dahdi_span_types -k location dumpconfig
#
devbase='/sys/bus/dahdi_devices/devices'
DAHDICONFDIR="${DAHDICONFDIR:-/etc/dahdi}"
DAHDISPANTYPESCONF="${DAHDISPANTYPESCONF:-"${DAHDICONFDIR}/span-types.conf"}"
SPAN_ASSIGNMENTS_KEY=${SPAN_ASSIGNMENTS_KEY:-hwid}
usage() {
echo >&2 "Usage: $0 [options] action [devpath ...]"
echo >&2 " action:"
echo >&2 " set - set spans to E1/T1 according to configuration"
echo >&2 " list - human-readable list of all spans"
echo >&2 " dumpconfig - dump current state as new configuration"
echo >&2 ""
echo >&2 " options:"
echo >&2 " -h|--help - Show this help"
echo >&2 " -k|--key <k> - Override prefered key during dumpconfig action"
exit 1
}
# Parse command line options
TEMP=`getopt -o hk: --long help,key: -n "$0" -- "$@"`
if [ $? != 0 ]; then
echo >&2 "Bad options"
usage
fi
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help)
usage
;;
-k|--key)
SPAN_ASSIGNMENTS_KEY="$2"
shift
shift
;;
--)
shift
break
;;
*)
echo "Internal error!"
exit 1
;;
esac
done
if [ "$#" -eq 0 ]; then
echo >&2 "Missing action argument"
usage
fi
action="$1"
shift
# Validate SPAN_ASSIGNMENTS_KEY
case "$SPAN_ASSIGNMENTS_KEY" in
hwid|location|devpath)
;;
*)
echo >&2 "Bad SPAN_ASSIGNMENTS_KEY='$SPAN_ASSIGNMENTS_KEY' (should be: hwid|location|devpath)"
usage
;;
esac
if [ ! -d "$devbase" ]; then
echo >&2 "$0: Missing '$devbase' (DAHDI driver unloaded?)"
exit 1
fi
# Use given devices or otherwise, all existing devices
if [ "$#" -gt 0 ]; then
DEVICES="$@"
else
DEVICES=`echo $devbase/*`
fi
# Beware of special characters in attributes
attr_clean() {
cat "$1" | tr -d '\n' | tr '!' '/' | tr -c 'a-zA-Z0-9/:.-' '_'
}
show_spantypes() {
echo "# PRI span types (E1/T1/J1)"
for device in $DEVICES
do
devpath=`cd "$device" && pwd -P`
location='@'`attr_clean "$device/location"`
hardware_id=`attr_clean "$device/hardware_id"`
cat "$device/spantype" | while read st; do
case "$st" in
*:[ETJ]1)
printf "%-10s %-20s %s\n" \
"$st" "[$hardware_id]" "$location"
;;
esac
done | sort -n
done
}
dump_config() {
echo '#'
echo "# Autogenerated by $0 on `date`"
echo "# Map PRI DAHDI devices to span types for E1/T1/J1"
echo ''
fmt="%-65s %s\n"
printf "$fmt" '# @location/hardware_id' 'span_type'
for device in $DEVICES
do
devpath=`cd "$device" && pwd -P`
location=`attr_clean "$device/location"`
hardware_id=`attr_clean "$device/hardware_id"`
if [ "$SPAN_ASSIGNMENTS_KEY" = 'hwid' -a "$hardware_id" != '' ]; then
id="$hardware_id"
elif [ "$SPAN_ASSIGNMENTS_KEY" = 'location' -a "$location" != '' ]; then
id="@$location"
else
id="$devpath"
fi
echo "# Device: [$hardware_id] @$location $devpath"
cat "$device/spantype" | while read st; do
case "$st" in
*:[ETJ]1)
printf "$fmt" "$id" "$st"
;;
*)
#echo "# Skipped local span `echo $st | sed 's/:/ -- /'`"
;;
esac
done | sort -n
#echo ''
done
}
# Allow comments and empty lines in config file
filter_conf() {
sed -e 's/#.*//' -e '/^[ \t]*$/d' "$DAHDISPANTYPESCONF"
}
conf_spans() {
hardware_id="$1"
location="$2"
devpath="$3"
filter_conf | (
# Collect device spans
# in a subshell, so $SPANS is not lost
SPANS=''
while read id spans; do
# GLOBBING
case "$location" in
$id)
#echo >&2 "match($id): $spans"
SPANS="$SPANS $spans"
;;
esac
case "$hardware_id" in
$id)
#echo >&2 "match([$id]): $spans"
SPANS="$SPANS $spans"
;;
esac
case "$devpath" in
$id)
#echo >&2 "match([$id]): $spans"
SPANS="$SPANS $spans"
;;
esac
done
echo "$SPANS"
)
}
device_set_spantype() {
device="$1"
attr_file="$device/spantype"
devpath=`cd "$device" && pwd -P`
location='@'`attr_clean "$device/location"`
hardware_id=`attr_clean "$device/hardware_id"`
spanspecs=`conf_spans "$hardware_id" "$location" "$devpath"`
#echo >&2 "MATCHED($device): $spanspecs"
cut -d: -f1 "$attr_file" | while read spanno; do
for sp in $spanspecs
do
s=`echo "$sp" | cut -d: -f1`
v=`echo "$sp" | cut -d: -f2`
case "$spanno" in
$s)
#echo >&2 "conf($attr_file): $spanno:$v"
echo "$spanno:$v" > "$attr_file"
;;
esac
done
done
}
set_spantypes() {
if [ ! -f "$DAHDISPANTYPESCONF" ]; then
echo >&2 "$0: Missing configuration '$DAHDISPANTYPESCONF'"
exit 1
fi
for device in $DEVICES
do
device_set_spantype "$device"
done
}
case "$action" in
list)
show_spantypes
;;
dumpconfig)
dump_config
;;
set)
set_spantypes
;;
*)
usage
;;
esac

View File

@@ -1,19 +1,19 @@
.TH "SPAN_ASSIGNMENTS" "8" "13 Oct 2013" "" ""
.SH NAME
span_assignments \- handle DAHDI spans registration
dahdi_span_assignments \- handle DAHDI spans registration
.SH SYNOPSIS
.B span_assignments [\-v|\-\-verbose] [\-n|\-\-dry\-run] <add|remove> \fIdevpath
.B dahdi_span_assignments [\-v|\-\-verbose] [\-n|\-\-dry\-run] <add|remove> \fIdevpath
\fB[\fIdevpath \fB...]
.B span_assignments [\-v|\-\-verbose] [\-n|\-\-dry\-run] auto
.B dahdi_span_assignments [\-v|\-\-verbose] [\-n|\-\-dry\-run] auto
.B span_assignments [\-v|\-\-verbose] list
.B dahdi_span_assignments [\-v|\-\-verbose] list
.B span_assignments [\-v|\-\-verbose] [\-k|\-\-key \fIkey\fB] dumpconfig
.B dahdi_span_assignments [\-v|\-\-verbose] [\-k|\-\-key \fIkey\fB] dumpconfig
.B span_assignments \-h|\-\-help
.B dahdi_span_assignments \-h|\-\-help
.SH DESCRIPTION
When the kernel module parameter \fBdahdi.auto_assign_span\fR is unset,
@@ -23,10 +23,10 @@ DAHDI. This allows user-space to order DAHDI to register them to specific
span and channel numbers. This allows registering different spans out of
order.
.B span_assignments
.B dahdi_span_assignments
is used to register those spans or to help creating the configuration
file used in their registration:
.B /etc/dahdi/pinned-spans.conf .
.B /etc/dahdi/assigned-spans.conf .
.SH OPTIONS
@@ -36,7 +36,7 @@ There are several sub-commands:
.RS
Parameters are paths (in SysFS) to DAHDI devices with unregistered
spans. The command will register with DAHDI according to according to
configuration in \fBpinned-spans.conf\fR.
configuration in \fBassigned-spans.conf\fR.
.RE
.B remove \fIdevpath \fB[\fIdevpath \fB...]
@@ -60,10 +60,10 @@ List all spans in the system.
.B dumpconfig
.RS
List all registered spans in the system in a format fit to be used in
\fBpinned-spans.conf\fR. Use this to generate a configuration file after
\fBassigned-spans.conf\fR. Use this to generate a configuration file after
you have (perhaps manually) registered all existing spans.
.B dahdi_genconf pinnedspans
.B dahdi_genconf assignedspans
uses this command internally.
.RE
@@ -102,7 +102,7 @@ Path in SysFS to the device node.
.RE
.SH CONFIGURATOIN
.B pinned-spans.conf
.B assigned-spans.conf
is a file with lines specifying registration of spans.
Empty lines or lines beginning with '#' are ignored.
@@ -168,13 +168,13 @@ space must be available.
.B DAHDICONFDIR
.RS
The directory in which pinned-spans.conf resides. /etc/dahdi if not
The directory in which assigned-spans.conf resides. /etc/dahdi if not
overridden from the environment.
.RE
.B pinned_spans_conf
.B DAHDISASSIGNEDSPANSCONF
.RS
The path to pinned-spans.conf resides. /etc/dahdi/pinned-spans.conf if
The path to assigned-spans.conf resides. /etc/dahdi/assigned-spans.conf if
not overridden from the environment.
.RE
@@ -187,7 +187,7 @@ environment.
.SH FILES
.B /etc/dahdi/pinned-spans.conf
.B /etc/dahdi/assigned-spans.conf
.RS
The default location for the configuration file.
.RE
@@ -211,10 +211,10 @@ Write only files for the operations. Used by \fBadd\fR, \fBremove\fR and
.RE
.SH SEE ALSO
span_types(8), dahdi_genconf(8), dahdi_cfg(8)
dahdi_span_types(8), dahdi_genconf(8), dahdi_cfg(8)
.SH AUTHOR
span_assignments was written by Oron Peled. This manual page was
dahdi_span_assignments was written by Oron Peled. This manual page was
written by Tzafrir Cohen. Permission is granted to copy, distribute
and/or modify this document under the terms of the GNU General Public
License, Version 2 any later version published by the Free Software

View File

@@ -1,14 +1,14 @@
.TH "SPAN_TYPES" "8" "13 Oct 2013" "" ""
.SH NAME
span_types \- set DAHDI spans properties before registration (E1/T1)
dahdi_span_types \- set DAHDI spans properties before registration (E1/T1)
.SH SYNOPSIS
.B span_types <list|dumpconfig|set> [\fIdevpath \fB[\fIdevpath \fB...]]
.B dahdi_span_types <list|dumpconfig|set> [\fIdevpath \fB[\fIdevpath \fB...]]
.SH DESCRIPTION
The span type (E1/T1/J1) must be set to a span before registering it
with DAHDI, as E1 spans use more channels. \fBspan_types\fR applies the
with DAHDI, as E1 spans use more channels. \fBdahdi_span_types\fR applies the
span type configuration to an unregistered span.
Using it only makes sense when the kernel module parameter
@@ -16,7 +16,7 @@ Using it only makes sense when the kernel module parameter
automatically.
.SH OPTIONS
.B span_types
.B dahdi_span_types
takes a command and an optional list of devices. If no device is given,
the command is applied to all devices.
@@ -31,7 +31,7 @@ specified).
.B list
.RS
List types for all spans in the system which may be set with span_types
List types for all spans in the system which may be set with dahdi_span_types
(E1/T1/J1 spans).
.RE
@@ -107,7 +107,7 @@ The directory in which span-types.conf resides. /etc/dahdi if not
overridden from the environment.
.RE
.B span_types_conf
.B DAHDISPANTYPESCONF
.RS
The path to span-types.conf resides. /etc/dahdi/span-types.conf if
not overridden from the environment.
@@ -135,10 +135,10 @@ of the device. Span-specifications can be written to it to change types
.SH SEE ALSO
span_assignments(8), dahdi_genconf(8), dahdi_cfg(8)
dahdi_span_assignments(8), dahdi_genconf(8), dahdi_cfg(8)
.SH AUTHOR
span_types was written by Oron Peled. This manual page was
dahdi_span_types was written by Oron Peled. This manual page was
written by Tzafrir Cohen. Permission is granted to copy, distribute
and/or modify this document under the terms of the GNU General Public
License, Version 2 any later version published by the Free Software

View File

@@ -11,6 +11,7 @@ fxotune \- automatically tune DAHDI FXO channels
\- dump mode
.B fxotune \-s
.I [ options ]
\- Startup mode
.SH
.SH DESCRIPTION

View File

@@ -980,7 +980,7 @@ static int channel_open(int channo)
*
* @return 0 if successful, !0 otherwise
*/
static int do_set(char *configfilename)
static int do_set(char *configfilename, int dev_range, int startdev, int stopdev)
{
FILE *fp = NULL;
int res = 0;
@@ -1007,6 +1007,8 @@ static int do_set(char *configfilename)
if (res == EOF) {
break;
}
if (dev_range && (mydahdi < startdev || mydahdi > stopdev))
continue;
/* Check to be sure conversion is done correctly */
if (OUT_OF_BOUNDS(myacim) || OUT_OF_BOUNDS(mycoef1)||
@@ -1028,6 +1030,8 @@ static int do_set(char *configfilename)
mycoefs.coef7 = mycoef7;
mycoefs.coef8 = mycoef8;
if (debug >= 2)
printf("fxotune: set channel %d\n", mydahdi);
fd = channel_open(mydahdi);
if (fd < 0) {
return -1;
@@ -1187,6 +1191,7 @@ int main(int argc , char **argv)
{
int startdev = 1; /* -b */
int stopdev = 252; /* -e */
int dev_range = 0; /* false */
int calibtype = 2; /* -t */
int waveformtype = -1; /* -w multi-tone by default. If > 0, single tone of specified frequency */
int delaytosilence = 0; /* -l */
@@ -1228,9 +1233,11 @@ int main(int argc , char **argv)
continue;
case 'b':
startdev = moreargs ? atoi(argv[++i]) : startdev;
dev_range = 1;
break;
case 'e':
stopdev = moreargs ? atoi(argv[++i]) : stopdev;
dev_range = 1;
break;
case 't':
calibtype = moreargs ? atoi(argv[++i]) : calibtype;
@@ -1300,13 +1307,13 @@ int main(int argc , char **argv)
if (docalibrate){
res = do_calibrate(startdev, stopdev, calibtype, configfile, dialstr, delaytosilence, silencegoodfor);
if (!res)
return do_set(configfile);
return do_set(configfile, dev_range, startdev, stopdev);
else
return -1;
}
if (doset)
return do_set(configfile);
return do_set(configfile, dev_range, startdev, stopdev);
if (dodump){
res = do_dump(startdev, dialstr, delaytosilence, silencegoodfor, waveformtype);

View File

@@ -17,3 +17,7 @@
#XPP_FIRMWARE_DIR=/usr/share/dahdi
#XPP_HOTPLUG_DISABLED=yes
#XPP_HOTPLUG_DAHDI=yes
# Disable udev handling:
#DAHDI_UDEV_DISABLE_DEVICES=yes
#DAHDI_UDEV_DISABLE_SPANS=yes

View File

@@ -30,8 +30,6 @@ DOWNLOAD=@DOWNLOAD@
DAHDI_DEVMODE=@DAHDI_DEVMODE@
DAHDI_DECLARATION_AFTER_STATEMENT=@DAHDI_DECLARATION_AFTER_STATEMENT@
DAHDI_PINNED=@DAHDI_PINNED@
PBX_NEWT=@PBX_NEWT@
NEWT_LIB=@NEWT_LIB@
NEWT_INCLUDE=@NEWT_INCLUDE@

View File

@@ -8,6 +8,7 @@
# * The <id> field may be either:
# hardware_id
# @location
# devpath (in sysfs)
# * The <local_spanno> is the relative span number
# in the device (starting from 1)
# In this filed globbing rules apply. E.g:
@@ -24,4 +25,4 @@
# Set the first two spans of an Astribank to T1. The
# Astribanks is specified by its location instead of hardware_id
#@pci0000:00/0000:00:03.3/usb1/1-5/xbus-01/astribanks:xbus-01 [12]:T1
#@usb-0000:00:1d.7-3 [12]:T1

View File

@@ -1,185 +0,0 @@
#! /bin/sh
#
# /usr/sbin/span_types
#
# This script can be used both from udev and
# from the command line to manage PRI spans
# type (E1/T1/J1).
#
# Span types can be set only *BEFORE* span are assigned.
#
# It reads a configuration file /etc/dahdi/span-types.conf
# (the format is documented inside that file)
#
# A mandatory first argument is:
# list - to show existing E1/T1/J1 types
# dumpconfig - the same, but in a format (almost) suitable
# for the configuration file
# set - actually write the setting to the driver
#
# Examples:
# span_types list
# span_types dumpconfig
# span_types set # all devices
# span_types set /sys/bus/dahdi_devices/devices/astribanks:xbus-00
#
devbase='/sys/bus/dahdi_devices/devices'
DAHDICONFDIR="${DAHDICONFDIR:-/etc/dahdi}"
spantypes_conf="$DAHDICONFDIR/span-types.conf"
usage() {
echo >&2 "Usage: $0 {list|dumpconfig|set} [devpath ...]"
exit 1
}
if [ "$#" -eq 0 ]; then
usage
fi
action="$1"
shift
if [ ! -d "$devbase" ]; then
echo >&2 "$0: Missing '$devbase' (DAHDI driver unloaded?)"
exit 1
fi
# Use given devices or otherwise, all existing devices
if [ "$#" -gt 0 ]; then
DEVICES="$@"
else
DEVICES=`echo $devbase/*`
fi
show_spantypes() {
echo "# PRI span types (E1/T1/J1)"
for device in $DEVICES
do
hw_id=`cat "$device/hardware_id"`
location='@'`cd "$device" && pwd -P | sed 's,/sys/devices/,,'`
cat "$device/spantype" | while read st; do
case "$st" in
*:[ETJ]1)
printf "%-10s %-20s %s\n" \
"$st" "[$hw_id]" "$location"
;;
esac
done | sort -n
done
}
dump_config() {
echo '#'
echo "# Autogenerated by $0 on `date`"
echo "# Map PRI DAHDI devices to span types for E1/T1/J1"
echo ''
fmt="%-65s %s\n"
printf "$fmt" '# @location/hardware_id' 'span_type'
for device in $DEVICES
do
hw_id=`cat "$device/hardware_id"`
location='@'`cd "$device" && pwd -P | sed 's,/sys/devices/,,'`
if [ -n "$hw_id" ]; then
id="$hw_id"
else
id="$location"
fi
#echo "# Device: [$hw_id] $location"
cat "$device/spantype" | while read st; do
case "$st" in
*:[ETJ]1)
printf "$fmt" "$id" "$st"
;;
*)
#echo "# Skipped local span `echo $st | sed 's/:/ -- /'`"
;;
esac
done | sort -n
#echo ''
done
}
# Allow comments and empty lines in config file
filter_conf() {
sed -e 's/#.*//' -e '/^[ \t]*$/d' "$spantypes_conf"
}
conf_spans() {
hw_id="$1"
location="$2"
filter_conf | (
# Collect device spans
# in a subshell, so $SPANS is not lost
SPANS=''
while read id spans; do
# GLOBBING
case "$location" in
$id)
#echo >&2 "match($id): $spans"
SPANS="$SPANS $spans"
;;
esac
case "$hw_id" in
$id)
#echo >&2 "match([$id]): $spans"
SPANS="$SPANS $spans"
;;
esac
done
echo "$SPANS"
)
}
# Beware of special characters in attributes
attr_clean() {
cat "$1" | tr -d '\n' | tr '!' '/' | tr -c 'a-zA-Z0-9/:.-' '_'
}
device_set_spantype() {
device="$1"
attr_file="$device/spantype"
hw_id=`attr_clean "$device/hardware_id"`
location='@'`cd "$device" && pwd -P | sed 's,/sys/devices/,,'`
spanspecs=`conf_spans "$hw_id" "$location"`
#echo >&2 "MATCHED($device): $spanspecs"
cut -d: -f1 "$attr_file" | while read spanno; do
for sp in $spanspecs
do
s=`echo "$sp" | cut -d: -f1`
v=`echo "$sp" | cut -d: -f2`
case "$spanno" in
$s)
#echo >&2 "conf($attr_file): $spanno:$v"
echo "$spanno:$v" > "$attr_file"
;;
esac
done
done
}
set_spantypes() {
if [ ! -f "$spantypes_conf" ]; then
echo >&2 "$0: Missing configuration '$spantypes_conf'"
exit 1
fi
for device in $DEVICES
do
device_set_spantype "$device"
done
}
case "$action" in
list)
show_spantypes
;;
dumpconfig)
dump_config
;;
set)
set_spantypes
;;
*)
usage
;;
esac

View File

@@ -20,6 +20,8 @@ INSTALL_DATA = $(INSTALL) -m 644
prefix ?= /usr
datadir ?= $(prefix)/share
mandir ?= $(datadir)/man
sysconfdir ?= $(prefix)/etc
udevrulesdir ?= $(sysconfdir)/udev/rules.d
INSTALL ?= install
INSTALL_DATA = $(INSTALL) -m 644
@@ -102,6 +104,8 @@ install: all
$(INSTALL) -d $(DESTDIR)$(DATADIR)
$(INSTALL) xpp_fxloader astribank_hook $(DESTDIR)$(DATADIR)/
$(INSTALL) waitfor_xpds $(DESTDIR)$(DATADIR)/
$(INSTALL) -d $(DESTDIR)$(udevrulesdir)
$(INSTALL_DATA) xpp.rules $(DESTDIR)$(udevrulesdir)/
$(INSTALL) -d $(DESTDIR)$(MANDIR)
$(INSTALL_DATA) $(MAN_INSTALL) $(DESTDIR)$(MANDIR)/
$(INSTALL) -d $(DESTDIR)$(HOTPLUG_USB_DIR)

View File

@@ -54,7 +54,7 @@ sub generator_list($) {
}
} else {
# No files given. Use the defaults.
@genlist = ('spantypes', 'pinnedspans', 'system', 'chandahdi');
@genlist = ('spantypes', 'assignedspans', 'system', 'chandahdi');
if($gconfig->{'pri_connection_type'} eq 'R2') {
push @genlist, 'unicall';
}

View File

@@ -36,9 +36,9 @@ getopts('vRs:', \%opts) || usage;
my $dahdi_autoreg = check_param('/sys/module/xpp/parameters/dahdi_autoreg') eq 'Y';
my $auto_assign_spans = check_param('/sys/module/dahdi/parameters/auto_assign_spans') eq '1';
my $pinned_spans_config = $ENV{'PINNED_SPANS_CONF_FILE'} || '/etc/dahdi/pinned-spans.conf';
my $assigned_spans_config = $ENV{'ASSIGNED_SPANS_CONF_FILE'} || '/etc/dahdi/assigned-spans.conf';
my $span_types_config = $ENV{'SPAN_TYPES_CONF_FILE'} || '/etc/dahdi/span-types.conf';
my $have_pinned_spans_config = -f $pinned_spans_config || 0;
my $have_assigned_spans_config = -f $assigned_spans_config || 0;
my $have_span_types_config = -f $span_types_config || 0;
my $sorter;
@@ -60,7 +60,7 @@ my $on = shift;
my $verbose = $opts{'v'};
my $should_output = 1;
#print "dahdi_autoreg=$dahdi_autoreg auto_assign_spans=$auto_assign_spans have_pinned_spans_config='$have_pinned_spans_config' have_span_types_config='$have_span_types_config'\n";
#print "dahdi_autoreg=$dahdi_autoreg auto_assign_spans=$auto_assign_spans have_assigned_spans_config='$have_assigned_spans_config' have_span_types_config='$have_span_types_config'\n";
if(defined($on)) { # Translate to booleans
$on = uc($on);
@@ -100,12 +100,12 @@ foreach my $xbus (Dahdi::Xpp::xbuses($sorter)) {
}
myprintf "%3s ==> %3s\n", state2str($prev), state2str($on);
}
if (defined($on) && $on && ! $have_pinned_spans_config && ! $auto_assign_spans) {
# Emulate /etc/dahdi/pinned-spans.conf:
if (defined($on) && $on && ! $have_assigned_spans_config && ! $auto_assign_spans) {
# Emulate /etc/dahdi/assigned-spans.conf:
# - We iterate over $xbus according to /etc/dahdi/xpp_order
# - We "auto" assign all spans of current $xbus
my $devpath = sprintf "/sys/bus/dahdi_devices/devices/astribanks:xbus-%02d", $xbus->num;
my @cmd = ('span_assignments', 'auto', $devpath);
my @cmd = ('dahdi_span_assignments', 'auto', $devpath);
system @cmd;
warn "Failed '@cmd' (status=$?)\n" if $?;
}
@@ -137,7 +137,7 @@ you'll also see those channels as '(In use)' in the output of lsdahdi(8).
dahdi_registration is intended to be used when the kernel module parameter
B<xpp.dahdi_autoreg> is false (and implicitly: when the module parameter
B<dahdi.auto_assign_span> is true). See also the NOTES section regarding
C<span_assignments>.
C<dahdi_span_assignments>.
If dahdi_autoreg is true, the program will normally do nothing.
@@ -226,7 +226,7 @@ Newer versions of DAHDI added support for registering a span to a
specific span/channelss numbers specification. This allows registering
them out of order. To use this capability, the module parameter
B<dahdi.auto_assign_span> should be unset (set to 0) and thus spans of
detected DAHDI devices could be registered using C<span_assignments>
detected DAHDI devices could be registered using C<dahdi_span_assignments>
(which may also be run automatically from a udev hook).
In this case there is no point in delaying XPP device registration with
@@ -235,5 +235,5 @@ dahdi_registration will simply become a no-op.
=head1 SEE ALSO
B<dahdi_cfg>(8), B<span_assignments>(8).
B<dahdi_cfg>(8), B<dahdi_span_assignments>(8).

View File

@@ -1,4 +1,4 @@
package Dahdi::Config::Gen::Pinnedspans;
package Dahdi::Config::Gen::Assignedspans;
use strict;
use Dahdi::Config::Gen qw(is_true);
@@ -7,7 +7,7 @@ sub new($$$) {
my $pack = shift || die;
my $gconfig = shift || die;
my $genopts = shift || die;
my $file = $ENV{PINNED_SPANS_CONF_FILE} || "/etc/dahdi/pinned-spans.conf";
my $file = $ENV{ASSIGNED_SPANS_CONF_FILE} || "/etc/dahdi/assigned-spans.conf";
my $self = {
FILE => $file,
GCONFIG => $gconfig,
@@ -26,7 +26,7 @@ sub generate($$$) {
# If the span_types utilities were not installed we do not want to run
# this generator or report any errors.
system "which span_assignments > /dev/null 2>&1";
system "which dahdi_span_assignments > /dev/null 2>&1";
return if $?;
warn "Empty configuration -- no spans\n" unless @spans;
@@ -35,7 +35,7 @@ sub generate($$$) {
or die "Failed to backup old config: $!\n";
#$gconfig->dump;
print "Generating $file\n" if $genopts->{verbose};
my $cmd = "span_assignments dumpconfig > $file";
my $cmd = "dahdi_span_assignments dumpconfig > $file";
system $cmd;
die "Command failed (status=$?): '$cmd'" if $?;
}
@@ -57,7 +57,7 @@ dahdi - Generate configuration for dahdi drivers.
=head1 DESCRIPTION
Generate the F</etc/dahdi/pinned-spans.conf>.
This is the configuration for span_assignments.
Generate the F</etc/dahdi/assigned-spans.conf>.
This is the configuration for dahdi_span_assignments.
Its location may be overriden via the environment variable F<PINNED_SPANS_CONF_FILE>.
Its location may be overriden via the environment variable F<ASSIGNED_SPANS_CONF_FILE>.

View File

@@ -24,9 +24,9 @@ sub generate($$$) {
my $genopts = $self->{GENOPTS};
my @spans = @_;
# If the span_types utilities were not installed we do not want to run
# If the dahdi_span_types utilities were not installed we do not want to run
# this generator or report any errors.
system "which span_types > /dev/null 2>&1";
system "which dahdi_span_types > /dev/null 2>&1";
return if $?;
warn "Empty configuration -- no spans\n" unless @spans;
@@ -35,7 +35,7 @@ sub generate($$$) {
or die "Failed to backup old config: $!\n";
#$gconfig->dump;
print "Generating $file\n" if $genopts->{verbose};
my $cmd = "span_types dumpconfig > $file";
my $cmd = "dahdi_span_types dumpconfig > $file";
system $cmd;
die "Command failed (status=$?): '$cmd'" if $?;
}
@@ -58,6 +58,6 @@ dahdi - Generate configuration for dahdi drivers.
=head1 DESCRIPTION
Generate the F</etc/dahdi/span-types.conf>.
This is the configuration for span_types.
This is the configuration for dahdi_span_types.
Its location may be overriden via the environment variable F<SPAN_TYPES_CONF_FILE>.

11
xpp/xpp.rules Normal file
View File

@@ -0,0 +1,11 @@
# Load firmware into the Xorcom Astribank device:
SUBSYSTEM=="usb", ACTION=="add", \
ENV{PRODUCT}=="e4e4/11[3456][013]/*", ENV{DEVTYPE}!="usb_interface", \
RUN+="/usr/share/dahdi/xpp_fxloader udev $env{PRODUCT}"
# Hotplug hook for Astribank up/down
# If you need this functionality, copy the astribank_hook.sample
# to $XPP_INIT_DIR/astribank_hook
#
# By default XPP_INIT_DIR="/usr/share/dahdi"
KERNEL=="xbus*", RUN+="%E{XPP_INIT_DIR}/astribank_hook udev $kernel $sysfs{status} $sysfs{connector}"