Compare commits
20 Commits
v2.8.0-rc2
...
v2.8.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9338d9b74 | ||
|
|
c0e19d47e8 | ||
|
|
ffced0cad2 | ||
|
|
e298eb1237 | ||
|
|
a97d373d95 | ||
|
|
c27664dc1b | ||
|
|
365a12f42a | ||
|
|
2a84216fe4 | ||
|
|
791a596c07 | ||
|
|
d145364c00 | ||
|
|
0afba16b2e | ||
|
|
c163caca00 | ||
|
|
c9e8ec7499 | ||
|
|
1356a55d77 | ||
|
|
10a6622774 | ||
|
|
a4217f6977 | ||
|
|
fb1a2b5572 | ||
|
|
6d10525863 | ||
|
|
a1d4355c20 | ||
|
|
b303802658 |
28
Makefile
28
Makefile
@@ -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
10
README
@@ -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
|
||||
|
||||
@@ -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
26
build_tools/make_dist
Executable 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
66
configure
vendored
@@ -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\\"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
;;
|
||||
|
||||
18
dahdi.rules
18
dahdi.rules
@@ -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"
|
||||
|
||||
@@ -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 &
|
||||
;;
|
||||
@@ -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"
|
||||
@@ -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
268
dahdi_span_types
Executable 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -11,6 +11,7 @@ fxotune \- automatically tune DAHDI FXO channels
|
||||
\- dump mode
|
||||
|
||||
.B fxotune \-s
|
||||
.I [ options ]
|
||||
\- Startup mode
|
||||
.SH
|
||||
.SH DESCRIPTION
|
||||
|
||||
13
fxotune.c
13
fxotune.c
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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@
|
||||
|
||||
@@ -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
|
||||
185
span_types
185
span_types
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -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>.
|
||||
@@ -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
11
xpp/xpp.rules
Normal 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}"
|
||||
Reference in New Issue
Block a user