Compare commits
50 Commits
v2.9.2
...
v2.11.0-rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
855772135c | ||
|
|
ec1ebffa89 | ||
|
|
9afcde3f1e | ||
|
|
9a181ccfbc | ||
|
|
10c1cd196e | ||
|
|
65ba28fe4a | ||
|
|
66e2c3ba11 | ||
|
|
94ca4a1bb4 | ||
|
|
af920cd079 | ||
|
|
b375bb80b8 | ||
|
|
0090086bce | ||
|
|
f21b592f68 | ||
|
|
d63812bd73 | ||
|
|
bf9500ab32 | ||
|
|
703db3bcc3 | ||
|
|
b5b32a438f | ||
|
|
4cc7df1089 | ||
|
|
ac6f437317 | ||
|
|
b054abb7e9 | ||
|
|
ee83afa669 | ||
|
|
5ac7fef4b2 | ||
|
|
6df9a492a0 | ||
|
|
fc620819b6 | ||
|
|
723b3ce87f | ||
|
|
5fd1ce5ca0 | ||
|
|
41532ca8a1 | ||
|
|
fbb6c1a17e | ||
|
|
131d694054 | ||
|
|
010c4d836c | ||
|
|
025b9a5593 | ||
|
|
c863d1d2c2 | ||
|
|
77730a9059 | ||
|
|
3f55dd78de | ||
|
|
283f01bd67 | ||
|
|
631d32680f | ||
|
|
44fe560f3b | ||
|
|
1a78b71fac | ||
|
|
f11b937659 | ||
|
|
cd6083b6ce | ||
|
|
0eb77e626e | ||
|
|
2e1c15baa3 | ||
|
|
094bb2c1e8 | ||
|
|
9aee76a3a5 | ||
|
|
d4537e46ce | ||
|
|
60401c5f49 | ||
|
|
a109763160 | ||
|
|
6c40704fec | ||
|
|
95e9dd71d8 | ||
|
|
df47721962 | ||
|
|
4e14561508 |
23
.gitignore
vendored
23
.gitignore
vendored
@@ -1,12 +1,29 @@
|
||||
*~
|
||||
*.o
|
||||
*.lo
|
||||
*.a
|
||||
*.so
|
||||
*.la
|
||||
.*.o.d
|
||||
.*.lo.d
|
||||
*.asciidoc
|
||||
*.html
|
||||
.deps
|
||||
.libs
|
||||
.dirstamp
|
||||
Makefile
|
||||
Makefile.in
|
||||
auxdir/
|
||||
build_tools/menuselect-deps
|
||||
aclocal.m4
|
||||
autom4te.cache/
|
||||
autoconfig.h
|
||||
autoconfig.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.guess
|
||||
config.ignore
|
||||
configure
|
||||
dahdi_cfg
|
||||
dahdi_diag
|
||||
dahdi_maint
|
||||
@@ -22,17 +39,19 @@ hdlcgen
|
||||
hdlcstress
|
||||
hdlctest
|
||||
hdlcverify
|
||||
libtonezone.a
|
||||
libtonezone.so
|
||||
libtool
|
||||
m4/
|
||||
makeopts
|
||||
patgen
|
||||
patlooptest
|
||||
pattest
|
||||
sethdlc
|
||||
stamp-h1
|
||||
timertest
|
||||
tonezone.lo
|
||||
tonezones.txt
|
||||
version.c
|
||||
xpp/*.check
|
||||
xpp/.depend
|
||||
xpp/.octasic.depend
|
||||
xpp/.perlcheck
|
||||
|
||||
390
Makefile
390
Makefile
@@ -1,390 +0,0 @@
|
||||
#
|
||||
# Makefile for DAHDI tools
|
||||
#
|
||||
# Copyright (C) 2001-2010 Digium, Inc.
|
||||
#
|
||||
#
|
||||
|
||||
ifeq ($(strip $(foreach var,clean distclean dist-clean update,$(findstring $(var),$(MAKECMDGOALS)))),)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(foreach var,clean distclean dist-clean update,$(findstring $(var),$(MAKECMDGOALS)))),)
|
||||
ifneq ($(wildcard makeopts),)
|
||||
include makeopts
|
||||
endif
|
||||
endif
|
||||
|
||||
SUBDIRS_UTILS_ALL:= ppp
|
||||
SUBDIRS_UTILS := xpp
|
||||
|
||||
OPTFLAGS=-O2
|
||||
CFLAGS+=-I. $(OPTFLAGS) -g -fPIC -Wall -DBUILDING_TONEZONE #-DTONEZONE_DRIVER
|
||||
ifneq (,$(findstring ppc,$(UNAME_M)))
|
||||
CFLAGS+=-fsigned-char
|
||||
endif
|
||||
ifneq (,$(findstring x86_64,$(UNAME_M)))
|
||||
CFLAGS+=-m64
|
||||
endif
|
||||
|
||||
ifeq ($(DAHDI_DEVMODE),yes)
|
||||
CFLAGS+=-Werror -Wunused -Wundef $(DAHDI_DECLARATION_AFTER_STATEMENT) -Wmissing-format-attribute -Wformat-security #-Wformat=2
|
||||
endif
|
||||
|
||||
ROOT_PREFIX=
|
||||
|
||||
# extra cflags to build dependencies. Recursively expanded.
|
||||
MAKE_DEPS= -MD -MT $@ -MF .$(subst /,_,$@).d -MP
|
||||
|
||||
CFLAGS+=$(DAHDI_INCLUDE)
|
||||
|
||||
CHKCONFIG := $(wildcard /sbin/chkconfig)
|
||||
UPDATE_RCD := $(wildcard /usr/sbin/update-rc.d)
|
||||
ifeq (,$(DESTDIR))
|
||||
ifneq (,$(CHKCONFIG))
|
||||
ADD_INITD := $(CHKCONFIG) --add dahdi
|
||||
else
|
||||
ifneq (,$(UPDATE_RCD))
|
||||
ADD_INITD := $(UPDATE_RCD) dahdi defaults 15 30
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
INITRD_DIR := $(firstword $(wildcard $(DESTDIR)/etc/rc.d/init.d $(DESTDIR)/etc/init.d))
|
||||
ifneq (,$(INITRD_DIR))
|
||||
INIT_TARGET := $(INITRD_DIR)/dahdi
|
||||
COPY_INITD := install -D dahdi.init $(INIT_TARGET)
|
||||
endif
|
||||
|
||||
RCCONF_FILE = /etc/dahdi/init.conf
|
||||
MODULES_FILE = /etc/dahdi/modules
|
||||
GENCONF_FILE = /etc/dahdi/genconf_parameters
|
||||
MODPROBE_FILE = /etc/modprobe.d/dahdi.conf
|
||||
BLACKLIST_FILE = /etc/modprobe.d/dahdi.blacklist.conf
|
||||
BASH_COMP_DIR = /etc/bash_completion.d
|
||||
BASH_COMP_FILE = $(BASH_COMP_DIR)/dahdi
|
||||
|
||||
NETSCR_DIR := $(firstword $(wildcard $(DESTDIR)/etc/sysconfig/network-scripts ))
|
||||
ifneq (,$(NETSCR_DIR))
|
||||
NETSCR_TARGET := $(NETSCR_DIR)/ifup-hdlc
|
||||
COPY_NETSCR := install -D ifup-hdlc $(NETSCR_TARGET)
|
||||
endif
|
||||
|
||||
TOOLSVERSION=$(shell build_tools/make_version . dahdi/tools)
|
||||
|
||||
LTZ_A:=libtonezone.a
|
||||
LTZ_A_OBJS:=zonedata.o tonezone.o version.o
|
||||
LTZ_SO:=libtonezone.so
|
||||
LTZ_SO_OBJS:=zonedata.lo tonezone.lo version.o
|
||||
LTZ_SO_MAJOR_VER:=2
|
||||
LTZ_SO_MINOR_VER:=0
|
||||
|
||||
# sbindir, libdir, includedir and mandir are defined in makeopts
|
||||
# (from configure).
|
||||
BIN_DIR:=$(sbindir)
|
||||
LIB_DIR:=$(libdir)
|
||||
INC_DIR:=$(includedir)/dahdi
|
||||
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 \
|
||||
fxstest fxotune dahdi_diag dahdi_scan
|
||||
|
||||
# some tests:
|
||||
UTILS += patgen pattest patlooptest hdlcstress hdlctest hdlcgen \
|
||||
hdlcverify timertest dahdi_maint
|
||||
|
||||
|
||||
BINS:=fxotune dahdi_cfg dahdi_monitor dahdi_speed dahdi_test dahdi_scan dahdi_maint
|
||||
ifeq (1,$(PBX_NEWT))
|
||||
BINS += dahdi_tool
|
||||
endif
|
||||
ifeq (1,$(PBX_HDLC))
|
||||
BINS += sethdlc
|
||||
endif
|
||||
ASSIGNED_DATA_SCRIPTS:=\
|
||||
dahdi_handle_device \
|
||||
dahdi_span_config \
|
||||
dahdi_auto_assign_compat \
|
||||
span_config.d/10-dahdi-cfg \
|
||||
span_config.d/20-fxotune \
|
||||
span_config.d/50-asterisk \
|
||||
handle_device.d/10-span-types \
|
||||
handle_device.d/20-span-assignments
|
||||
|
||||
ASSIGNED_UTILS:=dahdi_span_assignments dahdi_span_types \
|
||||
dahdi_waitfor_span_assignments
|
||||
ASSIGNED_CONF:=assigned-spans.conf.sample span-types.conf.sample
|
||||
|
||||
MAN_PAGES:= \
|
||||
$(wildcard $(BINS:%=doc/%.8)) \
|
||||
$(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:
|
||||
GROFF_PAGES := $(wildcard doc/*.8 xpp/*.8)
|
||||
GROFF_HTML := $(GROFF_PAGES:%=%.html)
|
||||
|
||||
GENERATED_DOCS := $(GROFF_HTML) README.html README.Astribank.html
|
||||
|
||||
all: prereq programs
|
||||
|
||||
libs: $(LTZ_SO) $(LTZ_A)
|
||||
|
||||
utils-subdirs:
|
||||
@for dir in $(SUBDIRS_UTILS); do \
|
||||
$(MAKE) -C $$dir; \
|
||||
done
|
||||
|
||||
programs: libs utils
|
||||
|
||||
utils: $(BINS) utils-subdirs
|
||||
|
||||
version.c: FORCE
|
||||
@TOOLSVERSION="${TOOLSVERSION}" build_tools/make_version_c > $@.tmp
|
||||
@if cmp -s $@.tmp $@ ; then :; else \
|
||||
mv $@.tmp $@ ; \
|
||||
fi
|
||||
@rm -f $@.tmp
|
||||
|
||||
tests: $(TEST_BINS)
|
||||
|
||||
$(UTILS): %: %.o
|
||||
|
||||
$(UTILS): version.o
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) $(MAKE_DEPS) -c -o $@ $<
|
||||
|
||||
%.lo: %.c
|
||||
$(CC) $(CFLAGS) $(MAKE_DEPS) -c -o $@ $<
|
||||
|
||||
%: %.o
|
||||
$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
|
||||
prereq: config.status
|
||||
|
||||
dahdi_tool: CFLAGS+=$(NEWT_INCLUDE)
|
||||
dahdi_tool: LIBS+=$(NEWT_LIB)
|
||||
|
||||
dahdi_speed: CFLAGS+=-O0
|
||||
|
||||
$(LTZ_A): $(LTZ_A_OBJS)
|
||||
ar rcs $@ $^
|
||||
ranlib $@
|
||||
|
||||
$(LTZ_SO): $(LTZ_SO_OBJS)
|
||||
$(CC) $(CFLAGS) -shared -Wl,-soname,$(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER) -o $@ $^ -lm
|
||||
|
||||
dahdi_cfg: $(LTZ_A)
|
||||
dahdi_cfg: LIBS+=-lm -lpthread
|
||||
dahdi_pcap:
|
||||
$(CC) $(CFLAGS) dahdi_pcap.c -lpcap -o $@ $<
|
||||
|
||||
|
||||
fxstest: $(LTZ_SO)
|
||||
fxstest: LIBS+=-lm
|
||||
fxotune: LIBS+=-lm
|
||||
|
||||
tonezones.txt: zonedata.c
|
||||
perl -ne 'next unless (/\.(country|description) = *"([^"]*)/); \
|
||||
print (($$1 eq "country")? "* $$2\t":"$$2\n");' $< \
|
||||
>$@
|
||||
|
||||
%.asciidoc: %.sample
|
||||
perl -n -e \
|
||||
'if (/^#($$|\s)(.*)/){ if (!$$in_doc){print "\n"}; $$in_doc=1; print "$$2\n" } else { if ($$in_doc){print "\n"}; $$in_doc=0; print " $$_" }' \
|
||||
$< \
|
||||
| perl -p -e 'if (/^ #?(\w+)=/ && ! exists $$cfgs{$$1}){my $$cfg = $$1; $$cfgs{$$cfg} = 1; s/^/\n[[cfg_$$cfg]]\n/}' >$@
|
||||
|
||||
docs: $(GENERATED_DOCS)
|
||||
|
||||
genconf_parameters.sample: xpp/genconf_parameters
|
||||
cp $< $@
|
||||
|
||||
README.html: README system.conf.asciidoc init.conf.asciidoc tonezones.txt \
|
||||
UPGRADE.txt genconf_parameters.asciidoc assigned-spans.conf.asciidoc \
|
||||
span-types.conf.asciidoc
|
||||
$(ASCIIDOC) -n -a toc -a toclevels=4 $<
|
||||
|
||||
README.Astribank.html: xpp/README.Astribank
|
||||
$(ASCIIDOC) -o $@ -n -a toc -a toclevels=4 $<
|
||||
|
||||
# on Debian: this requires the full groff, not just groff-base.
|
||||
%.8.html: %.8
|
||||
man -Thtml $^ >$@
|
||||
|
||||
htmlman: $(GROFF_HTML)
|
||||
|
||||
install: all install-programs
|
||||
@echo "###################################################"
|
||||
@echo "###"
|
||||
@echo "### DAHDI tools installed successfully."
|
||||
@echo "### If you have not done so before, install init scripts with:"
|
||||
@echo "###"
|
||||
@echo "### make config"
|
||||
@echo "###"
|
||||
@echo "###################################################"
|
||||
|
||||
install-programs: install-utils install-libs
|
||||
|
||||
install-utils: utils install-utils-subdirs
|
||||
ifneq (,$(BINS))
|
||||
install -d $(DESTDIR)$(BIN_DIR)
|
||||
install $(BINS) $(DESTDIR)$(BIN_DIR)/
|
||||
install -d $(DESTDIR)$(MAN_DIR)
|
||||
install -m 644 $(MAN_PAGES) $(DESTDIR)$(MAN_DIR)/
|
||||
endif
|
||||
ifeq (,$(wildcard $(DESTDIR)$(CONFIG_FILE)))
|
||||
$(INSTALL) -d $(DESTDIR)$(CONFIG_DIR)
|
||||
$(INSTALL) -m 644 system.conf.sample $(DESTDIR)$(CONFIG_FILE)
|
||||
endif
|
||||
install -d $(DESTDIR)$(DATA_DIR)
|
||||
tar cf - -C hotplug $(ASSIGNED_DATA_SCRIPTS) | tar xf - -C $(DESTDIR)$(DATA_DIR)/
|
||||
install $(ASSIGNED_UTILS) $(DESTDIR)/$(BIN_DIR)/
|
||||
install -m 644 $(ASSIGNED_CONF) $(DESTDIR)/$(CONFIG_DIR)/
|
||||
install -d $(DESTDIR)$(BASH_COMP_DIR)
|
||||
install -m 644 dahdi-bash-completion $(DESTDIR)$(BASH_COMP_FILE)
|
||||
|
||||
install-libs: libs
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)/$(LIB_DIR)
|
||||
$(INSTALL) -m 755 $(LTZ_A) $(DESTDIR)$(LIB_DIR)/
|
||||
$(INSTALL) -m 755 $(LTZ_SO) $(DESTDIR)$(LIB_DIR)/$(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER)
|
||||
ifeq (,$(DESTDIR))
|
||||
if [ `id -u` = 0 ]; then \
|
||||
/sbin/ldconfig || : ;\
|
||||
fi
|
||||
endif
|
||||
rm -f $(DESTDIR)$(LIB_DIR)/$(LTZ_SO)
|
||||
$(LN) -sf $(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER) \
|
||||
$(DESTDIR)$(LIB_DIR)/$(LTZ_SO).$(LTZ_SO_MAJOR_VER)
|
||||
$(LN) -sf $(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER) \
|
||||
$(DESTDIR)$(LIB_DIR)/$(LTZ_SO)
|
||||
# Overwrite the 1.0 links out there. dahdi-tools 2.0.0 installed
|
||||
# 1.0 links but dahdi-tools changed them to 2.0 in order to explicitly
|
||||
# break applications linked with zaptel. But, this also meant that
|
||||
# applications linked with libtonezone.so.1.0 broke when dahdi-tools
|
||||
# 2.1.0 was installed.
|
||||
$(LN) -sf $(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER) \
|
||||
$(DESTDIR)$(LIB_DIR)/$(LTZ_SO).1.0
|
||||
$(LN) -sf $(LTZ_SO).$(LTZ_SO_MAJOR_VER).$(LTZ_SO_MINOR_VER) \
|
||||
$(DESTDIR)$(LIB_DIR)/$(LTZ_SO).1
|
||||
ifneq (no,$(USE_SELINUX))
|
||||
ifeq (,$(DESTDIR))
|
||||
/sbin/restorecon -v $(DESTDIR)$(LIB_DIR)/$(LTZ_SO)
|
||||
endif
|
||||
endif
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)/$(INC_DIR)
|
||||
$(INSTALL) -m 644 tonezone.h $(DESTDIR)$(INC_DIR)/
|
||||
|
||||
install-utils-subdirs:
|
||||
@for dir in $(SUBDIRS_UTILS); do \
|
||||
$(MAKE) -C $$dir install; \
|
||||
done
|
||||
|
||||
install-tests: tests
|
||||
ifneq (,$(TEST_BINS))
|
||||
install -d $(DESTDIR)$(BIN_DIR)
|
||||
install $(TEST_BINS) $(DESTDIR)$(BIN_DIR)/
|
||||
endif
|
||||
|
||||
config:
|
||||
ifneq (,$(COPY_INITD))
|
||||
$(COPY_INITD)
|
||||
endif
|
||||
ifeq (,$(wildcard $(DESTDIR)$(RCCONF_FILE)))
|
||||
$(INSTALL) -D -m 644 init.conf.sample $(DESTDIR)$(RCCONF_FILE)
|
||||
endif
|
||||
ifeq (,$(wildcard $(DESTDIR)$(MODULES_FILE)))
|
||||
$(INSTALL) -D -m 644 modules.sample $(DESTDIR)$(MODULES_FILE)
|
||||
endif
|
||||
ifeq (,$(wildcard $(DESTDIR)$(GENCONF_FILE)))
|
||||
$(INSTALL) -D -m 644 xpp/genconf_parameters $(DESTDIR)$(GENCONF_FILE)
|
||||
endif
|
||||
ifeq (,$(wildcard $(DESTDIR)$(MODPROBE_FILE)))
|
||||
$(INSTALL) -D -m 644 modprobe.conf.sample $(DESTDIR)$(MODPROBE_FILE)
|
||||
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
|
||||
ifneq (,$(ADD_INITD))
|
||||
$(ADD_INITD)
|
||||
endif
|
||||
@echo "DAHDI has been configured."
|
||||
@echo ""
|
||||
@echo "List of detected DAHDI devices:"
|
||||
@echo ""
|
||||
@if [ `xpp/dahdi_hardware | tee /dev/stderr | wc -l` -eq 0 ]; then \
|
||||
echo "No hardware found"; \
|
||||
else \
|
||||
echo ""; \
|
||||
echo "run 'dahdi_genconf modules' to load support for only " ;\
|
||||
echo "the DAHDI hardware installed in this system. By "; \
|
||||
echo "default support for all DAHDI hardware is loaded at "; \
|
||||
echo "DAHDI start. "; \
|
||||
fi
|
||||
|
||||
update:
|
||||
@if [ -d .svn ]; then \
|
||||
echo "Updating from Subversion..." ; \
|
||||
svn update | tee update.out; \
|
||||
rm -f .version; \
|
||||
if [ `grep -c ^C update.out` -gt 0 ]; then \
|
||||
echo ; echo "The following files have conflicts:" ; \
|
||||
grep ^C update.out | cut -b4- ; \
|
||||
fi ; \
|
||||
rm -f update.out; \
|
||||
else \
|
||||
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
|
||||
rm -f $(LTZ_SO) $(LTZ_A) *.lo
|
||||
@for dir in $(SUBDIRS_UTILS_ALL); do \
|
||||
$(MAKE) -C $$dir clean; \
|
||||
done
|
||||
@for dir in $(SUBDIRS_UTILS); do \
|
||||
$(MAKE) -C $$dir clean; \
|
||||
done
|
||||
rm -f libtonezone*
|
||||
rm -f fxotune
|
||||
rm -f core
|
||||
rm -f dahdi_cfg-shared fxstest
|
||||
rm -rf $(GENERATED_DOCS) *.asciidoc tonezones.txt
|
||||
rm -f dahdi_pcap
|
||||
|
||||
distclean: dist-clean
|
||||
|
||||
dist-clean: clean
|
||||
rm -f makeopts
|
||||
rm -f config.log config.status
|
||||
rm -f .*.d
|
||||
|
||||
config.status: configure
|
||||
@CFLAGS="" ./configure
|
||||
@echo "****"
|
||||
@echo "**** The configure script was just executed, so 'make' needs to be"
|
||||
@echo "**** restarted."
|
||||
@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 dist
|
||||
|
||||
FORCE:
|
||||
|
||||
ifneq ($(wildcard .*.d),)
|
||||
include .*.d
|
||||
endif
|
||||
196
Makefile.am
Normal file
196
Makefile.am
Normal file
@@ -0,0 +1,196 @@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
LEGACY_MAKE = \
|
||||
$(MAKE) -f $(srcdir)/Makefile.legacy \
|
||||
top_srcdir=$(top_srcdir) \
|
||||
srcdir=$(srcdir)
|
||||
|
||||
CFLAGS = -g -Wall -O2 $(DAHDI_INCLUDE)
|
||||
if DAHDI_DEVMODE
|
||||
CFLAGS += \
|
||||
-Werror \
|
||||
-Wunused \
|
||||
-Wundef \
|
||||
$(DAHDI_DECLARATION_AFTER_STATEMENT) \
|
||||
-Wmissing-format-attribute \
|
||||
-Wformat-security \
|
||||
#-Wformat=2
|
||||
endif
|
||||
|
||||
SUBDIRS = xpp doc hotplug
|
||||
|
||||
if PPPD
|
||||
SUBDIRS += ppp
|
||||
endif
|
||||
|
||||
noinst_HEADERS = \
|
||||
bittest.h \
|
||||
dahdi_tools_version.h \
|
||||
fxotune.h \
|
||||
wavformat.h \
|
||||
#
|
||||
|
||||
sbin_PROGRAMS = \
|
||||
dahdi_test \
|
||||
dahdi_maint \
|
||||
dahdi_monitor \
|
||||
dahdi_cfg \
|
||||
dahdi_speed \
|
||||
dahdi_scan \
|
||||
fxotune
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
fxstest \
|
||||
patgen \
|
||||
pattest \
|
||||
patlooptest \
|
||||
dahdi_diag \
|
||||
timertest
|
||||
|
||||
dist_sbin_SCRIPTS = \
|
||||
dahdi_span_assignments \
|
||||
dahdi_waitfor_span_assignments \
|
||||
dahdi_span_types
|
||||
|
||||
if PBX_HDLC
|
||||
sbin_PROGRAMS += sethdlc
|
||||
noinst_PROGRAMS += hdlcstress hdlctest hdlcgen hdlcverify
|
||||
endif
|
||||
|
||||
# Libtool versioning for libtonezone:
|
||||
# Bump when interface changes
|
||||
LTZ_CURRENT = 2
|
||||
# Bump if interface change is backward compatible
|
||||
LTZ_AGE = 0
|
||||
# Bump if only implementation change
|
||||
LTZ_REVISION = 0
|
||||
|
||||
lib_LTLIBRARIES = libtonezone.la
|
||||
|
||||
libtonezone_la_SOURCES = \
|
||||
zonedata.c \
|
||||
tonezone.c \
|
||||
version.c
|
||||
dahdiinclude_HEADERS = tonezone.h
|
||||
libtonezone_la_CFLAGS = $(CFLAGS) -I$(srcdir) -DBUILDING_TONEZONE
|
||||
libtonezone_la_LDFLAGS = -version-info "$(LTZ_CURRENT):$(LTZ_REVISION):$(LTZ_AGE)"
|
||||
|
||||
if PBX_PCAP
|
||||
noinst_PROGRAMS += dahdi_pcap
|
||||
dahdi_pcap_LDADD = -lpcap
|
||||
endif
|
||||
|
||||
patlooptest_LDADD = libtonezone.la -lm
|
||||
fxstest_LDADD = libtonezone.la -lm
|
||||
fxotune_LDADD = -lm
|
||||
dahdi_speed_CFLAGS = -O2
|
||||
|
||||
dahdi_maint_SOURCES = dahdi_maint.c version.c
|
||||
|
||||
if PBX_NEWT
|
||||
sbin_PROGRAMS += dahdi_tool
|
||||
dahdi_tool_CFLAGS = $(CFLAGS) $(NEWT_INCLUDE)
|
||||
dahdi_tool_LDADD = $(NEWT_LIB)
|
||||
endif
|
||||
|
||||
dahdi_cfg_LDFLAGS = -lm -lpthread
|
||||
dahdi_cfg_LDADD = libtonezone.la
|
||||
|
||||
udevrulesdir = @udevrulesdir@
|
||||
udevrules_DATA = dahdi.rules
|
||||
|
||||
all-local:
|
||||
$(LEGACY_MAKE) all
|
||||
|
||||
clean-local:
|
||||
$(LEGACY_MAKE) clean
|
||||
|
||||
install-exec-hook:
|
||||
$(LEGACY_MAKE) install
|
||||
@echo "Compatibility symlinks (should be removed in the future)"
|
||||
ln -sf libtonezone.so.2.0.0 $(DESTDIR)$(libdir)/libtonezone.so.2.0
|
||||
|
||||
bashcompdir = $(sysconfdir)/bash_completion.d
|
||||
|
||||
install-data-hook:
|
||||
mkdir -p $(DESTDIR)$(bashcompdir)
|
||||
install -m 644 $(srcdir)/dahdi-bash-completion $(DESTDIR)$(bashcompdir)/dahdi
|
||||
|
||||
# Handle these files specially -- install them only with 'install-config'
|
||||
special_config_files = \
|
||||
init.conf.sample \
|
||||
blacklist.sample \
|
||||
modprobe.conf.sample \
|
||||
#
|
||||
|
||||
install-config:
|
||||
mkdir -p $(DESTDIR)$(dahdiconfdir)
|
||||
mkdir -p $(DESTDIR)$(sysconfdir)/modprobe.d
|
||||
install -m644 xpp/genconf_parameters $(DESTDIR)$(dahdiconfdir)/genconf_parameters
|
||||
install -m644 init.conf.sample $(DESTDIR)$(dahdiconfdir)/init.conf
|
||||
install -m644 blacklist.sample $(DESTDIR)$(sysconfdir)/modprobe.d/dahdi-blacklist.conf
|
||||
install -m644 modprobe.conf.sample $(DESTDIR)$(sysconfdir)/modprobe.d/dahdi.conf
|
||||
$(LEGACY_MAKE) config
|
||||
|
||||
dahdiconfdir = @sysconfdir@/dahdi
|
||||
dahdiconf_DATA = \
|
||||
system.conf.sample \
|
||||
assigned-spans.conf.sample \
|
||||
span-types.conf.sample \
|
||||
modules.sample \
|
||||
#
|
||||
|
||||
build_scripts = \
|
||||
build_tools/dahdi_svn_tarball \
|
||||
build_tools/dahdi_sysfs_copy \
|
||||
build_tools/dump_sys_state \
|
||||
build_tools/make_firmware_object.in \
|
||||
build_tools/make_tree \
|
||||
build_tools/make_version \
|
||||
build_tools/test_kernel_git \
|
||||
build_tools/uninstall-modules \
|
||||
#
|
||||
|
||||
.version:
|
||||
if ./build_tools/make_version . dahdi/tools > $@.tmp; then \
|
||||
mv "$@.tmp" "$@"; \
|
||||
fi
|
||||
|
||||
uninstall-hook:
|
||||
$(RM) $(DESTDIR)$(sysconfdir)/dahdi/span-types.conf.sample
|
||||
$(RM) $(DESTDIR)$(sysconfdir)/dahdi/assigned-spans.conf.sample
|
||||
$(RM) $(DESTDIR)$(sysconfdir)/dahdi/system.conf
|
||||
$(RM) $(DESTDIR)$(bashcompdir)/dahdi
|
||||
|
||||
docs:
|
||||
$(LEGACY_MAKE) $@
|
||||
|
||||
DISTCLEANFILES = makeopts config.log config.status .*.d
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
m4/libtool.m4 \
|
||||
m4/ltoptions.m4 \
|
||||
m4/ltsugar.m4 \
|
||||
m4/ltversion.m4 \
|
||||
m4/lt~obsolete.m4 \
|
||||
#
|
||||
|
||||
EXTRA_DIST = \
|
||||
.version \
|
||||
LICENSE \
|
||||
LICENSE.LGPL \
|
||||
UPGRADE.txt \
|
||||
bootstrap.sh \
|
||||
Makefile.legacy \
|
||||
dahdi.init \
|
||||
dahdi.xml \
|
||||
dahdi_pcap.c \
|
||||
ifup-hdlc \
|
||||
dahdi-bash-completion \
|
||||
$(special_config_files) \
|
||||
$(dahdiconf_DATA) \
|
||||
$(udevrules_DATA) \
|
||||
$(build_scripts) \
|
||||
#
|
||||
|
||||
.PHONY: docs config
|
||||
133
Makefile.legacy
Normal file
133
Makefile.legacy
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
# Makefile for DAHDI tools
|
||||
#
|
||||
# Copyright (C) 2001-2010 Digium, Inc.
|
||||
#
|
||||
#
|
||||
|
||||
ifeq ($(strip $(foreach var,clean,$(findstring $(var),$(MAKECMDGOALS)))),)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(foreach var,clean,$(findstring $(var),$(MAKECMDGOALS)))),)
|
||||
ifneq ($(wildcard makeopts),)
|
||||
include makeopts
|
||||
endif
|
||||
endif
|
||||
|
||||
CHKCONFIG := $(wildcard /sbin/chkconfig)
|
||||
UPDATE_RCD := $(wildcard /usr/sbin/update-rc.d)
|
||||
ifeq (,$(DESTDIR))
|
||||
ifneq (,$(CHKCONFIG))
|
||||
ADD_INITD := $(CHKCONFIG) --add dahdi
|
||||
else
|
||||
ifneq (,$(UPDATE_RCD))
|
||||
ADD_INITD := $(UPDATE_RCD) dahdi defaults 15 30
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
INITRD_DIR := $(firstword $(wildcard $(DESTDIR)/etc/rc.d/init.d $(DESTDIR)/etc/init.d))
|
||||
ifneq (,$(INITRD_DIR))
|
||||
INIT_TARGET := $(INITRD_DIR)/dahdi
|
||||
COPY_INITD := install -D dahdi.init $(INIT_TARGET)
|
||||
endif
|
||||
|
||||
NETSCR_DIR := $(firstword $(wildcard $(DESTDIR)/etc/sysconfig/network-scripts ))
|
||||
ifneq (,$(NETSCR_DIR))
|
||||
NETSCR_TARGET := $(NETSCR_DIR)/ifup-hdlc
|
||||
COPY_NETSCR := install -D ifup-hdlc $(NETSCR_TARGET)
|
||||
endif
|
||||
|
||||
# sbindir, libdir, includedir and mandir are defined in makeopts
|
||||
# (from configure).
|
||||
LIB_DIR:=$(libdir)
|
||||
|
||||
# All the man pages. Not just installed ones:
|
||||
GROFF_PAGES := $(wildcard doc/*.8 xpp/*.8)
|
||||
GROFF_HTML := $(GROFF_PAGES:%=%.html)
|
||||
|
||||
GENERATED_DOCS := $(GROFF_HTML) README.html README.Astribank.html
|
||||
|
||||
all:
|
||||
|
||||
tonezones.txt: zonedata.c
|
||||
perl -ne 'next unless (/\.(country|description) = *"([^"]*)/); \
|
||||
print (($$1 eq "country")? "* $$2\t":"$$2\n");' $< \
|
||||
>$@
|
||||
|
||||
%.asciidoc: %.sample
|
||||
perl -n -e \
|
||||
'if (/^#($$|\s)(.*)/){ if (!$$in_doc){print "\n"}; $$in_doc=1; print "$$2\n" } else { if ($$in_doc){print "\n"}; $$in_doc=0; print " $$_" }' \
|
||||
$< \
|
||||
| perl -p -e 'if (/^ #?(\w+)=/ && ! exists $$cfgs{$$1}){my $$cfg = $$1; $$cfgs{$$cfg} = 1; s/^/\n[[cfg_$$cfg]]\n/}' >$@
|
||||
|
||||
docs: $(GENERATED_DOCS)
|
||||
|
||||
genconf_parameters.sample: xpp/genconf_parameters
|
||||
cp $< $@
|
||||
|
||||
README.html: README system.conf.asciidoc init.conf.asciidoc tonezones.txt \
|
||||
UPGRADE.txt genconf_parameters.asciidoc assigned-spans.conf.asciidoc \
|
||||
span-types.conf.asciidoc
|
||||
$(ASCIIDOC) -n -a toc -a toclevels=4 $<
|
||||
|
||||
README.Astribank.html: xpp/README.Astribank
|
||||
$(ASCIIDOC) -o $@ -n -a toc -a toclevels=4 $<
|
||||
|
||||
# on Debian: this requires the full groff, not just groff-base.
|
||||
%.8.html: %.8
|
||||
man -Thtml $^ >$@
|
||||
|
||||
htmlman: $(GROFF_HTML)
|
||||
|
||||
install: all install-programs
|
||||
@echo "###################################################"
|
||||
@echo "###"
|
||||
@echo "### DAHDI tools installed successfully."
|
||||
@echo "### If you have not done so before, install init scripts with:"
|
||||
@echo "###"
|
||||
@echo "### make config"
|
||||
@echo "###"
|
||||
@echo "###################################################"
|
||||
|
||||
install-programs: install-libs
|
||||
|
||||
install-libs:
|
||||
ifneq (no,$(USE_SELINUX))
|
||||
ifeq (,$(DESTDIR))
|
||||
/sbin/restorecon -v $(DESTDIR)$(LIB_DIR)/$(LTZ_SO)
|
||||
endif
|
||||
endif
|
||||
|
||||
config:
|
||||
ifneq (,$(COPY_INITD))
|
||||
$(COPY_INITD)
|
||||
endif
|
||||
ifneq (,$(COPY_NETSCR))
|
||||
$(COPY_NETSCR)
|
||||
endif
|
||||
ifneq (,$(ADD_INITD))
|
||||
$(ADD_INITD)
|
||||
endif
|
||||
@echo "DAHDI has been configured."
|
||||
@echo ""
|
||||
@echo "List of detected DAHDI devices:"
|
||||
@echo ""
|
||||
@if [ `xpp/dahdi_hardware | tee /dev/stderr | wc -l` -eq 0 ]; then \
|
||||
echo "No hardware found"; \
|
||||
else \
|
||||
echo ""; \
|
||||
echo "run 'dahdi_genconf modules' to load support for only " ;\
|
||||
echo "the DAHDI hardware installed in this system. By "; \
|
||||
echo "default support for all DAHDI hardware is loaded at "; \
|
||||
echo "DAHDI start. "; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
rm -f *.o tzdriver
|
||||
rm -f core
|
||||
rm -rf $(GENERATED_DOCS) *.asciidoc tonezones.txt
|
||||
|
||||
.PHONY: clean all install devel data config install-programs install-libs
|
||||
|
||||
FORCE:
|
||||
60
README
60
README
@@ -15,8 +15,9 @@ dahdi-linux before building dahdi-tools.
|
||||
Build System
|
||||
~~~~~~~~~~~~
|
||||
GCC and friends. Generally you will need to install the package gcc.
|
||||
There may be cases where you will need a specific version of gcc to build
|
||||
kernel modules.
|
||||
|
||||
Autotools (autoconf, automake and libtool) are needed if you clone from
|
||||
Git.
|
||||
|
||||
|
||||
Extra Libraries
|
||||
@@ -24,20 +25,25 @@ Extra Libraries
|
||||
Some libraries are needed for extra utilities that are provided with
|
||||
DAHDI.
|
||||
|
||||
- libusb is needed for building fpga_load, needed for firmware loading of
|
||||
the Xorcom Astribank.
|
||||
- libusb is needed for building astribank_hexload, needed for firmware
|
||||
loading of the Xorcom Astribank.
|
||||
- libnewt is needed to build the optional but useful utility dahdi_tool.
|
||||
- libpcap is needed for building dahdi_pcap.
|
||||
- pppd is needed to build the dahdi pppd plugin.
|
||||
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
Note: If using `sudo` to build/install, you may need to add /sbin to your PATH.
|
||||
----------------------------------
|
||||
# Only if you cloned from git:
|
||||
autoreconf -i
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
# To install init scripts and config files:
|
||||
#make config
|
||||
# To install some extra configuration files:
|
||||
#make install-config
|
||||
----------------------------------
|
||||
|
||||
|
||||
@@ -49,18 +55,11 @@ There are some make targets that are provided to build or install just
|
||||
parts of DAHDI:
|
||||
|
||||
. Build targets:
|
||||
- make: Build DAHDI user-space programs and libraries. partial
|
||||
targets of it:
|
||||
* make 'utilname': builds 'utilname' alone (e.g: `make dahdi_diag`)
|
||||
* make utils: Build just the programs.
|
||||
* make libs: Build libtonezone.
|
||||
* make tests: Build testing binaries.
|
||||
- make: Build DAHDI user-space programs and libraries.
|
||||
- make docs: Generate some extra documentation files.
|
||||
. Install targets:
|
||||
- make install: Install everything. Sub-targets of it:
|
||||
* make install-utils: Installs most things.
|
||||
* make install-libs: Installs libtonezone.
|
||||
- make config: install configuration files (overriding existing ones).
|
||||
- make install-test: Install testing binaries.
|
||||
- make install: Install everything
|
||||
- make install-config: install configuration files
|
||||
|
||||
|
||||
Installation to a Subtree
|
||||
@@ -76,8 +75,8 @@ This can be useful for any partial install target from the list above.
|
||||
|
||||
Options For ./configure
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
The configure script executes various tests and based on them generates
|
||||
makeopts. You can pass it --with options and variable settings, for
|
||||
The configure script executes various tests and the build will depend on
|
||||
their result. You can pass it --with options and variable settings, for
|
||||
instance:
|
||||
|
||||
./configure --without-ncurses CC="gcc-4.10"
|
||||
@@ -117,6 +116,29 @@ The configuration file of the dahdi init.d script is
|
||||
/etc/dahdi/init.conf . That file is used to override defaults that are
|
||||
set at the beginning of the init.d script.
|
||||
|
||||
/etc/dahdi/assigned-spans.conf
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Assigns span number and initial channel number for spans in each device.
|
||||
Just like system.conf it may be generated with dahdi_genconf:
|
||||
|
||||
dahdi_span_assignments auto
|
||||
dahdi_genconf
|
||||
|
||||
It may also be edited manually to allow reserving span and channel
|
||||
numbers for specific devices.
|
||||
|
||||
/etc/dahdi/span-types.conf
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Theoretically, this file is similar to assigned-spans.conf. It allows
|
||||
setting the type (E1/T1) of a "PRI" span. This cannot be configured
|
||||
anywhere else: it needs to be done before the span is assigned as it
|
||||
changes the number of channels the span has.
|
||||
|
||||
In practice most systems don't mix E1 and T1 and thus this file will
|
||||
typically have at most a single wild-card line setting all cards to be
|
||||
either E1 or T1.
|
||||
|
||||
|
||||
Reference Configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Sample system.conf
|
||||
|
||||
114
autoconfig.h.in
114
autoconfig.h.in
@@ -1,114 +0,0 @@
|
||||
/* autoconfig.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if your system has the DAHDI headers. */
|
||||
#undef HAVE_DAHDI
|
||||
|
||||
/* Define if your system has the DAHDI23 headers. */
|
||||
#undef HAVE_DAHDI23
|
||||
|
||||
/* Define DAHDI23 headers version */
|
||||
#undef HAVE_DAHDI23_VERSION
|
||||
|
||||
/* Define DAHDI headers version */
|
||||
#undef HAVE_DAHDI_VERSION
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <linux/soundcard.h> header file. */
|
||||
#undef HAVE_LINUX_SOUNDCARD_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define this to indicate the ${NEWT_DESCRIP} library */
|
||||
#undef HAVE_NEWT
|
||||
|
||||
/* Define to indicate the ${NEWT_DESCRIP} library version */
|
||||
#undef HAVE_NEWT_VERSION
|
||||
|
||||
/* Define to 1 if you have the `semtimedop' function. */
|
||||
#undef HAVE_SEMTIMEDOP
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/soundcard.h> header file. */
|
||||
#undef HAVE_SYS_SOUNDCARD_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define this to indicate the ${USB_DESCRIP} library */
|
||||
#undef HAVE_USB
|
||||
|
||||
/* Define to indicate the ${USB_DESCRIP} library version */
|
||||
#undef HAVE_USB_VERSION
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
#undef _MINIX
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
#undef _POSIX_1_SOURCE
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
@@ -1,26 +0,0 @@
|
||||
#! /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'"
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
cat << END
|
||||
/*
|
||||
* version.c
|
||||
* Automatically generated
|
||||
*/
|
||||
|
||||
const char dahdi_tools_version[] = "DAHDI Tools Version - ${TOOLSVERSION}";
|
||||
|
||||
END
|
||||
1526
config.guess
vendored
1526
config.guess
vendored
File diff suppressed because it is too large
Load Diff
1658
config.sub
vendored
1658
config.sub
vendored
File diff suppressed because it is too large
Load Diff
129
configure.ac
129
configure.ac
@@ -2,29 +2,65 @@
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
m4_define([TOOLSVERSION],
|
||||
m4_define([short_version],
|
||||
m4_bpatsubst(m4_esyscmd([build_tools/make_version . dahdi/tools]),
|
||||
[\([0-9.]*\)\(\w\|\W\)*],
|
||||
[\1]))
|
||||
AC_INIT(dahdi, TOOLSVERSION, www.asterisk.org)
|
||||
AC_INIT([dahdi-tools], short_version, [www.asterisk.org])
|
||||
|
||||
# check existence of the package
|
||||
AC_CONFIG_SRCDIR([dahdi_cfg.c])
|
||||
AC_CONFIG_AUX_DIR([auxdir])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||
|
||||
build_version=`build_tools/make_version . dahdi/tools`
|
||||
AC_SUBST([BUILD_VERSION], "$build_version")
|
||||
|
||||
# enable nice build output on automake1.11
|
||||
m4_pattern_allow([AM_DEFAULT_VERBOSITY])
|
||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],[AM_DEFAULT_VERBOSITY=1])
|
||||
AM_CONDITIONAL([SILENT_RULES], [test "$AM_DEFAULT_VERBOSITY" = '0'])
|
||||
|
||||
AC_COPYRIGHT("dahdi-tools")
|
||||
AC_REVISION($Revision$)
|
||||
|
||||
ac_default_prefix=/usr
|
||||
if test ${sysconfdir} = '${prefix}/etc'; then
|
||||
sysconfdir=/etc
|
||||
fi
|
||||
if test ${mandir} = '${prefix}/man'; then
|
||||
mandir=/usr/share/man
|
||||
fi
|
||||
# Preserve old defaults if called without --prefix or --prefix=/usr
|
||||
# prefix=/usr
|
||||
# sysconfdir=/etc
|
||||
|
||||
if test ${localstatedir} = '${prefix}/var'; then
|
||||
localstatedir=/var
|
||||
ac_default_prefix=/usr
|
||||
if test "$prefix" = 'NONE' -o "$prefix" = '/usr'; then
|
||||
if test ${sysconfdir} = '${prefix}/etc'; then
|
||||
sysconfdir=/etc
|
||||
fi
|
||||
if test ${mandir} = '${prefix}/man'; then
|
||||
mandir=/usr/share/man
|
||||
fi
|
||||
|
||||
if test ${localstatedir} = '${prefix}/var'; then
|
||||
localstatedir=/var
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([dahditoolsdir], ['${datadir}/dahdi'])
|
||||
AC_SUBST([dahdiincludedir], ['${includedir}/dahdi'])
|
||||
|
||||
# Where to install udev rules?
|
||||
# * Our default is $sysconfdir/udev/rules.d:
|
||||
# - This preserve legacy location.
|
||||
# - It doesn't write into modern vendor supplied location (/lib/udev/rules.d)
|
||||
# - It doesn't break "make distcheck" (where everything should be relative
|
||||
# to prefix.
|
||||
# * Packagers are encouraged to use --udevrules=/lib/udev/rules.d
|
||||
#
|
||||
m4_define([_UDEV_RULES_DIR_DEFAULT], [${sysconfdir}/udev/rules.d])dnl
|
||||
AC_ARG_WITH(udevrules,
|
||||
[AS_HELP_STRING([--with-udevrules=PATH],
|
||||
[Location of UDEV rules @<:@default=]_UDEV_RULES_DIR_DEFAULT[@:>@])],
|
||||
[udevrulesdir=$withval],
|
||||
[udevrulesdir=]'_UDEV_RULES_DIR_DEFAULT'
|
||||
)
|
||||
AC_SUBST([udevrulesdir], "$udevrulesdir")
|
||||
|
||||
# specify output header file
|
||||
AC_CONFIG_HEADER(autoconfig.h)
|
||||
@@ -37,10 +73,15 @@ AC_CHECK_HEADERS([sys/soundcard.h linux/soundcard.h])
|
||||
AC_CHECK_TOOL([LD], [ld])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_AWK
|
||||
AC_PROG_LIBTOOL
|
||||
AST_CHECK_GNU_MAKE
|
||||
|
||||
test_obj=conftest.o
|
||||
@@ -70,6 +111,35 @@ AC_SUBST(DOWNLOAD)
|
||||
|
||||
AC_LANG(C)
|
||||
|
||||
AC_PATH_PROG([PERL], [perl])
|
||||
if test "$PERL" = ''; then
|
||||
AC_MSG_ERROR(perl is mandatory)
|
||||
fi
|
||||
# Where to install perl modules?
|
||||
# * Packagers are encouraged to use the result of "perl -V:vendorlib"
|
||||
# * Our default is:
|
||||
# - The result of "perl -V:sitelib" for our default prefix (/usr)
|
||||
# - The "$datadir/perl5" directory otherwise (e.g: during "make distcheck")
|
||||
#
|
||||
AC_MSG_CHECKING(for perl libdir)
|
||||
m4_define([_PERL_LIBDIR_DEFAULT], [${datadir}/perl5])dnl
|
||||
AC_ARG_WITH(perllib,
|
||||
[AS_HELP_STRING([--with-perllib=PATH],
|
||||
[Location of perl modules @<:@default=]_PERL_LIBDIR_DEFAULT[, or perl -V:sitelib@:>@])],
|
||||
[perllibdir=$withval],
|
||||
[
|
||||
if test "$prefix" = 'NONE' -o "$prefix" = '/usr'; then
|
||||
eval `"$PERL" -V:sitelib`
|
||||
perllibdir="$sitelib"
|
||||
else
|
||||
perllibdir='_PERL_LIBDIR_DEFAULT'
|
||||
fi
|
||||
]
|
||||
)
|
||||
AC_SUBST([perllibdir], "$perllibdir")
|
||||
AC_MSG_RESULT([$perllibdir])
|
||||
AM_CONDITIONAL([PERL], [test "$perllibdir" != ''])
|
||||
|
||||
AC_ARG_ENABLE(dev-mode,
|
||||
[ --enable-dev-mode Turn on developer mode],
|
||||
[case "${enableval}" in
|
||||
@@ -78,6 +148,7 @@ AC_ARG_ENABLE(dev-mode,
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-dev-mode) ;;
|
||||
esac])
|
||||
AC_SUBST(DAHDI_DEVMODE)
|
||||
AM_CONDITIONAL([DAHDI_DEVMODE], [test "$DAHDI_DEVMODE" = 'yes'])
|
||||
|
||||
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
|
||||
@@ -92,12 +163,22 @@ AC_SUBST(DAHDI_DECLARATION_AFTER_STATEMENT)
|
||||
AST_EXT_LIB_SETUP([DAHDI], [DAHDI], [dahdi])
|
||||
AST_EXT_LIB_SETUP([NEWT], [newt], [newt])
|
||||
AST_EXT_LIB_SETUP([USB], [usb], [usb])
|
||||
AST_EXT_LIB_SETUP([PCAP], [pcap], [pcap])
|
||||
|
||||
AST_C_DEFINE_CHECK([DAHDI], [DAHDI_CODE], [dahdi/user.h])
|
||||
DAHDI23_DIR="${DAHDI_DIR}"
|
||||
AST_C_DEFINE_CHECK([DAHDI23], [DAHDI_CONFIG_NTTE], [dahdi/user.h])
|
||||
AST_EXT_LIB_CHECK([NEWT], [newt], [newtBell], [newt.h])
|
||||
AST_EXT_LIB_CHECK([USB], [usb], [usb_init], [usb.h])
|
||||
AST_EXT_LIB_CHECK([PCAP], [pcap], [pcap_compile], [pcap.h])
|
||||
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $DAHDI_INCLUDE"
|
||||
AC_CHECK_DECL([DAHDI_TXMIRROR], [DAHDI_TXMIRROR=1], [DAHDI_TXMIRROR=0], [#include <dahdi/user.h>])
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
|
||||
AM_CONDITIONAL([PBX_NEWT], [test "$PBX_NEWT" = "1"])
|
||||
AM_CONDITIONAL([PBX_PCAP], [test "$PBX_PCAP" = "1" -a "$DAHDI_TXMIRROR" = "1"])
|
||||
|
||||
AC_CHECK_FUNCS([semtimedop])
|
||||
|
||||
@@ -138,6 +219,7 @@ if test "x${PBX_HDLC}" != "x1"; then
|
||||
fi
|
||||
|
||||
AC_SUBST(PBX_HDLC)
|
||||
AM_CONDITIONAL([PBX_HDLC], [test "$PBX_HDLC" = "1"])
|
||||
|
||||
AC_ARG_WITH(selinux,
|
||||
[AS_HELP_STRING([--with-selinux],
|
||||
@@ -193,6 +275,9 @@ case "$with_ppp" in
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(PPPD_VERSION)
|
||||
AM_CONDITIONAL([PPPD], [test "$PPPD_VERSION" != ''])
|
||||
|
||||
if test "x${PBX_DAHDI}" != "x1"; then
|
||||
AC_MSG_NOTICE([***])
|
||||
AC_MSG_NOTICE([*** Building this package requires DAHDI support. *** ])
|
||||
@@ -211,7 +296,27 @@ fi
|
||||
|
||||
AC_SUBST(PPPD_VERSION)
|
||||
|
||||
AC_CONFIG_FILES([makeopts])
|
||||
AM_CONDITIONAL([PBX_USB], [test "$PBX_USB" = "1"])
|
||||
|
||||
# Taken from octasic-helper
|
||||
AC_SUBST([USE_OCTASIC], [yes])
|
||||
AM_CONDITIONAL([USE_OCTASIC], [test "$USE_OCTASIC" = 'yes'])
|
||||
octasic_dir='$(top_srcdir)/xpp/oct612x'
|
||||
AC_SUBST([OCTASIC_CFLAGS], ["-I$octasic_dir/include -I$octasic_dir/octdeviceapi -I$octasic_dir/octdeviceapi/oct6100api"])
|
||||
|
||||
AC_SUBST([TOOLSVERSION], m4_esyscmd([build_tools/make_version . dahdi/tools]))
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
makeopts
|
||||
version.c
|
||||
Makefile
|
||||
doc/Makefile
|
||||
hotplug/Makefile
|
||||
ppp/Makefile
|
||||
xpp/Makefile
|
||||
xpp/oct612x/Makefile
|
||||
xpp/perl_modules/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
AC_MSG_NOTICE(*** dahdi-tools build successfully configured ***)
|
||||
|
||||
@@ -144,6 +144,14 @@ hotplug_exit_after_load() {
|
||||
|
||||
# Initialize the Xorcom Astribank (xpp/) using perl utiliites:
|
||||
xpp_startup() {
|
||||
if [ "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" = yes ]; then
|
||||
aas_param='/sys/module/dahdi/parameters/auto_assign_spans'
|
||||
aas=`cat "$aas_param" 2>/dev/null`
|
||||
if [ "$aas" = 0 ]; then
|
||||
echo 1>&2 "Don't wait for Astribanks (use Asterisk hotplug-support)"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
# do nothing if there are no astribank devices:
|
||||
if ! /usr/share/dahdi/waitfor_xpds; then return 0; fi
|
||||
|
||||
|
||||
11
dahdi_cfg.c
11
dahdi_cfg.c
@@ -109,7 +109,7 @@ static int fiftysixkhdlc[DAHDI_MAX_CHANNELS];
|
||||
|
||||
static int spans=0;
|
||||
|
||||
static int fo_real = 1;
|
||||
static int dry_run = 0;
|
||||
|
||||
static int verbose = 0;
|
||||
|
||||
@@ -826,8 +826,9 @@ static int apply_fiftysix(void)
|
||||
int chanfd;
|
||||
|
||||
for (x = 1; x < DAHDI_MAX_CHANNELS; x++) {
|
||||
if (skip_channel(x))
|
||||
if (skip_channel(x) || !cc[x].sigtype)
|
||||
continue;
|
||||
|
||||
chanfd = open("/dev/dahdi/channel", O_RDWR);
|
||||
if (chanfd == -1) {
|
||||
fprintf(stderr,
|
||||
@@ -1590,7 +1591,7 @@ int main(int argc, char *argv[])
|
||||
force++;
|
||||
break;
|
||||
case 't':
|
||||
fo_real = 0;
|
||||
dry_run = 1;
|
||||
break;
|
||||
case 's':
|
||||
stopmode = 1;
|
||||
@@ -1683,9 +1684,9 @@ finish:
|
||||
if (verbose) {
|
||||
printconfig(fd);
|
||||
}
|
||||
if (!fo_real)
|
||||
exit(0);
|
||||
|
||||
if (dry_run)
|
||||
exit(0);
|
||||
|
||||
if (debug & DEBUG_APPLY) {
|
||||
printf("About to open Master device\n");
|
||||
|
||||
19
doc/Makefile.am
Normal file
19
doc/Makefile.am
Normal file
@@ -0,0 +1,19 @@
|
||||
man_MANS = \
|
||||
dahdi_cfg.8 \
|
||||
dahdi_maint.8 \
|
||||
dahdi_monitor.8 \
|
||||
dahdi_scan.8 \
|
||||
dahdi_span_assignments.8 \
|
||||
dahdi_span_types.8 \
|
||||
dahdi_test.8 \
|
||||
dahdi_tool.8 \
|
||||
dahdi_waitfor_span_assignments.8 \
|
||||
fxotune.8
|
||||
|
||||
noinst_MANS = \
|
||||
dahdi_diag.8 \
|
||||
fxstest.8 \
|
||||
patgen.8 \
|
||||
pattest.8
|
||||
|
||||
EXTRA_DIST = $(man_MANS) $(noinst_MANS)
|
||||
@@ -40,7 +40,7 @@
|
||||
#define RANDOM "/dev/urandom" /* Not genuinely random */
|
||||
/* #define RANDOM "/dev/random" */ /* Quite genuinely random */
|
||||
|
||||
int myread(int fd, char *buf, int len)
|
||||
int myread(int fd, unsigned char *buf, int len)
|
||||
{
|
||||
int sofar;
|
||||
int res;
|
||||
|
||||
@@ -107,13 +107,12 @@ static struct fasthdlc_state fs;
|
||||
|
||||
void send_packet(unsigned char *buf, int len)
|
||||
{
|
||||
int res;
|
||||
int x;
|
||||
unsigned char outbuf[BLOCK_SIZE];
|
||||
int pos=0;
|
||||
unsigned int fcs = PPP_INITFCS;
|
||||
if (hdlcmode)
|
||||
res = write(fd, buf, len + 2);
|
||||
write(fd, buf, len + 2);
|
||||
else {
|
||||
for (x=0;x<len;x++) {
|
||||
if (fasthdlc_tx_load(&fs, buf[x]))
|
||||
|
||||
11
hotplug/Makefile.am
Normal file
11
hotplug/Makefile.am
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
nobase_dist_dahditools_SCRIPTS = \
|
||||
dahdi_handle_device \
|
||||
dahdi_span_config \
|
||||
dahdi_auto_assign_compat \
|
||||
span_config.d/10-dahdi-cfg \
|
||||
span_config.d/20-fxotune \
|
||||
span_config.d/50-asterisk \
|
||||
handle_device.d/10-span-types \
|
||||
handle_device.d/20-span-assignments \
|
||||
#
|
||||
@@ -17,6 +17,7 @@
|
||||
#XPP_FIRMWARE_DIR=/usr/share/dahdi
|
||||
#XPP_HOTPLUG_DISABLED=yes
|
||||
#XPP_HOTPLUG_DAHDI=yes
|
||||
#ASTERISK_SUPPORTS_DAHDI_HOTPLUG=yes
|
||||
|
||||
# Disable udev handling:
|
||||
#DAHDI_UDEV_DISABLE_DEVICES=yes
|
||||
|
||||
@@ -15,6 +15,8 @@ wct4xxp
|
||||
|
||||
# Digium TE435
|
||||
# Digium TE235
|
||||
# Digium TE436
|
||||
# Digium TE236
|
||||
wcte43x
|
||||
|
||||
# Digium TE120P: PCI single-port T1/E1/J1
|
||||
@@ -51,6 +53,10 @@ wcfxo
|
||||
wctdm
|
||||
|
||||
# Digium B410P: 4 NT/TE BRI ports
|
||||
# Digium B433P: 4 NT/TE BRI ports pci-e
|
||||
# Digium B434P: 4 NT/TE BRI ports
|
||||
# Digium B233P: 2 NT/TE BRI ports pci-e
|
||||
# Digium B234P: 2 NT/TE BRI ports
|
||||
wcb4xxp
|
||||
|
||||
# Digium TC400B: G729 / G723 Transcoding Engine
|
||||
|
||||
@@ -168,6 +168,7 @@ int main(int argc, char *argv[])
|
||||
int opt;
|
||||
int oldstyle_cmdline = 1;
|
||||
unsigned int event_count = 0;
|
||||
time_t start_time = 0;
|
||||
|
||||
/* Parse the command line arguments */
|
||||
while((opt = getopt(argc, argv, "b:s:t:r:v?h")) != -1) {
|
||||
@@ -218,8 +219,6 @@ int main(int argc, char *argv[])
|
||||
if (oldstyle_cmdline && argc > optind +1) {
|
||||
timeout = strtoul(argv[optind+1], NULL, 10);
|
||||
}
|
||||
|
||||
time_t start_time = 0;
|
||||
|
||||
fd = channel_open(device, &bs);
|
||||
if (fd < 0)
|
||||
|
||||
29
ppp/Makefile
29
ppp/Makefile
@@ -1,29 +0,0 @@
|
||||
#COPTS = -O2 -g
|
||||
|
||||
-include ../makeopts
|
||||
|
||||
CFLAGS += $(COPTS) -fPIC
|
||||
LDFLAGS += -shared
|
||||
|
||||
INCLUDE_DIR = $(includedir)/pppd
|
||||
|
||||
LIBDIR = $(libdir)/pppd/$(PPPD_VERSION)
|
||||
|
||||
PLUGINS := dahdi.so
|
||||
|
||||
all: $(PLUGINS)
|
||||
|
||||
%.so: %.c
|
||||
ifeq (,$(PPPD_VERSION))
|
||||
@echo "pppd version not found (in patchlevel.h)."
|
||||
@echo "Install ppp source/headers and/or ./configure --with-ppp=PATH."
|
||||
exit 1
|
||||
endif
|
||||
$(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS)
|
||||
|
||||
install: $(PLUGINS)
|
||||
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
|
||||
$(INSTALL) -m 0644 $? $(DESTDIR)$(LIBDIR)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.so *.a
|
||||
7
ppp/Makefile.am
Normal file
7
ppp/Makefile.am
Normal file
@@ -0,0 +1,7 @@
|
||||
plugindir = $(libdir)/pppd/$(PPPD_VERSION)
|
||||
plugin_LTLIBRARIES = dahdi.la
|
||||
|
||||
dahdi_la_CFLAGS = $(DAHDI_INCLUDE)
|
||||
dahdi_la_LDFLAGS = -module -avoid-version
|
||||
|
||||
CLEANFILES = dahdi.so
|
||||
17
tonezone.c
17
tonezone.c
@@ -89,18 +89,20 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
|
||||
int firstnobang = -1;
|
||||
int freq1, freq2, time;
|
||||
int modulate = 0;
|
||||
float db = 1.0;
|
||||
float gain;
|
||||
int used = 0;
|
||||
dup = strdup(t->data);
|
||||
s = strtok(dup, ",");
|
||||
while(s && strlen(s)) {
|
||||
/* Handle optional ! which signifies don't start here*/
|
||||
if (s[0] == '!')
|
||||
if (s[0] == '!') {
|
||||
s++;
|
||||
else if (firstnobang < 0) {
|
||||
} else if (firstnobang < 0) {
|
||||
PRINT_DEBUG("First no bang: %s\n", s);
|
||||
firstnobang = *count;
|
||||
}
|
||||
|
||||
if (sscanf(s, "%d+%d/%d", &freq1, &freq2, &time) == 3) {
|
||||
/* f1+f2/time format */
|
||||
PRINT_DEBUG("f1+f2/time format: %d, %d, %d\n", freq1, freq2, time);
|
||||
@@ -118,6 +120,15 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
|
||||
} else if (sscanf(s, "%d/%d", &freq1, &time) == 2) {
|
||||
PRINT_DEBUG("f1/time format: %d, %d\n", freq1, time);
|
||||
freq2 = 0;
|
||||
} else if (sscanf(s, "%d@/%d", &freq1, &time) == 2) {
|
||||
/* The "@" character has been added to enable an
|
||||
* approximately -20db tone generation of any frequency This has been done
|
||||
* primarily to generate the Australian congestion tone.
|
||||
* Example: "425/375,0/375,425@/375,0/375"
|
||||
*/
|
||||
PRINT_DEBUG("f1 reduced amplitude/time format: %d, %d\n", freq1,time);
|
||||
db = 0.3;
|
||||
freq2 = 0;
|
||||
} else if (sscanf(s, "%d", &freq1) == 1) {
|
||||
PRINT_DEBUG("f1 format: %d\n", freq1);
|
||||
firstnobang = *count;
|
||||
@@ -137,7 +148,7 @@ static int build_tone(void *data, size_t size, struct tone_zone_sound *t, int *c
|
||||
td = data;
|
||||
|
||||
/* Bring it down -8 dbm */
|
||||
gain = pow(10.0, (LEVEL - 3.14) / 20.0) * 65536.0 / 2.0;
|
||||
gain = db*(pow(10.0, (LEVEL - 3.14) / 20.0) * 65536.0 / 2.0);
|
||||
|
||||
td->fac1 = 2.0 * cos(2.0 * M_PI * (freq1 / 8000.0)) * 32768.0;
|
||||
td->init_v2_1 = sin(-4.0 * M_PI * (freq1 / 8000.0)) * gain;
|
||||
|
||||
6
version.c.in
Normal file
6
version.c.in
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* version.c.in
|
||||
*/
|
||||
|
||||
const char dahdi_tools_version[] = "DAHDI Tools Version - @TOOLSVERSION@";
|
||||
|
||||
202
xpp/Makefile
202
xpp/Makefile
@@ -1,202 +0,0 @@
|
||||
PEDANTIC = -ansi -pedantic -std=c99
|
||||
|
||||
INSTALL = install
|
||||
INSTALL_DATA = install -m 644
|
||||
|
||||
#
|
||||
# Ugly hack to find kernel directories before/after the split
|
||||
# to kernel/user-space.
|
||||
#
|
||||
# These variables should be passed to us. But until then...
|
||||
#
|
||||
DAHDI_TOOLSDIR ?= ..
|
||||
DAHDI_KERNELDIR =
|
||||
|
||||
-include $(DAHDI_TOOLSDIR)/makeopts
|
||||
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
|
||||
# In 1.4 those are provided by autoconf through makeopts
|
||||
prefix ?= /usr
|
||||
datadir ?= $(prefix)/share
|
||||
mandir ?= $(datadir)/man
|
||||
sysconfdir ?= $(prefix)/etc
|
||||
udevrulesdir ?= $(sysconfdir)/udev/rules.d
|
||||
INSTALL ?= install
|
||||
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
|
||||
SBINDIR = $(prefix)/sbin
|
||||
DATADIR = $(datadir)/dahdi
|
||||
MANDIR = $(mandir)/man8
|
||||
HOTPLUG_USB_DIR = $(sysconfdir)/hotplug/usb
|
||||
PERLLIBDIR := $(shell eval `perl -V:sitelib`; echo "$$sitelib")
|
||||
PERL_DIRS := $(shell cd perl_modules; find * -name '[A-Z]*' -type d| xargs)
|
||||
PERL_MODS_PAT := *.pm $(PERL_DIRS:%=%/*.pm)
|
||||
PERL_MODS := $(shell cd perl_modules; echo $(PERL_MODS_PAT))
|
||||
|
||||
# Variables that should be defined above, but need sane defaults:
|
||||
# FIXME: Are those values really sane?
|
||||
HOSTCC ?= $(CC)
|
||||
|
||||
USE_OCTASIC := yes
|
||||
OCTASIC_DIR := oct612x
|
||||
|
||||
ifneq (no,$(USE_OCTASIC))
|
||||
|
||||
OCT_OBJS = $(shell $(OCTASIC_DIR)/octasic-helper objects $(OCTASIC_DIR))
|
||||
OCT_SRCS = $(shell echo $(OCT_OBJS) | tr -s ' ' '\n' | sed 's/\.o$$/.c/g')
|
||||
OCT_HERE_OBJS = $(shell echo $(OCT_OBJS) | tr -s ' ' '\n' | sed 's,^.*/,,')
|
||||
OCT_CFLAGS = $(shell $(OCTASIC_DIR)/octasic-helper cflags $(OCTASIC_DIR))
|
||||
OCT_DEFINES = \
|
||||
-DPTR_TYPE=uint32_t \
|
||||
-DcOCT6100_INTERNAL_SUPER_ARRAY_SIZE=1024 \
|
||||
-DcOCT6100_MAX_ECHO_CHANNELS=672 \
|
||||
-DcOCT6100_MAX_MIXER_EVENTS=1344
|
||||
|
||||
ECHO_LOADER_SRC = echo_loader.c parse_span_specs.c
|
||||
ECHO_LOADER = $(ECHO_LOADER_SRC:.c=.o)
|
||||
endif
|
||||
|
||||
%.8: %
|
||||
pod2man --section 8 $^ > $@ || $(RM) $@
|
||||
PERL_SCRIPTS = \
|
||||
dahdi_registration \
|
||||
xpp_sync \
|
||||
lsdahdi \
|
||||
xpp_blink \
|
||||
dahdi_genconf \
|
||||
dahdi_hardware \
|
||||
twinstar \
|
||||
#
|
||||
|
||||
PERL_MANS = $(PERL_SCRIPTS:%=%.8)
|
||||
|
||||
# List all our sources
|
||||
XUSB_SRCS = xtalk/xusb.c xtalk/xlist.c xtalk/debug.c
|
||||
XTALK_SRCS = xtalk/xtalk.c
|
||||
MPPTALK_SRCS = mpptalk.c
|
||||
ASTRIBANK_SRCS = astribank_usb.c
|
||||
ABHEXLOAD_SRCS = astribank_hexload.c hexfile.c pic_loader.c
|
||||
ABTOOL_SRCS = astribank_tool.c
|
||||
ABALLOW_SRCS = astribank_allow.c astribank_license.c
|
||||
|
||||
SRCS = \
|
||||
$(XUSB_SRCS) \
|
||||
$(XTALK_SRCS) \
|
||||
$(MPPTALK_SRCS) \
|
||||
$(ASTRIBANK_SRCS) \
|
||||
$(ABHEXLOAD_SRCS) \
|
||||
$(ABTOOL_SRCS) \
|
||||
$(ABALLOW_SRCS) \
|
||||
$(ECHO_LOADER_SRC)
|
||||
|
||||
# Derive object files from source list
|
||||
XUSB_OBJS = $(XUSB_SRCS:.c=.o)
|
||||
XTALK_OBJS = $(XTALK_SRCS:.c=.o) $(XUSB_OBJS)
|
||||
MPPTALK_OBJS = $(MPPTALK_SRCS:.c=.o) $(XTALK_OBJS)
|
||||
ASTRIBANK_OBJS = $(ASTRIBANK_SRCS:.c=.o) $(MPPTALK_OBJS)
|
||||
ABHEXLOAD_OBJS = $(ABHEXLOAD_SRCS:.c=.o) $(ASTRIBANK_OBJS) $(ECHO_LOADER) $(OCT_HERE_OBJS)
|
||||
ABTOOL_OBJS = $(ABTOOL_SRCS:.c=.o) $(ASTRIBANK_OBJS)
|
||||
ABALLOW_OBJS = $(ABALLOW_SRCS:.c=.o) $(ASTRIBANK_OBJS)
|
||||
|
||||
TARGETS = .perlcheck astribank_is_starting
|
||||
PROG_INSTALL = astribank_is_starting
|
||||
MAN_INSTALL = $(PROG_INSTALL:%=%.8)
|
||||
ifeq (1,$(PBX_USB))
|
||||
TARGETS += \
|
||||
astribank_tool \
|
||||
astribank_hexload \
|
||||
astribank_allow \
|
||||
test_parse
|
||||
PROG_INSTALL += astribank_tool astribank_hexload astribank_allow
|
||||
endif
|
||||
ifneq (,$(PERLLIBDIR))
|
||||
PROG_INSTALL += $(PERL_SCRIPTS)
|
||||
TARGETS += $(PERL_MANS)
|
||||
endif
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
docs: $(PERL_MANS)
|
||||
|
||||
install: all
|
||||
$(INSTALL) -d $(DESTDIR)$(SBINDIR)
|
||||
$(INSTALL) $(PROG_INSTALL) $(DESTDIR)$(SBINDIR)/
|
||||
$(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)
|
||||
$(INSTALL_DATA) xpp_fxloader.usermap $(DESTDIR)$(HOTPLUG_USB_DIR)/
|
||||
# for backward compatibility and for hotplug users:
|
||||
ln -sf $(DATADIR)/xpp_fxloader $(DESTDIR)$(HOTPLUG_USB_DIR)/
|
||||
ifneq (,$(PERLLIBDIR))
|
||||
$(INSTALL) -d $(DESTDIR)$(PERLLIBDIR)
|
||||
for i in $(PERL_DIRS); \
|
||||
do \
|
||||
$(INSTALL) -d "$(DESTDIR)$(PERLLIBDIR)/$$i"; \
|
||||
done
|
||||
for i in $(PERL_MODS); \
|
||||
do \
|
||||
$(INSTALL_DATA) "perl_modules/$$i" "$(DESTDIR)$(PERLLIBDIR)/$$i"; \
|
||||
done
|
||||
endif
|
||||
|
||||
CFLAGS += -I. -Ixtalk -Wall -Werror
|
||||
|
||||
astribank_hexload: $(ABHEXLOAD_OBJS)
|
||||
astribank_hexload: LIBS+=$(EXTRA_LIBS) $(USB_LIB)
|
||||
astribank_hexload: CFLAGS+=$(OCT_CFLAGS)
|
||||
|
||||
astribank_tool: $(ABTOOL_OBJS)
|
||||
astribank_tool: LIBS+=$(EXTRA_LIBS) $(USB_LIB)
|
||||
|
||||
astribank_allow: $(ABALLOW_OBJS)
|
||||
astribank_allow: LIBS+=$(EXTRA_LIBS) $(USB_LIB)
|
||||
|
||||
astribank_is_starting: astribank_is_starting.o
|
||||
astribank_is_starting: LIBS+=$(EXTRA_LIBS)
|
||||
|
||||
hex2iic: hex2iic.o iic.o hexfile.o
|
||||
|
||||
test_parse: test_parse.o hexfile.o
|
||||
test_parse: LIBS+=$(EXTRA_LIBS) $(USB_LIB)
|
||||
|
||||
ifneq (no,$(USE_OCTASIC))
|
||||
.octasic.depend: $(OCTASIC_DIR)/octasic-helper Makefile ../config.status
|
||||
$(CC) -MM $(OCT_CFLAGS) \
|
||||
`$(OCTASIC_DIR)/octasic-helper objects | \
|
||||
tr -s ' ' '\n' | \
|
||||
sed -e 's,.*,$(OCTASIC_DIR)/&,' -e 's/\.o$$/.c/'` > $@
|
||||
|
||||
-include .octasic.depend
|
||||
|
||||
$(OCT_HERE_OBJS): Makefile
|
||||
$(CC) -c $(CFLAGS) $(OCT_CFLAGS) $(OCT_DEFINES) $(OCT_SRCS)
|
||||
|
||||
endif
|
||||
|
||||
|
||||
%: %.o
|
||||
$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
|
||||
.perlcheck: $(PERL_SCRIPTS)
|
||||
for i in $^; do perl -I./perl_modules -c $$i || exit 1; done
|
||||
touch $@
|
||||
|
||||
clean:
|
||||
$(RM) .depend .octasic.depend *.o xtalk/*.o $(OCT_HERE_OBJS) $(TARGETS)
|
||||
|
||||
.PHONY: depend
|
||||
ifeq (1,$(PBX_USB))
|
||||
depend: .depend
|
||||
.depend: *.c *.h xtalk/*.c
|
||||
@echo "Calculating dependencies"
|
||||
@if ! $(CC) $(CFLAGS) $(OCT_CFLAGS) -MM $(SRCS) > $@; then $(RM) $@; exit 1; fi
|
||||
|
||||
include .depend
|
||||
endif
|
||||
166
xpp/Makefile.am
Normal file
166
xpp/Makefile.am
Normal file
@@ -0,0 +1,166 @@
|
||||
|
||||
all-local: $(perl_checks)
|
||||
|
||||
SUBDIRS =
|
||||
|
||||
|
||||
# FIXME: try to improve code, so we can use $(PEDANTIC)
|
||||
#PEDANTIC = -ansi -pedantic -std=c99
|
||||
GLOBAL_CFLAGS = -I$(srcdir) -I$(srcdir)/xtalk $(PEDANTIC)
|
||||
|
||||
if DAHDI_DEVMODE
|
||||
GLOBAL_CFLAGS += \
|
||||
-Werror \
|
||||
-Wunused \
|
||||
-Wundef \
|
||||
-Wmissing-format-attribute \
|
||||
-Wformat-security \
|
||||
-Wformat=2
|
||||
endif
|
||||
|
||||
if PERL
|
||||
SUBDIRS += perl_modules
|
||||
|
||||
%.8: %
|
||||
@if file "$^" | cut -d: -f2 | grep -q perl; then \
|
||||
if pod2man --section 8 $^ > $@; then \
|
||||
echo " GEN $@"; \
|
||||
else \
|
||||
rm -f "$@"; \
|
||||
fi \
|
||||
fi
|
||||
|
||||
%.check: %
|
||||
@echo " CHECK $^"; \
|
||||
if ! perl -I./perl_modules -c $^ 2>/dev/null; then \
|
||||
perl -I./perl_modules -c $^; \
|
||||
fi
|
||||
@touch $@
|
||||
|
||||
perl_scripts = \
|
||||
dahdi_registration \
|
||||
xpp_sync \
|
||||
lsdahdi \
|
||||
xpp_blink \
|
||||
dahdi_genconf \
|
||||
dahdi_hardware \
|
||||
twinstar \
|
||||
#
|
||||
|
||||
perl_checks = $(perl_scripts:%=%.check)
|
||||
perl_mans = $(perl_scripts:%=%.8)
|
||||
|
||||
endif
|
||||
|
||||
dist_dahditools_SCRIPTS = xpp_fxloader astribank_hook waitfor_xpds
|
||||
udevrulesdir = @udevrulesdir@
|
||||
udevrules_DATA = xpp.rules
|
||||
|
||||
dist_sbin_SCRIPTS = $(perl_scripts)
|
||||
man_MANS = $(perl_mans)
|
||||
CLEANFILES = $(perl_checks) $(perl_mans)
|
||||
|
||||
if PBX_USB
|
||||
|
||||
SUBDIRS += oct612x
|
||||
|
||||
noinst_LTLIBRARIES = libastribank.la libecholoader.la libhexfile.la
|
||||
|
||||
libastribank_la_SOURCES = \
|
||||
astribank_usb.c \
|
||||
astribank_usb.h \
|
||||
mpptalk.c \
|
||||
mpptalk.h \
|
||||
mpp.h \
|
||||
mpptalk_defs.h \
|
||||
xtalk/debug.c \
|
||||
xtalk/debug.h \
|
||||
xtalk/xlist.c \
|
||||
xtalk/xlist.h \
|
||||
xtalk/xtalk.c \
|
||||
xtalk/xtalk.h \
|
||||
xtalk/xtalk_defs.h \
|
||||
xtalk/xusb.c \
|
||||
xtalk/xusb.h \
|
||||
#
|
||||
|
||||
libastribank_la_CFLAGS = $(GLOBAL_CFLAGS)
|
||||
|
||||
if USE_OCTASIC
|
||||
libecholoader_la_SOURCES = \
|
||||
parse_span_specs.c \
|
||||
parse_span_specs.h \
|
||||
echo_loader.c \
|
||||
echo_loader.h \
|
||||
#
|
||||
|
||||
libecholoader_la_CFLAGS = $(GLOBAL_CFLAGS) $(OCTASIC_CFLAGS)
|
||||
endif
|
||||
|
||||
libhexfile_la_SOURCES = \
|
||||
hexfile.c \
|
||||
hexfile.h \
|
||||
#
|
||||
|
||||
sbin_PROGRAMS = \
|
||||
astribank_tool \
|
||||
astribank_hexload \
|
||||
astribank_allow \
|
||||
astribank_is_starting
|
||||
|
||||
check_PROGRAMS = test_parse
|
||||
test_parse_LDADD = libhexfile.la
|
||||
|
||||
astribank_tool_SOURCES = astribank_tool.c
|
||||
astribank_tool_CFLAGS = $(GLOBAL_CFLAGS)
|
||||
astribank_tool_LDFLAGS = $(USB_LIB)
|
||||
astribank_tool_LDADD = libastribank.la
|
||||
|
||||
astribank_hexload_SOURCES = \
|
||||
astribank_hexload.c \
|
||||
pic_loader.c \
|
||||
pic_loader.h \
|
||||
#
|
||||
|
||||
astribank_hexload_CFLAGS = $(GLOBAL_CFLAGS) $(OCTASIC_CFLAGS)
|
||||
astribank_hexload_LDFLAGS = $(USB_LIB)
|
||||
astribank_hexload_LDADD = \
|
||||
libhexfile.la \
|
||||
libastribank.la \
|
||||
libecholoader.la \
|
||||
oct612x/liboctasic.la \
|
||||
#
|
||||
|
||||
astribank_allow_SOURCES = \
|
||||
astribank_allow.c \
|
||||
astribank_license.c \
|
||||
astribank_license.h \
|
||||
#
|
||||
|
||||
astribank_allow_CFLAGS = $(GLOBAL_CFLAGS)
|
||||
astribank_allow_LDFLAGS = $(USB_LIB)
|
||||
astribank_allow_LDADD = libastribank.la
|
||||
|
||||
man_pages = \
|
||||
astribank_tool.8 \
|
||||
astribank_hexload.8 \
|
||||
astribank_allow.8 \
|
||||
astribank_is_starting.8
|
||||
|
||||
man_MANS += $(man_pages)
|
||||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(man_pages) \
|
||||
$(udevrules_DATA) \
|
||||
README.Astribank \
|
||||
astribank_upgrade \
|
||||
dahdi.cgi \
|
||||
dahdi_drivers \
|
||||
genconf_parameters \
|
||||
twinstar_hook \
|
||||
twinstar_setup \
|
||||
xpp_modprobe \
|
||||
xpp_timing \
|
||||
#
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#define DBG_MASK 0x80
|
||||
#define MAX_HEX_LINES 64000
|
||||
#define HAVE_OCTASIC 1
|
||||
#define DEF_SPAN_SPEC_FORMAT "*:%c1" /* %c: 'E' or 'T' */
|
||||
|
||||
static char *progname;
|
||||
|
||||
@@ -83,7 +84,12 @@ int handle_hexline(struct astribank_device *astribank, struct hexline *hexline)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void print_parse_errors(int level, const char *msg, ...)
|
||||
|
||||
#ifdef __GNUC__
|
||||
static void print_parse_errors(int level, const char *msg, ...) __attribute__((format(printf,2,3)));
|
||||
#endif
|
||||
|
||||
static void print_parse_errors(int level, const char *msg, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
@@ -166,6 +172,7 @@ int main(int argc, char *argv[])
|
||||
#if HAVE_OCTASIC
|
||||
int opt_alaw = 0;
|
||||
const char *span_spec = NULL;
|
||||
char def_span_spec[sizeof(DEF_SPAN_SPEC_FORMAT)];
|
||||
#endif
|
||||
int opt_dest = 0;
|
||||
int opt_sum = 0;
|
||||
@@ -252,6 +259,13 @@ int main(int argc, char *argv[])
|
||||
ERR("Missing device path.\n");
|
||||
usage();
|
||||
}
|
||||
# ifdef HAVE_OCTASIC
|
||||
if (!span_spec) {
|
||||
snprintf(def_span_spec, sizeof(def_span_spec),
|
||||
DEF_SPAN_SPEC_FORMAT, opt_alaw? 'E' : 'T');
|
||||
span_spec = def_span_spec;
|
||||
}
|
||||
#endif
|
||||
if(opt_dest) {
|
||||
/*
|
||||
* MPP Interface
|
||||
|
||||
@@ -16,6 +16,8 @@ PATH="$dir:/usr/sbin:/sbin:/usr/bin:/bin"
|
||||
|
||||
set -e
|
||||
|
||||
LOCK="/var/lock/twinstar_startup"
|
||||
|
||||
[ -r /etc/dahdi/init.conf ] && . /etc/dahdi/init.conf
|
||||
|
||||
# For lab testing
|
||||
@@ -32,17 +34,38 @@ if [ "$XPP_HOTPLUG_DAHDI" != yes ]; then
|
||||
fi
|
||||
|
||||
export XPPORDER_CONF="$dahdi_conf/xpp_order"
|
||||
if [ ! -r "$XPPORDER_CONF" ]; then
|
||||
(
|
||||
echo "Skip($ACTION): No '$XPPORDER_CONF'"
|
||||
echo "Removing uneeded startup semaphore"
|
||||
astribank_is_starting -v -r 2>&1
|
||||
) 2>&1 | $LOGGER
|
||||
exit 0
|
||||
fi
|
||||
export DAHDI_CFG_CMD="dahdi_cfg -c $dahdi_conf/system.conf"
|
||||
export CALLED_FROM_ATRIBANK_HOOK=yes
|
||||
|
||||
can_full_async() {
|
||||
# Can we work aynchronously:
|
||||
# - Need modern Asterisk that accept hotplug DAHDI devices.
|
||||
# - Need DAHDI with "auto_assign_spans" == 0
|
||||
if [ "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" = yes ]; then
|
||||
aas_param='/sys/module/dahdi/parameters/auto_assign_spans'
|
||||
aas=`cat "$aas_param" 2>/dev/null`
|
||||
if [ "$aas" = 0 ]; then
|
||||
return 0
|
||||
else
|
||||
$LOGGER "No async operation ($aas_param != 0)"
|
||||
fi
|
||||
else
|
||||
$LOGGER "No async operation (ASTERISK_SUPPORTS_DAHDI_HOTPLUG!=yes)"
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
check_xpporder_conf() {
|
||||
if [ ! -r "$XPPORDER_CONF" ]; then
|
||||
(
|
||||
echo "Skip($ACTION): No '$XPPORDER_CONF'"
|
||||
echo "Removing uneeded startup semaphore"
|
||||
astribank_is_starting -v -r 2>&1
|
||||
) 2>&1 | $LOGGER
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
clean_lines() {
|
||||
sed -e 's/#.*//' -e 'y/\t/ /' -e 's/^ *//' -e 's/ *$//' -e '$s/$/\n/' "$XPPORDER_CONF"
|
||||
}
|
||||
@@ -64,10 +87,6 @@ matched_devices() {
|
||||
done
|
||||
}
|
||||
|
||||
NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
|
||||
NUM_GOOD=`matched_devices | wc -l`
|
||||
LOCK="/var/lock/twinstar_startup"
|
||||
|
||||
# Wait until udev finished processing our requests
|
||||
# so we know the device files were actually created
|
||||
# before trying dahdi_cfg et-al.
|
||||
@@ -77,10 +96,10 @@ wait_for_udev() {
|
||||
echo "Waiting for udev to settle down..."
|
||||
if [ -x /sbin/udevsettle ]; then
|
||||
# Old system, stand-alone udevsettle command
|
||||
time /sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
|
||||
/sbin/udevsettle --timeout="$UDEV_SETTLE_MAX_TIME"
|
||||
elif [ -x /sbin/udevadm ]; then
|
||||
# Assume modern system, udevadm has settle parameter
|
||||
if ! time /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
|
||||
if ! /sbin/udevadm settle --timeout="$UDEV_SETTLE_MAX_TIME"
|
||||
then
|
||||
echo "udevadm failed ($?)."
|
||||
echo "Fallback to sleep $UDEV_SETTLE_MAX_TIME seconds."
|
||||
@@ -110,13 +129,9 @@ start_dahdi() {
|
||||
rm -f "$LOCK"
|
||||
}
|
||||
|
||||
#echo "$0: $ACTION($XBUS_NAME)" | $LOGGER
|
||||
case "$ACTION" in
|
||||
add)
|
||||
;;
|
||||
remove)
|
||||
;;
|
||||
online)
|
||||
old_synchronous_start() {
|
||||
NUM_GOOD=`matched_devices | wc -l`
|
||||
NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
|
||||
echo "$ACTION($XBUS_NAME): $NUM_GOOD/$NUM_WANTED from $XPPORDER_CONF" | $LOGGER
|
||||
if [ "$NUM_GOOD" -eq "$NUM_WANTED" ]; then
|
||||
(
|
||||
@@ -142,8 +157,11 @@ online)
|
||||
fi
|
||||
) < /dev/null 2>&1 | $LOGGER &
|
||||
fi
|
||||
;;
|
||||
offline)
|
||||
}
|
||||
|
||||
old_synchronous_stop() {
|
||||
NUM_GOOD=`matched_devices | wc -l`
|
||||
NUM_WANTED=`clean_lines | sed '/^$/d' | wc -l`
|
||||
echo "$ACTION($XBUS_NAME): $NUM_GOOD/$NUM_WANTED from $XPPORDER_CONF" | $LOGGER
|
||||
if [ "$NUM_GOOD" -eq 0 ]; then
|
||||
echo "All Astribanks offline" | $LOGGER
|
||||
@@ -152,6 +170,59 @@ offline)
|
||||
fi
|
||||
rm -f "$LOCK"
|
||||
fi
|
||||
}
|
||||
|
||||
ab_list() {
|
||||
find /sys/devices -name idVendor 2>/dev/null | \
|
||||
xargs grep -H 'e4e4' 2>/dev/null | \
|
||||
sed -e 's/idVendor.*/idProduct/' | xargs grep -H '11[3456]' | \
|
||||
sed 's,/[^/]*$,,' || :
|
||||
}
|
||||
|
||||
tws_watchdog_enable() {
|
||||
devdir="/sys$DEVPATH"
|
||||
label=`cat "$devdir/label"`
|
||||
connector=`cat "$devdir/connector"`
|
||||
xbus=`echo "$devdir" | sed 's,.*/,,'`
|
||||
prefix="${xbus}: [${label}] @${connector}"
|
||||
TWS_NOAUTOJUMPFILE="$TWS_DIR/twinstar_no_autojump"
|
||||
if [ -e "$TWS_NOAUTOJUMPFILE" ]; then
|
||||
$LOGGER "$prefix: ignore wd (found $TWS_NOAUTOJUMPFILE)"
|
||||
else
|
||||
# Re-arm Astribank watchdog
|
||||
transportdir="$devdir/transport"
|
||||
busnum=`cat "$transportdir/busnum" 2>/dev/null || :`
|
||||
devnum=`cat "$transportdir/devnum" 2>/dev/null || :`
|
||||
devaddr=`printf "%03d/%03d" "$busnum" "$devnum"`
|
||||
$LOGGER "$prefix: enabling twinstar watchdog"
|
||||
astribank_tool -D "$devaddr" -w 1 2>&1 | $LOGGER
|
||||
fi
|
||||
}
|
||||
|
||||
#echo "$0: $ACTION($XBUS_NAME)" | $LOGGER
|
||||
case "$ACTION" in
|
||||
add)
|
||||
;;
|
||||
remove)
|
||||
ab=`ab_list | wc -l`
|
||||
if [ "$ab" -eq 0 ]; then
|
||||
$LOGGER "$prefix: No more Astribanks -- remove astribank_is_starting semaphore"
|
||||
astribank_is_starting -v -r 2>&1 | $LOGGER
|
||||
fi
|
||||
;;
|
||||
online)
|
||||
if can_full_async; then
|
||||
tws_watchdog_enable
|
||||
else
|
||||
old_synchronous_start
|
||||
fi
|
||||
;;
|
||||
offline)
|
||||
if can_full_async; then
|
||||
: # Nothing to do
|
||||
else
|
||||
old_synchronous_stop
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "$0: Unknown ACTION='$ACTION'" | $LOGGER
|
||||
|
||||
@@ -125,6 +125,8 @@ static int absem_detected(void)
|
||||
if((absem = absem_get(0)) < 0) {
|
||||
if(debug)
|
||||
fprintf(stderr, "%s: absem does not exist\n", progname);
|
||||
if(verbose)
|
||||
printf("No Astribanks are initializing\n");
|
||||
return absem;
|
||||
}
|
||||
if(debug)
|
||||
|
||||
@@ -72,7 +72,11 @@ struct hexdata {
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
typedef void (*parse_hexfile_report_func_t)(int level, const char *msg, ...);
|
||||
typedef void (*parse_hexfile_report_func_t)(int level, const char *msg, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__((format(printf,2,3)));
|
||||
#endif
|
||||
;
|
||||
|
||||
parse_hexfile_report_func_t parse_hexfile_set_reporting(parse_hexfile_report_func_t rf);
|
||||
void free_hexdata(struct hexdata *hexdata);
|
||||
|
||||
@@ -512,7 +512,7 @@ int mpp_send_seg(struct astribank_device *astribank, const uint8_t *data, uint16
|
||||
|
||||
assert(astribank != NULL);
|
||||
xtalk_dev = astribank->xtalk_dev;
|
||||
if(!astribank->burn_state == BURN_STATE_STARTED) {
|
||||
if(astribank->burn_state != BURN_STATE_STARTED) {
|
||||
ERR("Tried to send a segment while burn_state=%d\n",
|
||||
astribank->burn_state);
|
||||
return -EINVAL;
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
CFLAGS=-V3.4 -ffunction-sections -I/lib/modules/$(shell uname -r)/build/include -Iinclude -Ioctdeviceapi -Ioctdeviceapi/oct6100api -DGFP_ATOMIC=0 -Dkmalloc=calloc -Dkfree=free
|
||||
LDFLAGS=-V3.4 -Wl,-Map -Wl,test.map -Wl,--gc-sections
|
||||
|
||||
APIDIR=octdeviceapi/oct6100api/oct6100_api
|
||||
|
||||
OCTASIC_OBJS=$(APIDIR)/oct6100_adpcm_chan.o \
|
||||
$(APIDIR)/oct6100_channel.o \
|
||||
$(APIDIR)/oct6100_chip_open.o \
|
||||
$(APIDIR)/oct6100_chip_stats.o \
|
||||
$(APIDIR)/oct6100_conf_bridge.o \
|
||||
$(APIDIR)/oct6100_debug.o \
|
||||
$(APIDIR)/oct6100_events.o \
|
||||
$(APIDIR)/oct6100_interrupts.o \
|
||||
$(APIDIR)/oct6100_memory.o \
|
||||
$(APIDIR)/oct6100_miscellaneous.o \
|
||||
$(APIDIR)/oct6100_mixer.o \
|
||||
$(APIDIR)/oct6100_phasing_tsst.o \
|
||||
$(APIDIR)/oct6100_playout_buf.o \
|
||||
$(APIDIR)/oct6100_remote_debug.o \
|
||||
$(APIDIR)/oct6100_tlv.o \
|
||||
$(APIDIR)/oct6100_tone_detection.o \
|
||||
$(APIDIR)/oct6100_tsi_cnct.o \
|
||||
$(APIDIR)/oct6100_tsst.o \
|
||||
$(APIDIR)/oct6100_user.o \
|
||||
apilib/bt/octapi_bt0.o \
|
||||
apilib/largmath/octapi_largmath.o \
|
||||
apilib/llman/octapi_llman.o
|
||||
|
||||
|
||||
all: test
|
||||
|
||||
test.o: test.c
|
||||
|
||||
test: test.o $(OCTASIC_OBJS)
|
||||
|
||||
clean:
|
||||
rm -rf test test.o
|
||||
rm -rf $(OCTASIC_OBJS)
|
||||
116
xpp/oct612x/Makefile.am
Normal file
116
xpp/oct612x/Makefile.am
Normal file
@@ -0,0 +1,116 @@
|
||||
OCTASIC_DEFINES = \
|
||||
-DPTR_TYPE=uint32_t \
|
||||
-DcOCT6100_INTERNAL_SUPER_ARRAY_SIZE=1024 \
|
||||
-DcOCT6100_MAX_ECHO_CHANNELS=672 \
|
||||
-DcOCT6100_MAX_MIXER_EVENTS=1344
|
||||
|
||||
noinst_LTLIBRARIES = liboctasic.la
|
||||
|
||||
# Taken from octasic-helper
|
||||
liboctasic_la_SOURCES = \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_events.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c \
|
||||
apilib/bt/octapi_bt0.c \
|
||||
apilib/largmath/octapi_largmath.c \
|
||||
apilib/llman/octapi_llman.c
|
||||
|
||||
noinst_HEADERS = \
|
||||
apilib/bt/octapi_bt0_private.h \
|
||||
apilib/llman/octapi_llman_private.h \
|
||||
include/apilib/octapi_bt0.h \
|
||||
include/apilib/octapi_largmath.h \
|
||||
include/apilib/octapi_llman.h \
|
||||
include/digium_unused.h \
|
||||
include/oct6100api/oct6100_adpcm_chan_inst.h \
|
||||
include/oct6100api/oct6100_adpcm_chan_pub.h \
|
||||
include/oct6100api/oct6100_api.h \
|
||||
include/oct6100api/oct6100_api_inst.h \
|
||||
include/oct6100api/oct6100_apimi.h \
|
||||
include/oct6100api/oct6100_apiud.h \
|
||||
include/oct6100api/oct6100_channel_inst.h \
|
||||
include/oct6100api/oct6100_channel_pub.h \
|
||||
include/oct6100api/oct6100_chip_open_inst.h \
|
||||
include/oct6100api/oct6100_chip_open_pub.h \
|
||||
include/oct6100api/oct6100_chip_stats_inst.h \
|
||||
include/oct6100api/oct6100_chip_stats_pub.h \
|
||||
include/oct6100api/oct6100_conf_bridge_inst.h \
|
||||
include/oct6100api/oct6100_conf_bridge_pub.h \
|
||||
include/oct6100api/oct6100_debug_inst.h \
|
||||
include/oct6100api/oct6100_debug_pub.h \
|
||||
include/oct6100api/oct6100_defines.h \
|
||||
include/oct6100api/oct6100_errors.h \
|
||||
include/oct6100api/oct6100_events_inst.h \
|
||||
include/oct6100api/oct6100_events_pub.h \
|
||||
include/oct6100api/oct6100_interrupts_inst.h \
|
||||
include/oct6100api/oct6100_interrupts_pub.h \
|
||||
include/oct6100api/oct6100_mixer_inst.h \
|
||||
include/oct6100api/oct6100_mixer_pub.h \
|
||||
include/oct6100api/oct6100_phasing_tsst_inst.h \
|
||||
include/oct6100api/oct6100_phasing_tsst_pub.h \
|
||||
include/oct6100api/oct6100_playout_buf_inst.h \
|
||||
include/oct6100api/oct6100_playout_buf_pub.h \
|
||||
include/oct6100api/oct6100_remote_debug_inst.h \
|
||||
include/oct6100api/oct6100_remote_debug_pub.h \
|
||||
include/oct6100api/oct6100_tlv_inst.h \
|
||||
include/oct6100api/oct6100_tone_detection_inst.h \
|
||||
include/oct6100api/oct6100_tone_detection_pub.h \
|
||||
include/oct6100api/oct6100_tsi_cnct_inst.h \
|
||||
include/oct6100api/oct6100_tsi_cnct_pub.h \
|
||||
include/oct6100api/oct6100_tsst_inst.h \
|
||||
include/octdef.h \
|
||||
include/octmac.h \
|
||||
include/octosdependant.h \
|
||||
include/octrpc/oct6100_rpc_protocol.h \
|
||||
include/octrpc/rpc_protocol.h \
|
||||
include/octtype.h \
|
||||
include/octtypevx.h \
|
||||
include/octtypewin.h \
|
||||
#
|
||||
|
||||
liboctasic_la_CFLAGS = \
|
||||
$(OCTASIC_DEFINES) \
|
||||
$(OCTASIC_CFLAGS)
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
get_discards \
|
||||
octasic-helper \
|
||||
octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_api/oct6100_user.c \
|
||||
octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c \
|
||||
octdeviceapi/oct6100api/oct6100_channel_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_chip_open_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_chip_stats_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_debug_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_events_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_interrupts_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_memory_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_mixer_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_playout_buf_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_remote_debug_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_tlv_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_tone_detection_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_tsst_priv.h \
|
||||
octdeviceapi/oct6100api/oct6100_version.h \
|
||||
test.c \
|
||||
#
|
||||
@@ -105,9 +105,14 @@ my %pci_ids = (
|
||||
|
||||
# from wcte435/235
|
||||
'd161:800e' => { DRIVER => 'wcte43x', DESCRIPTION => 'Wildcard TE435/235' },
|
||||
'd161:8013' => { DRIVER => 'wcte43x', DESCRIPTION => 'Wildcard TE436/236' },
|
||||
|
||||
# from wcb4xxp
|
||||
'd161:b410' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'Digium Wildcard B410P' },
|
||||
'd161:8014' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'Digium Wildcard B433' },
|
||||
'd161:8015' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'Digium Wildcard B434' },
|
||||
'd161:8016' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'Digium Wildcard B233' },
|
||||
'd161:8017' => { DRIVER => 'wcb4xxp', DESCRIPTION => 'Digium Wildcard B234' },
|
||||
|
||||
# from tor2
|
||||
'10b5:9030' => { DRIVER => 'tor2', DESCRIPTION => 'PLX 9030' },
|
||||
|
||||
27
xpp/perl_modules/Makefile.am
Normal file
27
xpp/perl_modules/Makefile.am
Normal file
@@ -0,0 +1,27 @@
|
||||
perllibdir = @perllibdir@
|
||||
nobase_perllib_DATA = \
|
||||
Dahdi.pm \
|
||||
Dahdi/Hardware.pm \
|
||||
Dahdi/Xpp/Line.pm \
|
||||
Dahdi/Xpp/Xbus.pm \
|
||||
Dahdi/Xpp/Xpd.pm \
|
||||
Dahdi/Xpp/Mpp.pm \
|
||||
Dahdi/Span.pm \
|
||||
Dahdi/Utils.pm \
|
||||
Dahdi/Chans.pm \
|
||||
Dahdi/Xpp.pm \
|
||||
Dahdi/Config/Params.pm \
|
||||
Dahdi/Config/Gen/Xpporder.pm \
|
||||
Dahdi/Config/Gen/Spantypes.pm \
|
||||
Dahdi/Config/Gen/Modules.pm \
|
||||
Dahdi/Config/Gen/Users.pm \
|
||||
Dahdi/Config/Gen/Freepbxdb.pm \
|
||||
Dahdi/Config/Gen/Unicall.pm \
|
||||
Dahdi/Config/Gen/Chandahdi.pm \
|
||||
Dahdi/Config/Gen/Assignedspans.pm \
|
||||
Dahdi/Config/Gen/System.pm \
|
||||
Dahdi/Config/Gen.pm \
|
||||
Dahdi/Hardware/USB.pm \
|
||||
Dahdi/Hardware/PCI.pm
|
||||
|
||||
EXTRA_DIST = $(nobase_perllib_DATA)
|
||||
@@ -52,7 +52,7 @@ ab_serial_nums() {
|
||||
}
|
||||
|
||||
detected_serial_nums() {
|
||||
for i in /sys/bus/astribanks/devices/*/transport; do
|
||||
for i in `ls -1d /sys/bus/astribanks/devices/*/transport 2>/dev/null`; do
|
||||
s=`cat "$i/serial" 2>/dev/null` || :
|
||||
if [ "$s" = '' ]; then
|
||||
echo "NO-SERIAL"
|
||||
@@ -89,19 +89,22 @@ waitfor_ab_initialization() {
|
||||
done
|
||||
}
|
||||
|
||||
clean_lines() {
|
||||
sed -e 's/#.*//' -e 'y/\t/ /' -e 's/^ *//' -e 's/ *$//' -e '$s/$/\n/' "$1"
|
||||
}
|
||||
|
||||
# Any hardware?
|
||||
if ! dahdi_hardware="`which dahdi_hardware 2>/dev/null`"; then
|
||||
echo >&2 "$0: Missing dahdi_hardware"
|
||||
exit 0
|
||||
fi
|
||||
if ! astribank_is_starting="`which astribank_is_starting 2>/dev/null`"; then
|
||||
echo >&2 "$0: Missing astribank_is_starting"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Just make sure
|
||||
if [ "`$dahdi_hardware | grep xpp_usb`" != "" ]; then
|
||||
astribank_is_starting -v -a
|
||||
fi
|
||||
if ! astribank_is_starting; then
|
||||
# No Astribanks ever seen -- nothing to do
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -149,13 +152,22 @@ cat /sys/bus/astribanks/devices/*/waitfor_xpds 2> /dev/null || :
|
||||
|
||||
# Wait for device to stabilize and XPD's to finish initalizations
|
||||
echo 1>&2 "Astribanks initializing spans"
|
||||
if [ "$XPP_HOTPLUG_DAHDI" = yes ]; then
|
||||
if [ "$CALLED_FROM_ATRIBANK_HOOK" = '' ]; then
|
||||
# Now we can wait until the hotplug run would remove the semaphore
|
||||
echo -n 1>&2 "Other DAHDI initializations... "
|
||||
astribank_is_starting -v -w 1>&2
|
||||
if [ "$XPP_HOTPLUG_DAHDI" = yes -a "$CALLED_FROM_ATRIBANK_HOOK" = '' -a \
|
||||
"$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" != 'yes' ]; then
|
||||
if [ ! -f /etc/dahdi/xpp_order ]; then
|
||||
echo 1>&2 "WARNING: No ASTERISK_SUPPORTS_DAHDI_HOTPLUG" \
|
||||
" and no /etc/dahdi/xpp_order"
|
||||
else
|
||||
count=`clean_lines /etc/dahdi/xpp_order | wc -l`
|
||||
if [ "$count" -le 0 ]; then
|
||||
echo 1>&2 "WARNING: No ASTERISK_SUPPORTS_DAHDI_HOTPLUG" \
|
||||
" and empty /etc/dahdi/xpp_order"
|
||||
else
|
||||
# Now we can wait until the hotplug run would remove the semaphore
|
||||
echo -n 1>&2 "Other DAHDI initializations... "
|
||||
astribank_is_starting -v -w 1>&2
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# Non-hotplug -- Sequential initialization, remove semaphore
|
||||
astribank_is_starting -v -r 1>&2
|
||||
fi
|
||||
# All Astribanks initialized -- remove semaphore
|
||||
astribank_is_starting -v -r 1>&2
|
||||
|
||||
@@ -319,22 +319,23 @@ load_fw_device() {
|
||||
if [ "$pri_spec_wildcard" != '' ]; then
|
||||
debug "ECHO($dev_short): Found definitions for wildcard -- $pri_spec_wildcard"
|
||||
fi
|
||||
pri_spec=`echo "$pri_spec_wildcard $pri_spec" | tr -s ' \t\n' ','`
|
||||
if [ "$pri_spec" != '' ]; then
|
||||
pri_spec_params=""
|
||||
if [ "$pri_spec$pri_spec_wildcard" != '' ]; then
|
||||
pri_spec=`echo "$pri_spec_wildcard $pri_spec" | tr -s ' \t\n' ','`
|
||||
pri_spec_params="-S $pri_spec"
|
||||
debug "ECHO($dev_short): pri_spec_params='$pri_spec_params'"
|
||||
fi
|
||||
fi
|
||||
# Fallback to legacy xpp.conf
|
||||
default_pri_protocol=''
|
||||
default_law=''
|
||||
law=''
|
||||
if [ -r "$XPP_CONFIG" ]; then
|
||||
default_pri_protocol=`awk '/^pri_protocol/ {print $2}' $XPP_CONFIG`
|
||||
if [ "$default_pri_protocol" != '' ]; then
|
||||
debug "ECHO($dev_short): Found legacy xpp.conf setting -- $default_pri_protocol"
|
||||
# "E1" or empty (implied E1) means aLaw
|
||||
if [ "$default_pri_protocol" != 'T1' ]; then
|
||||
default_law='-A'
|
||||
law='-A'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -343,7 +344,7 @@ load_fw_device() {
|
||||
caps_num=`echo "$abtool_output" | grep 'ECHO ports' | sed -e 's/.*: *//'`
|
||||
debug "ECHO($dev_short): $caps_num channels allowed."
|
||||
if [ "$caps_num" != '0' ]; then
|
||||
run_astribank_hexload -D "$dev" -O $default_law $pri_spec_params "$echo_file"
|
||||
run_astribank_hexload -D "$dev" -O $law $pri_spec_params "$echo_file"
|
||||
else
|
||||
echo "WARNING: ECHO burning was skipped (no capabilities)"
|
||||
fi
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
|
||||
xpp_fxloader 0x0003 0x04b4 0x8613 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1131 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1140 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1141 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1150 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1151 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1160 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
xpp_fxloader 0x0003 0xe4e4 0x1161 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x0
|
||||
@@ -67,6 +67,8 @@ static void xusb_init();
|
||||
* variable of that name. Existing options:
|
||||
*
|
||||
* - "use-clear-halt" -- force USB "clear_halt" operation during
|
||||
* device initialization (this is the default)
|
||||
* - "no-use-clear-halt" -- force no USB "clear_halt" operation during
|
||||
* device initialization
|
||||
* - "no-lock" -- prevent using global sempahore to serialize libusb
|
||||
* initialization. Previously done via "XUSB_NOLOCK"
|
||||
@@ -888,7 +890,7 @@ static void xusb_init()
|
||||
}
|
||||
|
||||
/* XTALK option handling */
|
||||
static int use_clear_halt = 0;
|
||||
static int use_clear_halt = 1;
|
||||
static int libusb_no_lock = 0;
|
||||
|
||||
static int xtalk_one_option(const char *option_string)
|
||||
@@ -897,6 +899,10 @@ static int xtalk_one_option(const char *option_string)
|
||||
use_clear_halt = 1;
|
||||
return 0;
|
||||
}
|
||||
if (strcmp(option_string, "no-use-clear-halt") == 0) {
|
||||
use_clear_halt = 0;
|
||||
return 0;
|
||||
}
|
||||
if (strcmp(option_string, "no-lock") == 0) {
|
||||
libusb_no_lock = 1;
|
||||
return 0;
|
||||
|
||||
21
zonedata.c
21
zonedata.c
@@ -59,11 +59,18 @@ struct tone_zone builtin_zones[] =
|
||||
.description = "Australia",
|
||||
.ringcadence = { 400, 200, 400, 2000 },
|
||||
.tones = {
|
||||
{ DAHDI_TONE_DIALTONE, "413+438" },
|
||||
|
||||
{ DAHDI_TONE_DIALTONE, "415+440" },
|
||||
{ DAHDI_TONE_BUSY, "425/375,0/375" },
|
||||
{ DAHDI_TONE_RINGTONE, "413+438/400,0/200,413+438/400,0/2000" },
|
||||
/* XXX Congestion: Should reduce by 10 db every other cadence XXX */
|
||||
{ DAHDI_TONE_CONGESTION, "425/375,0/375,420/375,0/375" },
|
||||
/* The Australian congestion tone is 425Hz, 375ms On, 375ms Off, with the
|
||||
* second cadence being half the amplitude of the first; so the first cadence
|
||||
* is approximately -10dB with the second one being -20dB. Using the update
|
||||
* ToneZone.c file, this can be accomplished by adding the "@" symbol in front
|
||||
* of the frequency to reduce amplification, as in the following entry for
|
||||
* Congestion:
|
||||
*/
|
||||
{ DAHDI_TONE_CONGESTION, "425/375,0/375,425@/375,0/375" },
|
||||
{ DAHDI_TONE_CALLWAIT, "425/100,0/200,425/200,0/4400" },
|
||||
{ DAHDI_TONE_DIALRECALL, "413+428" },
|
||||
{ DAHDI_TONE_RECORDTONE, "!425/1000,!0/15000,425/360,0/15000" },
|
||||
@@ -928,6 +935,8 @@ struct tone_zone builtin_zones[] =
|
||||
{ DAHDI_TONE_RECORDTONE, "1400/400,0/15000" },
|
||||
{ DAHDI_TONE_INFO, "950/330,1440/330,1800/330,0/1000" },
|
||||
{ DAHDI_TONE_STUTTER, "!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425" },
|
||||
/* DIALRECALL - not specified */
|
||||
{ DAHDI_TONE_DIALRECALL, "!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" },
|
||||
},
|
||||
.dtmf_high_level = -10,
|
||||
.dtmf_low_level = -10,
|
||||
@@ -948,6 +957,8 @@ struct tone_zone builtin_zones[] =
|
||||
/* This should actually be 950+1400+1800, but we only support 2 tones at a time */
|
||||
{ DAHDI_TONE_INFO, "!950+1400/300,!0/1000,!950+1400/300,!0/1000,!950+1400/1000,0" },
|
||||
{ DAHDI_TONE_STUTTER, "!450/100,!0/100,!450/100,!0/100,!450/100,!0/100,!450/100,!0/100,!450/100,!0/100,!450/100,!0/100,450" },
|
||||
/* DIALRECALL - not specified */
|
||||
{ DAHDI_TONE_DIALRECALL, "!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" },
|
||||
},
|
||||
.dtmf_high_level = -10,
|
||||
.dtmf_low_level = -10,
|
||||
@@ -996,6 +1007,8 @@ struct tone_zone builtin_zones[] =
|
||||
{ DAHDI_TONE_INFO, "950/333,1400/333,1800/333,0/1000" },
|
||||
/* STUTTER TONE - not specified */
|
||||
{ DAHDI_TONE_STUTTER, "!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425" },
|
||||
/* DIALRECALL - not specified */
|
||||
{ DAHDI_TONE_DIALRECALL, "!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" },
|
||||
},
|
||||
.dtmf_high_level = -10,
|
||||
.dtmf_low_level = -10,
|
||||
@@ -1044,6 +1057,8 @@ struct tone_zone builtin_zones[] =
|
||||
{ DAHDI_TONE_INFO, "950/330,1450/330,1850/330,0/1000" },
|
||||
/* STUTTER TONE */
|
||||
{ DAHDI_TONE_STUTTER, "380+420" },
|
||||
/* DIALRECALL - not specified */
|
||||
{ DAHDI_TONE_DIALRECALL, "!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440" },
|
||||
},
|
||||
.dtmf_high_level = -10,
|
||||
.dtmf_low_level = -10,
|
||||
|
||||
Reference in New Issue
Block a user