From 37f40d02b8fa0a23c269256ae310350dcda0718f Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Thu, 11 Jan 2018 20:20:24 +0100 Subject: [PATCH] asterisk-chan-dongle: version bump, add variant for Asterisk 13 This commit adds VARIANT support. This is so that the module will also be available for Asterisk 13. The current version does not support Asterisk 13. So this commit also updates the package to use the (more recent) source from wdoekes on github, which is also used in master. Signed-off-by: Sebastian Kemper --- net/asterisk-chan-dongle/Makefile | 104 +++++++++++++----- .../patches/001-add-send-ussd.patch | 64 ----------- .../050-add-E1752-to-seven_bit_modems.patch | 19 ---- .../patches/051-bump-package-revision.patch | 20 ---- .../100-fix-audio-on-big-endian-systems.patch | 46 -------- .../patches/200-fix-iconv-detection.patch | 11 ++ 6 files changed, 86 insertions(+), 178 deletions(-) delete mode 100644 net/asterisk-chan-dongle/patches/001-add-send-ussd.patch delete mode 100644 net/asterisk-chan-dongle/patches/050-add-E1752-to-seven_bit_modems.patch delete mode 100644 net/asterisk-chan-dongle/patches/051-bump-package-revision.patch delete mode 100644 net/asterisk-chan-dongle/patches/100-fix-audio-on-big-endian-systems.patch create mode 100644 net/asterisk-chan-dongle/patches/200-fix-iconv-detection.patch diff --git a/net/asterisk-chan-dongle/Makefile b/net/asterisk-chan-dongle/Makefile index 6b64ece..03518b8 100644 --- a/net/asterisk-chan-dongle/Makefile +++ b/net/asterisk-chan-dongle/Makefile @@ -7,18 +7,17 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=asterisk11-chan-dongle -PKG_VERSION:=1.1r35 -PKG_REV:=28a46567a88cebdc365db6f294e682246fd2dd7b -PKG_RELEASE:=6 - -PKG_SOURCE_SUBDIR:=asterisk11-chan-dongle-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz -PKG_SOURCE_URL:=https://github.com/jstasiak/asterisk-chan-dongle.git +PKG_NAME:=asterisk-chan-dongle +PKG_VERSION:=1.1-20170913 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=https://github.com/wdoekes/asterisk-chan-dongle.git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=4ef5ad7eea7245a031101875be08b924aa1e151b PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=$(PKG_REV) -PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) PKG_FIXUP:=autoreconf @@ -28,51 +27,98 @@ PKG_MAINTAINER:=Jiri Slachta include $(INCLUDE_DIR)/package.mk -define Package/asterisk11-chan-dongle +define Package/asterisk-chan-dongle/Default SUBMENU:=Telephony SECTION:=net CATEGORY:=Network - URL:=https://code.google.com/p/asterisk-chan-dongle/ - DEPENDS:= asterisk11 +libiconv-full +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +usb-modeswitch + URL:=https://github.com/wdoekes/asterisk-chan-dongle + DEPENDS:=+USE_UCLIBC:libiconv-full +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +usb-modeswitch TITLE:=Huawei UMTS 3G dongle support endef -define Package/asterisk11-chan-dongle/description +define Package/asterisk11-chan-dongle +$(call Package/asterisk-chan-dongle/Default) + DEPENDS+=asterisk11 + VARIANT:=asterisk11 +endef + +define Package/asterisk13-chan-dongle +$(call Package/asterisk-chan-dongle/Default) + DEPENDS+=asterisk13 + VARIANT:=asterisk13 +endef + +define Package/description/Default Asterisk channel driver for Huawei UMTS 3G dongle. endef +Package/asterisk11-chan-dongle/description = $(Package/description/Default) +Package/asterisk13-chan-dongle/description = $(Package/description/Default) + +ifeq ($(BUILD_VARIANT),asterisk11) + CHAN_DONGLE_AST_HEADERS:=$(STAGING_DIR)/usr/include/asterisk-11/include + CONFIGURE_ARGS+= \ + --with-astversion=11 +endif + +ifeq ($(BUILD_VARIANT),asterisk13) + CHAN_DONGLE_AST_HEADERS:=$(STAGING_DIR)/usr/include/asterisk-13/include + CONFIGURE_ARGS+= \ + --with-astversion=13 +endif + +CONFIGURE_ARGS+= \ + --with-asterisk=$(CHAN_DONGLE_AST_HEADERS) + +TARGET_CFLAGS+= \ + -I$(CHAN_DONGLE_AST_HEADERS) + +# musl and glibc include their own iconv, but uclibc does not +ifneq ($(CONFIG_USE_UCLIBC),) +TARGET_CPPFLAGS+= \ + -I$(STAGING_DIR)/usr/lib/libiconv-full/include +endif + +CHAN_DONGLE_EXTRA_CFLAGS:= \ + -Wno-old-style-declaration \ + -I$(PKG_BUILD_DIR) \ + $(TARGET_CPPFLAGS) \ + -D_GNU_SOURCE \ + -DHAVE_CONFIG_H \ + $(FPIC) + MAKE_ARGS:= \ CC="$(TARGET_CC)" \ LD="$(TARGET_CC)" \ - CFLAGS="$(TARGET_CFLAGS) -DASTERISK_VERSION_NUM=110000 -DLOW_MEMORY -D_XOPEN_SOURCE=600 $(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/lib/libiconv-full/include -I$(STAGING_DIR)/usr/include/asterisk-11/include -DHAVE_CONFIG_H -I. -fPIC" \ - LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/libiconv-full/lib -liconv" \ - DESTDIR="$(PKG_INSTALL_DIR)/usr/lib/asterisk/modules" + CFLAGS="$(TARGET_CFLAGS) $(CHAN_DONGLE_EXTRA_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS) $(if $(CONFIG_USE_UCLIBC),-L$(STAGING_DIR)/usr/lib/libiconv-full/lib -liconv)" +# $CHAN_DONGLE_ICONV_INC used by 200-fix-iconv-detection.patch CONFIGURE_VARS += \ + CHAN_DONGLE_ICONV_INC="$(TOOLCHAIN_DIR)/include $(STAGING_DIR)/usr/lib/libiconv-full/include" \ ac_cv_type_size_t=yes \ ac_cv_type_ssize_t=yes -define Build/Configure - $(call Build/Configure/Default, \ - --with-asterisk=$(STAGING_DIR)/usr/include/asterisk-11/include \ - $(MAKE_ARGS) \ - ) -endef - define Build/Compile - mkdir -p $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules - $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_ARGS) all install + $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_ARGS) endef -define Package/asterisk11-chan-dongle/conffiles +define Package/conffiles/Default /etc/asterisk/dongle.conf endef -define Package/asterisk11-chan-dongle/install +Package/asterisk11-chan-dongle/conffiles = $(Package/conffiles/Default) +Package/asterisk13-chan-dongle/conffiles = $(Package/conffiles/Default) + +define Package/Install/Default $(INSTALL_DIR) $(1)/etc/asterisk $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/dongle.conf $(1)/etc/asterisk/ $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_dongle.so $(1)/usr/lib/asterisk/modules/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_dongle.so $(1)/usr/lib/asterisk/modules/ endef +Package/asterisk11-chan-dongle/install = $(Package/Install/Default) +Package/asterisk13-chan-dongle/install = $(Package/Install/Default) + $(eval $(call BuildPackage,asterisk11-chan-dongle)) +$(eval $(call BuildPackage,asterisk13-chan-dongle)) diff --git a/net/asterisk-chan-dongle/patches/001-add-send-ussd.patch b/net/asterisk-chan-dongle/patches/001-add-send-ussd.patch deleted file mode 100644 index bc59bf9..0000000 --- a/net/asterisk-chan-dongle/patches/001-add-send-ussd.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- a/app.c -+++ b/app.c -@@ -114,7 +114,44 @@ static int app_send_sms_exec (attribute_ - return !status; - } - -+static int app_send_ussd_exec (attribute_unused struct ast_channel* channel, const char* data) -+{ -+ char* parse; -+ const char* msg; -+ int status; -+ void * msgid; - -+ AST_DECLARE_APP_ARGS (args, -+ AST_APP_ARG (device); -+ AST_APP_ARG (ussd); -+ ); -+ -+ if (ast_strlen_zero (data)) -+ { -+ return -1; -+ } -+ -+ parse = ast_strdupa (data); -+ -+ AST_STANDARD_APP_ARGS (args, parse); -+ -+ if (ast_strlen_zero (args.device)) -+ { -+ ast_log (LOG_ERROR, "NULL device for ussd -- USSD will not be sent\n"); -+ return -1; -+ } -+ -+ if (ast_strlen_zero (args.ussd)) -+ { -+ ast_log (LOG_ERROR, "NULL ussd command -- USSD will not be sent\n"); -+ return -1; -+ } -+ -+ msg = send_ussd(args.device, args.ussd, &status, &msgid); -+ if(!status) -+ ast_log (LOG_ERROR, "[%s] %s with id %p\n", args.device, msg, msgid); -+ return !status; -+} - - static const struct dongle_application - { -@@ -144,7 +181,15 @@ static const struct dongle_application - " Message - text of the message\n" - " Validity - Validity period in minutes\n" - " Report - Boolean flag for report request\n" -- } -+ }, -+ { -+ "DongleSendUSSD", -+ app_send_ussd_exec, -+ "DongleSendUSSD(Device,USSD)", -+ "DongleSendUSSD(Device,USSD)\n" -+ " Device - Id of device from dongle.conf\n" -+ " USSD - ussd command\n" -+ } - }; - - #if ASTERISK_VERSION_NUM >= 10800 diff --git a/net/asterisk-chan-dongle/patches/050-add-E1752-to-seven_bit_modems.patch b/net/asterisk-chan-dongle/patches/050-add-E1752-to-seven_bit_modems.patch deleted file mode 100644 index a2c490c..0000000 --- a/net/asterisk-chan-dongle/patches/050-add-E1752-to-seven_bit_modems.patch +++ /dev/null @@ -1,19 +0,0 @@ -From da5cd41e8554eaf1133f85282c253da2c74ff7eb Mon Sep 17 00:00:00 2001 -From: "bg_one@mail.ru" -Date: Fri, 6 Sep 2013 19:37:05 +0000 -Subject: [PATCH] added E1752 to seven_bit_modems - ---- - at_response.c | 1 + - 1 files changed, 1 insertions(+), 0 deletion(-) - ---- a/at_response.c -+++ b/at_response.c -@@ -1590,6 +1590,7 @@ static int at_response_cgmm (struct pvt* - "E171", - "E153", - "E156B", -+ "E1752", - }; - - ast_copy_string (pvt->model, str, sizeof (pvt->model)); diff --git a/net/asterisk-chan-dongle/patches/051-bump-package-revision.patch b/net/asterisk-chan-dongle/patches/051-bump-package-revision.patch deleted file mode 100644 index 3d85dd6..0000000 --- a/net/asterisk-chan-dongle/patches/051-bump-package-revision.patch +++ /dev/null @@ -1,20 +0,0 @@ -From da5cd41e8554eaf1133f85282c253da2c74ff7eb Mon Sep 17 00:00:00 2001 -From: "bg_one@mail.ru" -Date: Fri, 6 Sep 2013 19:37:05 +0000 -Subject: [PATCH] added E1752 to seven_bit_modems - ---- - configure.in | 2 +- - 1 files changed, 1 insertions(+), 1 deletion(-) - ---- a/configure.in -+++ b/configure.in -@@ -2,7 +2,7 @@ dnl init - dnl AC_REVISION($Revision: 1.30 $) - AC_PREREQ([2.60]) - AC_INIT([chan_dongle],[1.1],[http://code.google.com/p/asterisk-chan-dongle/issues/list],[chan_dongle],[http://code.google.com/p/asterisk-chan-dongle]) --PACKAGE_REVISION="34" -+PACKAGE_REVISION="35" - AC_CANONICAL_TARGET - AM_INIT_AUTOMAKE - AC_CONFIG_HEADERS([config.h]) diff --git a/net/asterisk-chan-dongle/patches/100-fix-audio-on-big-endian-systems.patch b/net/asterisk-chan-dongle/patches/100-fix-audio-on-big-endian-systems.patch deleted file mode 100644 index a6b1c07..0000000 --- a/net/asterisk-chan-dongle/patches/100-fix-audio-on-big-endian-systems.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/channel.c -+++ b/channel.c -@@ -495,6 +495,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) - { -@@ -522,6 +535,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) - { -@@ -535,6 +549,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 - { -@@ -544,6 +559,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; - } - diff --git a/net/asterisk-chan-dongle/patches/200-fix-iconv-detection.patch b/net/asterisk-chan-dongle/patches/200-fix-iconv-detection.patch new file mode 100644 index 0000000..211764f --- /dev/null +++ b/net/asterisk-chan-dongle/patches/200-fix-iconv-detection.patch @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -102,7 +102,7 @@ AC_DEFUN([AC_HEADER_FIND], [ + ) + + AC_HEADER_FIND([asterisk.h], $with_asterisk) +-AC_HEADER_FIND([iconv.h], /usr/include /usr/local/include /opt/local/include) ++AC_HEADER_FIND([iconv.h], ${CHAN_DONGLE_ICONV_INC}) + + AC_DEFINE([ICONV_CONST],[], [Define to const if you has iconv() const declaration of input buffer]) + AC_MSG_CHECKING([for iconv use const inbuf]) -- 2.30.2