Merge pull request #578 from micmac1/osip512
authorJiri Slachta <jiri@slachta.eu>
Sun, 29 Nov 2020 22:38:30 +0000 (23:38 +0100)
committerGitHub <noreply@github.com>
Sun, 29 Nov 2020 22:38:30 +0000 (23:38 +0100)
libosip2: minor version bump

55 files changed:
libs/libpri/Makefile
libs/libpri/patches/010-no-werror.patch [new file with mode: 0644]
libs/libsrtp/Makefile
libs/libsrtp/patches/010-gcc10.patch [new file with mode: 0644]
libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch [deleted file]
libs/libsrtp/patches/1005_fix_data_alignment.patch [deleted file]
libs/libsrtp/patches/1007_update_Doxyfile.patch [deleted file]
libs/libsrtp/patches/1008_shared-lib.patch [deleted file]
libs/libsrtp2/Makefile [deleted file]
libs/libsrtp2/patches/010-gcc10.patch [deleted file]
libs/re/Makefile
libs/re/patches/005-fix-builds-for-mipsel-targets.patch
libs/re/patches/010-openssl-deprecated.patch [deleted file]
net/asterisk-16.x-chan-lantiq/Makefile [deleted file]
net/asterisk-16.x/Makefile [deleted file]
net/asterisk-16.x/files/asterisk.conf [deleted file]
net/asterisk-16.x/files/asterisk.init [deleted file]
net/asterisk-16.x/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch [deleted file]
net/asterisk-16.x/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch [deleted file]
net/asterisk-16.x/patches/030-GNU-GLOB-exts-only-on-glibc.patch [deleted file]
net/asterisk-16.x/patches/053-musl-mutex-init.patch [deleted file]
net/asterisk-16.x/patches/100-build-reproducibly.patch [deleted file]
net/asterisk-16.x/patches/110-fix-astmm.patch [deleted file]
net/asterisk-16.x/patches/130-eventfd.patch [deleted file]
net/asterisk-16.x/patches/140-use-default-lua.patch [deleted file]
net/asterisk-chan-dongle/Makefile
net/asterisk-chan-lantiq/Makefile [new file with mode: 0644]
net/asterisk-chan-sccp/Makefile
net/asterisk-g72x/Makefile
net/asterisk-opus/Makefile
net/asterisk/Makefile [new file with mode: 0644]
net/asterisk/files/asterisk.conf [new file with mode: 0644]
net/asterisk/files/asterisk.init [new file with mode: 0644]
net/asterisk/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch [new file with mode: 0644]
net/asterisk/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch [new file with mode: 0644]
net/asterisk/patches/030-GNU-GLOB-exts-only-on-glibc.patch [new file with mode: 0644]
net/asterisk/patches/053-musl-mutex-init.patch [new file with mode: 0644]
net/asterisk/patches/100-build-reproducibly.patch [new file with mode: 0644]
net/asterisk/patches/110-fix-astmm.patch [new file with mode: 0644]
net/asterisk/patches/130-eventfd.patch [new file with mode: 0644]
net/asterisk/patches/140-use-default-lua.patch [new file with mode: 0644]
net/baresip/Makefile
net/baresip/patches/002-fix-rem-include.patch
net/baresip/patches/010-openssl-deprecated.patch [deleted file]
net/kamailio-5.x/Makefile
net/kamailio-5.x/patches/160-openssl-deprecated.patch [new file with mode: 0644]
net/miax/Makefile
net/miax/patches/010-usleep.patch [new file with mode: 0644]
net/miax/patches/020-includes.patch [new file with mode: 0644]
net/restund/Makefile
net/rtpengine/Makefile
net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch [new file with mode: 0644]
net/sipp/Makefile
net/sipp/patches/01-locale-include.patch [new file with mode: 0644]
net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch [new file with mode: 0644]

index 96da88a42e07745d72c2f55342a766b7ba3b69e2..5ed490092017a83e3433d64400a528b0a8cb8334 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libpri
 PKG_VERSION:=1.6.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.asterisk.org/pub/telephony/libpri/releases
diff --git a/libs/libpri/patches/010-no-werror.patch b/libs/libpri/patches/010-no-werror.patch
new file mode 100644 (file)
index 0000000..e66f428
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -68,7 +68,7 @@ DYNAMIC_OBJS= \
+       $(STATIC_OBJS)
+ CFLAGS ?= -g
+ CFLAGS += $(CPPFLAGS)
+-CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes
++CFLAGS += -Wall -Wstrict-prototypes -Wmissing-prototypes
+ CFLAGS += -fPIC $(ALERTING) $(LIBPRI_OPT) $(COVERAGE_CFLAGS)
+ INSTALL_PREFIX=$(DESTDIR)
+ INSTALL_BASE=/usr
index c0899edc36c9d94764b31d08e96bab3d7290aeb3..8c0cb4c857a7356399c3d926b58ceeb3e4ae7251 100644 (file)
@@ -1,7 +1,6 @@
 #
-# Copyright (C) 2006-2018 OpenWrt.org
-# Copyright (C) 2011 Victor Seva <linuxmaniac@torreviejawireless.org>
-# Copyright (C) 2017 - 2018 Jiri Slachta <jiri@slachta.eu>
+# Copyright (C) 2017 OpenWrt.org
+# Copyright (C) 2017 Jiri Slachta <jiri@slachta.eu>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,17 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsrtp
-PKG_VERSION:=1.6.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.3.0
+PKG_RELEASE:=1
 
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/cisco/libsrtp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=2b091a4fb21c9b06fc5d4b5763bdaec97542fcd7
-PKG_MIRROR_HASH:=7ac6c3113fd7a966c9a9108c185d9425e75a8fdc600e4ccef158e68ee1988c89
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE:=libsrtp-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/cisco/libsrtp/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=94093a5d04c5f4743e8d81182b76938374df6d393b45322f24960d250b0110e8
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -27,45 +21,39 @@ PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
 
 include $(INCLUDE_DIR)/package.mk
 
-CONFIGURE_ARGS += \
-       --disable-stdout \
-       --enable-syslog
-
-define Package/libsrtp
+define Package/libsrtp2
   SUBMENU:=Telephony
   SECTION:=libs
   CATEGORY:=Libraries
-  TITLE:=Secure Real-time Transport Protocol (SRTP) library
-  DEPENDS:=+libpcap
+  TITLE:=Secure RTP (SRTP) library, v$(PKG_VERSION)
   URL:=http://sourceforge.net/projects/srtp
+  DEPENDS:=
 endef
 
-define Package/libsrtp/description
- Open-source implementation of the Secure Real-time Transport
- Protocol (SRTP) originally authored by Cisco Systems, Inc.
- It is available under a BSD-style license.
+define Package/libsrtp2/description
+Open-source implementation of the Secure Real-time Transport
+Protocol (SRTP) originally authored by Cisco Systems, Inc.
+It is available under a BSD-style license.
 endef
 
 define Build/Install
-       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(PKG_INSTALL_DIR) uninstall
-       $(call Build/Install/Default)
+       $(call Build/Install/Default,all shared_library install)
 endef
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp2 $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp.{a,so*} $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.{a,so*} $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp2.pc $(1)/usr/lib/pkgconfig/
 endef
 
-
-define Package/libsrtp/install
+define Package/libsrtp2/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libsrtp.so* \
+               $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.so.* \
                $(1)/usr/lib/
 endef
 
-$(eval $(call BuildPackage,libsrtp))
+$(eval $(call BuildPackage,libsrtp2))
diff --git a/libs/libsrtp/patches/010-gcc10.patch b/libs/libsrtp/patches/010-gcc10.patch
new file mode 100644 (file)
index 0000000..70723f7
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/crypto/math/datatypes.c
++++ b/crypto/math/datatypes.c
+@@ -79,7 +79,7 @@ int octet_get_weight(uint8_t octet)
+ /* the value MAX_PRINT_STRING_LEN is defined in datatypes.h */
+-char bit_string[MAX_PRINT_STRING_LEN];
++static char bit_string[MAX_PRINT_STRING_LEN];
+ uint8_t srtp_nibble_to_hex_char(uint8_t nibble)
+ {
diff --git a/libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch b/libs/libsrtp/patches/1003_fix_mips_namespace_collision.patch
deleted file mode 100644 (file)
index b4e2d57..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/test/srtp_driver.c
-+++ b/test/srtp_driver.c
-@@ -341,7 +341,7 @@ main (int argc, char *argv[]) {
-   if (do_codec_timing) {
-     srtp_policy_t policy;
-     int ignore;
--    double mips = mips_estimate(1000000000, &ignore);
-+    double mips_est = mips_estimate(1000000000, &ignore);
-     crypto_policy_set_rtp_default(&policy.rtp);
-     crypto_policy_set_rtcp_default(&policy.rtcp);
-@@ -353,33 +353,33 @@ main (int argc, char *argv[]) {
-     policy.allow_repeat_tx = 0;
-     policy.next = NULL;
--    printf("mips estimate: %e\n", mips);
-+    printf("mips estimate: %e\n", mips_est);
-     printf("testing srtp processing time for voice codecs:\n");
-     printf("codec\t\tlength (octets)\t\tsrtp instructions/second\n");
-     printf("G.711\t\t%d\t\t\t%e\n", 80, 
--           (double) mips * (80 * 8) / 
-+           (double) mips_est * (80 * 8) / 
-          srtp_bits_per_second(80, &policy) / .01 );
-     printf("G.711\t\t%d\t\t\t%e\n", 160, 
--           (double) mips * (160 * 8) / 
-+           (double) mips_est * (160 * 8) / 
-          srtp_bits_per_second(160, &policy) / .02);
-     printf("G.726-32\t%d\t\t\t%e\n", 40, 
--           (double) mips * (40 * 8) / 
-+           (double) mips_est * (40 * 8) / 
-          srtp_bits_per_second(40, &policy) / .01 );
-     printf("G.726-32\t%d\t\t\t%e\n", 80, 
--           (double) mips * (80 * 8) / 
-+           (double) mips_est * (80 * 8) / 
-          srtp_bits_per_second(80, &policy) / .02);
-     printf("G.729\t\t%d\t\t\t%e\n", 10, 
--           (double) mips * (10 * 8) / 
-+           (double) mips_est * (10 * 8) / 
-          srtp_bits_per_second(10, &policy) / .01 );
-     printf("G.729\t\t%d\t\t\t%e\n", 20, 
--           (double) mips * (20 * 8) /
-+           (double) mips_est * (20 * 8) /
-          srtp_bits_per_second(20, &policy) / .02 );
-     printf("Wideband\t%d\t\t\t%e\n", 320, 
--           (double) mips * (320 * 8) /
-+           (double) mips_est * (320 * 8) /
-          srtp_bits_per_second(320, &policy) / .01 );
-     printf("Wideband\t%d\t\t\t%e\n", 640, 
--           (double) mips * (640 * 8) /
-+           (double) mips_est * (640 * 8) /
-          srtp_bits_per_second(640, &policy) / .02 );
-   }
diff --git a/libs/libsrtp/patches/1005_fix_data_alignment.patch b/libs/libsrtp/patches/1005_fix_data_alignment.patch
deleted file mode 100644 (file)
index 5f2a2e0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/test/srtp_driver.c
-+++ b/test/srtp_driver.c
-@@ -1198,7 +1198,6 @@ mips_estimate(int num_trials, int *ignor
-  * These packets were made with the default SRTP policy.
-  */
--
- err_status_t
- srtp_validate() {
-   uint8_t srtp_plaintext_ref[28] = {
-@@ -1207,14 +1206,14 @@ srtp_validate() {
-     0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 
-     0xab, 0xab, 0xab, 0xab
-   };
--  uint8_t srtp_plaintext[38] = {
-+  uint8_t srtp_plaintext[38] __attribute__((aligned(4))) = {
-     0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 
-     0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab,
-     0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 
-     0xab, 0xab, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 
-     0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-   };
--  uint8_t srtp_ciphertext[38] = {
-+  uint8_t srtp_ciphertext[38] __attribute__((aligned(4))) = {
-     0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 
-     0xca, 0xfe, 0xba, 0xbe, 0x4e, 0x55, 0xdc, 0x4c,
-     0xe7, 0x99, 0x78, 0xd8, 0x8c, 0xa4, 0xd2, 0x15, 
diff --git a/libs/libsrtp/patches/1007_update_Doxyfile.patch b/libs/libsrtp/patches/1007_update_Doxyfile.patch
deleted file mode 100644 (file)
index 8108d7d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-Description: Update Doxyfile and header template
-Author: Jonas Smedegaard <dr@jones.dk>
-Last-Update: 2010-02-28
---- a/doc/Makefile.in
-+++ b/doc/Makefile.in
-@@ -25,6 +25,7 @@ libsrtpdoc: 
-               echo "*** Sorry, can't build doc outside source dir"; exit 1; \
-       fi
-       sed 's/LIBSRTPVERSION/$(version)/' header.template > header.tex
-+      doxygen -u
-       doxygen
-       sed 's/\subsection/\section/' latex/index.tex > latex/index.tmp
-       mv latex/index.tmp latex/index.tex
-@@ -38,7 +39,7 @@ cryptodoc: clean
-       cp latex/refman.pdf crypto.pdf
- clean:
--      rm -rf latex/ header.tex
-+      rm -rf latex/ header.tex Doxyfile.bak
-       for a in * ; do                                 \
-               if [ -f "$$a~" ] ; then rm -f $$a~; fi; \
-         done;
---- a/doc/header.template
-+++ b/doc/header.template
-@@ -6,28 +6,40 @@
- % 
- \documentclass[letterpaper]{book}
- \usepackage{makeidx}
--\usepackage{fancyhdr}
- \usepackage{graphicx}
- \usepackage{multicol}
- \usepackage{float}
-+\usepackage{listings}
-+\usepackage{color}
-+\usepackage{ifthen}
-+\usepackage[table]{xcolor}
- \usepackage{textcomp}
- \usepackage{alltt}
--\usepackage{times}
--\usepackage{graphicx}
--\ifx\pdfoutput\undefined
--\usepackage[ps2pdf,
-+\usepackage{ifpdf}
-+\ifpdf
-+\usepackage[pdftex,
-             pagebackref=true,
-             colorlinks=true,
--            linkcolor=blue
-+            linkcolor=blue,
-+            unicode
-            ]{hyperref}
- \else
--\usepackage[pdftex,
-+\usepackage[ps2pdf,
-             pagebackref=true,
-             colorlinks=true,
--            linkcolor=blue
-+            linkcolor=blue,
-+            unicode
-            ]{hyperref}
-+\usepackage{pspicture}
- \fi
-+\usepackage[utf8]{inputenc}
-+\usepackage{mathptmx}
-+\usepackage[scaled=.90]{helvet}
-+\usepackage{courier}
-+\usepackage{sectsty}
-+\usepackage[titles]{tocloft}
- \usepackage{doxygen}
-+\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=3,numbers=left }
- \makeindex
- \setcounter{tocdepth}{1}
- \renewcommand{\footrulewidth}{0.4pt}
-@@ -59,7 +71,9 @@
- \selectfont
-+\renewcommand{\familydefault}{\sfdefault}
- \begin{document}
-+\hypersetup{pageanchor=false}
- \begin{titlepage}
- \vspace*{4cm}
- %\begin{center}
-@@ -107,9 +121,6 @@ This reference material in this documena
- \clearemptydoublepage
- \pagenumbering{roman}
- \tableofcontents
--%\clearemptydoublepage
--
- \clearemptydoublepage
- \pagenumbering{arabic}
--
--
-+\hypersetup{pageanchor=true}
diff --git a/libs/libsrtp/patches/1008_shared-lib.patch b/libs/libsrtp/patches/1008_shared-lib.patch
deleted file mode 100644 (file)
index e29305c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -20,7 +20,7 @@ HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
- .PHONY: all shared_library test build_table_apps
--all: test 
-+all: shared_library test
- runtest: build_table_apps test
-       @echo "running libsrtp test applications..."
diff --git a/libs/libsrtp2/Makefile b/libs/libsrtp2/Makefile
deleted file mode 100644 (file)
index 345fc29..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright (C) 2017 OpenWrt.org
-# Copyright (C) 2017 Jiri Slachta <jiri@slachta.eu>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=libsrtp2
-PKG_VERSION:=2.2.0
-PKG_RELEASE:=2
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/cisco/libsrtp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=94ac00d5ac6409e3f6409e4a5edfcdbdaa7fdabe
-PKG_MIRROR_HASH:=0429edcddfe9d36ee47eb221384c528bbe31ee9255e216f9755641c7b6083457
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
-PKG_LICENSE:=BSD-3-Clause
-PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libsrtp2
-  SUBMENU:=Telephony
-  SECTION:=libs
-  CATEGORY:=Libraries
-  TITLE:=Secure RTP (SRTP) library, v$(PKG_VERSION)
-  URL:=http://sourceforge.net/projects/srtp
-  DEPENDS:=
-endef
-
-define Package/libsrtp2/description
-Open-source implementation of the Secure Real-time Transport
-Protocol (SRTP) originally authored by Cisco Systems, Inc.
-It is available under a BSD-style license.
-endef
-
-define Build/Install
-       $(call Build/Install/Default,all shared_library install)
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/srtp2 $(1)/usr/include/
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.{a,so*} $(1)/usr/lib/
-       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsrtp2.pc $(1)/usr/lib/pkgconfig/
-endef
-
-define Package/libsrtp2/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libsrtp2.so* \
-               $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,libsrtp2))
diff --git a/libs/libsrtp2/patches/010-gcc10.patch b/libs/libsrtp2/patches/010-gcc10.patch
deleted file mode 100644 (file)
index 70723f7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/crypto/math/datatypes.c
-+++ b/crypto/math/datatypes.c
-@@ -79,7 +79,7 @@ int octet_get_weight(uint8_t octet)
- /* the value MAX_PRINT_STRING_LEN is defined in datatypes.h */
--char bit_string[MAX_PRINT_STRING_LEN];
-+static char bit_string[MAX_PRINT_STRING_LEN];
- uint8_t srtp_nibble_to_hex_char(uint8_t nibble)
- {
index ff5c7c1751d2de8aeb061e7fb2d21813002632a4..b64d5eb18e89d34536a6f6318487c3603ea9bee4 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=re
-PKG_VERSION:=0.6.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub
-PKG_HASH:=cd5bfc79640411803b200c7531e4ba8a230da3806746d3bd2de970da2060fe43
+PKG_SOURCE_URL:=https://codeload.github.com/baresip/re/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=bf0abfc511b7278462e7d54aaae39e7231b9f35423d5026c8210a322c7c8ef2f
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=docs/COPYING
@@ -31,7 +31,7 @@ define Package/libre
   CATEGORY:=Libraries
   DEPENDS:=+libopenssl +zlib
   TITLE:=Generic library for real-time communications with async IO support
-  URL:=http://www.creytiv.com
+  URL:=https://github.com/baresip/re
 endef
 
 # re.mk is used for this and all related packages (rem, restund and baresip).
index 29a03ee9591e755c3c05115feaa0139217032945..d59f85e5f39e2c6262b73d4e4d2fe553f879bbfc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/mk/re.mk
 +++ b/mk/re.mk
-@@ -438,11 +438,6 @@ endif
+@@ -439,11 +439,6 @@ endif
  
  CFLAGS        += -DARCH=\"$(ARCH)\"
  
diff --git a/libs/re/patches/010-openssl-deprecated.patch b/libs/re/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index bff18b9..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/src/main/openssl.c
-+++ b/src/main/openssl.c
-@@ -103,6 +103,7 @@ static void dynlock_destroy_handler(struct CRYPTO_dynlock_value *l,
- #endif
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- #ifdef SIGPIPE
- static void sigpipe_handler(int x)
- {
-@@ -110,10 +111,11 @@ static void sigpipe_handler(int x)
-       (void)signal(SIGPIPE, sigpipe_handler);
- }
- #endif
--
-+#endif
- int openssl_init(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- #if defined (HAVE_PTHREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
-       int err, i;
-@@ -151,6 +153,7 @@ int openssl_init(void)
-       SSL_library_init();
-       SSL_load_error_strings();
-+#endif
-       return 0;
- }
-@@ -158,7 +161,9 @@ int openssl_init(void)
- void openssl_close(void)
- {
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-       ERR_free_strings();
-+#endif
- #if defined (HAVE_PTHREAD) && (OPENSSL_VERSION_NUMBER < 0x10100000L)
-       lockv = mem_deref(lockv);
- #endif
---- a/src/tls/openssl/tls.c
-+++ b/src/tls/openssl/tls.c
-@@ -291,8 +291,8 @@ int tls_set_selfsigned(struct tls *tls, const char *cn)
-           !X509_set_subject_name(cert, subj))
-               goto out;
--      if (!X509_gmtime_adj(X509_get_notBefore(cert), -3600*24*365) ||
--          !X509_gmtime_adj(X509_get_notAfter(cert),   3600*24*365*10))
-+      if (!X509_gmtime_adj(X509_getm_notBefore(cert), -3600*24*365) ||
-+          !X509_gmtime_adj(X509_getm_notAfter(cert),   3600*24*365*10))
-               goto out;
-       if (!X509_set_pubkey(cert, key))
diff --git a/net/asterisk-16.x-chan-lantiq/Makefile b/net/asterisk-16.x-chan-lantiq/Makefile
deleted file mode 100644 (file)
index 479cbc6..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Copyright (C) 2018 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:=asterisk16-chan-lantiq
-PKG_VERSION:=20190803
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://github.com/kochstefan/asterisk_channel_lantiq.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=1d940b38cde0348dfe129d2b764e6faee440c45b
-PKG_MIRROR_HASH:=ff838ff2a4c5353fadd73806e1513f59f224914582b6ba004165712268bc94e5
-PKG_SOURCE_PROTO:=git
-
-PKG_LICENSE:=GPL-2.0
-
-PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/$(PKG_NAME)
-  SUBMENU:=Telephony Lantiq
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=Lantiq channel driver
-  URL:=https://github.com/kochstefan/asterisk_channel_lantiq
-  DEPENDS:=+asterisk16 +kmod-ltq-vmmc
-endef
-
-define Package/$(PKG_NAME)/description
-An implementation of a Lantiq TAPI channel driver for Asterisk 16.
-endef
-
-define Package/$(PKG_NAME)/conffiles
-/etc/asterisk/lantiq.conf
-endef
-
-define Build/Compile
-       cd $(PKG_BUILD_DIR)/src/channels && \
-       $(TARGET_CC) -o chan_lantiq.o -c chan_lantiq.c -MD -MT chan_lantiq.o \
-               -MF .chan_lantiq.o.d -MP -pthread \
-               $(TARGET_CFLAGS) -DAST_MODULE_SELF_SYM=__internal_chan_lantiq_self \
-               -I$(STAGING_DIR)/usr/include/asterisk-16/include \
-               $(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
-
-define Package/$(PKG_NAME)/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_CONF) \
-               $(PKG_BUILD_DIR)/src/configs/samples/lantiq.conf.sample \
-               $(1)/etc/asterisk/lantiq.conf
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) \
-               $(PKG_BUILD_DIR)/src/channels/chan_lantiq.so \
-               $(1)/usr/lib/asterisk/modules
-endef
-
-$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/net/asterisk-16.x/Makefile b/net/asterisk-16.x/Makefile
deleted file mode 100644 (file)
index 14fca16..0000000
+++ /dev/null
@@ -1,1038 +0,0 @@
-#
-# Copyright (C) 2017 - 2018 Jiri Slachta <jiri@slachta.eu>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-AST_MAJOR_VERSION:=16
-PKG_NAME:=asterisk$(AST_MAJOR_VERSION)
-PKG_VERSION:=$(AST_MAJOR_VERSION).13.0
-PKG_RELEASE:=1
-
-PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://downloads.asterisk.org/pub/telephony/asterisk/releases
-PKG_HASH:=e95238c355f5ef837009659e7422dcd7100ac7675b30ae8c49614ad32052d206
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/asterisk-$(PKG_VERSION)
-PKG_BUILD_DEPENDS:=libxml2/host
-
-PKG_LICENSE:=GPL-2.0
-PKG_LICENSE_FILES:=COPYING LICENSE
-PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
-
-MENUSELECT_CATEGORIES:= \
-       MENUSELECT_ADDONS \
-       MENUSELECT_APPS \
-       MENUSELECT_BRIDGES \
-       MENUSELECT_CDR \
-       MENUSELECT_CEL \
-       MENUSELECT_CHANNELS \
-       MENUSELECT_CODECS \
-       MENUSELECT_FORMATS \
-       MENUSELECT_FUNCS \
-       MENUSELECT_PBX \
-       MENUSELECT_RES \
-       MENUSELECT_UTILS \
-       MENUSELECT_AGIS
-
-MODULES_AVAILABLE:= \
-       app-adsiprog \
-       app-agent-pool \
-       app-alarmreceiver \
-       app-amd \
-       app-attended-transfer \
-       app-authenticate \
-       app-blind-transfer \
-       app-bridgeaddchan \
-       app-bridgewait \
-       app-celgenuserevent \
-       app-chanisavail \
-       app-channelredirect \
-       app-chanspy \
-       app-confbridge \
-       app-controlplayback \
-       app-dahdiras \
-       app-dictate \
-       app-directed-pickup \
-       app-directory \
-       app-disa \
-       app-dumpchan \
-       app-exec \
-       app-externalivr \
-       app-festival \
-       app-flash \
-       app-followme \
-       app-getcpeid \
-       app-ices \
-       app-image \
-       app-ivrdemo \
-       app-milliwatt \
-       app-minivm \
-       app-mixmonitor \
-       app-morsecode \
-       app-mp3 \
-       app-originate \
-       app-page \
-       app-playtones \
-       app-privacy \
-       app-queue \
-       app-read \
-       app-readexten \
-       app-record \
-       app-saycounted \
-       app-sayunixtime \
-       app-senddtmf \
-       app-sendtext \
-       app-skel \
-       app-sms \
-       app-softhangup \
-       app-speech \
-       app-stack \
-       app-stasis \
-       app-statsd \
-       app-stream-echo \
-       app-system \
-       app-talkdetect \
-       app-test \
-       app-transfer \
-       app-url \
-       app-userevent \
-       app-verbose \
-       app-waitforring \
-       app-waitforsilence \
-       app-waituntil \
-       app-while \
-       app-zapateller \
-       bridge-builtin-features \
-       bridge-builtin-interval-features \
-       bridge-holding \
-       bridge-native-rtp \
-       bridge-simple \
-       bridge-softmix \
-       cdr \
-       cdr-csv \
-       cdr-sqlite3 \
-       cel-custom \
-       cel-manager \
-       cel-sqlite3-custom \
-       chan-alsa \
-       chan-bridge-media \
-       chan-console \
-       chan-dahdi \
-       chan-iax2 \
-       chan-mgcp \
-       chan-mobile \
-       chan-motif \
-       chan-ooh323 \
-       chan-oss \
-       chan-rtp \
-       chan-sip \
-       chan-skinny \
-       chan-unistim \
-       codec-a-mu \
-       codec-adpcm \
-       codec-alaw \
-       codec-dahdi \
-       codec-g722 \
-       codec-g726 \
-       codec-gsm \
-       codec-ilbc \
-       codec-lpc10 \
-       codec-resample \
-       codec-speex \
-       codec-ulaw \
-       curl \
-       format-g719 \
-       format-g723 \
-       format-g726 \
-       format-g729 \
-       format-gsm \
-       format-h263 \
-       format-h264 \
-       format-ilbc \
-       format-mp3 \
-       format-ogg-speex \
-       format-ogg-vorbis \
-       format-pcm \
-       format-siren14 \
-       format-siren7 \
-       format-sln \
-       format-vox \
-       format-wav \
-       format-wav-gsm \
-       func-aes \
-       func-base64 \
-       func-blacklist \
-       func-callcompletion \
-       func-channel \
-       func-config \
-       func-cut \
-       func-db \
-       func-devstate \
-       func-dialgroup \
-       func-dialplan \
-       func-enum \
-       func-env \
-       func-extstate \
-       func-frame-trace \
-       func-global \
-       func-groupcount \
-       func-hangupcause \
-       func-holdintercept \
-       func-iconv \
-       func-jitterbuffer \
-       func-lock \
-       func-math \
-       func-md5 \
-       func-module \
-       func-periodic-hook \
-       func-pitchshift \
-       func-presencestate \
-       func-rand \
-       func-realtime \
-       func-sha1 \
-       func-shell \
-       func-sorcery \
-       func-speex \
-       func-sprintf \
-       func-srv \
-       func-sysinfo \
-       func-talkdetect \
-       func-uri \
-       func-version \
-       func-vmcount \
-       func-volume \
-       odbc \
-       pbx-ael \
-       pbx-dundi \
-       pbx-loopback \
-       pbx-lua \
-       pbx-realtime \
-       pbx-spool \
-       pgsql \
-       pjsip \
-       res-adsi \
-       res-ael-share \
-       res-agi \
-       res-ari \
-       res-ari-applications \
-       res-ari-asterisk \
-       res-ari-bridges \
-       res-ari-channels \
-       res-ari-device-states \
-       res-ari-endpoints \
-       res-ari-events \
-       res-ari-mailboxes \
-       res-ari-model \
-       res-ari-playbacks \
-       res-ari-recordings \
-       res-ari-sounds \
-       res-calendar \
-       res-calendar-caldav \
-       res-calendar-ews \
-       res-calendar-exchange \
-       res-calendar-icalendar \
-       res-chan-stats \
-       res-clialiases \
-       res-clioriginate \
-       res-config-ldap \
-       res-config-mysql \
-       res-config-sqlite3 \
-       res-convert \
-       res-endpoint-stats \
-       res-hep \
-       res-hep-pjsip \
-       res-hep-rtcp \
-       res-fax-spandsp \
-       res-fax \
-       res-format-attr-celt \
-       res-format-attr-g729 \
-       res-format-attr-h263 \
-       res-format-attr-h264 \
-       res-format-attr-ilbc \
-       res-format-attr-opus \
-       res-format-attr-silk \
-       res-format-attr-siren14 \
-       res-format-attr-siren7 \
-       res-format-attr-vp8 \
-       res-http-media-cache \
-       res-http-websocket \
-       res-limit \
-       res-manager-devicestate \
-       res-manager-presencestate \
-       res-monitor \
-       res-musiconhold \
-       res-mutestream \
-       res-mwi-devstate \
-       res-mwi-external \
-       res-mwi-external-ami \
-       res-parking \
-       res-phoneprov \
-       res-pjsip-phoneprov \
-       res-pjproject \
-       res-pktccops \
-       res-realtime \
-       res-remb-modifier \
-       res-resolver-unbound \
-       res-rtp-asterisk \
-       res-rtp-multicast \
-       res-security-log \
-       res-smdi \
-       res-snmp \
-       res-sorcery \
-       res-sorcery-memory-cache \
-       res-speech \
-       res-srtp \
-       res-stasis \
-       res-stasis-answer \
-       res-stasis-device-state \
-       res-stasis-mailbox \
-       res-stasis-playback \
-       res-stasis-recording \
-       res-stasis-snoop \
-       res-statsd \
-       res-stun-monitor \
-       res-timing-dahdi \
-       res-timing-pthread \
-       res-timing-timerfd \
-       res-xmpp \
-       voicemail
-
-UTILS_AVAILABLE:= \
-       aelparse \
-       astcanary \
-       astdb2sqlite3 \
-       astdb2bdb \
-       check_expr \
-       check_expr2 \
-       conf2ael \
-       muted \
-       smsq \
-       stereorize \
-       streamplayer
-
-AST_ENABLE:=
-
-PKG_CONFIG_DEPENDS:= \
-       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-%,$(MODULES_AVAILABLE)) \
-       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-util-%,$(subst _,-,$(UTILS_AVAILABLE))) \
-       CONFIG_ASTERISK$(AST_MAJOR_VERSION)_LOW_MEMORY
-
-include $(INCLUDE_DIR)/uclibc++.mk
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-# Needed for res-config-mysql and func-iconv to find iconv
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/$(PKG_NAME)/install/module
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*$(2).so* $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/$(PKG_NAME)/install/conffile
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/$(2) $(1)/etc/asterisk/
-endef
-
-define Package/$(PKG_NAME)/install/lib
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/$(2).so* $(1)/usr/lib/
-endef
-
-define Package/$(PKG_NAME)/install/sbin
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $(1)/usr/sbin/
-endef
-
-define Package/$(PKG_NAME)/install/sounds
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds/
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/asterisk/sounds/en/$(2) $(1)/usr/share/asterisk/sounds/
-endef
-
-define Package/$(PKG_NAME)/install/util-conffile
-       $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/$(2) $(1)/etc
-endef
-
-define Package/$(PKG_NAME)/config
-       menu "Advanced configuration"
-               depends on PACKAGE_asterisk$(AST_MAJOR_VERSION)
-
-       config ASTERISK$(AST_MAJOR_VERSION)_LOW_MEMORY
-               bool "Optimize Asterisk $(AST_MAJOR_VERSION) for low memory usage"
-               default n
-               help
-                 Warning: this feature is known to cause problems with some modules.
-                 Disable it if you experience problems like segmentation faults.
-
-       endmenu
-endef
-
-define BuildAsteriskModule
-  define Package/$(PKG_NAME)-$(1)
-  $$(call Package/$(PKG_NAME)/Default)
-    TITLE:=$(2) support
-    DEPENDS:= $(PKG_NAME) $(patsubst +%,+PACKAGE_$(PKG_NAME)-$(1):%,$(4)) $(9)
-    ifneq ($$(CONFIG_PACKAGE_$(PKG_NAME)-$(1)),)
-    AST_ENABLE+=$(6)
-    endif
-  endef
-
-  define Package/$(PKG_NAME)-$(1)/conffiles
-$(subst $(space),$(newline),$(foreach c,$(5),/etc/asterisk/$(c)))
-  endef
-
-  define Package/$(PKG_NAME)-$(1)/description
-$(subst \n,$(newline),$(3))
-  endef
-
-  define Package/$(PKG_NAME)-$(1)/install
-$(foreach c,$(5),$(call Package/$(PKG_NAME)/install/conffile,$$(1),$(c));)
-$(foreach m,$(6),$(call Package/$(PKG_NAME)/install/module,$$(1),$(m));)
-$(foreach s,$(7),$(call Package/$(PKG_NAME)/install/sounds,$$(1),$(s));)
-$(foreach b,$(8),$(call Package/$(PKG_NAME)/install/sbin,$$(1),$(b));)
-  endef
-
-  $$(eval $$(call BuildPackage,$(PKG_NAME)-$(1)))
-endef
-
-define BuildAsteriskUtil
-  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))
-  $$(call Package/$(PKG_NAME)/Default)
-    TITLE:=$(1) utility
-    DEPENDS:=$(PKG_NAME) $(patsubst +%,+PACKAGE_$(PKG_NAME)-util-$(subst _,-,$(1)):%,$(3))
-    ifneq ($$(CONFIG_PACKAGE_$(PKG_NAME)-util-$(subst _,-,$(1))),)
-    AST_ENABLE+=$(1)
-    endif
-  endef
-
-  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/conffiles
-$(subst $(space),$(newline),$(foreach c,$(4),/etc/$(c)))
-  endef
-
-  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/description
-$(2)
-  endef
-
-  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/install
-$(call Package/$(PKG_NAME)/install/sbin,$$(1),$(1))
-$(foreach c,$(4),$(call Package/$(PKG_NAME)/install/util-conffile,$$(1),$(c));)
-  endef
-
-  $$(eval $$(call BuildPackage,$(PKG_NAME)-util-$(subst _,-,$(1))))
-endef
-
-define Package/$(PKG_NAME)/Default
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  URL:=http://www.asterisk.org/
-endef
-
-define Package/$(PKG_NAME)/Default/description
- Asterisk is a complete PBX in software. It provides all of the features
- you would expect from a PBX and more. Asterisk does voice over IP in three
- protocols, and can interoperate with almost all standards-based telephony
- equipment using relatively inexpensive hardware.
-endef
-
-define Package/$(PKG_NAME)
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=Complete open source PBX, v$(PKG_VERSION)
-  MENU:=1
-  DEPENDS:=$(CXX_DEPENDS) +jansson +libcap +libedit +libopenssl +libsqlite3 +libuuid +libxml2 +zlib
-  USERID:=asterisk=385:asterisk=385
-endef
-
-define Package/$(PKG_NAME)/description
-$(call Package/$(PKG_NAME)/Default/description)
-endef
-
-define Package/$(PKG_NAME)/conffiles
-/etc/asterisk/asterisk.conf
-/etc/asterisk/acl.conf
-/etc/asterisk/cel.conf
-/etc/asterisk/ccss.conf
-/etc/asterisk/cli.conf
-/etc/asterisk/cli_permissions.conf
-/etc/asterisk/codecs.conf
-/etc/asterisk/dnsmgr.conf
-/etc/asterisk/dsp.conf
-/etc/asterisk/extconfig.conf
-/etc/asterisk/extensions.conf
-/etc/asterisk/features.conf
-/etc/asterisk/http.conf
-/etc/asterisk/indications.conf
-/etc/asterisk/logger.conf
-/etc/asterisk/manager.conf
-/etc/asterisk/modules.conf
-/etc/asterisk/res_config_sqlite3.conf
-/etc/asterisk/stasis.conf
-/etc/asterisk/udptl.conf
-/etc/asterisk/users.conf
-/etc/config/asterisk
-/etc/init.d/asterisk
-endef
-
-AST_CFG_FILES:= \
-       asterisk.conf acl.conf cel.conf ccss.conf cli.conf \
-       cli_permissions.conf codecs.conf dnsmgr.conf dsp.conf extconfig.conf \
-       extensions.conf features.conf http.conf indications.conf \
-       logger.conf manager.conf modules.conf stasis.conf udptl.conf \
-       users.conf res_config_sqlite3.conf
-
-AST_EMB_MODULES:=\
-       app_dial app_echo app_macro app_playback \
-       func_callerid func_logic func_strings func_timeout \
-       pbx_config res_crypto
-
-define Package/$(PKG_NAME)/install
-$(call Package/$(PKG_NAME)/install/lib,$(1),libasteriskssl)
-$(call Package/$(PKG_NAME)/install/sbin,$(1),asterisk)
-$(call Package/$(PKG_NAME)/install/sbin,$(1),safe_asterisk)
-$(call Package/$(PKG_NAME)/install/sbin,$(1),astgenkey)
-$(foreach m,$(AST_CFG_FILES),$(call Package/$(PKG_NAME)/install/conffile,$(1),$(m));)
-$(foreach m,$(AST_EMB_MODULES),$(call Package/$(PKG_NAME)/install/module,$(1),$(m));)
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/agi-bin
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/firmware/iax
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/keys
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds
-       $(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk
-       $(INSTALL_CONF) ./files/asterisk.conf $(1)/etc/config/asterisk
-endef
-
-define Package/$(PKG_NAME)-sounds
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=Sounds support
-  DEPENDS:=$(PKG_NAME)
-endef
-
-define Package/$(PKG_NAME)-sounds/description
-This package provides the sound-files for Asterisk $(AST_MAJOR_VERSION).
-endef
-
-define Package/$(PKG_NAME)-sounds/install
-       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds/
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/asterisk/sounds/en/* $(1)/usr/share/asterisk/sounds/
-       rm -f $(1)/usr/share/asterisk/sounds/vm-*
-endef
-
-ifeq ($(call qstrip,$(CONFIG_LIBC)),musl)
-  CONFIGURE_ARGS+= \
-       --enable-permanent-dlopen
-endif
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-chan-dahdi),)
-  CONFIGURE_ARGS+= \
-       --with-dahdi="$(STAGING_DIR)/usr" \
-       --with-pri="$(STAGING_DIR)/usr" \
-       --with-tonezone="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-dahdi \
-       --without-pri \
-       --without-tonezone
-endif
-
-# Pass CPPFLAGS in the CFLAGS as otherwise the build system will
-# ignore them.
-TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
-
-CONFIGURE_ARGS+= \
-       --disable-xmldoc \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-alsa),--with-asound="$(STAGING_DIR)/usr",--without-asound) \
-       --without-execinfo \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-mobile),--with-bluetooth="$(STAGING_DIR)/usr",--without-bluetooth) \
-       --with-cap="$(STAGING_DIR)/usr" \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-curl),--with-libcurl="$(STAGING_DIR)/usr") \
-       --with-gsm=internal \
-       --without-gtk2 \
-       --with-ilbc=internal \
-       --without-isdnnet \
-       --without-misdn \
-       --without-nbs \
-       --without-pjproject-bundled \
-       --with-libedit="$(STAGING_DIR)/usr" \
-       --with-libxml2 \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-snmp),--with-netsnmp="$(STAGING_DIR)/usr",--without-netsnmp) \
-       --without-newt \
-       --without-osptk \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pbx-lua),--with-lua="$(STAGING_DIR)/usr",--without-lua) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgres="$(STAGING_DIR)/usr",--without-postgres) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-util-smsq),--with-popt="$(STAGING_DIR)/usr",--without-popt) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-console),--with-portaudio="$(STAGING_DIR)/usr",--without-portaudio) \
-       --without-radius \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-fax-spandsp),--with-spandsp="$(STAGING_DIR)/usr",--without-spandsp) \
-       --without-sdl \
-       --without-sqlite \
-       --with-sqlite3="$(STAGING_DIR)/usr" \
-       --without-suppserv \
-       --without-tds \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-resolver-unbound),--with-unbound="$(STAGING_DIR)/usr",--without-unbound) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-vorbis),--with-vorbis="$(STAGING_DIR)/usr",--without-vorbis) \
-       --without-vpb \
-       --with-z="$(STAGING_DIR)/usr"
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-codec-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-func-speex),)
-CONFIGURE_ARGS+= \
-       --without-speex
-else
-CONFIGURE_ARGS+= \
-       --with-speex="$(STAGING_DIR)/usr"
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-codec-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-func-speex),)
-CONFIGURE_ARGS+= \
-       --without-speexdsp
-else
-CONFIGURE_ARGS+= \
-       --with-speexdsp="$(STAGING_DIR)/usr"
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-vorbis),)
-CONFIGURE_ARGS+= \
-       --without-ogg
-else
-CONFIGURE_ARGS+= \
-       --with-ogg="$(STAGING_DIR)/usr"
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-pjproject)$(CONFIG_PACKAGE_$(PKG_NAME)-res-srtp),)
-CONFIGURE_ARGS+= \
-       --without-srtp
-else
-CONFIGURE_ARGS+= \
-       --with-srtp="$(STAGING_DIR)/usr"
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-pjsip)$(CONFIG_PACKAGE_$(PKG_NAME)-res-pjproject)$(CONFIG_PACKAGE_$(PKG_NAME)-res-rtp-asterisk),)
-CONFIGURE_ARGS+= \
-       --without-pjproject
-else
-CONFIGURE_ARGS+= \
-       --with-pjproject="$(STAGING_DIR)/usr"
-endif
-
-# res-calendar-ews requires both neon and neon29 detection
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
-CONFIGURE_ARGS+= \
-       --without-neon
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
-CONFIGURE_ARGS+= \
-       --without-ical
-else
-CONFIGURE_ARGS+= \
-       --with-ical="$(STAGING_DIR)/usr"
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews),)
-CONFIGURE_ARGS+= \
-       --without-neon29
-endif
-
-ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-xmpp),)
-CONFIGURE_ARGS+= \
-       --without-iksemel
-else
-CONFIGURE_ARGS+= \
-       --with-iksemel="$(STAGING_DIR)/usr"
-endif
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
-CONFIGURE_VARS += \
-       ac_cv_path_CONFIG_NEON=$(STAGING_DIR)/usr/bin/neon-config
-endif
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews),)
-CONFIGURE_VARS += \
-       ac_cv_path_CONFIG_NEON29=$(STAGING_DIR)/usr/bin/neon-config
-endif
-
-MAKE_FLAGS+= \
-       ASTDATADIR="/usr/share/asterisk" \
-       DESTDIR="$(PKG_INSTALL_DIR)"
-
-# show full gcc arguments instead of [CC] and [LD]
-MAKE_FLAGS+= \
-       NOISY_BUILD="yes"
-
-# don't let asterisk mess with build flags
-MAKE_FLAGS+= \
-       AST_FORTIFY_SOURCE="" \
-       DEBUG="" \
-       OPTIMIZE=""
-
-AST_MENUSELECT_OPTS = \
-       --without-newt \
-       --without-curses
-
-define Build/menuselect
-       CC="$(HOSTCC)" \
-       CFLAGS="$(HOST_CFLAGS)" \
-       LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
-       $(MAKE) -C "$(PKG_BUILD_DIR)/menuselect"
-endef
-
-define Build/Configure
-       cd $(PKG_BUILD_DIR); \
-               ./bootstrap.sh
-       $(call Build/Configure/Default)
-       cd $(PKG_BUILD_DIR)/menuselect; \
-               CC="$(HOSTCC)" \
-               CFLAGS="$(HOST_CFLAGS)" \
-               CONFIG_SITE= \
-               LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
-               ./configure \
-               $(HOST_CONFIGURE_ARGS) \
-               $(AST_MENUSELECT_OPTS)
-endef
-
-define Build/Compile
-       $(call Build/menuselect)
-       $(call Build/Compile/Default,menuselect-tree)
-
-       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
-               for cat in $(MENUSELECT_CATEGORIES); do \
-                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --disable-category $$$$cat"; \
-               done; \
-               ./menuselect/menuselect \
-                       $$$$MENUSELECT_ARGS \
-                       menuselect.makeopts
-       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
-               for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
-                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --enable $$$$item"; \
-               done; \
-               ./menuselect/menuselect \
-                       $$$$MENUSELECT_ARGS \
-                       menuselect.makeopts
-       cd "$(PKG_BUILD_DIR)" && \
-               ./menuselect/menuselect \
-                       --disable BUILD_NATIVE \
-                       $(if $(CONFIG_ASTERISK$(AST_MAJOR_VERSION)_LOW_MEMORY),--enable LOW_MEMORY) \
-                       menuselect.makeopts
-
-       # When changing anything in MENUSELECT_CFLAGS the file ".lastclean"
-       # gets deleted. E.g. when compiling on x86 for x86 "--disable
-       # BUILD_NATIVE" changes MENUSELECT_CFLAGS and the file gets removed.
-       # But that will result in a rebuild attempt of menuselect which will
-       # likely fail. Prevent that by recreating ".lastclean" and menuselect.
-       $(call Build/Compile/Default,.lastclean)
-       $(call Build/menuselect)
-
-       $(call Build/Compile/Default,all install samples)
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/asterisk-$(AST_MAJOR_VERSION)/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-$(AST_MAJOR_VERSION)/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-$(AST_MAJOR_VERSION)/include/
-endef
-
-$(eval $(call BuildPackage,$(PKG_NAME)))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds))
-
-#######################################
-# AST modules
-# Params:
-# 1 - Package subname
-# 2 - Package title
-# 3 - Module description
-# 4 - Module dependencies
-# 5 - conf files
-# 6 - module files
-# 7 - sound files
-# 8 - binary files
-# 9 - complex depends (passed on as is)
-#######################################
-#$(eval $(call BuildAsteriskModule,subname,title,module description,module dependencies,conf files,module files,sound files,binary files,complex depends))
-
-$(eval $(call BuildAsteriskModule,app-adsiprog,ADSI programming,Asterisk ADSI programming application.,+$(PKG_NAME)-res-adsi,adsi.conf asterisk.adsi telcordia-1.adsi,app_adsiprog,,))
-$(eval $(call BuildAsteriskModule,app-agent-pool,Call center agent pool,Call center agent pool applications.,,agents.conf,app_agent_pool,,))
-$(eval $(call BuildAsteriskModule,app-alarmreceiver,Alarm receiver,Alarm receiver for Asterisk.,,,app_alarmreceiver,,))
-$(eval $(call BuildAsteriskModule,app-amd,Answering machine detection,Answering Machine Detection application.,,amd.conf,app_amd,,))
-$(eval $(call BuildAsteriskModule,app-attended-transfer,Attended transfer,Queues up an attended transfer to a given extension.,,,app_attended_transfer,,))
-$(eval $(call BuildAsteriskModule,app-authenticate,Authenticate commands,Authentication application.,,,app_authenticate,,))
-$(eval $(call BuildAsteriskModule,app-blind-transfer,Blind transfer,Redirects all channels currently bridged to the caller channel to a specified destination.,,,app_blind_transfer,,))
-$(eval $(call BuildAsteriskModule,app-bridgeaddchan,Bridge add channel,Bridge-add-channel application.,,,app_bridgeaddchan,,))
-$(eval $(call BuildAsteriskModule,app-bridgewait,Holding bridge,Application to place a channel into a holding bridge.,+$(PKG_NAME)-bridge-holding,,app_bridgewait,,))
-$(eval $(call BuildAsteriskModule,app-celgenuserevent,User-defined CEL event,Generate a user defined CEL event.,,,app_celgenuserevent,,))
-$(eval $(call BuildAsteriskModule,app-chanisavail,Channel availability check,Check channel availability.,,,app_chanisavail,,))
-$(eval $(call BuildAsteriskModule,app-channelredirect,Redirect a channel,Redirects a given channel to a dialplan target.,,,app_channelredirect,,))
-$(eval $(call BuildAsteriskModule,app-chanspy,Channel listen in,Listen to the audio of an active channel.,,,app_chanspy,,))
-$(eval $(call BuildAsteriskModule,app-confbridge,ConfBridge,Conference bridge application.,+$(PKG_NAME)-bridge-builtin-features +$(PKG_NAME)-bridge-simple +$(PKG_NAME)-bridge-softmix,confbridge.conf,app_confbridge,,))
-$(eval $(call BuildAsteriskModule,app-controlplayback,Control playback,Control playback application.,,,app_controlplayback,,))
-$(eval $(call BuildAsteriskModule,app-dahdiras,Execute an ISDN RAS,DAHDI ISDN Remote Access Server.,+$(PKG_NAME)-chan-dahdi,,app_dahdiras,,))
-$(eval $(call BuildAsteriskModule,app-dictate,Virtual dictation machine,Virtual dictation machine.,,,app_dictate,,))
-$(eval $(call BuildAsteriskModule,app-directed-pickup,Directed call pickup,Directed call pickup application.,,,app_directed_pickup,,))
-$(eval $(call BuildAsteriskModule,app-directory,Extension directory,Extension directory.,,,app_directory,,))
-$(eval $(call BuildAsteriskModule,app-disa,Direct Inward System Access,Direct Inward System Access application.,,,app_disa,,))
-$(eval $(call BuildAsteriskModule,app-dumpchan,Dump info about channel,Dump info about the calling channel.,,,app_dumpchan,,))
-$(eval $(call BuildAsteriskModule,app-exec,Exec application,Executes dialplan applications.,,,app_exec,,))
-$(eval $(call BuildAsteriskModule,app-externalivr,External IVR interface,External IVR interface application.,,,app_externalivr,,))
-$(eval $(call BuildAsteriskModule,app-festival,Simple festival interface,Simple Festival interface.,,festival.conf,app_festival,,))
-$(eval $(call BuildAsteriskModule,app-flash,Flash channel,Flash channel application.,+$(PKG_NAME)-chan-dahdi,,app_flash,,))
-$(eval $(call BuildAsteriskModule,app-followme,Find-me/follow-me,Find-Me/Follow-Me application.,,followme.conf,app_followme,,))
-$(eval $(call BuildAsteriskModule,app-getcpeid,Get ADSI CPE ID,Get ADSI CPE ID.,,,app_getcpeid,,))
-$(eval $(call BuildAsteriskModule,app-ices,Encode and stream,Encode and stream via Icecast and IceS.,,,app_ices,,))
-$(eval $(call BuildAsteriskModule,app-image,Image transmission,Image transmission application.,,,app_image,,))
-$(eval $(call BuildAsteriskModule,app-ivrdemo,IVR demo,IVR demo application.,,,app_ivrdemo,,))
-$(eval $(call BuildAsteriskModule,app-milliwatt,Digital milliwatt [mu-law] test app,Digital milliwatt test application.,,,app_milliwatt,,))
-$(eval $(call BuildAsteriskModule,app-minivm,Minimal voicemail system,A minimal voicemail e-mail system.,,extensions_minivm.conf minivm.conf,app_minivm,,))
-$(eval $(call BuildAsteriskModule,app-mixmonitor,Record a call and mix the audio,Mixed audio monitoring application.,,,app_mixmonitor,,))
-$(eval $(call BuildAsteriskModule,app-morsecode,Morse code,Morse code.,,,app_morsecode,,))
-$(eval $(call BuildAsteriskModule,app-mp3,Silly MP3,Silly MP3 application.,+mpg123,,app_mp3,,))
-$(eval $(call BuildAsteriskModule,app-originate,Originate a call,Originate call.,,,app_originate,,))
-$(eval $(call BuildAsteriskModule,app-page,Page multiple phones,Page multiple phones.,+$(PKG_NAME)-app-confbridge,,app_page,,))
-$(eval $(call BuildAsteriskModule,app-playtones,Playtones application,Playtones application.,,,app_playtones,,))
-$(eval $(call BuildAsteriskModule,app-privacy,Require phone number,Require phone number to be entered if no Caller ID sent.,,,app_privacy,,))
-$(eval $(call BuildAsteriskModule,app-queue,True Call Queueing,True call queueing.,,queues.conf queuerules.conf,app_queue,,))
-$(eval $(call BuildAsteriskModule,app-read,Variable read,Read variable application.,,,app_read,,))
-$(eval $(call BuildAsteriskModule,app-readexten,Extension to variable,Read and evaluate extension validity.,,,app_readexten,,))
-$(eval $(call BuildAsteriskModule,app-record,Record sound file,Trivial record application.,,,app_record,,))
-$(eval $(call BuildAsteriskModule,app-saycounted,Decline words,Decline words according to channel language.,,,app_saycounted,,))
-$(eval $(call BuildAsteriskModule,app-sayunixtime,Say Unix time,Say time.,,,app_sayunixtime,,))
-$(eval $(call BuildAsteriskModule,app-senddtmf,Send DTMF digits,Send DTMF digits application.,,,app_senddtmf,,))
-$(eval $(call BuildAsteriskModule,app-sendtext,Send text,Send text applications.,,,app_sendtext,,))
-$(eval $(call BuildAsteriskModule,app-skel,Skeleton [sample],Skeleton application.,,app_skel.conf,app_skel,,))
-$(eval $(call BuildAsteriskModule,app-sms,SMS,SMS/PSTN handler.,,,app_sms,,))
-$(eval $(call BuildAsteriskModule,app-softhangup,Hang up requested channel,Hangs up the requested channel.,,,app_softhangup,,))
-$(eval $(call BuildAsteriskModule,app-speech,Dialplan Speech,Dialplan speech applications.,+$(PKG_NAME)-res-speech,,app_speech_utils,,))
-$(eval $(call BuildAsteriskModule,app-stack,Stack applications,Dialplan subroutines.,+$(PKG_NAME)-res-agi,,app_stack,,))
-$(eval $(call BuildAsteriskModule,app-stasis,Stasis dialplan,Stasis dialplan application.,+$(PKG_NAME)-res-stasis,,app_stasis,,))
-$(eval $(call BuildAsteriskModule,app-statsd,statsd dialplan,StatsD dialplan application.,+$(PKG_NAME)-res-statsd,,app_statsd,,))
-$(eval $(call BuildAsteriskModule,app-stream-echo,Stream echo,Stream echo application.,,,app_stream_echo,,))
-$(eval $(call BuildAsteriskModule,app-system,System exec,Generic system application.,,,app_system,,))
-$(eval $(call BuildAsteriskModule,app-talkdetect,File playback with audio detect,Playback with talk detection.,,,app_talkdetect,,))
-$(eval $(call BuildAsteriskModule,app-test,Interface test,Interface test application.,,,app_test,,))
-$(eval $(call BuildAsteriskModule,app-transfer,Transfers caller to other ext,Transfers a caller to another extension.,,,app_transfer,,))
-$(eval $(call BuildAsteriskModule,app-url,Send URL,Send URL applications.,,,app_url,,))
-$(eval $(call BuildAsteriskModule,app-userevent,Custom user event,Custom user event application.,,,app_userevent,,))
-$(eval $(call BuildAsteriskModule,app-verbose,Verbose logging,Send verbose output.,,,app_verbose,,))
-$(eval $(call BuildAsteriskModule,app-waitforring,Wait for first ring,Waits until first ring after time.,,,app_waitforring,,))
-$(eval $(call BuildAsteriskModule,app-waitforsilence,Wait for silence/noise,Wait for silence/noise.,,,app_waitforsilence,,))
-$(eval $(call BuildAsteriskModule,app-waituntil,Sleep,Wait until specified time.,,,app_waituntil,,))
-$(eval $(call BuildAsteriskModule,app-while,While loop,While loops and conditional execution.,,,app_while,,))
-$(eval $(call BuildAsteriskModule,app-zapateller,Block telemarketers,Block telemarketers with special information tone.,,,app_zapateller,,))
-$(eval $(call BuildAsteriskModule,bridge-builtin-features,Bridging features,Built in bridging features.,,,bridge_builtin_features,,))
-$(eval $(call BuildAsteriskModule,bridge-builtin-interval-features,Built in bridging interval features,Built in bridging interval features.,,,bridge_builtin_interval_features,,))
-$(eval $(call BuildAsteriskModule,bridge-holding,Bridging for storing channels in a bridge,Holding bridge module.,,,bridge_holding,,))
-$(eval $(call BuildAsteriskModule,bridge-native-rtp,Native RTP bridging technology module,Native RTP bridging module.,,,bridge_native_rtp,,))
-$(eval $(call BuildAsteriskModule,bridge-simple,Simple two channel bridging module,Simple two channel bridging module.,,,bridge_simple,,))
-$(eval $(call BuildAsteriskModule,bridge-softmix,Multi-party software based channel mixing,Multi-party software based channel mixing.,,,bridge_softmix,,))
-$(eval $(call BuildAsteriskModule,cdr,Provides CDR,Call Detail Records.,,cdr.conf cdr_custom.conf cdr_manager.conf cdr_syslog.conf,app_cdr app_forkcdr cdr_custom cdr_manager cdr_syslog func_cdr,,))
-$(eval $(call BuildAsteriskModule,cdr-csv,Provides CDR CSV,Comma Separated Values CDR backend.,,,cdr_csv,,))
-$(eval $(call BuildAsteriskModule,cdr-sqlite3,Provides CDR SQLITE3,SQLite3 CDR backend.,libsqlite3,,cdr_sqlite3_custom,,))
-$(eval $(call BuildAsteriskModule,cel-custom,Customizable CSV CEL backend,Customizable Comma Separated Values CEL backend.,,cel_custom.conf,cel_custom,,))
-$(eval $(call BuildAsteriskModule,cel-manager,AMI CEL backend,Asterisk Manager Interface CEL backend.,,,cel_manager,,))
-$(eval $(call BuildAsteriskModule,cel-sqlite3-custom,SQLite3 custom CEL,SQLite3 custom CEL module.,,cel_sqlite3_custom.conf,cel_sqlite3_custom,,))
-$(eval $(call BuildAsteriskModule,chan-alsa,ALSA channel,ALSA console channel driver.,+alsa-lib,alsa.conf,chan_alsa,,))
-$(eval $(call BuildAsteriskModule,chan-bridge-media,Bridge media channel driver,Bridge media channel driver.,,,chan_bridge_media,,))
-$(eval $(call BuildAsteriskModule,chan-console,Console channel driver,Console channel driver.,+portaudio,console.conf,chan_console,,))
-$(eval $(call BuildAsteriskModule,chan-dahdi,DAHDI channel,DAHDI telephony.,+dahdi-tools-libtonezone +kmod-dahdi +libpri @!aarch64,chan_dahdi.conf,chan_dahdi,,))
-$(eval $(call BuildAsteriskModule,chan-iax2,IAX2 channel,Inter Asterisk eXchange.,+$(PKG_NAME)-res-timing-timerfd,iax.conf iaxprov.conf,chan_iax2,,))
-$(eval $(call BuildAsteriskModule,chan-mgcp,MGCP,Media Gateway Control Protocol.,,mgcp.conf,chan_mgcp,,))
-$(eval $(call BuildAsteriskModule,chan-mobile,Bluetooth channel,Bluetooth mobile device channel driver.,+bluez-libs,chan_mobile.conf,chan_mobile,,))
-$(eval $(call BuildAsteriskModule,chan-motif,Jingle channel,Motif Jingle channel driver.,+$(PKG_NAME)-res-xmpp,motif.conf,chan_motif,,))
-$(eval $(call BuildAsteriskModule,chan-ooh323,H.323 channel,Objective Systems H.323 channel.,,ooh323.conf,chan_ooh323,,))
-$(eval $(call BuildAsteriskModule,chan-oss,OSS channel,OSS console channel driver.,,oss.conf,chan_oss,,))
-$(eval $(call BuildAsteriskModule,chan-rtp,RTP media channel,RTP media channel.,,,chan_rtp,,))
-$(eval $(call BuildAsteriskModule,chan-sip,SIP channel,Session Initiation Protocol.,+$(PKG_NAME)-app-confbridge,sip.conf sip_notify.conf,chan_sip,,))
-$(eval $(call BuildAsteriskModule,chan-skinny,Skinny channel,Skinny Client Control Protocol.,,skinny.conf,chan_skinny,,))
-$(eval $(call BuildAsteriskModule,chan-unistim,Unistim channel,UNISTIM protocol.,,unistim.conf,chan_unistim,,))
-$(eval $(call BuildAsteriskModule,codec-a-mu,Alaw to ulaw translation,Alaw and ulaw direct coder/decoder.,,,codec_a_mu,,))
-$(eval $(call BuildAsteriskModule,codec-adpcm,ADPCM text,Adaptive Differential PCM coder/decoder.,,,codec_adpcm,,))
-$(eval $(call BuildAsteriskModule,codec-alaw,Signed linear to alaw translation,Alaw coder/decoder.,,,codec_alaw,,))
-$(eval $(call BuildAsteriskModule,codec-dahdi,DAHDI codec,Generic DAHDI transcoder codec translator.,+$(PKG_NAME)-chan-dahdi,,codec_dahdi,,))
-$(eval $(call BuildAsteriskModule,codec-g722,G.722,ITU G.722-64kbps G722 transcoder.,,,codec_g722,,))
-$(eval $(call BuildAsteriskModule,codec-g726,Signed linear to G.726 translation,ITU G.726-32kbps G726 transcoder.,,,codec_g726,,))
-$(eval $(call BuildAsteriskModule,codec-gsm,linear to GSM translation,GSM coder/decoder.,,,codec_gsm,,))
-$(eval $(call BuildAsteriskModule,codec-ilbc,linear to ILBC translation,iLBC coder/decoder.,,,codec_ilbc,,))
-$(eval $(call BuildAsteriskModule,codec-lpc10,Linear to LPC10 translation,LPC10 2.4kbps coder/decoder.,,,codec_lpc10,,))
-$(eval $(call BuildAsteriskModule,codec-resample,resample sLinear audio,SLIN resampling codec.,,,codec_resample,,))
-$(eval $(call BuildAsteriskModule,codec-speex,Speex Coder/Decoder,Speex coder/decoder.,@!SOFT_FLOAT +libspeex +libspeexdsp,,codec_speex,,))
-$(eval $(call BuildAsteriskModule,codec-ulaw,Signed linear to ulaw translation,Ulaw coder/decoder.,,,codec_ulaw,,))
-$(eval $(call BuildAsteriskModule,curl,CURL,cURL support,+libcurl,,func_curl res_config_curl res_curl,,))
-$(eval $(call BuildAsteriskModule,format-g719,G.719,ITU G.719.,,,format_g719,,))
-$(eval $(call BuildAsteriskModule,format-g723,G.723.1,G.723.1 simple timestamp file format.,,,format_g723,,))
-$(eval $(call BuildAsteriskModule,format-g726,G.726,Raw G.726 data.,,,format_g726,,))
-$(eval $(call BuildAsteriskModule,format-g729,G.729,Raw G.729 data.,,,format_g729,,))
-$(eval $(call BuildAsteriskModule,format-gsm,GSM format,Raw GSM data.,,,format_gsm,,))
-$(eval $(call BuildAsteriskModule,format-h263,H263 format,Raw H.263 data.,,,format_h263,,))
-$(eval $(call BuildAsteriskModule,format-h264,H264 format,Raw H.264 data.,,,format_h264,,))
-$(eval $(call BuildAsteriskModule,format-ilbc,ILBC format,Raw iLBC data.,,,format_ilbc,,))
-$(eval $(call BuildAsteriskModule,format-mp3,MP3 format,MP3 format.,@BROKEN,,format_mp3,,)) # requires patched mpg123 source
-$(eval $(call BuildAsteriskModule,format-ogg-speex,OGG/Speex audio,OGG/Speex audio.,@!SOFT_FLOAT +libogg +libspeex,,format_ogg_speex,,))
-$(eval $(call BuildAsteriskModule,format-ogg-vorbis,OGG/Vorbis audio,OGG/Vorbis audio.,+libvorbis,,format_ogg_vorbis,,))
-$(eval $(call BuildAsteriskModule,format-pcm,PCM format,Raw/Sun ulaw/alaw 8KHz and G.722 16Khz.,,,format_pcm,,))
-$(eval $(call BuildAsteriskModule,format-siren14,Siren14,ITU G.722.1 Annex C.,,,format_siren14,,))
-$(eval $(call BuildAsteriskModule,format-siren7,Siren7,ITU G.722.1.,,,format_siren7,,))
-$(eval $(call BuildAsteriskModule,format-sln,Raw slinear format,Raw signed linear audio support 8khz-192khz.,,,format_sln,,))
-$(eval $(call BuildAsteriskModule,format-vox,VOX format,Dialogic VOX file format.,,,format_vox,,))
-$(eval $(call BuildAsteriskModule,format-wav,WAV format (8000hz Signed Linear),Microsoft WAV/WAV16 format.,,,format_wav,,))
-$(eval $(call BuildAsteriskModule,format-wav-gsm,WAV format (Proprietary GSM),Microsoft WAV format.,,,format_wav_gsm,,))
-$(eval $(call BuildAsteriskModule,func-aes,AES dialplan functions,AES dialplan functions.,,,func_aes,,))
-$(eval $(call BuildAsteriskModule,func-base64,base64 support,Base64 encode/decode dialplan functions.,,,func_base64,,))
-$(eval $(call BuildAsteriskModule,func-blacklist,Blacklist on callerid,Look up Caller ID name/number from blacklist database.,,,func_blacklist,,))
-$(eval $(call BuildAsteriskModule,func-callcompletion,Call control configuration function,Call control configuration function.,,,func_callcompletion,,))
-$(eval $(call BuildAsteriskModule,func-channel,Channel info,Channel information dialplan functions.,,,func_channel,,))
-$(eval $(call BuildAsteriskModule,func-config,Configuration file variable access,Asterisk configuration file variable access.,,,func_config,,))
-$(eval $(call BuildAsteriskModule,func-cut,CUT function,Cut out information from a string.,,,func_cut,,))
-$(eval $(call BuildAsteriskModule,func-db,Database interaction,Database related dialplan functions.,,,func_db app_db,,))
-$(eval $(call BuildAsteriskModule,func-devstate,Blinky lights control,Gets or sets a device state in the dialplan.,,,func_devstate,,))
-$(eval $(call BuildAsteriskModule,func-dialgroup,Dialgroup dialplan function,Dialgroup dialplan function.,,,func_dialgroup,,))
-$(eval $(call BuildAsteriskModule,func-dialplan,Dialplan context/extension/priority checking functions,Dialplan context/extension/priority checking functions.,,,func_dialplan,,))
-$(eval $(call BuildAsteriskModule,func-enum,ENUM,ENUM related dialplan functions.,,enum.conf,func_enum,,))
-$(eval $(call BuildAsteriskModule,func-env,Environment functions,Environment/filesystem dialplan functions.,,,func_env,,))
-$(eval $(call BuildAsteriskModule,func-extstate,Hinted extension state,Gets the state of an extension in the dialplan.,,,func_extstate,,))
-$(eval $(call BuildAsteriskModule,func-frame-trace,Frame trace for internal ast_frame debugging,Frame trace for internal ast_frame debugging.,,,func_frame_trace,,))
-$(eval $(call BuildAsteriskModule,func-global,Global variable,Variable dialplan functions.,,,func_global,,))
-$(eval $(call BuildAsteriskModule,func-groupcount,Group count,Channel group dialplan functions.,,,func_groupcount,,))
-$(eval $(call BuildAsteriskModule,func-hangupcause,HANGUPCAUSE related functions,Hangup cause related functions and applications.,,,func_hangupcause,,))
-$(eval $(call BuildAsteriskModule,func-holdintercept,Hold interception dialplan function,Hold interception dialplan function.,,,func_holdintercept,,))
-$(eval $(call BuildAsteriskModule,func-iconv,Charset conversion,Charset conversions.,,,func_iconv,,,$(ICONV_DEPENDS)))
-$(eval $(call BuildAsteriskModule,func-jitterbuffer,Jitter buffer for read side of channel,Jitter buffer for read side of channel.,,,func_jitterbuffer,,))
-$(eval $(call BuildAsteriskModule,func-lock,Dialplan mutexes,Dialplan mutexes.,,,func_lock,,))
-$(eval $(call BuildAsteriskModule,func-math,Math functions,Mathematical dialplan function.,,,func_math,,))
-$(eval $(call BuildAsteriskModule,func-md5,MD5 digest dialplan functions,MD5 digest dialplan functions.,,,func_md5,,))
-$(eval $(call BuildAsteriskModule,func-module,Simple module check function,Checks if Asterisk module is loaded in memory.,,,func_module,,))
-$(eval $(call BuildAsteriskModule,func-periodic-hook,Periodic dialplan hooks,Periodic dialplan hooks.,+$(PKG_NAME)-app-chanspy +$(PKG_NAME)-func-cut +$(PKG_NAME)-func-groupcount +$(PKG_NAME)-func-uri,,func_periodic_hook,,))
-$(eval $(call BuildAsteriskModule,func-pitchshift,Audio effects dialplan functions,Audio effects dialplan functions.,,,func_pitchshift,,))
-$(eval $(call BuildAsteriskModule,func-presencestate,Hinted presence state,Gets or sets a presence state in the dialplan.,,,func_presencestate,,))
-$(eval $(call BuildAsteriskModule,func-rand,RAND dialplan function,Random number dialplan function.,,,func_rand,,))
-$(eval $(call BuildAsteriskModule,func-realtime,REALTIME dialplan function,Read/write/store/destroy values from a realtime repository.,,,func_realtime,,))
-$(eval $(call BuildAsteriskModule,func-sha1,SHA-1 computation dialplan function,SHA-1 computation dialplan function.,,,func_sha1,,))
-$(eval $(call BuildAsteriskModule,func-shell,Shell,Collects the output generated by a command executed by the system shell.,,,func_shell,,))
-$(eval $(call BuildAsteriskModule,func-sorcery,Get a field from a sorcery object,Get a field from a sorcery object.,,,func_sorcery,,))
-$(eval $(call BuildAsteriskModule,func-speex,Noise reduction and AGC,Noise reduction and Automatic Gain Control.,@!SOFT_FLOAT +libspeex +libspeexdsp,,func_speex,,))
-$(eval $(call BuildAsteriskModule,func-sprintf,SPRINTF dialplan function,SPRINTF dialplan function.,,,func_sprintf,,))
-$(eval $(call BuildAsteriskModule,func-srv,SRV functions,SRV related dialplan functions.,,,func_srv,,))
-$(eval $(call BuildAsteriskModule,func-sysinfo,System information related functions,System information related functions.,,,func_sysinfo,,))
-$(eval $(call BuildAsteriskModule,func-talkdetect,Talk detection dialplan function,Talk detection dialplan function.,,,func_talkdetect,,))
-$(eval $(call BuildAsteriskModule,func-uri,URI encoding and decoding,URI encode/decode dialplan functions.,,,func_uri,,))
-$(eval $(call BuildAsteriskModule,func-version,Get Asterisk version/build info,Get Asterisk version/build info.,,,func_version,,))
-$(eval $(call BuildAsteriskModule,func-vmcount,vmcount dialplan,Indicator for whether a voice mailbox has messages in a given folder.,,,func_vmcount,,))
-$(eval $(call BuildAsteriskModule,func-volume,Technology independent volume control,Technology independent volume control.,,,func_volume,,))
-$(eval $(call BuildAsteriskModule,odbc,ODBC,ODBC support.,+libpthread +libc +unixodbc,cdr_adaptive_odbc.conf cdr_odbc.conf cel_odbc.conf func_odbc.conf res_odbc.conf,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_config_odbc res_odbc res_odbc_transaction,,))
-$(eval $(call BuildAsteriskModule,pbx-ael,Asterisk Extension Logic,Asterisk Extension Language compiler.,+$(PKG_NAME)-res-ael-share,extensions.ael,pbx_ael,,))
-$(eval $(call BuildAsteriskModule,pbx-dundi,Dundi,Distributed Universal Number Discovery.,,dundi.conf,pbx_dundi,,))
-$(eval $(call BuildAsteriskModule,pbx-loopback,Loopback switch,Loopback switch.,,,pbx_loopback,,))
-$(eval $(call BuildAsteriskModule,pbx-lua,Lua,Lua PBX switch.,+liblua,extensions.lua,pbx_lua,,))
-$(eval $(call BuildAsteriskModule,pbx-realtime,Realtime Switch,Realtime switch.,,,pbx_realtime,,))
-$(eval $(call BuildAsteriskModule,pbx-spool,Call Spool,Outgoing spool support.,,,pbx_spool,,))
-$(eval $(call BuildAsteriskModule,pgsql,PostgreSQL,PostgreSQL support.,+libpq,cel_pgsql.conf cdr_pgsql.conf res_pgsql.conf,cel_pgsql cdr_pgsql res_config_pgsql,,))
-$(eval $(call BuildAsteriskModule,pjsip,pjsip channel,PJSIP SIP stack.,+$(PKG_NAME)-res-http-websocket +$(PKG_NAME)-res-pjproject +$(PKG_NAME)-res-sorcery +libpjsip +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsua +libpjsua2,pjsip.conf pjsip_notify.conf pjsip_wizard.conf,chan_pjsip func_pjsip_aor func_pjsip_contact func_pjsip_endpoint res_pjsip res_pjsip_acl res_pjsip_authenticator_digest res_pjsip_caller_id res_pjsip_config_wizard res_pjsip_dialog_info_body_generator res_pjsip_diversion res_pjsip_dlg_options res_pjsip_dtmf_info res_pjsip_empty_info res_pjsip_endpoint_identifier_anonymous res_pjsip_endpoint_identifier_ip res_pjsip_endpoint_identifier_user res_pjsip_exten_state res_pjsip_header_funcs res_pjsip_history res_pjsip_logger res_pjsip_messaging res_pjsip_mwi res_pjsip_mwi_body_generator res_pjsip_nat res_pjsip_notify res_pjsip_one_touch_record_info res_pjsip_outbound_authenticator_digest res_pjsip_outbound_publish res_pjsip_outbound_registration res_pjsip_path res_pjsip_pidf_body_generator res_pjsip_pidf_digium_body_supplement res_pjsip_pidf_eyebeam_body_supplement res_pjsip_publish_asterisk res_pjsip_pubsub res_pjsip_refer res_pjsip_registrar res_pjsip_rfc3326 res_pjsip_sdp_rtp res_pjsip_send_to_voicemail res_pjsip_session res_pjsip_sips_contact res_pjsip_t38 res_pjsip_transport_websocket res_pjsip_xpidf_body_generator,,))
-$(eval $(call BuildAsteriskModule,res-adsi,Provide ADSI,ADSI resource.,,,res_adsi,,))
-$(eval $(call BuildAsteriskModule,res-ael-share,Shareable AEL code,Shareable code for AEL.,,,res_ael_share,,))
-$(eval $(call BuildAsteriskModule,res-agi,Asterisk Gateway Interface,Asterisk Gateway Interface.,+$(PKG_NAME)-res-speech,,res_agi,,))
-$(eval $(call BuildAsteriskModule,res-ari,Asterisk RESTful interface,Asterisk RESTful Interface.,+$(PKG_NAME)-res-http-websocket,ari.conf,res_ari,,))
-$(eval $(call BuildAsteriskModule,res-ari-applications,RESTful Stasis application resources,RESTful API module - Stasis application resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_applications,))
-$(eval $(call BuildAsteriskModule,res-ari-asterisk,RESTful Asterisk resources,RESTful API module - Asterisk resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_asterisk,,))
-$(eval $(call BuildAsteriskModule,res-ari-bridges,RESTful bridge resources,RESTful API module - bridge resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-playback,,res_ari_bridges,,))
-$(eval $(call BuildAsteriskModule,res-ari-channels,RESTful channel resources,RESTful API module - channel resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-answer +$(PKG_NAME)-res-stasis-playback +$(PKG_NAME)-res-stasis-snoop,,res_ari_channels,,))
-$(eval $(call BuildAsteriskModule,res-ari-device-states,RESTful device state resources,RESTful API module - device state resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-device-state,,res_ari_device_states,,))
-$(eval $(call BuildAsteriskModule,res-ari-endpoints,RESTful endpoint resources,RESTful API module - endpoint resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_endpoints,,))
-$(eval $(call BuildAsteriskModule,res-ari-events,RESTful WebSocket resource,RESTful API module - WebSocket resource.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_events,,))
-$(eval $(call BuildAsteriskModule,res-ari-mailboxes,RESTful mailboxes resources,RESTful API module - mailboxes resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-mailbox,,res_ari_mailboxes,,))
-$(eval $(call BuildAsteriskModule,res-ari-model,ARI model validators,ARI model validators.,,,res_ari_model,,))
-$(eval $(call BuildAsteriskModule,res-ari-playbacks,RESTful playback control resources,RESTful API module - playback control resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-playback,,res_ari_playbacks,,))
-$(eval $(call BuildAsteriskModule,res-ari-recordings,RESTful recording resources,RESTful API module - recording resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-recording,,res_ari_recordings,,))
-$(eval $(call BuildAsteriskModule,res-ari-sounds,RESTful sound resources,RESTful API module - sound resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_sounds,))
-$(eval $(call BuildAsteriskModule,res-calendar,Calendar API,Asterisk calendar integration.,,calendar.conf,res_calendar,,))
-$(eval $(call BuildAsteriskModule,res-calendar-caldav,CalDAV calendar,Asterisk CalDAV calendar integration.,+$(PKG_NAME)-res-calendar +libical +libneon,,res_calendar_caldav,,))
-$(eval $(call BuildAsteriskModule,res-calendar-ews,EWS calendar,Asterisk MS Exchange Web Service calendar integration.,+$(PKG_NAME)-res-calendar +libneon,,res_calendar_ews,,))
-$(eval $(call BuildAsteriskModule,res-calendar-exchange,Exchange calendar,Asterisk MS Exchange calendar integration.,+$(PKG_NAME)-res-calendar +libical +libiksemel +libneon,,res_calendar_exchange,,))
-$(eval $(call BuildAsteriskModule,res-calendar-icalendar,iCalendar calendar,Asterisk iCalendar .ics file integration.,+$(PKG_NAME)-res-calendar +libical +libneon,,res_calendar_icalendar,,))
-$(eval $(call BuildAsteriskModule,res-chan-stats,statsd channel stats,Example of how to use Stasis.,+$(PKG_NAME)-res-statsd,,res_chan_stats,,))
-$(eval $(call BuildAsteriskModule,res-clialiases,CLI aliases,CLI aliases.,,cli_aliases.conf,res_clialiases,,))
-$(eval $(call BuildAsteriskModule,res-clioriginate,Calls via CLI,Call origination and redirection from the CLI.,,,res_clioriginate,,))
-$(eval $(call BuildAsteriskModule,res-config-ldap,LDAP realtime interface,LDAP realtime interface.,+libopenldap,res_ldap.conf,res_config_ldap,,))
-$(eval $(call BuildAsteriskModule,res-config-mysql,MySQL CDR backend,MySQL realtime configuration driver.,+libmysqlclient,,res_config_mysql,,))
-$(eval $(call BuildAsteriskModule,res-config-sqlite3,SQLite 3 realtime config engine,SQLite3 realtime config engine.,,,res_config_sqlite3,,))
-$(eval $(call BuildAsteriskModule,res-convert,File format conversion CLI command,File format conversion CLI command.,,,res_convert,,))
-$(eval $(call BuildAsteriskModule,res-endpoint-stats,Endpoint statistics,Endpoint statistics.,+$(PKG_NAME)-res-statsd,,res_endpoint_stats,,))
-$(eval $(call BuildAsteriskModule,res-hep,HEPv3 API,HEPv3 API.,,hep.conf,res_hep,,))
-$(eval $(call BuildAsteriskModule,res-hep-pjsip,PJSIP HEPv3 Logger,PJSIP HEPv3 logger.,+$(PKG_NAME)-res-hep +$(PKG_NAME)-pjsip,,res_hep_pjsip,,))
-$(eval $(call BuildAsteriskModule,res-hep-rtcp,RTCP HEPv3 Logger,RTCP HEPv3 logger.,+$(PKG_NAME)-res-hep,,res_hep_rtcp,,))
-$(eval $(call BuildAsteriskModule,res-fax-spandsp,Spandsp T.38 and G.711,Spandsp G.711 and T.38 FAX technologies.,+$(PKG_NAME)-res-fax +libspandsp +libtiff,,res_fax_spandsp,,))
-$(eval $(call BuildAsteriskModule,res-fax,FAX modules,Generic FAX applications.,+$(PKG_NAME)-res-timing-pthread,res_fax.conf,res_fax,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-celt,CELT format attribute module,CELT format attribute module.,,,res_format_attr_celt,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-g729,G.729 format attribute module,G.729 format attribute module.,,,res_format_attr_g729,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-h263,H.263 format attribute module,H.263 format attribute module.,,,res_format_attr_h263,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-h264,H.264 format attribute module,H.264 format attribute module.,,,res_format_attr_h264,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-ilbc,ILBC format attribute module,iLBC format attribute module.,,,res_format_attr_ilbc,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-opus,Opus format attribute module,Opus format attribute module.,,,res_format_attr_opus,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-silk,SILK format attribute module,SILK format attribute module.,,,res_format_attr_silk,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-siren14,Siren14 format attribute module,Siren14 format attribute module.,,,res_format_attr_siren14,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-siren7,Siren7 format attribute module,Siren7 format attribute module.,,,res_format_attr_siren7,,))
-$(eval $(call BuildAsteriskModule,res-format-attr-vp8,VP8 format attribute module,VP8 format attribute module.,,,res_format_attr_vp8,,))
-$(eval $(call BuildAsteriskModule,res-http-media-cache,HTTP media cache backend,HTTP media cache backend.,+$(PKG_NAME)-curl,,res_http_media_cache,,))
-$(eval $(call BuildAsteriskModule,res-http-websocket,HTTP websocket support,HTTP WebSocket support.,,,res_http_websocket,,))
-$(eval $(call BuildAsteriskModule,res-limit,Resource limits,Resource limits.,,,res_limit,,))
-$(eval $(call BuildAsteriskModule,res-manager-devicestate,Device state topic forwarder,Manager device state topic forwarder.,,,res_manager_devicestate,,))
-$(eval $(call BuildAsteriskModule,res-manager-presencestate,Presence state topic forwarder,Manager presence state topic forwarder.,,,res_manager_presencestate,,))
-$(eval $(call BuildAsteriskModule,res-monitor,PBX channel monitoring,Call monitoring resource.,,,res_monitor,,))
-$(eval $(call BuildAsteriskModule,res-musiconhold,MOH,Music On Hold resource.,,musiconhold.conf,res_musiconhold,,))
-$(eval $(call BuildAsteriskModule,res-mutestream,Mute audio stream resources,Mute audio stream resources.,,,res_mutestream,,))
-$(eval $(call BuildAsteriskModule,res-mwi-devstate,MWI device state subs,This module allows presence subscriptions to voicemail boxes. This\nallows common BLF keys to act as voicemail waiting indicators.,,,res_mwi_devstate,,))
-$(eval $(call BuildAsteriskModule,res-mwi-external,Core external MWI resource,Core external MWI resource.,,,res_mwi_external,,))
-$(eval $(call BuildAsteriskModule,res-mwi-external-ami,AMI for external MWI,AMI support for external MWI.,+$(PKG_NAME)-res-mwi-external,,res_mwi_external_ami,,))
-$(eval $(call BuildAsteriskModule,res-parking,Phone Parking,Call parking resource.,+$(PKG_NAME)-bridge-holding,res_parking.conf,res_parking,,))
-$(eval $(call BuildAsteriskModule,res-phoneprov,Phone Provisioning,HTTP phone provisioning.,,phoneprov.conf,res_phoneprov,,))
-$(eval $(call BuildAsteriskModule,res-pjsip-phoneprov,PJSIP Phone Provisioning,PJSIP phone provisioning.,+$(PKG_NAME)-pjsip +$(PKG_NAME)-res-phoneprov,,res_pjsip_phoneprov_provider,,))
-$(eval $(call BuildAsteriskModule,res-pjproject,Bridge PJPROJECT to Asterisk logging,PJProject log and utility support.,+libpj +libpjlib-util +libpjmedia +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsip +libpjsua +libpjsua2 +libsrtp2,pjproject.conf,res_pjproject,,))
-$(eval $(call BuildAsteriskModule,res-pktccops,PktcCOPS manager for MGCP,PktcCOPS manager for MGCP.,,res_pktccops.conf,res_pktccops,,))
-$(eval $(call BuildAsteriskModule,res-realtime,RealTime CLI,Realtime data lookup/rewrite.,,,res_realtime,,))
-$(eval $(call BuildAsteriskModule,res-remb-modifier,REMB modifier,REMB modifier module.,,,res_remb_modifier,,))
-$(eval $(call BuildAsteriskModule,res-resolver-unbound,Unbound DNS resolver,Unbound DNS resolver support.,+libunbound,resolver_unbound.conf,res_resolver_unbound,,))
-$(eval $(call BuildAsteriskModule,res-rtp-asterisk,RTP stack,Asterisk RTP stack.,+libpjsip +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsua +libpjsua2,rtp.conf,res_rtp_asterisk,,))
-$(eval $(call BuildAsteriskModule,res-rtp-multicast,RTP multicast engine,Multicast RTP engine.,,,res_rtp_multicast,,))
-$(eval $(call BuildAsteriskModule,res-security-log,Security event logging,Security event logging.,,,res_security_log,,))
-$(eval $(call BuildAsteriskModule,res-smdi,Provide SMDI,Simplified Message Desk Interface resource.,,smdi.conf,res_smdi,,))
-$(eval $(call BuildAsteriskModule,res-snmp,SNMP [Sub]Agent for Asterisk,SNMP agent for Asterisk.,+libnetsnmp,res_snmp.conf,res_snmp,,))
-$(eval $(call BuildAsteriskModule,res-sorcery,Sorcery data layer,Sorcery backend modules for data access intended for using realtime as\nbackend.,,sorcery.conf,res_sorcery_astdb res_sorcery_config res_sorcery_memory res_sorcery_realtime,,))
-$(eval $(call BuildAsteriskModule,res-sorcery-memory-cache,Sorcery memory cache object wizard,Sorcery memory cache object wizard.,,,res_sorcery_memory_cache,,))
-$(eval $(call BuildAsteriskModule,res-speech,Speech Recognition API,Generic speech recognition API.,,,res_speech,,))
-$(eval $(call BuildAsteriskModule,res-srtp,SRTP Support,Secure RTP.,+libsrtp2,,res_srtp,,))
-$(eval $(call BuildAsteriskModule,res-stasis,Stasis application,Stasis application support.,,,res_stasis,,))
-$(eval $(call BuildAsteriskModule,res-stasis-answer,Stasis application answer,Stasis application answer support.,+$(PKG_NAME)-res-stasis,,res_stasis_answer,,))
-$(eval $(call BuildAsteriskModule,res-stasis-device-state,Stasis application device state,Stasis application device state support.,+$(PKG_NAME)-res-stasis,,res_stasis_device_state,,))
-$(eval $(call BuildAsteriskModule,res-stasis-mailbox,Stasis application mailbox,Stasis application mailbox support.,+$(PKG_NAME)-res-stasis +$(PKG_NAME)-res-mwi-external,,res_stasis_mailbox,,))
-$(eval $(call BuildAsteriskModule,res-stasis-playback,Stasis application playback,Stasis application playback support.,+$(PKG_NAME)-res-stasis-recording,,res_stasis_playback,,))
-$(eval $(call BuildAsteriskModule,res-stasis-recording,Stasis application recording,Stasis application recording support.,+$(PKG_NAME)-res-stasis,,res_stasis_recording,,))
-$(eval $(call BuildAsteriskModule,res-stasis-snoop,Stasis application snoop,Stasis application snoop support.,+$(PKG_NAME)-res-stasis-recording,,res_stasis_snoop,,))
-$(eval $(call BuildAsteriskModule,res-statsd,statsd client,Statsd client support.,,statsd.conf,res_statsd,,))
-$(eval $(call BuildAsteriskModule,res-stun-monitor,STUN monitoring,STUN network monitor.,,res_stun_monitor.conf,res_stun_monitor,,))
-$(eval $(call BuildAsteriskModule,res-timing-dahdi,DAHDI Timing Interface,DAHDI timing interface.,+$(PKG_NAME)-chan-dahdi,,res_timing_dahdi,,))
-$(eval $(call BuildAsteriskModule,res-timing-pthread,pthread Timing Interface,pthread timing interface.,,,res_timing_pthread,,))
-$(eval $(call BuildAsteriskModule,res-timing-timerfd,Timerfd Timing Interface,Timerfd timing interface.,,,res_timing_timerfd,,))
-$(eval $(call BuildAsteriskModule,res-xmpp,XMPP client and component module,Asterisk XMPP interface.,+libiksemel +libopenssl,xmpp.conf,res_xmpp,,))
-$(eval $(call BuildAsteriskModule,voicemail,Voicemail,Voicemail modules.,+$(PKG_NAME)-res-adsi +$(PKG_NAME)-res-smdi,voicemail.conf,app_voicemail,vm-*,))
-
-################################
-# AST utils
-# Params:
-# 1 - Utility name
-# 2 - Description
-# 3 - Dependencies
-# 4 - Configuration files
-################################
-# $(eval $(call BuildAsteriskUtil,Utility,Description,Dependencies,Configuration Files))
-
-$(eval $(call BuildAsteriskUtil,aelparse,Check extensions.ael file.,+$(PKG_NAME)-pbx-ael,))
-$(eval $(call BuildAsteriskUtil,astcanary,Assures Asterisk no threads have gone missing.,,))
-$(eval $(call BuildAsteriskUtil,astdb2sqlite3,Convert astdb to SQLite 3.,,))
-$(eval $(call BuildAsteriskUtil,astdb2bdb,Convert astdb back to Berkeley DB 1.86.,,))
-$(eval $(call BuildAsteriskUtil,check_expr,Expression checker [older version].,,))
-$(eval $(call BuildAsteriskUtil,check_expr2,Expression checker [newer version].,,))
-$(eval $(call BuildAsteriskUtil,conf2ael,Convert .conf to .ael.,+$(PKG_NAME)-pbx-ael,))
-$(eval $(call BuildAsteriskUtil,muted,Listens for AMI events. Mutes soundcard during call.,,muted.conf))
-$(eval $(call BuildAsteriskUtil,smsq,Send messages from command line.,+libpopt,))
-$(eval $(call BuildAsteriskUtil,stereorize,Merge two mono WAV-files to one stereo WAV-file.,,))
-$(eval $(call BuildAsteriskUtil,streamplayer,A utility for reading from a raw TCP stream [MOH source].,,))
diff --git a/net/asterisk-16.x/files/asterisk.conf b/net/asterisk-16.x/files/asterisk.conf
deleted file mode 100644 (file)
index f175df8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# The init script will create below default directories automatically.
-# In case you change these paths in your Asterisk configuration, make
-# sure that your directories exist and have the appropriate permissions
-# (Asterisk will use the user "asterisk", not root).
-
-# dbdir     => '/var/lib/asterisk/astdb'
-# logdir    => '/var/log/asterisk'
-# rundir    => '/var/run/asterisk'
-# spooldir  => '/var/spool/asterisk'
-# varlibdir => '/var/lib/asterisk'
-
-config asterisk 'general'
-       option enabled '0'
-       option log_stderr '1'
-       option log_stdout '1'
-       option options ''
diff --git a/net/asterisk-16.x/files/asterisk.init b/net/asterisk-16.x/files/asterisk.init
deleted file mode 100644 (file)
index 256a3cf..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2014 OpenWrt.org
-
-START=99
-
-USE_PROCD=1
-
-#PROCD_DEBUG=1
-
-NAME=asterisk
-COMMAND=/usr/sbin/$NAME
-
-LOGGER="/usr/bin/logger -p user.err -s -t $NAME --"
-
-start_service() {
-
-  dbdir=/var/lib/asterisk/astdb
-  logdir=/var/log/asterisk
-  cdrcsvdir=$logdir/cdr-csv
-  rundir=/var/run/asterisk
-  spooldir=/var/spool/asterisk
-  varlibdir=/var/lib/asterisk
-
-  config_load $NAME
-
-  config_get_bool enabled general enabled 0
-  if [ $enabled -eq 0 ]; then
-    $LOGGER service not enabled in /etc/config/$NAME
-    exit 1
-  fi
-
-  config_get_bool log_stderr general log_stderr 1
-  config_get_bool log_stdout general log_stdout 1
-
-  config_get options general options
-
-  for i in \
-    "$logdir" \
-    "$cdrcsvdir" \
-    "$rundir" \
-    "$spooldir" \
-    "$varlibdir" \
-    "$dbdir"
-  do
-    if ! [ -e "$i" ]; then
-      mkdir -m 0750 -p "$i"
-      [ -d "$i" ] && chown $NAME:$NAME "$i"
-    fi
-  done
-
-  procd_open_instance
-  procd_set_param command $COMMAND
-  procd_append_param command \
-    -G "$NAME" \
-    -U "$NAME" \
-    $options \
-    -f
-  # forward stderr to logd
-  procd_set_param stderr $log_stderr
-  # same for stdout
-  procd_set_param stdout $log_stdout
-  procd_close_instance
-
-}
diff --git a/net/asterisk-16.x/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch b/net/asterisk-16.x/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch
deleted file mode 100644 (file)
index ad8bc59..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -1035,15 +1035,18 @@ AC_LINK_IFELSE(
- # Some platforms define sem_init(), but only support sem_open(). joyous.
- AC_MSG_CHECKING(for working unnamed semaphores)
--AC_RUN_IFELSE(
--      [AC_LANG_PROGRAM([#include <semaphore.h>],
--              [sem_t sem; return sem_init(&sem, 0, 0);])],
-+AC_LINK_IFELSE(
-+      [AC_LANG_PROGRAM(
-+        [#include <semaphore.h>],
-+        [#if defined(__UCLIBC__)
-+         i_dont_exist sem;
-+         #else
-+         sem_t sem;
-+         #endif
-+         return sem_init(&sem, 0, 0);])],
-       AC_MSG_RESULT(yes)
-       AC_DEFINE([HAS_WORKING_SEMAPHORE], 1, [Define to 1 if anonymous semaphores work.]),
--      AC_MSG_RESULT(no),
--      AC_MSG_RESULT(cross-compile)
--      AC_MSG_NOTICE([WARNING: result yes guessed because of cross compilation])
--      AC_DEFINE([HAS_WORKING_SEMAPHORE], 1, [Define to 1 if anonymous semaphores work.])
-+      AC_MSG_RESULT(no)
- )
- LIBS="$save_LIBS"
diff --git a/net/asterisk-16.x/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch b/net/asterisk-16.x/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch
deleted file mode 100644 (file)
index 74ae605..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9b4070944578336506cd0a76de6f733c72d0ca74 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sat, 13 Oct 2018 11:11:15 +0200
-Subject: [PATCH] configure: fix detection of re-entrant resolver functions
-
-Fixes https://issues.asterisk.org/jira/browse/ASTERISK-21795
-
-uClibc does not provide res_nsearch:
-asterisk-16.0.0/main/dns.c:506: undefined reference to `res_nsearch'
-
-Patch coded by Yann E. MORIN:
-http://lists.busybox.net/pipermail/buildroot/2018-October/232630.html
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -1429,7 +1429,11 @@ AC_LINK_IFELSE(
-                       #include <arpa/nameser.h>
-                       #endif
-                       #include <resolv.h>],
--                      [int foo = res_ninit(NULL);])],
-+                      [
-+                              int foo;
-+                              foo = res_ninit(NULL);
-+                              foo = res_nsearch(NULL, NULL, 0, 0, NULL, 0);
-+                      ])],
-       AC_MSG_RESULT(yes)
-       AC_DEFINE([HAVE_RES_NINIT], 1, [Define to 1 if your system has the re-entrant resolver functions.])
-       AC_SEARCH_LIBS(res_9_ndestroy, resolv)
diff --git a/net/asterisk-16.x/patches/030-GNU-GLOB-exts-only-on-glibc.patch b/net/asterisk-16.x/patches/030-GNU-GLOB-exts-only-on-glibc.patch
deleted file mode 100644 (file)
index f6289a6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/res/ael/ael.flex
-+++ b/res/ael/ael.flex
-@@ -601,7 +601,7 @@ includes   { STORE_POS; return KW_INCLUDES
-                  snprintf(fnamebuf2,sizeof(fnamebuf2), "%s/%s", (char *)ast_config_AST_CONFIG_DIR, fnamebuf);
-                  ast_copy_string(fnamebuf,fnamebuf2,sizeof(fnamebuf));
-               }
--#ifdef SOLARIS
-+#if !defined(HAVE_GLOB_NOMAGIC) || !defined(HAVE_GLOB_BRACE) || defined(DEBUG_NONGNU)
-                       glob_ret = glob(fnamebuf, GLOB_NOCHECK, NULL, &globbuf);
- #else
-                       glob_ret = glob(fnamebuf, GLOB_NOMAGIC|GLOB_BRACE, NULL, &globbuf);
---- a/res/ael/ael_lex.c
-+++ b/res/ael/ael_lex.c
-@@ -1982,7 +1982,7 @@ YY_RULE_SETUP
-                  snprintf(fnamebuf2,sizeof(fnamebuf2), "%s/%s", (char *)ast_config_AST_CONFIG_DIR, fnamebuf);
-                  ast_copy_string(fnamebuf,fnamebuf2,sizeof(fnamebuf));
-               }
--#ifdef SOLARIS
-+#if !defined(HAVE_GLOB_NOMAGIC) || !defined(HAVE_GLOB_BRACE) || defined(DEBUG_NONGNU)
-                       glob_ret = glob(fnamebuf, GLOB_NOCHECK, NULL, &globbuf);
- #else
-                       glob_ret = glob(fnamebuf, GLOB_NOMAGIC|GLOB_BRACE, NULL, &globbuf);
diff --git a/net/asterisk-16.x/patches/053-musl-mutex-init.patch b/net/asterisk-16.x/patches/053-musl-mutex-init.patch
deleted file mode 100644 (file)
index 98cdccf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/asterisk/lock.h
-+++ b/include/asterisk/lock.h
-@@ -66,7 +66,7 @@
- #define AST_PTHREADT_NULL (pthread_t) -1
- #define AST_PTHREADT_STOP (pthread_t) -2
--#if (defined(SOLARIS) || defined(BSD))
-+#if (defined(SOLARIS) || defined(BSD) || !defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP))
- #define AST_MUTEX_INIT_W_CONSTRUCTORS
- #endif /* SOLARIS || BSD */
diff --git a/net/asterisk-16.x/patches/100-build-reproducibly.patch b/net/asterisk-16.x/patches/100-build-reproducibly.patch
deleted file mode 100644 (file)
index 736fd5d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/build_tools/make_build_h
-+++ b/build_tools/make_build_h
-@@ -5,6 +5,14 @@ MACHINE=`uname -m  | sed 's/\\\\/\\\\\\\
- OS=`uname -s`
- USER=`id | awk -F")" '{print $1}'| awk -F"(" '{print $2}' | sed 's/\\\\/\\\\\\\\/g'`
- DATE=`date -u "+%Y-%m-%d %H:%M:%S"`
-+if [ -n "${SOURCE_DATE_EPOCH}" ]; then
-+      # building reproducibly, faking some data
-+      HOSTNAME='openwrt.org'
-+      KERNEL='unknown'
-+      MACHINE='unknown'
-+      USER='nobody'
-+      DATE=`date -u "+%Y-%m-%d %H:%M:%S" -d @${SOURCE_DATE_EPOCH}`
-+fi
- cat << END
- /*
-  * build.h
---- a/Makefile
-+++ b/Makefile
-@@ -488,7 +488,7 @@ doc/core-en_US.xml: makeopts .lastclean
-       @echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
-       @for x in $(MOD_SUBDIRS); do \
-               printf "$$x " ; \
--              for i in `find $$x -name '*.c'`; do \
-+              for i in `find $$x -name '*.c' | LC_ALL=C sort`; do \
-                       $(AWK) -f build_tools/get_documentation $$i >> $@ ; \
-               done ; \
-       done
diff --git a/net/asterisk-16.x/patches/110-fix-astmm.patch b/net/asterisk-16.x/patches/110-fix-astmm.patch
deleted file mode 100644 (file)
index 1d77901..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/include/asterisk/compat.h
-+++ b/include/asterisk/compat.h
-@@ -30,6 +30,7 @@
- #include <inttypes.h>
- #include <limits.h>
- #include <unistd.h>
-+#include <pthread.h>
- #ifdef HAVE_STDDEF_H
- #include <stddef.h>
diff --git a/net/asterisk-16.x/patches/130-eventfd.patch b/net/asterisk-16.x/patches/130-eventfd.patch
deleted file mode 100644 (file)
index 75a0e70..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -1208,7 +1208,7 @@ if test "${ac_cv_have_variable_fdset}x"
- fi
- AC_MSG_CHECKING([if we have usable eventfd support])
--AC_RUN_IFELSE(
-+AC_LINK_IFELSE(
-   [AC_LANG_PROGRAM([#include <sys/eventfd.h>],
-       [return eventfd(0, EFD_NONBLOCK | EFD_SEMAPHORE) == -1;])],
-   AC_MSG_RESULT(yes)
diff --git a/net/asterisk-16.x/patches/140-use-default-lua.patch b/net/asterisk-16.x/patches/140-use-default-lua.patch
deleted file mode 100644 (file)
index d088106..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -2560,7 +2560,11 @@ if test -z "$__opus_include" -o x"$__opu
- fi
- AST_EXT_LIB_CHECK([OPUSFILE], [opusfile], [op_open_callbacks], [opus/opusfile.h], [], [$__opus_include])
--for ver in 5.3 5.2 5.1; do
-+# This does not work for us. We have both liblua and liblua5.3 in
-+# $(STAGING_DIR)/usr. But the headers for liblua5.3 are in
-+# (STAGING_DIR)/usr/include/lua5.3. Using the below, Asterisk would
-+# use the headers from liblua and link against liblua5.3 :/
-+for ver in ; do
-       AST_EXT_LIB_CHECK([LUA], lua${ver}, [luaL_newstate], lua${ver}/lua.h, [-lm])
-       if test "x${PBX_LUA}" = "x1" ; then
-               if test x"${LUA_DIR}" = x; then
index 873b678128a7ac6eae265d92a2cae73a405d1429..2ef0c21531afd92d04f92f195722c2125b45272f 100644 (file)
@@ -13,7 +13,7 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/wdoekes/asterisk-chan-dongle.git
 PKG_SOURCE_VERSION:=328b2b7ded3b3c59c2e6c7e7afca6b0ac6f146ce
 PKG_SOURCE_DATE=2020-05-28
-PKG_RELEASE:=2
+PKG_RELEASE:=1
 PKG_MIRROR_HASH:=b0af444840340722ecee111a7b1f819de441acf290799ae11bc18e16569c6388
 
 PKG_FIXUP:=autoreconf
@@ -28,40 +28,24 @@ include $(INCLUDE_DIR)/package.mk
 # asterisk-chan-dongle needs iconv
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/asterisk-chan-dongle/Default
+define Package/asterisk-chan-dongle
   SUBMENU:=Telephony
   SECTION:=net
   CATEGORY:=Network
   URL:=https://github.com/wdoekes/asterisk-chan-dongle
-  DEPENDS:=$(ICONV_DEPENDS) +libsqlite3
+  DEPENDS:=asterisk $(ICONV_DEPENDS) +libsqlite3
   TITLE:=Huawei UMTS 3G dongle support
 endef
 
-define Package/asterisk16-chan-dongle
-$(call Package/asterisk-chan-dongle/Default)
-  DEPENDS+=asterisk16
-  VARIANT:=asterisk16
-endef
-
-define Package/description/Default
+define Package/asterisk-chan-dongle/description
  Asterisk channel driver for Huawei UMTS 3G dongle.
 endef
 
-Package/asterisk16-chan-dongle/description = $(Package/description/Default)
-
-ifeq ($(BUILD_VARIANT),asterisk16)
-  CHAN_DONGLE_AST_HEADERS:=$(STAGING_DIR)/usr/include/asterisk-16/include
-  CONFIGURE_ARGS+= \
-         --with-astversion=16
-endif
-
 CONFIGURE_ARGS+= \
-       --with-asterisk=$(CHAN_DONGLE_AST_HEADERS) \
+       --with-asterisk=$(STAGING_DIR)/usr/include \
+       --with-astversion=18 \
        --with-iconv=$(ICONV_PREFIX)/include
 
-TARGET_CFLAGS+= \
-       -I$(CHAN_DONGLE_AST_HEADERS)
-
 MAKE_FLAGS+=LD="$(TARGET_CC)"
 
 CONFIGURE_VARS += \
@@ -69,19 +53,15 @@ CONFIGURE_VARS += \
        ac_cv_type_size_t=yes \
        ac_cv_type_ssize_t=yes
 
-define Package/conffiles/Default
+define Package/asterisk-chan-dongle/conffiles
 /etc/asterisk/dongle.conf
 endef
 
-Package/asterisk16-chan-dongle/conffiles = $(Package/conffiles/Default)
-
-define Package/Install/Default
+define Package/asterisk-chan-dongle/install
        $(INSTALL_DIR) $(1)/etc/asterisk
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/dongle.conf $(1)/etc/asterisk
        $(INSTALL_DIR) $(1)$(MODULES_DIR)
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_dongle.so $(1)$(MODULES_DIR)
 endef
 
-Package/asterisk16-chan-dongle/install = $(Package/Install/Default)
-
-$(eval $(call BuildPackage,asterisk16-chan-dongle))
+$(eval $(call BuildPackage,asterisk-chan-dongle))
diff --git a/net/asterisk-chan-lantiq/Makefile b/net/asterisk-chan-lantiq/Makefile
new file mode 100644 (file)
index 0000000..b47e51a
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2018 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:=asterisk-chan-lantiq
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://github.com/kochstefan/asterisk_channel_lantiq.git
+PKG_SOURCE_VERSION:=1d940b38cde0348dfe129d2b764e6faee440c45b
+PKG_SOURCE_DATE:=2019-08-03
+PKG_MIRROR_HASH:=f8aa4cccc90ad8503c94ddb03c4af7870f3262b99f1dca198c0e8d351aa96588
+PKG_SOURCE_PROTO:=git
+
+PKG_LICENSE:=GPL-2.0
+
+PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
+
+PKG_FLAGS:=nonshared
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+  SUBMENU:=Telephony Lantiq
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Lantiq channel driver
+  URL:=https://github.com/kochstefan/asterisk_channel_lantiq
+  DEPENDS:=+asterisk +kmod-ltq-vmmc
+endef
+
+define Package/$(PKG_NAME)/description
+An implementation of a Lantiq TAPI channel driver for Asterisk.
+endef
+
+define Package/$(PKG_NAME)/conffiles
+/etc/asterisk/lantiq.conf
+endef
+
+define Build/Compile
+       cd $(PKG_BUILD_DIR)/src/channels && \
+       $(TARGET_CC) -o chan_lantiq.o -c chan_lantiq.c -MD -MT chan_lantiq.o \
+               -MF .chan_lantiq.o.d -MP -pthread \
+               $(TARGET_CFLAGS) -DAST_MODULE_SELF_SYM=__internal_chan_lantiq_self \
+               $(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
+
+define Package/$(PKG_NAME)/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) \
+               $(PKG_BUILD_DIR)/src/configs/samples/lantiq.conf.sample \
+               $(1)/etc/asterisk/lantiq.conf
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/src/channels/chan_lantiq.so \
+               $(1)/usr/lib/asterisk/modules
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
index cbdf8856392a029ff312a1294498114adbcfd9c8..8d89b945d1e2e92c4e248294c94eac0aae7f4aa2 100644 (file)
@@ -8,15 +8,13 @@
 
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=chan-sccp
-PKG_VERSION:=v4.3.2-20190730
+PKG_NAME:=asterisk-chan-sccp
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/chan-sccp/chan-sccp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=08c9457b131e2e7fea92b2dfea786abfd171a5fe
-PKG_MIRROR_HASH:=be86af36c2ba4524d392fab1b88e4f4ceaaea6678dd814443ae5636337ed4c77
+PKG_SOURCE_VERSION:=a61c6d2cecdd149db767307cd71b736e77913251
+PKG_SOURCE_DATE:=2020-10-26
+PKG_MIRROR_HASH:=b879a44b855c5a891558781967abff0cb9350d8765c1b4f7774a4fae4cfeda4c
 PKG_SOURCE_PROTO:=git
 
 PKG_FIXUP:=autoreconf
@@ -27,65 +25,47 @@ PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
 
 PKG_INSTALL:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-
 include $(INCLUDE_DIR)/package.mk
 # chan-sccp needs iconv
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/chan-sccp/Default
+define Package/asterisk-chan-sccp
   SUBMENU:=Telephony
   SECTION:=net
   CATEGORY:=Network
   TITLE:=SCCP channel support
   URL:=https://github.com/chan-sccp/chan-sccp
-  DEPENDS:=$(ICONV_DEPENDS) +libltdl
-endef
-
-define Package/asterisk16-chan-sccp
-$(call Package/chan-sccp/Default)
-  DEPENDS += asterisk16 \
-         +asterisk16-bridge-holding \
-         +asterisk16-bridge-native-rtp \
-         +asterisk16-bridge-simple \
-         +asterisk16-bridge-softmix \
-         +asterisk16-res-stasis-device-state \
-         +asterisk16-voicemail
-  VARIANT:=asterisk16
-  CONFLICTS:=asterisk16-chan-skinny
+  DEPENDS:=asterisk $(ICONV_DEPENDS) +libltdl \
+         +asterisk-bridge-holding \
+         +asterisk-bridge-native-rtp \
+         +asterisk-bridge-simple \
+         +asterisk-bridge-softmix \
+         +asterisk-res-stasis-device-state
+  CONFLICTS:=asterisk-chan-skinny
 endef
 
-define Package/description/Default
+define Package/asterisk-chan-sccp/description
 Replacement for the SCCP channel driver (chan_skinny) in Asterisk.
 Extended features include shared lines, presence / BLF, customizable
 feature buttons and custom device state.
 endef
 
-Package/asterisk16-chan-sccp/description = $(Package/description/Default)
-
 CONFIGURE_ARGS += \
        --disable-debug \
        --enable-advanced-functions \
        --enable-conference \
-       --enable-video
+       --enable-video \
+       --with-asterisk=$(STAGING_DIR)/usr
 
-ifeq ($(BUILD_VARIANT),asterisk16)
-  CONFIGURE_ARGS += --with-asterisk=$(STAGING_DIR)/usr/include/asterisk-16
-endif
-
-define Package/conffiles/Default
+define Package/asterisk-chan-sccp/conffiles
 /etc/asterisk/sccp.conf
 endef
 
-Package/asterisk16-chan-sccp/conffiles = $(Package/conffiles/Default)
-
-define Package/Install/Default
+define Package/asterisk-chan-sccp/install
        $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/asterisk/sccp.conf $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/sccp.conf $(1)/etc/asterisk
        $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sccp.so $(1)/usr/lib/asterisk/modules/
 endef
 
-Package/asterisk16-chan-sccp/install = $(Package/Install/Default)
-
-$(eval $(call BuildPackage,asterisk16-chan-sccp))
+$(eval $(call BuildPackage,asterisk-chan-sccp))
index 4ea9492b5658684e5f4fc6e0c772ae400fd18b22..e9791723625fd12a5a28cf5bbaae3b613397648f 100644 (file)
@@ -15,7 +15,6 @@ PKG_SOURCE:=asterisk-g72x-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://asterisk.hosting.lv/src/
 PKG_HASH:=ffea55374c2134415569b876a68d9a12ce376146a22fad3963c8edc281052adf
 
-PKG_BUILD_DIR=$(BUILD_DIR)/asterisk-g72x-$(PKG_VERSION)
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
@@ -23,47 +22,32 @@ PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=README.md
 PKG_MAINTAINER:=Alex Samorukov <samm@os2.kiev.ua>
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/asterisk-g72x/Default
+define Package/asterisk-codec-g729
   SUBMENU:=Telephony
   SECTION:=net
   CATEGORY:=Network
   TITLE:=G.729 codec support
   URL:=http://asterisk.hosting.lv
-  DEPENDS:=+bcg729
+  DEPENDS:=asterisk +bcg729
 endef
 
-define Package/asterisk16-codec-g729
-$(call Package/asterisk-g72x/Default)
-  DEPENDS+=asterisk16
-  VARIANT:=asterisk16
-endef
-
-define Package/description/Default
+define Package/asterisk-codec-g729/description
  Asterisk G.729 codec based on bcg729 implementation.
 endef
 
-Package/asterisk16-codec-g729/description = $(Package/description/Default)
-
 CONFIGURE_ARGS+= \
        --with-bcg729 \
-       --enable-shared
+       --enable-shared \
+       --with-asterisk-includes=$(STAGING_DIR)/usr/include
 
-ifeq ($(BUILD_VARIANT),asterisk16)
-CONFIGURE_ARGS+= \
-       --with-asterisk-includes=$(STAGING_DIR)/usr/include/asterisk-16/include \
-       --with-asterisk160
-endif
-
-define Package/Install/Default
+define Package/asterisk-codec-g729/install
        $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/codec_g729.so \
                $(1)/usr/lib/asterisk/modules/
 endef
 
-Package/asterisk16-codec-g729/install = $(Package/Install/Default)
-
-$(eval $(call BuildPackage,asterisk16-codec-g729))
+$(eval $(call BuildPackage,asterisk-codec-g729))
index c0cf5c01b0c4d2b45b52352e7bbab409465c8572..4d67b2082ebff7f514a867cf4a112826525894bd 100644 (file)
@@ -8,46 +8,34 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=asterisk-opus
-PKG_VERSION:=20171009
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/traud/asterisk-opus.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_DATE:=2017-10-09
 PKG_SOURCE_VERSION:=83e1b458c77e0e287adeca494eeb79edb077b0ff
-PKG_MIRROR_HASH:=89265ee63bc3cb02ef9e75087f782147db1dec53433f9d6cfc08c7229cd61881
+PKG_MIRROR_HASH:=c71b859db7518cdafff1650e629c5901b290fe68f8af54ef1afd57bc9f15b122
 PKG_SOURCE_PROTO:=git
 
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE
 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-
 include $(INCLUDE_DIR)/package.mk
 
 TARGET_CFLAGS += \
        -DAST_MODULE_SELF_SYM=__internal_codec_opus_open_source_self \
        $(FPIC)
 
-define Package/$(PKG_NAME)/Default
+define Package/asterisk-codec-opus
   SUBMENU:=Telephony
   SECTION:=net
   CATEGORY:=Network
   TITLE:=Opus codec support
   URL:=https://github.com/traud/asterisk-opus
-  DEPENDS:=+libopus
-endef
-
-define Package/asterisk16-codec-opus
-$(call Package/$(PKG_NAME)/Default)
-  DEPENDS+=asterisk16
-  VARIANT:=asterisk16
+  DEPENDS:=asterisk +libopus
 endef
 
-define Package/description/Default
+define Package/asterisk-codec-opus/description
   Opus is the default audio codec in WebRTC. WebRTC is available in
   Asterisk via SIP over WebSockets (WSS). Nevertheless, Opus can be used
   for other transports (UDP, TCP, TLS) as well. Opus supersedes previous
@@ -61,21 +49,13 @@ define Package/description/Default
   well.
 endef
 
-Package/asterisk16-codec-opus/description = $(Package/description/Default)
-
-ifeq ($(BUILD_VARIANT),asterisk16)
-TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/asterisk-16/include
-endif
-
-define Package/Install/Default
+define Package/asterisk-codec-opus/install
        $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/codecs/codec_opus_open_source.so \
                $(1)/usr/lib/asterisk/modules
 endef
 
-Package/asterisk16-codec-opus/install = $(Package/Install/Default)
-
 define Build/Configure
 endef
 
-$(eval $(call BuildPackage,asterisk16-codec-opus))
+$(eval $(call BuildPackage,asterisk-codec-opus))
diff --git a/net/asterisk/Makefile b/net/asterisk/Makefile
new file mode 100644 (file)
index 0000000..0363a98
--- /dev/null
@@ -0,0 +1,1053 @@
+#
+# Copyright (C) 2017 - 2018 Jiri Slachta <jiri@slachta.eu>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=asterisk
+PKG_VERSION:=18.1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://downloads.asterisk.org/pub/telephony/asterisk/releases
+PKG_HASH:=cc12f6c228243fb736d0aa23f3ce11adf7be5c5b02ed1ca080db76605cb602df
+
+PKG_BUILD_DEPENDS:=libxml2/host
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING LICENSE
+PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
+
+MENUSELECT_CATEGORIES:= \
+       MENUSELECT_ADDONS \
+       MENUSELECT_APPS \
+       MENUSELECT_BRIDGES \
+       MENUSELECT_CDR \
+       MENUSELECT_CEL \
+       MENUSELECT_CHANNELS \
+       MENUSELECT_CODECS \
+       MENUSELECT_FORMATS \
+       MENUSELECT_FUNCS \
+       MENUSELECT_PBX \
+       MENUSELECT_RES \
+       MENUSELECT_UTILS \
+       MENUSELECT_AGIS
+
+MODULES_AVAILABLE:= \
+       app-adsiprog \
+       app-agent-pool \
+       app-alarmreceiver \
+       app-amd \
+       app-attended-transfer \
+       app-audiosocket \
+       app-authenticate \
+       app-blind-transfer \
+       app-bridgeaddchan \
+       app-bridgewait \
+       app-celgenuserevent \
+       app-chanisavail \
+       app-channelredirect \
+       app-chanspy \
+       app-confbridge \
+       app-controlplayback \
+       app-dahdiras \
+       app-dictate \
+       app-directed-pickup \
+       app-directory \
+       app-disa \
+       app-dumpchan \
+       app-exec \
+       app-externalivr \
+       app-festival \
+       app-flash \
+       app-followme \
+       app-getcpeid \
+       app-ices \
+       app-image \
+       app-ivrdemo \
+       app-milliwatt \
+       app-minivm \
+       app-mixmonitor \
+       app-morsecode \
+       app-mp3 \
+       app-originate \
+       app-page \
+       app-playtones \
+       app-privacy \
+       app-queue \
+       app-read \
+       app-readexten \
+       app-record \
+       app-saycounted \
+       app-sayunixtime \
+       app-senddtmf \
+       app-sendtext \
+       app-skel \
+       app-sms \
+       app-softhangup \
+       app-speech \
+       app-stack \
+       app-stasis \
+       app-statsd \
+       app-stream-echo \
+       app-system \
+       app-talkdetect \
+       app-test \
+       app-transfer \
+       app-url \
+       app-userevent \
+       app-verbose \
+       app-voicemail \
+       app-voicemail-imap \
+       app-voicemail-odbc \
+       app-waitforring \
+       app-waitforsilence \
+       app-waituntil \
+       app-while \
+       app-zapateller \
+       bridge-builtin-features \
+       bridge-builtin-interval-features \
+       bridge-holding \
+       bridge-native-rtp \
+       bridge-simple \
+       bridge-softmix \
+       cdr \
+       cdr-csv \
+       cdr-sqlite3 \
+       cel-custom \
+       cel-manager \
+       cel-sqlite3-custom \
+       chan-alsa \
+       chan-audiosocket \
+       chan-bridge-media \
+       chan-console \
+       chan-dahdi \
+       chan-iax2 \
+       chan-mgcp \
+       chan-mobile \
+       chan-motif \
+       chan-ooh323 \
+       chan-oss \
+       chan-rtp \
+       chan-sip \
+       chan-skinny \
+       chan-unistim \
+       codec-a-mu \
+       codec-adpcm \
+       codec-alaw \
+       codec-dahdi \
+       codec-g722 \
+       codec-g726 \
+       codec-gsm \
+       codec-ilbc \
+       codec-lpc10 \
+       codec-resample \
+       codec-speex \
+       codec-ulaw \
+       curl \
+       format-g719 \
+       format-g723 \
+       format-g726 \
+       format-g729 \
+       format-gsm \
+       format-h263 \
+       format-h264 \
+       format-ilbc \
+       format-mp3 \
+       format-ogg-speex \
+       format-ogg-vorbis \
+       format-pcm \
+       format-siren14 \
+       format-siren7 \
+       format-sln \
+       format-vox \
+       format-wav \
+       format-wav-gsm \
+       func-aes \
+       func-base64 \
+       func-blacklist \
+       func-callcompletion \
+       func-channel \
+       func-config \
+       func-cut \
+       func-db \
+       func-devstate \
+       func-dialgroup \
+       func-dialplan \
+       func-enum \
+       func-env \
+       func-extstate \
+       func-frame-trace \
+       func-global \
+       func-groupcount \
+       func-hangupcause \
+       func-holdintercept \
+       func-iconv \
+       func-jitterbuffer \
+       func-lock \
+       func-math \
+       func-md5 \
+       func-module \
+       func-periodic-hook \
+       func-pitchshift \
+       func-presencestate \
+       func-rand \
+       func-realtime \
+       func-sha1 \
+       func-shell \
+       func-sorcery \
+       func-speex \
+       func-sprintf \
+       func-srv \
+       func-sysinfo \
+       func-talkdetect \
+       func-uri \
+       func-version \
+       func-vmcount \
+       func-volume \
+       odbc \
+       pbx-ael \
+       pbx-dundi \
+       pbx-loopback \
+       pbx-lua \
+       pbx-realtime \
+       pbx-spool \
+       pgsql \
+       pjsip \
+       res-adsi \
+       res-ael-share \
+       res-agi \
+       res-ari \
+       res-ari-applications \
+       res-ari-asterisk \
+       res-ari-bridges \
+       res-ari-channels \
+       res-ari-device-states \
+       res-ari-endpoints \
+       res-ari-events \
+       res-ari-mailboxes \
+       res-ari-model \
+       res-ari-playbacks \
+       res-ari-recordings \
+       res-ari-sounds \
+       res-audiosocket \
+       res-calendar \
+       res-calendar-caldav \
+       res-calendar-ews \
+       res-calendar-exchange \
+       res-calendar-icalendar \
+       res-chan-stats \
+       res-clialiases \
+       res-clioriginate \
+       res-config-ldap \
+       res-config-mysql \
+       res-config-sqlite3 \
+       res-convert \
+       res-endpoint-stats \
+       res-hep \
+       res-hep-pjsip \
+       res-hep-rtcp \
+       res-fax-spandsp \
+       res-fax \
+       res-format-attr-celt \
+       res-format-attr-g729 \
+       res-format-attr-h263 \
+       res-format-attr-h264 \
+       res-format-attr-ilbc \
+       res-format-attr-opus \
+       res-format-attr-silk \
+       res-format-attr-siren14 \
+       res-format-attr-siren7 \
+       res-format-attr-vp8 \
+       res-http-media-cache \
+       res-http-websocket \
+       res-limit \
+       res-manager-devicestate \
+       res-manager-presencestate \
+       res-monitor \
+       res-musiconhold \
+       res-mutestream \
+       res-mwi-devstate \
+       res-mwi-external \
+       res-mwi-external-ami \
+       res-parking \
+       res-phoneprov \
+       res-pjsip-phoneprov \
+       res-pjsip-stir-shaken \
+       res-pjproject \
+       res-pktccops \
+       res-prometheus \
+       res-realtime \
+       res-remb-modifier \
+       res-resolver-unbound \
+       res-rtp-asterisk \
+       res-rtp-multicast \
+       res-security-log \
+       res-smdi \
+       res-snmp \
+       res-sorcery \
+       res-sorcery-memory-cache \
+       res-speech \
+       res-srtp \
+       res-stasis \
+       res-stasis-answer \
+       res-stasis-device-state \
+       res-stasis-mailbox \
+       res-stasis-playback \
+       res-stasis-recording \
+       res-stasis-snoop \
+       res-statsd \
+       res-stir-shaken \
+       res-stun-monitor \
+       res-timing-dahdi \
+       res-timing-pthread \
+       res-timing-timerfd \
+       res-xmpp
+
+UTILS_AVAILABLE:= \
+       aelparse \
+       astcanary \
+       astdb2sqlite3 \
+       astdb2bdb \
+       check_expr \
+       check_expr2 \
+       conf2ael \
+       muted \
+       smsq \
+       stereorize \
+       streamplayer
+
+AST_ENABLE:=
+
+PKG_CONFIG_DEPENDS:= \
+       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-%,$(MODULES_AVAILABLE)) \
+       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-util-%,$(subst _,-,$(UTILS_AVAILABLE))) \
+       CONFIG_ASTERISK_LOW_MEMORY
+
+include $(INCLUDE_DIR)/uclibc++.mk
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+# Needed for res-config-mysql and func-iconv to find iconv
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/$(PKG_NAME)/install/module
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*$(2).so* $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/$(PKG_NAME)/install/conffile
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/$(2) $(1)/etc/asterisk/
+endef
+
+define Package/$(PKG_NAME)/install/lib
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/$(2).so* $(1)/usr/lib/
+endef
+
+define Package/$(PKG_NAME)/install/sbin
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $(1)/usr/sbin/
+endef
+
+define Package/$(PKG_NAME)/install/sounds
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/asterisk/sounds/en/$(2) $(1)/usr/share/asterisk/sounds/
+endef
+
+define Package/$(PKG_NAME)/install/util-conffile
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/$(2) $(1)/etc
+endef
+
+define Package/$(PKG_NAME)/config
+       menu "Advanced configuration"
+               depends on PACKAGE_asterisk
+
+       config ASTERISK_LOW_MEMORY
+               bool "Optimize Asterisk for low memory usage"
+               default n
+               help
+                 Warning: this feature is known to cause problems with some modules.
+                 Disable it if you experience problems like segmentation faults.
+
+       endmenu
+endef
+
+define BuildAsteriskModule
+  define Package/$(PKG_NAME)-$(1)
+  $$(call Package/$(PKG_NAME)/Default)
+    TITLE:=$(2) support
+    DEPENDS:= $(PKG_NAME) $(patsubst +%,+PACKAGE_$(PKG_NAME)-$(1):%,$(4)) $(9)
+    ifneq ($$(CONFIG_PACKAGE_$(PKG_NAME)-$(1)),)
+    AST_ENABLE+=$(6)
+    endif
+  endef
+
+  define Package/$(PKG_NAME)-$(1)/conffiles
+$(subst $(space),$(newline),$(foreach c,$(5),/etc/asterisk/$(c)))
+  endef
+
+  define Package/$(PKG_NAME)-$(1)/description
+$(subst \n,$(newline),$(3))
+  endef
+
+  define Package/$(PKG_NAME)-$(1)/install
+$(foreach c,$(5),$(call Package/$(PKG_NAME)/install/conffile,$$(1),$(c));)
+$(foreach m,$(6),$(call Package/$(PKG_NAME)/install/module,$$(1),$(m));)
+$(foreach s,$(7),$(call Package/$(PKG_NAME)/install/sounds,$$(1),$(s));)
+$(foreach b,$(8),$(call Package/$(PKG_NAME)/install/sbin,$$(1),$(b));)
+  endef
+
+  $$(eval $$(call BuildPackage,$(PKG_NAME)-$(1)))
+endef
+
+define BuildAsteriskUtil
+  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))
+  $$(call Package/$(PKG_NAME)/Default)
+    TITLE:=$(1) utility
+    DEPENDS:=$(PKG_NAME) $(patsubst +%,+PACKAGE_$(PKG_NAME)-util-$(subst _,-,$(1)):%,$(3))
+    ifneq ($$(CONFIG_PACKAGE_$(PKG_NAME)-util-$(subst _,-,$(1))),)
+    AST_ENABLE+=$(1)
+    endif
+  endef
+
+  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/conffiles
+$(subst $(space),$(newline),$(foreach c,$(4),/etc/$(c)))
+  endef
+
+  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/description
+$(2)
+  endef
+
+  define Package/$(PKG_NAME)-util-$(subst _,-,$(1))/install
+$(call Package/$(PKG_NAME)/install/sbin,$$(1),$(1))
+$(foreach c,$(4),$(call Package/$(PKG_NAME)/install/util-conffile,$$(1),$(c));)
+  endef
+
+  $$(eval $$(call BuildPackage,$(PKG_NAME)-util-$(subst _,-,$(1))))
+endef
+
+define Package/$(PKG_NAME)/Default
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  URL:=http://www.asterisk.org/
+endef
+
+define Package/$(PKG_NAME)/Default/description
+ Asterisk is a complete PBX in software. It provides all of the features
+ you would expect from a PBX and more. Asterisk does voice over IP in three
+ protocols, and can interoperate with almost all standards-based telephony
+ equipment using relatively inexpensive hardware.
+endef
+
+define Package/$(PKG_NAME)
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=Complete open source PBX, v$(PKG_VERSION)
+  MENU:=1
+  DEPENDS:=$(CXX_DEPENDS) +jansson +libcap +libedit +libopenssl +libsqlite3 +libuuid +libxml2 +zlib
+  USERID:=asterisk=385:asterisk=385
+endef
+
+define Package/$(PKG_NAME)/description
+$(call Package/$(PKG_NAME)/Default/description)
+endef
+
+define Package/$(PKG_NAME)/conffiles
+/etc/asterisk/asterisk.conf
+/etc/asterisk/acl.conf
+/etc/asterisk/cel.conf
+/etc/asterisk/ccss.conf
+/etc/asterisk/cli.conf
+/etc/asterisk/cli_permissions.conf
+/etc/asterisk/codecs.conf
+/etc/asterisk/dnsmgr.conf
+/etc/asterisk/dsp.conf
+/etc/asterisk/extconfig.conf
+/etc/asterisk/extensions.conf
+/etc/asterisk/features.conf
+/etc/asterisk/http.conf
+/etc/asterisk/indications.conf
+/etc/asterisk/logger.conf
+/etc/asterisk/manager.conf
+/etc/asterisk/modules.conf
+/etc/asterisk/res_config_sqlite3.conf
+/etc/asterisk/stasis.conf
+/etc/asterisk/udptl.conf
+/etc/asterisk/users.conf
+/etc/config/asterisk
+/etc/init.d/asterisk
+endef
+
+AST_CFG_FILES:= \
+       asterisk.conf acl.conf cel.conf ccss.conf cli.conf \
+       cli_permissions.conf codecs.conf dnsmgr.conf dsp.conf extconfig.conf \
+       extensions.conf features.conf http.conf indications.conf \
+       logger.conf manager.conf modules.conf stasis.conf udptl.conf \
+       users.conf res_config_sqlite3.conf
+
+AST_EMB_MODULES:=\
+       app_dial app_echo app_macro app_playback \
+       func_callerid func_logic func_strings func_timeout \
+       pbx_config res_crypto
+
+define Package/$(PKG_NAME)/install
+$(call Package/$(PKG_NAME)/install/lib,$(1),libasteriskssl)
+$(call Package/$(PKG_NAME)/install/sbin,$(1),asterisk)
+$(call Package/$(PKG_NAME)/install/sbin,$(1),safe_asterisk)
+$(call Package/$(PKG_NAME)/install/sbin,$(1),astgenkey)
+$(foreach m,$(AST_CFG_FILES),$(call Package/$(PKG_NAME)/install/conffile,$(1),$(m));)
+$(foreach m,$(AST_EMB_MODULES),$(call Package/$(PKG_NAME)/install/module,$(1),$(m));)
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/agi-bin
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/firmware/iax
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/keys
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds
+       $(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk
+       $(INSTALL_CONF) ./files/asterisk.conf $(1)/etc/config/asterisk
+endef
+
+define Package/$(PKG_NAME)-sounds
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=Sounds support
+  DEPENDS:=$(PKG_NAME)
+endef
+
+define Package/$(PKG_NAME)-sounds/description
+This package provides the sound-files for Asterisk.
+endef
+
+define Package/$(PKG_NAME)-sounds/install
+       $(INSTALL_DIR) $(1)/usr/share/asterisk/sounds/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/asterisk/sounds/en/* $(1)/usr/share/asterisk/sounds/
+       rm -f $(1)/usr/share/asterisk/sounds/vm-*
+endef
+
+ifeq ($(call qstrip,$(CONFIG_LIBC)),musl)
+  CONFIGURE_ARGS+= \
+       --enable-permanent-dlopen
+endif
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-chan-dahdi),)
+  CONFIGURE_ARGS+= \
+       --with-dahdi="$(STAGING_DIR)/usr" \
+       --with-pri="$(STAGING_DIR)/usr" \
+       --with-tonezone="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-dahdi \
+       --without-pri \
+       --without-tonezone
+endif
+
+# Pass CPPFLAGS in the CFLAGS as otherwise the build system will
+# ignore them.
+TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
+
+CONFIGURE_ARGS+= \
+       --disable-xmldoc \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-alsa),--with-asound="$(STAGING_DIR)/usr",--without-asound) \
+       --without-execinfo \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-mobile),--with-bluetooth="$(STAGING_DIR)/usr",--without-bluetooth) \
+       --with-cap="$(STAGING_DIR)/usr" \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-curl),--with-libcurl="$(STAGING_DIR)/usr") \
+       --with-gsm=internal \
+       --without-gtk2 \
+       --with-ilbc=internal \
+       --without-isdnnet \
+       --without-misdn \
+       --without-nbs \
+       --without-pjproject-bundled \
+       --with-libedit="$(STAGING_DIR)/usr" \
+       --with-libxml2 \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-snmp),--with-netsnmp="$(STAGING_DIR)/usr",--without-netsnmp) \
+       --without-newt \
+       --without-osptk \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pbx-lua),--with-lua="$(STAGING_DIR)/usr",--without-lua) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgres="$(STAGING_DIR)/usr",--without-postgres) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-util-smsq),--with-popt="$(STAGING_DIR)/usr",--without-popt) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-chan-console),--with-portaudio="$(STAGING_DIR)/usr",--without-portaudio) \
+       --without-radius \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-fax-spandsp),--with-spandsp="$(STAGING_DIR)/usr",--without-spandsp) \
+       --without-sdl \
+       --without-sqlite \
+       --with-sqlite3="$(STAGING_DIR)/usr" \
+       --without-suppserv \
+       --without-tds \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-res-resolver-unbound),--with-unbound="$(STAGING_DIR)/usr",--without-unbound) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-vorbis),--with-vorbis="$(STAGING_DIR)/usr",--without-vorbis) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-app-voicemail-imap),--with-imap=system,--without-imap) \
+       --without-vpb \
+       --with-z="$(STAGING_DIR)/usr"
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-codec-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-func-speex),)
+CONFIGURE_ARGS+= \
+       --without-speex
+else
+CONFIGURE_ARGS+= \
+       --with-speex="$(STAGING_DIR)/usr"
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-codec-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-func-speex),)
+CONFIGURE_ARGS+= \
+       --without-speexdsp
+else
+CONFIGURE_ARGS+= \
+       --with-speexdsp="$(STAGING_DIR)/usr"
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-speex)$(CONFIG_PACKAGE_$(PKG_NAME)-format-ogg-vorbis),)
+CONFIGURE_ARGS+= \
+       --without-ogg
+else
+CONFIGURE_ARGS+= \
+       --with-ogg="$(STAGING_DIR)/usr"
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-pjproject)$(CONFIG_PACKAGE_$(PKG_NAME)-res-srtp),)
+CONFIGURE_ARGS+= \
+       --without-srtp
+else
+CONFIGURE_ARGS+= \
+       --with-srtp="$(STAGING_DIR)/usr"
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-pjsip)$(CONFIG_PACKAGE_$(PKG_NAME)-res-pjproject)$(CONFIG_PACKAGE_$(PKG_NAME)-res-rtp-asterisk),)
+CONFIGURE_ARGS+= \
+       --without-pjproject
+else
+CONFIGURE_ARGS+= \
+       --with-pjproject="$(STAGING_DIR)/usr"
+endif
+
+# res-calendar-ews requires both neon and neon29 detection
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
+CONFIGURE_ARGS+= \
+       --without-neon
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
+CONFIGURE_ARGS+= \
+       --without-ical
+else
+CONFIGURE_ARGS+= \
+       --with-ical="$(STAGING_DIR)/usr"
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews),)
+CONFIGURE_ARGS+= \
+       --without-neon29
+endif
+
+ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-xmpp),)
+CONFIGURE_ARGS+= \
+       --without-iksemel
+else
+CONFIGURE_ARGS+= \
+       --with-iksemel="$(STAGING_DIR)/usr"
+endif
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-caldav)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-exchange)$(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-icalendar),)
+CONFIGURE_VARS += \
+       ac_cv_path_CONFIG_NEON=$(STAGING_DIR)/usr/bin/neon-config
+endif
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-res-calendar-ews),)
+CONFIGURE_VARS += \
+       ac_cv_path_CONFIG_NEON29=$(STAGING_DIR)/usr/bin/neon-config
+endif
+
+MAKE_FLAGS+= \
+       ASTDATADIR="/usr/share/asterisk" \
+       DESTDIR="$(PKG_INSTALL_DIR)"
+
+# show full gcc arguments instead of [CC] and [LD]
+MAKE_FLAGS+= \
+       NOISY_BUILD="yes"
+
+# don't let asterisk mess with build flags
+MAKE_FLAGS+= \
+       AST_FORTIFY_SOURCE="" \
+       DEBUG="" \
+       OPTIMIZE=""
+
+AST_MENUSELECT_OPTS = \
+       --without-newt \
+       --without-curses
+
+define Build/menuselect
+       CC="$(HOSTCC)" \
+       CFLAGS="$(HOST_CFLAGS)" \
+       LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
+       $(MAKE) -C "$(PKG_BUILD_DIR)/menuselect"
+endef
+
+define Build/Configure
+       cd $(PKG_BUILD_DIR); \
+               ./bootstrap.sh
+       $(call Build/Configure/Default)
+       cd $(PKG_BUILD_DIR)/menuselect; \
+               CC="$(HOSTCC)" \
+               CFLAGS="$(HOST_CFLAGS)" \
+               CONFIG_SITE= \
+               LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
+               ./configure \
+               $(HOST_CONFIGURE_ARGS) \
+               $(AST_MENUSELECT_OPTS)
+endef
+
+define Build/Compile
+       $(call Build/menuselect)
+       $(call Build/Compile/Default,menuselect-tree)
+
+       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
+               for cat in $(MENUSELECT_CATEGORIES); do \
+                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --disable-category $$$$cat"; \
+               done; \
+               ./menuselect/menuselect \
+                       $$$$MENUSELECT_ARGS \
+                       menuselect.makeopts
+       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
+               for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
+                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --enable $$$$item"; \
+               done; \
+               ./menuselect/menuselect \
+                       $$$$MENUSELECT_ARGS \
+                       menuselect.makeopts
+       cd "$(PKG_BUILD_DIR)" && \
+               ./menuselect/menuselect \
+                       --disable BUILD_NATIVE \
+                       $(if $(CONFIG_ASTERISK_LOW_MEMORY),--enable LOW_MEMORY) \
+                       menuselect.makeopts
+
+       # When changing anything in MENUSELECT_CFLAGS the file ".lastclean"
+       # gets deleted. E.g. when compiling on x86 for x86 "--disable
+       # BUILD_NATIVE" changes MENUSELECT_CFLAGS and the file gets removed.
+       # But that will result in a rebuild attempt of menuselect which will
+       # likely fail. Prevent that by recreating ".lastclean" and menuselect.
+       $(call Build/Compile/Default,.lastclean)
+       $(call Build/menuselect)
+
+       $(call Build/Compile/Default,all install install-headers samples)
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds))
+
+#######################################
+# AST modules
+# Params:
+# 1 - Package subname
+# 2 - Package title
+# 3 - Module description
+# 4 - Module dependencies
+# 5 - conf files
+# 6 - module files
+# 7 - sound files
+# 8 - binary files
+# 9 - complex depends (passed on as is)
+#######################################
+#$(eval $(call BuildAsteriskModule,subname,title,module description,module dependencies,conf files,module files,sound files,binary files,complex depends))
+
+$(eval $(call BuildAsteriskModule,app-adsiprog,ADSI programming,Asterisk ADSI programming application.,+$(PKG_NAME)-res-adsi,adsi.conf asterisk.adsi telcordia-1.adsi,app_adsiprog,,))
+$(eval $(call BuildAsteriskModule,app-agent-pool,Call center agent pool,Call center agent pool applications.,,agents.conf,app_agent_pool,,))
+$(eval $(call BuildAsteriskModule,app-alarmreceiver,Alarm receiver,Alarm receiver for Asterisk.,,,app_alarmreceiver,,))
+$(eval $(call BuildAsteriskModule,app-amd,Answering machine detection,Answering Machine Detection application.,,amd.conf,app_amd,,))
+$(eval $(call BuildAsteriskModule,app-attended-transfer,Attended transfer,Queues up an attended transfer to a given extension.,,,app_attended_transfer,,))
+$(eval $(call BuildAsteriskModule,app-audiosocket,Audiosocket app,Audiosocket app.,+$(PKG_NAME)-res-audiosocket,,app_audiosocket,,))
+$(eval $(call BuildAsteriskModule,app-authenticate,Authenticate commands,Authentication application.,,,app_authenticate,,))
+$(eval $(call BuildAsteriskModule,app-blind-transfer,Blind transfer,Redirects all channels currently bridged to the caller channel to a specified destination.,,,app_blind_transfer,,))
+$(eval $(call BuildAsteriskModule,app-bridgeaddchan,Bridge add channel,Bridge-add-channel application.,,,app_bridgeaddchan,,))
+$(eval $(call BuildAsteriskModule,app-bridgewait,Holding bridge,Application to place a channel into a holding bridge.,+$(PKG_NAME)-bridge-holding,,app_bridgewait,,))
+$(eval $(call BuildAsteriskModule,app-celgenuserevent,User-defined CEL event,Generate a user defined CEL event.,,,app_celgenuserevent,,))
+$(eval $(call BuildAsteriskModule,app-chanisavail,Channel availability check,Check channel availability.,,,app_chanisavail,,))
+$(eval $(call BuildAsteriskModule,app-channelredirect,Redirect a channel,Redirects a given channel to a dialplan target.,,,app_channelredirect,,))
+$(eval $(call BuildAsteriskModule,app-chanspy,Channel listen in,Listen to the audio of an active channel.,,,app_chanspy,,))
+$(eval $(call BuildAsteriskModule,app-confbridge,ConfBridge,Conference bridge application.,+$(PKG_NAME)-bridge-builtin-features +$(PKG_NAME)-bridge-simple +$(PKG_NAME)-bridge-softmix,confbridge.conf,app_confbridge,,))
+$(eval $(call BuildAsteriskModule,app-controlplayback,Control playback,Control playback application.,,,app_controlplayback,,))
+$(eval $(call BuildAsteriskModule,app-dahdiras,Execute an ISDN RAS,DAHDI ISDN Remote Access Server.,+$(PKG_NAME)-chan-dahdi,,app_dahdiras,,))
+$(eval $(call BuildAsteriskModule,app-dictate,Virtual dictation machine,Virtual dictation machine.,,,app_dictate,,))
+$(eval $(call BuildAsteriskModule,app-directed-pickup,Directed call pickup,Directed call pickup application.,,,app_directed_pickup,,))
+$(eval $(call BuildAsteriskModule,app-directory,Extension directory,Extension directory.,,,app_directory,,))
+$(eval $(call BuildAsteriskModule,app-disa,Direct Inward System Access,Direct Inward System Access application.,,,app_disa,,))
+$(eval $(call BuildAsteriskModule,app-dumpchan,Dump info about channel,Dump info about the calling channel.,,,app_dumpchan,,))
+$(eval $(call BuildAsteriskModule,app-exec,Exec application,Executes dialplan applications.,,,app_exec,,))
+$(eval $(call BuildAsteriskModule,app-externalivr,External IVR interface,External IVR interface application.,,,app_externalivr,,))
+$(eval $(call BuildAsteriskModule,app-festival,Simple festival interface,Simple Festival interface.,,festival.conf,app_festival,,))
+$(eval $(call BuildAsteriskModule,app-flash,Flash channel,Flash channel application.,+$(PKG_NAME)-chan-dahdi,,app_flash,,))
+$(eval $(call BuildAsteriskModule,app-followme,Find-me/follow-me,Find-Me/Follow-Me application.,,followme.conf,app_followme,,))
+$(eval $(call BuildAsteriskModule,app-getcpeid,Get ADSI CPE ID,Get ADSI CPE ID.,,,app_getcpeid,,))
+$(eval $(call BuildAsteriskModule,app-ices,Encode and stream,Encode and stream via Icecast and IceS.,,,app_ices,,))
+$(eval $(call BuildAsteriskModule,app-image,Image transmission,Image transmission application.,,,app_image,,))
+$(eval $(call BuildAsteriskModule,app-ivrdemo,IVR demo,IVR demo application.,,,app_ivrdemo,,))
+$(eval $(call BuildAsteriskModule,app-milliwatt,Digital milliwatt [mu-law] test app,Digital milliwatt test application.,,,app_milliwatt,,))
+$(eval $(call BuildAsteriskModule,app-minivm,Minimal voicemail system,A minimal voicemail e-mail system.,,extensions_minivm.conf minivm.conf,app_minivm,,))
+$(eval $(call BuildAsteriskModule,app-mixmonitor,Record a call and mix the audio,Mixed audio monitoring application.,,,app_mixmonitor,,))
+$(eval $(call BuildAsteriskModule,app-morsecode,Morse code,Morse code.,,,app_morsecode,,))
+$(eval $(call BuildAsteriskModule,app-mp3,Silly MP3,Silly MP3 application.,+mpg123,,app_mp3,,))
+$(eval $(call BuildAsteriskModule,app-originate,Originate a call,Originate call.,,,app_originate,,))
+$(eval $(call BuildAsteriskModule,app-page,Page multiple phones,Page multiple phones.,+$(PKG_NAME)-app-confbridge,,app_page,,))
+$(eval $(call BuildAsteriskModule,app-playtones,Playtones application,Playtones application.,,,app_playtones,,))
+$(eval $(call BuildAsteriskModule,app-privacy,Require phone number,Require phone number to be entered if no Caller ID sent.,,,app_privacy,,))
+$(eval $(call BuildAsteriskModule,app-queue,True Call Queueing,True call queueing.,,queues.conf queuerules.conf,app_queue,,))
+$(eval $(call BuildAsteriskModule,app-read,Variable read,Read variable application.,,,app_read,,))
+$(eval $(call BuildAsteriskModule,app-readexten,Extension to variable,Read and evaluate extension validity.,,,app_readexten,,))
+$(eval $(call BuildAsteriskModule,app-record,Record sound file,Trivial record application.,,,app_record,,))
+$(eval $(call BuildAsteriskModule,app-saycounted,Decline words,Decline words according to channel language.,,,app_saycounted,,))
+$(eval $(call BuildAsteriskModule,app-sayunixtime,Say Unix time,Say time.,,,app_sayunixtime,,))
+$(eval $(call BuildAsteriskModule,app-senddtmf,Send DTMF digits,Send DTMF digits application.,,,app_senddtmf,,))
+$(eval $(call BuildAsteriskModule,app-sendtext,Send text,Send text applications.,,,app_sendtext,,))
+$(eval $(call BuildAsteriskModule,app-skel,Skeleton [sample],Skeleton application.,,app_skel.conf,app_skel,,))
+$(eval $(call BuildAsteriskModule,app-sms,SMS,SMS/PSTN handler.,,,app_sms,,))
+$(eval $(call BuildAsteriskModule,app-softhangup,Hang up requested channel,Hangs up the requested channel.,,,app_softhangup,,))
+$(eval $(call BuildAsteriskModule,app-speech,Dialplan Speech,Dialplan speech applications.,+$(PKG_NAME)-res-speech,,app_speech_utils,,))
+$(eval $(call BuildAsteriskModule,app-stack,Stack applications,Dialplan subroutines.,+$(PKG_NAME)-res-agi,,app_stack,,))
+$(eval $(call BuildAsteriskModule,app-stasis,Stasis dialplan,Stasis dialplan application.,+$(PKG_NAME)-res-stasis,,app_stasis,,))
+$(eval $(call BuildAsteriskModule,app-statsd,statsd dialplan,StatsD dialplan application.,+$(PKG_NAME)-res-statsd,,app_statsd,,))
+$(eval $(call BuildAsteriskModule,app-stream-echo,Stream echo,Stream echo application.,,,app_stream_echo,,))
+$(eval $(call BuildAsteriskModule,app-system,System exec,Generic system application.,,,app_system,,))
+$(eval $(call BuildAsteriskModule,app-talkdetect,File playback with audio detect,Playback with talk detection.,,,app_talkdetect,,))
+$(eval $(call BuildAsteriskModule,app-test,Interface test,Interface test application.,,,app_test,,))
+$(eval $(call BuildAsteriskModule,app-transfer,Transfers caller to other ext,Transfers a caller to another extension.,,,app_transfer,,))
+$(eval $(call BuildAsteriskModule,app-url,Send URL,Send URL applications.,,,app_url,,))
+$(eval $(call BuildAsteriskModule,app-userevent,Custom user event,Custom user event application.,,,app_userevent,,))
+$(eval $(call BuildAsteriskModule,app-verbose,Verbose logging,Send verbose output.,,,app_verbose,,))
+$(eval $(call BuildAsteriskModule,app-voicemail,Voicemail,Voicemail module.,,voicemail.conf,app_voicemail,vm-*,))
+$(eval $(call BuildAsteriskModule,app-voicemail-imap,Voicemail IMAP,Voicemail module.,+uw-imap,,app_voicemail_imap,,))
+$(eval $(call BuildAsteriskModule,app-voicemail-odbc,Voicemail ODBC,Voicemail module.,+unixodbc,,app_voicemail_odbc,,))
+$(eval $(call BuildAsteriskModule,app-waitforring,Wait for first ring,Waits until first ring after time.,,,app_waitforring,,))
+$(eval $(call BuildAsteriskModule,app-waitforsilence,Wait for silence/noise,Wait for silence/noise.,,,app_waitforsilence,,))
+$(eval $(call BuildAsteriskModule,app-waituntil,Sleep,Wait until specified time.,,,app_waituntil,,))
+$(eval $(call BuildAsteriskModule,app-while,While loop,While loops and conditional execution.,,,app_while,,))
+$(eval $(call BuildAsteriskModule,app-zapateller,Block telemarketers,Block telemarketers with special information tone.,,,app_zapateller,,))
+$(eval $(call BuildAsteriskModule,bridge-builtin-features,Bridging features,Built in bridging features.,,,bridge_builtin_features,,))
+$(eval $(call BuildAsteriskModule,bridge-builtin-interval-features,Built in bridging interval features,Built in bridging interval features.,,,bridge_builtin_interval_features,,))
+$(eval $(call BuildAsteriskModule,bridge-holding,Bridging for storing channels in a bridge,Holding bridge module.,,,bridge_holding,,))
+$(eval $(call BuildAsteriskModule,bridge-native-rtp,Native RTP bridging technology module,Native RTP bridging module.,,,bridge_native_rtp,,))
+$(eval $(call BuildAsteriskModule,bridge-simple,Simple two channel bridging module,Simple two channel bridging module.,,,bridge_simple,,))
+$(eval $(call BuildAsteriskModule,bridge-softmix,Multi-party software based channel mixing,Multi-party software based channel mixing.,,,bridge_softmix,,))
+$(eval $(call BuildAsteriskModule,cdr,Provides CDR,Call Detail Records.,,cdr.conf cdr_custom.conf cdr_manager.conf cdr_syslog.conf,app_cdr app_forkcdr cdr_custom cdr_manager cdr_syslog func_cdr,,))
+$(eval $(call BuildAsteriskModule,cdr-csv,Provides CDR CSV,Comma Separated Values CDR backend.,,,cdr_csv,,))
+$(eval $(call BuildAsteriskModule,cdr-sqlite3,Provides CDR SQLITE3,SQLite3 CDR backend.,libsqlite3,,cdr_sqlite3_custom,,))
+$(eval $(call BuildAsteriskModule,cel-custom,Customizable CSV CEL backend,Customizable Comma Separated Values CEL backend.,,cel_custom.conf,cel_custom,,))
+$(eval $(call BuildAsteriskModule,cel-manager,AMI CEL backend,Asterisk Manager Interface CEL backend.,,,cel_manager,,))
+$(eval $(call BuildAsteriskModule,cel-sqlite3-custom,SQLite3 custom CEL,SQLite3 custom CEL module.,,cel_sqlite3_custom.conf,cel_sqlite3_custom,,))
+$(eval $(call BuildAsteriskModule,chan-alsa,ALSA channel,ALSA console channel driver.,+alsa-lib,alsa.conf,chan_alsa,,))
+$(eval $(call BuildAsteriskModule,chan-audiosocket,Audiosocket channel,Audiosocket channel.,+$(PKG_NAME)-res-audiosocket,,chan_audiosocket,,))
+$(eval $(call BuildAsteriskModule,chan-bridge-media,Bridge media channel driver,Bridge media channel driver.,,,chan_bridge_media,,))
+$(eval $(call BuildAsteriskModule,chan-console,Console channel driver,Console channel driver.,+portaudio,console.conf,chan_console,,))
+$(eval $(call BuildAsteriskModule,chan-dahdi,DAHDI channel,DAHDI telephony.,+dahdi-tools-libtonezone +kmod-dahdi +libpri @!aarch64,chan_dahdi.conf,chan_dahdi,,))
+$(eval $(call BuildAsteriskModule,chan-iax2,IAX2 channel,Inter Asterisk eXchange.,+$(PKG_NAME)-res-timing-timerfd,iax.conf iaxprov.conf,chan_iax2,,))
+$(eval $(call BuildAsteriskModule,chan-mgcp,MGCP,Media Gateway Control Protocol.,,mgcp.conf,chan_mgcp,,))
+$(eval $(call BuildAsteriskModule,chan-mobile,Bluetooth channel,Bluetooth mobile device channel driver.,+bluez-libs,chan_mobile.conf,chan_mobile,,))
+$(eval $(call BuildAsteriskModule,chan-motif,Jingle channel,Motif Jingle channel driver.,+$(PKG_NAME)-res-xmpp,motif.conf,chan_motif,,))
+$(eval $(call BuildAsteriskModule,chan-ooh323,H.323 channel,Objective Systems H.323 channel.,,ooh323.conf,chan_ooh323,,))
+$(eval $(call BuildAsteriskModule,chan-oss,OSS channel,OSS console channel driver.,,oss.conf,chan_oss,,))
+$(eval $(call BuildAsteriskModule,chan-rtp,RTP media channel,RTP media channel.,,,chan_rtp,,))
+$(eval $(call BuildAsteriskModule,chan-sip,SIP channel,Session Initiation Protocol.,+$(PKG_NAME)-app-confbridge,sip.conf sip_notify.conf,chan_sip,,))
+$(eval $(call BuildAsteriskModule,chan-skinny,Skinny channel,Skinny Client Control Protocol.,,skinny.conf,chan_skinny,,))
+$(eval $(call BuildAsteriskModule,chan-unistim,Unistim channel,UNISTIM protocol.,,unistim.conf,chan_unistim,,))
+$(eval $(call BuildAsteriskModule,codec-a-mu,Alaw to ulaw translation,Alaw and ulaw direct coder/decoder.,,,codec_a_mu,,))
+$(eval $(call BuildAsteriskModule,codec-adpcm,ADPCM text,Adaptive Differential PCM coder/decoder.,,,codec_adpcm,,))
+$(eval $(call BuildAsteriskModule,codec-alaw,Signed linear to alaw translation,Alaw coder/decoder.,,,codec_alaw,,))
+$(eval $(call BuildAsteriskModule,codec-dahdi,DAHDI codec,Generic DAHDI transcoder codec translator.,+$(PKG_NAME)-chan-dahdi,,codec_dahdi,,))
+$(eval $(call BuildAsteriskModule,codec-g722,G.722,ITU G.722-64kbps G722 transcoder.,,,codec_g722,,))
+$(eval $(call BuildAsteriskModule,codec-g726,Signed linear to G.726 translation,ITU G.726-32kbps G726 transcoder.,,,codec_g726,,))
+$(eval $(call BuildAsteriskModule,codec-gsm,linear to GSM translation,GSM coder/decoder.,,,codec_gsm,,))
+$(eval $(call BuildAsteriskModule,codec-ilbc,linear to ILBC translation,iLBC coder/decoder.,,,codec_ilbc,,))
+$(eval $(call BuildAsteriskModule,codec-lpc10,Linear to LPC10 translation,LPC10 2.4kbps coder/decoder.,,,codec_lpc10,,))
+$(eval $(call BuildAsteriskModule,codec-resample,resample sLinear audio,SLIN resampling codec.,,,codec_resample,,))
+$(eval $(call BuildAsteriskModule,codec-speex,Speex Coder/Decoder,Speex coder/decoder.,@!SOFT_FLOAT +libspeex +libspeexdsp,,codec_speex,,))
+$(eval $(call BuildAsteriskModule,codec-ulaw,Signed linear to ulaw translation,Ulaw coder/decoder.,,,codec_ulaw,,))
+$(eval $(call BuildAsteriskModule,curl,CURL,cURL support,+libcurl,,func_curl res_config_curl res_curl,,))
+$(eval $(call BuildAsteriskModule,format-g719,G.719,ITU G.719.,,,format_g719,,))
+$(eval $(call BuildAsteriskModule,format-g723,G.723.1,G.723.1 simple timestamp file format.,,,format_g723,,))
+$(eval $(call BuildAsteriskModule,format-g726,G.726,Raw G.726 data.,,,format_g726,,))
+$(eval $(call BuildAsteriskModule,format-g729,G.729,Raw G.729 data.,,,format_g729,,))
+$(eval $(call BuildAsteriskModule,format-gsm,GSM format,Raw GSM data.,,,format_gsm,,))
+$(eval $(call BuildAsteriskModule,format-h263,H263 format,Raw H.263 data.,,,format_h263,,))
+$(eval $(call BuildAsteriskModule,format-h264,H264 format,Raw H.264 data.,,,format_h264,,))
+$(eval $(call BuildAsteriskModule,format-ilbc,ILBC format,Raw iLBC data.,,,format_ilbc,,))
+$(eval $(call BuildAsteriskModule,format-mp3,MP3 format,MP3 format.,@BROKEN,,format_mp3,,)) # requires patched mpg123 source
+$(eval $(call BuildAsteriskModule,format-ogg-speex,OGG/Speex audio,OGG/Speex audio.,@!SOFT_FLOAT +libogg +libspeex,,format_ogg_speex,,))
+$(eval $(call BuildAsteriskModule,format-ogg-vorbis,OGG/Vorbis audio,OGG/Vorbis audio.,+libvorbis,,format_ogg_vorbis,,))
+$(eval $(call BuildAsteriskModule,format-pcm,PCM format,Raw/Sun ulaw/alaw 8KHz and G.722 16Khz.,,,format_pcm,,))
+$(eval $(call BuildAsteriskModule,format-siren14,Siren14,ITU G.722.1 Annex C.,,,format_siren14,,))
+$(eval $(call BuildAsteriskModule,format-siren7,Siren7,ITU G.722.1.,,,format_siren7,,))
+$(eval $(call BuildAsteriskModule,format-sln,Raw slinear format,Raw signed linear audio support 8khz-192khz.,,,format_sln,,))
+$(eval $(call BuildAsteriskModule,format-vox,VOX format,Dialogic VOX file format.,,,format_vox,,))
+$(eval $(call BuildAsteriskModule,format-wav,WAV format (8000hz Signed Linear),Microsoft WAV/WAV16 format.,,,format_wav,,))
+$(eval $(call BuildAsteriskModule,format-wav-gsm,WAV format (Proprietary GSM),Microsoft WAV format.,,,format_wav_gsm,,))
+$(eval $(call BuildAsteriskModule,func-aes,AES dialplan functions,AES dialplan functions.,,,func_aes,,))
+$(eval $(call BuildAsteriskModule,func-base64,base64 support,Base64 encode/decode dialplan functions.,,,func_base64,,))
+$(eval $(call BuildAsteriskModule,func-blacklist,Blacklist on callerid,Look up Caller ID name/number from blacklist database.,,,func_blacklist,,))
+$(eval $(call BuildAsteriskModule,func-callcompletion,Call control configuration function,Call control configuration function.,,,func_callcompletion,,))
+$(eval $(call BuildAsteriskModule,func-channel,Channel info,Channel information dialplan functions.,,,func_channel,,))
+$(eval $(call BuildAsteriskModule,func-config,Configuration file variable access,Asterisk configuration file variable access.,,,func_config,,))
+$(eval $(call BuildAsteriskModule,func-cut,CUT function,Cut out information from a string.,,,func_cut,,))
+$(eval $(call BuildAsteriskModule,func-db,Database interaction,Database related dialplan functions.,,,func_db app_db,,))
+$(eval $(call BuildAsteriskModule,func-devstate,Blinky lights control,Gets or sets a device state in the dialplan.,,,func_devstate,,))
+$(eval $(call BuildAsteriskModule,func-dialgroup,Dialgroup dialplan function,Dialgroup dialplan function.,,,func_dialgroup,,))
+$(eval $(call BuildAsteriskModule,func-dialplan,Dialplan context/extension/priority checking functions,Dialplan context/extension/priority checking functions.,,,func_dialplan,,))
+$(eval $(call BuildAsteriskModule,func-enum,ENUM,ENUM related dialplan functions.,,enum.conf,func_enum,,))
+$(eval $(call BuildAsteriskModule,func-env,Environment functions,Environment/filesystem dialplan functions.,,,func_env,,))
+$(eval $(call BuildAsteriskModule,func-extstate,Hinted extension state,Gets the state of an extension in the dialplan.,,,func_extstate,,))
+$(eval $(call BuildAsteriskModule,func-frame-trace,Frame trace for internal ast_frame debugging,Frame trace for internal ast_frame debugging.,,,func_frame_trace,,))
+$(eval $(call BuildAsteriskModule,func-global,Global variable,Variable dialplan functions.,,,func_global,,))
+$(eval $(call BuildAsteriskModule,func-groupcount,Group count,Channel group dialplan functions.,,,func_groupcount,,))
+$(eval $(call BuildAsteriskModule,func-hangupcause,HANGUPCAUSE related functions,Hangup cause related functions and applications.,,,func_hangupcause,,))
+$(eval $(call BuildAsteriskModule,func-holdintercept,Hold interception dialplan function,Hold interception dialplan function.,,,func_holdintercept,,))
+$(eval $(call BuildAsteriskModule,func-iconv,Charset conversion,Charset conversions.,,,func_iconv,,,$(ICONV_DEPENDS)))
+$(eval $(call BuildAsteriskModule,func-jitterbuffer,Jitter buffer for read side of channel,Jitter buffer for read side of channel.,,,func_jitterbuffer,,))
+$(eval $(call BuildAsteriskModule,func-lock,Dialplan mutexes,Dialplan mutexes.,,,func_lock,,))
+$(eval $(call BuildAsteriskModule,func-math,Math functions,Mathematical dialplan function.,,,func_math,,))
+$(eval $(call BuildAsteriskModule,func-md5,MD5 digest dialplan functions,MD5 digest dialplan functions.,,,func_md5,,))
+$(eval $(call BuildAsteriskModule,func-module,Simple module check function,Checks if Asterisk module is loaded in memory.,,,func_module,,))
+$(eval $(call BuildAsteriskModule,func-periodic-hook,Periodic dialplan hooks,Periodic dialplan hooks.,+$(PKG_NAME)-app-chanspy +$(PKG_NAME)-func-cut +$(PKG_NAME)-func-groupcount +$(PKG_NAME)-func-uri,,func_periodic_hook,,))
+$(eval $(call BuildAsteriskModule,func-pitchshift,Audio effects dialplan functions,Audio effects dialplan functions.,,,func_pitchshift,,))
+$(eval $(call BuildAsteriskModule,func-presencestate,Hinted presence state,Gets or sets a presence state in the dialplan.,,,func_presencestate,,))
+$(eval $(call BuildAsteriskModule,func-rand,RAND dialplan function,Random number dialplan function.,,,func_rand,,))
+$(eval $(call BuildAsteriskModule,func-realtime,REALTIME dialplan function,Read/write/store/destroy values from a realtime repository.,,,func_realtime,,))
+$(eval $(call BuildAsteriskModule,func-sha1,SHA-1 computation dialplan function,SHA-1 computation dialplan function.,,,func_sha1,,))
+$(eval $(call BuildAsteriskModule,func-shell,Shell,Collects the output generated by a command executed by the system shell.,,,func_shell,,))
+$(eval $(call BuildAsteriskModule,func-sorcery,Get a field from a sorcery object,Get a field from a sorcery object.,,,func_sorcery,,))
+$(eval $(call BuildAsteriskModule,func-speex,Noise reduction and AGC,Noise reduction and Automatic Gain Control.,@!SOFT_FLOAT +libspeex +libspeexdsp,,func_speex,,))
+$(eval $(call BuildAsteriskModule,func-sprintf,SPRINTF dialplan function,SPRINTF dialplan function.,,,func_sprintf,,))
+$(eval $(call BuildAsteriskModule,func-srv,SRV functions,SRV related dialplan functions.,,,func_srv,,))
+$(eval $(call BuildAsteriskModule,func-sysinfo,System information related functions,System information related functions.,,,func_sysinfo,,))
+$(eval $(call BuildAsteriskModule,func-talkdetect,Talk detection dialplan function,Talk detection dialplan function.,,,func_talkdetect,,))
+$(eval $(call BuildAsteriskModule,func-uri,URI encoding and decoding,URI encode/decode dialplan functions.,,,func_uri,,))
+$(eval $(call BuildAsteriskModule,func-version,Get Asterisk version/build info,Get Asterisk version/build info.,,,func_version,,))
+$(eval $(call BuildAsteriskModule,func-vmcount,vmcount dialplan,Indicator for whether a voice mailbox has messages in a given folder.,,,func_vmcount,,))
+$(eval $(call BuildAsteriskModule,func-volume,Technology independent volume control,Technology independent volume control.,,,func_volume,,))
+$(eval $(call BuildAsteriskModule,odbc,ODBC,ODBC support.,+libpthread +libc +unixodbc,cdr_adaptive_odbc.conf cdr_odbc.conf cel_odbc.conf func_odbc.conf res_odbc.conf,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_config_odbc res_odbc res_odbc_transaction,,))
+$(eval $(call BuildAsteriskModule,pbx-ael,Asterisk Extension Logic,Asterisk Extension Language compiler.,+$(PKG_NAME)-res-ael-share,extensions.ael,pbx_ael,,))
+$(eval $(call BuildAsteriskModule,pbx-dundi,Dundi,Distributed Universal Number Discovery.,,dundi.conf,pbx_dundi,,))
+$(eval $(call BuildAsteriskModule,pbx-loopback,Loopback switch,Loopback switch.,,,pbx_loopback,,))
+$(eval $(call BuildAsteriskModule,pbx-lua,Lua,Lua PBX switch.,+liblua,extensions.lua,pbx_lua,,))
+$(eval $(call BuildAsteriskModule,pbx-realtime,Realtime Switch,Realtime switch.,,,pbx_realtime,,))
+$(eval $(call BuildAsteriskModule,pbx-spool,Call Spool,Outgoing spool support.,,,pbx_spool,,))
+$(eval $(call BuildAsteriskModule,pgsql,PostgreSQL,PostgreSQL support.,+libpq,cel_pgsql.conf cdr_pgsql.conf res_pgsql.conf,cel_pgsql cdr_pgsql res_config_pgsql,,))
+$(eval $(call BuildAsteriskModule,pjsip,pjsip channel,PJSIP SIP stack.,+$(PKG_NAME)-res-http-websocket +$(PKG_NAME)-res-pjproject +$(PKG_NAME)-res-sorcery +libpjsip +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsua +libpjsua2,pjsip.conf pjsip_notify.conf pjsip_wizard.conf,chan_pjsip func_pjsip_aor func_pjsip_contact func_pjsip_endpoint res_pjsip res_pjsip_acl res_pjsip_authenticator_digest res_pjsip_caller_id res_pjsip_config_wizard res_pjsip_dialog_info_body_generator res_pjsip_diversion res_pjsip_dlg_options res_pjsip_dtmf_info res_pjsip_empty_info res_pjsip_endpoint_identifier_anonymous res_pjsip_endpoint_identifier_ip res_pjsip_endpoint_identifier_user res_pjsip_exten_state res_pjsip_header_funcs res_pjsip_history res_pjsip_logger res_pjsip_messaging res_pjsip_mwi res_pjsip_mwi_body_generator res_pjsip_nat res_pjsip_notify res_pjsip_one_touch_record_info res_pjsip_outbound_authenticator_digest res_pjsip_outbound_publish res_pjsip_outbound_registration res_pjsip_path res_pjsip_pidf_body_generator res_pjsip_pidf_digium_body_supplement res_pjsip_pidf_eyebeam_body_supplement res_pjsip_publish_asterisk res_pjsip_pubsub res_pjsip_refer res_pjsip_registrar res_pjsip_rfc3326 res_pjsip_sdp_rtp res_pjsip_send_to_voicemail res_pjsip_session res_pjsip_sips_contact res_pjsip_t38 res_pjsip_transport_websocket res_pjsip_xpidf_body_generator,,))
+$(eval $(call BuildAsteriskModule,res-adsi,Provide ADSI,ADSI resource.,,,res_adsi,,))
+$(eval $(call BuildAsteriskModule,res-ael-share,Shareable AEL code,Shareable code for AEL.,,,res_ael_share,,))
+$(eval $(call BuildAsteriskModule,res-agi,Asterisk Gateway Interface,Asterisk Gateway Interface.,+$(PKG_NAME)-res-speech,,res_agi,,))
+$(eval $(call BuildAsteriskModule,res-ari,Asterisk RESTful interface,Asterisk RESTful Interface.,+$(PKG_NAME)-res-http-websocket,ari.conf,res_ari,,))
+$(eval $(call BuildAsteriskModule,res-ari-applications,RESTful Stasis application resources,RESTful API module - Stasis application resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_applications,))
+$(eval $(call BuildAsteriskModule,res-ari-asterisk,RESTful Asterisk resources,RESTful API module - Asterisk resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_asterisk,,))
+$(eval $(call BuildAsteriskModule,res-ari-bridges,RESTful bridge resources,RESTful API module - bridge resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-playback,,res_ari_bridges,,))
+$(eval $(call BuildAsteriskModule,res-ari-channels,RESTful channel resources,RESTful API module - channel resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-answer +$(PKG_NAME)-res-stasis-playback +$(PKG_NAME)-res-stasis-snoop,,res_ari_channels,,))
+$(eval $(call BuildAsteriskModule,res-ari-device-states,RESTful device state resources,RESTful API module - device state resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-device-state,,res_ari_device_states,,))
+$(eval $(call BuildAsteriskModule,res-ari-endpoints,RESTful endpoint resources,RESTful API module - endpoint resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_endpoints,,))
+$(eval $(call BuildAsteriskModule,res-ari-events,RESTful WebSocket resource,RESTful API module - WebSocket resource.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_events,,))
+$(eval $(call BuildAsteriskModule,res-ari-mailboxes,RESTful mailboxes resources,RESTful API module - mailboxes resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-mailbox,,res_ari_mailboxes,,))
+$(eval $(call BuildAsteriskModule,res-ari-model,ARI model validators,ARI model validators.,,,res_ari_model,,))
+$(eval $(call BuildAsteriskModule,res-ari-playbacks,RESTful playback control resources,RESTful API module - playback control resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-playback,,res_ari_playbacks,,))
+$(eval $(call BuildAsteriskModule,res-ari-recordings,RESTful recording resources,RESTful API module - recording resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis-recording,,res_ari_recordings,,))
+$(eval $(call BuildAsteriskModule,res-ari-sounds,RESTful sound resources,RESTful API module - sound resources.,+$(PKG_NAME)-res-ari +$(PKG_NAME)-res-ari-model +$(PKG_NAME)-res-stasis,,res_ari_sounds,))
+$(eval $(call BuildAsteriskModule,res-audiosocket,Audiosocket resource module,Audiosocket resource module.,,,res_audiosocket,))
+$(eval $(call BuildAsteriskModule,res-calendar,Calendar API,Asterisk calendar integration.,,calendar.conf,res_calendar,,))
+$(eval $(call BuildAsteriskModule,res-calendar-caldav,CalDAV calendar,Asterisk CalDAV calendar integration.,+$(PKG_NAME)-res-calendar +libical +libneon,,res_calendar_caldav,,))
+$(eval $(call BuildAsteriskModule,res-calendar-ews,EWS calendar,Asterisk MS Exchange Web Service calendar integration.,+$(PKG_NAME)-res-calendar +libneon,,res_calendar_ews,,))
+$(eval $(call BuildAsteriskModule,res-calendar-exchange,Exchange calendar,Asterisk MS Exchange calendar integration.,+$(PKG_NAME)-res-calendar +libical +libiksemel +libneon,,res_calendar_exchange,,))
+$(eval $(call BuildAsteriskModule,res-calendar-icalendar,iCalendar calendar,Asterisk iCalendar .ics file integration.,+$(PKG_NAME)-res-calendar +libical +libneon,,res_calendar_icalendar,,))
+$(eval $(call BuildAsteriskModule,res-chan-stats,statsd channel stats,Example of how to use Stasis.,+$(PKG_NAME)-res-statsd,,res_chan_stats,,))
+$(eval $(call BuildAsteriskModule,res-clialiases,CLI aliases,CLI aliases.,,cli_aliases.conf,res_clialiases,,))
+$(eval $(call BuildAsteriskModule,res-clioriginate,Calls via CLI,Call origination and redirection from the CLI.,,,res_clioriginate,,))
+$(eval $(call BuildAsteriskModule,res-config-ldap,LDAP realtime interface,LDAP realtime interface.,+libopenldap,res_ldap.conf,res_config_ldap,,))
+$(eval $(call BuildAsteriskModule,res-config-mysql,MySQL CDR backend,MySQL realtime configuration driver.,+libmysqlclient,,res_config_mysql,,))
+$(eval $(call BuildAsteriskModule,res-config-sqlite3,SQLite 3 realtime config engine,SQLite3 realtime config engine.,,,res_config_sqlite3,,))
+$(eval $(call BuildAsteriskModule,res-convert,File format conversion CLI command,File format conversion CLI command.,,,res_convert,,))
+$(eval $(call BuildAsteriskModule,res-endpoint-stats,Endpoint statistics,Endpoint statistics.,+$(PKG_NAME)-res-statsd,,res_endpoint_stats,,))
+$(eval $(call BuildAsteriskModule,res-hep,HEPv3 API,HEPv3 API.,,hep.conf,res_hep,,))
+$(eval $(call BuildAsteriskModule,res-hep-pjsip,PJSIP HEPv3 Logger,PJSIP HEPv3 logger.,+$(PKG_NAME)-res-hep +$(PKG_NAME)-pjsip,,res_hep_pjsip,,))
+$(eval $(call BuildAsteriskModule,res-hep-rtcp,RTCP HEPv3 Logger,RTCP HEPv3 logger.,+$(PKG_NAME)-res-hep,,res_hep_rtcp,,))
+$(eval $(call BuildAsteriskModule,res-fax-spandsp,Spandsp T.38 and G.711,Spandsp G.711 and T.38 FAX technologies.,+$(PKG_NAME)-res-fax +libspandsp +libtiff,,res_fax_spandsp,,))
+$(eval $(call BuildAsteriskModule,res-fax,FAX modules,Generic FAX applications.,+$(PKG_NAME)-res-timing-pthread,res_fax.conf,res_fax,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-celt,CELT format attribute module,CELT format attribute module.,,,res_format_attr_celt,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-g729,G.729 format attribute module,G.729 format attribute module.,,,res_format_attr_g729,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-h263,H.263 format attribute module,H.263 format attribute module.,,,res_format_attr_h263,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-h264,H.264 format attribute module,H.264 format attribute module.,,,res_format_attr_h264,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-ilbc,ILBC format attribute module,iLBC format attribute module.,,,res_format_attr_ilbc,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-opus,Opus format attribute module,Opus format attribute module.,,,res_format_attr_opus,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-silk,SILK format attribute module,SILK format attribute module.,,,res_format_attr_silk,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-siren14,Siren14 format attribute module,Siren14 format attribute module.,,,res_format_attr_siren14,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-siren7,Siren7 format attribute module,Siren7 format attribute module.,,,res_format_attr_siren7,,))
+$(eval $(call BuildAsteriskModule,res-format-attr-vp8,VP8 format attribute module,VP8 format attribute module.,,,res_format_attr_vp8,,))
+$(eval $(call BuildAsteriskModule,res-http-media-cache,HTTP media cache backend,HTTP media cache backend.,+$(PKG_NAME)-curl,,res_http_media_cache,,))
+$(eval $(call BuildAsteriskModule,res-http-websocket,HTTP websocket support,HTTP WebSocket support.,,,res_http_websocket,,))
+$(eval $(call BuildAsteriskModule,res-limit,Resource limits,Resource limits.,,,res_limit,,))
+$(eval $(call BuildAsteriskModule,res-manager-devicestate,Device state topic forwarder,Manager device state topic forwarder.,,,res_manager_devicestate,,))
+$(eval $(call BuildAsteriskModule,res-manager-presencestate,Presence state topic forwarder,Manager presence state topic forwarder.,,,res_manager_presencestate,,))
+$(eval $(call BuildAsteriskModule,res-monitor,PBX channel monitoring,Call monitoring resource.,,,res_monitor,,))
+$(eval $(call BuildAsteriskModule,res-musiconhold,MOH,Music On Hold resource.,,musiconhold.conf,res_musiconhold,,))
+$(eval $(call BuildAsteriskModule,res-mutestream,Mute audio stream resources,Mute audio stream resources.,,,res_mutestream,,))
+$(eval $(call BuildAsteriskModule,res-mwi-devstate,MWI device state subs,This module allows presence subscriptions to voicemail boxes. This\nallows common BLF keys to act as voicemail waiting indicators.,,,res_mwi_devstate,,))
+$(eval $(call BuildAsteriskModule,res-mwi-external,Core external MWI resource,Core external MWI resource.,,,res_mwi_external,,))
+$(eval $(call BuildAsteriskModule,res-mwi-external-ami,AMI for external MWI,AMI support for external MWI.,+$(PKG_NAME)-res-mwi-external,,res_mwi_external_ami,,))
+$(eval $(call BuildAsteriskModule,res-parking,Phone Parking,Call parking resource.,+$(PKG_NAME)-bridge-holding,res_parking.conf,res_parking,,))
+$(eval $(call BuildAsteriskModule,res-phoneprov,Phone Provisioning,HTTP phone provisioning.,,phoneprov.conf,res_phoneprov,,))
+$(eval $(call BuildAsteriskModule,res-pjsip-phoneprov,PJSIP Phone Provisioning,PJSIP phone provisioning.,+$(PKG_NAME)-pjsip +$(PKG_NAME)-res-phoneprov,,res_pjsip_phoneprov_provider,,))
+$(eval $(call BuildAsteriskModule,res-pjsip-stir-shaken,PJSIP STIR/SHAKEN resource module,PJSIP STIR/SHAKEN resource module.,+$(PKG_NAME)-pjsip +$(PKG_NAME)-res-stir-shaken,,res_pjsip_stir_shaken,,))
+$(eval $(call BuildAsteriskModule,res-pjproject,Bridge PJPROJECT to Asterisk logging,PJProject log and utility support.,+libpj +libpjlib-util +libpjmedia +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsip +libpjsua +libpjsua2 +libsrtp2,pjproject.conf,res_pjproject,,))
+$(eval $(call BuildAsteriskModule,res-pktccops,PktcCOPS manager for MGCP,PktcCOPS manager for MGCP.,,res_pktccops.conf,res_pktccops,,))
+$(eval $(call BuildAsteriskModule,res-prometheus,Prometheus resource module,Prometheus resource module.,+libpjsip +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsua +libpjsua2,prometheus.conf,res_prometheus,,))
+$(eval $(call BuildAsteriskModule,res-realtime,RealTime CLI,Realtime data lookup/rewrite.,,,res_realtime,,))
+$(eval $(call BuildAsteriskModule,res-remb-modifier,REMB modifier,REMB modifier module.,,,res_remb_modifier,,))
+$(eval $(call BuildAsteriskModule,res-resolver-unbound,Unbound DNS resolver,Unbound DNS resolver support.,+libunbound,resolver_unbound.conf,res_resolver_unbound,,))
+$(eval $(call BuildAsteriskModule,res-rtp-asterisk,RTP stack,Asterisk RTP stack.,+libpjsip +libpjmedia +libpjnath +libpjsip-simple +libpjsip-ua +libpjsua +libpjsua2,rtp.conf,res_rtp_asterisk,,))
+$(eval $(call BuildAsteriskModule,res-rtp-multicast,RTP multicast engine,Multicast RTP engine.,,,res_rtp_multicast,,))
+$(eval $(call BuildAsteriskModule,res-security-log,Security event logging,Security event logging.,,,res_security_log,,))
+$(eval $(call BuildAsteriskModule,res-smdi,Provide SMDI,Simplified Message Desk Interface resource.,,smdi.conf,res_smdi,,))
+$(eval $(call BuildAsteriskModule,res-snmp,SNMP [Sub]Agent for Asterisk,SNMP agent for Asterisk.,+libnetsnmp,res_snmp.conf,res_snmp,,))
+$(eval $(call BuildAsteriskModule,res-sorcery,Sorcery data layer,Sorcery backend modules for data access intended for using realtime as\nbackend.,,sorcery.conf,res_sorcery_astdb res_sorcery_config res_sorcery_memory res_sorcery_realtime,,))
+$(eval $(call BuildAsteriskModule,res-sorcery-memory-cache,Sorcery memory cache object wizard,Sorcery memory cache object wizard.,,,res_sorcery_memory_cache,,))
+$(eval $(call BuildAsteriskModule,res-speech,Speech Recognition API,Generic speech recognition API.,,,res_speech,,))
+$(eval $(call BuildAsteriskModule,res-srtp,SRTP Support,Secure RTP.,+libsrtp2,,res_srtp,,))
+$(eval $(call BuildAsteriskModule,res-stasis,Stasis application,Stasis application support.,,,res_stasis,,))
+$(eval $(call BuildAsteriskModule,res-stasis-answer,Stasis application answer,Stasis application answer support.,+$(PKG_NAME)-res-stasis,,res_stasis_answer,,))
+$(eval $(call BuildAsteriskModule,res-stasis-device-state,Stasis application device state,Stasis application device state support.,+$(PKG_NAME)-res-stasis,,res_stasis_device_state,,))
+$(eval $(call BuildAsteriskModule,res-stasis-mailbox,Stasis application mailbox,Stasis application mailbox support.,+$(PKG_NAME)-res-stasis +$(PKG_NAME)-res-mwi-external,,res_stasis_mailbox,,))
+$(eval $(call BuildAsteriskModule,res-stasis-playback,Stasis application playback,Stasis application playback support.,+$(PKG_NAME)-res-stasis-recording,,res_stasis_playback,,))
+$(eval $(call BuildAsteriskModule,res-stasis-recording,Stasis application recording,Stasis application recording support.,+$(PKG_NAME)-res-stasis,,res_stasis_recording,,))
+$(eval $(call BuildAsteriskModule,res-stasis-snoop,Stasis application snoop,Stasis application snoop support.,+$(PKG_NAME)-res-stasis-recording,,res_stasis_snoop,,))
+$(eval $(call BuildAsteriskModule,res-statsd,statsd client,Statsd client support.,,statsd.conf,res_statsd,,))
+$(eval $(call BuildAsteriskModule,res-stir-shaken,STIR/SHAKEN resource module,STIR/SHAKEN resource module.,+$(PKG_NAME)-curl,stir_shaken.conf,res_stir_shaken,,))
+$(eval $(call BuildAsteriskModule,res-stun-monitor,STUN monitoring,STUN network monitor.,,res_stun_monitor.conf,res_stun_monitor,,))
+$(eval $(call BuildAsteriskModule,res-timing-dahdi,DAHDI Timing Interface,DAHDI timing interface.,+$(PKG_NAME)-chan-dahdi,,res_timing_dahdi,,))
+$(eval $(call BuildAsteriskModule,res-timing-pthread,pthread Timing Interface,pthread timing interface.,,,res_timing_pthread,,))
+$(eval $(call BuildAsteriskModule,res-timing-timerfd,Timerfd Timing Interface,Timerfd timing interface.,,,res_timing_timerfd,,))
+$(eval $(call BuildAsteriskModule,res-xmpp,XMPP client and component module,Asterisk XMPP interface.,+libiksemel +libopenssl,xmpp.conf,res_xmpp,,))
+
+################################
+# AST utils
+# Params:
+# 1 - Utility name
+# 2 - Description
+# 3 - Dependencies
+# 4 - Configuration files
+################################
+# $(eval $(call BuildAsteriskUtil,Utility,Description,Dependencies,Configuration Files))
+
+$(eval $(call BuildAsteriskUtil,aelparse,Check extensions.ael file.,+$(PKG_NAME)-pbx-ael,))
+$(eval $(call BuildAsteriskUtil,astcanary,Assures Asterisk no threads have gone missing.,,))
+$(eval $(call BuildAsteriskUtil,astdb2sqlite3,Convert astdb to SQLite 3.,,))
+$(eval $(call BuildAsteriskUtil,astdb2bdb,Convert astdb back to Berkeley DB 1.86.,,))
+$(eval $(call BuildAsteriskUtil,check_expr,Expression checker [older version].,,))
+$(eval $(call BuildAsteriskUtil,check_expr2,Expression checker [newer version].,,))
+$(eval $(call BuildAsteriskUtil,conf2ael,Convert .conf to .ael.,+$(PKG_NAME)-pbx-ael,))
+$(eval $(call BuildAsteriskUtil,muted,Listens for AMI events. Mutes soundcard during call.,,muted.conf))
+$(eval $(call BuildAsteriskUtil,smsq,Send messages from command line.,+libpopt,))
+$(eval $(call BuildAsteriskUtil,stereorize,Merge two mono WAV-files to one stereo WAV-file.,,))
+$(eval $(call BuildAsteriskUtil,streamplayer,A utility for reading from a raw TCP stream [MOH source].,,))
diff --git a/net/asterisk/files/asterisk.conf b/net/asterisk/files/asterisk.conf
new file mode 100644 (file)
index 0000000..f175df8
--- /dev/null
@@ -0,0 +1,16 @@
+# The init script will create below default directories automatically.
+# In case you change these paths in your Asterisk configuration, make
+# sure that your directories exist and have the appropriate permissions
+# (Asterisk will use the user "asterisk", not root).
+
+# dbdir     => '/var/lib/asterisk/astdb'
+# logdir    => '/var/log/asterisk'
+# rundir    => '/var/run/asterisk'
+# spooldir  => '/var/spool/asterisk'
+# varlibdir => '/var/lib/asterisk'
+
+config asterisk 'general'
+       option enabled '0'
+       option log_stderr '1'
+       option log_stdout '1'
+       option options ''
diff --git a/net/asterisk/files/asterisk.init b/net/asterisk/files/asterisk.init
new file mode 100644 (file)
index 0000000..256a3cf
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014 OpenWrt.org
+
+START=99
+
+USE_PROCD=1
+
+#PROCD_DEBUG=1
+
+NAME=asterisk
+COMMAND=/usr/sbin/$NAME
+
+LOGGER="/usr/bin/logger -p user.err -s -t $NAME --"
+
+start_service() {
+
+  dbdir=/var/lib/asterisk/astdb
+  logdir=/var/log/asterisk
+  cdrcsvdir=$logdir/cdr-csv
+  rundir=/var/run/asterisk
+  spooldir=/var/spool/asterisk
+  varlibdir=/var/lib/asterisk
+
+  config_load $NAME
+
+  config_get_bool enabled general enabled 0
+  if [ $enabled -eq 0 ]; then
+    $LOGGER service not enabled in /etc/config/$NAME
+    exit 1
+  fi
+
+  config_get_bool log_stderr general log_stderr 1
+  config_get_bool log_stdout general log_stdout 1
+
+  config_get options general options
+
+  for i in \
+    "$logdir" \
+    "$cdrcsvdir" \
+    "$rundir" \
+    "$spooldir" \
+    "$varlibdir" \
+    "$dbdir"
+  do
+    if ! [ -e "$i" ]; then
+      mkdir -m 0750 -p "$i"
+      [ -d "$i" ] && chown $NAME:$NAME "$i"
+    fi
+  done
+
+  procd_open_instance
+  procd_set_param command $COMMAND
+  procd_append_param command \
+    -G "$NAME" \
+    -U "$NAME" \
+    $options \
+    -f
+  # forward stderr to logd
+  procd_set_param stderr $log_stderr
+  # same for stdout
+  procd_set_param stdout $log_stdout
+  procd_close_instance
+
+}
diff --git a/net/asterisk/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch b/net/asterisk/patches/001-disable-semaphores-on-uclibc-otherwise-allow.patch
new file mode 100644 (file)
index 0000000..ad8bc59
--- /dev/null
@@ -0,0 +1,28 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1035,15 +1035,18 @@ AC_LINK_IFELSE(
+ # Some platforms define sem_init(), but only support sem_open(). joyous.
+ AC_MSG_CHECKING(for working unnamed semaphores)
+-AC_RUN_IFELSE(
+-      [AC_LANG_PROGRAM([#include <semaphore.h>],
+-              [sem_t sem; return sem_init(&sem, 0, 0);])],
++AC_LINK_IFELSE(
++      [AC_LANG_PROGRAM(
++        [#include <semaphore.h>],
++        [#if defined(__UCLIBC__)
++         i_dont_exist sem;
++         #else
++         sem_t sem;
++         #endif
++         return sem_init(&sem, 0, 0);])],
+       AC_MSG_RESULT(yes)
+       AC_DEFINE([HAS_WORKING_SEMAPHORE], 1, [Define to 1 if anonymous semaphores work.]),
+-      AC_MSG_RESULT(no),
+-      AC_MSG_RESULT(cross-compile)
+-      AC_MSG_NOTICE([WARNING: result yes guessed because of cross compilation])
+-      AC_DEFINE([HAS_WORKING_SEMAPHORE], 1, [Define to 1 if anonymous semaphores work.])
++      AC_MSG_RESULT(no)
+ )
+ LIBS="$save_LIBS"
diff --git a/net/asterisk/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch b/net/asterisk/patches/002-configure-fix-detection-of-re-entrant-resolver-funct.patch
new file mode 100644 (file)
index 0000000..74ae605
--- /dev/null
@@ -0,0 +1,33 @@
+From 9b4070944578336506cd0a76de6f733c72d0ca74 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Sat, 13 Oct 2018 11:11:15 +0200
+Subject: [PATCH] configure: fix detection of re-entrant resolver functions
+
+Fixes https://issues.asterisk.org/jira/browse/ASTERISK-21795
+
+uClibc does not provide res_nsearch:
+asterisk-16.0.0/main/dns.c:506: undefined reference to `res_nsearch'
+
+Patch coded by Yann E. MORIN:
+http://lists.busybox.net/pipermail/buildroot/2018-October/232630.html
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1429,7 +1429,11 @@ AC_LINK_IFELSE(
+                       #include <arpa/nameser.h>
+                       #endif
+                       #include <resolv.h>],
+-                      [int foo = res_ninit(NULL);])],
++                      [
++                              int foo;
++                              foo = res_ninit(NULL);
++                              foo = res_nsearch(NULL, NULL, 0, 0, NULL, 0);
++                      ])],
+       AC_MSG_RESULT(yes)
+       AC_DEFINE([HAVE_RES_NINIT], 1, [Define to 1 if your system has the re-entrant resolver functions.])
+       AC_SEARCH_LIBS(res_9_ndestroy, resolv)
diff --git a/net/asterisk/patches/030-GNU-GLOB-exts-only-on-glibc.patch b/net/asterisk/patches/030-GNU-GLOB-exts-only-on-glibc.patch
new file mode 100644 (file)
index 0000000..f6289a6
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/res/ael/ael.flex
++++ b/res/ael/ael.flex
+@@ -601,7 +601,7 @@ includes   { STORE_POS; return KW_INCLUDES
+                  snprintf(fnamebuf2,sizeof(fnamebuf2), "%s/%s", (char *)ast_config_AST_CONFIG_DIR, fnamebuf);
+                  ast_copy_string(fnamebuf,fnamebuf2,sizeof(fnamebuf));
+               }
+-#ifdef SOLARIS
++#if !defined(HAVE_GLOB_NOMAGIC) || !defined(HAVE_GLOB_BRACE) || defined(DEBUG_NONGNU)
+                       glob_ret = glob(fnamebuf, GLOB_NOCHECK, NULL, &globbuf);
+ #else
+                       glob_ret = glob(fnamebuf, GLOB_NOMAGIC|GLOB_BRACE, NULL, &globbuf);
+--- a/res/ael/ael_lex.c
++++ b/res/ael/ael_lex.c
+@@ -1982,7 +1982,7 @@ YY_RULE_SETUP
+                  snprintf(fnamebuf2,sizeof(fnamebuf2), "%s/%s", (char *)ast_config_AST_CONFIG_DIR, fnamebuf);
+                  ast_copy_string(fnamebuf,fnamebuf2,sizeof(fnamebuf));
+               }
+-#ifdef SOLARIS
++#if !defined(HAVE_GLOB_NOMAGIC) || !defined(HAVE_GLOB_BRACE) || defined(DEBUG_NONGNU)
+                       glob_ret = glob(fnamebuf, GLOB_NOCHECK, NULL, &globbuf);
+ #else
+                       glob_ret = glob(fnamebuf, GLOB_NOMAGIC|GLOB_BRACE, NULL, &globbuf);
diff --git a/net/asterisk/patches/053-musl-mutex-init.patch b/net/asterisk/patches/053-musl-mutex-init.patch
new file mode 100644 (file)
index 0000000..98cdccf
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/include/asterisk/lock.h
++++ b/include/asterisk/lock.h
+@@ -66,7 +66,7 @@
+ #define AST_PTHREADT_NULL (pthread_t) -1
+ #define AST_PTHREADT_STOP (pthread_t) -2
+-#if (defined(SOLARIS) || defined(BSD))
++#if (defined(SOLARIS) || defined(BSD) || !defined(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP))
+ #define AST_MUTEX_INIT_W_CONSTRUCTORS
+ #endif /* SOLARIS || BSD */
diff --git a/net/asterisk/patches/100-build-reproducibly.patch b/net/asterisk/patches/100-build-reproducibly.patch
new file mode 100644 (file)
index 0000000..736fd5d
--- /dev/null
@@ -0,0 +1,28 @@
+--- a/build_tools/make_build_h
++++ b/build_tools/make_build_h
+@@ -5,6 +5,14 @@ MACHINE=`uname -m  | sed 's/\\\\/\\\\\\\
+ OS=`uname -s`
+ USER=`id | awk -F")" '{print $1}'| awk -F"(" '{print $2}' | sed 's/\\\\/\\\\\\\\/g'`
+ DATE=`date -u "+%Y-%m-%d %H:%M:%S"`
++if [ -n "${SOURCE_DATE_EPOCH}" ]; then
++      # building reproducibly, faking some data
++      HOSTNAME='openwrt.org'
++      KERNEL='unknown'
++      MACHINE='unknown'
++      USER='nobody'
++      DATE=`date -u "+%Y-%m-%d %H:%M:%S" -d @${SOURCE_DATE_EPOCH}`
++fi
+ cat << END
+ /*
+  * build.h
+--- a/Makefile
++++ b/Makefile
+@@ -488,7 +488,7 @@ doc/core-en_US.xml: makeopts .lastclean
+       @echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
+       @for x in $(MOD_SUBDIRS); do \
+               printf "$$x " ; \
+-              for i in `find $$x -name '*.c'`; do \
++              for i in `find $$x -name '*.c' | LC_ALL=C sort`; do \
+                       $(AWK) -f build_tools/get_documentation $$i >> $@ ; \
+               done ; \
+       done
diff --git a/net/asterisk/patches/110-fix-astmm.patch b/net/asterisk/patches/110-fix-astmm.patch
new file mode 100644 (file)
index 0000000..1d77901
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/include/asterisk/compat.h
++++ b/include/asterisk/compat.h
+@@ -30,6 +30,7 @@
+ #include <inttypes.h>
+ #include <limits.h>
+ #include <unistd.h>
++#include <pthread.h>
+ #ifdef HAVE_STDDEF_H
+ #include <stddef.h>
diff --git a/net/asterisk/patches/130-eventfd.patch b/net/asterisk/patches/130-eventfd.patch
new file mode 100644 (file)
index 0000000..75a0e70
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1208,7 +1208,7 @@ if test "${ac_cv_have_variable_fdset}x"
+ fi
+ AC_MSG_CHECKING([if we have usable eventfd support])
+-AC_RUN_IFELSE(
++AC_LINK_IFELSE(
+   [AC_LANG_PROGRAM([#include <sys/eventfd.h>],
+       [return eventfd(0, EFD_NONBLOCK | EFD_SEMAPHORE) == -1;])],
+   AC_MSG_RESULT(yes)
diff --git a/net/asterisk/patches/140-use-default-lua.patch b/net/asterisk/patches/140-use-default-lua.patch
new file mode 100644 (file)
index 0000000..1dcbd05
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2560,7 +2560,11 @@ if test -z "$__opus_include" -o x"$__opu
+ fi
+ AST_EXT_LIB_CHECK([OPUSFILE], [opusfile], [op_open_callbacks], [opus/opusfile.h], [], [$__opus_include])
+-for ver in 5.4 5.3 5.2 5.1; do
++# This does not work for us. We have both liblua and liblua5.3 in
++# $(STAGING_DIR)/usr. But the headers for liblua5.3 are in
++# (STAGING_DIR)/usr/include/lua5.3. Using the below, Asterisk would
++# use the headers from liblua and link against liblua5.3 :/
++for ver in ; do
+       AST_EXT_LIB_CHECK([LUA], lua${ver}, [luaL_newstate], lua${ver}/lua.h, [-lm])
+       if test "x${PBX_LUA}" = "x1" ; then
+               if test x"${LUA_DIR}" = x; then
index 453423ce6b8df690091d430c84399b44170bb9a4..5e047ecdbae37c963dcb645fd0ac2be320ef2cc2 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=baresip
-PKG_VERSION:=0.6.4
-PKG_RELEASE:=3
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub
-PKG_HASH:=61710bd1bec406ae1faf167c5743bad8eef9ced5152a3943b94d7e1cf9597581
+PKG_SOURCE_URL:=https://codeload.github.com/baresip/baresip/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=7b008c0a5b4fccfa0a4003f86dc4aaafeaabbdd259ece4757898e9cb5f04fdcf
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=docs/COPYING
@@ -58,7 +58,7 @@ define Package/baresip/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Telephony
-  URL:=http://www.creytiv.com
+  URL:=https://github.com/baresip/baresip
 endef
 
 define Package/baresip
@@ -67,6 +67,11 @@ $(call Package/baresip/Default)
   DEPENDS:=+libre +librem
   USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
   MENU:=1
+  FILE_MODES:= \
+         /etc/baresip:baresip:baresip:0750 \
+         /etc/baresip/accounts:baresip:baresip:0640 \
+         /etc/baresip/config:baresip:baresip:0640 \
+         /etc/baresip/contacts:baresip:baresip:0640
 endef
 
 baresip-mod-alsa        := USE_ALSA
@@ -92,17 +97,16 @@ baresip-mod-v4l2        := USE_V4L2
 
 BARESIP_MOD_OPTIONS:= \
        MOD_AUTODETECT= \
-       EXTRA_MODULES="dtmfio" \
        $(foreach m,$(baresip-mods),$(baresip-mod-$(m))=$(if $(CONFIG_PACKAGE_baresip-mod-$(subst _,-,$(m))),1))
 
 MAKE_FLAGS+= \
        CROSS_COMPILE="$(TARGET_CROSS)" \
+       DESTDIR="$(PKG_INSTALL_DIR)" \
        EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \
        LD="$(TARGET_CC)" \
        LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
        LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
        LIBRE_SO="$(STAGING_DIR)/usr/lib" \
-       LIBREM_PATH="$(STAGING_DIR)/usr" \
        OS=linux \
        RELEASE=1 \
        SYSROOT="$(shell $(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s|/include/pthread.h||p')" \
@@ -123,7 +127,7 @@ define Package/baresip/install
        $(INSTALL_DIR) $(1)/etc/baresip
        $(SED) '/^#/!s/^/#/' $(PKG_BUILD_DIR)/docs/examples/accounts
        $(SED) '/^#module_path/s|^#||;s|/local||' $(PKG_BUILD_DIR)/docs/examples/config
-       $(INSTALL_CONF) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
        $(INSTALL_DIR) $(1)/etc/default
        $(INSTALL_CONF) ./files/baresip.default $(1)/etc/default/baresip
        $(INSTALL_DIR) $(1)/etc/init.d
@@ -138,17 +142,6 @@ define Package/baresip/conffiles
 /etc/init.d/baresip
 endef
 
-define Package/baresip/postinst
-#!/bin/sh
-if [ -z "$${IPKG_INSTROOT}" ]; then
-  chown $(PKG_NAME):$(PKG_NAME) \
-    /etc/baresip/accounts \
-    /etc/baresip/config \
-    /etc/baresip/contacts
-fi
-exit 0
-endef
-
 ##################
 # bareSIP modules
 # 1. Name
@@ -189,7 +182,6 @@ $(eval $(call BuildPlugin,cons,UDP/TCP console UI driver,cons,))
 $(eval $(call BuildPlugin,ctrl_tcp,TCP control interface,ctrl_tcp,))
 $(eval $(call BuildPlugin,debug_cmd,Debug commands,debug_cmd,))
 $(eval $(call BuildPlugin,dtls_srtp,DTLS-SRTP end-to-end encryption,dtls_srtp,))
-$(eval $(call BuildPlugin,dtmfio,DTMF input/output,dtmfio,))
 $(eval $(call BuildPlugin,echo,Echo server module,echo,))
 $(eval $(call BuildPlugin,evdev,Linux input driver,evdev,))
 $(eval $(call BuildPlugin,fakevideo,Fake video input/output driver,fakevideo,))
index e4ecda0aaa785386f8294451811c8b57ae3c14d3..de530b9e51011299b14fac1b76bf9180728b75aa 100644 (file)
@@ -1,16 +1,53 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -45,11 +45,11 @@ endif
+@@ -44,26 +44,15 @@ endif
+ include $(LIBRE_MK)
+ include mk/modules.mk
  
- CFLAGS    += -I. -Iinclude -I$(LIBRE_INC) -I$(SYSROOT)/include
- CFLAGS    += -I$(LIBREM_PATH)/include
+-ifndef LIBREM_PATH
+-LIBREM_PATH   := $(shell [ -d ../rem ] && echo "../rem")
+-endif
+-
+-
+ CFLAGS    += -I. -Iinclude -I$(LIBRE_INC)
+-ifneq ($(LIBREM_PATH),)
+-CFLAGS    += -I$(LIBREM_PATH)/include
+-endif
 -CFLAGS    += -I$(SYSROOT)/local/include/rem -I$(SYSROOT)/include/rem
-+CFLAGS    += -I$(SYSROOT)/local/include/rem -I$(SYSROOT_ALT)/include/rem
++CFLAGS    += -I$(SYSROOT_ALT)/include/rem
+ ifneq ($(SYSROOT_LOCAL),)
+ CFLAGS    += -I$(SYSROOT_LOCAL)/include/rem
+ endif
  
  CXXFLAGS  += -I. -Iinclude -I$(LIBRE_INC)
- CXXFLAGS  += -I$(LIBREM_PATH)/include
+-ifneq ($(LIBREM_PATH),)
+-CXXFLAGS  += -I$(LIBREM_PATH)/include
+-endif
 -CXXFLAGS  += -I$(SYSROOT)/local/include/rem -I$(SYSROOT)/include/rem
-+CXXFLAGS  += -I$(SYSROOT)/local/include/rem -I$(SYSROOT_ALT)/include/rem
- CXXFLAGS  += $(EXTRA_CXXFLAGS)
++CXXFLAGS  += -I$(SYSROOT_ALT)/include/rem
+ ifneq ($(SYSROOT_LOCAL),)
+ CXXFLAGS  += -I$(SYSROOT_LOCAL)/include/rem
+ endif
+@@ -73,10 +62,6 @@ CXXFLAGS  += $(EXTRA_CXXFLAGS)
  # XXX: common for C/C++
+ CPPFLAGS += -DHAVE_INTTYPES_H
+-ifneq ($(LIBREM_PATH),)
+-CLANG_OPTIONS  += -I$(LIBREM_PATH)/include
+-endif
+-
+ ifeq ($(OS),win32)
+ STATIC    := yes
+ endif
+@@ -144,10 +129,6 @@ LIB_OBJS  := $(OBJS) $(MOD_OBJS)
+ TEST_OBJS := $(patsubst %.c,$(BUILD)/test/%.o,$(filter %.c,$(TEST_SRCS)))
+ TEST_OBJS += $(patsubst %.cpp,$(BUILD)/test/%.o,$(filter %.cpp,$(TEST_SRCS)))
+-ifneq ($(LIBREM_PATH),)
+-LIBS  += -L$(LIBREM_PATH)
+-endif
+-
+ # Static build: include module linker-flags in binary
+ ifneq ($(STATIC),)
+ LIBS      += $(MOD_LFLAGS)
diff --git a/net/baresip/patches/010-openssl-deprecated.patch b/net/baresip/patches/010-openssl-deprecated.patch
deleted file mode 100644 (file)
index 4e691bc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/modules/debug_cmd/debug_cmd.c
-+++ b/modules/debug_cmd/debug_cmd.c
-@@ -56,7 +56,7 @@ static int print_system_info(struct re_printf *pf, void *arg)
- #ifdef USE_OPENSSL
-       err |= re_hprintf(pf, " OpenSSL:  %s\n",
--                        SSLeay_version(SSLEAY_VERSION));
-+                        OpenSSL_version(OPENSSL_VERSION));
- #endif
-       return err;
index 1c89cb2345a098aed9014bfff31c12fbf70e0775..90b0c920972f99bd2314face0b14e1df3f4fb4fb 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kamailio5
 PKG_VERSION:=5.4.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_URL:=https://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src
 PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
diff --git a/net/kamailio-5.x/patches/160-openssl-deprecated.patch b/net/kamailio-5.x/patches/160-openssl-deprecated.patch
new file mode 100644 (file)
index 0000000..51009f2
--- /dev/null
@@ -0,0 +1,106 @@
+--- a/src/modules/tls/tls_domain.c
++++ b/src/modules/tls/tls_domain.c
+@@ -27,6 +27,8 @@
+ #include <stdlib.h>
+ #include <openssl/ssl.h>
+ #include <openssl/opensslv.h>
++#include <openssl/bn.h>
++#include <openssl/dh.h>
+ #ifndef OPENSSL_NO_ENGINE
+ #include <openssl/engine.h>
+@@ -61,7 +63,7 @@ static void setup_ecdh(SSL_CTX *ctx)
+ {
+    EC_KEY *ecdh;
+-   if (SSLeay() < 0x1000005fL) {
++   if (OpenSSL_version_num() < 0x1000005fL) {
+       return;
+    }
+--- a/src/modules/tls/tls_init.c
++++ b/src/modules/tls/tls_init.c
+@@ -627,14 +627,13 @@ int tls_h_mod_pre_init_f(void)
+               return 0;
+       }
+       LM_DBG("preparing tls env for modules initialization\n");
+-#if OPENSSL_VERSION_NUMBER >= 0x010100000L && !defined(LIBRESSL_VERSION_NUMBER)
+-      LM_DBG("preparing tls env for modules initialization (libssl >=1.1)\n");
+-      OPENSSL_init_ssl(0, NULL);
+-#else
++#if OPENSSL_VERSION_NUMBER < 0x010100000L || defined(LIBRESSL_VERSION_NUMBER)
+       LM_DBG("preparing tls env for modules initialization (libssl <=1.0)\n");
+       SSL_library_init();
+-#endif
+       SSL_load_error_strings();
++#else
++      LM_DBG("preparing tls env for modules initialization (libssl >=1.1)\n");
++#endif
+       tls_mod_preinitialized=1;
+       return 0;
+ }
+@@ -668,7 +667,7 @@ int tls_h_mod_init_f(void)
+ #if OPENSSL_VERSION_NUMBER < 0x00907000L
+       LM_WARN("You are using an old version of OpenSSL (< 0.9.7). Upgrade!\n");
+ #endif
+-      ssl_version=SSLeay();
++      ssl_version=OpenSSL_version_num();
+       /* check if version have the same major minor and fix level
+        * (e.g. 0.9.8a & 0.9.8c are ok, but 0.9.8 and 0.9.9x are not)
+        * - values is represented as 0xMMNNFFPPS: major minor fix patch status
+@@ -680,7 +679,7 @@ int tls_h_mod_init_f(void)
+                               " compiled \"%s\" (0x%08lx).\n"
+                               " Please make sure a compatible version is used"
+                               " (tls_force_run in kamailio.cfg will override this check)\n",
+-                              SSLeay_version(SSLEAY_VERSION), ssl_version,
++                              OpenSSL_version(OPENSSL_VERSION), ssl_version,
+                               OPENSSL_VERSION_TEXT, (long)OPENSSL_VERSION_NUMBER);
+               if (cfg_get(tls, tls_cfg, force_run))
+                       LM_WARN("tls_force_run turned on, ignoring "
+@@ -857,6 +856,7 @@ int tls_check_sockets(tls_domains_cfg_t* cfg)
+ void tls_h_mod_destroy_f(void)
+ {
+       LM_DBG("tls module final tls destroy\n");
++#if OPENSSL_VERSION_NUMBER < 0x010100000L || defined(LIBRESSL_VERSION_NUMBER)
+       if(tls_mod_preinitialized > 0)
+               ERR_free_strings();
+       /* TODO: free all the ctx'es */
+@@ -869,4 +869,5 @@ void tls_h_mod_destroy_f(void)
+       LM_DBG("executing openssl v1.1+ cleanup\n");
+       OPENSSL_cleanup();
+ #endif
++#endif
+ }
+--- a/src/modules/tls/tls_locking.c
++++ b/src/modules/tls/tls_locking.c
+@@ -140,6 +140,8 @@ unsigned long sr_ssl_id_f()
+ /* returns -1 on error, 0 on success */
+ int tls_init_locks()
+ {
++/* OpenSSL is thread-safe since 1.1.0 */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* init "static" tls locks */
+       n_static_locks=CRYPTO_num_locks();
+       if (n_static_locks<0){
+@@ -167,13 +169,10 @@ int tls_init_locks()
+               CRYPTO_set_locking_callback(locking_f);
+       }
+-/* OpenSSL is thread-safe since 1.1.0 */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       /* set "dynamic" locks callbacks */
+       CRYPTO_set_dynlock_create_callback(dyn_create_f);
+       CRYPTO_set_dynlock_lock_callback(dyn_lock_f);
+       CRYPTO_set_dynlock_destroy_callback(dyn_destroy_f);
+-#endif
+       /* starting with v1.0.0 openssl does not use anymore getpid(), but address
+        * of errno which can point to same virtual address in a multi-process
+@@ -186,6 +185,7 @@ int tls_init_locks()
+        *  (only atomic_inc), fallback to the default use-locks mode
+        * CRYPTO_set_add_lock_callback(atomic_add_f);
+        */
++#endif
+       return 0;
+ error:
index d0fa026ab80a672fb0af79c3d17f64f0be7d5221..ec2893246f98bcfce8ae600791b6d1ca650d2978 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=miax
 PKG_VERSION:=1.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/miax
diff --git a/net/miax/patches/010-usleep.patch b/net/miax/patches/010-usleep.patch
new file mode 100644 (file)
index 0000000..fe45b2b
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/modem.c
++++ b/modem.c
+@@ -76,10 +76,11 @@ int tty_modem(char* send, char *receive) {
+       
+       int l=0, in=0, out=0, timeout=10;
+       char tmp[4096];
++      struct timespec h = {0, 100 * 1000 * 1000};
+                
+       if (strlen(send)) {
+               while ((timeout--) > 0) {
+-                      usleep(100000);
++                      nanosleep(&h, NULL);
+                       ioctl(fd_modem,TIOCMGET,&out);
+                               if (out & TIOCM_CTS) {
+                               l=write(fd_modem,send,strlen(send));
+@@ -97,7 +98,7 @@ int tty_modem(char* send, char *receive) {
+                               strncat(receive,tmp,in); 
+                               if (strchr(receive,'\r')) { break; }
+                               }
+-                      else { usleep(100000); }
++                      else { nanosleep(&h, NULL); }
+                       }       
+               if (strlen(receive) > 0 && debug > 3) { fprintf(stderr, "%s\n", receive); }
+               
diff --git a/net/miax/patches/020-includes.patch b/net/miax/patches/020-includes.patch
new file mode 100644 (file)
index 0000000..4e667a2
--- /dev/null
@@ -0,0 +1,79 @@
+--- a/dtmf.c
++++ b/dtmf.c
+@@ -22,6 +22,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <math.h>
++#include <string.h>
+ #define RATE 8000
+ #define BLOCKLEN (RATE/100)
+--- a/iax/iax.c
++++ b/iax/iax.c
+@@ -344,7 +344,7 @@ static int iax_sched_event(struct iax_event *event, struct iax_frame *frame, int
+       sched = (struct iax_sched*)malloc(sizeof(struct iax_sched));
+       if (sched) {
+-              bzero(sched, sizeof(struct iax_sched));
++              memset(sched, 0, sizeof(struct iax_sched));
+               gettimeofday(&sched->when, NULL);
+               sched->when.tv_sec += (ms / 1000);
+               ms = ms % 1000;
+@@ -872,7 +872,7 @@ int iax_do_event(struct iax_session *session, struct iax_event *event)
+ #define MYSNPRINTF snprintf(requeststr + strlen(requeststr), sizeof(buf) - sizeof(struct ast_iax2_full_hdr) - strlen(requeststr), 
+-      bzero(buf, sizeof(buf));
++      memset(buf, 0, sizeof(buf));
+       /* Default some things in the frame */
+@@ -1523,7 +1523,7 @@ int iax_auth_reply(struct iax_session *session, char *password, char *challenge,
+               MD5Update(&md5, (const unsigned char *) challenge, strlen(challenge));
+               MD5Update(&md5, (const unsigned char *) password, strlen(password));
+               MD5Final((unsigned char *) reply, &md5);
+-              bzero(realreply, sizeof(realreply));
++              memset(realreply, 0, sizeof(realreply));
+               convert_reply(realreply, (unsigned char *) reply);
+               iax_ie_append_str(&ied, IAX_IE_MD5_RESULT, realreply);
+       } else {
+@@ -1546,7 +1546,7 @@ static int iax_regauth_reply(struct iax_session *session, char *password, char *
+               MD5Update(&md5, (const unsigned char *) challenge, strlen(challenge));
+               MD5Update(&md5, (const unsigned char *) password, strlen(password));
+               MD5Final((unsigned char *) reply, &md5);
+-              bzero(realreply, sizeof(realreply));
++              memset(realreply, 0, sizeof(realreply));
+               convert_reply(realreply, (unsigned char *) reply);
+               iax_ie_append_str(&ied, IAX_IE_MD5_RESULT, realreply);
+       } else {
+--- a/modem.c
++++ b/modem.c
+@@ -27,7 +27,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
+-#include <unistd.h>
++#include <time.h>
+ static int baudrate=B9600, fd_modem, m_status=0;
+ extern int debug;
+@@ -50,7 +50,7 @@ int tty_modem_init(char *dev) {
+       char buf[4096];
+       struct termios newtio;
+   
+-      bzero(&newtio, sizeof(newtio));
++      memset(&newtio, 0, sizeof(newtio));
+       newtio.c_cflag = CRTSCTS | CS8 | CLOCAL | CREAD | O_NDELAY;
+       if ( fd_modem = open(dev, O_RDWR | O_NOCTTY | O_NONBLOCK) ) {
+               cfsetispeed(&newtio,baudrate);
+--- a/oss.c
++++ b/oss.c
+@@ -1,5 +1,8 @@
+ #include "iaxclient_lib.h"
+ #include <fcntl.h>
++#include <string.h>
++#include <unistd.h>
++#include <sys/ioctl.h>
+ #include <sys/soundcard.h>
+ #define RTP 320
index 7a0ab63b2444f8c0c4f67b6b91f97b413b789fc1..fb30da6dafc742591f697d07cd3064992d393592 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=restund
 PKG_VERSION:=0.4.12
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.creytiv.com/pub
@@ -76,7 +76,7 @@ define Package/restund/install
                $(PKG_INSTALL_DIR)/usr/lib/restund/modules/turn.so \
                $(1)/usr/lib/restund/modules
        $(INSTALL_DIR) $(1)/etc
-       $(INSTALL_CONF) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/restund.conf $(1)/etc
        $(SED) \
                's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
                $(1)/etc/restund.conf
@@ -92,14 +92,6 @@ define Package/restund/conffiles
 /etc/restund.conf
 endef
 
-define Package/restund/postinst
-#!/bin/sh
-if [ -z "$${IPKG_INSTROOT}" ]; then
-  chown $(PKG_NAME):$(PKG_NAME) /etc/restund.conf
-fi
-exit 0
-endef
-
 #
 # 1. Name
 # 2. Title
index 1b84d79b177b26d34c2b593e435deaf891c257cf..6240e0b654005e2c64b90fbef6c8afa4f8c4ba09 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=rtpengine
-PKG_VERSION:=mr8.5.1.2
+PKG_VERSION:=mr8.5.2.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/sipwise/rtpengine/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=ffc85d736ee58c4f74374ebc336fd14e43031be7bbd6acff27447cc25aff9558
+PKG_HASH:=e2c0f94984753f321e1db0a97f81af18f3e9f7005a2ca67766ddef2b6c8d4427
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=LICENSE
diff --git a/net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch b/net/rtpengine/patches/05-support-kernels-greater-equal-5.9.9.patch
new file mode 100644 (file)
index 0000000..9ec666f
--- /dev/null
@@ -0,0 +1,38 @@
+commit 46a64889071cb844550786096c251b804a234016
+Author: Richard Fuchs <rfuchs@sipwise.com>
+Date:   Thu Nov 19 11:22:26 2020 -0500
+
+    support kernels >= 5.9.9
+    
+    closes #1111
+    
+    Change-Id: I81f22bfec93b38a108b671b10bd70bf86fb1270c
+
+diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c
+index c12edcd8..3c5e3a89 100644
+--- a/kernel-module/xt_RTPENGINE.c
++++ b/kernel-module/xt_RTPENGINE.c
+@@ -3351,7 +3351,10 @@ static int send_proxy_packet4(struct sk_buff *skb, struct re_address *src, struc
+               uh->check = CSUM_MANGLED_0;
+       skb->protocol = htons(ETH_P_IP);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,9) || \
++              (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,78) && LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
++      if (ip_route_me_harder(par->state->net, par->state->sk, skb, RTN_UNSPEC))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
+       if (ip_route_me_harder(par->state->net, skb, RTN_UNSPEC))
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+       if (ip_route_me_harder(par->net, skb, RTN_UNSPEC))
+@@ -3447,7 +3450,10 @@ static int send_proxy_packet6(struct sk_buff *skb, struct re_address *src, struc
+               uh->check = CSUM_MANGLED_0;
+       skb->protocol = htons(ETH_P_IPV6);
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,9) || \
++              (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,78) && LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0))
++      if (ip6_route_me_harder(par->state->net, par->state->sk, skb))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
+       if (ip6_route_me_harder(par->state->net, skb))
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+       if (ip6_route_me_harder(par->net, skb))
index 25c9fbdb49bc4b4a0446fa41bfedebc3c48f9f15..a2add58cbbd27a058ce0f2e94973d59c46c699da 100644 (file)
@@ -8,26 +8,27 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sipp
-PKG_VERSION:=3.6.0
+PKG_VERSION:=3.6.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/SIPp/sipp/releases/download/v$(PKG_VERSION)
-PKG_HASH:=e47e7b11fec0769cf76b30623a66390333bdb20323c66043ca535460858fa1bb
+PKG_HASH:=6a560e83aff982f331ddbcadfb3bd530c5896cd5b757dd6eb682133cc860ecb1
 
 PKG_LICENSE:=GPL-2.0+ BSD-3-Clause Zlib
 PKG_LICENSE_FILES:=LICENSE.txt
 
-PKG_FIXUP:=autoreconf
-
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_INSTALL:=1
 
 define Package/sipp
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Telephony
-  DEPENDS:=$(CXX_DEPENDS) +libncurses +libpthread
+  DEPENDS:=$(CXX_DEPENDS) +libncurses +libpcap +libpthread
   TITLE:=test tool / traffic generator for the SIP protocol
   URL:=http://sipp.sourceforge.net/
 endef
@@ -39,16 +40,19 @@ define Package/sipp/description
  methods.
 endef
 
-CONFIGURE_ARGS+= \
-       --enable-epoll \
-       --without-gsl \
-       --without-pcap \
-       --with-rtpstream \
-       --without-sctp
+# Otherwise OpenWrt's CPPFLAGS are ignored
+TARGET_CFLAGS += $(TARGET_CPPFLAGS)
+
+# Use "common" options, see build.sh (we don't have gsl though)
+CMAKE_OPTIONS += \
+       -DUSE_GSL= \
+       -DUSE_PCAP=1 \
+       -DUSE_SCTP= \
+       -DUSE_SSL=
 
 define Package/sipp/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/sipp $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sipp $(1)/usr/bin
 endef
 
 $(eval $(call BuildPackage,sipp))
diff --git a/net/sipp/patches/01-locale-include.patch b/net/sipp/patches/01-locale-include.patch
new file mode 100644 (file)
index 0000000..5562297
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/screen.cpp
++++ b/src/screen.cpp
+@@ -18,6 +18,7 @@
+  */
+ #include <curses.h>
++#include <locale.h>
+ #include "screen.hpp"
+ #include "sipp.hpp"
diff --git a/net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch b/net/sipp/patches/02-Fix_compatibility_with_older_C++_in_3.6.x_branch.patch
new file mode 100644 (file)
index 0000000..8826f21
--- /dev/null
@@ -0,0 +1,149 @@
+commit 626de652455a6c061d5a045fb226212c1f7eaeb5
+Author: Walter Doekes <walter+github@wjd.nu>
+Date:   Fri Sep 18 09:56:40 2020 +0200
+
+    Fix compatibility with older C++ in 3.6.x branch
+    
+    - no auto keyword (auto x = 1)
+    - no range based loop (for (*iter) : iterable)
+    - no std::to_string
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 111c137..f1f815a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,6 +32,7 @@ file(GLOB all_SRCS
+   "${PROJECT_SOURCE_DIR}/src/*.c"
+   )
++include(${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
+ include(${CMAKE_ROOT}/Modules/CheckStructHasMember.cmake)
+@@ -43,6 +44,10 @@ CHECK_STRUCT_HAS_MEMBER("struct udphdr" uh_sport "sys/types.h;netinet/udp.h"  HA
+ CHECK_SYMBOL_EXISTS(le16toh "endian.h" HAVE_DECL_LE16TOH)
+ CHECK_SYMBOL_EXISTS(le16toh "sys/endian.h" HAVE_DECL_LE16TOH_BSD)
++CHECK_CXX_SOURCE_COMPILES("
++#include <string>
++int main() { std::to_string(1).c_str(); return 0; }
++" HAVE_STD_TOSTRING)
+ configure_file("${PROJECT_SOURCE_DIR}/include/config.h.in"
+                "${PROJECT_BINARY_DIR}/config.h" )
+diff --git a/include/config.h.in b/include/config.h.in
+index 8c22504..cf39ea1 100644
+--- a/include/config.h.in
++++ b/include/config.h.in
+@@ -1,5 +1,5 @@
+ /*--------------------------------------------------------------------------
+- * This file is autogenerated from config.h.in 
++ * This file is autogenerated from include/config.h.in
+  * during the cmake configuration of your project. If you need to make changes
+  * edit the original file NOT THIS FILE.
+  * --------------------------------------------------------------------------*/
+@@ -18,5 +18,6 @@
+ #endif
+ #cmakedefine HAVE_IP_COMPAT_H @HAVE_IP_COMPAT_H@
+ #cmakedefine HAVE_UDP_UH_PREFIX @HAVE_UDP_UH_PREFIX@
++#cmakedefine HAVE_STD_TOSTRING @HAVE_STD_TOSTRING@
+ #endif
+diff --git a/include/screen.hpp b/include/screen.hpp
+index 13a9708..37c8ddf 100644
+--- a/include/screen.hpp
++++ b/include/screen.hpp
+@@ -43,9 +43,12 @@ void print_statistics(int last);
+ extern int key_backspace;
+ extern int key_dc;
++typedef std::vector<std::string> string_array;
++
+ class ScreenPrinter {
+ public:
+     ScreenPrinter():
++        M_last(false),
+         M_headless(!isatty(fileno(stdout)))
+     {};
+     void redraw();
+@@ -63,9 +66,9 @@ private:
+     void draw_repartition_detailed(CStat::T_dynamicalRepartition * tabRepartition,
+                                  int sizeOfTab);
+-    std::vector<std::string> lines;
++    string_array lines;
+-    bool M_last = false;
++    bool M_last;
+ };
+ extern ScreenPrinter* sp;
+diff --git a/include/sipp.hpp b/include/sipp.hpp
+index 878c99f..b04a619 100644
+--- a/include/sipp.hpp
++++ b/include/sipp.hpp
+@@ -83,6 +83,18 @@
+ #include "ratetask.hpp"
+ #include "watchdog.hpp"
++/* Backwards compatibility */
++#ifndef HAVE_STD_TOSTRING
++#include <sstream>
++namespace std {
++template <typename T> string to_string(T value) {
++    ostringstream os;
++    os << value;
++    return os.str();
++}
++}
++#endif
++
+ /*
+  * If this files is included in the Main, then extern definitions
+  * are removed, and the DEFVAL macro becomes '= value;'. Else
+diff --git a/src/screen.cpp b/src/screen.cpp
+index bbf9cd2..5521a44 100644
+--- a/src/screen.cpp
++++ b/src/screen.cpp
+@@ -83,15 +83,15 @@ void print_statistics(int last)
+ void ScreenPrinter::print_closing_stats() {
+     M_last = true;
+     get_lines();
+-    for (auto line : lines) {
+-        printf("%s\n", line.c_str());
++    for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++        printf("%s\n", (*it).c_str());
+     }
+     if (currentScreenToDisplay != DISPLAY_STAT_SCREEN) {
+         currentScreenToDisplay = DISPLAY_STAT_SCREEN;
+         get_lines();
+-        for (auto line : lines) {
+-            printf("%s\n", line.c_str());
++        for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++            printf("%s\n", (*it).c_str());
+         }
+     }
+@@ -100,8 +100,8 @@ void ScreenPrinter::print_closing_stats() {
+ void ScreenPrinter::print_to_file(FILE* f)
+ {
+     get_lines();
+-    for (auto line : lines) {
+-        fprintf(f, "%s\n", line.c_str());
++    for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++        fprintf(f, "%s\n", (*it).c_str());
+     }
+ }
+@@ -114,8 +114,8 @@ void ScreenPrinter::redraw()
+     if (!M_headless) {
+         get_lines();
+         erase();
+-        for (auto line : lines) {
+-            printw("%s\n", line.c_str());
++        for (string_array::iterator it = lines.begin(); it != lines.end(); ++it) {
++            printw("%s\n", (*it).c_str());
+         }
+         if (command_mode) {