wanpipe-3.5.16.tgz
This commit is contained in:
parent
ada29bf89d
commit
09cf1f5b27
|
@ -1 +1 @@
|
|||
wanpipe-3.5.15
|
||||
wanpipe-3.5.16
|
||||
|
|
|
@ -8,7 +8,25 @@ Copyright (c) 1995-2010 Sangoma Technologies Inc.
|
|||
For more info visit: http://wiki.sangoma.com
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
|
||||
* Fri Sep 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.16
|
||||
===================================================================
|
||||
|
||||
- Dahdi 2.4 Support
|
||||
- Fixed BRI B500/B700 hwec enable on call start caused in 3.5.12 release.
|
||||
- Bug fix in voice+data mixed mode where dchan could get stuck due to
|
||||
dma overruns.
|
||||
- Bug fix in tdmapi where excessive memory was allocated on pre-allocation buffers.
|
||||
- Bug fix tdmapi defaults to 20ms chunk size instead of 10ms
|
||||
- Bug fix broken support for A101/2 legacy EOL cards.
|
||||
- New XEN Support
|
||||
TDM Voice will now work properly on xen virtualized machines
|
||||
- Fix for 64bit 8gig issues
|
||||
- New rpmbuld spec files.
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz --define 'with_dahdi 1' --define 'dahdi_dir /usr/src/dahdi'
|
||||
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.15
|
||||
===================================================================
|
||||
|
||||
- Fixed B600 and B601 warning messages introduced in 3.5.14
|
||||
|
|
53
Makefile
53
Makefile
|
@ -47,8 +47,8 @@ ifndef KINSTDIR
|
|||
KINSTDIR=$(KMOD)/kernel
|
||||
endif
|
||||
|
||||
ifndef ARCH
|
||||
ARCH=$(shell uname -m)
|
||||
ifndef WARCH
|
||||
WARCH=$(shell uname -m)
|
||||
endif
|
||||
ifndef ASTDIR
|
||||
ASTDIR=/usr/src/asterisk
|
||||
|
@ -109,13 +109,14 @@ PRODUCT_DEFINES+= -DCONFIG_PRODUCT_WANPIPE_AFT_B601 -DCONFIG_PRODUCT_WANPIPE_AFT
|
|||
|
||||
EXTRA_CFLAGS += $(EXTRA_FLAGS) $(PRODUCT_DEFINES)
|
||||
EXTRA_UTIL_FLAGS += $(PRODUCT_DEFINES)
|
||||
DAHDI_CFLAGS=
|
||||
|
||||
|
||||
#Check if zaptel exists
|
||||
ifneq (,$(wildcard $(ZAPDIR)/zaptel.h))
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLAGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
DAHDI_CFLAGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
ZAP_PROT=TDM
|
||||
PROTS=DEF-TDM
|
||||
|
@ -123,7 +124,7 @@ else
|
|||
ifneq (,$(wildcard $(ZAPDIR)/kernel/zaptel.h))
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLAGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE -I$(ZAPDIR)/kernel
|
||||
DHADI_CFLAGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE -I$(ZAPDIR)/kernel
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
ZAP_PROT=TDM
|
||||
PROTS=DEF-TDM
|
||||
|
@ -131,7 +132,7 @@ else
|
|||
ifneq (,$(wildcard $(ZAPDIR)/include/dahdi/kernel.h))
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLAGS+= -DSTANDALONE_ZAPATA -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL -DDAHDI_ISSUES -DBUILDING_TONEZONE -I$(ZAPDIR)/include -I$(ZAPDIR)/include/dahdi -I$(ZAPDIR)/drivers/dahdi
|
||||
DAHDI_CFLAGS+= -DSTANDALONE_ZAPATA -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL -DDAHDI_ISSUES -DBUILDING_TONEZONE -I$(ZAPDIR)/include -I$(ZAPDIR)/include/dahdi -I$(ZAPDIR)/drivers/dahdi
|
||||
ifneq (,$(wildcard $(ZAPDIR)/drivers/dahdi/Makefile))
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)/drivers/dahdi/
|
||||
endif
|
||||
|
@ -165,25 +166,25 @@ else
|
|||
#within local directory structure
|
||||
all: cleanup_local _checkzap _checksrc all_bin_kmod all_util
|
||||
|
||||
all_src: cleanup_local _checkzap _checksrc all_kmod all_util
|
||||
all_src_dahdi: cleanup_local _checkzap _checksrc all_kmod_dahdi all_util
|
||||
|
||||
all_src: cleanup_local _checksrc all_kmod all_util
|
||||
|
||||
all_src_ss7: cleanup_local _checkzap _checksrc all_kmod_ss7 all_util
|
||||
|
||||
dahdi: all_src
|
||||
dahdi: all_src_dahdi
|
||||
|
||||
zaptel: all_src
|
||||
|
||||
openzap: all_src all_lib
|
||||
@touch .all_lib .openzap
|
||||
zaptel: dahdi
|
||||
|
||||
freetdm: all_src all_lib
|
||||
@touch .all_lib .openzap
|
||||
@touch .all_lib .freetdm
|
||||
|
||||
fs: all_src all_lib
|
||||
@touch .all_lib .openzap
|
||||
openzap:freetdm
|
||||
smg: freetdm
|
||||
fs: freetdm
|
||||
|
||||
g3ti: all_src all_lib
|
||||
@touch .all_lib .openzap
|
||||
@touch .all_lib .freetdm
|
||||
|
||||
openzap_ss7: all_src_ss7 all_lib
|
||||
@touch .all_lib
|
||||
|
@ -193,19 +194,23 @@ tdmapi: all_src all_lib
|
|||
|
||||
cleanup_local:
|
||||
@rm -f .all* 2> /dev/null;
|
||||
@rm -f .freetdm 2> /dev/null;
|
||||
|
||||
|
||||
|
||||
#Build only kernel modules
|
||||
all_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
||||
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KDIR) SUBDIRS=$(WAN_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS) $(shell cat ./patches/kfeatures)" ZAPDIR=$(ZAPDIR_PRIV) ZAPHDLC=$(ZAPHDLC_PRIV) HOMEDIR=$(PWD) modules
|
||||
all_kmod_dahdi: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
||||
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KDIR) SUBDIRS=$(WAN_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS) $(DAHDI_CFLAGS) $(shell cat ./patches/kfeatures)" ZAPDIR=$(ZAPDIR_PRIV) ZAPHDLC=$(ZAPHDLC_PRIV) HOMEDIR=$(PWD) modules
|
||||
|
||||
all_kmod: _checksrc _cleanoldwanpipe _check_kver
|
||||
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KDIR) SUBDIRS=$(WAN_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS) $(shell cat ./patches/kfeatures)" ZAPDIR= ZAPHDLC= HOMEDIR=$(PWD) modules
|
||||
|
||||
all_kmod_ss7: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
||||
@if [ -e $(PWD)/ss7_build_dir ]; then \
|
||||
rm -rf $(PWD)/ss7_build_dir; \
|
||||
fi
|
||||
@mkdir -p $(PWD)/ss7_build_dir
|
||||
./Setup drivers --builddir=$(PWD)/ss7_build_dir --with-linux=$(KDIR) $(ZAP_OPTS) --usr-cc=$(CC) --protocol=AFT_TE1-XMTP2 --no-zaptel-compile --noautostart --arch=$(ARCH) --silent
|
||||
./Setup drivers --builddir=$(PWD)/ss7_build_dir --with-linux=$(KDIR) $(ZAP_OPTS) --usr-cc=$(CC) --protocol=AFT_TE1-XMTP2 --no-zaptel-compile --noautostart --arch=$(WARCH) --silent
|
||||
@eval "./patches/copy_modules.sh $(PWD)/ss7_build_dir $(WAN_DIR)"
|
||||
|
||||
all_bin_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
||||
|
@ -213,7 +218,7 @@ all_bin_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
|||
rm -rf $(PWD)/ast_build_dir; \
|
||||
fi
|
||||
@mkdir -p $(PWD)/ast_build_dir
|
||||
./Setup drivers --builddir=$(PWD)/ast_build_dir --with-linux=$(KDIR) $(ZAP_OPTS) --usr-cc=$(CC) --protocol=$(PROTS) --no-zaptel-compile --noautostart --arch=$(ARCH) --silent
|
||||
./Setup drivers --builddir=$(PWD)/ast_build_dir --with-linux=$(KDIR) $(ZAP_OPTS) --usr-cc=$(CC) --protocol=$(PROTS) --no-zaptel-compile --noautostart --arch=$(WARCH) --silent
|
||||
@eval "./patches/copy_modules.sh $(PWD)/ast_build_dir $(WAN_DIR)"
|
||||
|
||||
|
||||
|
@ -223,8 +228,8 @@ clean: cleanup_local clean_util _cleanoldwanpipe
|
|||
$(MAKE) -C api SUBDIRS=$(WAN_DIR) clean
|
||||
@find patches/kdrivers -name '.*.cmd' | xargs rm -f
|
||||
@find . -name 'Module.symver*' | xargs rm -f
|
||||
@if [ -e .openzap ]; then \
|
||||
rm -f .openzap; \
|
||||
@if [ -e .freetdm ]; then \
|
||||
rm -f .freetdm; \
|
||||
fi
|
||||
|
||||
|
||||
|
@ -345,9 +350,9 @@ endif
|
|||
#Compile utilities only
|
||||
all_util: install_inc
|
||||
$(MAKE) -C util all EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I $(PWD)/api/libsangoma/include" CC=$(CC) \
|
||||
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(ARCH)
|
||||
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(WARCH)
|
||||
$(MAKE) -C util all_wancfg EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I$(PWD)/api/libsangoma/include" CC=$(CC) \
|
||||
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(ARCH)
|
||||
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(WARCH)
|
||||
|
||||
all_lib:
|
||||
$(shell cd api/libsangoma; ./init-automake.sh >> $(PWD)/.cfg_log; ./configure --prefix=$(LIBPREFIX) >> $(PWD)/.cfg_log;)
|
||||
|
@ -379,7 +384,7 @@ install_bri:
|
|||
|
||||
install_smgpri:
|
||||
$(MAKE) -C ssmg/sangoma_pri/ install SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) DESTDIR=$(INSTALLPREFIX)
|
||||
@if [ ! -e .openzap ]; then \
|
||||
@if [ ! -e .freetdm ]; then \
|
||||
@echo "Installing Sangoma MGD"; \
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/ install SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) PRI=YES DESTDIR=$(INSTALLPREFIX) ; \
|
||||
fi
|
||||
|
|
18
api/Makefile
18
api/Makefile
|
@ -4,20 +4,24 @@
|
|||
# Copyright (c) 1995-2000 Sangoma Technologies Inc. All Rights Reserved.
|
||||
# ============================================================================
|
||||
|
||||
APIINC=/usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
LIB_INSTALL_DIR=/usr
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all:
|
||||
make -C tdm_api
|
||||
make -C legacy
|
||||
make -C sample_c
|
||||
make -C sample_cpp
|
||||
make -C tdm_api WANINCDIR=$(WANINCDIR)
|
||||
make -C legacy WANINCDIR=$(WANINCDIR)
|
||||
make -C sample_c WANINCDIR=$(WANINCDIR)
|
||||
make -C sample_cpp WANINCDIR=$(WANINCDIR)
|
||||
|
||||
clean:
|
||||
make -C tdm_api clean
|
||||
make -C legacy clean
|
||||
make -C tdm_api clean
|
||||
make -C legacy clean
|
||||
make -C lib/hdlc clean
|
||||
make -C sample_c clean
|
||||
make -C sample_cpp clean
|
||||
|
|
|
@ -4,17 +4,21 @@
|
|||
# Copyright (c) 1995-2000 Sangoma Technologies Inc. All Rights Reserved.
|
||||
# ============================================================================
|
||||
|
||||
APIINC=/usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all:
|
||||
make -C x25 all APIINC=$(APIINC)
|
||||
make -C chdlc all APIINC=$(APIINC)
|
||||
make -C fr all APIINC=$(APIINC)
|
||||
make -C bitstrm all APIINC=$(APIINC)
|
||||
make -C bisync all APIINC=$(APIINC)
|
||||
make -C aft all APIINC=$(APIINC)
|
||||
make -C x25 all WANINCDIR=$(WANINCDIR)
|
||||
make -C chdlc all WANINCDIR=$(WANINCDIR)
|
||||
make -C fr all WANINCDIR=$(WANINCDIR)
|
||||
make -C bitstrm all WANINCDIR=$(WANINCDIR)
|
||||
make -C bisync all WANINCDIR=$(WANINCDIR)
|
||||
make -C aft all WANINCDIR=$(WANINCDIR)
|
||||
|
||||
clean:
|
||||
make -C x25 clean
|
||||
|
|
|
@ -10,9 +10,13 @@
|
|||
OS_TYPE = __LINUX__
|
||||
DEBUG = 2
|
||||
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -10,13 +10,18 @@
|
|||
OS_TYPE = __LINUX__
|
||||
DEBUG = 2
|
||||
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
DIR_EC_APILIB=/common/wantools/wanec_apilib
|
||||
SRC_EC_APILIB=$(DIR_EC_APILIB)/wanec_api.c $(DIR_EC_APILIB)/wanec_api_lib.c
|
||||
INC_EC_APILIB=-I/usr/include/wanpipe/oct6100_api -I$(DIR_EC_APILIB)
|
||||
INC_EC_APILIB=-I$(WANINCDIR)/wanpipe/oct6100_api -I$(DIR_EC_APILIB)
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -DCONFIG_PRODUCT_WANPIPE_TDMV_EC -D_GNUC_ -I../lib
|
||||
CFLAGS += -I/usr/include/wanpipe
|
||||
CFLAGS += -I$(WANINCDIR)
|
||||
|
||||
TARGETS=aft_api
|
||||
#TARGETS+= aft_api_events
|
||||
|
|
|
@ -11,10 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = /usr/src/linux/include
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -11,10 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = /usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -11,10 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = ../include
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -11,10 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = /usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -11,18 +11,21 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = /usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all: chdlc_api \
|
||||
chdlc_rts_cts \
|
||||
chdlc_integrity \
|
||||
chdlc_modem_cmd \
|
||||
chdlc_echo
|
||||
chdlc_rts_cts \
|
||||
chdlc_integrity \
|
||||
chdlc_modem_cmd \
|
||||
chdlc_echo
|
||||
@echo "Ok."
|
||||
|
||||
chdlc_api: chdlc_api.c ../lib/lib_api.c
|
||||
|
|
|
@ -11,9 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(WANINCDIR)
|
||||
|
||||
TARGETS = fr_api
|
||||
#TARGETS += fr_api_fast
|
||||
|
|
|
@ -11,23 +11,26 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = /usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
ifneq (,$(wildcard /wanpipe/code/Makefile.in))
|
||||
include /wanpipe/code/Makefile.in
|
||||
EXTRA_FLAGS+=$(GLOBAL_CFLAGS)
|
||||
include /wanpipe/code/Makefile.in
|
||||
EXTRA_FLAGS+=$(GLOBAL_CFLAGS)
|
||||
endif
|
||||
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../ -I../../lib -I$(APIINC) $(EXTRA_FLAGS)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../ -I../../lib -I$(WANINCDIR) $(EXTRA_FLAGS)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all: server_v1 \
|
||||
server_v2 \
|
||||
svc_client \
|
||||
pvc_client
|
||||
svc_client \
|
||||
pvc_client
|
||||
@echo "Ok."
|
||||
|
||||
|
||||
|
|
|
@ -11,9 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -11,10 +11,13 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
APIINC = ./
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
|
|
|
@ -10,18 +10,22 @@
|
|||
OS_TYPE = __LINUX__
|
||||
DEBUG = 2
|
||||
|
||||
APIINC = /usr/include/wanpipe
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(WANINCDIR)
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all: server_v1 \
|
||||
server_v2 \
|
||||
svc_client \
|
||||
pvc_client \
|
||||
hdlc_client
|
||||
server_v2 \
|
||||
svc_client \
|
||||
pvc_client \
|
||||
hdlc_client
|
||||
@echo "Ok."
|
||||
|
||||
server_v1: server_v1.c
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
CC=g++
|
||||
APIINC=../../include
|
||||
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
CFLAGS=-O -I.. -D_REENTRANT -lpthread
|
||||
CFLAGS1=-w -c -D_REENTRANT -D_GNUC_ -D__LINUX__ -I$(APIINC)
|
||||
CFLAGS1=-w -c -D_REENTRANT -D_GNUC_ -D__LINUX__ -I$(APIINC) -I$(WANINCDIR)
|
||||
|
||||
server: bitmap.o server.o
|
||||
$(CC) $(CFLAGS) bitmap.o server.o -o server
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
*/
|
||||
|
||||
#include <wanpipe_hdlc.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/*===================================================================
|
||||
PROTOTYPES
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
# define wan_inline __inline
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 34
|
||||
/svn/libsangoma/!svn/ver/308/trunk
|
||||
/svn/libsangoma/!svn/ver/315/trunk
|
||||
END
|
||||
init-automake.sh
|
||||
K 25
|
||||
|
@ -19,13 +19,19 @@ Makefile.in
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/libsangoma/!svn/ver/298/trunk/Makefile.in
|
||||
/svn/libsangoma/!svn/ver/311/trunk/Makefile.in
|
||||
END
|
||||
libsangoma_config.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 54
|
||||
/svn/libsangoma/!svn/ver/314/trunk/libsangoma_config.c
|
||||
END
|
||||
sources
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 42
|
||||
/svn/libsangoma/!svn/ver/306/trunk/sources
|
||||
/svn/libsangoma/!svn/ver/314/trunk/sources
|
||||
END
|
||||
AUTHORS
|
||||
K 25
|
||||
|
@ -67,7 +73,7 @@ libsangoma.c
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/libsangoma/!svn/ver/308/trunk/libsangoma.c
|
||||
/svn/libsangoma/!svn/ver/315/trunk/libsangoma.c
|
||||
END
|
||||
compile.bat
|
||||
K 25
|
||||
|
@ -85,7 +91,7 @@ libsangoma.h
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/libsangoma/!svn/ver/299/trunk/libsangoma.h
|
||||
/svn/libsangoma/!svn/ver/311/trunk/libsangoma.h
|
||||
END
|
||||
libsangoma_hwec.c
|
||||
K 25
|
||||
|
@ -105,18 +111,18 @@ svn:wc:ra_dav:version-url
|
|||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/INSTALL
|
||||
END
|
||||
build.sh
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/libsangoma/!svn/ver/222/trunk/build.sh
|
||||
END
|
||||
COPYING
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/COPYING
|
||||
END
|
||||
build.sh
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/libsangoma/!svn/ver/222/trunk/build.sh
|
||||
END
|
||||
NEWS
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
|
@ -135,29 +141,29 @@ svn:wc:ra_dav:version-url
|
|||
V 48
|
||||
/svn/libsangoma/!svn/ver/146/trunk/libsangoma.rc
|
||||
END
|
||||
sangoma_pri.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/libsangoma/!svn/ver/222/trunk/sangoma_pri.c
|
||||
END
|
||||
libsangoma.so.conf
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 51
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.so.conf
|
||||
END
|
||||
sangoma_pri.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/libsangoma/!svn/ver/222/trunk/sangoma_pri.c
|
||||
END
|
||||
libhpsangoma-doxygen.config
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 61
|
||||
/svn/libsangoma/!svn/ver/50/trunk/libhpsangoma-doxygen.config
|
||||
END
|
||||
sangoma_pri.h
|
||||
libhpsangoma.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/libsangoma/!svn/ver/222/trunk/sangoma_pri.h
|
||||
V 49
|
||||
/svn/libsangoma/!svn/ver/222/trunk/libhpsangoma.c
|
||||
END
|
||||
version
|
||||
K 25
|
||||
|
@ -165,11 +171,11 @@ svn:wc:ra_dav:version-url
|
|||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/version
|
||||
END
|
||||
libhpsangoma.c
|
||||
sangoma_pri.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/libsangoma/!svn/ver/222/trunk/libhpsangoma.c
|
||||
V 48
|
||||
/svn/libsangoma/!svn/ver/222/trunk/sangoma_pri.h
|
||||
END
|
||||
configure.in
|
||||
K 25
|
||||
|
@ -211,7 +217,7 @@ Makefile.am
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/libsangoma/!svn/ver/298/trunk/Makefile.am
|
||||
/svn/libsangoma/!svn/ver/311/trunk/Makefile.am
|
||||
END
|
||||
missing
|
||||
K 25
|
||||
|
@ -229,7 +235,7 @@ libsangoma-pvt.h
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 51
|
||||
/svn/libsangoma/!svn/ver/276/trunk/libsangoma-pvt.h
|
||||
/svn/libsangoma/!svn/ver/314/trunk/libsangoma-pvt.h
|
||||
END
|
||||
libsangoma_utils.c
|
||||
K 25
|
||||
|
@ -247,5 +253,5 @@ libsangoma.vcproj
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/libsangoma/!svn/ver/286/trunk/libsangoma.vcproj
|
||||
/svn/libsangoma/!svn/ver/314/trunk/libsangoma.vcproj
|
||||
END
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
||||
|
||||
2010-08-24T18:59:15.202283Z
|
||||
308
|
||||
ncorbic
|
||||
2010-09-28T19:45:37.681925Z
|
||||
315
|
||||
dyatsin
|
||||
has-props
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
@ -58,12 +58,24 @@ file
|
|||
|
||||
|
||||
|
||||
2010-08-19T22:39:57.000000Z
|
||||
a8dfea1c867ff132bf1ce1af2f45286a
|
||||
2010-08-13T00:22:43.027397Z
|
||||
298
|
||||
2010-09-27T20:07:44.000000Z
|
||||
5ae53af68fd79b1265e8dd17d417a0a1
|
||||
2010-09-27T18:07:21.223585Z
|
||||
311
|
||||
ncorbic
|
||||
|
||||
libsangoma_config.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-10-01T21:04:29.000000Z
|
||||
de99c99d999b3c9d39337397856a839f
|
||||
2010-09-28T19:41:22.543877Z
|
||||
314
|
||||
davidr
|
||||
|
||||
sample_cpp
|
||||
dir
|
||||
|
||||
|
@ -73,11 +85,11 @@ file
|
|||
|
||||
|
||||
|
||||
2010-08-19T22:39:57.000000Z
|
||||
5cddf7c651ff3b0830cde10dd67f6a99
|
||||
2010-08-18T18:10:06.530845Z
|
||||
306
|
||||
jpatel
|
||||
2010-10-01T21:04:29.000000Z
|
||||
84884475da0ed63ae785369108234305
|
||||
2010-09-28T19:41:22.543877Z
|
||||
314
|
||||
davidr
|
||||
|
||||
AUTHORS
|
||||
file
|
||||
|
@ -176,11 +188,11 @@ file
|
|||
|
||||
|
||||
|
||||
2010-08-27T23:02:11.000000Z
|
||||
75258501ea3f09d08bc9932151e359cd
|
||||
2010-08-24T18:59:15.202283Z
|
||||
308
|
||||
ncorbic
|
||||
2010-10-01T21:04:29.000000Z
|
||||
925b6728adb7f183639f050a367dae0f
|
||||
2010-09-28T19:45:37.681925Z
|
||||
315
|
||||
dyatsin
|
||||
has-props
|
||||
|
||||
cleanup.sh
|
||||
|
@ -202,10 +214,10 @@ file
|
|||
|
||||
|
||||
|
||||
2010-08-13T21:40:10.000000Z
|
||||
71bdfb513775b3a4cf3d0cfeba2bc0a7
|
||||
2010-08-13T22:34:32.754036Z
|
||||
299
|
||||
2010-09-27T20:07:44.000000Z
|
||||
a411c1867d91f266792ae40429c57416
|
||||
2010-09-27T18:07:21.223585Z
|
||||
311
|
||||
ncorbic
|
||||
has-props
|
||||
|
||||
|
@ -246,18 +258,6 @@ file
|
|||
1
|
||||
root
|
||||
|
||||
COPYING
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
build.sh
|
||||
file
|
||||
|
||||
|
@ -271,6 +271,18 @@ f9109b55d1a9940209c4430121564f71
|
|||
ncorbic
|
||||
has-props
|
||||
|
||||
COPYING
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
NEWS
|
||||
file
|
||||
|
||||
|
@ -307,18 +319,6 @@ file
|
|||
146
|
||||
davidr
|
||||
|
||||
libsangoma.so.conf
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
bcdcb23c5d5fb460cee2ce315ef7bd32
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
sangoma_pri.c
|
||||
file
|
||||
|
||||
|
@ -332,8 +332,17 @@ file
|
|||
ncorbic
|
||||
has-props
|
||||
|
||||
sample_c
|
||||
dir
|
||||
libsangoma.so.conf
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
bcdcb23c5d5fb460cee2ce315ef7bd32
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
libhpsangoma-doxygen.config
|
||||
file
|
||||
|
@ -347,17 +356,21 @@ file
|
|||
50
|
||||
ncorbic
|
||||
|
||||
version
|
||||
sample_c
|
||||
dir
|
||||
|
||||
libhpsangoma.c
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
35f672d1fb01b542f667952c9dbb26fe
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
f487a2c347c2ff3e6633ea7022b649e3
|
||||
2009-08-12T18:36:20.606028Z
|
||||
222
|
||||
ncorbic
|
||||
has-props
|
||||
|
||||
sangoma_pri.h
|
||||
file
|
||||
|
@ -372,18 +385,17 @@ file
|
|||
ncorbic
|
||||
has-props
|
||||
|
||||
libhpsangoma.c
|
||||
version
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
f487a2c347c2ff3e6633ea7022b649e3
|
||||
2009-08-12T18:36:20.606028Z
|
||||
222
|
||||
ncorbic
|
||||
has-props
|
||||
35f672d1fb01b542f667952c9dbb26fe
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
configure.in
|
||||
file
|
||||
|
@ -477,10 +489,10 @@ file
|
|||
|
||||
|
||||
|
||||
2010-08-12T23:16:44.000000Z
|
||||
b703c5ae18162e30d2fb09df9eae7c98
|
||||
2010-08-13T00:22:43.027397Z
|
||||
298
|
||||
2010-09-27T20:07:44.000000Z
|
||||
1bbbf5b7de6b78b3533af596815351ba
|
||||
2010-09-27T18:07:21.223585Z
|
||||
311
|
||||
ncorbic
|
||||
|
||||
libsangoma.def
|
||||
|
@ -501,10 +513,10 @@ file
|
|||
|
||||
|
||||
|
||||
2010-05-18T21:27:49.000000Z
|
||||
ef10b7962e2dbe7feebcec6c47467ad7
|
||||
2010-05-06T20:18:08.960008Z
|
||||
276
|
||||
2010-10-01T21:04:29.000000Z
|
||||
40bd58c5c94df8e3af7cb755afda81c5
|
||||
2010-09-28T19:41:22.543877Z
|
||||
314
|
||||
davidr
|
||||
has-props
|
||||
|
||||
|
@ -542,9 +554,9 @@ file
|
|||
|
||||
|
||||
|
||||
2010-06-14T16:38:14.000000Z
|
||||
3550ed370d5194be80c9098929f7dbc1
|
||||
2010-06-10T21:10:51.668331Z
|
||||
286
|
||||
2010-10-01T21:04:29.000000Z
|
||||
8778a20cc0568f8a01f7015ece63279c
|
||||
2010-09-28T19:41:22.543877Z
|
||||
314
|
||||
davidr
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ AM_CFLAGS += -Wall -Wwrite-strings -Wunused-variable -Wstrict-prototypes -Wmissi
|
|||
|
||||
#ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_config.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
|
||||
|
||||
if LIBPRI
|
||||
LIB_SOURCES += sangoma_pri.c sangoma_pri.h
|
||||
|
|
|
@ -78,12 +78,13 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
|
|||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libsangoma_la_LIBADD =
|
||||
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma_utils.c \
|
||||
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
|
||||
libhpsangoma_priv.c libhpsangoma_priv.h sangoma_pri.c \
|
||||
sangoma_pri.h
|
||||
libsangoma_config.c libsangoma_hwec.c libsangoma.h \
|
||||
libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
|
||||
libhpsangoma_priv.h sangoma_pri.c sangoma_pri.h
|
||||
@LIBPRI_TRUE@am__objects_1 = libsangoma_la-sangoma_pri.lo
|
||||
am__objects_2 = libsangoma_la-libsangoma.lo \
|
||||
libsangoma_la-libsangoma_utils.lo \
|
||||
libsangoma_la-libsangoma_config.lo \
|
||||
libsangoma_la-libsangoma_hwec.lo libsangoma_la-libhpsangoma.lo \
|
||||
libsangoma_la-libhpsangoma_priv.lo $(am__objects_1)
|
||||
am_libsangoma_la_OBJECTS = $(am__objects_2)
|
||||
|
@ -235,9 +236,9 @@ AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g \
|
|||
$(am__append_3)
|
||||
|
||||
#ACLOCAL_AMFLAGS = -I m4
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c \
|
||||
libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
|
||||
libhpsangoma_priv.h $(am__append_1)
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_config.c \
|
||||
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
|
||||
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
|
||||
library_includedir = $(includedir)
|
||||
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
|
||||
lib_LTLIBRARIES = libsangoma.la
|
||||
|
@ -376,6 +377,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_config.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo@am__quote@
|
||||
|
@ -415,6 +417,13 @@ libsangoma_la-libsangoma_utils.lo: libsangoma_utils.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c
|
||||
|
||||
libsangoma_la-libsangoma_config.lo: libsangoma_config.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_config.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo" -c -o libsangoma_la-libsangoma_config.lo `test -f 'libsangoma_config.c' || echo '$(srcdir)/'`libsangoma_config.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_config.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_config.c' object='libsangoma_la-libsangoma_config.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_config.lo `test -f 'libsangoma_config.c' || echo '$(srcdir)/'`libsangoma_config.c
|
||||
|
||||
libsangoma_la-libsangoma_hwec.lo: libsangoma_hwec.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_hwec.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo"; exit 1; fi
|
||||
|
@ -547,7 +556,7 @@ distdir: $(DISTFILES)
|
|||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
-find $(distdir) -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* \brief LibSangoma private definitios, this file should not be used by applications nor installed -
|
||||
*
|
||||
* Author(s): Moises Silva <moy@sangoma.com>
|
||||
* David Rokhvarg <davidr@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2009 Sangoma Technologies
|
||||
*
|
||||
|
@ -123,6 +124,39 @@ typedef struct sangoma_wait_obj
|
|||
*/
|
||||
#define DEV_NAME_LEN 100
|
||||
|
||||
/**** debugging definitions ****/
|
||||
static void libsng_dbg(const char * fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[1024];
|
||||
va_start(args, fmt);
|
||||
_vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
#if defined(__WINDOWS__)
|
||||
OutputDebugString(buf);
|
||||
#else
|
||||
printf(buf);
|
||||
#endif
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
#endif /* _LIBSNAGOMA_H */
|
||||
extern int libsng_dbg_level;
|
||||
|
||||
#define DBG_POLL if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_EVNT if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_ERR if(libsng_dbg_level)libsng_dbg("Error: %s() line: %d : ", __FUNCTION__, __LINE__);if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_INIT if(libsng_dbg_level)libsng_dbg
|
||||
|
||||
/**** Prototypes of Function used internally by libsangoma ****/
|
||||
sng_fd_t sangoma_open_dev_by_name(const char *dev_name);
|
||||
#if defined(__WINDOWS__)
|
||||
int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp);
|
||||
LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue);
|
||||
LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue);
|
||||
HKEY registry_open_port_key(hardware_info_t *hardware_info);
|
||||
int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg);
|
||||
int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg);
|
||||
int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf);
|
||||
#endif
|
||||
|
||||
#endif /* _LIBSNAGOMA_PVT_H */
|
||||
|
||||
|
|
|
@ -50,29 +50,11 @@
|
|||
# define WP_ALL_BITS_SET ((uint32_t)-1)
|
||||
#endif
|
||||
|
||||
static void libsng_dbg(const char * fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[1024];
|
||||
va_start(args, fmt);
|
||||
_vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
#if defined(__WINDOWS__)
|
||||
OutputDebugString(buf);
|
||||
#else
|
||||
printf(buf);
|
||||
#endif
|
||||
va_end(args);
|
||||
}
|
||||
int libsng_dbg_level = 0;
|
||||
|
||||
/*********************************************************************//**
|
||||
* WINDOWS Only Section
|
||||
*************************************************************************/
|
||||
static int libsng_dbg_level = 0;
|
||||
|
||||
#define DBG_POLL if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_EVNT if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_ERR if(libsng_dbg_level)libsng_dbg("Error: %s() line: %d : ", __FUNCTION__, __LINE__);if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_INIT if(libsng_dbg_level)libsng_dbg
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
#define DBG_REGISTRY if(libsng_dbg_level)libsng_dbg
|
||||
|
@ -131,7 +113,7 @@ static u16 handle_device_ioctl_result(int bResult, char *caller_name)
|
|||
|
||||
Private Windows Function
|
||||
*/
|
||||
static int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
DWORD ln, bIoResult;
|
||||
unsigned char id = 0;
|
||||
|
@ -225,7 +207,7 @@ static UCHAR DoWriteCommand(sng_fd_t fd,
|
|||
|
||||
bIoResult = DeviceIoControl(
|
||||
fd,
|
||||
IoctlWriteCommand,
|
||||
IoctlWriteCommandNonBlocking,
|
||||
(LPVOID)input_data_buffer,
|
||||
size_of_input_data_buffer,
|
||||
(LPVOID)output_data_buffer,
|
||||
|
@ -465,7 +447,7 @@ static LONG registry_get_string_value(HKEY hkey, LPTSTR szKeyname, OUT LPSTR szV
|
|||
/*!
|
||||
\brief Brief description
|
||||
*/
|
||||
static LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue)
|
||||
LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue)
|
||||
{
|
||||
DWORD dwSize;
|
||||
LONG iReturnCode;
|
||||
|
@ -484,7 +466,7 @@ static LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szVa
|
|||
/*!
|
||||
\brief Convert an integer (iValue) to string and write it to registry
|
||||
*/
|
||||
static LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue)
|
||||
LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue)
|
||||
{
|
||||
DWORD dwSize;
|
||||
char szTemp[TMP_BUFFER_LEN];
|
||||
|
@ -507,7 +489,7 @@ static LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValu
|
|||
* \brief Go through the list of ALL "Sangoma Hardware Abstraction Driver" ports installed on the system.
|
||||
* Read Bus/Slot/Port information for a port and compare with what is searched for.
|
||||
*/
|
||||
static HKEY registry_open_port_key(hardware_info_t *hardware_info)
|
||||
HKEY registry_open_port_key(hardware_info_t *hardware_info)
|
||||
{
|
||||
int i, iRegistryReturnCode;
|
||||
SP_DEVINFO_DATA deid={sizeof(SP_DEVINFO_DATA)};
|
||||
|
@ -662,7 +644,7 @@ static char* timeslot_bitmap_to_string(int bitmap)
|
|||
return tmp_string;
|
||||
}
|
||||
|
||||
static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
{
|
||||
wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;
|
||||
|
@ -864,7 +846,7 @@ static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_
|
|||
return iReturnCode;
|
||||
}
|
||||
|
||||
static int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
{
|
||||
wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;
|
||||
|
@ -898,7 +880,7 @@ static int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_
|
|||
return iReturnCode;
|
||||
}
|
||||
|
||||
static int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf)
|
||||
int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf)
|
||||
{
|
||||
char szTemp[TMP_BUFFER_LEN];
|
||||
int iReturnCode = 0;
|
||||
|
@ -1719,7 +1701,7 @@ sng_fd_t _LIBSNG_CALL sangoma_open_api_span_chan(int span, int chan)
|
|||
return fd;
|
||||
}
|
||||
|
||||
static sng_fd_t sangoma_open_dev_by_name(const char *dev_name)
|
||||
sng_fd_t sangoma_open_dev_by_name(const char *dev_name)
|
||||
{
|
||||
char fname[FNAME_LEN];
|
||||
|
||||
|
@ -2236,6 +2218,31 @@ int _LIBSNG_CALL sangoma_tdm_get_hwec_chan_status(sng_fd_t fd, wanpipe_api_t *td
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
/*========================================================
|
||||
* Check if hwec persist is enabled or disabled.
|
||||
* If persist is on: then hwec will always stay enabled for
|
||||
* all channes.
|
||||
* If persist is off: hwec will not be enabled by default.
|
||||
*
|
||||
* Will return true if HW EC is persist mode is on
|
||||
*/
|
||||
|
||||
int _LIBSNG_CALL sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
||||
WANPIPE_API_INIT_CHAN(tdm_api, 0);
|
||||
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
|
||||
tdm_api->wp_cmd.cmd = WP_API_CMD_GET_HW_EC_PERSIST;
|
||||
err=sangoma_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
return tdm_api->wp_cmd.hw_ec;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*========================================================
|
||||
* GET Current User MTU/MRU values in bytes.
|
||||
|
@ -3231,253 +3238,13 @@ int _LIBSNG_CALL sangoma_tdm_disable_loop(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
|
||||
|
||||
#ifndef LIBSANGOMA_LIGHT
|
||||
|
||||
/************************************************************//**
|
||||
* Device PORT Control Functions
|
||||
***************************************************************/
|
||||
|
||||
static int sangoma_port_mgmnt_ioctl(sng_fd_t fd, port_management_struct_t *port_management)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortManagementCommand,
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortManagementCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_MGMT,port_management);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_management->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int sangoma_port_cfg_ioctl(sng_fd_t fd, port_cfg_t *port_cfg)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortConfigurationCommand,
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortConfigurationCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_CONFIG,port_cfg);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_cfg->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/* open wanpipe configuration device */
|
||||
sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
|
||||
{
|
||||
char tmp_fname[FNAME_LEN];
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
/* Form the Config Device Name (i.e. wanpipe1, wanpipe2,...). */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_PORT_NAME_FORM, port_no);
|
||||
#else
|
||||
/* Form the Config Device Name. ("/dev/wanpipe") */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_CONFIG_DEV_NAME);
|
||||
#endif
|
||||
return sangoma_open_dev_by_name(tmp_fname);
|
||||
}
|
||||
|
||||
|
||||
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
int err=0;
|
||||
#if defined(__WINDOWS__)
|
||||
if(UdpManagementCommand(fd, wan_udp)){
|
||||
err = 1;
|
||||
}
|
||||
#else
|
||||
unsigned char id = 0;
|
||||
|
||||
wan_udp->wan_udphdr_request_reply = 0x01;
|
||||
wan_udp->wan_udphdr_id = id;
|
||||
wan_udp->wan_udphdr_return_code = WAN_UDP_TIMEOUT_CMD;
|
||||
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PIPEMON,wan_udp);
|
||||
if (err < 0) {
|
||||
err = 1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
/* The ioctl failed. */
|
||||
return err;
|
||||
}
|
||||
|
||||
/* The ioctl was successfull. The caller must check
|
||||
* value of wan_udp->wan_udphdr_return_code. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_start(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = START_PORT_VOLATILE_CONFIG;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_stop(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = STOP_PORT;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
switch(port_mgmnt->operation_status)
|
||||
{
|
||||
case SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED:
|
||||
/* This is not an error, rather a state indication.
|
||||
* Return SANG_STATUS_SUCCESS, but real return code will be available
|
||||
* for the caller at port_mgmnt->operation_status. */
|
||||
err = SANG_STATUS_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
err = port_mgmnt->operation_status;
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_hw_info(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = GET_HARDWARE_INFO;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_version(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->command_code = GET_DRIVER_VERSION;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_set_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = SET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_get_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = GET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_write_port_config_on_persistent_storage(hardware_info_t *hardware_info, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
HKEY hPortRegistryKey = registry_open_port_key(hardware_info);
|
||||
/* wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;*/
|
||||
unsigned int ind;
|
||||
|
||||
if(hPortRegistryKey == INVALID_HANDLE_VALUE){
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* write T1/E1/BRI/Analog configuration */
|
||||
if(registry_write_front_end_cfg(hPortRegistryKey, port_cfg)){
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* write TDM Voice configuration */
|
||||
if(registry_write_wan_tdmv_conf(hPortRegistryKey, port_cfg)){
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* write number of groups */
|
||||
err = registry_set_integer_value(hPortRegistryKey, "aft_number_of_logic_channels", port_cfg->num_of_ifs);
|
||||
if(err){
|
||||
return err;
|
||||
}
|
||||
|
||||
/* write configuration of each group */
|
||||
for(ind = 0; ind < port_cfg->num_of_ifs; ind++){
|
||||
registry_write_channel_group_cfg(hPortRegistryKey, port_cfg, ind, port_cfg->if_cfg[ind]);
|
||||
}
|
||||
|
||||
#else
|
||||
printf("%s(): Warning: function not implemented\n", __FUNCTION__);
|
||||
err = 1;
|
||||
#endif
|
||||
return err;
|
||||
}
|
||||
#endif /* #ifndef LIBSANGOMA_LIGHT */
|
||||
|
||||
#endif /* WANPIPE_TDM_API */
|
||||
|
|
|
@ -1215,6 +1215,20 @@ int _LIBSNG_CALL sangoma_tdm_get_hwec_chan_status(sng_fd_t fd, wanpipe_api_t *td
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
/*!
|
||||
\fn int sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
||||
\brief Check if hwec persis mode is on: On persist mode hwec is always enabled.
|
||||
\param fd device file descriptor
|
||||
\param tdm_api tdm api command structure
|
||||
\return non-zero: error, 0: disabled, >0: enabled
|
||||
|
||||
This function will check if hw persist mode is enabled.
|
||||
*/
|
||||
|
||||
int _LIBSNG_CALL sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api);
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\fn int sangoma_span_chan_toif(int span, int chan, char *interface_name)
|
||||
\brief Convert Span & Chan to interface name
|
||||
|
|
|
@ -199,6 +199,10 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\libsangoma_config.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\libsangoma_hwec.c"
|
||||
>
|
||||
|
|
|
@ -0,0 +1,252 @@
|
|||
|
||||
#include "libsangoma-pvt.h"
|
||||
#include "libsangoma.h"
|
||||
|
||||
#ifndef LIBSANGOMA_LIGHT
|
||||
|
||||
/************************************************************//**
|
||||
* Device PORT Control Functions
|
||||
***************************************************************/
|
||||
|
||||
int sangoma_port_mgmnt_ioctl(sng_fd_t fd, port_management_struct_t *port_management)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortManagementCommand,
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortManagementCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_MGMT,port_management);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_management->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int sangoma_port_cfg_ioctl(sng_fd_t fd, port_cfg_t *port_cfg)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortConfigurationCommand,
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortConfigurationCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_CONFIG,port_cfg);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_cfg->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/* open wanpipe configuration device */
|
||||
sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
|
||||
{
|
||||
char tmp_fname[FNAME_LEN];
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
/* Form the Config Device Name (i.e. wanpipe1, wanpipe2,...). */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_PORT_NAME_FORM, port_no);
|
||||
#else
|
||||
/* Form the Config Device Name. ("/dev/wanpipe") */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_CONFIG_DEV_NAME);
|
||||
#endif
|
||||
return sangoma_open_dev_by_name(tmp_fname);
|
||||
}
|
||||
|
||||
|
||||
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
int err=0;
|
||||
#if defined(__WINDOWS__)
|
||||
if(UdpManagementCommand(fd, wan_udp)){
|
||||
err = 1;
|
||||
}
|
||||
#else
|
||||
unsigned char id = 0;
|
||||
|
||||
wan_udp->wan_udphdr_request_reply = 0x01;
|
||||
wan_udp->wan_udphdr_id = id;
|
||||
wan_udp->wan_udphdr_return_code = WAN_UDP_TIMEOUT_CMD;
|
||||
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PIPEMON,wan_udp);
|
||||
if (err < 0) {
|
||||
err = 1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
/* The ioctl failed. */
|
||||
return err;
|
||||
}
|
||||
|
||||
/* The ioctl was successfull. The caller must check
|
||||
* value of wan_udp->wan_udphdr_return_code. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_start(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = START_PORT_VOLATILE_CONFIG;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_stop(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = STOP_PORT;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
switch(port_mgmnt->operation_status)
|
||||
{
|
||||
case SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED:
|
||||
/* This is not an error, rather a state indication.
|
||||
* Return SANG_STATUS_SUCCESS, but real return code will be available
|
||||
* for the caller at port_mgmnt->operation_status. */
|
||||
err = SANG_STATUS_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
err = port_mgmnt->operation_status;
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_hw_info(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = GET_HARDWARE_INFO;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_version(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->command_code = GET_DRIVER_VERSION;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_set_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = SET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_get_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = GET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_write_port_config_on_persistent_storage(hardware_info_t *hardware_info, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
HKEY hPortRegistryKey = registry_open_port_key(hardware_info);
|
||||
/* wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;*/
|
||||
unsigned int ind;
|
||||
|
||||
if(hPortRegistryKey == INVALID_HANDLE_VALUE){
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* write T1/E1/BRI/Analog configuration */
|
||||
if(registry_write_front_end_cfg(hPortRegistryKey, port_cfg)){
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* write TDM Voice configuration */
|
||||
if(registry_write_wan_tdmv_conf(hPortRegistryKey, port_cfg)){
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* write number of groups */
|
||||
err = registry_set_integer_value(hPortRegistryKey, "aft_number_of_logic_channels", port_cfg->num_of_ifs);
|
||||
if(err){
|
||||
return err;
|
||||
}
|
||||
|
||||
/* write configuration of each group */
|
||||
for(ind = 0; ind < port_cfg->num_of_ifs; ind++){
|
||||
registry_write_channel_group_cfg(hPortRegistryKey, port_cfg, ind, port_cfg->if_cfg[ind]);
|
||||
}
|
||||
|
||||
#else
|
||||
printf("%s(): Warning: function not implemented\n", __FUNCTION__);
|
||||
err = 1;
|
||||
#endif
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif /* #ifndef LIBSANGOMA_LIGHT */
|
|
@ -28,5 +28,5 @@ $(SDK_LIB_PATH)\SetupApi.lib \
|
|||
$(SDK_LIB_PATH)\Advapi32.lib \
|
||||
$(SANG_WP_DEVEL)\wanpipe_common\wantools\wanec_apilib\$(O)\waneclib.lib
|
||||
|
||||
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c
|
||||
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c libsangoma_config.c
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ AM_CFLAGS += -Wall -Wwrite-strings -Wunused-variable -Wstrict-prototypes -Wmissi
|
|||
|
||||
#ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_config.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
|
||||
|
||||
if LIBPRI
|
||||
LIB_SOURCES += sangoma_pri.c sangoma_pri.h
|
||||
|
|
|
@ -78,12 +78,13 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
|
|||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libsangoma_la_LIBADD =
|
||||
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma_utils.c \
|
||||
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
|
||||
libhpsangoma_priv.c libhpsangoma_priv.h sangoma_pri.c \
|
||||
sangoma_pri.h
|
||||
libsangoma_config.c libsangoma_hwec.c libsangoma.h \
|
||||
libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
|
||||
libhpsangoma_priv.h sangoma_pri.c sangoma_pri.h
|
||||
@LIBPRI_TRUE@am__objects_1 = libsangoma_la-sangoma_pri.lo
|
||||
am__objects_2 = libsangoma_la-libsangoma.lo \
|
||||
libsangoma_la-libsangoma_utils.lo \
|
||||
libsangoma_la-libsangoma_config.lo \
|
||||
libsangoma_la-libsangoma_hwec.lo libsangoma_la-libhpsangoma.lo \
|
||||
libsangoma_la-libhpsangoma_priv.lo $(am__objects_1)
|
||||
am_libsangoma_la_OBJECTS = $(am__objects_2)
|
||||
|
@ -235,9 +236,9 @@ AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g \
|
|||
$(am__append_3)
|
||||
|
||||
#ACLOCAL_AMFLAGS = -I m4
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c \
|
||||
libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
|
||||
libhpsangoma_priv.h $(am__append_1)
|
||||
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_config.c \
|
||||
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
|
||||
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
|
||||
library_includedir = $(includedir)
|
||||
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
|
||||
lib_LTLIBRARIES = libsangoma.la
|
||||
|
@ -376,6 +377,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_config.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo@am__quote@
|
||||
|
@ -415,6 +417,13 @@ libsangoma_la-libsangoma_utils.lo: libsangoma_utils.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c
|
||||
|
||||
libsangoma_la-libsangoma_config.lo: libsangoma_config.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_config.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo" -c -o libsangoma_la-libsangoma_config.lo `test -f 'libsangoma_config.c' || echo '$(srcdir)/'`libsangoma_config.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_config.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_config.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_config.c' object='libsangoma_la-libsangoma_config.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_config.lo `test -f 'libsangoma_config.c' || echo '$(srcdir)/'`libsangoma_config.c
|
||||
|
||||
libsangoma_la-libsangoma_hwec.lo: libsangoma_hwec.c
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_hwec.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo"; exit 1; fi
|
||||
|
@ -547,7 +556,7 @@ distdir: $(DISTFILES)
|
|||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
-find $(distdir) -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/docs
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/docs/doxygen
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
@ -84,7 +84,7 @@ file
|
|||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
2010-09-13T22:45:16.000000Z
|
||||
1432ab687de350b6a988bdbc553bdbe7
|
||||
2008-09-17T21:25:40.156211Z
|
||||
22
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api/docs
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api/docs/doxygen
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/priserver
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
@ -69,7 +69,7 @@ file
|
|||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
2010-09-13T22:45:16.000000Z
|
||||
5afcd0bf7821144218b895150a7951bd
|
||||
2009-06-17T15:37:24.869927Z
|
||||
182
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* \brief LibSangoma private definitios, this file should not be used by applications nor installed -
|
||||
*
|
||||
* Author(s): Moises Silva <moy@sangoma.com>
|
||||
* David Rokhvarg <davidr@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2009 Sangoma Technologies
|
||||
*
|
||||
|
@ -123,6 +124,39 @@ typedef struct sangoma_wait_obj
|
|||
*/
|
||||
#define DEV_NAME_LEN 100
|
||||
|
||||
/**** debugging definitions ****/
|
||||
static void libsng_dbg(const char * fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[1024];
|
||||
va_start(args, fmt);
|
||||
_vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
#if defined(__WINDOWS__)
|
||||
OutputDebugString(buf);
|
||||
#else
|
||||
printf(buf);
|
||||
#endif
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
#endif /* _LIBSNAGOMA_H */
|
||||
extern int libsng_dbg_level;
|
||||
|
||||
#define DBG_POLL if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_EVNT if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_ERR if(libsng_dbg_level)libsng_dbg("Error: %s() line: %d : ", __FUNCTION__, __LINE__);if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_INIT if(libsng_dbg_level)libsng_dbg
|
||||
|
||||
/**** Prototypes of Function used internally by libsangoma ****/
|
||||
sng_fd_t sangoma_open_dev_by_name(const char *dev_name);
|
||||
#if defined(__WINDOWS__)
|
||||
int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp);
|
||||
LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue);
|
||||
LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue);
|
||||
HKEY registry_open_port_key(hardware_info_t *hardware_info);
|
||||
int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg);
|
||||
int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg);
|
||||
int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf);
|
||||
#endif
|
||||
|
||||
#endif /* _LIBSNAGOMA_PVT_H */
|
||||
|
||||
|
|
|
@ -50,29 +50,11 @@
|
|||
# define WP_ALL_BITS_SET ((uint32_t)-1)
|
||||
#endif
|
||||
|
||||
static void libsng_dbg(const char * fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buf[1024];
|
||||
va_start(args, fmt);
|
||||
_vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
#if defined(__WINDOWS__)
|
||||
OutputDebugString(buf);
|
||||
#else
|
||||
printf(buf);
|
||||
#endif
|
||||
va_end(args);
|
||||
}
|
||||
int libsng_dbg_level = 0;
|
||||
|
||||
/*********************************************************************//**
|
||||
* WINDOWS Only Section
|
||||
*************************************************************************/
|
||||
static int libsng_dbg_level = 0;
|
||||
|
||||
#define DBG_POLL if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_EVNT if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_ERR if(libsng_dbg_level)libsng_dbg("Error: %s() line: %d : ", __FUNCTION__, __LINE__);if(libsng_dbg_level)libsng_dbg
|
||||
#define DBG_INIT if(libsng_dbg_level)libsng_dbg
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
#define DBG_REGISTRY if(libsng_dbg_level)libsng_dbg
|
||||
|
@ -131,7 +113,7 @@ static u16 handle_device_ioctl_result(int bResult, char *caller_name)
|
|||
|
||||
Private Windows Function
|
||||
*/
|
||||
static int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
int UdpManagementCommand(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
DWORD ln, bIoResult;
|
||||
unsigned char id = 0;
|
||||
|
@ -225,7 +207,7 @@ static UCHAR DoWriteCommand(sng_fd_t fd,
|
|||
|
||||
bIoResult = DeviceIoControl(
|
||||
fd,
|
||||
IoctlWriteCommand,
|
||||
IoctlWriteCommandNonBlocking,
|
||||
(LPVOID)input_data_buffer,
|
||||
size_of_input_data_buffer,
|
||||
(LPVOID)output_data_buffer,
|
||||
|
@ -465,7 +447,7 @@ static LONG registry_get_string_value(HKEY hkey, LPTSTR szKeyname, OUT LPSTR szV
|
|||
/*!
|
||||
\brief Brief description
|
||||
*/
|
||||
static LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue)
|
||||
LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szValue)
|
||||
{
|
||||
DWORD dwSize;
|
||||
LONG iReturnCode;
|
||||
|
@ -484,7 +466,7 @@ static LONG registry_set_string_value(HKEY hkey, LPTSTR szKeyname, IN LPSTR szVa
|
|||
/*!
|
||||
\brief Convert an integer (iValue) to string and write it to registry
|
||||
*/
|
||||
static LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue)
|
||||
LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValue)
|
||||
{
|
||||
DWORD dwSize;
|
||||
char szTemp[TMP_BUFFER_LEN];
|
||||
|
@ -507,7 +489,7 @@ static LONG registry_set_integer_value(HKEY hkey, LPTSTR szKeyname, IN int iValu
|
|||
* \brief Go through the list of ALL "Sangoma Hardware Abstraction Driver" ports installed on the system.
|
||||
* Read Bus/Slot/Port information for a port and compare with what is searched for.
|
||||
*/
|
||||
static HKEY registry_open_port_key(hardware_info_t *hardware_info)
|
||||
HKEY registry_open_port_key(hardware_info_t *hardware_info)
|
||||
{
|
||||
int i, iRegistryReturnCode;
|
||||
SP_DEVINFO_DATA deid={sizeof(SP_DEVINFO_DATA)};
|
||||
|
@ -662,7 +644,7 @@ static char* timeslot_bitmap_to_string(int bitmap)
|
|||
return tmp_string;
|
||||
}
|
||||
|
||||
static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
{
|
||||
wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;
|
||||
|
@ -864,7 +846,7 @@ static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_
|
|||
return iReturnCode;
|
||||
}
|
||||
|
||||
static int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_cfg)
|
||||
{
|
||||
wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;
|
||||
|
@ -898,7 +880,7 @@ static int registry_write_wan_tdmv_conf(HKEY hPortRegistryKey, port_cfg_t *port_
|
|||
return iReturnCode;
|
||||
}
|
||||
|
||||
static int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf)
|
||||
int registry_write_channel_group_cfg(HKEY hPortRegistryKey, port_cfg_t *port_cfg, int interface_index, wanif_conf_t wanif_conf)
|
||||
{
|
||||
char szTemp[TMP_BUFFER_LEN];
|
||||
int iReturnCode = 0;
|
||||
|
@ -1719,7 +1701,7 @@ sng_fd_t _LIBSNG_CALL sangoma_open_api_span_chan(int span, int chan)
|
|||
return fd;
|
||||
}
|
||||
|
||||
static sng_fd_t sangoma_open_dev_by_name(const char *dev_name)
|
||||
sng_fd_t sangoma_open_dev_by_name(const char *dev_name)
|
||||
{
|
||||
char fname[FNAME_LEN];
|
||||
|
||||
|
@ -2236,6 +2218,31 @@ int _LIBSNG_CALL sangoma_tdm_get_hwec_chan_status(sng_fd_t fd, wanpipe_api_t *td
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
/*========================================================
|
||||
* Check if hwec persist is enabled or disabled.
|
||||
* If persist is on: then hwec will always stay enabled for
|
||||
* all channes.
|
||||
* If persist is off: hwec will not be enabled by default.
|
||||
*
|
||||
* Will return true if HW EC is persist mode is on
|
||||
*/
|
||||
|
||||
int _LIBSNG_CALL sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
||||
WANPIPE_API_INIT_CHAN(tdm_api, 0);
|
||||
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
|
||||
tdm_api->wp_cmd.cmd = WP_API_CMD_GET_HW_EC_PERSIST;
|
||||
err=sangoma_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
return tdm_api->wp_cmd.hw_ec;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*========================================================
|
||||
* GET Current User MTU/MRU values in bytes.
|
||||
|
@ -3231,253 +3238,13 @@ int _LIBSNG_CALL sangoma_tdm_disable_loop(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
|
||||
|
||||
#ifndef LIBSANGOMA_LIGHT
|
||||
|
||||
/************************************************************//**
|
||||
* Device PORT Control Functions
|
||||
***************************************************************/
|
||||
|
||||
static int sangoma_port_mgmnt_ioctl(sng_fd_t fd, port_management_struct_t *port_management)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortManagementCommand,
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortManagementCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_MGMT,port_management);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_management->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int sangoma_port_cfg_ioctl(sng_fd_t fd, port_cfg_t *port_cfg)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortConfigurationCommand,
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortConfigurationCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_CONFIG,port_cfg);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_cfg->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/* open wanpipe configuration device */
|
||||
sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
|
||||
{
|
||||
char tmp_fname[FNAME_LEN];
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
/* Form the Config Device Name (i.e. wanpipe1, wanpipe2,...). */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_PORT_NAME_FORM, port_no);
|
||||
#else
|
||||
/* Form the Config Device Name. ("/dev/wanpipe") */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_CONFIG_DEV_NAME);
|
||||
#endif
|
||||
return sangoma_open_dev_by_name(tmp_fname);
|
||||
}
|
||||
|
||||
|
||||
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
int err=0;
|
||||
#if defined(__WINDOWS__)
|
||||
if(UdpManagementCommand(fd, wan_udp)){
|
||||
err = 1;
|
||||
}
|
||||
#else
|
||||
unsigned char id = 0;
|
||||
|
||||
wan_udp->wan_udphdr_request_reply = 0x01;
|
||||
wan_udp->wan_udphdr_id = id;
|
||||
wan_udp->wan_udphdr_return_code = WAN_UDP_TIMEOUT_CMD;
|
||||
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PIPEMON,wan_udp);
|
||||
if (err < 0) {
|
||||
err = 1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
/* The ioctl failed. */
|
||||
return err;
|
||||
}
|
||||
|
||||
/* The ioctl was successfull. The caller must check
|
||||
* value of wan_udp->wan_udphdr_return_code. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_start(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = START_PORT_VOLATILE_CONFIG;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_stop(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = STOP_PORT;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
switch(port_mgmnt->operation_status)
|
||||
{
|
||||
case SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED:
|
||||
/* This is not an error, rather a state indication.
|
||||
* Return SANG_STATUS_SUCCESS, but real return code will be available
|
||||
* for the caller at port_mgmnt->operation_status. */
|
||||
err = SANG_STATUS_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
err = port_mgmnt->operation_status;
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_hw_info(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = GET_HARDWARE_INFO;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_version(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->command_code = GET_DRIVER_VERSION;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_set_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = SET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_get_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = GET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_write_port_config_on_persistent_storage(hardware_info_t *hardware_info, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
HKEY hPortRegistryKey = registry_open_port_key(hardware_info);
|
||||
/* wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;*/
|
||||
unsigned int ind;
|
||||
|
||||
if(hPortRegistryKey == INVALID_HANDLE_VALUE){
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* write T1/E1/BRI/Analog configuration */
|
||||
if(registry_write_front_end_cfg(hPortRegistryKey, port_cfg)){
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* write TDM Voice configuration */
|
||||
if(registry_write_wan_tdmv_conf(hPortRegistryKey, port_cfg)){
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* write number of groups */
|
||||
err = registry_set_integer_value(hPortRegistryKey, "aft_number_of_logic_channels", port_cfg->num_of_ifs);
|
||||
if(err){
|
||||
return err;
|
||||
}
|
||||
|
||||
/* write configuration of each group */
|
||||
for(ind = 0; ind < port_cfg->num_of_ifs; ind++){
|
||||
registry_write_channel_group_cfg(hPortRegistryKey, port_cfg, ind, port_cfg->if_cfg[ind]);
|
||||
}
|
||||
|
||||
#else
|
||||
printf("%s(): Warning: function not implemented\n", __FUNCTION__);
|
||||
err = 1;
|
||||
#endif
|
||||
return err;
|
||||
}
|
||||
#endif /* #ifndef LIBSANGOMA_LIGHT */
|
||||
|
||||
#endif /* WANPIPE_TDM_API */
|
||||
|
|
|
@ -1215,6 +1215,20 @@ int _LIBSNG_CALL sangoma_tdm_get_hwec_chan_status(sng_fd_t fd, wanpipe_api_t *td
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef WP_API_FEATURE_HWEC_PERSIST
|
||||
/*!
|
||||
\fn int sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api)
|
||||
\brief Check if hwec persis mode is on: On persist mode hwec is always enabled.
|
||||
\param fd device file descriptor
|
||||
\param tdm_api tdm api command structure
|
||||
\return non-zero: error, 0: disabled, >0: enabled
|
||||
|
||||
This function will check if hw persist mode is enabled.
|
||||
*/
|
||||
|
||||
int _LIBSNG_CALL sangoma_tdm_get_hwec_persist_status(sng_fd_t fd, wanpipe_api_t *tdm_api);
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\fn int sangoma_span_chan_toif(int span, int chan, char *interface_name)
|
||||
\brief Convert Span & Chan to interface name
|
||||
|
|
|
@ -199,6 +199,10 @@
|
|||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\libsangoma_config.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\libsangoma_hwec.c"
|
||||
>
|
||||
|
|
|
@ -0,0 +1,252 @@
|
|||
|
||||
#include "libsangoma-pvt.h"
|
||||
#include "libsangoma.h"
|
||||
|
||||
#ifndef LIBSANGOMA_LIGHT
|
||||
|
||||
/************************************************************//**
|
||||
* Device PORT Control Functions
|
||||
***************************************************************/
|
||||
|
||||
int sangoma_port_mgmnt_ioctl(sng_fd_t fd, port_management_struct_t *port_management)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortManagementCommand,
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPVOID)port_management,
|
||||
sizeof(port_management_struct_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortManagementCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_MGMT,port_management);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_management->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int sangoma_port_cfg_ioctl(sng_fd_t fd, port_cfg_t *port_cfg)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
DWORD ln;
|
||||
if(DeviceIoControl(
|
||||
fd,
|
||||
IoctlPortConfigurationCommand,
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPVOID)port_cfg,
|
||||
sizeof(port_cfg_t),
|
||||
(LPDWORD)(&ln),
|
||||
(LPOVERLAPPED)NULL
|
||||
) == FALSE){
|
||||
/* Call OS specific code to find cause of the error and check messages log. */
|
||||
DBG_ERR("%s():Error: IoctlPortConfigurationCommand failed!!\n", __FUNCTION__);
|
||||
err = -1;
|
||||
}
|
||||
#else
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PORT_CONFIG,port_cfg);
|
||||
if (err) {
|
||||
err = -1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
port_cfg->operation_status = SANG_STATUS_INVALID_DEVICE;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/* open wanpipe configuration device */
|
||||
sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
|
||||
{
|
||||
char tmp_fname[FNAME_LEN];
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
/* Form the Config Device Name (i.e. wanpipe1, wanpipe2,...). */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_PORT_NAME_FORM, port_no);
|
||||
#else
|
||||
/* Form the Config Device Name. ("/dev/wanpipe") */
|
||||
_snprintf(tmp_fname, DEV_NAME_LEN, WP_CONFIG_DEV_NAME);
|
||||
#endif
|
||||
return sangoma_open_dev_by_name(tmp_fname);
|
||||
}
|
||||
|
||||
|
||||
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
|
||||
{
|
||||
int err=0;
|
||||
#if defined(__WINDOWS__)
|
||||
if(UdpManagementCommand(fd, wan_udp)){
|
||||
err = 1;
|
||||
}
|
||||
#else
|
||||
unsigned char id = 0;
|
||||
|
||||
wan_udp->wan_udphdr_request_reply = 0x01;
|
||||
wan_udp->wan_udphdr_id = id;
|
||||
wan_udp->wan_udphdr_return_code = WAN_UDP_TIMEOUT_CMD;
|
||||
|
||||
err=ioctl(fd,WANPIPE_IOCTL_PIPEMON,wan_udp);
|
||||
if (err < 0) {
|
||||
err = 1;
|
||||
}
|
||||
#endif
|
||||
if(err){
|
||||
/* The ioctl failed. */
|
||||
return err;
|
||||
}
|
||||
|
||||
/* The ioctl was successfull. The caller must check
|
||||
* value of wan_udp->wan_udphdr_return_code. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_start(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = START_PORT_VOLATILE_CONFIG;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_stop(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = STOP_PORT;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
/* ioctl failed */
|
||||
return err;
|
||||
}
|
||||
|
||||
switch(port_mgmnt->operation_status)
|
||||
{
|
||||
case SANG_STATUS_CAN_NOT_STOP_DEVICE_WHEN_ALREADY_STOPPED:
|
||||
/* This is not an error, rather a state indication.
|
||||
* Return SANG_STATUS_SUCCESS, but real return code will be available
|
||||
* for the caller at port_mgmnt->operation_status. */
|
||||
err = SANG_STATUS_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
err = port_mgmnt->operation_status;
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_hw_info(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_mgmnt->command_code = GET_HARDWARE_INFO;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_get_version(sng_fd_t fd, port_management_struct_t *port_mgmnt, unsigned short port_no)
|
||||
{
|
||||
int err;
|
||||
port_mgmnt->command_code = GET_DRIVER_VERSION;
|
||||
port_mgmnt->port_no = port_no;
|
||||
|
||||
err = sangoma_port_mgmnt_ioctl(fd, port_mgmnt);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return port_mgmnt->operation_status;
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_set_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = SET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_driver_port_get_config(sng_fd_t fd, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
port_cfg->operation_status = SANG_STATUS_GENERAL_ERROR;
|
||||
port_cfg->command_code = GET_PORT_VOLATILE_CONFIG;
|
||||
port_cfg->port_no = port_no;
|
||||
return sangoma_port_cfg_ioctl(fd, port_cfg);
|
||||
}
|
||||
|
||||
int _LIBSNG_CALL sangoma_write_port_config_on_persistent_storage(hardware_info_t *hardware_info, port_cfg_t *port_cfg, unsigned short port_no)
|
||||
{
|
||||
int err = 0;
|
||||
#if defined(__WINDOWS__)
|
||||
HKEY hPortRegistryKey = registry_open_port_key(hardware_info);
|
||||
/* wandev_conf_t *wandev_conf = &port_cfg->wandev_conf;
|
||||
sdla_fe_cfg_t *sdla_fe_cfg = &wandev_conf->fe_cfg;*/
|
||||
unsigned int ind;
|
||||
|
||||
if(hPortRegistryKey == INVALID_HANDLE_VALUE){
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* write T1/E1/BRI/Analog configuration */
|
||||
if(registry_write_front_end_cfg(hPortRegistryKey, port_cfg)){
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* write TDM Voice configuration */
|
||||
if(registry_write_wan_tdmv_conf(hPortRegistryKey, port_cfg)){
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* write number of groups */
|
||||
err = registry_set_integer_value(hPortRegistryKey, "aft_number_of_logic_channels", port_cfg->num_of_ifs);
|
||||
if(err){
|
||||
return err;
|
||||
}
|
||||
|
||||
/* write configuration of each group */
|
||||
for(ind = 0; ind < port_cfg->num_of_ifs; ind++){
|
||||
registry_write_channel_group_cfg(hPortRegistryKey, port_cfg, ind, port_cfg->if_cfg[ind]);
|
||||
}
|
||||
|
||||
#else
|
||||
printf("%s(): Warning: function not implemented\n", __FUNCTION__);
|
||||
err = 1;
|
||||
#endif
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif /* #ifndef LIBSANGOMA_LIGHT */
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/sample_c
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
@ -92,7 +92,7 @@ file
|
|||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
2010-09-13T22:45:16.000000Z
|
||||
ba64d71a9d128b0eb31f6663ae763a68
|
||||
2009-04-08T00:23:42.359135Z
|
||||
141
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
308
|
||||
315
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/sample_cpp
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
@ -38,18 +38,6 @@ f3310f38d215e71ef19ee59d33c0c458
|
|||
278
|
||||
davidr
|
||||
|
||||
sources
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-06-17T04:11:26.000000Z
|
||||
1b8b6c522d904f33d986cb1c667d37e6
|
||||
2010-06-16T16:45:22.358768Z
|
||||
291
|
||||
davidr
|
||||
|
||||
sample.vcproj
|
||||
file
|
||||
|
||||
|
@ -63,6 +51,18 @@ file
|
|||
davidr
|
||||
has-props
|
||||
|
||||
sources
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2010-06-17T04:11:26.000000Z
|
||||
1b8b6c522d904f33d986cb1c667d37e6
|
||||
2010-06-16T16:45:22.358768Z
|
||||
291
|
||||
davidr
|
||||
|
||||
sangoma_interface.cpp
|
||||
file
|
||||
|
||||
|
@ -201,7 +201,7 @@ file
|
|||
|
||||
|
||||
|
||||
2009-08-25T20:44:41.000000Z
|
||||
2010-09-13T22:45:16.000000Z
|
||||
93f1e9c6d533615e6b2dfc7aba2fd0a2
|
||||
2009-02-27T23:27:29.300080Z
|
||||
105
|
||||
|
|
|
@ -28,5 +28,5 @@ $(SDK_LIB_PATH)\SetupApi.lib \
|
|||
$(SDK_LIB_PATH)\Advapi32.lib \
|
||||
$(SANG_WP_DEVEL)\wanpipe_common\wantools\wanec_apilib\$(O)\waneclib.lib
|
||||
|
||||
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c
|
||||
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c libsangoma_config.c
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
WLINC=../../patches/kdrivers/include
|
||||
WINC=/usr/include/wanpipe
|
||||
WINC=$(DESTDIR)/usr/include/wanpipe
|
||||
|
||||
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WLINC) -I$(WINC) -I. \
|
||||
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -Istel_tone
|
||||
|
|
|
@ -10,12 +10,13 @@
|
|||
OS_TYPE = __LINUX__
|
||||
DEBUG = 2
|
||||
|
||||
SYSINC=/usr/include/wanpipe
|
||||
VPATH = $(SYSINC)
|
||||
# Wanpipe Include Directory ( can be changed using --builddir= on ./Setup or make WANINCDIR= )
|
||||
ifndef WANINCDIR
|
||||
WANINCDIR=/usr/include/wanpipe
|
||||
endif
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -I$(SYSINC) -DWANPIPE_TDM_API -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib/hdlc -I../lib
|
||||
#CFLAGS = -I$(SYSINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -I$(WANINCDIR) -DWANPIPE_TDM_API -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib/hdlc -I../lib
|
||||
|
||||
TARGETS = aft_tdm_voice_api
|
||||
TARGETS += aft_tdm_voice_api_switch
|
||||
|
|
|
@ -274,7 +274,7 @@ void process_con_rx(void)
|
|||
&Rx_data[sizeof(wp_tdm_api_rx_hdr_t)],
|
||||
sizeof(Rx_data), 0);
|
||||
|
||||
//printf("RX DATA HDLC: Len=%i\n",err-sizeof(wp_api_hdr_t));
|
||||
// printf("RX DATA HDLC: Len=%i err=%i\n",err-sizeof(wp_api_hdr_t),err);
|
||||
//print_packet(&Rx_data[sizeof(wp_api_hdr_t)],err-sizeof(wp_api_hdr_t));
|
||||
/* err indicates bytes received */
|
||||
if(err > 0) {
|
||||
|
|
|
@ -1,39 +1,58 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
#
|
||||
# quoting from the policy:
|
||||
# Any necessary prompting should almost always be confined to the
|
||||
# post-installation script, and should be protected with a conditional
|
||||
# so that unnecessary prompting doesn't happen if a package's
|
||||
# installation fails and the `postinst' is called with `abort-upgrade',
|
||||
# `abort-remove' or `abort-deconfigure'.
|
||||
|
||||
install_init()
|
||||
{
|
||||
#Examine system bootstrap files.
|
||||
if [ -d /etc/rc0.d ]
|
||||
then RC_DIR=/etc
|
||||
elif [ -d /etc/rc.d/rc0.d ]
|
||||
then RC_DIR=/etc/rc.d
|
||||
else return 0
|
||||
fi
|
||||
|
||||
PROD=wanrouter
|
||||
START_SCRIPT=S20wanrouter
|
||||
STOP_SCRIPT=K10wanrouter
|
||||
START_SCRIPT=20
|
||||
STOP_SCRIPT=10
|
||||
PROD_INIT=/usr/sbin/wanrouter
|
||||
|
||||
# Install start scripts.
|
||||
[ -d $RC_DIR/rc2.d ] && ln -sf $PROD_INIT $RC_DIR/rc2.d/$START_SCRIPT
|
||||
[ -d $RC_DIR/rc3.d ] && ln -sf $PROD_INIT $RC_DIR/rc3.d/$START_SCRIPT
|
||||
[ -d $RC_DIR/rc5.d ] && ln -sf $PROD_INIT $RC_DIR/rc4.d/$START_SCRIPT
|
||||
[ -d $RC_DIR/rc5.d ] && ln -sf $PROD_INIT $RC_DIR/rc5.d/$START_SCRIPT
|
||||
|
||||
# Install stop scripts.
|
||||
[ -d $RC_DIR/rc0.d ] && ln -sf $PROD_INIT $RC_DIR/rc0.d/$STOP_SCRIPT
|
||||
[ -d $RC_DIR/rc1.d ] && ln -sf $PROD_INIT $RC_DIR/rc1.d/$STOP_SCRIPT
|
||||
[ -d $RC_DIR/rc6.d ] && ln -sf $PROD_INIT $RC_DIR/rc6.d/$STOP_SCRIPT
|
||||
[ -d $RC_DIR/init.d ] && ln -sf $PROD_INIT $RC_DIR/init.d/$PROD
|
||||
|
||||
# Examine system bootstrap files.
|
||||
if [ -d /etc/rc0.d ]; then
|
||||
RC_DIR=/etc
|
||||
elif [ -d /etc/rc.d/rc0.d ]; then
|
||||
RC_DIR=/etc/rc.d
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Create Symbolic Link to Wanrouter binary
|
||||
if [ ! -f "/etc/init.d/wanrouter" ]; then
|
||||
ln -sf $PROD_INIT $RC_DIR/init.d/wanrouter
|
||||
echo "Created SymLink of $PROD_INIT to $RC_DIR/init.d/wanrouter"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Install start/stop scripts.
|
||||
update-rc.d wanrouter defaults $START_SCRIPT $STOP_SCRIPT
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
if [ -d "/usr/local/wanrouter" ]; then
|
||||
cat <<EOM
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
if [ -d "/usr/local/wanrouter" ]; then
|
||||
cat <<EOM
|
||||
|
||||
*** Previous installation of Wanpipe detected.
|
||||
Please use /usr/sbin/wancfg instead of /usr/local/wanrouter/wancfg
|
||||
|
@ -42,11 +61,11 @@ if [ -d "/usr/local/wanrouter" ]; then
|
|||
and /etc/wanpipe/interfaces directories.
|
||||
|
||||
EOM
|
||||
else
|
||||
echo 'no old wanpipe detected' > /dev/null
|
||||
fi
|
||||
else
|
||||
echo 'no old wanpipe detected' > /dev/null
|
||||
fi
|
||||
|
||||
cat <<EOM
|
||||
cat <<EOM
|
||||
|
||||
*** Sangoma Wanpipe was successfully installed.
|
||||
Run wancfg command to configure wanpipe.
|
||||
|
@ -62,21 +81,35 @@ cat <<EOM
|
|||
|
||||
EOM
|
||||
|
||||
install_init;
|
||||
install_init;
|
||||
|
||||
#check dependancies for the new modules
|
||||
eval "depmod -a > /dev/null 2> /dev/null &"
|
||||
echo
|
||||
# check dependancies for the new modules
|
||||
echo "Executing depmod to check dependancies and new kernel modules"
|
||||
eval "depmod -a > /dev/null 2>&1"
|
||||
echo
|
||||
|
||||
eval "modprobe wanrouter"
|
||||
if [ $? -eq 0 ]; then
|
||||
modprobe -r wanrouter 2>> /dev/null
|
||||
else
|
||||
echo "Failed to load wanpipe modules!"
|
||||
echo
|
||||
echo "Make sure you are installing correct RPMS for your system!"
|
||||
echo
|
||||
echo "Otherwise call Sangoma Tech Support"
|
||||
fi
|
||||
eval "modprobe wanrouter"
|
||||
if [ $? -eq 0 ]; then
|
||||
eval "modprobe -r wanrouter"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Module loaded/unloaded to test"
|
||||
fi
|
||||
else
|
||||
echo "Failed to load wanpipe modules!"
|
||||
echo
|
||||
echo "Make sure you are installing correct DEBS for your system!"
|
||||
echo
|
||||
echo "Otherwise call Sangoma Tech Support"
|
||||
fi
|
||||
;;
|
||||
|
||||
exit 0;
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# prerm for Wanpipe
|
||||
|
||||
echo "Uninstalling WANPIPE..."
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
|
@ -9,35 +10,39 @@ echo "Uninstalling WANPIPE..."
|
|||
# ----------------------------------------------------------------------------
|
||||
remove_init()
|
||||
{
|
||||
# Examine system bootstrap files.
|
||||
if [ -d /etc/rc0.d ]
|
||||
then RC_DIR=/etc
|
||||
elif [ -d /etc/rc.d/rc0.d ]
|
||||
then RC_DIR=/etc/rc.d
|
||||
else return 0
|
||||
fi
|
||||
# Examine system bootstrap files.
|
||||
if [ -d /etc/rc0.d ]; then
|
||||
RC_DIR=/etc
|
||||
elif [ -d /etc/rc.d/rc0.d ]; then
|
||||
RC_DIR=/etc/rc.d
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
|
||||
PROD=wanrouter
|
||||
START_SCRIPT=S20wanrouter
|
||||
STOP_SCRIPT=K10wanrouter
|
||||
PROD_INIT=/usr/sbin/wanrouter
|
||||
PROD_INIT=$RC_DIR/init.d/$PROD
|
||||
|
||||
echo "Removing WANPIPE start-up scripts: $RC_DIR"
|
||||
rm -f $RC_DIR/rc2.d/$START_SCRIPT
|
||||
rm -f $RC_DIR/rc3.d/$START_SCRIPT
|
||||
rm -f $RC_DIR/rc4.d/$START_SCRIPT
|
||||
rm -f $RC_DIR/rc5.d/$START_SCRIPT
|
||||
update-rc.d -f wanrouter remove
|
||||
rm -f $PROD_INIT
|
||||
|
||||
rm -f $RC_DIR/rc0.d/$STOP_SCRIPT
|
||||
rm -f $RC_DIR/rc1.d/$STOP_SCRIPT
|
||||
rm -f $RC_DIR/rc6.d/$STOP_SCRIPT
|
||||
|
||||
rm -f $RC_DIR/init.d/$PROD
|
||||
return 0
|
||||
return 0
|
||||
}
|
||||
|
||||
#remove start-on-boot scripts
|
||||
remove_init;
|
||||
|
||||
case "$1" in
|
||||
remove|deconfigure)
|
||||
# remove start-on-boot scripts
|
||||
remove_init;
|
||||
;;
|
||||
upgrade)
|
||||
echo "Nothing to Remove, wanpipe install script understand this"
|
||||
;;
|
||||
failed-upgrade)
|
||||
;;
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Package: wanpipe
|
||||
Version: 3.5.15-0
|
||||
Version: 3.5.16-0
|
||||
Section: networking
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
|
@ -13,5 +13,16 @@ Maintainer: Nenad Corbic [ncorbic@sangoma.com]
|
|||
Conflicts:
|
||||
Replaces:
|
||||
Provides: wanpipe
|
||||
Description: WANPIPE S-series is a family of intelligent multi-protocol WAN adapters that support data transfer rates up to 4Mbps. All WAN protocols supported by WANPIPE are implemented in firmware and run on the card. An advantage of an intelligent adapter is that it offloads the system CPU and improves stability. By adding a Sangoma WAN component to the Linux kernel, one can create a powerful multi-T1 router/firewall with proven reliability of Linux. Sangoma S-series cards support an optional on board CSU/DSU that eliminates all external components of a traditional routing solution. The T1 line can be directly connected to the card. WANPIPE supports the following protocols, Frame Relay, X25(API), PPP, MULTILINK PPP and CHDLC. Furthermore, WANPIPE supports custom API development such as: Credit card verification, Voice-over IP, Satellite Comm. All device drivers are part of the standard Linux Kernel distribution.
|
||||
|
||||
Description: WANPIPE Voice/WAN Routing/API solution
|
||||
WANPIPE S-series is a family of intelligent multi-protocol WAN adapters that
|
||||
support data transfer rates up to 4Mbps. All WAN protocols supported by WANPIPE
|
||||
are implemented in firmware and run on the card. An advantage of an intelligent
|
||||
adapter is that it offloads the system CPU and improves stability. By adding a
|
||||
Sangoma WAN component to the Linux kernel, one can create a powerful multi-T1
|
||||
router/firewall with proven reliability of Linux. Sangoma S-series cards support
|
||||
an optional on board CSU/DSU that eliminates all external components of a traditional
|
||||
routing solution. The T1 line can be directly connected to the card. WANPIPE supports
|
||||
the following protocols, Frame Relay, X25(API), PPP, MULTILINK PPP and CHDLC.
|
||||
Furthermore, WANPIPE supports custom API development such as: Credit card verification,
|
||||
Voice-over IP, Satellite Comm. All device drivers are part of the standard
|
||||
Linux Kernel distribution.
|
||||
|
|
|
@ -36,6 +36,12 @@
|
|||
|
||||
#define A500_MAX_EC_CHANS 64
|
||||
|
||||
#define WP_ZAPTEL_ENABLED 0
|
||||
#define WP_ZAPTEL_DCHAN_OPTIMIZATION 1
|
||||
|
||||
#define WP_TDM_CHAN_API_ENABLED 0
|
||||
#define WP_TDM_SPAN_API_ENABLED 1
|
||||
#define WP_TDM_API_DCHAN_OPTIMIZATION 2
|
||||
|
||||
|
||||
/* Trigger on Number of transactions
|
||||
|
|
|
@ -73,7 +73,7 @@ int aft_tdm_ring_rsync(sdla_t *card);
|
|||
|
||||
int aft_core_send_serial_oob_msg (sdla_t *card);
|
||||
int wan_user_process_udp_mgmt_pkt(void* card_ptr, void* chan_ptr, void *udata);
|
||||
|
||||
int aft_check_and_disable_dchan_optimization(sdla_t *card, private_area_t *chan, char *usedby);
|
||||
|
||||
/*=================================================================
|
||||
* Used for debugging only
|
||||
|
|
|
@ -656,12 +656,16 @@ typedef struct
|
|||
sdla_mem_handle_t bar_virt;
|
||||
unsigned char tdm_rx_dma_toggle[32];
|
||||
unsigned char tdm_tx_dma_toggle[32];
|
||||
wan_dma_descr_t *tdm_tx_dma[32];
|
||||
wan_dma_descr_t *tdm_rx_dma[32];
|
||||
unsigned int tdm_logic_ch_map;
|
||||
|
||||
wan_ticks_t sec_chk_cnt;
|
||||
wan_skb_queue_t rtp_tap_list;
|
||||
unsigned int serial_status;
|
||||
unsigned char global_tdm_irq;
|
||||
unsigned int tdm_api_cfg;
|
||||
unsigned int tdm_api_dchan_cfg;
|
||||
|
||||
} sdla_xilinx_t;
|
||||
|
||||
|
|
|
@ -91,6 +91,7 @@ typedef int sng_fd_t;
|
|||
#endif
|
||||
#define WP_API_FEATURE_DRIVER_GAIN 1
|
||||
#define WP_API_FEATURE_FE_RW 1
|
||||
#define WP_API_FEATURE_HWEC_PERSIST 1
|
||||
|
||||
/*!
|
||||
\enum WANPIPE_IOCTL_CODE
|
||||
|
@ -274,6 +275,7 @@ enum wanpipe_api_cmds
|
|||
WP_API_CMD_DISABLE_LOOP, /*!< Disable remote loop */
|
||||
WP_API_CMD_BUFFER_MULTIPLIER, /*!< Set Buffer Multiplier - for SPAN voice mode only */
|
||||
WP_API_CMD_GET_HW_EC_CHAN, /*!< Get status of hwec for the current timeslot */
|
||||
WP_API_CMD_GET_HW_EC_PERSIST, /*!< Check if hwec persist mode is on or off */
|
||||
|
||||
/* Add only debugging commands here */
|
||||
WP_API_CMD_GEN_FIFO_ERR_TX=500,
|
||||
|
|
|
@ -80,6 +80,10 @@
|
|||
# define WAN_SK_SLEEP(sk) sk->sk_sleep
|
||||
#endif
|
||||
|
||||
#ifndef DMA_BIT_MASK
|
||||
#define DMA_BIT_MASK(a) DMA_32BIT_MASK
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#ifdef WAN_KERNEL
|
||||
|
||||
#define WP_TDM_API_MAX_LEN 4096+sizeof(wp_api_hdr_t)
|
||||
#define WP_TDM_API_EVENT_MAX_LEN sizeof(wanpipe_tdm_api_dev_t)+sizeof(wp_api_hdr_t)
|
||||
#define WP_TDM_API_EVENT_MAX_LEN sizeof(wp_api_event_t)+sizeof(wp_api_hdr_t)
|
||||
|
||||
#define WP_TDM_API_CHUNK_SZ 8
|
||||
#define WP_RM_RXFLASHTIME 0 /* Default disable flash */
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#define WANPIPE_COMPANY "Sangoma Technologies Inc"
|
||||
|
||||
/********** LINUX **********/
|
||||
#define WANPIPE_VERSION "3.5.15"
|
||||
#define WANPIPE_VERSION "3.5.16"
|
||||
#define WANPIPE_SUB_VERSION "0"
|
||||
#define WANPIPE_LITE_VERSION "1.1.1"
|
||||
|
||||
|
|
|
@ -30,17 +30,23 @@
|
|||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_ECHOCANCEL_FAX_MODE
|
||||
#undef DAHDI_24
|
||||
#undef DAHDI_22
|
||||
#undef DAHDI_23
|
||||
|
||||
#if defined(DAHDI_MAINT_ALARM_SIM)
|
||||
#define DAHDI_24
|
||||
#define DAHDI_23
|
||||
#define DAHDI_22
|
||||
#elif defined(DAHDI_AUDIO_NOTIFY)
|
||||
#define DAHDI_23
|
||||
#define DAHDI_22
|
||||
#elif defined(DAHDI_ECHOCANCEL_FAX_MODE)
|
||||
#define DAHDI_22
|
||||
#else
|
||||
#undef DAHDI_22
|
||||
/* Configuring for old 20 dahdi */
|
||||
#endif
|
||||
|
||||
#ifdef DAHDI_AUDIO_NOTIFY
|
||||
#define DAHDI_23
|
||||
#else
|
||||
#undef DAHDI_23
|
||||
#endif
|
||||
|
||||
// defines
|
||||
#define ZT_CODE DAHDI_CODE
|
||||
|
@ -155,6 +161,17 @@
|
|||
#define zt_ec_span dahdi_ec_span
|
||||
#define zt_qevent_lock dahdi_qevent_lock
|
||||
|
||||
#ifdef DAHDI_24
|
||||
#define DAHDI_SPAN_OPS(span, func_name) span.ops->func_name
|
||||
#define WP_PRIV_FROM_SPAN(span_dev, str_type) container_of(span_dev,str_type,span)
|
||||
#define WP_PRIV_FROM_CHAN(chan_dev, str_type) WP_PRIV_FROM_SPAN(chan_dev->span,str_type)
|
||||
#else
|
||||
#define DAHDI_SPAN_OPS(span, func_name) span.func_name
|
||||
#define WP_PRIV_FROM_SPAN(span_dev, str_type) span_dev->pvt
|
||||
#define WP_PRIV_FROM_CHAN(chan_dev, str_type) chan_dev->pvt
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
# define WP_ZT_QEVENT_LOCK(chan, event) dahdi_qevent_lock((chan),(event))
|
||||
|
||||
|
@ -169,6 +186,9 @@
|
|||
ZT_EVENT_NOALARM : ZT_EVENT_ALARM)
|
||||
#endif
|
||||
|
||||
#define DAHDI_SPAN_OPS(span, func_name) span.func_name
|
||||
#define WP_PRIV_FROM_SPAN(span_dev, str_type) span_dev->pvt
|
||||
#define WP_PRIV_FROM_CHAN(chan_dev, str_type) chan_dev->pvt
|
||||
|
||||
# define WP_ZT_QEVENT_LOCK(chan, event) zt_qevent_lock(&(chan),(event))
|
||||
#endif
|
||||
|
|
|
@ -1016,7 +1016,7 @@ int wplip_change_mtu(netdevice_t *dev, int new_mtu)
|
|||
__FUNCTION__,lip_link->name);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
||||
if (lip_dev_list_el->magic != WPLIP_MAGIC_DEV_EL){
|
||||
DEBUG_EVENT("%s: %s: Error: Invalid dev magic number!\n",
|
||||
__FUNCTION__,lip_link->name);
|
||||
|
@ -1035,7 +1035,7 @@ int wplip_change_mtu(netdevice_t *dev, int new_mtu)
|
|||
}
|
||||
|
||||
if (err == 0) {
|
||||
WAN_NETDEV_OPS_MTU(dev,wan_netdev_ops,new_mtu);
|
||||
WAN_NETDEV_CHANGE_MTU(dev,new_mtu);
|
||||
}
|
||||
|
||||
return err;
|
||||
|
|
|
@ -1,215 +0,0 @@
|
|||
0x7c19de34 got_new_syncer /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xf7567a8a wanpipe_api_buf_check /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xf27fa082 wanpipe_lip_connect /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x7ff2cd30 wanpipe_cdev_tdm_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xc6edf870 vpmadt032_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xe656360e sdladrv_hw_mode /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x53ece134 wanpipe_cdev_tx_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x1df80ee2 wanpipe_cdev_rx_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xc877a4cb put_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x8c78cb9b xframe_next_packet /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x92e7bb62 xframe_queue_clearstats /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x03865603 sdla_register /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x19e75bf2 voicebus_stop /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x6072c8a2 dahdi_transcoder_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
|
||||
0xc0ef42f1 wp_sppp_input /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x597475a3 dahdi_register_chardev /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x48bddc3c voicebus_current_latency /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xe5a5dabe dahdi_transcoder_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
|
||||
0x0c3b63d8 pcmtx_chan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x57e6ed60 wanpipe_api_sock_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x0a7a356f wanpipe_cdev_event_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x12dfa58e dahdi_qevent_nolock /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xf5d22416 get_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xecace35b wanrouter_proc_add_interface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x59fb2682 sdla_hw_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xce69e3a7 dahdi_hooksig /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xe6ce6bea sync_mode_name /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x9a7a6658 wanpipe_lip_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x8f31cdeb proc_router /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x47151521 xbus_activate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x2cc2381f update_wanted_pcm_mask /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xa79ecb53 xbus_disconnect /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x2974b24a generic_card_pcm_tospan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xc945873d dahdi_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x77da8dee register_wanec_iface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x1036a1ab bind_api_listen_to_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x8e0e566e xproto_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x537eb672 xframe_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x12cb4707 xpd_post_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xd63e1d87 voicebus_release /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xd7eeeeb5 report_bad_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xb522bb3f vpmadt032_reset /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x425ddbab xbus_request_removal /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x60c154c5 update_xpd_status /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x599e779b vpmadt032_echocan_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x006a2198 __dahdi_mulaw /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xc5fb06b9 xproto_name /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xddf2e333 xpp_open /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x9513f4ff run_initialize_registers /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x524e2f20 register_wanpipe_fw_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x7c2dc516 register_wan_device /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x635a1d83 gpakConfigurePorts /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x01b0f433 xpd_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xf4a2bf8e xframe_queue_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xa78a3f8f notify_rxsig /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x45866c4c wanrouter_proc_add_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xfc5f75a8 wp_sppp_attach /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x90a9f616 wp_sppp_detach /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x592e5c90 xbus_setstate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x0deeaedb wp_logger_repeating_message_filter /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x13c7069b dahdi_transcode_fops /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x55b59227 vpmadt032_echocan_create /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x618aefa9 wanpipe_cdev_logger_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xd083d5c4 send_pcm_frame /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x8b05ea95 xbus_deactivate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xdc3a2c77 xbus_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xf7f5afa4 wanpipe_ec_event_ctrl /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x38e1c7fd xpp_close /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xcd6633df dahdi_set_dynamic_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xc2b56d8c vpmadt032_get_default_parameters /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x624e96fa xframe_dequeue /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x97eb6143 xframe_enqueue /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xe0c9b849 dahdi_transcoder_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
|
||||
0x9c462e00 voicebus_set_minlatency /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xf42f429a dahdi_init_tone_state /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xaf8e1806 xpd_driver_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x06403f91 put_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xbdc234d9 vpmadtreg_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x71aafde0 vpmadtreg_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xad0e46e6 debug /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x6201c669 wp_logger_level_fe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xbdd1b41c dahdi_unregister_echocan_factory /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xb3af45ff generic_card_pcm_recompute /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xb48548fa __dahdi_lin2a /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x7cd3c2bc wanpipe_ec_poll /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x9e48e1bc wanrouter_proc_delete_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x2d6794f0 xpd_byaddr /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xb1d6d6be hookstate_changed /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x6dd4c4d6 wanpipe_cdev_free /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xdfd0f6c6 sdla_get_hw_adptr_cnt /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xef11c1ba dahdi_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x6ad0c191 wp_logger_level_bri /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x3d183b5d get_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x82e127c6 send_cmd_frame /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x72d0bb1d dahdi_hdlc_getbuf /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xc2143791 wanpipe_ec_register /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x1e82f485 wp_sppp_change_mtu /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x0cca3f0e __dahdi_lin2mu /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x6a062e24 xframe_queue_disable /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xc288bfdc wanpipe_cdev_cfg_ctrl_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x373bca89 xbus_receive_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xad1272e5 dump_reg_cmd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xb8da2b4c wanpipe_global_cdev_free /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x47ff4922 wanpipe_cdev_tdm_ctrl_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x4ce4fe8b dahdi_qevent_lock /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xaa81d611 wanpipe_global_cdev_init /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x8f9e9e1f dahdi_alarm_notify /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x02364d27 wanrouter_encapsulate /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x136b2537 wan_skb_destructor /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x3f234f3e wp_logger_input /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x8f645409 dahdi_sync_tick /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x068090ff notify_bad_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x91c86c35 dahdi_register_echocan_factory /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x8e04fd95 dump_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xfa083e32 register_wanpipe_api_socket /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xb2cc48ff elect_syncer /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x4de93988 sdla_get_hw_usb_adptr_cnt /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xade2d0d7 sdla_get_hw_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xd90451b0 wanpipe_cdev_timer_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x0f19df36 sdladrv_callback /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x3d8bebde mark_offhook /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xbd4a533a sdla_get_hwinfo /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xd5c12072 transportops_put /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x0231f4ab transportops_get /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x05d662e5 dahdi_unregister_chardev /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xef48df91 proc_add_line /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x22a2999f sdla_unregister /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xa72dc741 dahdi_transcoder_alert /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
|
||||
0x5a8b7434 voicebus_vbb_cache /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x4b8cdbf2 xproto_global_entry /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x85c05713 wanrouter_type_trans /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xe5eb1132 gpakPingDsp /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x8ba85e84 xbus_connect /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xec7b087b gpakConfigureChannel /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xc98aebe6 wan_get_ip_address /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xfd74fadb wan_set_ip_address /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x7d68ed07 protocol_disconnected /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xc5224c15 bind_api_to_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xd07870ea xpd_of /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xfdd623b4 valid_xpd_addr /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x38eb6851 unregister_wanpipe_api_socket /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xaac011d2 wanpipe_lip_kick /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xf0f056a0 xpd_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x64a6fdeb alarm2str /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x3b604364 unbind_api_listen_from_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xcf1a0233 xpp_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x6df6c4e0 wan_run_wanrouter /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xdd7bc49e dahdi_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x23e9e447 dahdi_dynamic_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
|
||||
0x058098af xframe_queue_clear /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x141f7b48 xproto_card_entry /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x0a29c949 generic_card_pcm_fromspan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x05487ec8 wp_logger_level_default /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x28c9b161 dump_packet /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x7cc79ec0 dahdi_alarm_channel /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x8ceddc4b vpmadt032_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x6045e8cb dahdi_dynamic_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
|
||||
0xeb418feb sdla_hw_bridge_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x04df932b unregister_wanec_iface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xea9f3201 gl_usb_rw_fast /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x430a8848 dahdi_mf_tone /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x562d2ade wanpipe_ec_isr /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x821b2778 dump_poll /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x65e6b5eb vpmadt032_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x7817cb58 xbus_reset_counters /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xa2d6910d oht_pcm /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x13405f6b unregister_wanpipe_fw_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xe72f44cb wanpipe_api_listen_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xe6bc2d6d wp_sppp_open /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x238f240b wp_sppp_reopen /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x67428f4d dahdi_ec_span /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x8bab76f8 wp_logger_level_tdmapi /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0xed5e8380 dahdi_transcoder_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
|
||||
0x528a0730 xframe_queue_count /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xa9b5f188 xbus_command_queue_tick /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xa407ff09 voicebus_start /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xc4071a06 __dahdi_alaw /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x7b40a84d dahdi_hdlc_putbuf /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x31386140 dahdi_hdlc_abort /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x72ddd010 wp_sppp_do_ioctl /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x5b7efb57 wanpipe_api_poll_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x529d6203 dahdi_lboname /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x2dfb51e3 create_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xc95646c8 voicebus_transmit /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xc80ea69b xpp_maint /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x651a840a wan_add_gateway /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x805cbe1e wp_sppp_close /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
|
||||
0x6719218e wanrouter_proc_delete_interface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x2f21a326 unregister_wanpipe_lip_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xb53d0d74 __voicebus_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0xc11b8c26 xpd_driver_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x0ebe03d1 unregister_wan_device /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x782bbc32 dahdi_transmit /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x3ee7da88 dahdi_hdlc_finish /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xfaa93356 xpp_register_request /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x6aa023ac xbus_statename /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xeb2ef21c xbus_request_sync /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x22317d82 wanpipe_lip_disconnect /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x4914a44f dahdi_rbsbits /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0x8019389a gpakAlgControl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
|
||||
0x74a9ab7b wp_logger_level_te1 /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x120e8bb6 send_multibyte_request /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xf22c9714 xframe_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xed6a48f7 protocol_connected /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x53350bd4 wanpipe_ec_unregister /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0x2ef28734 pcmtx /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x71672675 dahdi_dynamic_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
|
||||
0xe5a73e62 dahdi_set_hpec_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xc12eb167 wp_logger_level_hwec /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
|
||||
0x6d91edc4 xproto_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x0bd2816a dahdi_ec_chunk /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
|
||||
0xc76eb4f8 register_wanpipe_lip_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
||||
0xd296bbaa xbus_new /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0xbff0a11c xbus_num /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
|
||||
0x00525339 protocol_connecting /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
|
|
@ -218,8 +218,8 @@
|
|||
#undef SPAN_TIMING_DEBUGGING
|
||||
#endif
|
||||
|
||||
#define WP_ZAPTEL_ENABLED 0
|
||||
#define WP_ZAPTEL_DCHAN_OPTIMIZATION 1
|
||||
|
||||
|
||||
#define WP_RX_TX_FIFO_SANITY 100
|
||||
|
||||
|
||||
|
@ -805,6 +805,9 @@ int wp_aft_bri_init (sdla_t *card, wandev_conf_t* conf)
|
|||
card->wandev.comm_port=card->fe.fe_cfg.line_no;
|
||||
#endif
|
||||
|
||||
/* BRI cards never start with hwec enabled. */
|
||||
card->hwec_conf.persist_disable=1;
|
||||
|
||||
DEBUG_EVENT("%s: BRI CARD Line=%d Port=%d\n",
|
||||
card->devname, card->wandev.comm_port, card->fe.fe_cfg.line_no);
|
||||
|
||||
|
@ -1500,6 +1503,18 @@ static int update (wan_device_t* wandev)
|
|||
#warning "COMM STATS DISABLED"
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* Debugginc code used to generate SYNC error */
|
||||
#warning "NENAD DEBUG"
|
||||
{
|
||||
u32 lcfg_reg;
|
||||
__sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), &lcfg_reg);
|
||||
aft_lcfg_set_fe_sync_cnt(&lcfg_reg,1);
|
||||
__sdla_bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), lcfg_reg);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2009,15 +2024,11 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t*
|
|||
* XMTP2_API = MTP2 API
|
||||
*===================================================*/
|
||||
|
||||
/* If we are running zaptel with another mode, we must
|
||||
* disable zaptel dchan optimization */
|
||||
if (strcmp(conf->usedby, "TDM_VOICE") != 0) {
|
||||
if (card->u.aft.tdmv_zaptel_cfg) {
|
||||
DEBUG_EVENT("%s: Disabling ZAPTEL DCHAN OPTIMIZATION !\n",chan->if_name);
|
||||
wan_clear_bit(WP_ZAPTEL_DCHAN_OPTIMIZATION,&card->u.aft.tdmv_zaptel_cfg);
|
||||
}
|
||||
}
|
||||
/* If we are running zaptel or tdm chan api with another mode, we must
|
||||
* disable dchan optimization */
|
||||
aft_check_and_disable_dchan_optimization(card,chan,conf->usedby);
|
||||
|
||||
|
||||
if(strcmp(conf->usedby, "WANPIPE") == 0) {
|
||||
|
||||
DEBUG_EVENT( "%s: Running in WANPIPE mode\n",
|
||||
|
@ -2195,7 +2206,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t*
|
|||
chan->dma_chain_opmode = WAN_AFT_DMA_CHAIN_SINGLE;
|
||||
chan->max_tx_bufs=MAX_AFT_DMA_CHAINS;
|
||||
|
||||
/* Eanble Zaptel Optimization */
|
||||
/* Enable Zaptel Optimization */
|
||||
wan_set_bit(WP_ZAPTEL_ENABLED,&card->u.aft.tdmv_zaptel_cfg);
|
||||
wan_set_bit(WP_ZAPTEL_DCHAN_OPTIMIZATION,&card->u.aft.tdmv_zaptel_cfg);
|
||||
|
||||
|
@ -2290,14 +2301,26 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t*
|
|||
}
|
||||
#endif
|
||||
|
||||
if (chan->wp_api_iface_mode != WP_TDM_API_MODE_LEGACY_WIN_API) {
|
||||
wan_set_bit(WP_TDM_CHAN_API_ENABLED,&card->u.aft.tdm_api_cfg);
|
||||
wan_set_bit(WP_TDM_API_DCHAN_OPTIMIZATION,&card->u.aft.tdm_api_cfg);
|
||||
}
|
||||
|
||||
chan->wp_api_op_mode=WP_TDM_OPMODE_CHAN;
|
||||
|
||||
if (dchan >= 0){
|
||||
if (dchan >= 0) {
|
||||
chan->common.usedby = TDM_VOICE_DCHAN;
|
||||
chan->usedby_cfg = chan->common.usedby;
|
||||
chan->cfg.data_mux=0;
|
||||
chan->dma_chain_opmode = WAN_AFT_DMA_CHAIN;
|
||||
conf->hdlc_streaming=1;
|
||||
card->u.aft.tdm_api_dchan_cfg++;
|
||||
|
||||
if (card->u.aft.tdm_api_dchan_cfg > 1) {
|
||||
DEBUG_EVENT("%s: TDM API DCHAN Optimization disabled - multiple dchans!\n",
|
||||
card->devname);
|
||||
wan_clear_bit(WP_TDM_API_DCHAN_OPTIMIZATION,&card->u.aft.tdm_api_cfg);
|
||||
}
|
||||
}
|
||||
|
||||
if (!silent) {
|
||||
|
@ -2540,11 +2563,6 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t*
|
|||
|
||||
}else{
|
||||
|
||||
/* In case hdlc repeat is on, make sure we disable dma chain */
|
||||
if (chan->cfg.hdlc_repeat) {
|
||||
chan->dma_chain_opmode = WAN_AFT_DMA_CHAIN_SINGLE;
|
||||
}
|
||||
|
||||
/* If hardware HDLC engine is enabled:
|
||||
* 1. Force Disable DATA MUX option
|
||||
* just in case user made a mistake
|
||||
|
@ -3711,30 +3729,27 @@ static int if_init (netdevice_t* dev)
|
|||
WAN_NETDEV_OPS_XMIT(dev,wan_netdev_ops,&if_send);
|
||||
#endif
|
||||
WAN_NETDEV_OPS_STATS(dev,wan_netdev_ops,&if_stats);
|
||||
#if 0
|
||||
dev->tx_timeout = &if_tx_timeout;
|
||||
dev->watchdog_timeo = 2*HZ;
|
||||
#else
|
||||
|
||||
if (chan->common.usedby == TDM_VOICE ||
|
||||
chan->common.usedby == TDM_VOICE_API){
|
||||
WAN_NETDEV_OPS_TIMEOUT(dev,wan_netdev_ops,NULL);
|
||||
WAN_NETDEV_OPS_TIMEOUT(dev,wan_netdev_ops,NULL);
|
||||
dev->watchdog_timeo = 2*HZ;
|
||||
}else{
|
||||
WAN_NETDEV_OPS_TIMEOUT(dev,wan_netdev_ops,&if_tx_timeout);
|
||||
}
|
||||
WAN_NETDEV_OPS_TIMEOUT(dev,wan_netdev_ops,&if_tx_timeout);
|
||||
|
||||
dev->watchdog_timeo = 2*HZ;
|
||||
{
|
||||
u32 secs = ((chan->max_tx_bufs/2)*chan->dma_mru*8) / (64000 * chan->num_of_time_slots);
|
||||
secs+=2;
|
||||
if (secs < 2) {
|
||||
secs=2;
|
||||
dev->watchdog_timeo = 2*HZ;
|
||||
{
|
||||
u32 secs = ((chan->max_tx_bufs/2)*chan->dma_mru*8) / (64000 * chan->num_of_time_slots);
|
||||
secs+=2;
|
||||
if (secs < 2) {
|
||||
secs=2;
|
||||
}
|
||||
dev->watchdog_timeo = secs*HZ;
|
||||
|
||||
DEBUG_EVENT("%s: Dev watch dog = %i mtu=%i\n", card->devname, secs,chan->dma_mru);
|
||||
}
|
||||
dev->watchdog_timeo = secs*HZ;
|
||||
|
||||
DEBUG_TEST("%s: Dev watch dog = %i mtu=%i\n", card->devname, secs,chan->dma_mru);
|
||||
}
|
||||
|
||||
#endif
|
||||
WAN_NETDEV_OPS_IOCTL(dev,wan_netdev_ops,&if_do_ioctl);
|
||||
WAN_NETDEV_OPS_MTU(dev,wan_netdev_ops,if_change_mtu);
|
||||
|
||||
|
@ -4362,12 +4377,16 @@ static struct net_device_stats* if_stats (netdevice_t* dev)
|
|||
if (card) {
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
|
||||
if (card->wan_tdmv.sc &&
|
||||
wan_test_bit(WP_ZAPTEL_DCHAN_OPTIMIZATION,&card->u.aft.tdmv_zaptel_cfg) &&
|
||||
card->wandev.state == WAN_CONNECTED &&
|
||||
card->wandev.config_id != WANCONFIG_AFT_ANALOG &&
|
||||
chan->common.usedby == TDM_VOICE) {
|
||||
card->u.aft.global_tdm_irq &&
|
||||
card->wandev.state == WAN_CONNECTED &&
|
||||
card->wandev.config_id != WANCONFIG_AFT_ANALOG &&
|
||||
chan->common.usedby == TDM_VOICE) {
|
||||
|
||||
chan->common.if_stats.rx_packets = card->wandev.stats.rx_packets;
|
||||
chan->common.if_stats.tx_packets = card->wandev.stats.tx_packets;
|
||||
//chan->common.if_stats.rx_bytes = card->wandev.stats.rx_bytes;
|
||||
//chan->common.if_stats.tx_bytes = card->wandev.stats.tx_bytes;
|
||||
|
||||
} else
|
||||
#endif
|
||||
if (card->tdm_api_span &&
|
||||
|
@ -4375,6 +4394,8 @@ static struct net_device_stats* if_stats (netdevice_t* dev)
|
|||
!IS_B601_TE1_CARD(card)) {
|
||||
chan->common.if_stats.rx_packets = card->wandev.stats.rx_packets;
|
||||
chan->common.if_stats.tx_packets = card->wandev.stats.tx_packets;
|
||||
//chan->common.if_stats.rx_bytes = card->wandev.stats.rx_bytes;
|
||||
//chan->common.if_stats.tx_bytes = card->wandev.stats.tx_bytes;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -4975,11 +4996,15 @@ static void aft_dma_tx_complete (sdla_t *card, private_area_t *chan, int wdt, in
|
|||
what to do */
|
||||
|
||||
|
||||
DEBUG_TEST("%s: STACK STOPPED Pending=%d Max=%d Max/2=%d\n",
|
||||
DEBUG_TEST("%s: STACK STOPPED Pending=%d Max=%d Max/2=%d wdt=%i\n",
|
||||
chan->if_name,wan_skb_queue_len(&chan->wp_tx_pending_list),
|
||||
chan->max_tx_bufs,chan->max_tx_bufs/2,wdt);
|
||||
/* should we check chan->max_tx_bufs/2 only for hdlc?? and always wake for voice? */
|
||||
if (wan_skb_queue_len(&chan->wp_tx_pending_list) <= (chan->max_tx_bufs/2)) {
|
||||
DEBUG_TEST("%s: STACK Waking Pending=%d Max=%d Max/2=%d\n",
|
||||
chan->if_name,wan_skb_queue_len(&chan->wp_tx_pending_list),
|
||||
chan->max_tx_bufs,chan->max_tx_bufs/2);
|
||||
|
||||
if (wan_skb_queue_len(&chan->wp_tx_pending_list) <= (chan->max_tx_bufs/2)) {
|
||||
|
||||
wanpipe_wake_stack(chan);
|
||||
}
|
||||
}
|
||||
|
@ -6835,7 +6860,7 @@ if (1){
|
|||
void **card_list;
|
||||
wan_smp_flag_t flags=0;
|
||||
u32 i;
|
||||
|
||||
|
||||
WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED);
|
||||
|
||||
#if 0
|
||||
|
@ -6918,10 +6943,15 @@ if (1){
|
|||
|
||||
if (ring_rsync) {
|
||||
aft_tdm_ring_rsync(tmp_card);
|
||||
/* Restart all hdlc devices after resync because tx buffers might have
|
||||
been corrupted */
|
||||
__wp_aft_fifo_per_port_isr(tmp_card,0xFFFFFFFF,0xFFFFFFFF);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
|
||||
if ((tmp_card->wan_tdmv.sc || tmp_card->tdm_api_span) &&
|
||||
!tmp_card->wandev.rtp_len &&
|
||||
|
@ -6935,11 +6965,12 @@ if (1){
|
|||
if (tmp_card->tdm_api_span &&
|
||||
!tmp_card->wandev.rtp_len &&
|
||||
tmp_card->wandev.config_id != WANCONFIG_AFT_ANALOG) {
|
||||
|
||||
|
||||
aft_voice_span_rx_tx(tmp_card,
|
||||
ring_buf_enabled);
|
||||
|
||||
} else {
|
||||
|
||||
wp_aft_tdmv_per_port_isr(tmp_card);
|
||||
}
|
||||
|
||||
|
@ -7005,6 +7036,8 @@ if (1){
|
|||
|
||||
} else {
|
||||
|
||||
|
||||
|
||||
if (wan_test_bit(AFT_LCFG_TDMV_INTR_BIT,&card->u.aft.lcfg_reg) &&
|
||||
wan_test_bit(card->wandev.comm_port,&tdmv_port_intr)){
|
||||
|
||||
|
@ -7389,9 +7422,12 @@ static void wp_aft_dma_per_port_isr(sdla_t *card, int tdm)
|
|||
{
|
||||
int i;
|
||||
u32 dma_tx_reg=0,dma_rx_reg=0;
|
||||
|
||||
#if 0
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
|
||||
private_area_t *chan;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef AFT_IRQ_STAT_DEBUG
|
||||
|
@ -7417,14 +7453,15 @@ static void wp_aft_dma_per_port_isr(sdla_t *card, int tdm)
|
|||
* 3. Error conditions.
|
||||
* --------------------------------------------------*/
|
||||
|
||||
/* Zaptel optimization. Dont waist time looking at
|
||||
/* DCHAN optimization. Dont waist time looking at
|
||||
channels, when we know that only a single DCHAN
|
||||
will use this code */
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
|
||||
if (card->wan_tdmv.sc &&
|
||||
|
||||
#if 0
|
||||
if (wan_test_bit(WP_TDM_API_DCHAN_OPTIMIZATION,&card->u.aft.tdm_api_cfg) ||
|
||||
wan_test_bit(WP_ZAPTEL_DCHAN_OPTIMIZATION,&card->u.aft.tdmv_zaptel_cfg)) {
|
||||
__sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_RX_DMA_INTR_PENDING_REG),&dma_rx_reg);
|
||||
__sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_TX_DMA_INTR_PENDING_REG),&dma_tx_reg);
|
||||
__sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_TX_DMA_INTR_PENDING_REG),&dma_tx_reg);
|
||||
if (card->u.aft.tdmv_dchan) {
|
||||
chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.tdmv_dchan-1];
|
||||
if (chan && wan_test_bit(WP_DEV_CONFIG,&chan->up)) {
|
||||
|
@ -8548,6 +8585,7 @@ void aft_tx_fifo_under_recover (sdla_t *card, private_area_t *chan)
|
|||
|
||||
/* If running in mixed mode DATA + Voice do not disable DMA */
|
||||
if (chan->hdlc_eng && card->u.aft.global_tdm_irq) {
|
||||
aft_init_tx_dev_fifo(card,chan,WP_WAIT);
|
||||
aft_dma_tx_complete(card,chan,0, 1);
|
||||
aft_free_tx_descriptors(chan);
|
||||
aft_dma_tx(card,chan);
|
||||
|
@ -9232,9 +9270,16 @@ static int aft_dma_voice_tx(sdla_t *card, private_area_t *chan)
|
|||
|
||||
dma_chain = &chan->tx_dma_chain_table[0];
|
||||
|
||||
/* Save the DMA descriptor into cards structure
|
||||
so it can be used in the optimized dahid/tdmapi rx
|
||||
routine. Used to sync up the dma before being used.
|
||||
We can do this blidnly because this function only
|
||||
runs once on dma start. */
|
||||
card->u.aft.tdm_tx_dma[chan->logic_ch_num]=dma_chain;
|
||||
|
||||
DEBUG_DMA("%s: %s:%s:: Chain %d Used %ld\n",
|
||||
__FUNCTION__,card->devname,chan->if_name,
|
||||
dma_chain->index,dma_chain->init);
|
||||
dma_chain->index,dma_chain->init,chan->logic_ch_num);
|
||||
|
||||
/* If the current DMA chain is in use,then
|
||||
* all chains are busy */
|
||||
|
@ -9707,6 +9752,13 @@ static int aft_dma_voice_rx(sdla_t *card, private_area_t *chan)
|
|||
|
||||
dma_chain = &chan->rx_dma_chain_table[0];
|
||||
|
||||
/* Save the DMA descriptor into cards structure
|
||||
so it can be used in the optimized dahid/tdmapi rx
|
||||
routine. Used to sync up the dma before being used.
|
||||
We can do this blidnly because this function only
|
||||
runs once on dma start. */
|
||||
card->u.aft.tdm_rx_dma[chan->logic_ch_num]=dma_chain;
|
||||
|
||||
DEBUG_DMA("%s: %s:%s: Chain %d Used %ld\n",
|
||||
__FUNCTION__,card->devname,chan->if_name,
|
||||
dma_chain->index,dma_chain->init);
|
||||
|
@ -11285,7 +11337,7 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan)
|
|||
|
||||
rxbuf = (unsigned char*)rx_dma_chain->dma_virt+rx_offset;
|
||||
txbuf = (unsigned char*)tx_dma_chain->dma_virt+tx_offset;
|
||||
|
||||
|
||||
if (wan_test_bit(AFT_TDM_RING_BUF,&card->u.aft.chip_cfg_status)) {
|
||||
|
||||
rx_offset= AFT_TDMV_CIRC_BUF * card->u.aft.tdm_rx_dma_toggle[chan->first_time_slot];
|
||||
|
@ -11319,6 +11371,19 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan)
|
|||
|
||||
}
|
||||
|
||||
card->hw_iface.busdma_sync(
|
||||
card->hw,
|
||||
&chan->tx_dma_chain_table[0],
|
||||
MAX_AFT_DMA_CHAINS,
|
||||
(chan->dma_chain_opmode == WAN_AFT_DMA_CHAIN_SINGLE),
|
||||
SDLA_DMA_PREWRITE);
|
||||
|
||||
card->hw_iface.busdma_sync(
|
||||
card->hw,
|
||||
&chan->rx_dma_chain_table[0],
|
||||
MAX_AFT_DMA_CHAINS,
|
||||
(chan->dma_chain_opmode == WAN_AFT_DMA_CHAIN_SINGLE),
|
||||
SDLA_DMA_PREREAD);
|
||||
|
||||
err=0;
|
||||
|
||||
|
@ -11346,48 +11411,6 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan)
|
|||
#ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE
|
||||
if (card->wan_tdmv.sc){
|
||||
|
||||
#if 0
|
||||
defined(AFT_TDMV_BH_ENABLE)
|
||||
wan_dma_descr_t *tx_bh_dma_chain = &chan->tx_dma_chain_table[1];
|
||||
wan_dma_descr_t *rx_bh_dma_chain = &chan->rx_dma_chain_table[1];
|
||||
|
||||
if (!rx_bh_dma_chain->skb){
|
||||
rx_bh_dma_chain->skb=wan_skb_dequeue(&chan->wp_rx_free_list);
|
||||
if (!rx_bh_dma_chain->skb){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_ERROR("%s: Critical TDM BH no free skb\n",
|
||||
chan->if_name);
|
||||
goto aft_tdm_bh_skip;
|
||||
}
|
||||
}
|
||||
wan_skb_init(rx_bh_dma_chain->skb,sizeof(wp_api_hdr_t));
|
||||
wan_skb_trim(rx_bh_dma_chain->skb,0);
|
||||
}
|
||||
|
||||
if (!tx_bh_dma_chain->skb){
|
||||
tx_bh_dma_chain->skb=wan_skb_dequeue(&chan->wp_rx_free_list);
|
||||
if (!tx_bh_dma_chain->skb){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_ERROR("%s: Critical TDM BH no free skb\n",
|
||||
chan->if_name);
|
||||
goto aft_tdm_bh_skip;
|
||||
}
|
||||
}
|
||||
wan_skb_init(tx_bh_dma_chain->skb,sizeof(wp_api_hdr_t));
|
||||
wan_skb_trim(tx_bh_dma_chain->skb,0);
|
||||
}
|
||||
|
||||
memcpy(wan_skb_data(rx_bh_dma_chain->skb),
|
||||
wan_skb_data(rx_dma_chain->skb),8);
|
||||
|
||||
memcpy(wan_skb_data(tx_dma_chain->skb),
|
||||
wan_skb_data(tx_bh_dma_chain->skb),8);
|
||||
|
||||
rx_dma_chain=rx_bh_dma_chain;
|
||||
tx_dma_chain=tx_bh_dma_chain;
|
||||
aft_tdm_bh_skip:
|
||||
#endif
|
||||
|
||||
DEBUG_TEST ("%s: Calling Rx Chan=%d TdmvChan=%d\n",
|
||||
card->devname,chan->logic_ch_num,
|
||||
chan->tdmv_chan);
|
||||
|
@ -11458,8 +11481,6 @@ aft_tdm_bh_skip:
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
wanpipe_tdm_api_rx_tx(chan->wp_tdm_api_dev,
|
||||
rxbuf,
|
||||
txbuf,
|
||||
|
@ -11489,26 +11510,7 @@ aft_tdm_bh_skip:
|
|||
if (chan->tdmv_zaptel_cfg){
|
||||
DEBUG_TEST ("%s: Calling Master Rx Tx Chan=%d\n",
|
||||
card->devname,chan->logic_ch_num);
|
||||
#if 0
|
||||
defined(AFT_TDMV_BH_ENABLE)
|
||||
#warning "AFT A104: TDM Driver compiled in BH mode!"
|
||||
|
||||
if (WAN_TASKLET_RUNNING((&chan->common.bh_task))){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_ERROR("%s: Critical Error: TDMV BH Overrun!\n",
|
||||
card->devname);
|
||||
}
|
||||
}
|
||||
|
||||
WAN_WP_TASKLET_SCHEDULE_PER_CPU((&chan->common.bh_task),
|
||||
card->tdmv_conf.span_no);
|
||||
|
||||
card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),®);
|
||||
wan_set_bit(AFT_DMACTRL_TDMV_RX_TOGGLE,®);
|
||||
wan_set_bit(AFT_DMACTRL_TDMV_TX_TOGGLE,®);
|
||||
card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),reg);
|
||||
|
||||
#else
|
||||
|
||||
if (wan_test_bit(AFT_TDM_SW_RING_BUF,&card->u.aft.chip_cfg_status)) {
|
||||
if (!wan_test_bit(AFT_TDM_GLOBAL_ISR,&card->u.aft.chip_cfg_status)) {
|
||||
|
@ -11519,7 +11521,7 @@ defined(AFT_TDMV_BH_ENABLE)
|
|||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
|
||||
card->hw_iface.busdma_sync(
|
||||
card->hw,
|
||||
&chan->tx_dma_chain_table[0],
|
||||
|
@ -11527,7 +11529,9 @@ defined(AFT_TDMV_BH_ENABLE)
|
|||
(chan->dma_chain_opmode == WAN_AFT_DMA_CHAIN_SINGLE),
|
||||
SDLA_DMA_POSTREAD);
|
||||
|
||||
|
||||
WAN_TDMV_CALL(rx_tx_span, (card), err);
|
||||
|
||||
|
||||
card->hw_iface.busdma_sync(
|
||||
card->hw,
|
||||
|
@ -11542,9 +11546,6 @@ defined(AFT_TDMV_BH_ENABLE)
|
|||
(chan->dma_chain_opmode == WAN_AFT_DMA_CHAIN_SINGLE),
|
||||
SDLA_DMA_PREREAD);
|
||||
|
||||
#else
|
||||
#warning "NCDEBUG: rx_tx_span disabled irq"
|
||||
#endif
|
||||
|
||||
if (!wan_test_bit(AFT_TDM_SW_RING_BUF,&card->u.aft.chip_cfg_status) &&
|
||||
!wan_test_bit(AFT_TDM_GLOBAL_ISR,&card->u.aft.chip_cfg_status)) {
|
||||
|
@ -11563,7 +11564,7 @@ defined(AFT_TDMV_BH_ENABLE)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}else{
|
||||
#else
|
||||
if (!chan->tdmv_zaptel_cfg){
|
||||
|
@ -11576,7 +11577,6 @@ defined(AFT_TDMV_BH_ENABLE)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
if (!wan_test_bit(AFT_TDM_GLOBAL_ISR,&card->u.aft.chip_cfg_status)) {
|
||||
card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),®);
|
||||
wan_set_bit(AFT_DMACTRL_TDMV_RX_TOGGLE,®);
|
||||
|
|
|
@ -568,7 +568,6 @@ int get_map(wan_device_t *wandev, netdevice_t *dev, struct seq_file* m, int* sto
|
|||
|
||||
|
||||
#ifdef AFT_TDM_API_SUPPORT
|
||||
|
||||
int aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf)
|
||||
{
|
||||
int err=0;
|
||||
|
@ -712,6 +711,9 @@ int aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf)
|
|||
chan->wp_tdm_api_dev->cfg.usr_period = chan->tdm_api_period;
|
||||
chan->wp_tdm_api_dev->cfg.usr_mtu_mru = chan->tdm_api_chunk;
|
||||
if (chan->wp_tdm_api_dev->cfg.usr_mtu_mru < 160) {
|
||||
chan->tdm_api_period=20;
|
||||
chan->wp_tdm_api_dev->cfg.usr_period=20;
|
||||
chan->tdm_api_chunk=160;
|
||||
chan->wp_tdm_api_dev->cfg.usr_mtu_mru=160;
|
||||
}
|
||||
} else {
|
||||
|
@ -733,10 +735,13 @@ int aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf)
|
|||
chan->wp_tdm_api_dev->api_mode = chan->wp_api_iface_mode;
|
||||
|
||||
if (chan->if_cnt == 1) {
|
||||
DEBUG_EVENT("%s: Memory: TDM API %d\n",
|
||||
DEBUG_EVENT("%s: Memory: TDM API %d \n",
|
||||
card->devname, sizeof(wanpipe_tdm_api_dev_t));
|
||||
}
|
||||
|
||||
|
||||
DEBUG_TDMAPI("%s: Chunk=%i, Period=%i, MTU=%i\n",
|
||||
card->devname,chan->tdm_api_chunk,
|
||||
chan->tdm_api_period,chan->wp_tdm_api_dev->cfg.usr_mtu_mru);
|
||||
|
||||
err=wanpipe_tdm_api_reg(chan->wp_tdm_api_dev);
|
||||
if (err){
|
||||
|
@ -752,6 +757,7 @@ int aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf)
|
|||
wan_set_bit(0,&chan->wp_tdm_api_dev->init);
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int aft_tdm_api_free(sdla_t *card, private_area_t *chan)
|
||||
|
|
|
@ -415,7 +415,10 @@ int aft_alloc_rx_dma_buff(sdla_t *card, private_area_t *chan, int num, int irq)
|
|||
}
|
||||
#else
|
||||
if (chan->channelized_cfg && !chan->hdlc_eng){
|
||||
#if (!defined(WANPIPE_64BIT_2G_DMA) && (defined(WANPIPE_64BIT_4G_DMA) || defined(CONFIG_X86_64)))
|
||||
#if 0
|
||||
/* NC: This is not used any more since we fixed the dma syncing
|
||||
related to 64bit machines. This code to be taken out. */
|
||||
//(!defined(WANPIPE_64BIT_2G_DMA) && (defined(WANPIPE_64BIT_4G_DMA) || defined(CONFIG_X86_64)))
|
||||
/* On 64bit Systems greater than 4GB we must
|
||||
* allocated our DMA buffers using GFP_DMA
|
||||
* flag */
|
||||
|
@ -698,9 +701,13 @@ int aft_devel_ioctl(sdla_t *card, struct ifreq *ifr)
|
|||
|
||||
memset(api_cmd, 0, sizeof(wan_cmd_api_t));
|
||||
|
||||
#if defined (__WINDOWS__)
|
||||
memcpy(api_cmd, ifr_data_ptr, sizeof(wan_cmd_api_t));
|
||||
#else
|
||||
if(WAN_COPY_FROM_USER(api_cmd, ifr_data_ptr, sizeof(wan_cmd_api_t))){
|
||||
return -EFAULT;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch(api_cmd->cmd){
|
||||
case SIOC_WAN_READ_REG:
|
||||
|
@ -771,9 +778,14 @@ int aft_devel_ioctl(sdla_t *card, struct ifreq *ifr)
|
|||
|
||||
api_cmd->ret = err;
|
||||
|
||||
#if defined (__WINDOWS__)
|
||||
memcpy(ifr_data_ptr, api_cmd, sizeof(wan_cmd_api_t));
|
||||
#else
|
||||
if (WAN_COPY_TO_USER(ifr_data_ptr, api_cmd, sizeof(wan_cmd_api_t))){
|
||||
return -EFAULT;
|
||||
}
|
||||
#endif
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -3444,4 +3456,40 @@ int aft_hdlc_repeat_mangle(sdla_t *card,private_area_t *chan, netskb_t *skb, wp_
|
|||
return 0;
|
||||
}
|
||||
|
||||
int aft_check_and_disable_dchan_optimization(sdla_t *card, private_area_t *chan, char *usedby)
|
||||
{
|
||||
if (strcmp(usedby, "TDM_VOICE") != 0) {
|
||||
if (card->u.aft.tdmv_zaptel_cfg) {
|
||||
goto disable_optimization;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined (__LINUX__)
|
||||
/* On windows TDM_VOICE_API is the old legacy API. On Linux TDM_VOICE_API is equivalent
|
||||
to TDM_CHAN_VOICE_API */
|
||||
if (strcmp(usedby, "TDM_VOICE_API") != 0 && strcmp(usedby, "TDM_CHAN_VOICE_API") != 0) {
|
||||
if (card->u.aft.tdm_api_cfg) {
|
||||
goto disable_optimization;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (strcmp(usedby, "TDM_CHAN_VOICE_API") != 0) {
|
||||
if (card->u.aft.tdm_api_cfg) {
|
||||
goto disable_optimization;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
||||
disable_optimization:
|
||||
|
||||
|
||||
DEBUG_EVENT("%s: Disabling DCHAN OPTIMIZATION !\n",chan->if_name);
|
||||
wan_clear_bit(WP_TDM_API_DCHAN_OPTIMIZATION,&card->u.aft.tdm_api_cfg);
|
||||
wan_clear_bit(WP_ZAPTEL_DCHAN_OPTIMIZATION,&card->u.aft.tdmv_zaptel_cfg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/************** EOF *************/
|
||||
|
|
|
@ -187,6 +187,32 @@ static int wp_tdmv_bri_hwec_create(struct dahdi_chan *chan,
|
|||
static void wp_tdmv_bri_hwec_free(struct dahdi_chan *chan,
|
||||
struct dahdi_echocan_state *ec);
|
||||
|
||||
static int wp_bri_zap_open(struct zt_chan *chan);
|
||||
static int wp_bri_zap_close(struct zt_chan *chan);
|
||||
static int wp_bri_zap_watchdog(struct zt_span *span, int event);
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
static int wp_bri_zap_ioctl(struct zt_chan *chan, unsigned int cmd, caddr_t data);
|
||||
#else
|
||||
static int wp_bri_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_24
|
||||
|
||||
static const struct dahdi_span_ops wp_tdm_span_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = wp_bri_zap_open,
|
||||
.close = wp_bri_zap_close,
|
||||
.ioctl = wp_bri_zap_ioctl,
|
||||
.watchdog = wp_bri_zap_watchdog,
|
||||
#if 0
|
||||
/* FIXME: Add native bridging */
|
||||
.dacs = ,
|
||||
#endif
|
||||
.echocan_create = wp_tdmv_bri_hwec_create,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
@ -581,22 +607,19 @@ wr->span.deflaw = ZT_LAW_ALAW;//FIXME: hardcoded
|
|||
//wr->rxsig_state[x] = ZT_RXSIG_INITIAL;
|
||||
}/* for() */
|
||||
|
||||
wr->span.pvt = wr;
|
||||
#ifdef DAHDI_ISSUES
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
#ifdef DAHDI_24
|
||||
wr->span.ops = &wp_tdm_span_ops;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
#endif
|
||||
wr->span.channels = MAX_BRI_TIMESLOTS;/* this is the number of b-chans (2) and the d-chan on one BRI line. */;
|
||||
wr->span.linecompat = ZT_CONFIG_AMI | ZT_CONFIG_CCS; /* <--- this is really BS */
|
||||
|
||||
wr->span.pvt = wr;
|
||||
wr->span.open = wp_bri_zap_open;
|
||||
wr->span.close = wp_bri_zap_close;
|
||||
|
||||
//wr->span.flags = ZT_FLAG_RBS;
|
||||
|
||||
wr->span.ioctl = wp_bri_zap_ioctl;
|
||||
wr->span.watchdog = wp_bri_zap_watchdog;
|
||||
|
||||
#if defined(DAHDI_23)
|
||||
wr->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
|
||||
/* Set this pointer only if card has hw echo canceller module */
|
||||
if (card->wandev.ec_dev){
|
||||
#ifdef DAHDI_22
|
||||
|
@ -605,6 +628,21 @@ wr->span.deflaw = ZT_LAW_ALAW;//FIXME: hardcoded
|
|||
wr->span.echocan = wp_bri_zap_hwec;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DAHDI_ISSUES
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
#endif
|
||||
wr->span.channels = MAX_BRI_TIMESLOTS;/* this is the number of b-chans (2) and the d-chan on one BRI line. */;
|
||||
|
||||
//wr->span.linecompat = ZT_CONFIG_AMI | ZT_CONFIG_CCS; /* <--- this is really BS */
|
||||
//wr->span.flags = ZT_FLAG_RBS;
|
||||
|
||||
|
||||
|
||||
#if defined(__LINUX__)
|
||||
init_waitqueue_head(&wr->span.maintq);
|
||||
#endif
|
||||
|
|
|
@ -94,6 +94,17 @@ static int wp_tdmv_remora_is_rbsbits(wan_tdmv_t *wan_tdmv);
|
|||
static int wp_tdmv_remora_rx_tx_span(void *pcard);
|
||||
static int wp_tdmv_remora_rx_chan(wan_tdmv_t*, int,unsigned char*,unsigned char*);
|
||||
static int wp_tdmv_remora_ec_span(void *pcard);
|
||||
static int wp_remora_chanconfig(struct zt_chan *chan, int sigtype);
|
||||
static int wp_remora_zap_open(struct zt_chan *chan);
|
||||
static int wp_remora_zap_close(struct zt_chan *chan);
|
||||
static int wp_remora_zap_hooksig(struct zt_chan *chan, zt_txsig_t txsig);
|
||||
static int wp_remora_zap_watchdog(struct zt_span *span, int event);
|
||||
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, caddr_t data);
|
||||
#else
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data);
|
||||
#endif
|
||||
|
||||
static void wp_tdmv_remora_tone (void* card_id, wan_event_t *event);
|
||||
#ifdef DAHDI_22
|
||||
|
@ -115,6 +126,26 @@ static int wp_tdmv_remora_rx_chan_sync_test(sdla_t *card, wp_tdmv_remora_t *wr,
|
|||
#undef WAN_SYNC_RX_TX_TEST
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_24
|
||||
|
||||
static const struct dahdi_span_ops wp_tdm_span_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.chanconfig = wp_remora_chanconfig,
|
||||
.open = wp_remora_zap_open,
|
||||
.close = wp_remora_zap_close,
|
||||
.ioctl = wp_remora_zap_ioctl,
|
||||
.hooksig = wp_remora_zap_hooksig,
|
||||
.watchdog = wp_remora_zap_watchdog,
|
||||
#if 0
|
||||
/* FIXME: Add native bridging */
|
||||
.dacs = ,
|
||||
#endif
|
||||
.echocan_create = wp_tdmv_remora_hwec_create,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_22
|
||||
/*
|
||||
|
@ -139,19 +170,22 @@ static const struct dahdi_echocan_ops wp_tdmv_remora_ec_ops = {
|
|||
** FUNCTION DEFINITIONS
|
||||
*******************************************************************************/
|
||||
|
||||
static int
|
||||
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, caddr_t data)
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, caddr_t data)
|
||||
#else
|
||||
wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data)
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data)
|
||||
#endif
|
||||
{
|
||||
wp_tdmv_remora_t *wr = chan->pvt;
|
||||
wp_tdmv_remora_t *wr;
|
||||
sdla_t *card = NULL;
|
||||
sdla_fe_t *fe = NULL;
|
||||
wan_event_ctrl_t *event_ctrl = NULL;
|
||||
int x, err;
|
||||
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
|
||||
WAN_ASSERT(wr->card == NULL);
|
||||
card = wr->card;
|
||||
fe = &card->fe;
|
||||
|
@ -302,10 +336,12 @@ wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data)
|
|||
|
||||
static int wp_remora_zap_hooksig(struct zt_chan *chan, zt_txsig_t txsig)
|
||||
{
|
||||
wp_tdmv_remora_t *wr = chan->pvt;
|
||||
wp_tdmv_remora_t *wr;
|
||||
sdla_t *card = NULL;
|
||||
sdla_fe_t *fe = NULL;
|
||||
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
WAN_ASSERT(wr->card == NULL);
|
||||
card = wr->card;
|
||||
fe = &card->fe;
|
||||
|
@ -404,8 +440,8 @@ static int wp_remora_zap_open(struct zt_chan *chan)
|
|||
sdla_t *card = NULL;
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wr = chan->pvt;
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
WAN_ASSERT2(wr->card == NULL, -ENODEV);
|
||||
card = wr->card;
|
||||
wr->usecount++;
|
||||
|
@ -426,8 +462,8 @@ static int wp_remora_zap_close(struct zt_chan *chan)
|
|||
sdla_fe_t *fe = NULL;
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wr = chan->pvt;
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
card = wr->card;
|
||||
fe = &card->fe;
|
||||
wr->usecount--;
|
||||
|
@ -473,8 +509,8 @@ static int wp_tdmv_remora_hwec_create(struct dahdi_chan *chan,
|
|||
int err = -ENODEV;
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wr = chan->pvt;
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
WAN_ASSERT2(wr->card == NULL, -ENODEV);
|
||||
card = wr->card;
|
||||
|
||||
|
@ -527,8 +563,10 @@ static void wp_tdmv_remora_hwec_free(struct dahdi_chan *chan, struct dahdi_echoc
|
|||
memset(ec, 0, sizeof(*ec));
|
||||
|
||||
if(chan == NULL) return;
|
||||
if(chan->pvt == NULL) return;
|
||||
wr = chan->pvt;
|
||||
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT_VOID(wr == NULL);
|
||||
|
||||
if(wr->card == NULL) return;
|
||||
card = wr->card;
|
||||
|
||||
|
@ -564,8 +602,8 @@ static int wp_remora_zap_hwec(struct zt_chan *chan, int enable)
|
|||
int err = -ENODEV;
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wr = chan->pvt;
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
WAN_ASSERT2(wr->card == NULL, -ENODEV);
|
||||
card = wr->card;
|
||||
|
||||
|
@ -654,8 +692,8 @@ static int wp_remora_chanconfig(struct zt_chan *chan, int sigtype)
|
|||
sdla_t *card = NULL;
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wr = chan->pvt;
|
||||
wr = WP_PRIV_FROM_CHAN(chan,wp_tdmv_remora_t);
|
||||
WAN_ASSERT2(wr == NULL, -ENODEV);
|
||||
card = wr->card;
|
||||
|
||||
DEBUG_TDMV("%s: Configuring chan %d SigType %i..\n", wr->devname, chan->chanpos, sigtype);
|
||||
|
@ -742,23 +780,22 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv)
|
|||
num++;
|
||||
}
|
||||
}
|
||||
wr->span.pvt = wr;
|
||||
#ifdef DAHDI_ISSUES
|
||||
#ifdef DAHDI_23
|
||||
wr->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
|
||||
#ifdef DAHDI_24
|
||||
wr->span.ops = &wp_tdm_span_ops;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
|
||||
wr->span.pvt = wr;
|
||||
|
||||
#if defined(DAHDI_23)
|
||||
wr->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
wr->span.channels = num/*wr->max_timeslots*/;
|
||||
|
||||
wr->span.hooksig = wp_remora_zap_hooksig;
|
||||
wr->span.open = wp_remora_zap_open;
|
||||
wr->span.close = wp_remora_zap_close;
|
||||
wr->span.flags = ZT_FLAG_RBS;
|
||||
wr->span.ioctl = wp_remora_zap_ioctl;
|
||||
wr->span.watchdog = wp_remora_zap_watchdog;
|
||||
|
||||
wr->span.chanconfig = wp_remora_chanconfig;
|
||||
|
||||
/* Set this pointer only if card has hw echo canceller module */
|
||||
|
@ -769,6 +806,17 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv)
|
|||
wr->span.echocan = wp_remora_zap_hwec;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DAHDI_ISSUES
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
#endif
|
||||
|
||||
wr->span.flags = ZT_FLAG_RBS;
|
||||
wr->span.channels = num/*wr->max_timeslots*/;
|
||||
|
||||
#if defined(__LINUX__)
|
||||
init_waitqueue_head(&wr->span.maintq);
|
||||
|
|
|
@ -311,6 +311,30 @@ static int wp_tdmv_init(void* pcard, wanif_conf_t *conf);
|
|||
static void wp_tdmv_callback_tone (void*, wan_event_t*);
|
||||
|
||||
|
||||
#ifdef DAHDI_24
|
||||
|
||||
static const struct dahdi_span_ops wp_tdm_span_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.spanconfig = wp_tdmv_spanconfig,
|
||||
.chanconfig = wp_tdmv_chanconfig,
|
||||
.startup = wp_tdmv_startup,
|
||||
.shutdown = wp_tdmv_shutdown,
|
||||
.rbsbits = wp_tdmv_rbsbits,
|
||||
.maint = wp_tdmv_maint,
|
||||
.open = wp_tdmv_open,
|
||||
.close = wp_tdmv_close,
|
||||
.ioctl = wp_tdmv_ioctl,
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN) && defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL)
|
||||
.hdlc_hard_xmit = wp_tdmv_tx_hdlc_hard,
|
||||
#endif
|
||||
#if 0
|
||||
.dacs = ,
|
||||
#endif
|
||||
.echocan_create = wp_tdmv_hwec_create,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DAHDI_22
|
||||
/*
|
||||
*******************************************************************************
|
||||
|
@ -703,7 +727,8 @@ static int wp_tdmv_sigctrl(sdla_t* card, wp_tdmv_softc_t *wp, int channel, int s
|
|||
}else if (status == WP_TDMV_DISABLE && !IS_TDMV_RBS_READY(wp)){
|
||||
return 0;
|
||||
}
|
||||
DEBUG_TDMV("%s: %s signalling mode for all channels!\n",
|
||||
|
||||
DEBUG_EVENT("%s: %s signalling mode for all channels!\n",
|
||||
wp->devname,
|
||||
(status==WP_TDMV_ENABLE)?"Enable":"Disable");
|
||||
|
||||
|
@ -1131,6 +1156,13 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv)
|
|||
sprintf(wp->span.name, "WPT1/%d", wp->num);
|
||||
}
|
||||
sprintf(wp->span.desc, "%s card %d", wp->devname, wp->num);
|
||||
|
||||
#if defined(DAHDI_24)
|
||||
wp->span.ops = &wp_tdm_span_ops;
|
||||
#else
|
||||
|
||||
wp->span.pvt = wp;
|
||||
|
||||
wp->span.spanconfig = wp_tdmv_spanconfig;
|
||||
wp->span.chanconfig = wp_tdmv_chanconfig;
|
||||
wp->span.startup = wp_tdmv_startup;
|
||||
|
@ -1139,18 +1171,8 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv)
|
|||
wp->span.maint = wp_tdmv_maint;
|
||||
wp->span.open = wp_tdmv_open;
|
||||
wp->span.close = wp_tdmv_close;
|
||||
wp->span.channels = wp->max_timeslots;
|
||||
#ifdef DAHDI_ISSUES
|
||||
#ifdef DAHDI_23
|
||||
wp->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
wp->span.chans = wp->chans_ptrs;
|
||||
#else
|
||||
wp->span.chans = wp->chans;
|
||||
#endif
|
||||
wp->span.flags = ZT_FLAG_RBS;
|
||||
|
||||
wp->span.ioctl = wp_tdmv_ioctl;
|
||||
|
||||
/* Set this pointer only if card has hw echo canceller module */
|
||||
if (wp->hwec == WANOPT_YES && card->wandev.ec_dev){
|
||||
/* Initialize it only if HWEC option is enabled */
|
||||
|
@ -1160,6 +1182,11 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv)
|
|||
wp->span.echocan = wp_tdmv_hwec;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(DAHDI_23)
|
||||
wp->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN) && defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL)
|
||||
if (wp->dchan_map){
|
||||
DEBUG_EVENT("%s: Enable Zaptel HW DCHAN interface\n",
|
||||
|
@ -1167,19 +1194,35 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv)
|
|||
wp->span.hdlc_hard_xmit = wp_tdmv_tx_hdlc_hard;
|
||||
}
|
||||
#endif
|
||||
wp->span.pvt = wp;
|
||||
|
||||
#endif /* NON DAHDI_24 */
|
||||
|
||||
#ifdef DAHDI_ISSUES
|
||||
wp->span.chans = wp->chans_ptrs;
|
||||
#else
|
||||
wp->span.chans = wp->chans;
|
||||
#endif
|
||||
|
||||
wp->span.flags = ZT_FLAG_RBS;
|
||||
wp->span.channels = wp->max_timeslots;
|
||||
|
||||
|
||||
if (wp->ise1){
|
||||
wp->span.deflaw = ZT_LAW_ALAW;
|
||||
card->fe.fe_cfg.tdmv_law = WAN_TDMV_ALAW;
|
||||
wp->span.linecompat = ZT_CONFIG_HDB3 | ZT_CONFIG_CCS | ZT_CONFIG_CRC4;
|
||||
wp->span.spantype="E1";
|
||||
}else{
|
||||
wp->span.deflaw = ZT_LAW_MULAW;
|
||||
card->fe.fe_cfg.tdmv_law = WAN_TDMV_MULAW;
|
||||
wp->span.linecompat = ZT_CONFIG_AMI | ZT_CONFIG_B8ZS | ZT_CONFIG_D4 | ZT_CONFIG_ESF;
|
||||
wp->span.spantype="T1";
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__) && !defined(__OpenBSD__)
|
||||
init_waitqueue_head(&wp->span.maintq);
|
||||
#endif
|
||||
|
||||
for (x=0;x<wp->span.channels;x++) {
|
||||
sprintf(wp->chans[x].name, "%s/%d", wp->span.name, x+1);
|
||||
if (wan_test_bit(x,&wp->timeslot_map)){
|
||||
|
@ -1278,11 +1321,14 @@ static int wp_tdmv_startup(struct zt_span *span)
|
|||
{
|
||||
wp_tdmv_softc_t* wp = NULL;
|
||||
int i;
|
||||
sdla_t *card = NULL;
|
||||
|
||||
WAN_ASSERT2(span == NULL, -ENODEV);
|
||||
WAN_ASSERT2(span->pvt == NULL, -ENODEV);
|
||||
wp = span->pvt;
|
||||
|
||||
wp = WP_PRIV_FROM_SPAN(span, wp_tdmv_softc_t);
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
WAN_ASSERT2(wp->card == NULL, -ENODEV);
|
||||
card = wp->card;
|
||||
|
||||
/* initialize the start value for the entire chunk of last ec buffer */
|
||||
for(i = 0; i < span->channels; i++){
|
||||
#ifdef DAHDI_ISSUES
|
||||
|
@ -1296,6 +1342,21 @@ static int wp_tdmv_startup(struct zt_span *span)
|
|||
memset(wp->ec_chunk2[i],
|
||||
ZT_LIN2X(0,&span->chans[i]),ZT_CHUNKSIZE);
|
||||
#endif
|
||||
|
||||
/* Disable hwec on signalling channel */
|
||||
if (wp->hwec == WANOPT_YES && card->wandev.ec_dev && card->wandev.ec_enable) {
|
||||
#ifdef DAHDI_ISSUES
|
||||
struct zt_chan *chan = span->chans[i];
|
||||
#else
|
||||
struct zt_chan *chan = &span->chans[i];
|
||||
#endif
|
||||
unsigned int hdlcsig=chan->sig&~(ZT_SIG_CLEAR);
|
||||
if (IS_CHAN_HARDHDLC(chan) || hdlcsig & ZT_SIG_HDLCRAW || hdlcsig & ZT_SIG_HDLCFCS) {
|
||||
DEBUG_TEST("%s: Disabling EC Chan=%i, sigtype 0x%03X, HDLCRAW=0x%X FCS=0x%X\n",
|
||||
card->devname, chan->chanpos, hdlcsig, ZT_SIG_HDLCRAW, ZT_SIG_HDLCFCS);
|
||||
card->wandev.ec_enable(card, 0, chan->chanpos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1304,6 +1365,7 @@ static int wp_tdmv_startup(struct zt_span *span)
|
|||
span->flags |= ZT_FLAG_RUNNING;
|
||||
}
|
||||
wan_set_bit(WP_TDMV_RUNNING, &wp->flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1318,8 +1380,9 @@ static int wp_tdmv_shutdown(struct zt_span *span)
|
|||
wan_smp_flag_t flags;
|
||||
|
||||
WAN_ASSERT2(span == NULL, -ENODEV);
|
||||
WAN_ASSERT2(span->pvt == NULL, -ENODEV);
|
||||
wp = span->pvt;
|
||||
wp = WP_PRIV_FROM_SPAN(span, wp_tdmv_softc_t);
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
|
||||
wan_clear_bit(WP_TDMV_RUNNING, &wp->flags);
|
||||
wan_spin_lock_irq(&wp->lockirq, &flags);
|
||||
span->flags &= ~ZT_FLAG_RUNNING;
|
||||
|
@ -1334,14 +1397,16 @@ static int wp_tdmv_shutdown(struct zt_span *span)
|
|||
*/
|
||||
static int wp_tdmv_maint(struct zt_span *span, int cmd)
|
||||
{
|
||||
wp_tdmv_softc_t *wp = span->pvt;
|
||||
sdla_t *card = wp->card;
|
||||
wp_tdmv_softc_t *wp;
|
||||
sdla_t *card;
|
||||
int res = 0;
|
||||
wan_smp_flag_t flags;
|
||||
|
||||
WAN_ASSERT2(span == NULL, -ENODEV);
|
||||
WAN_ASSERT2(span->pvt == NULL, -ENODEV);
|
||||
wp = span->pvt;
|
||||
wp = WP_PRIV_FROM_SPAN(span, wp_tdmv_softc_t);
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
card = wp->card;
|
||||
|
||||
wan_spin_lock_irq(&wp->lockirq, &flags);
|
||||
if (wp->ise1) {
|
||||
#if 0
|
||||
|
@ -1509,14 +1574,13 @@ static int wp_tdmv_chanconfig(struct zt_chan *chan, int sigtype)
|
|||
{
|
||||
sdla_t *card;
|
||||
wp_tdmv_softc_t *wp = NULL;
|
||||
int hdlcsig = sigtype & ~(ZT_SIG_CLEAR);
|
||||
|
||||
|
||||
WAN_ASSERT2(chan == NULL, -ENODEV);
|
||||
WAN_ASSERT2(chan->pvt == NULL, -ENODEV);
|
||||
wp = chan->pvt;
|
||||
wp = WP_PRIV_FROM_CHAN(chan, wp_tdmv_softc_t);
|
||||
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
card = (sdla_t*)wp->card;
|
||||
|
||||
DEBUG_TDMV("%s: Configuring chan %d..\n", wp->devname, chan->chanpos);
|
||||
if (chan->span->flags & ZT_FLAG_RUNNING){
|
||||
wp_tdmv_set_clear(wp);
|
||||
}
|
||||
|
@ -1533,14 +1597,6 @@ static int wp_tdmv_chanconfig(struct zt_chan *chan, int sigtype)
|
|||
wp_tdmv_sigctrl(card, wp, chan->chanpos, WP_TDMV_ENABLE);
|
||||
}
|
||||
|
||||
/* Disable hwec on signalling channel */
|
||||
if (wp->hwec == WANOPT_YES && card->wandev.ec_dev && card->wandev.ec_enable) {
|
||||
if (IS_CHAN_HARDHDLC(chan) || hdlcsig & ZT_SIG_HDLCRAW || hdlcsig & ZT_SIG_HDLCFCS) {
|
||||
DEBUG_TEST("%s: Disabling EC Chan=%i, sigtype 0x%03X, HDLCRAW=0x%X FCS=0x%X\n",
|
||||
card->devname, chan->chanpos, sigtype, ZT_SIG_HDLCRAW, ZT_SIG_HDLCFCS);
|
||||
card->wandev.ec_enable(card, 0, chan->chanpos);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1557,8 +1613,10 @@ static int wp_tdmv_spanconfig(struct zt_span *span, struct zt_lineconfig *lc)
|
|||
wan_smp_flag_t smp_flags;
|
||||
|
||||
WAN_ASSERT2(span == NULL, -ENODEV);
|
||||
WAN_ASSERT2(span->pvt == NULL, -ENODEV);
|
||||
wp = span->pvt;
|
||||
|
||||
wp = WP_PRIV_FROM_SPAN(span, wp_tdmv_softc_t);
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
|
||||
card = (sdla_t*)wp->card;
|
||||
DEBUG_TDMV("%s: Configuring span device..\n", wp->devname);
|
||||
switch(wp->lcode){
|
||||
|
@ -1683,7 +1741,9 @@ static int wp_tdmv_rbsbits(struct zt_chan *chan, int bits)
|
|||
|
||||
/* Byte offset */
|
||||
WAN_ASSERT2(chan == NULL, 0);
|
||||
if ((wp = chan->pvt) == NULL) return 0;
|
||||
wp = WP_PRIV_FROM_CHAN(chan, wp_tdmv_softc_t);
|
||||
WAN_ASSERT2(wp == NULL, -ENODEV);
|
||||
|
||||
WAN_ASSERT2(wp->card == NULL, 0);
|
||||
card = (sdla_t*)wp->card;
|
||||
if (!wan_test_bit(chan->chanpos-1, &wp->timeslot_map)){
|
||||
|
@ -2141,6 +2201,10 @@ static int wp_tdmv_hwec_create(struct dahdi_chan *chan,
|
|||
wp = chan->pvt;
|
||||
WAN_ASSERT2(wp->card == NULL, -ENODEV);
|
||||
card = wp->card;
|
||||
|
||||
if (wp->hwec != WANOPT_YES || !card->wandev.ec_dev){
|
||||
return err;
|
||||
}
|
||||
|
||||
*ec = &wp->ec[chan->chanpos - 1];
|
||||
(*ec)->ops = &wp_tdmv_ec_ops;
|
||||
|
@ -2148,6 +2212,7 @@ static int wp_tdmv_hwec_create(struct dahdi_chan *chan,
|
|||
|
||||
wan_set_bit((chan->chanpos - 1), &card->wandev.rtp_tap_call_map);
|
||||
wp_fax_tone_timeout_set(wp, chan->chanpos-1);
|
||||
|
||||
|
||||
if (card->wandev.ec_enable){
|
||||
DEBUG_TDMV("[TDMV] %s: %s HW echo canceller on channel %d\n",
|
||||
|
@ -2188,6 +2253,10 @@ static void wp_tdmv_hwec_free(struct dahdi_chan *chan, struct dahdi_echocan_stat
|
|||
if(wp->card == NULL) return;
|
||||
card = wp->card;
|
||||
|
||||
if (wp->hwec != WANOPT_YES || !card->wandev.ec_dev){
|
||||
return;
|
||||
}
|
||||
|
||||
wan_clear_bit(chan->chanpos-1, &card->wandev.rtp_tap_call_map);
|
||||
|
||||
if (card->wandev.ec_enable) {
|
||||
|
@ -2755,7 +2824,18 @@ static int wp_tdmv_span_buf_rotate(void *pcard, u32 buf_sz, unsigned long mask,
|
|||
|
||||
wan_spin_unlock(&wp->chans[x].lock,&flag);
|
||||
|
||||
|
||||
#if defined(__LINUX__)
|
||||
if (card->u.aft.tdm_rx_dma[x]) {
|
||||
wan_dma_descr_t *dma_descr = card->u.aft.tdm_rx_dma[x];
|
||||
card->hw_iface.busdma_sync(card->hw, dma_descr, 1, 1, PCI_DMA_FROMDEVICE);
|
||||
}
|
||||
|
||||
if (card->u.aft.tdm_tx_dma[x]) {
|
||||
wan_dma_descr_t *dma_descr = card->u.aft.tdm_tx_dma[x];
|
||||
card->hw_iface.busdma_sync(card->hw, dma_descr, 1, 1, PCI_DMA_TODEVICE);
|
||||
}
|
||||
|
||||
prefetch(wp->chans[x].readchunk);
|
||||
prefetch(wp->chans[x].writechunk);
|
||||
#endif
|
||||
|
|
|
@ -87,9 +87,12 @@ void* sdla_tdmv_dummy_register(void)
|
|||
#endif
|
||||
wpd->span.channels = 0; /* no channels */
|
||||
wpd->span.deflaw = ZT_LAW_MULAW;
|
||||
|
||||
#ifndef DAHDI_24
|
||||
wpd->span.pvt = wpd;
|
||||
wpd->chan.pvt = wpd;
|
||||
|
||||
#endif
|
||||
|
||||
if (zt_register(&wpd->span, 0)) {
|
||||
DEBUG_EVENT( "Failed to register Zaptel span (%s)!\n",__FUNCTION__);
|
||||
wan_free(wpd);
|
||||
|
|
|
@ -201,6 +201,15 @@ static void wp_usb_tdmv_remora_tone (void* card_id, wan_event_t *event);
|
|||
extern int wp_init_proslic(sdla_fe_t *fe, int mod_no, int fast, int sane);
|
||||
extern int wp_init_voicedaa(sdla_fe_t *fe, int mod_no, int fast, int sane);
|
||||
|
||||
static int wp_remora_zap_open(struct zt_chan *chan);
|
||||
static int wp_remora_zap_close(struct zt_chan *chan);
|
||||
static int wp_remora_zap_hooksig(struct zt_chan *chan, zt_txsig_t txsig);
|
||||
static int wp_remora_zap_watchdog(struct zt_span *span, int event);
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, caddr_t data);
|
||||
#else
|
||||
static int wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data);
|
||||
#endif
|
||||
|
||||
#ifdef DAHDI_22
|
||||
static int wp_usb_tdmv_remora_hwec_create(struct dahdi_chan *chan,
|
||||
|
@ -209,7 +218,27 @@ static int wp_usb_tdmv_remora_hwec_create(struct dahdi_chan *chan,
|
|||
struct dahdi_echocan_state **ec);
|
||||
static void wp_usb_tdmv_remora_hwec_free(struct dahdi_chan *chan,
|
||||
struct dahdi_echocan_state *ec);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_24
|
||||
|
||||
static const struct dahdi_span_ops wp_tdm_span_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = wp_remora_zap_open,
|
||||
.close = wp_remora_zap_close,
|
||||
.ioctl = wp_remora_zap_ioctl,
|
||||
.hooksig = wp_remora_zap_hooksig,
|
||||
.watchdog = wp_remora_zap_watchdog,
|
||||
#if 0
|
||||
/* FIXME: Add native bridging */
|
||||
.dacs = ,
|
||||
#endif
|
||||
.echocan_create = wp_usb_tdmv_remora_hwec_create,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_22
|
||||
/*
|
||||
|
@ -1233,19 +1262,23 @@ static int wp_usb_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv)
|
|||
num++;
|
||||
}
|
||||
}
|
||||
wr->span.pvt = wr;
|
||||
#ifdef DAHDI_ISSUES
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
|
||||
#ifdef DAHDI_24
|
||||
wr->span.ops = &wp_tdm_span_ops;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
|
||||
wr->span.pvt = wr;
|
||||
|
||||
#if defined(DAHDI_23)
|
||||
wr->span.owner = THIS_MODULE;
|
||||
#endif
|
||||
wr->span.channels = num/*wr->max_timeslots*/;
|
||||
|
||||
wr->span.hooksig = wp_remora_zap_hooksig;
|
||||
wr->span.open = wp_remora_zap_open;
|
||||
wr->span.close = wp_remora_zap_close;
|
||||
wr->span.flags = ZT_FLAG_RBS;
|
||||
wr->span.ioctl = wp_remora_zap_ioctl;
|
||||
wr->span.watchdog = wp_remora_zap_watchdog;
|
||||
|
||||
/* Set this pointer only if card has hw echo canceller module */
|
||||
if (wr->hwec == WANOPT_YES && card->wandev.ec_dev){
|
||||
#ifdef DAHDI_22
|
||||
|
@ -1254,6 +1287,20 @@ static int wp_usb_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv)
|
|||
wr->span.echocan = wp_remora_zap_hwec;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DAHDI_ISSUES
|
||||
wr->span.chans = wr->chans_ptrs;
|
||||
#else
|
||||
wr->span.chans = wr->chans;
|
||||
#endif
|
||||
|
||||
wr->span.flags = ZT_FLAG_RBS;
|
||||
wr->span.channels = num/*wr->max_timeslots*/;
|
||||
|
||||
|
||||
#if defined(__LINUX__)
|
||||
init_waitqueue_head(&wr->span.maintq);
|
||||
#endif
|
||||
|
|
|
@ -2434,6 +2434,12 @@ static void disable_comm (sdla_t *card)
|
|||
|
||||
wan_spin_unlock_irq(&card->wandev.lock,&flags);
|
||||
|
||||
|
||||
/* Release front end resources only after all interrupts and tasks have been shut down */
|
||||
if (card->wandev.fe_iface.post_unconfig) {
|
||||
card->wandev.fe_iface.post_unconfig(&card->fe);
|
||||
}
|
||||
|
||||
WP_DELAY(10);
|
||||
|
||||
xilinx_chip_unconfigure(card);
|
||||
|
|
|
@ -7959,7 +7959,7 @@ static int sdla_memory_map(sdlahw_t* hw)
|
|||
}
|
||||
|
||||
#if defined(__LINUX__) && defined(DMA_32BIT_MASK)
|
||||
if((err = pci_set_dma_mask(hwcard->u_pci.pci_dev, DMA_32BIT_MASK))) {
|
||||
if((err = pci_set_dma_mask(hwcard->u_pci.pci_dev, DMA_BIT_MASK(32)))) {
|
||||
DEBUG_ERROR("%s: Error: No usable DMA configuration, aborting.\n",
|
||||
hw->devname);
|
||||
err = -EINVAL;
|
||||
|
@ -10407,18 +10407,29 @@ sdla_busdma_map(void *phw, wan_dma_descr_t *dma_descr, void *buf, int buflen, in
|
|||
}
|
||||
#elif defined(__LINUX__)
|
||||
dma_descr->dma_offset = 0;
|
||||
dma_descr->dma_addr =
|
||||
cpu_to_le32(pci_map_single(hwcard->u_pci.pci_dev,buf,map_len,dir));
|
||||
if (dma_descr->dma_addr & (dma_descr->alignment-1)){
|
||||
|
||||
dma_descr->dma_virt = buf;
|
||||
|
||||
/* NC: We must align the virtual address first before we
|
||||
map it to physical. */
|
||||
if (dma_descr->alignment &&
|
||||
(unsigned long)dma_descr->dma_virt & (dma_descr->alignment-1)){
|
||||
dma_descr->dma_offset =
|
||||
dma_descr->alignment -
|
||||
(dma_descr->dma_addr & (dma_descr->alignment-1));
|
||||
dma_descr->dma_virt = buf + dma_descr->dma_offset;
|
||||
dma_descr->dma_addr += dma_descr->dma_offset;
|
||||
}else{
|
||||
dma_descr->dma_virt = buf;
|
||||
dma_descr->dma_offset = 0;
|
||||
dma_descr->alignment -
|
||||
((unsigned long)dma_descr->dma_virt & (dma_descr->alignment-1));
|
||||
dma_descr->dma_virt = (u8*)dma_descr->dma_virt + dma_descr->dma_offset;
|
||||
map_len-=dma_descr->dma_offset;
|
||||
}
|
||||
|
||||
dma_descr->dma_addr =
|
||||
cpu_to_le32(pci_map_single(hwcard->u_pci.pci_dev,dma_descr->dma_virt,map_len,dir));
|
||||
|
||||
|
||||
if (dma_descr->dma_addr & (dma_descr->alignment-1)){
|
||||
DEBUG_ERROR("Critical Error: DMA ADDR is not in alignment even though virtual is! v=%p p=%08X\n",
|
||||
dma_descr->dma_virt,dma_descr->dma_addr);
|
||||
}
|
||||
|
||||
#elif defined(__OpenBSD__)
|
||||
dma_descr->dma_addr = virt_to_phys(buf);
|
||||
if (dma_descr->dma_addr & (dma_descr->alignment-1)){
|
||||
|
@ -10490,7 +10501,6 @@ static void sdla_busdma_unmap(void *phw, wan_dma_descr_t *dma_descr, int dir)
|
|||
}
|
||||
#elif defined(__LINUX__)
|
||||
if (dma_descr->dma_addr){
|
||||
dma_descr->dma_addr -= dma_descr->dma_offset;
|
||||
pci_unmap_single( hwcard->u_pci.pci_dev,
|
||||
dma_descr->dma_addr,
|
||||
dma_descr->dma_map_len,
|
||||
|
@ -10516,13 +10526,21 @@ static void sdla_busdma_unmap(void *phw, wan_dma_descr_t *dma_descr, int dir)
|
|||
static void
|
||||
sdla_busdma_sync(void *phw, wan_dma_descr_t *dma_descr, int ndescr, int single, int dir)
|
||||
{
|
||||
sdlahw_t *hw = (sdlahw_t*)phw;
|
||||
#if defined(__FreeBSD__)
|
||||
int cnt = 0;
|
||||
#endif
|
||||
|
||||
sdlahw_t *hw = (sdlahw_t*)phw;
|
||||
sdlahw_card_t *hwcard;
|
||||
sdlahw_cpu_t *hwcpu;
|
||||
|
||||
WAN_ASSERT_VOID(hw == NULL);
|
||||
SDLA_MAGIC_VOID(hw);
|
||||
WAN_ASSERT_VOID(hw->hwcpu == NULL);
|
||||
hwcpu = hw->hwcpu;
|
||||
WAN_ASSERT_VOID(hwcpu->hwcard == NULL);
|
||||
hwcard = hwcpu->hwcard;
|
||||
|
||||
if (!wan_test_bit(SDLA_DMA_FLAG_READY, &dma_descr->flag)){
|
||||
DEBUG_DMA("%s: Internal Error: %s:%d: DMA is not ready!\n",
|
||||
hw->devname, __FUNCTION__,__LINE__);
|
||||
|
@ -10534,7 +10552,15 @@ sdla_busdma_sync(void *phw, wan_dma_descr_t *dma_descr, int ndescr, int single,
|
|||
if (single) break;
|
||||
dma_descr++;
|
||||
}
|
||||
|
||||
#elif defined(__LINUX__)
|
||||
if (dir == PCI_DMA_TODEVICE) {
|
||||
pci_dma_sync_single_for_device(hwcard->u_pci.pci_dev, dma_descr->dma_addr,
|
||||
dma_descr->dma_map_len, dir);
|
||||
} else {
|
||||
pci_dma_sync_single_for_cpu(hwcard->u_pci.pci_dev, dma_descr->dma_addr,
|
||||
dma_descr->dma_map_len, dir);
|
||||
}
|
||||
#elif defined(__OpenBSD__)
|
||||
#elif defined(__WINDOWS__)
|
||||
#else
|
||||
|
|
|
@ -60,7 +60,14 @@
|
|||
#define WP_TDM_MAX_RX_Q_LEN 10
|
||||
#define WP_TDM_MAX_TX_Q_LEN 5
|
||||
#define WP_TDM_MAX_HDLC_TX_Q_LEN 17
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
//davidr: v6.0.31.1
|
||||
#define WP_TDM_MAX_EVENT_Q_LEN 50
|
||||
#else
|
||||
#define WP_TDM_MAX_EVENT_Q_LEN 200
|
||||
#endif
|
||||
|
||||
#define WP_TDM_MAX_CTRL_EVENT_Q_LEN 2000 /* 500 channels * 40 events (At same time) */
|
||||
#define WP_TDM_MAX_RX_FREE_Q_LEN 10
|
||||
|
||||
|
@ -680,11 +687,7 @@ int wanpipe_tdm_api_reg(wanpipe_tdm_api_dev_t *tdm_api)
|
|||
}
|
||||
|
||||
if (WPTDM_CHAN_OP_MODE(tdm_api)) {
|
||||
#if 0
|
||||
tdm_api->cfg.hw_mtu_mru = 8;
|
||||
tdm_api->cfg.usr_period = 10;
|
||||
tdm_api->cfg.usr_mtu_mru = tdm_api->cfg.usr_period*tdm_api->cfg.hw_mtu_mru;
|
||||
#endif
|
||||
|
||||
tdm_api->cfg.rx_queue_sz = WP_TDM_MAX_RX_Q_LEN;
|
||||
tdm_api->cfg.tx_queue_sz = WP_TDM_MAX_TX_Q_LEN;
|
||||
tdm_api->tx_channelized =1;
|
||||
|
@ -724,8 +727,8 @@ int wanpipe_tdm_api_reg(wanpipe_tdm_api_dev_t *tdm_api)
|
|||
|
||||
sprintf(tmp_name,"wanpipe%d_if%d",tdm_api->tdm_span,tdm_api->tdm_chan);
|
||||
|
||||
DEBUG_TDMAPI("%s: Configuring TDM API NAME=%s Qlen=%i TS=%i\n",
|
||||
card->devname,tmp_name, tdm_api->cfg.tx_queue_sz, tdm_api->timeslots);
|
||||
DEBUG_TDMAPI("%s: Configuring TDM API NAME=%s Qlen=%i TS=%i MTU=%i\n",
|
||||
card->devname,tmp_name, tdm_api->cfg.tx_queue_sz, tdm_api->timeslots,tdm_api->mtu_mru);
|
||||
|
||||
/* Initialize Event Callback functions */
|
||||
card->wandev.event_callback.rbsbits = NULL; /*wp_tdmapi_rbsbits;*/
|
||||
|
@ -871,6 +874,7 @@ tdm_api_reg_error_exit:
|
|||
return err;
|
||||
}
|
||||
|
||||
|
||||
int wanpipe_tdm_api_unreg(wanpipe_tdm_api_dev_t *tdm_api)
|
||||
{
|
||||
sdla_t *card = tdm_api->card;
|
||||
|
@ -1280,7 +1284,7 @@ static int wp_tdmapi_read_msg(void *obj , netskb_t **skb_ptr, wp_api_hdr_t *hdr,
|
|||
if (count < (int)(wan_skb_len(skb)) ||
|
||||
wan_skb_len(skb) < sizeof(wp_api_hdr_t)){
|
||||
|
||||
DEBUG_ERROR("%s:%d User API Error: User Rx Len=%i < Driver Rx Len=%i (hdr=%i). User API must increase expected rx lenght!\n",
|
||||
DEBUG_ERROR("%s:%d User API Error: User Rx Len=%i < Driver Rx Len=%i (hdr=%i). User API must increase expected rx length!\n",
|
||||
__FUNCTION__,__LINE__,count,wan_skb_len(skb),sizeof(wp_api_hdr_t));
|
||||
wan_skb_free(skb);
|
||||
hdr->wp_api_hdr_operation_status = SANG_STATUS_BUFFER_TOO_SMALL;
|
||||
|
@ -2165,6 +2169,14 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
|
|||
}
|
||||
break;
|
||||
|
||||
case WP_API_CMD_GET_HW_EC_PERSIST:
|
||||
if (card->hwec_conf.persist_disable) {
|
||||
usr_tdm_api.hw_ec = WANOPT_NO;
|
||||
} else {
|
||||
usr_tdm_api.hw_ec = WANOPT_YES;
|
||||
}
|
||||
break;
|
||||
|
||||
case WP_API_CMD_GET_HW_EC_CHAN:
|
||||
if (wan_test_bit(channel, &card->wandev.fe_ec_map)) {
|
||||
usr_tdm_api.hw_ec = WANOPT_YES;
|
||||
|
@ -3258,11 +3270,10 @@ static int rotate_debug[32];
|
|||
#endif
|
||||
int wanpipe_tdm_api_span_rx_tx(sdla_t *card, wanpipe_tdm_api_span_t *tdm_span, u32 buf_sz, unsigned long mask, int circ_buf_len)
|
||||
{
|
||||
int i,tidx;
|
||||
int i,l_ch,tidx;
|
||||
wanpipe_tdm_api_dev_t *tdm_api;
|
||||
unsigned int rx_offset, tx_offset;
|
||||
void *ptr;
|
||||
|
||||
|
||||
if (!tdm_span || !card) {
|
||||
return -ENODEV;
|
||||
|
@ -3281,6 +3292,8 @@ int wanpipe_tdm_api_span_rx_tx(sdla_t *card, wanpipe_tdm_api_span_t *tdm_span, u
|
|||
} else {
|
||||
tidx=i-1;
|
||||
}
|
||||
|
||||
l_ch=i-1;
|
||||
|
||||
#ifdef AFT_TDM_ROTATE_DEBUG
|
||||
if (1) {
|
||||
|
@ -3330,11 +3343,7 @@ int wanpipe_tdm_api_span_rx_tx(sdla_t *card, wanpipe_tdm_api_span_t *tdm_span, u
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!wan_test_bit(0,&tdm_api->used)) {
|
||||
/* Always use 'cfg.idle_flag' because it may be it was set by WP_API_CMD_SET_IDLE_FLAG */
|
||||
memset(tdm_api->tx_buf,tdm_api->cfg.idle_flag,tdm_api->tx_buf_len);
|
||||
continue;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (tdm_api->tdm_span == 5 && tdm_api->tdm_chan == 15) {
|
||||
static unsigned char sync=0;
|
||||
|
@ -3352,9 +3361,26 @@ int wanpipe_tdm_api_span_rx_tx(sdla_t *card, wanpipe_tdm_api_span_t *tdm_span, u
|
|||
#endif
|
||||
|
||||
#if defined(__LINUX__)
|
||||
|
||||
if (card->u.aft.tdm_rx_dma[l_ch]) {
|
||||
wan_dma_descr_t *dma_descr = card->u.aft.tdm_rx_dma[l_ch];
|
||||
card->hw_iface.busdma_sync(card->hw, dma_descr, 1, 1, PCI_DMA_FROMDEVICE);
|
||||
}
|
||||
|
||||
if (card->u.aft.tdm_tx_dma[l_ch]) {
|
||||
wan_dma_descr_t *dma_descr = card->u.aft.tdm_tx_dma[l_ch];
|
||||
card->hw_iface.busdma_sync(card->hw, dma_descr, 1, 1, PCI_DMA_TODEVICE);
|
||||
}
|
||||
|
||||
prefetch(tdm_api->rx_buf);
|
||||
prefetch(tdm_api->tx_buf);
|
||||
#endif
|
||||
|
||||
if (!wan_test_bit(0,&tdm_api->used)) {
|
||||
/* Always use 'cfg.idle_flag' because it may be it was set by WP_API_CMD_SET_IDLE_FLAG */
|
||||
memset(tdm_api->tx_buf,tdm_api->cfg.idle_flag,tdm_api->tx_buf_len);
|
||||
continue;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* NC: Enable rtp tap for api */
|
||||
|
@ -3390,7 +3416,7 @@ int wanpipe_tdm_api_span_rx_tx(sdla_t *card, wanpipe_tdm_api_span_t *tdm_span, u
|
|||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
/root/3.5/wanpipe/patches/kdrivers/wanec/wanec.ko
|
||||
/root/3.5/wanpipe/patches/kdrivers/wanec/wanec_iface.o /root/3.5/wanpipe/patches/kdrivers/wanec/wanec_cmd.o /root/3.5/wanpipe/patches/kdrivers/wanec/wanec_utils.o /root/3.5/wanpipe/patches/kdrivers/wanec/wanec_dev.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/bt/octapi_bt0.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/llman/octapi_llman.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /root/3.5/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o
|
||||
/root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec.ko
|
||||
/root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec_iface.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec_cmd.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec_utils.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec_dev.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/apilib/bt/octapi_bt0.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/apilib/llman/octapi_llman.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
cmd_/root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec.ko := ld -m elf_i386 -m elf_i386 -r -o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec.ko /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec.o /root/3.5/wanpipe-3.5.15.9/patches/kdrivers/wanec/wanec.mod.o
|
|
@ -1 +0,0 @@
|
|||
core_marker_format vmlinux name %s format %s
|
|
@ -0,0 +1,72 @@
|
|||
0xf7567a8a wanpipe_api_buf_check /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xf27fa082 wanpipe_lip_connect /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x7ff2cd30 wanpipe_cdev_tdm_create /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xe656360e sdladrv_hw_mode /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x53ece134 wanpipe_cdev_tx_wake /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x1df80ee2 wanpipe_cdev_rx_wake /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x03865603 sdla_register /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x57e6ed60 wanpipe_api_sock_rx /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x0a7a356f wanpipe_cdev_event_wake /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xecace35b wanrouter_proc_add_interface /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x59fb2682 sdla_hw_probe /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x9a7a6658 wanpipe_lip_rx /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x8f31cdeb proc_router /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x77da8dee register_wanec_iface /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x1036a1ab bind_api_listen_to_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x524e2f20 register_wanpipe_fw_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x7c2dc516 register_wan_device /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x45866c4c wanrouter_proc_add_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x0deeaedb wp_logger_repeating_message_filter /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x618aefa9 wanpipe_cdev_logger_create /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xf7f5afa4 wanpipe_ec_event_ctrl /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x6201c669 wp_logger_level_fe /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x7cd3c2bc wanpipe_ec_poll /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x9e48e1bc wanrouter_proc_delete_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x6dd4c4d6 wanpipe_cdev_free /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xdfd0f6c6 sdla_get_hw_adptr_cnt /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x6ad0c191 wp_logger_level_bri /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xc2143791 wanpipe_ec_register /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xc288bfdc wanpipe_cdev_cfg_ctrl_create /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xb8da2b4c wanpipe_global_cdev_free /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x47ff4922 wanpipe_cdev_tdm_ctrl_create /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xaa81d611 wanpipe_global_cdev_init /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x02364d27 wanrouter_encapsulate /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x136b2537 wan_skb_destructor /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x3f234f3e wp_logger_input /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xfa083e32 register_wanpipe_api_socket /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x4de93988 sdla_get_hw_usb_adptr_cnt /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xade2d0d7 sdla_get_hw_probe /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xd90451b0 wanpipe_cdev_timer_create /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x0f19df36 sdladrv_callback /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xbd4a533a sdla_get_hwinfo /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xef48df91 proc_add_line /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x22a2999f sdla_unregister /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x85c05713 wanrouter_type_trans /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xfd74fadb wan_set_ip_address /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xc98aebe6 wan_get_ip_address /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x7d68ed07 protocol_disconnected /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xc5224c15 bind_api_to_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x38eb6851 unregister_wanpipe_api_socket /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xaac011d2 wanpipe_lip_kick /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x3b604364 unbind_api_listen_from_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x6df6c4e0 wan_run_wanrouter /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x05487ec8 wp_logger_level_default /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xeb418feb sdla_hw_bridge_probe /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xea9f3201 gl_usb_rw_fast /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x04df932b unregister_wanec_iface /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x562d2ade wanpipe_ec_isr /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x13405f6b unregister_wanpipe_fw_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xe72f44cb wanpipe_api_listen_rx /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x8bab76f8 wp_logger_level_tdmapi /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0x5b7efb57 wanpipe_api_poll_wake /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x651a840a wan_add_gateway /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x2f21a326 unregister_wanpipe_lip_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x6719218e wanrouter_proc_delete_interface /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x0ebe03d1 unregister_wan_device /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x22317d82 wanpipe_lip_disconnect /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x74a9ab7b wp_logger_level_te1 /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xed6a48f7 protocol_connected /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x53350bd4 wanpipe_ec_unregister /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0xc12eb167 wp_logger_level_hwec /root/3.5/wanpipe-3.5.15.9/kdrvtmp/sdladrv EXPORT_SYMBOL
|
||||
0xc76eb4f8 register_wanpipe_lip_protocol /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
||||
0x00525339 protocol_connecting /root/3.5/wanpipe-3.5.15.9/kdrvtmp/wanrouter EXPORT_SYMBOL
|
|
@ -11,54 +11,49 @@ __attribute__((section(".gnu.linkonce.this_module"))) = {
|
|||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
.exit = cleanup_module,
|
||||
#endif
|
||||
.arch = MODULE_ARCH_INIT,
|
||||
};
|
||||
|
||||
static const struct modversion_info ____versions[]
|
||||
__used
|
||||
__attribute_used__
|
||||
__attribute__((section("__versions"))) = {
|
||||
{ 0x4d033975, "module_layout" },
|
||||
{ 0x89e24b9c, "struct_module" },
|
||||
{ 0x3f234f3e, "wp_logger_input" },
|
||||
{ 0x12da5bb2, "__kmalloc" },
|
||||
{ 0x7ee91c1d, "_spin_trylock" },
|
||||
{ 0x7e3f931f, "_spin_trylock" },
|
||||
{ 0xec7bc0d, "__mod_timer" },
|
||||
{ 0xd6ee688f, "vmalloc" },
|
||||
{ 0xc12eb167, "wp_logger_level_hwec" },
|
||||
{ 0xb61f0f80, "del_timer" },
|
||||
{ 0xd0d8621b, "strlen" },
|
||||
{ 0x5113d3a4, "malloc_sizes" },
|
||||
{ 0x973873ab, "_spin_lock" },
|
||||
{ 0x4661e311, "__tracepoint_kmalloc" },
|
||||
{ 0x66351462, "device_destroy" },
|
||||
{ 0x4827a016, "del_timer" },
|
||||
{ 0xf26c4b72, "class_device_destroy" },
|
||||
{ 0xb5513e49, "class_device_create" },
|
||||
{ 0xab978df6, "malloc_sizes" },
|
||||
{ 0x1bcd461f, "_spin_lock" },
|
||||
{ 0xeae3dfd6, "__const_udelay" },
|
||||
{ 0xb1ca2692, "init_timer_key" },
|
||||
{ 0x999e8297, "vfree" },
|
||||
{ 0x3c2c5af5, "sprintf" },
|
||||
{ 0x2fd1d81c, "vfree" },
|
||||
{ 0x1d26aa98, "sprintf" },
|
||||
{ 0x7d11c268, "jiffies" },
|
||||
{ 0xe2d5255a, "strcmp" },
|
||||
{ 0x5487ec8, "wp_logger_level_default" },
|
||||
{ 0x77da8dee, "register_wanec_iface" },
|
||||
{ 0x8d3894f2, "_ctype" },
|
||||
{ 0x5152e605, "memcmp" },
|
||||
{ 0x2da418b5, "copy_to_user" },
|
||||
{ 0xc7fbd1f5, "device_create" },
|
||||
{ 0xeba165b4, "add_timer" },
|
||||
{ 0x6dcedb09, "kmem_cache_alloc" },
|
||||
{ 0x2e1de6c1, "class_create" },
|
||||
{ 0x19070091, "kmem_cache_alloc" },
|
||||
{ 0x4df932b, "unregister_wanec_iface" },
|
||||
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
|
||||
{ 0x181631b1, "register_chrdev" },
|
||||
{ 0x4086729e, "register_chrdev" },
|
||||
{ 0xd0b91f9b, "init_timer" },
|
||||
{ 0xf6ebc03b, "net_ratelimit" },
|
||||
{ 0x1d2e87c6, "do_gettimeofday" },
|
||||
{ 0x72270e35, "do_gettimeofday" },
|
||||
{ 0x37a0cba, "kfree" },
|
||||
{ 0x2e60bace, "memcpy" },
|
||||
{ 0x9ef749e2, "unregister_chrdev" },
|
||||
{ 0xb4e817cd, "class_destroy" },
|
||||
{ 0x12aacf5c, "__class_create" },
|
||||
{ 0xc192d491, "unregister_chrdev" },
|
||||
{ 0x4870cf59, "class_destroy" },
|
||||
{ 0xf2a644fb, "copy_from_user" },
|
||||
{ 0xe914e41e, "strcpy" },
|
||||
};
|
||||
|
||||
static const char __module_depends[]
|
||||
__used
|
||||
__attribute_used__
|
||||
__attribute__((section(".modinfo"))) =
|
||||
"depends=sdladrv,wanrouter";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%define WANPIPE_VER wanpipe-modules
|
||||
%define name %{WANPIPE_VER}
|
||||
%define version 3.5.15
|
||||
%define version 3.5.16
|
||||
%define release 0
|
||||
%define serial 1
|
||||
%define MODULES_DIR /lib/modules
|
||||
|
@ -51,7 +51,25 @@ echo "Wanpipe Modules located in %{MODULES_DIR}/%{KVERSION}"
|
|||
|
||||
%changelog
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
|
||||
* Fri Sep 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.16
|
||||
===================================================================
|
||||
|
||||
- Dahdi 2.4 Support
|
||||
- Fixed BRI B500/B700 hwec enable on call start caused in 3.5.12 release.
|
||||
- Bug fix in voice+data mixed mode where dchan could get stuck due to
|
||||
dma overruns.
|
||||
- Bug fix in tdmapi where excessive memory was allocated on pre-allocation buffers.
|
||||
- Bug fix tdmapi defaults to 20ms chunk size instead of 10ms
|
||||
- Bug fix broken support for A101/2 legacy EOL cards.
|
||||
- New XEN Support
|
||||
TDM Voice will now work properly on xen virtualized machines
|
||||
- Fix for 64bit 8gig issues
|
||||
- New rpmbuld spec files.
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz --define 'with_dahdi 1' --define 'dahdi_dir /usr/src/dahdi'
|
||||
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.15
|
||||
===================================================================
|
||||
|
||||
- Fixed B600 and B601 warning messages introduced in 3.5.14
|
|
@ -1,118 +0,0 @@
|
|||
#
|
||||
# spec file for package wanpipe (Version 2.3.4)
|
||||
#
|
||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
Name: wanpipe
|
||||
BuildRequires: kernel-source kernel-syms module-init-tools udev
|
||||
URL: http://www.sangoma.com
|
||||
Summary: Sangoma Wanpipe Voice,TDM and Wan Drivers/Utilities
|
||||
Version: 2.3.4
|
||||
Release: 9
|
||||
License: GNU General Public License (GPL)
|
||||
Group: Productivity/Telephony/Utilities
|
||||
PreReq: %insserv_prereq %fillup_prereq udev
|
||||
PreReq: /usr/sbin/useradd
|
||||
Excludearch: s390 s390x
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build
|
||||
Source0: %name-%version-%release.tar.bz2
|
||||
|
||||
%define UTILS_DIR /usr/sbin
|
||||
%define UTILS_LOCAL_DIR /usr/local/sbin
|
||||
%define PROD_HOME /etc/wanpipe
|
||||
%define WANCFG_LIBS_DIR /etc/wanpipe/lib
|
||||
%define API_DIR /etc/wanpipe/api
|
||||
%define DOCS_DIR /usr/share/doc/wanpipe
|
||||
%define PROD wanrouter
|
||||
%define MODULES_DIR /lib/modules
|
||||
%define META_CONF %{PROD_HOME}/%{PROD}.rc
|
||||
%define WAN_INTR_DIR %{PROD_HOME}/interfaces
|
||||
%define WAN_CONF_DIR %{PROD_HOME}
|
||||
%define PROD_CONF %{WAN_CONF_DIR}/wanpipe1.conf
|
||||
%define START_SCRIPT S07%{PROD}
|
||||
%define OLD_START S07router
|
||||
%define STOP_SCRIPT K90%{PROD}
|
||||
%define OLD_STOP K900router
|
||||
%define ROUTER_RC %{META_CONF}
|
||||
%define WANROUTER_STARTUP_SMPL %{PROD_HOME}/samples/wanrouter
|
||||
%define WANROUTER_STARTUP /usr/sbin/wanrouter
|
||||
%define NEW_IF_TYPE NO
|
||||
%define PROD_INIT /usr/sbin/
|
||||
|
||||
|
||||
%suse_kernel_module_package -p %_sourcedir/preamble kdump um iseries64 ppc64
|
||||
|
||||
%description
|
||||
This package contains configuration files, header files, and setup
|
||||
tools needed for the Sangoma wanpipe voice/TDM, Wan drivers.
|
||||
|
||||
See /usr/share/doc/packages/wanpipe/README for a list of supported
|
||||
hardware.
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Nenad Corbic <ncorbic@sangoma.com>
|
||||
|
||||
%package KMP
|
||||
Summary: Sangoma Wanpipe Voice/TDM, WAN Drivers
|
||||
Group: System/Kernel
|
||||
|
||||
%description KMP
|
||||
This package contains the kernel modules of the Sangoma
|
||||
Wanpipe Voice/TDM, Wan Drivers.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Nenad Corbic <ncorbic@sangoma.com>
|
||||
|
||||
%prep
|
||||
%setup -q -a 1
|
||||
%patch0 -p1
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
make prereq all OPTFLAGS="%optflags"
|
||||
for flavor in %flavors_to_build; do
|
||||
./Setup install --silent --builddir=%buildroot --with-linux=/usr/src/linux-obj/%_target_cpu/$flavor --protocols=DEF
|
||||
done
|
||||
|
||||
%install
|
||||
|
||||
%clean
|
||||
rm -rf %buildroot
|
||||
|
||||
%pre
|
||||
|
||||
%post
|
||||
%{?fillup_and_insserv:%fillup_and_insserv}
|
||||
%{?run_ldconfig:%run_ldconfig}
|
||||
|
||||
%postun
|
||||
%{?insserv_cleanup:%insserv_cleanup}
|
||||
|
||||
%preun
|
||||
%{?stop_on_removal:%stop_on_removal zaptel}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc README* ChangeLog
|
||||
%{UTILS_DIR}
|
||||
%{UTILS_LOCAL_DIR}
|
||||
%{PROD_HOME}
|
||||
%{DOCS_DIR}
|
||||
%{MODULES_DIR}
|
||||
|
||||
%changelog
|
|
@ -1,7 +1,7 @@
|
|||
%define KERNEL_VERSION %{?kern_ver}
|
||||
%define WANPIPE_VER wanpipe-util
|
||||
%define name %{WANPIPE_VER}
|
||||
%define version 3.5.15
|
||||
%define version 3.5.16
|
||||
%define release 0
|
||||
%define serial 1
|
||||
%define ETC_DIR /etc
|
||||
|
@ -328,7 +328,25 @@ enable_smg_log;
|
|||
|
||||
%changelog
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
|
||||
* Fri Sep 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.16
|
||||
===================================================================
|
||||
|
||||
- Dahdi 2.4 Support
|
||||
- Fixed BRI B500/B700 hwec enable on call start caused in 3.5.12 release.
|
||||
- Bug fix in voice+data mixed mode where dchan could get stuck due to
|
||||
dma overruns.
|
||||
- Bug fix in tdmapi where excessive memory was allocated on pre-allocation buffers.
|
||||
- Bug fix tdmapi defaults to 20ms chunk size instead of 10ms
|
||||
- Bug fix broken support for A101/2 legacy EOL cards.
|
||||
- New XEN Support
|
||||
TDM Voice will now work properly on xen virtualized machines
|
||||
- Fix for 64bit 8gig issues
|
||||
- New rpmbuld spec files.
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz --define 'with_dahdi 1' --define 'dahdi_dir /usr/src/dahdi'
|
||||
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.15
|
||||
===================================================================
|
||||
|
||||
- Fixed B600 and B601 warning messages introduced in 3.5.14
|
|
@ -1,7 +1,7 @@
|
|||
%define KERNEL_VERSION %{?kern_ver}
|
||||
%define WANPIPE_VER wanpipe
|
||||
%define name %{WANPIPE_VER}
|
||||
%define version 3.5.15
|
||||
%define version 3.5.16
|
||||
%define release 0
|
||||
%define serial 1
|
||||
%define UTILS_DIR /usr/sbin
|
||||
|
@ -255,7 +255,25 @@ install_init;
|
|||
|
||||
%changelog
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
|
||||
* Fri Sep 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.16
|
||||
===================================================================
|
||||
|
||||
- Dahdi 2.4 Support
|
||||
- Fixed BRI B500/B700 hwec enable on call start caused in 3.5.12 release.
|
||||
- Bug fix in voice+data mixed mode where dchan could get stuck due to
|
||||
dma overruns.
|
||||
- Bug fix in tdmapi where excessive memory was allocated on pre-allocation buffers.
|
||||
- Bug fix tdmapi defaults to 20ms chunk size instead of 10ms
|
||||
- Bug fix broken support for A101/2 legacy EOL cards.
|
||||
- New XEN Support
|
||||
TDM Voice will now work properly on xen virtualized machines
|
||||
- Fix for 64bit 8gig issues
|
||||
- New rpmbuld spec files.
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz
|
||||
rpmbuild -tb wanpipe-3.5.16.tgz --define 'with_dahdi 1' --define 'dahdi_dir /usr/src/dahdi'
|
||||
|
||||
|
||||
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.15
|
||||
===================================================================
|
||||
|
||||
- Fixed B600 and B601 warning messages introduced in 3.5.14
|
|
@ -2208,7 +2208,7 @@ init_global_params()
|
|||
{
|
||||
|
||||
if [ $OSYSTEM = "Linux" ]; then
|
||||
ROUTER_VERSION=3.5.15
|
||||
ROUTER_VERSION=3.5.16
|
||||
IFCONFIG_LIST=ifconfig
|
||||
MODULE_STAT=lsmod
|
||||
WAN_DRIVERS="wanpipe"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
#!/bin/sh
|
||||
|
||||
make CFLAGS=" -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I/usr/include/wanpipe -I/usr/src/linux-2.6.31/include -DMODULE -DAF_WANPIPE_2612_FORCE_UPDATE -DWANPIPE_MOD_266_FORCE_UPDATE -I/usr/src/dahdi" PROTOCOL_DEFINES="-DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_X25 -DCONFIG_PRODUCT_WANPIPE_ADSL -DCONFIG_PRODUCT_WANPIPE_LIP_ATM -DCONFIG_PRODUCT_WANPIPE_ATM -DCONFIG_PRODUCT_WANPIPE_MULTPROT -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_CORE -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_56K -DCONFIG_PRODUCT_WANPIPE_AFT_RM -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW -DCONFIG_PRODUCT_WANPIPE_AFT_BRI -DCONFIG_PRODUCT_WANPIPE_AFT_SERIAL -DCONFIG_PRODUCT_WANPIPE_AFT_A600 -DCONFIG_PRODUCT_WANPIPE_AFT_B601 -DCONFIG_PRODUCT_WANPIPE_AFT_B800 -DCONFIG_PRODUCT_WANPIPE_AFT_A700 -DCONFIG_PRODUCT_WANPIPE_USB -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL -DDAHDI_ISSUES -DWANPIPE_USE_I_PRIVATE -DCONFIG_WANPIPE_HWEC "
|
||||
make CFLAGS=" -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I/usr/include/wanpipe -I/lib/modules/2.6.18-194.11.1.el5/build/include -DMODULE -DAF_WANPIPE_2612_FORCE_UPDATE -DWANPIPE_MOD_266_FORCE_UPDATE -m32 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Wstrict-prototypes -Wundef -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -fwrapv -Os -pipe -msoft-float -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -mtune=generic -mregparm=3 -ffreestanding -I/usr/include/wanpipe -I/lib/modules/2.6.18-194.11.1.el5/build/include/asm-i386/mach-generic -I/usr/include/wanpipe -I/lib/modules/2.6.18-194.11.1.el5/build/include/asm-i386/mach-default -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -I/usr/src/dahdi" PROTOCOL_DEFINES="-DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL -DDAHDI_ISSUES -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_X25 -DCONFIG_PRODUCT_WANPIPE_ADSL -DCONFIG_PRODUCT_WANPIPE_LIP_ATM -DCONFIG_PRODUCT_WANPIPE_ATM -DCONFIG_PRODUCT_WANPIPE_MULTPROT -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_CORE -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_56K -DCONFIG_PRODUCT_WANPIPE_AFT_RM -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW -DCONFIG_PRODUCT_WANPIPE_AFT_BRI -DCONFIG_PRODUCT_WANPIPE_AFT_SERIAL -DCONFIG_PRODUCT_WANPIPE_AFT_A600 -DCONFIG_PRODUCT_WANPIPE_AFT_B601 -DCONFIG_PRODUCT_WANPIPE_AFT_B800 -DCONFIG_PRODUCT_WANPIPE_AFT_A700 -DCONFIG_PRODUCT_WANPIPE_USB -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DWANPIPE_USE_I_PRIVATE -DCONFIG_WANPIPE_HWEC "
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 35
|
||||
/svn/sangoma_mgd/!svn/ver/282/trunk
|
||||
/svn/sangoma_mgd/!svn/ver/284/trunk
|
||||
END
|
||||
sigboost.h
|
||||
K 25
|
||||
|
@ -9,11 +9,11 @@ svn:wc:ra_dav:version-url
|
|||
V 46
|
||||
/svn/sangoma_mgd/!svn/ver/265/trunk/sigboost.h
|
||||
END
|
||||
sound.raw
|
||||
switch_buffer.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/sound.raw
|
||||
V 49
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/switch_buffer.h
|
||||
END
|
||||
sangoma_mgd.conf.sample
|
||||
K 25
|
||||
|
@ -21,11 +21,11 @@ svn:wc:ra_dav:version-url
|
|||
V 59
|
||||
/svn/sangoma_mgd/!svn/ver/253/trunk/sangoma_mgd.conf.sample
|
||||
END
|
||||
switch_buffer.h
|
||||
sound.raw
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/switch_buffer.h
|
||||
V 43
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/sound.raw
|
||||
END
|
||||
safe_sangoma
|
||||
K 25
|
||||
|
@ -39,23 +39,17 @@ svn:wc:ra_dav:version-url
|
|||
V 48
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/callgettest.sh
|
||||
END
|
||||
smg_capabilities.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 54
|
||||
/svn/sangoma_mgd/!svn/ver/186/trunk/smg_capabilities.h
|
||||
END
|
||||
ss7box
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/ss7box
|
||||
END
|
||||
re-sync.sh
|
||||
smg_capabilities.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/sangoma_mgd/!svn/ver/20/trunk/re-sync.sh
|
||||
V 54
|
||||
/svn/sangoma_mgd/!svn/ver/186/trunk/smg_capabilities.h
|
||||
END
|
||||
call_signal.c
|
||||
K 25
|
||||
|
@ -63,24 +57,30 @@ svn:wc:ra_dav:version-url
|
|||
V 49
|
||||
/svn/sangoma_mgd/!svn/ver/275/trunk/call_signal.c
|
||||
END
|
||||
re-sync.sh
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/sangoma_mgd/!svn/ver/20/trunk/re-sync.sh
|
||||
END
|
||||
sangoma_mgd_logger.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 56
|
||||
/svn/sangoma_mgd/!svn/ver/189/trunk/sangoma_mgd_logger.c
|
||||
END
|
||||
sangoma_mgd.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/sangoma_mgd/!svn/ver/282/trunk/sangoma_mgd.c
|
||||
END
|
||||
woomera.conf
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/sangoma_mgd/!svn/ver/1/trunk/woomera.conf
|
||||
END
|
||||
sangoma_mgd.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/sangoma_mgd/!svn/ver/284/trunk/sangoma_mgd.c
|
||||
END
|
||||
call_signal.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
|
@ -145,7 +145,7 @@ smg_ctrl
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 44
|
||||
/svn/sangoma_mgd/!svn/ver/278/trunk/smg_ctrl
|
||||
/svn/sangoma_mgd/!svn/ver/283/trunk/smg_ctrl
|
||||
END
|
||||
switch_buffer.c
|
||||
K 25
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
||||
|
||||
2010-06-21T23:50:05.691425Z
|
||||
282
|
||||
2010-09-22T19:43:33.680100Z
|
||||
284
|
||||
ncorbic
|
||||
|
||||
|
||||
|
@ -93,7 +93,7 @@ file
|
|||
|
||||
|
||||
|
||||
2009-08-25T20:41:34.000000Z
|
||||
2010-05-27T17:25:04.000000Z
|
||||
f20dab977386b2508903e24a307ca2d6
|
||||
2007-09-21T20:53:51.260136Z
|
||||
1
|
||||
|
@ -289,10 +289,10 @@ file
|
|||
|
||||
|
||||
|
||||
2010-06-21T23:24:26.000000Z
|
||||
9d9037aece4637004d1d8ea95d1a50a7
|
||||
2010-06-21T23:50:05.691425Z
|
||||
282
|
||||
2010-09-22T18:15:14.000000Z
|
||||
e036c2ad2938ac56202abcca8dafe730
|
||||
2010-09-22T19:43:33.680100Z
|
||||
284
|
||||
ncorbic
|
||||
|
||||
woomera.conf
|
||||
|
@ -362,10 +362,10 @@ file
|
|||
|
||||
|
||||
|
||||
2010-05-06T20:04:33.000000Z
|
||||
a14a29f5626818cd593954c5288e967d
|
||||
2010-04-24T00:03:23.938859Z
|
||||
278
|
||||
2010-09-22T18:15:27.000000Z
|
||||
18b6087671c53307b19bfb1c8becafc0
|
||||
2010-08-31T16:38:57.788045Z
|
||||
283
|
||||
davidy
|
||||
has-props
|
||||
|
||||
|
|
|
@ -9,6 +9,12 @@
|
|||
*
|
||||
* =============================================
|
||||
*
|
||||
* v1.72 Nenad Corbic <ncorbic@sangoma.com>
|
||||
* Sep 22 2010
|
||||
* Bug fix from 1.71, for BRI mode we must use the ec chip
|
||||
* check not ec channel check since BRI mode starts in non persist
|
||||
* state.
|
||||
*
|
||||
* v1.71 Nenad Corbic <ncorbic@sangoma.com>
|
||||
* Jun 21 2010
|
||||
* Added a hwec_chan_status check instead of hwec check.
|
||||
|
@ -384,7 +390,7 @@ pthread_mutex_t g_smg_ip_bridge_lock;
|
|||
#endif
|
||||
|
||||
|
||||
#define SMG_VERSION "v1.71"
|
||||
#define SMG_VERSION "v1.72"
|
||||
|
||||
/* enable early media */
|
||||
#if 1
|
||||
|
@ -436,7 +442,7 @@ static int drop_seq=0;
|
|||
|
||||
const char WELCOME_TEXT[] =
|
||||
"================================================================================\n"
|
||||
"Sangoma Media Gateway Daemon v1.71 \n"
|
||||
"Sangoma Media Gateway Daemon v1.72 \n"
|
||||
"\n"
|
||||
"TDM Signal Media Gateway for Sangoma/Wanpipe Cards\n"
|
||||
"Copyright 2005, 2006, 2007 \n"
|
||||
|
@ -1475,6 +1481,8 @@ retry_loop:
|
|||
|
||||
#ifdef LIBSANGOMA_VERSION
|
||||
#ifdef WP_API_FEATURE_EC_CHAN_STAT
|
||||
/* Since we are in loop mode we want to make sure that hwec is disabled
|
||||
before we start doing the loop test. */
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
#else
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
|
@ -1729,8 +1737,17 @@ media_retry:
|
|||
|
||||
#ifdef LIBSANGOMA_VERSION
|
||||
#ifdef WP_API_FEATURE_EC_CHAN_STAT
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
#else
|
||||
/* check if hwec is available */
|
||||
if (tdmv_hwec_persist) {
|
||||
/* For T1/E1 we run with ec on. If ec is off then it was meant to be off
|
||||
thus use this as indication of whether hwec is on or off */
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
} else {
|
||||
/* On BRI we run with ec off by default. Therefore we must check
|
||||
for ec chip being enabled not the channel */
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
}
|
||||
#else
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
#endif
|
||||
if (ms->has_hwec < 0) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/bin/bash -p
|
||||
cmd=$1;
|
||||
sigd=$2;
|
||||
xtraargs='';
|
||||
|
@ -581,6 +581,13 @@ read_smg_conf
|
|||
#Set sigd
|
||||
if [ "$SANGOMA_PRID" = "YES" ]; then
|
||||
sigd="sangoma_prid"
|
||||
eval "echo $LD_LIBRARY_PATH | grep sangoma_prid > /dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ];then
|
||||
echo "Adding /usr/lib/sangoma_prid to library paths"
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/sangoma_prid"
|
||||
else
|
||||
echo "sangoma_prid libraries already in library paths"
|
||||
fi
|
||||
elif [ "$SANGOMA_BRID" = "YES" ]; then
|
||||
sigd="sangoma_brid"
|
||||
elif [ "$SANGOMA_SS7ISUP" = "YES" ]; then
|
||||
|
|
|
@ -0,0 +1,709 @@
|
|||
#!/bin/bash -p
|
||||
cmd=$1;
|
||||
sigd=$2;
|
||||
xtraargs='';
|
||||
cnt=0;
|
||||
max_retry=10;
|
||||
use_syslog=1;
|
||||
use_safe=0;
|
||||
args=' ';
|
||||
LOG=/var/log/sangoma_mgd.log
|
||||
SIG_LOG=$LOG
|
||||
PRI=0
|
||||
BRI=0
|
||||
SS7=0
|
||||
PROD="smg_ctrl"
|
||||
|
||||
ulimit -n 65000
|
||||
|
||||
function usage()
|
||||
{
|
||||
echo " "
|
||||
echo "Usage: smg_ctrl <command> <sigd> <options> "
|
||||
echo
|
||||
echo "command options:"
|
||||
echo " "
|
||||
echo " start :start $sigd and sangoma media gateway"
|
||||
echo " stop :stop $sigd and sangoma media gateway"
|
||||
echo " restart :restart $sigd and sangoma media gateway"
|
||||
echo
|
||||
echo " BRI/PRI Specific"
|
||||
echo " test :test configuration only "
|
||||
echo " capture :enable protocol capture "
|
||||
echo " show_spans :show configured spans "
|
||||
echo " show_calls :show active calls "
|
||||
echo " v+ :increase verbosity"
|
||||
echo " v- :decrease verbosity"
|
||||
echo " "
|
||||
echo "sigd options:"
|
||||
echo " sangoma_isupd :ss7 isup daemon"
|
||||
echo " sangoma_brid :bri daemon"
|
||||
echo " sangoma_prid :pri daemon"
|
||||
echo
|
||||
echo "options:"
|
||||
echo " nosyslog :does not use syslog to log data"
|
||||
echo " "
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
logit()
|
||||
{
|
||||
local data="$1"
|
||||
|
||||
echo "$PROD: $data"
|
||||
logger "$PROD: $data"
|
||||
}
|
||||
|
||||
function stop_all()
|
||||
{
|
||||
|
||||
echo " "
|
||||
logit "Stopping running processes..."
|
||||
|
||||
stop_safe_sangoma
|
||||
stop_sigdaemon
|
||||
#post_args=$post_args" >/dev/null 2>/dev/null &"
|
||||
if [ "$xtraargs" != "sigdonly" ]; then
|
||||
stop_sangoma_mgd
|
||||
fi
|
||||
|
||||
remove_pid_files
|
||||
|
||||
stop_scripts
|
||||
}
|
||||
|
||||
function stop_sigdaemon()
|
||||
{
|
||||
#stop $sigd
|
||||
eval "pidof $sigd >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending TERM signal to $sigd..."
|
||||
eval "kill -TERM $(pidof $sigd) 2>/dev/null >/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAILED"
|
||||
logit "Failed to TERM $sigd"
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
for ((i=0;i<$max_retry;i++))
|
||||
do
|
||||
eval "pidof $sigd >/dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
logit "$sigd is stopped"
|
||||
return;
|
||||
else
|
||||
logit "waiting for $sigd to finish($i/$max_retry)...."
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
eval "pidof $sigd >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending KILL signal to $sigd..."
|
||||
eval "kill -KILL $(pidof $sigd) 2>/dev/null >/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAILED"
|
||||
logit "Failed to KILL $sigd"
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
for ((i=0;i<$max_retry;i++))
|
||||
do
|
||||
eval "pidof $sigd >/dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
logit "$sigd is stopped"
|
||||
break;
|
||||
else
|
||||
logit "waiting for $sigd to finish($i/$max_retry)...."
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function stop_sangoma_mgd()
|
||||
{
|
||||
max_retry=5
|
||||
#stop sangoma media gateway
|
||||
eval "pidof sangoma_mgd >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending TERM signal to sangoma_mgd..."
|
||||
eval "sangoma_mgd -term 2>/dev/null >/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
#already stopped
|
||||
return 0;
|
||||
fi
|
||||
else
|
||||
logit "sangoma_mgd not running..."
|
||||
return;
|
||||
fi
|
||||
|
||||
for ((i=0;i<$max_retry;i++))
|
||||
do
|
||||
eval "pidof sangoma_mgd >/dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
logit "sangoma_mgd is stopped"
|
||||
return 0
|
||||
else
|
||||
logit "waiting for sangoma_mgd to finish($i/$max_retry)...."
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
#stop sangoma media gateway
|
||||
eval "pidof sangoma_mgd >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending KILL signal to sangoma_mgd..."
|
||||
eval "kill -KILL $(pidof sangoma_mgd) 2>/dev/null >/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
#already stopped
|
||||
return 0;
|
||||
fi
|
||||
else
|
||||
echo "Ok"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function stop_safe_sangoma()
|
||||
{
|
||||
eval "killall safe_sangoma >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending TERM signal to safe_sangoma..."
|
||||
else
|
||||
logit "safe_sangoma not running..."
|
||||
return;
|
||||
fi
|
||||
sleep 1
|
||||
|
||||
|
||||
eval "killall safe_sangoma >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "Sending KILL signal to safe_sangoma..."
|
||||
eval "killall -9 safe_sangoma 2>/dev/null >/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAILED"
|
||||
logit "Failed to stop safe_sangoma"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
echo "Ok"
|
||||
fi
|
||||
}
|
||||
|
||||
function remove_pid_files()
|
||||
{
|
||||
echo -n "Removing PID files..."
|
||||
if [ -e /var/run/$sigd.pid ]; then
|
||||
eval "rm -f /var/run/$sigd.pid > /dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo " "
|
||||
logit "Failed to remove /var/run/$sigd.pid, try to remove it manually"
|
||||
fi
|
||||
fi
|
||||
if [ -e /var/run/sangoma_mgd.pid ]; then
|
||||
eval "rm -f /var/run/sangoma_mgd.pid > /dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo " "
|
||||
logit "Failed to remove /var/run/sangoma_mgd.pid, try to remove it manually"
|
||||
fi
|
||||
fi
|
||||
echo "done"
|
||||
}
|
||||
|
||||
function start_test()
|
||||
{
|
||||
echo " "
|
||||
logit "Testing configuration files..."
|
||||
if [ $use_syslog -eq 1 ]; then
|
||||
eval "$sigd -t"
|
||||
else
|
||||
eval "$sigd -t -log"
|
||||
fi
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
logit "OK"
|
||||
else
|
||||
logit "Failed"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function start_scripts()
|
||||
{
|
||||
if [ -d /etc/wanpipe/smg_ctrl.d ]; then
|
||||
for script in /etc/wanpipe/smg_ctrl.d/*.start; do
|
||||
if [ -x $script ]; then
|
||||
logit "Executing startup script: $script"
|
||||
source $script
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
function stop_scripts()
|
||||
{
|
||||
if [ -d /etc/wanpipe/smg_ctrl.d ]; then
|
||||
for script in /etc/wanpipe/smg_ctrl.d/*.stop; do
|
||||
if [ -x $script ]; then
|
||||
logit "Executing stop script: $script"
|
||||
source $script
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
function start_all()
|
||||
{
|
||||
#post_args=$post_args" >/dev/null 2>/dev/null &"
|
||||
if [ "$xtraargs" = "sigdonly" ]; then
|
||||
start_sigd
|
||||
ret=$?
|
||||
else
|
||||
start_sigd
|
||||
ret=$?
|
||||
if [ $ret -eq 0 ]; then
|
||||
start_smg
|
||||
ret=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
start_scripts
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
function start_sigd()
|
||||
{
|
||||
check_sigd_running
|
||||
pre_args="";
|
||||
post_args="";
|
||||
echo " "
|
||||
if [ $use_safe -eq 1 ]; then
|
||||
logit "Starting smg_ctrl in safe mode ..."
|
||||
fi
|
||||
logit "Starting processes..."
|
||||
eval "cat /proc/net/protocols | grep sctp >/dev/null 2>/dev/null"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "SCTP support already enabled"
|
||||
else
|
||||
echo -n "Loading SCTP..."
|
||||
eval "modprobe sctp >>$LOG 2>>$LOG"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
logit "Failed"
|
||||
logit "Failed to load SCTP kernel module, check $LOG"
|
||||
return 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
sleep 1
|
||||
|
||||
eval "ls /dev/wptdm* >/dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
eval "ls /dev/wanpipe* >/dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
logit "No Sangoma TDM API interfaces running"
|
||||
logit "Did you start wanrouter? "
|
||||
return 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Starting $sigd..."
|
||||
if [ $BRI -eq 1 ] && [ $use_syslog -eq 0 ]; then
|
||||
post_args=$post_args" -log"
|
||||
fi
|
||||
|
||||
if [ $use_safe -eq 1 ]; then
|
||||
pre_args=" safe_sangoma"
|
||||
post_args=" $sigd_safe_args"
|
||||
else
|
||||
post_args=" $sigd_bg_args"
|
||||
fi
|
||||
|
||||
eval "$pre_args $sigd $post_args >/dev/null 2>/dev/null &"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
logit "Failed"
|
||||
logit "Failed to start $sigd, check $SIG_LOG for errors"
|
||||
return 1;
|
||||
fi
|
||||
sleep 2
|
||||
if [ ! $(pidof $sigd) ]; then
|
||||
logit "$sigd failed to start"
|
||||
logit "check $SIG_LOG for errors"
|
||||
return 1;
|
||||
fi
|
||||
sleep 3
|
||||
if [ "$xtraargs" = "sigdonly" ]; then
|
||||
|
||||
logit "Sangoma $sigd running.."
|
||||
if [ $use_syslog -eq 1 ]; then
|
||||
logit "log file: $LOG and /var/log/messages"
|
||||
else
|
||||
logit "log file: $LOG and /var/log/messages"
|
||||
fi
|
||||
echo " "
|
||||
fi
|
||||
return 0
|
||||
|
||||
}
|
||||
function start_smg()
|
||||
{
|
||||
check_smg_running
|
||||
pre_args="";
|
||||
post_args="";
|
||||
|
||||
if [ $use_safe -eq 1 ]; then
|
||||
pre_args=" safe_sangoma"
|
||||
post_args=""
|
||||
else
|
||||
post_args=" -bg"
|
||||
fi
|
||||
|
||||
if [ -e /etc/wanpipe/.no_smg_load ]; then
|
||||
logit "Skipping sangoma_mgd..."
|
||||
return 0;
|
||||
fi
|
||||
|
||||
echo -n "Starting sangoma_mgd..."
|
||||
eval "$pre_args sangoma_mgd $post_args >/dev/null 2>/dev/null &"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
logit "Failed"
|
||||
logit "Failed to start sangoma_mgd, check $LOG for errors"
|
||||
return 1;
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
if [ ! $(pidof sangoma_mgd) ]; then
|
||||
logit "sangoma_mgd failed to start"
|
||||
logit "check $LOG for errors"
|
||||
return 1;
|
||||
fi
|
||||
|
||||
echo "Sangoma SMG running.."
|
||||
if [ $use_syslog -eq 1 ]; then
|
||||
logit "log file: $LOG and /var/log/messages"
|
||||
else
|
||||
logit "log file: $LOG and /var/log/messages"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
}
|
||||
|
||||
function check_sigd_running()
|
||||
{
|
||||
local rc
|
||||
eval "pidof $sigd 2> /dev/null > /dev/null"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "$sigd is currently running"
|
||||
logit "exiting..."
|
||||
exit 0
|
||||
fi
|
||||
if [ -e /var/run/$sigd.pid ];then
|
||||
eval "rm -f /var/run/$sigd.pid >/dev/null 2>/dev/null";
|
||||
fi
|
||||
return 0
|
||||
|
||||
}
|
||||
|
||||
function check_smg_running()
|
||||
{
|
||||
local rc
|
||||
eval "pidof sangoma_mgd 2> /dev/null > /dev/null"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "sangoma_mgd is currently running"
|
||||
logit "exiting..."
|
||||
exit 0
|
||||
fi
|
||||
if [ -e /var/run/sangoma_mgd.pid ];then
|
||||
eval "rm -f /var/run/sangoma_mgd.pid >/dev/null 2>/dev/null";
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
function check_pid_sigd()
|
||||
{
|
||||
if [ ! $(pidof $sigd) ]; then
|
||||
logit "$sigd is not running"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
function toggle_capture()
|
||||
{
|
||||
local rc
|
||||
check_pid_sigd
|
||||
eval "kill -SIGRTMIN+2 $(pidof $sigd)"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "BRI/PRI: Protocol capture toggled"
|
||||
else
|
||||
logit "BRI/PRI: Failed to send command"
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
function increase_verbose()
|
||||
{
|
||||
local rc
|
||||
check_pid_sigd
|
||||
SIG_VAL=`kill -l SIGRTMIN`
|
||||
logit "signal: $SIG_VAL"
|
||||
eval "kill -SIGRTMIN $(pidof $sigd)"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "BRI/PRI: Verbosity increased"
|
||||
else
|
||||
logit "BRI/PRI: Failed to send command"
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
function decrease_verbose()
|
||||
{
|
||||
local rc
|
||||
check_pid_sigd
|
||||
eval "kill -SIGRTMIN+1 $(pidof $sigd)"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "BRI/PRI: Verbosity decreased"
|
||||
else
|
||||
logit "BRI/PRI: Failed to send command"
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
function show_calls()
|
||||
{
|
||||
local rc
|
||||
check_pid_sigd
|
||||
eval "kill -SIGRTMIN+3 $(pidof $sigd) "
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "BRI/PRI: Show calls"
|
||||
else
|
||||
logit "BRI/PRI: Failed to send command"
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
function show_spans()
|
||||
{
|
||||
local rc
|
||||
check_pid_sigd
|
||||
eval "kill -SIGRTMIN+4 $(pidof $sigd)"
|
||||
rc=$?
|
||||
if [ $rc -eq 0 ]; then
|
||||
logit "BRI/PRI: Show spans"
|
||||
else
|
||||
logit "BRI/PRI: Failed to send command"
|
||||
fi
|
||||
|
||||
return $rc
|
||||
}
|
||||
|
||||
function parse_args()
|
||||
{
|
||||
for arg in $args
|
||||
do
|
||||
case $arg in
|
||||
nosyslog)
|
||||
use_syslog=0;
|
||||
;;
|
||||
safe)
|
||||
use_safe=1;
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
}
|
||||
read_smg_conf ()
|
||||
{
|
||||
|
||||
WAN_HOME=/etc/wanpipe
|
||||
WAN_CONF_DIR=$WAN_HOME
|
||||
META_SMG_CONF=$WAN_HOME/smg.rc
|
||||
|
||||
# Read meta-configuration file.
|
||||
|
||||
if [ -f $META_SMG_CONF ]
|
||||
then . $META_SMG_CONF
|
||||
else
|
||||
logit " $META_SMG_CONF not found !!!!"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
function init_smg_conf()
|
||||
{
|
||||
SMG_BOOT=
|
||||
SANGOMA_PRID=
|
||||
SANGOMA_BRID=
|
||||
SANGOMA_SS7ISUP=
|
||||
SANGOMA_MEDIA_GATEWAY=
|
||||
SANGOMA_SS7BOOST=
|
||||
SANGOMA_SAFE_MODE=
|
||||
}
|
||||
######################
|
||||
#main start here
|
||||
######################
|
||||
|
||||
parse_args
|
||||
init_smg_conf
|
||||
read_smg_conf
|
||||
#Set sigd
|
||||
if [ "$SANGOMA_PRID" = "YES" ]; then
|
||||
sigd="sangoma_prid"
|
||||
eval "echo $LD_LIBRARY_PATH | grep sangoma_prid > /dev/null 2>/dev/null"
|
||||
if [ $? -ne 0 ];then
|
||||
echo "Adding /usr/lib/sangoma_prid to library paths"
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/sangoma_prid"
|
||||
else
|
||||
echo "sangoma_prid libraries already in library paths"
|
||||
fi
|
||||
elif [ "$SANGOMA_BRID" = "YES" ]; then
|
||||
sigd="sangoma_brid"
|
||||
elif [ "$SANGOMA_SS7ISUP" = "YES" ]; then
|
||||
sigd="sangoma_isupd"
|
||||
elif [ "$SANGOMA_SS7BOOST" = "YES" ]; then
|
||||
sigd="ss7boost"
|
||||
else
|
||||
logit "Failed to specify sigd!!! check $META_SMG_CONF "
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ $SANGOMA_MEDIA_GATEWAY = "NO" ]; then
|
||||
xtraargs="sigdonly"
|
||||
fi
|
||||
if [ $sigd = "ss7boost" ] || [ $sigd = "sangoma_isupd" ]; then
|
||||
sigd_safe_args="-i"
|
||||
sigd_bg_args=""
|
||||
SIG_LOG=/var/log/messages
|
||||
|
||||
eval "type $sigd 2> /dev/null > /dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
export PATH=$PATH:/usr/local/ss7box
|
||||
fi
|
||||
eval "type $sigd 2> /dev/null > /dev/null"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo
|
||||
logit "Error $sigd is not found"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SS7=1;
|
||||
elif [ $sigd = "sangoma_brid" ]; then
|
||||
sigd_safe_args=""
|
||||
sigd_bg_args="-bg"
|
||||
BRI=1;
|
||||
elif [ $sigd = "sangoma_prid" ]; then
|
||||
sigd_safe_args=""
|
||||
sigd_bg_args="-bg"
|
||||
PRI=1;
|
||||
else
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while [ ! -z "$3" ];
|
||||
do
|
||||
args=$args"$3 "
|
||||
shift
|
||||
done
|
||||
|
||||
ret=0
|
||||
|
||||
if [ "$cmd" = "start" ] && [ "$SANGOMA_SAFE_MODE" = "YES" ]; then
|
||||
cmd="safe_start"
|
||||
fi
|
||||
|
||||
if [ "$cmd" = "start" ]; then
|
||||
start_all
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]; then
|
||||
stop_all
|
||||
fi
|
||||
elif [ "$cmd" = "safe_start" ]; then
|
||||
use_safe=1
|
||||
start_all
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]; then
|
||||
stop_all
|
||||
fi
|
||||
ret=$?
|
||||
elif [ "$cmd" = "stop" ]; then
|
||||
stop_all
|
||||
ret=$?
|
||||
elif [ "$cmd" = "restart" ]; then
|
||||
stop_all
|
||||
if [ "$SANGOMA_SAFE_MODE" = "YES" ]; then
|
||||
use_safe=1
|
||||
fi
|
||||
start_all
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]; then
|
||||
stop_all
|
||||
fi
|
||||
else
|
||||
if [ $SS7 -eq 1 ]; then
|
||||
logit "Error: Unsupported command $cmd for SS7"
|
||||
echo
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$cmd" = "capture" ]; then
|
||||
toggle_capture
|
||||
ret=$?
|
||||
elif [ "$cmd" = "v+" ]; then
|
||||
increase_verbose
|
||||
ret=$?
|
||||
elif [ "$cmd" = "v-" ]; then
|
||||
decrease_verbose
|
||||
ret=$?
|
||||
elif [ "$cmd" = "show_spans" ]; then
|
||||
show_spans
|
||||
ret=$?
|
||||
elif [ "$cmd" = "show_calls" ]; then
|
||||
show_calls
|
||||
ret=$?
|
||||
elif [ "$cmd" = "test" ]; then
|
||||
start_test
|
||||
ret=$?
|
||||
else
|
||||
usage
|
||||
ret=1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $ret
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/app
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/conf
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/conf_bri
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/lib
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/lib/libteletone
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/lib/libteletone/src
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
282
|
||||
284
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd/trunk/rc
|
||||
https://www.sangomapbx.com/svn/sangoma_mgd
|
||||
|
||||
|
|
|
@ -9,6 +9,12 @@
|
|||
*
|
||||
* =============================================
|
||||
*
|
||||
* v1.72 Nenad Corbic <ncorbic@sangoma.com>
|
||||
* Sep 22 2010
|
||||
* Bug fix from 1.71, for BRI mode we must use the ec chip
|
||||
* check not ec channel check since BRI mode starts in non persist
|
||||
* state.
|
||||
*
|
||||
* v1.71 Nenad Corbic <ncorbic@sangoma.com>
|
||||
* Jun 21 2010
|
||||
* Added a hwec_chan_status check instead of hwec check.
|
||||
|
@ -384,7 +390,7 @@ pthread_mutex_t g_smg_ip_bridge_lock;
|
|||
#endif
|
||||
|
||||
|
||||
#define SMG_VERSION "v1.71"
|
||||
#define SMG_VERSION "v1.72"
|
||||
|
||||
/* enable early media */
|
||||
#if 1
|
||||
|
@ -436,7 +442,7 @@ static int drop_seq=0;
|
|||
|
||||
const char WELCOME_TEXT[] =
|
||||
"================================================================================\n"
|
||||
"Sangoma Media Gateway Daemon v1.71 \n"
|
||||
"Sangoma Media Gateway Daemon v1.72 \n"
|
||||
"\n"
|
||||
"TDM Signal Media Gateway for Sangoma/Wanpipe Cards\n"
|
||||
"Copyright 2005, 2006, 2007 \n"
|
||||
|
@ -1475,6 +1481,8 @@ retry_loop:
|
|||
|
||||
#ifdef LIBSANGOMA_VERSION
|
||||
#ifdef WP_API_FEATURE_EC_CHAN_STAT
|
||||
/* Since we are in loop mode we want to make sure that hwec is disabled
|
||||
before we start doing the loop test. */
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
#else
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
|
@ -1729,8 +1737,17 @@ media_retry:
|
|||
|
||||
#ifdef LIBSANGOMA_VERSION
|
||||
#ifdef WP_API_FEATURE_EC_CHAN_STAT
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
#else
|
||||
/* check if hwec is available */
|
||||
if (tdmv_hwec_persist) {
|
||||
/* For T1/E1 we run with ec on. If ec is off then it was meant to be off
|
||||
thus use this as indication of whether hwec is on or off */
|
||||
ms->has_hwec = sangoma_tdm_get_hwec_chan_status(ms->sangoma_sock, &tdm_api);
|
||||
} else {
|
||||
/* On BRI we run with ec off by default. Therefore we must check
|
||||
for ec chip being enabled not the channel */
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
}
|
||||
#else
|
||||
ms->has_hwec = sangoma_tdm_get_hw_ec(ms->sangoma_sock, &tdm_api);
|
||||
#endif
|
||||
if (ms->has_hwec < 0) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue