Merge pull request #187 from micmac1/master

New PR: asterisk chan-dongle and chan-lantiq
This commit is contained in:
Jiri Slachta 2017-09-20 09:22:24 +02:00 committed by GitHub
commit b152ecb040
7 changed files with 97 additions and 82 deletions

View file

@ -81,32 +81,6 @@ $(foreach b,$(8),$(call Package/asterisk13/install/sbin,$$(1),$(b));)
$$(eval $$(call BuildPackage,asterisk13-$(1)))
endef
define BuildAsterisk13NonSharedModule
define Package/asterisk13-$(1)
$$(call Package/asterisk13/Default)
TITLE:=$(2) support
DEPENDS:= asterisk13 $(patsubst +%,+PACKAGE_asterisk13-$(1):%,$(4))
PKG_FLAGS:=nonshared
endef
define Package/asterisk13-$(1)/conffiles
$(subst $(space),$(newline),$(foreach c,$(5),/etc/asterisk/$(c)))
endef
define Package/asterisk13-$(1)/description
This package provides support for '$(3)' in Asterisk.
endef
define Package/asterisk13-$(1)/install
$(foreach c,$(5),$(call Package/asterisk13/install/conffile,$$(1),$(c));)
$(foreach m,$(6),$(call Package/asterisk13/install/module,$$(1),$(m));)
$(foreach s,$(7),$(call Package/asterisk13/install/sounds,$$(1),$(s));)
$(foreach b,$(8),$(call Package/asterisk13/install/sbin,$$(1),$(b));)
endef
$$(eval $$(call BuildPackage,asterisk13-$(1)))
endef
define Package/asterisk13/Default
SUBMENU:=Telephony
SECTION:=net
@ -276,13 +250,6 @@ AST_MENUSELECT_OPTS = \
--without-curses \
--with-libxml2="$(STAGING_DIR_HOSTPKG)/usr"
define Build/Prepare
$(call Build/Prepare/Default)
ifneq ($(CONFIG_TARGET_lantiq),)
$(CP) ./src-lantiq/* $(PKG_BUILD_DIR)/
endif
endef
define Build/Configure
cd $(PKG_BUILD_DIR); \
./bootstrap.sh
@ -375,7 +342,6 @@ $(eval $(call BuildAsterisk13Module,cdr-sqlite3,Provides CDR SQLITE3,Call Detail
$(eval $(call BuildAsterisk13Module,chan-alsa,ALSA channel,the channel chan_alsa,+alsa-lib,alsa.conf,chan_alsa,,))
$(eval $(call BuildAsterisk13Module,chan-dahdi,DAHDI channel,DAHDI channel support,+dahdi-tools-libtonezone +kmod-dahdi +libpri @!aarch64,chan_dahdi.conf,chan_dahdi,,))
$(eval $(call BuildAsterisk13Module,chan-iax2,IAX2 channel,IAX support,+asterisk13-res-timing-timerfd,iax.conf iaxprov.conf,chan_iax2,,))
$(eval $(call BuildAsterisk13NonSharedModule,chan-lantiq,Lantiq TAPI channel,An implementation of Lantiq TAPI channel,@TARGET_lantiq +kmod-ltq-vmmc,lantiq.conf,chan_lantiq,,))
$(eval $(call BuildAsterisk13Module,chan-motif,Jingle channel,Motif Jingle Channel Driver,+asterisk13-res-xmpp,motif.conf,chan_motif,,))
$(eval $(call BuildAsterisk13Module,chan-oss,OSS channel,the channel chan_oss,,oss.conf,chan_oss,,))
$(eval $(call BuildAsterisk13Module,chan-sip,SIP channel,the channel chan_sip,+asterisk13-app-confbridge,sip.conf sip_notify.conf,chan_sip,,))

View file

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=asterisk-chan-dongle
PKG_VERSION:=1.1-20170724
PKG_VERSION:=1.1-20170913
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=git://github.com/wdoekes/asterisk-chan-dongle.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=1e452f7598266be0970cec582ba32dbc5568868d
PKG_SOURCE_VERSION:=4ef5ad7eea7245a031101875be08b924aa1e151b
PKG_SOURCE_PROTO:=git
PKG_FIXUP:=autoreconf

View file

@ -1,46 +0,0 @@
--- a/channel.c
+++ b/channel.c
@@ -539,6 +539,19 @@ again:
}
}
+// see https://github.com/openwrt/telephony/issues/7
+static inline void change_audio_endianness_to_le(struct iovec *iov, int iovcnt)
+{
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+ return; // nothing to do
+#else
+ for(;iovcnt-->0;iov++)
+ {
+ ast_swapcopy_samples(iov->iov_base, iov->iov_base, iov->iov_len/2);
+ }
+#endif
+}
+
#/* */
static void timing_write (struct pvt* pvt)
{
@@ -566,6 +579,7 @@ static void timing_write (struct pvt* pv
iovcnt = mixb_read_n_iov (&pvt->a_write_mixb, iov, FRAME_SIZE);
mixb_read_n_iov (&pvt->a_write_mixb, iov, FRAME_SIZE);
mixb_read_upd (&pvt->a_write_mixb, FRAME_SIZE);
+ change_audio_endianness_to_le(iov, iovcnt);
}
else if (used > 0)
{
@@ -579,6 +593,7 @@ static void timing_write (struct pvt* pv
iov[iovcnt].iov_base = silence_frame;
iov[iovcnt].iov_len = FRAME_SIZE - used;
iovcnt++;
+ change_audio_endianness_to_le(iov, iovcnt);
}
else
{
@@ -588,6 +603,7 @@ static void timing_write (struct pvt* pv
iov[0].iov_base = silence_frame;
iov[0].iov_len = FRAME_SIZE;
iovcnt = 1;
+ // ignore endianness for zeros
// continue;
}

View file

@ -0,0 +1,87 @@
#
# Copyright (C) 2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=chan-lantiq
PKG_VERSION:=1.0
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)/Default
SUBMENU:=Telephony
SECTION:=net
CATEGORY:=Network
TITLE:=Lantiq channel driver
URL:=https://github.com/kochstefan/asterisk_channel_lantiq
DEPENDS:=@(TARGET_lantiq_falcon||TARGET_lantiq_xway||TARGET_lantiq_xrx200) +kmod-ltq-vmmc
endef
define Package/asterisk13-$(PKG_NAME)
$(call Package/$(PKG_NAME)/Default)
DEPENDS+=asterisk13
VARIANT:=asterisk13
endef
define Package/description/Default
An implementation of a Lantiq TAPI channel driver for Asterisk.
endef
Package/asterisk13-$(PKG_NAME)/description = $(Package/description/Default)
define Package/conffiles/Default
/etc/asterisk/lantiq.conf
endef
Package/asterisk13-$(PKG_NAME)/conffiles = $(Package/conffiles/Default)
define Package/Install/Default
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_CONF) $(SOURCE)/files/lantiq-$(BUILD_VARIANT).conf.sample \
$(1)/etc/asterisk/lantiq.conf
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_lantiq.so \
$(1)/usr/lib/asterisk/modules
endef
Package/asterisk13-$(PKG_NAME)/install = $(Package/Install/Default)
ifeq ($(BUILD_VARIANT),asterisk13)
CHAN_LANTIQ_AST_INCLUDES:=-I$(STAGING_DIR)/usr/include/asterisk-13/include
endif
define Build/Prepare
$(CP) $(SOURCE)/files/chan_lantiq-$(BUILD_VARIANT).c $(PKG_BUILD_DIR)/chan_lantiq.c
$(CP) $(SOURCE)/files/default.exports $(PKG_BUILD_DIR)/chan_lantiq.exports
endef
define Build/Configure
endef
define Build/Compile
cd $(PKG_BUILD_DIR) && \
$(TARGET_CC) -o chan_lantiq.o -c chan_lantiq.c -MD -MT chan_lantiq.o \
-MF .chan_lantiq.o.d -MP -pthread \
$(CHAN_LANTIQ_AST_INCLUDES) \
$(TARGET_CFLAGS) \
$(TARGET_CPPFLAGS) \
-Wall -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations $(FPIC) -DAST_MODULE=\"chan_lantiq\" && \
$(TARGET_CC) -o chan_lantiq.so -pthread $(TARGET_LDFLAGS) -shared \
-Wl,--version-script,chan_lantiq.exports,--warn-common \
chan_lantiq.o
endef
$(eval $(call BuildPackage,asterisk13-$(PKG_NAME)))

View file

@ -0,0 +1,8 @@
{
global:
/* See main/asterisk.exports.in for an explanation why this is
* needed. */
_IO_stdin_used;
local:
*;
};