Directory structure restructuralized.
authorJiri Slachta <slachta@cesnet.cz>
Fri, 21 Jun 2013 11:55:47 +0000 (13:55 +0200)
committerJiri Slachta <slachta@cesnet.cz>
Fri, 21 Jun 2013 11:55:47 +0000 (13:55 +0200)
Signed-off-by: Jiri Slachta <slachta@cesnet.cz>
198 files changed:
asterisk-1.8.x-chan-sccp-b/Makefile [deleted file]
asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf [deleted file]
asterisk-1.8.x/Makefile [deleted file]
asterisk-1.8.x/files/asterisk.default [deleted file]
asterisk-1.8.x/files/asterisk.init [deleted file]
asterisk-1.8.x/patches/100-build_tools-iconv.patch [deleted file]
asterisk-1.8.x/patches/200-addons-defaultenable.patch [deleted file]
asterisk-1.8.x/patches/500-nres.patch [deleted file]
asterisk-1.8.x/patches/600-CVE-2012-2186.patch [deleted file]
asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c [deleted file]
asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample [deleted file]
asterisk-11.x-chan-dongle/Makefile [deleted file]
asterisk-11.x-chan-sccp-b/Makefile [deleted file]
asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf [deleted file]
asterisk-11.x/Makefile [deleted file]
asterisk-11.x/files/asterisk.default [deleted file]
asterisk-11.x/files/asterisk.init [deleted file]
asterisk-11.x/patches/001-pjproject-change-configure-args.patch [deleted file]
asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch [deleted file]
asterisk-11.x/patches/020-asterisk-enable-default-modules.patch [deleted file]
baresip/Makefile [deleted file]
baresip/files/baresip.init [deleted file]
baresip/patches/100-videodev-compat.patch [deleted file]
freeswitch/Makefile [deleted file]
freeswitch/files/freeswitch.config [deleted file]
freeswitch/files/freeswitch.default [deleted file]
freeswitch/files/freeswitch.hotplug [deleted file]
freeswitch/files/freeswitch.init [deleted file]
freeswitch/patches/000-build-openwrt_rules.mk.patch [deleted file]
freeswitch/patches/001-build-modules_conf_in.patch [deleted file]
freeswitch/patches/002-configure_in.patch [deleted file]
freeswitch/patches/003-Makefile.am.patch [deleted file]
freeswitch/patches/100-libs-esl-Makefile.patch [deleted file]
freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch [deleted file]
freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch [deleted file]
freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch [deleted file]
freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch [deleted file]
freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch [deleted file]
freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch [deleted file]
freeswitch/patches/200-src-include-timerfd_wrap_h.patch [deleted file]
freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch [deleted file]
freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch [deleted file]
freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch [deleted file]
freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch [deleted file]
freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch [deleted file]
freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch [deleted file]
freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch [deleted file]
freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch [deleted file]
freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch [deleted file]
kamailio-1.5.x/Makefile [deleted file]
kamailio-1.5.x/files/kamailio.default [deleted file]
kamailio-1.5.x/files/kamailio.init [deleted file]
kamailio-1.5.x/patches/005-config_h.patch [deleted file]
kamailio-1.5.x/patches/007-modules_build.patch [deleted file]
kamailio-3.3.x/Makefile [deleted file]
kamailio-3.3.x/files/kamailio.default [deleted file]
kamailio-3.3.x/files/kamailio.init [deleted file]
kamailio-3.3.x/patches/100-cross_compile.patch [deleted file]
kamailio-4.0.x/Makefile [deleted file]
kamailio-4.0.x/files/kamailio.default [deleted file]
kamailio-4.0.x/files/kamailio.init [deleted file]
kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch [deleted file]
kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch [deleted file]
miax/Makefile [deleted file]
miax/patches/001-cross.patch [deleted file]
net/asterisk-1.8.x-chan-sccp-b/Makefile [new file with mode: 0644]
net/asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf [new file with mode: 0644]
net/asterisk-1.8.x/Makefile [new file with mode: 0644]
net/asterisk-1.8.x/files/asterisk.default [new file with mode: 0644]
net/asterisk-1.8.x/files/asterisk.init [new file with mode: 0644]
net/asterisk-1.8.x/patches/100-build_tools-iconv.patch [new file with mode: 0644]
net/asterisk-1.8.x/patches/200-addons-defaultenable.patch [new file with mode: 0644]
net/asterisk-1.8.x/patches/500-nres.patch [new file with mode: 0644]
net/asterisk-1.8.x/patches/600-CVE-2012-2186.patch [new file with mode: 0644]
net/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c [new file with mode: 0644]
net/asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample [new file with mode: 0644]
net/asterisk-11.x-chan-dongle/Makefile [new file with mode: 0644]
net/asterisk-11.x-chan-sccp-b/Makefile [new file with mode: 0644]
net/asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf [new file with mode: 0644]
net/asterisk-11.x/Makefile [new file with mode: 0644]
net/asterisk-11.x/files/asterisk.default [new file with mode: 0644]
net/asterisk-11.x/files/asterisk.init [new file with mode: 0644]
net/asterisk-11.x/patches/001-pjproject-change-configure-args.patch [new file with mode: 0644]
net/asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch [new file with mode: 0644]
net/asterisk-11.x/patches/020-asterisk-enable-default-modules.patch [new file with mode: 0644]
net/baresip/Makefile [new file with mode: 0644]
net/baresip/files/baresip.init [new file with mode: 0644]
net/baresip/patches/100-videodev-compat.patch [new file with mode: 0644]
net/freeswitch/Makefile [new file with mode: 0644]
net/freeswitch/files/freeswitch.config [new file with mode: 0644]
net/freeswitch/files/freeswitch.default [new file with mode: 0644]
net/freeswitch/files/freeswitch.hotplug [new file with mode: 0644]
net/freeswitch/files/freeswitch.init [new file with mode: 0644]
net/freeswitch/patches/000-build-openwrt_rules.mk.patch [new file with mode: 0644]
net/freeswitch/patches/001-build-modules_conf_in.patch [new file with mode: 0644]
net/freeswitch/patches/002-configure_in.patch [new file with mode: 0644]
net/freeswitch/patches/003-Makefile.am.patch [new file with mode: 0644]
net/freeswitch/patches/100-libs-esl-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch [new file with mode: 0644]
net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch [new file with mode: 0644]
net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch [new file with mode: 0644]
net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch [new file with mode: 0644]
net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch [new file with mode: 0644]
net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch [new file with mode: 0644]
net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch [new file with mode: 0644]
net/freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch [new file with mode: 0644]
net/freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch [new file with mode: 0644]
net/kamailio-1.5.x/Makefile [new file with mode: 0644]
net/kamailio-1.5.x/files/kamailio.default [new file with mode: 0644]
net/kamailio-1.5.x/files/kamailio.init [new file with mode: 0755]
net/kamailio-1.5.x/patches/005-config_h.patch [new file with mode: 0644]
net/kamailio-1.5.x/patches/007-modules_build.patch [new file with mode: 0644]
net/kamailio-3.3.x/Makefile [new file with mode: 0644]
net/kamailio-3.3.x/files/kamailio.default [new file with mode: 0644]
net/kamailio-3.3.x/files/kamailio.init [new file with mode: 0644]
net/kamailio-3.3.x/patches/100-cross_compile.patch [new file with mode: 0644]
net/kamailio-4.0.x/Makefile [new file with mode: 0644]
net/kamailio-4.0.x/files/kamailio.default [new file with mode: 0644]
net/kamailio-4.0.x/files/kamailio.init [new file with mode: 0644]
net/kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch [new file with mode: 0644]
net/kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch [new file with mode: 0644]
net/miax/Makefile [new file with mode: 0644]
net/miax/patches/001-cross.patch [new file with mode: 0644]
net/openser/Makefile [new file with mode: 0644]
net/openser/patches/001-openser_cfg.patch [new file with mode: 0644]
net/openser/patches/002-sc.patch [new file with mode: 0644]
net/openser/patches/003-makefile_defs.patch [new file with mode: 0644]
net/openser/patches/004-cfg_lex.patch [new file with mode: 0644]
net/openser/patches/005-config_h.patch [new file with mode: 0644]
net/openser/patches/006-sc_dbtext.patch [new file with mode: 0644]
net/openser/patches/007-modules_build.patch [new file with mode: 0644]
net/opensips/Makefile [new file with mode: 0644]
net/opensips/files/opensips.default [new file with mode: 0644]
net/opensips/files/opensips.init [new file with mode: 0755]
net/opensips/patches/001-no_rej.patch [new file with mode: 0644]
net/opensips/patches/005-config_h.patch [new file with mode: 0644]
net/opensips/patches/007-modules_build.patch [new file with mode: 0644]
net/pcapsipdump/Makefile [new file with mode: 0644]
net/pcapsipdump/patches/001-cross_compile.patch [new file with mode: 0644]
net/pcapsipdump/patches/002-elif_else_replacement.patch [new file with mode: 0644]
net/restund/Makefile [new file with mode: 0644]
net/restund/files/restund.init [new file with mode: 0644]
net/rtpproxy/Makefile [new file with mode: 0644]
net/sipp/Makefile [new file with mode: 0644]
net/siproxd/Makefile [new file with mode: 0644]
net/siproxd/files/siproxd.config [new file with mode: 0644]
net/siproxd/files/siproxd.init [new file with mode: 0644]
net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch [new file with mode: 0644]
net/sipsak/Makefile [new file with mode: 0644]
net/sipsak/patches/001-ssp.patch [new file with mode: 0644]
net/sipsak/patches/002-no_cares_ruli.patch [new file with mode: 0644]
net/smap/Makefile [new file with mode: 0644]
net/smap/patches/00-fix-broadcast.patch [new file with mode: 0644]
net/smap/patches/01-add-tecom-supported-header.patch [new file with mode: 0644]
net/smap/patches/02-segfault-and-toofast-bugfixes.patch [new file with mode: 0644]
net/yate/Makefile [new file with mode: 0644]
net/yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch [new file with mode: 0644]
openser/Makefile [deleted file]
openser/patches/001-openser_cfg.patch [deleted file]
openser/patches/002-sc.patch [deleted file]
openser/patches/003-makefile_defs.patch [deleted file]
openser/patches/004-cfg_lex.patch [deleted file]
openser/patches/005-config_h.patch [deleted file]
openser/patches/006-sc_dbtext.patch [deleted file]
openser/patches/007-modules_build.patch [deleted file]
opensips/Makefile [deleted file]
opensips/files/opensips.default [deleted file]
opensips/files/opensips.init [deleted file]
opensips/patches/001-no_rej.patch [deleted file]
opensips/patches/005-config_h.patch [deleted file]
opensips/patches/007-modules_build.patch [deleted file]
pcapsipdump/Makefile [deleted file]
pcapsipdump/patches/001-cross_compile.patch [deleted file]
pcapsipdump/patches/002-elif_else_replacement.patch [deleted file]
restund/Makefile [deleted file]
restund/files/restund.init [deleted file]
rtpproxy/Makefile [deleted file]
sipp/Makefile [deleted file]
siproxd/Makefile [deleted file]
siproxd/files/siproxd.config [deleted file]
siproxd/files/siproxd.init [deleted file]
siproxd/patches/010-fix-bogus-libltdl-dependency.patch [deleted file]
sipsak/Makefile [deleted file]
sipsak/patches/001-ssp.patch [deleted file]
sipsak/patches/002-no_cares_ruli.patch [deleted file]
smap/Makefile [deleted file]
smap/patches/00-fix-broadcast.patch [deleted file]
smap/patches/01-add-tecom-supported-header.patch [deleted file]
smap/patches/02-segfault-and-toofast-bugfixes.patch [deleted file]
yate/Makefile [deleted file]
yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch [deleted file]

diff --git a/asterisk-1.8.x-chan-sccp-b/Makefile b/asterisk-1.8.x-chan-sccp-b/Makefile
deleted file mode 100644 (file)
index 9b098e3..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (C) 2013 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:=asterisk18-chan-sccp-b
-PKG_REV=4631
-PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://svn.code.sf.net/p/chan-sccp-b/code/trunk
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_PROTO:=svn
-
-PKG_FIXUP:=autoreconf -fi
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/asterisk18-chan-sccp-b
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=SCCP channel provider for asterisk
-  URL:=http://chan-sccp-b.net.sourceforge.net/
-  DEPENDS:= asterisk18 +libltdl
-endef
-
-define Package/asterisk18-chan-sccp-b/description
- SCCP channel provider for asterisk. It delivers extended functionality for SCCP phones over chan_skinny delivered
- by asterisk by default.
-endef
-
-define Build/Configure
-       $(call Build/Configure/Default,--with-asterisk=$(STAGING_DIR)/usr/include/asterisk-1.8)
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               CFLAGS="$(CFLAGS) -I$(PKG_BUILD_DIR)/src -DLOW_MEMORY" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install
-endef
-
-define Package/asterisk18-chan-sccp-b/conffiles
-/etc/asterisk/sccp.conf
-endef
-
-define Package/asterisk18-chan-sccp-b/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(CP)  ./files/sccp.openwrt.conf $(1)/etc/asterisk/sccp.conf
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sccp.so $(1)/usr/lib/asterisk/modules/
-endef
-
-$(eval $(call BuildPackage,asterisk18-chan-sccp-b))
diff --git a/asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf b/asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf
deleted file mode 100644 (file)
index c59f4cd..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-[general]
-servername = Openwrt
-keepalive = 60
-debug = core
-context = default
-dateformat = D/M/Y
-bindaddr = 192.168.1.1
-port = 2000
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-firstdigittimeout = 16
-digittimeout = 6
-autoanswer_ring_time = 1
-musicclass=default
-language=en
-deny=0.0.0.0/0.0.0.0
-permit=192.168.1.0/255.255.255.0
-protocolversion=17
-
-hotline_enabled=yes
-hotline_context=default
-hotline_extension=111
-
-[SEP001122334455]
-type = device
-description = Phone Number One
-devicetype = 7940
-button = line, 111
-button = line, 113@01:shared
-button = speeddial,Phone 2 Line 1, 112, 112@hint
-
-[SEP00a1a2a3a4a5]
-type = device
-description = Phone Number Two
-devicetype = 7960
-button = line, 112
-button = line, 113@01:shared
-button = speeddial,Phone 1 Line 1, 111, 111@hint
-
-[111]
-id = 1000
-type = line
-pin = 1234
-label = Phone 1 Line 1
-description = Line 111
-mailbox = 10111
-cid_name = Phone 1 CID
-cid_num = 111
-accountcode=79111
-callgroup=1
-pickupgroup=1
-context = default
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
-[112]
-id = 1001
-type = line
-pin = 1234
-label = Phone 2 Line 1
-description = Line 112
-mailbox = 10112
-cid_name = Phone 2 CID
-cid_num = 112
-accountcode=79112
-callgroup=1
-pickupgroup=1
-context = default
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
-[113]
-id = 1002
-type = line
-pin = 1234
-label = SharedLine 1
-description = Line 113
-mailbox = 10113
-cid_name = Shared
-cid_num = 113
-accountcode=79113
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
diff --git a/asterisk-1.8.x/Makefile b/asterisk-1.8.x/Makefile
deleted file mode 100644 (file)
index a420b5a..0000000
+++ /dev/null
@@ -1,773 +0,0 @@
-#
-# Copyright (C) 2013 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:=asterisk18
-PKG_VERSION:=1.8.10.1
-PKG_RELEASE:=7
-
-PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://downloads.asterisk.org/pub/telephony/asterisk/releases/
-PKG_MD5SUM:=415738d347b9037cbe5f8bfbe66843de
-
-PKG_BUILD_DIR=$(BUILD_DIR)/asterisk-$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/ltqtapi.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/asterisk18/Default
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  URL:=http://www.asterisk.org/
-endef
-
-define Package/asterisk18/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/asterisk18
-$(call Package/asterisk18/Default)
-  TITLE:=Complete open source PBX, v1.8x
-  MENU:=1
-  DEPENDS:= +libopenssl +libncurses +libpopt +libpthread +zlib @!TARGET_avr32
-endef
-
-define Package/asterisk18/description
-$(call Package/asterisk18/Default/description)
-endef
-
-define Package/asterisk18-sounds
-$(call Package/asterisk18/Default)
-  TITLE:=Sound files
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-sounds/description
-$(call Package/asterisk18/Default/description)
- This package contains sound files for Asterisk.
-endef
-
-define Package/asterisk18-voicemail
-$(call Package/asterisk18/Default)
-  TITLE:=Voicemail support
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-voicemail/description
-$(call Package/asterisk18/Default/description)
- This package contains voicemail related modules for Asterisk.
-endef
-
-define Package/asterisk18-app-meetme
-$(call Package/asterisk18/Default)
-  TITLE:=conferencing support
-  DEPENDS:= asterisk18 +dahdi-tools-libtonezone +kmod-dahdi-linux
-endef
-
-define Package/asterisk18-app-meetme/description
-$(call Package/asterisk18/Default/description)
- This package provides the MeetMe application driver Conferencing support to
- Asterisk.
-endef
-
-define Package/asterisk18-chan-iax2
-$(call Package/asterisk18/Default)
-  TITLE:=IAX support
-  DEPENDS:= asterisk18 +asterisk18-res-crypto
-endef
-
-define Package/asterisk18-chan-iax2/description
-$(call Package/asterisk18/Default/description)
- This package provides IAX support to
- Asterisk.
-endef
-
-define Package/asterisk18-cdr
-$(call Package/asterisk18/Default)
-  TITLE:=CDR support
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-cdr/description
-$(call Package/asterisk18/Default/description)
- This package provides Call Detail Record support to
- Asterisk.
-endef
-
-define Package/asterisk18-pgsql
-$(call Package/asterisk18/Default)
-  TITLE:=PostgreSQL support
-  DEPENDS:= asterisk18 +libpq
-endef
-
-define Package/asterisk18-pgsql/description
-$(call Package/asterisk18/Default/description)
- This package provides PostgreSQL support to
- Asterisk.
-endef
-
-define Package/asterisk18-res-musiconhold
-$(call Package/asterisk18/Default)
-  TITLE:=MOH support
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-res-musiconhold/description
-$(call Package/asterisk18/Default/description)
- This package provides Music On Hold support to
- Asterisk.
-endef
-
-define Package/asterisk18-res-srtp
-$(call Package/asterisk18/Default)
-  TITLE:=SRTP support
-  DEPENDS:= asterisk18 libsrtp +asterisk18-res-crypto
-endef
-
-define Package/asterisk18-res-srtp/description
-$(call Package/asterisk18/Default/description)
- This package provides SRTP support to
- Asterisk.
-endef
-
-define Package/asterisk18-chan-gtalk
-$(call Package/asterisk18/Default)
-  TITLE:=GTalk support
-  DEPENDS:= asterisk18 +libiksemel
-endef
-
-define Package/asterisk18-chan-gtalk/description
-$(call Package/asterisk18/Default/description)
- This package provides the channel chan_gtalk and res_jabber for GTalk
- support to Asterisk.
-endef
-
-define Package/asterisk18-chan-mobile
-$(call Package/asterisk18/Default)
-  TITLE:=Mobile channel support
-  DEPENDS:= asterisk18 +bluez-libs
-endef
-
-define Package/asterisk18-chan-mobile/description
-$(call Package/asterisk18/Default/description)
- This package provides the channel chan_mobile support to Asterisk.
-endef
-
-define Package/asterisk18-res-timing-timerfd
-$(call Package/asterisk18/Default)
-  TITLE:= Timerfd Timing Interface
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-res-timing-pthread
-$(call Package/asterisk18/Default)
-  TITLE:= pthread Timing Interface
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-res-fax
-$(call Package/asterisk18/Default)
-  TITLE:=Generic FAX Resource for FAX technology resource modules
-  DEPENDS:= asterisk18 +asterisk18-res-timing-pthread
-endef
-
-define Package/asterisk18-res-fax-spandsp
-$(call Package/asterisk18/Default)
-  TITLE:=Spandsp T.38 and G.711 FAX Resource
-  DEPENDS:= asterisk18 +asterisk18-res-fax +libspandsp
-endef
-
-define Package/asterisk18-chan-mgcp
-$(call Package/asterisk18/Default)
-  TITLE:=MGCP channel support
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-chan-mgcp/description
-$(call Package/asterisk18/Default/description)
- This package provides the channel chan_mgcp support to Asterisk.
-endef
-
-define Package/asterisk18-chan-skinny
-$(call Package/asterisk18/Default)
-  TITLE:=Skinny channel support
-  DEPENDS:= asterisk18
-endef
-
-define Package/asterisk18-chan-skinny/description
-$(call Package/asterisk18/Default/description)
- This package provides the channel chan_skinny support to Asterisk.
-endef
-
-define Package/asterisk18-curl
-$(call Package/asterisk18/Default)
-  TITLE:=CURL support
-  DEPENDS:= asterisk18 +libcurl
-endef
-
-define Package/asterisk18-curl/description
-$(call Package/asterisk18/Default/description)
- This package provides CURL
- support to Asterisk.
-endef
-
-define Package/asterisk18-mysql
-$(call Package/asterisk18/Default)
-  TITLE:=MySQL support
-  DEPENDS:= asterisk18 +PACKAGE_asterisk18-mysql:libmysqlclient
-endef
-
-define Package/asterisk18-mysql/description
-$(call Package/asterisk18/Default/description)
- This package provides MySQL
- support to Asterisk.
-endef
-
-define Package/asterisk18-chan-lantiq
-$(call Package/asterisk18/Default)
-  TITLE:=Lantiq TAPI support
-  DEPENDS:= asterisk18 $(LTQ_TAPI_DEPENDS)
-  URL:=http://git.nanl.de/?p=asterisk_channel_lantiq.git
-  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
-endef
-
-define Package/asterisk18-chan-lantiq/description
-$(call Package/asterisk18/Default/description)
- This package provides the channel chan_lantiq support to Asterisk.
-endef
-
-define Package/asterisk18-odbc
-$(call Package/asterisk18/Default)
-  TITLE:=ODBC support
-  DEPENDS:= asterisk18 +libpthread +libc +unixodbc
-endef
-
-define Package/asterisk18-odbc/description
-$(call Package/asterisk18/Default/description)
- This package provides ODBC support for Asterisk.
-endef
-
-define Package/asterisk18-pbx-lua
-$(call Package/asterisk18/Default)
-  TITLE:=Lua support
-  DEPENDS:= asterisk18 +libpthread +libc +liblua
-endef
-
-define Package/asterisk18-pbx-lua/description
-$(call Package/asterisk18/Default/description)
- This package provides Lua resources for Asterisk.
-endef
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-app-meetme),)
-  CONFIGURE_ARGS+= \
-       --with-dahdi="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-dahdi
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-chan-gtalk),)
-  CONFIGURE_ARGS+= \
-       --with-gnutls="$(STAGING_DIR)/usr" \
-       --with-iksemel="$(STAGING_DIR)/usr"
-  SITE_VARS+= \
-       ac_cv_lib_iksemel_iks_start_sasl=yes \
-       ac_cv_lib_gnutls_gnutls_bye=yes
-else
-  CONFIGURE_ARGS+= \
-       --without-gnutls \
-       --without-iksemel
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-curl),)
-  CONFIGURE_ARGS+= \
-       --with-curl="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-curl
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-pgsql),)
-  CONFIGURE_ARGS+= \
-       --with-postgres="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-postgres
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mysql),)
-  CONFIGURE_ARGS+= \
-       --with-mysqlclient="$(STAGING_DIR)/usr/bin"
-else
-  CONFIGURE_ARGS+= \
-       --without-mysqlclient
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-res-fax-spandsp),)
-  CONFIGURE_ARGS+= \
-    --with-spandsp="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-    --without-spandsp
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-chan-mobile),)
-  CONFIGURE_ARGS+= \
-       --with-bluetooth="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-bluetooth
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-res-srtp),)
-  CONFIGURE_ARGS+= \
-       --with-srtp="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-srtp
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-pbx-lua),)
-  CONFIGURE_ARGS+= \
-       --with-lua="$(STAGING_DIR)/usr"
-  TARGET_LDFLAGS+=-ldl -lcrypt
-else
-  CONFIGURE_ARGS+= \
-       --without-pbx-lua
-endif
-
-CONFIGURE_ARGS+= \
-       --without-curses \
-       --with-gsm=internal \
-       --without-cap \
-       --without-gtk \
-       --without-gtk2 \
-       --without-isdnnet \
-       --without-kde \
-       --without-misdn \
-       --without-nbs \
-       --with-ncurses="$(STAGING_DIR)/usr" \
-       --without-netsnmp \
-       --without-newt \
-       --without-ogg \
-       --without-osptk \
-       --with-popt="$(STAGING_DIR)/usr" \
-       --without-pri \
-       --without-qt \
-       --without-radius \
-       --without-sdl \
-       --without-suppserv \
-       --without-tds \
-       --without-termcap \
-       --without-tinfo \
-       --without-vorbis \
-       --without-vpb \
-       --with-z="$(STAGING_DIR)/usr" \
-       --with-sounds-cache="$(DL_DIR)" \
-       --disable-xmldoc
-
-EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
-EXTRA_LDFLAGS+= $(TARGET_LDFLAGS)
-
-define Build/Prepare
-       $(call Build/Prepare/Default)
-ifneq ($(CONFIG_TARGET_lantiq),)
-       $(CP) ./src-lantiq/* $(PKG_BUILD_DIR)/
-endif
-endef
-
-define Build/Configure
-       $(call Build/Configure/Default,,$(SITE_VARS))
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               include/asterisk/version.h \
-               include/asterisk/buildopts.h defaults.h \
-               makeopts.embed_rules
-       ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY" \
-       ASTLDFLAGS="$(EXTRA_LDFLAGS)" \
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               ASTVARLIBDIR="/usr/lib/asterisk" \
-               ASTDATADIR="/usr/lib/asterisk" \
-               ASTKEYDIR="/usr/lib/asterisk" \
-               ASTDBDIR="/usr/lib/asterisk" \
-               NOISY_BUILD="1" \
-               DEBUG="" \
-               OPTIMIZE="" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install samples
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/asterisk-1.8/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-1.8/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-1.8/include/
-endef
-
-define Package/asterisk18/conffiles
-/etc/asterisk/asterisk.conf
-/etc/asterisk/modules.conf
-/etc/asterisk/extensions.conf
-/etc/asterisk/sip.conf
-/etc/asterisk/sip_notify.conf
-/etc/asterisk/features.conf
-/etc/asterisk/indications.conf
-/etc/asterisk/logger.conf
-/etc/asterisk/manager.conf
-/etc/asterisk/rtp.conf
-/etc/default/asterisk
-/etc/init.d/asterisk
-endef
-
-define Package/asterisk18/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       for f in asterisk extensions features \
-               indications logger manager modules \
-               sip sip_notify rtp; do \
-               $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f.conf $(1)/etc/asterisk/ ; \
-       done
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       for f in app_dial app_echo app_playback app_macro \
-               chan_sip res_rtp_asterisk res_rtp_multicast \
-               codec_ulaw codec_gsm \
-               format_gsm format_pcm format_wav format_wav_gsm \
-               pbx_config \
-               func_strings func_timeout func_callerid func_logic; do \
-               $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \
-       done
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/asterisk $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA)  ./files/asterisk.default $(1)/etc/default/asterisk
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN)  ./files/asterisk.init $(1)/etc/init.d/asterisk
-endef
-
-define Package/asterisk18-sounds/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/* $(1)/usr/lib/asterisk/sounds/
-       rm -f $(1)/usr/lib/asterisk/sounds/vm-*
-       rm -f $(1)/usr/lib/asterisk/sounds/conf-*
-endef
-
-
-define Package/asterisk18-voicemail/conffiles
-/etc/asterisk/voicemail.conf
-endef
-
-define Package/asterisk18-voicemail/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/voicemail.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*voicemail.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_adsi.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_smdi.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/vm-*.gsm $(1)/usr/lib/asterisk/sounds/
-endef
-
-define Package/asterisk18-app-meetme/conffiles
-/etc/asterisk/meetme.conf
-endef
-
-define Package/asterisk18-app-meetme/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/meetme.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_meetme.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_dahdi.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/conf-*.gsm $(1)/usr/lib/asterisk/sounds/
-endef
-
-define Package/asterisk18-chan-iax2/conffiles
-/etc/asterisk/iax.conf
-/etc/asterisk/iaxprov.conf
-endef
-
-define Package/asterisk18-cdr/conffiles
-/etc/asterisk/cdr.conf
-/etc/asterisk/cdr_custom.conf
-/etc/asterisk/cdr_manager.conf
-/etc/asterisk/cdr_syslog.conf
-endef
-
-define Package/asterisk18-res-musiconhold/conffiles
-/etc/asterisk/musiconhold.conf
-endef
-
-define Package/asterisk18-chan-iax2/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iax.conf $(1)/etc/asterisk/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iaxprov.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_iax2.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-cdr/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/{cdr,cdr_custom,cdr_manager,cdr_syslog}.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{app_,app_fork,func_}cdr.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_csv.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-pgsql/conffiles
-/etc/asterisk/cel_pgsql.conf
-/etc/asterisk/cdr_pgsql.conf
-/etc/asterisk/res_pgsql.conf
-endef
-
-define Package/asterisk18-pgsql/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/{cel,cdr,res}_pgsql.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{cel,cdr,res_config}_pgsql.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-musiconhold/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_musiconhold.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-chan-gtalk/conffiles
-/etc/asterisk/gtalk.conf
-/etc/asterisk/jabber.conf
-endef
-
-define Package/asterisk18-chan-gtalk/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/gtalk.conf $(1)/etc/asterisk/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/jabber.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_gtalk.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_jabber.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-chan-mobile/conffiles
-/etc/asterisk/chan_mobile.conf
-endef
-
-define Package/asterisk18-chan-mobile/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/chan_mobile.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mobile.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-timing-timerfd/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_timerfd.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-timing-pthread/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_pthread.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-fax/conffiles
-/etc/asterisk/res_fax.conf
-endef
-
-define Package/asterisk18-res-fax/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_fax.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-fax-spandsp/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax_spandsp.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-chan-mgcp/conffiles
-/etc/asterisk/mgcp.conf
-endef
-
-define Package/asterisk18-chan-mgcp/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/mgcp.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mgcp.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-chan-skinny/conffiles
-/etc/asterisk/skinny.conf
-endef
-
-define Package/asterisk18-chan-skinny/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/skinny.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_skinny.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-curl/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_curl.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_curl.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-mysql/conffiles
-/etc/asterisk/app_mysql.conf
-/etc/asterisk/res_config_mysql.conf
-/etc/asterisk/cdr_mysql.conf
-endef
-
-define Package/asterisk18-mysql/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/app_mysql.conf $(1)/etc/asterisk/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_config_mysql.conf $(1)/etc/asterisk/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/cdr_mysql.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_mysql.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_mysql.so $(1)/usr/lib/asterisk/modules/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_config_mysql.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-chan-lantiq/conffiles
-/etc/asterisk/lantiq.conf
-endef
-
-define Package/asterisk18-chan-lantiq/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/lantiq.conf $(1)/etc/asterisk/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_lantiq.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-res-srtp/install
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_srtp.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-odbc/conffiles
-/etc/asterisk/cdr_adaptive_odbc.conf
-/etc/asterisk/cdr_odbc.conf
-/etc/asterisk/cel_odbc.conf
-/etc/asterisk/func_odbc.conf
-/etc/asterisk/res_odbc.conf
-endef
-
-define Package/asterisk18-odbc/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/{cdr_adaptive,cdr,cel,func,res}_odbc.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{cdr_adaptive,cdr,cel,func,res_config,res}_odbc.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Package/asterisk18-pbx-lua/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/extensions.lua $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/pbx_lua.so $(1)/usr/lib/asterisk/modules/
-endef
-
-define Buildasterisk18ModuleTemplate
-
-  define Package/asterisk18-$(subst _,-,$(1))
-  $$(call Package/asterisk18/Default)
-    TITLE:=$(2) support
-    DEPENDS:= asterisk18 $(4)
-  endef
-
-  define Package/asterisk18-$(subst _,-,$(1))/description
-  $$(call Package/asterisk18/Default/description)
-    This package provides support $(3) in Asterisk.
-  endef
-
-  define Package/asterisk18-$(subst _,-,$(1))/install
-       $(INSTALL_DIR) $$(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$(1).so $$(1)/usr/lib/asterisk/modules/
-  endef
-
-  $$(eval $$(call BuildPackage,asterisk18-$(subst _,-,$(1))))
-endef
-
-$(eval $(call BuildPackage,asterisk18))
-$(eval $(call BuildPackage,asterisk18-voicemail))
-$(eval $(call BuildPackage,asterisk18-sounds))
-#$(eval $(call BuildPackage,asterisk18-app-meetme))
-$(eval $(call BuildPackage,asterisk18-chan-iax2))
-$(eval $(call BuildPackage,asterisk18-cdr))
-$(eval $(call BuildPackage,asterisk18-res-musiconhold))
-$(eval $(call BuildPackage,asterisk18-chan-gtalk))
-$(eval $(call BuildPackage,asterisk18-chan-mobile))
-$(eval $(call BuildPackage,asterisk18-odbc))
-$(eval $(call BuildPackage,asterisk18-pgsql))
-$(eval $(call BuildPackage,asterisk18-pbx-lua))
-$(eval $(call BuildPackage,asterisk18-res-fax))
-$(eval $(call BuildPackage,asterisk18-res-fax-spandsp))
-$(eval $(call BuildPackage,asterisk18-res-timing-timerfd))
-$(eval $(call BuildPackage,asterisk18-res-timing-pthread))
-$(eval $(call BuildPackage,asterisk18-chan-mgcp))
-$(eval $(call BuildPackage,asterisk18-chan-skinny))
-$(eval $(call BuildPackage,asterisk18-curl))
-$(eval $(call BuildPackage,asterisk18-mysql))
-$(eval $(call BuildPackage,asterisk18-chan-lantiq))
-$(eval $(call BuildPackage,asterisk18-res-srtp))
-$(eval $(call Buildasterisk18ModuleTemplate,app_authenticate,Authenticate,support for executing arbitrary authenticate commands))
-$(eval $(call Buildasterisk18ModuleTemplate,app_chanisavail,Channel availability check,support for checking if a channel is available))
-$(eval $(call Buildasterisk18ModuleTemplate,app_chanspy,Channel listen in,support for listening in on any channel))
-$(eval $(call Buildasterisk18ModuleTemplate,app_directed_pickup,Directed call pickup,support for directed call pickup))
-$(eval $(call Buildasterisk18ModuleTemplate,app_exec,Exec application,support for application execution))
-$(eval $(call Buildasterisk18ModuleTemplate,app_minivm,Minimal voicemail system,a voicemail system in small building blocks working together based on the Comedian Mail voicemail system))
-$(eval $(call Buildasterisk18ModuleTemplate,app_readexten,Extension to variable,a trivial application to read an extension into a variable))
-$(eval $(call Buildasterisk18ModuleTemplate,app_read,Variable read,a trivial application to read a variable))
-$(eval $(call Buildasterisk18ModuleTemplate,app_sayunixtime,Say Unix time,an application to say Unix time))
-$(eval $(call Buildasterisk18ModuleTemplate,app_sms,SMS,SMS support (ETSI ES 201 912 protocol 1)))
-$(eval $(call Buildasterisk18ModuleTemplate,app_stack,Stack applications, stack applications Gosub Return etc., +asterisk18-res-agi))
-$(eval $(call Buildasterisk18ModuleTemplate,app_system,System exec,support for executing system commands))
-$(eval $(call Buildasterisk18ModuleTemplate,app_talkdetect,File playback with audio detect,for file playback with audio detect))
-$(eval $(call Buildasterisk18ModuleTemplate,app_waituntil,Sleep,support sleeping until the given epoch))
-$(eval $(call Buildasterisk18ModuleTemplate,app_while,While loop,a while loop implementation))
-$(eval $(call Buildasterisk18ModuleTemplate,chan_agent,Agents proxy channel, an implementation of agents proxy channel))
-$(eval $(call Buildasterisk18ModuleTemplate,chan_local,Local proxy channel, an implementation of local proxy channel))
-$(eval $(call Buildasterisk18ModuleTemplate,codec_alaw,Signed linear to alaw translation,translation between signed linear and alaw codecs))
-$(eval $(call Buildasterisk18ModuleTemplate,codec_a_mu,Alaw to ulaw translation,translation between alaw and ulaw codecs))
-$(eval $(call Buildasterisk18ModuleTemplate,codec_g722,G.722,a high bit rate 48/56/64Kbps ITU standard codec))
-$(eval $(call Buildasterisk18ModuleTemplate,codec_g726,Signed linear to G.726 translation,translation between signed linear and ITU G.726-32kbps codecs))
-$(eval $(call Buildasterisk18ModuleTemplate,format_g726,G.726,support for headerless G.726 16/24/32/40kbps data format))
-$(eval $(call Buildasterisk18ModuleTemplate,format_g729,G.729,support for raw headerless G729 data))
-$(eval $(call Buildasterisk18ModuleTemplate,format_sln,Raw slinear format,support for raw slinear format))
-$(eval $(call Buildasterisk18ModuleTemplate,format_sln16,Raw slinear 16 format,support for Raw slinear 16 format))
-$(eval $(call Buildasterisk18ModuleTemplate,func_db,Database interaction,functions for interaction with the database))
-$(eval $(call Buildasterisk18ModuleTemplate,func_devstate,Blinky lights control,functions for manually controlled blinky lights))
-$(eval $(call Buildasterisk18ModuleTemplate,func_vmcount,vmcount dialplan,a vmcount dialplan function))
-$(eval $(call Buildasterisk18ModuleTemplate,func_extstate,Hinted extension state,retrieving the state of a hinted extension for dialplan control))
-$(eval $(call Buildasterisk18ModuleTemplate,func_global,Global variable,global variable dialplan functions))
-$(eval $(call Buildasterisk18ModuleTemplate,func_shell,Shell,support for shell execution))
-$(eval $(call Buildasterisk18ModuleTemplate,pbx_ael,Asterisk Extension Logic,support for symbolic Asterisk Extension Logic))
-$(eval $(call Buildasterisk18ModuleTemplate,res_ael_share,Shareable AEL code,support for shareable AEL code mainly between internal and external modules))
-$(eval $(call Buildasterisk18ModuleTemplate,pbx_spool,Call Spool,outgoing call spool support))
-$(eval $(call Buildasterisk18ModuleTemplate,res_agi,Asterisk Gateway Interface,support for the Asterisk Gateway Interface extension))
-$(eval $(call Buildasterisk18ModuleTemplate,res_crypto,Provide Crypto,Cryptographic Signature capability))
-$(eval $(call Buildasterisk18ModuleTemplate,app_alarmreceiver,Alarm receiver,Central Station Alarm receiver for Ademco Contact ID))
-$(eval $(call Buildasterisk18ModuleTemplate,app_setcallerid,Set callerid,support for setting callerid))
-$(eval $(call Buildasterisk18ModuleTemplate,app_verbose,Verbose logging,Verbose logging application))
-$(eval $(call Buildasterisk18ModuleTemplate,func_channel,Channel info,Channel info dialplan function))
-$(eval $(call Buildasterisk18ModuleTemplate,func_blacklist,Blacklist on callerid,looking up the callerid number and see if it is blacklisted))
-$(eval $(call Buildasterisk18ModuleTemplate,app_originate,Originate a call,originating an outbound call and connecting it to a specified extension or application))
-$(eval $(call Buildasterisk18ModuleTemplate,func_uri,URI encoding and decoding,Encodes and decodes URI-safe strings))
-$(eval $(call Buildasterisk18ModuleTemplate,app_disa,Direct Inward System Access,Direct Inward System Access))
-$(eval $(call Buildasterisk18ModuleTemplate,app_senddtmf,Send DTMF digits,Sends arbitrary DTMF digits))
-$(eval $(call Buildasterisk18ModuleTemplate,func_cut,CUT function,CUT function))
-$(eval $(call Buildasterisk18ModuleTemplate,res_clioriginate,Calls via CLI,Originate calls via the CLI))
-$(eval $(call Buildasterisk18ModuleTemplate,app_mixmonitor,Record a call and mix the audio,record a call and mix the audio during the recording))
-$(eval $(call Buildasterisk18ModuleTemplate,app_playtones,Playtones application,play a tone list))
-$(eval $(call Buildasterisk18ModuleTemplate,app_record,Record sound file,to record a sound file))
diff --git a/asterisk-1.8.x/files/asterisk.default b/asterisk-1.8.x/files/asterisk.default
deleted file mode 100644 (file)
index 9d046c4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-## startup options for /etc/init.d/asterisk
-
-ENABLE_ASTERISK="yes"
-OPTIONS=""
diff --git a/asterisk-1.8.x/files/asterisk.init b/asterisk-1.8.x/files/asterisk.init
deleted file mode 100644 (file)
index 53bf4af..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2008 OpenWrt.org
-START=50 
-
-DEST=
-DEFAULT=$DEST/etc/default/asterisk
-OPTIONS=""
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       [ -d $DEST/var/run/asterisk ] || mkdir -p $DEST/var/run/asterisk
-       [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
-       [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
-        [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
-        [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
-       $DEST/usr/sbin/asterisk $OPTIONS
-}
-
-stop() {
-       [ -f $DEST/var/run/asterisk/asterisk.pid ] && kill $(cat $DEST/var/run/asterisk/asterisk.pid) >/dev/null 2>&1
-}
diff --git a/asterisk-1.8.x/patches/100-build_tools-iconv.patch b/asterisk-1.8.x/patches/100-build_tools-iconv.patch
deleted file mode 100644 (file)
index d3cad82..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/build_tools/menuselect-deps.in
-+++ b/build_tools/menuselect-deps.in
-@@ -16,7 +16,7 @@ GTK2=@PBX_GTK2@
- H323=@PBX_H323@
- HOARD=@PBX_HOARD@
- ICAL=@PBX_ICAL@
--ICONV=@PBX_ICONV@
-+ICONV=0
- IKSEMEL=@PBX_IKSEMEL@
- IMAP_TK=@PBX_IMAP_TK@
- IODBC=@PBX_IODBC@
diff --git a/asterisk-1.8.x/patches/200-addons-defaultenable.patch b/asterisk-1.8.x/patches/200-addons-defaultenable.patch
deleted file mode 100644 (file)
index 65b9e79..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---- a/addons/app_mysql.c
-+++ b/addons/app_mysql.c
-@@ -25,7 +25,7 @@
- /*** MODULEINFO
-       <depend>mysqlclient</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>deprecated</support_level>
-       <replacement>func_odbc</replacement>
-  ***/
---- a/addons/app_saycountpl.c
-+++ b/addons/app_saycountpl.c
-@@ -21,7 +21,7 @@
-  */
- /*** MODULEINFO
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>deprecated</support_level>
-       <replacement>say.conf</replacement>
-  ***/
---- a/addons/cdr_mysql.c
-+++ b/addons/cdr_mysql.c
-@@ -35,7 +35,7 @@
- /*** MODULEINFO
-       <depend>mysqlclient</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>deprecated</support_level>
-       <replacement>cdr_adaptive_odbc</replacement>
-  ***/
---- a/addons/chan_mobile.c
-+++ b/addons/chan_mobile.c
-@@ -27,7 +27,7 @@
- /*** MODULEINFO
-       <depend>bluetooth</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
---- a/addons/chan_ooh323.c
-+++ b/addons/chan_ooh323.c
-@@ -18,7 +18,7 @@
- /*** MODULEINFO
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
---- a/addons/res_config_mysql.c
-+++ b/addons/res_config_mysql.c
-@@ -24,7 +24,7 @@
- /*** MODULEINFO
-       <depend>mysqlclient</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
---- a/res/res_pktccops.c
-+++ b/res/res_pktccops.c
-@@ -31,7 +31,7 @@
-  */
- /*** MODULEINFO
--        <defaultenabled>no</defaultenabled>
-+        <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
diff --git a/asterisk-1.8.x/patches/500-nres.patch b/asterisk-1.8.x/patches/500-nres.patch
deleted file mode 100644 (file)
index 1d030b5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -16784,7 +16784,7 @@ if ac_fn_c_try_link "$LINENO"; then :
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
--$as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h
-+$as_echo "//#define HAVE_RES_NINIT 1" >>confdefs.h
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_ndestroy" >&5
- $as_echo_n "checking for library containing res_9_ndestroy... " >&6; }
diff --git a/asterisk-1.8.x/patches/600-CVE-2012-2186.patch b/asterisk-1.8.x/patches/600-CVE-2012-2186.patch
deleted file mode 100644 (file)
index dbe790b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/main/manager.c
-+++ b/main/manager.c
-@@ -4020,6 +4020,7 @@ static int action_originate(struct manse
-                                                                    TryExec(System(rm -rf /)) */
-                               strcasestr(app, "agi") ||         /* AGI(/bin/rm,-rf /)
-                                                                    EAGI(/bin/rm,-rf /)       */
-+                              strcasestr(app, "externalivr") || /* ExternalIVR(rm -rf)       */
-                               strstr(appdata, "SHELL") ||       /* NoOp(${SHELL(rm -rf /)})  */
-                               strstr(appdata, "EVAL")           /* NoOp(${EVAL(${some_var_containing_SHELL})}) */
-                               )) {
diff --git a/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c b/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c
deleted file mode 100644 (file)
index 6e2b502..0000000
+++ /dev/null
@@ -1,1679 +0,0 @@
-/*
- * Asterisk -- An open source telephony toolkit.
- *
- * Copyright (C) 2012, Luka Perkov
- * Copyright (C) 2012, John Crispin
- * Copyright (C) 2012, Andrej VlaÅ¡ić
- * Copyright (C) 2012, Kaspar Schleiser for T-Labs
- *                     (Deutsche Telekom Innovation Laboratories)
- * Copyright (C) 2012, Mirko Vogt for T-Labs
- *                     (Deutsche Telekom Innovation Laboratories)
- *
- * Luka Perkov <openwrt@lukaperkov.net>
- * John Crispin <blogic@openwrt.org>
- * Andrej VlaÅ¡ić <andrej.vlasic0@gmail.com>
- * Kaspar Schleiser <kaspar@schleiser.de>
- * Mirko Vogt <mirko@openwrt.org>
- *
- * See http://www.asterisk.org for more information about
- * the Asterisk project. Please do not directly contact
- * any of the maintainers of this project for assistance;
- * the project provides a web site, mailing lists and IRC
- * channels for your use.
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License Version 2. See the LICENSE file
- * at the top of the source tree.
- */
-
-/*! \file
- *
- * \brief Asterisk channel line driver for Lantiq based TAPI boards
- *
- * \author Luka Perkov <openwrt@lukaperkov.net>
- * \author John Crispin <blogic@openwrt.org>
- * \author Andrej VlaÅ¡ić <andrej.vlasic0@gmail.com>
- * \author Kaspar Schleiser <kaspar@schleiser.de>
- * \author Mirko Vogt <mirko@openwrt.org>
- * 
- * \ingroup channel_drivers
- */
-
-#include "asterisk.h"
-
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: xxx $")
-
-#include <ctype.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <arpa/inet.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <signal.h>
-#ifdef HAVE_LINUX_COMPILER_H
-#include <linux/compiler.h>
-#endif
-#include <linux/telephony.h>
-
-#include <asterisk/lock.h>
-#include <asterisk/channel.h>
-#include <asterisk/config.h>
-#include <asterisk/module.h>
-#include <asterisk/pbx.h>
-#include <asterisk/utils.h>
-#include <asterisk/callerid.h>
-#include <asterisk/causes.h>
-#include <asterisk/stringfields.h>
-#include <asterisk/musiconhold.h>
-#include <asterisk/sched.h>
-
-/* Lantiq TAPI includes */
-#include <drv_tapi/drv_tapi_io.h>
-#include <drv_vmmc/vmmc_io.h>
-
-#define RTP_HEADER_LEN 12
-
-#define TAPI_AUDIO_PORT_NUM_MAX                 2
-#define TAPI_TONE_LOCALE_NONE                   0 
-#define TAPI_TONE_LOCALE_RINGING_CODE           26
-#define TAPI_TONE_LOCALE_BUSY_CODE              27
-#define TAPI_TONE_LOCALE_CONGESTION_CODE        27
-#define TAPI_TONE_LOCALE_DIAL_CODE              25
-#define TAPI_TONE_LOCALE_WAITING_CODE           37
-
-#define LANTIQ_CONTEXT_PREFIX "lantiq"
-
-static const char config[] = "lantiq.conf";
-
-static char firmware_filename[PATH_MAX] = "/lib/firmware/ifx_firmware.bin";
-static char bbd_filename[PATH_MAX] = "/lib/firmware/ifx_bbd_fxs.bin";
-static char base_path[PATH_MAX] = "/dev/vmmc";
-static int per_channel_context = 0;
-
-/*
- * The private structures of the Phone Jack channels are linked for selecting
- * outgoing channels.
- */
-enum channel_state {
-       ONHOOK,
-       OFFHOOK,
-       DIALING,
-       INCALL,
-       CALL_ENDED,
-       RINGING,
-       UNKNOWN
-};
-
-static struct lantiq_pvt {
-       struct ast_channel *owner;         /* Channel we belong to, possibly NULL   */
-       int port_id;                       /* Port number of this object, 0..n      */
-       int channel_state;
-       char context[AST_MAX_CONTEXT];     /* this port's dialplan context          */
-       char ext[AST_MAX_EXTENSION+1];     /* the extension this port is connecting */
-       int dial_timer;                    /* timer handle for autodial timeout     */
-       char dtmfbuf[AST_MAX_EXTENSION+1]; /* buffer holding dialed digits          */
-       int dtmfbuf_len;                   /* lenght of dtmfbuf                     */
-       int rtp_timestamp;                 /* timestamp for RTP packets             */
-       uint16_t rtp_seqno;                /* Sequence nr for RTP packets           */
-       uint32_t call_setup_start;         /* Start of dialling in ms               */
-       uint32_t call_setup_delay;         /* time between ^ and 1st ring in ms     */
-       uint16_t jb_size;                  /* Jitter buffer size                    */
-       uint32_t jb_underflow;             /* Jitter buffer injected samples        */
-       uint32_t jb_overflow;              /* Jitter buffer dropped samples         */
-       uint16_t jb_delay;                 /* Jitter buffer: playout delay          */
-       uint16_t jb_invalid;               /* Jitter buffer: Nr. of invalid packets */
-
-} *iflist = NULL;
-
-static struct lantiq_ctx {
-               int dev_fd;
-               int channels;
-               int ch_fd[TAPI_AUDIO_PORT_NUM_MAX];
-} dev_ctx;
-
-static int ast_digit_begin(struct ast_channel *ast, char digit);
-static int ast_digit_end(struct ast_channel *ast, char digit, unsigned int duration);
-static int ast_lantiq_call(struct ast_channel *ast, char *dest, int timeout);
-static int ast_lantiq_hangup(struct ast_channel *ast);
-static int ast_lantiq_answer(struct ast_channel *ast);
-static struct ast_frame *ast_lantiq_read(struct ast_channel *ast);
-static int ast_lantiq_write(struct ast_channel *ast, struct ast_frame *frame);
-static struct ast_frame *ast_lantiq_exception(struct ast_channel *ast);
-static int ast_lantiq_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen);
-static int ast_lantiq_fixup(struct ast_channel *old, struct ast_channel *new);
-static struct ast_channel *ast_lantiq_requester(const char *type, format_t format, const struct ast_channel *requestor, void *data, int *cause);
-static int acf_channel_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen);
-static void lantiq_jb_get_stats(int c);
-
-static const struct ast_channel_tech lantiq_tech = {
-       .type = "TAPI",
-       .description = "Lantiq TAPI Telephony API Driver",
-       .capabilities = AST_FORMAT_G723_1 | AST_FORMAT_SLINEAR | AST_FORMAT_ULAW | AST_FORMAT_G729A,
-       .send_digit_begin = ast_digit_begin,
-       .send_digit_end = ast_digit_end,
-       .call = ast_lantiq_call,
-       .hangup = ast_lantiq_hangup,
-       .answer = ast_lantiq_answer,
-       .read = ast_lantiq_read,
-       .write = ast_lantiq_write,
-       .exception = ast_lantiq_exception,
-       .indicate = ast_lantiq_indicate,
-       .fixup = ast_lantiq_fixup,
-       .requester = ast_lantiq_requester,
-       .func_channel_read = acf_channel_read
-};
-
-/* Protect the interface list (of lantiq_pvt's) */
-AST_MUTEX_DEFINE_STATIC(iflock);
-
-/*
- * Protect the monitoring thread, so only one process can kill or start it, and
- * not when it's doing something critical.
- */
-AST_MUTEX_DEFINE_STATIC(monlock);
-
-/* Boolean value whether the monitoring thread shall continue. */
-static unsigned int monitor;
-
-/* The scheduling thread */
-struct ast_sched_thread *sched_thread;
-   
-/*
- * This is the thread for the monitor which checks for input on the channels
- * which are not currently in use.
- */
-static pthread_t monitor_thread = AST_PTHREADT_NULL;
-
-
-#define WORDS_BIGENDIAN
-/* struct taken from some GPLed code by  Mike Borella */
-typedef struct rtp_header
-{
-#if defined(WORDS_BIGENDIAN)
-  uint8_t version:2, padding:1, extension:1, csrc_count:4;
-#else
-  uint8_t csrc_count:4, extension:1, padding:1, version:2;
-#endif
-#if defined(WORDS_BIGENDIAN)
-  uint8_t marker:1, payload_type:7;
-#else
-  uint8_t payload_type:7, marker:1;
-#endif
-  uint16_t seqno;
-  uint32_t timestamp;
-  uint32_t ssrc;
-} rtp_header_t;
-
-static uint32_t now(void) {
-       struct timespec ts;
-       clock_gettime(CLOCK_MONOTONIC, &ts);
-
-       uint64_t tmp = ts.tv_sec*1000 + (ts.tv_nsec/1000000);
-       return (uint32_t) tmp;
-}
-
-static int lantiq_dev_open(const char *dev_path, const int32_t ch_num)
-{
-       char dev_name[PATH_MAX];
-       memset(dev_name, 0, sizeof(dev_name));
-       snprintf(dev_name, PATH_MAX, "%s%u%u", dev_path, 1, ch_num);
-       return open((const char*)dev_name, O_RDWR, 0644);
-}
-
-static void lantiq_ring(int c, int r, const char *cid)
-{
-       uint8_t status;
-
-       if (r) {
-               if (!cid) {
-                       status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_START, 0);
-               } else {
-                       IFX_TAPI_CID_MSG_t msg;
-                       IFX_TAPI_CID_MSG_STRING_t cid_el;
-
-                       memset(&msg, 0, sizeof(msg));
-                       memset(&cid_el, 0, sizeof(cid_el));
-                       
-                       cid_el.elementType = IFX_TAPI_CID_ST_CLI;
-                       cid_el.len = strlen(cid);
-                       strncpy((char*)cid_el.element, cid, (size_t)cid_el.len);
-
-                       msg.txMode = IFX_TAPI_CID_HM_ONHOOK;
-                       msg.messageType = IFX_TAPI_CID_MT_CSUP;
-                       msg.message = (IFX_TAPI_CID_MSG_ELEMENT_t *)&cid_el;
-                       msg.nMsgElements = 1;
-
-                       status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_CID_TX_SEQ_START, (IFX_int32_t) &msg);
-               }
-       } else {
-               status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_STOP, 0);
-       }
-
-       if (status) {
-               ast_log(LOG_ERROR, "%s ioctl failed\n",
-                       (r ? "IFX_TAPI_RING_START" : "IFX_TAPI_RING_STOP"));
-       }
-}
-
-static int lantiq_play_tone(int c, int t)
-{
-       /* stop currently playing tone before starting new one */
-       if (t != TAPI_TONE_LOCALE_NONE) {
-               ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_LOCAL_PLAY, TAPI_TONE_LOCALE_NONE);
-       }
-
-       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_LOCAL_PLAY, t)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_TONE_LOCAL_PLAY ioctl failed\n");
-               return -1;
-       }
-
-       return 0;
-}
-
-static enum channel_state lantiq_get_hookstatus(int port)
-{
-       uint8_t status;
-
-       if (ioctl(dev_ctx.ch_fd[port], IFX_TAPI_LINE_HOOK_STATUS_GET, &status)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_STATUS_GET ioctl failed\n");
-               return UNKNOWN;
-       }
-
-       if (status) {
-               return OFFHOOK;
-       } else {
-               return ONHOOK;
-       }
-}
-
-static int
-lantiq_dev_binary_buffer_create(const char *path, uint8_t **ppBuf, uint32_t *pBufSz)
-{
-       FILE *fd;
-       struct stat file_stat;
-       int32_t status = 0;
-
-       fd = fopen(path, "rb");
-       if (fd == NULL) {
-               ast_log(LOG_ERROR, "binary file %s open failed\n", path);
-               return -1;
-       }
-
-       if (stat(path, &file_stat)) {
-               ast_log(LOG_ERROR, "file %s statistics get failed\n", path);
-               return -1;
-       }
-
-       *ppBuf = malloc(file_stat.st_size);
-       if (*ppBuf == NULL) {
-               ast_log(LOG_ERROR, "binary file %s memory allocation failed\n", path);
-               status = -1;
-               goto on_exit;
-       }
-
-       if (fread (*ppBuf, sizeof(uint8_t), file_stat.st_size, fd) <= 0) {
-               ast_log(LOG_ERROR, "file %s read failed\n", path);
-               status = -1;
-               goto on_exit;
-       }
-
-       *pBufSz = file_stat.st_size;
-
-on_exit:
-       if (fd != NULL)
-               fclose(fd);
-
-       if (*ppBuf != NULL && status)
-               free(*ppBuf);
-
-       return status;
-}
-
-static int32_t lantiq_dev_firmware_download(int32_t fd, const char *path)
-{
-       uint8_t *firmware = NULL;
-       uint32_t size = 0;
-       VMMC_IO_INIT vmmc_io_init;
-
-       ast_log(LOG_DEBUG, "loading firmware: \"%s\".", path);
-
-       if (lantiq_dev_binary_buffer_create(path, &firmware, &size))
-               return -1;
-
-       memset(&vmmc_io_init, 0, sizeof(VMMC_IO_INIT));
-       vmmc_io_init.pPRAMfw = firmware;
-       vmmc_io_init.pram_size = size;
-
-       if (ioctl(fd, FIO_FW_DOWNLOAD, &vmmc_io_init)) {
-               ast_log(LOG_ERROR, "FIO_FW_DOWNLOAD ioctl failed\n");
-               return -1;
-       }
-
-       if (firmware != NULL)
-               free(firmware);
-
-       return 0;
-}
-
-static const char *state_string(enum channel_state s)
-{
-       switch (s) {
-               case ONHOOK: return "ONHOOK";
-               case OFFHOOK: return "OFFHOOK";
-               case DIALING: return "DIALING";
-               case INCALL: return "INCALL";
-               case CALL_ENDED: return "CALL_ENDED";
-               case RINGING: return "RINGING";
-               default: return "UNKNOWN";
-       }
-}
-
-static const char *control_string(int c)
-{
-       switch (c) {
-               case AST_CONTROL_HANGUP: return "Other end has hungup";
-               case AST_CONTROL_RING: return "Local ring";
-               case AST_CONTROL_RINGING: return "Remote end is ringing";
-               case AST_CONTROL_ANSWER: return "Remote end has answered";
-               case AST_CONTROL_BUSY: return "Remote end is busy";
-               case AST_CONTROL_TAKEOFFHOOK: return "Make it go off hook";
-               case AST_CONTROL_OFFHOOK: return "Line is off hook";
-               case AST_CONTROL_CONGESTION: return "Congestion (circuits busy)";
-               case AST_CONTROL_FLASH: return "Flash hook";
-               case AST_CONTROL_WINK: return "Wink";
-               case AST_CONTROL_OPTION: return "Set a low-level option";
-               case AST_CONTROL_RADIO_KEY: return "Key Radio";
-               case AST_CONTROL_RADIO_UNKEY: return "Un-Key Radio";
-               case AST_CONTROL_PROGRESS: return "Remote end is making Progress";
-               case AST_CONTROL_PROCEEDING: return "Remote end is proceeding";
-               case AST_CONTROL_HOLD: return "Hold";
-               case AST_CONTROL_UNHOLD: return "Unhold";
-               case AST_CONTROL_SRCUPDATE: return "Media Source Update";
-               case AST_CONTROL_CONNECTED_LINE: return "Connected Line";
-               case AST_CONTROL_REDIRECTING: return "Redirecting";
-               case AST_CONTROL_INCOMPLETE: return "Incomplete";
-               case -1: return "Stop tone";
-               default: return "Unknown";
-       }
-}
-
-static int ast_lantiq_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen)
-{
-       ast_verb(3, "phone indication \"%s\"\n", control_string(condition));
-
-       struct lantiq_pvt *pvt = chan->tech_pvt;
-
-       switch (condition) {
-               case -1:
-                       {
-                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_NONE);
-                               return 0;
-                       }
-               case AST_CONTROL_CONGESTION:
-               case AST_CONTROL_BUSY:
-                       {
-                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
-                               return 0;
-                       }
-               case AST_CONTROL_RINGING:
-                       {
-                               pvt->call_setup_delay = now() - pvt->call_setup_start;
-                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_RINGING_CODE);
-                               return 0;
-                       }
-               default:
-                       {
-                               /* -1 lets asterisk generate the tone */
-                               return -1;
-                       }
-       }
-}
-
-static int ast_lantiq_fixup(struct ast_channel *old, struct ast_channel *new)
-{
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return 0;
-}
-
-static int ast_digit_begin(struct ast_channel *chan, char digit)
-{
-       /* TODO: Modify this callback to let Asterisk support controlling the length of DTMF */
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return 0;
-}
-
-static int ast_digit_end(struct ast_channel *ast, char digit, unsigned int duration)
-{
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return 0;
-}
-
-static int ast_lantiq_call(struct ast_channel *ast, char *dest, int timeout)
-{
-       /* lock to prevent simultaneous access with do_monitor thread processing */
-       ast_mutex_lock(&iflock);
-
-       struct lantiq_pvt *pvt = ast->tech_pvt;
-       ast_log(LOG_DEBUG, "state: %s\n", state_string(pvt->channel_state));
-
-       if (pvt->channel_state == ONHOOK) {
-               ast_log(LOG_DEBUG, "port %i is ringing\n", pvt->port_id);
-
-               char *cid = ast->connected.id.number.valid ? ast->connected.id.number.str : NULL;
-               ast_log(LOG_DEBUG, "port %i CID: %s\n", pvt->port_id, cid ? cid : "none");
-
-               lantiq_ring(pvt->port_id, 1, cid);
-               pvt->channel_state = RINGING;
-
-               ast_setstate(ast, AST_STATE_RINGING);
-               ast_queue_control(ast, AST_CONTROL_RINGING);
-       } else {
-               ast_log(LOG_DEBUG, "port %i is busy\n", pvt->port_id);
-               ast_setstate(ast, AST_STATE_BUSY);
-               ast_queue_control(ast, AST_CONTROL_BUSY);
-       }
-
-       ast_mutex_unlock(&iflock);
-
-       return 0;
-}
-
-static int ast_lantiq_hangup(struct ast_channel *ast)
-{
-       /* lock to prevent simultaneous access with do_monitor thread processing */
-       ast_mutex_lock(&iflock);
-
-       struct lantiq_pvt *pvt = ast->tech_pvt;
-       ast_log(LOG_DEBUG, "state: %s\n", state_string(pvt->channel_state));
-       
-       if (ast->_state == AST_STATE_RINGING) {
-               // FIXME
-               ast_debug(1, "TAPI: ast_lantiq_hangup(): ast->_state == AST_STATE_RINGING\n");
-       }
-
-       switch (pvt->channel_state) {
-               case RINGING:
-               case ONHOOK: 
-                       lantiq_ring(pvt->port_id, 0, NULL);
-                       pvt->channel_state = ONHOOK;
-                       break;
-               default:
-                       ast_log(LOG_DEBUG, "we were hung up, play busy tone\n");
-                       pvt->channel_state = CALL_ENDED;
-                       lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
-       }
-
-       lantiq_jb_get_stats(pvt->port_id);
-
-       ast_setstate(ast, AST_STATE_DOWN);
-       ast_module_unref(ast_module_info->self);
-       ast->tech_pvt = NULL;
-       pvt->owner = NULL;
-
-       ast_mutex_unlock(&iflock);
-
-       return 0;
-}
-
-static int ast_lantiq_answer(struct ast_channel *ast)
-{
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return 0;
-}
-
-static struct ast_frame * ast_lantiq_read(struct ast_channel *ast)
-{
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return NULL;
-}
-
-static int ast_lantiq_write(struct ast_channel *ast, struct ast_frame *frame)
-{
-       char buf[2048];
-       struct lantiq_pvt *pvt = ast->tech_pvt;
-       int ret = -1;
-       rtp_header_t *rtp_header = (rtp_header_t *) buf;
-
-       if(frame->frametype != AST_FRAME_VOICE) {
-               ast_log(LOG_DEBUG, "unhandled frame type\n");
-               return 0;
-       }
-       
-       if (frame->datalen == 0) {
-               ast_log(LOG_DEBUG, "we've been prodded\n");
-               return 0;
-       }
-
-       memset(buf, 0, sizeof(rtp_header_t));
-       rtp_header->version      = 2;
-       rtp_header->padding      = 0;
-       rtp_header->extension    = 0;
-       rtp_header->csrc_count   = 0;
-       rtp_header->marker       = 0;
-       rtp_header->timestamp    = pvt->rtp_timestamp;
-       rtp_header->seqno        = pvt->rtp_seqno++;
-       rtp_header->ssrc         = 0;
-       rtp_header->payload_type = (uint8_t) frame->subclass.codec;
-
-       pvt->rtp_timestamp += 160;
-
-       memcpy(buf+RTP_HEADER_LEN, frame->data.ptr, frame->datalen);
-
-       ret = write(dev_ctx.ch_fd[pvt->port_id], buf, frame->datalen+RTP_HEADER_LEN);
-       if (ret <= 0) {
-               ast_debug(1, "TAPI: ast_lantiq_write(): error writing.\n");
-               return -1;
-       }
-
-#ifdef TODO_DEVEL_INFO
-       ast_debug(1, "ast_lantiq_write(): size: %i version: %i padding: %i extension: %i csrc_count: %i\n"
-                "marker: %i payload_type: %s seqno: %i timestamp: %i ssrc: %i\n", 
-                        (int)ret,
-                        (int)rtp_header->version,
-                        (int)rtp_header->padding,
-                        (int)rtp_header->extension,
-                        (int)rtp_header->csrc_count,
-                        (int)rtp_header->marker,
-                        ast_codec2str(rtp_header->payload_type),
-                        (int)rtp_header->seqno,
-                        (int)rtp_header->timestamp,
-                        (int)rtp_header->ssrc);
-#endif
-
-       return 0;
-}
-
-static int acf_channel_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen)
-{
-       struct lantiq_pvt *pvt;
-       int res = 0;
-
-       if (!chan || chan->tech != &lantiq_tech) {
-               ast_log(LOG_ERROR, "This function requires a valid Lantiq TAPI channel\n");
-               return -1;
-       }
-
-       ast_mutex_lock(&iflock);
-
-       pvt = (struct lantiq_pvt*) chan->tech_pvt;
-
-       if (!strcasecmp(args, "csd")) {
-               snprintf(buf, buflen, "%lu", (unsigned long int) pvt->call_setup_delay);
-       } else if (!strcasecmp(args, "jitter_stats")){
-               lantiq_jb_get_stats(pvt->port_id);
-               snprintf(buf, buflen, "jbBufSize=%u,jbUnderflow=%u,jbOverflow=%u,jbDelay=%u,jbInvalid=%u",
-                               (uint32_t) pvt->jb_size,
-                               (uint32_t) pvt->jb_underflow,
-                               (uint32_t) pvt->jb_overflow,
-                               (uint32_t) pvt->jb_delay,
-                               (uint32_t) pvt->jb_invalid);
-       } else {
-               res = -1;
-       }
-
-       ast_mutex_unlock(&iflock);
-
-       return res;
-}
-
-
-static struct ast_frame * ast_lantiq_exception(struct ast_channel *ast)
-{
-       ast_log(LOG_DEBUG, "entering... no code here...\n");
-       return NULL;
-}
-
-static void lantiq_jb_get_stats(int c) {
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       IFX_TAPI_JB_STATISTICS_t param;
-       memset (&param, 0, sizeof (param));
-       if (ioctl (dev_ctx.ch_fd[c], IFX_TAPI_JB_STATISTICS_GET, (IFX_int32_t) &param) != IFX_SUCCESS) {
-               ast_debug(1, "Error getting jitter buffer  stats.\n");
-       } else {
-#if !defined (TAPI_VERSION3) && defined (TAPI_VERSION4)
-               ast_debug(1, "Jitter buffer stats:  dev=%u, ch=%u, nType=%u, nBufSize=%u, nIsUnderflow=%u, nDsOverflow=%u, nPODelay=%u, nInvalid=%u", 
-                               (uint32_t) param.dev,
-                               (uint32_t) param.ch,
-#else
-               ast_debug(1, "Jitter buffer stats:  nType=%u, nBufSize=%u, nIsUnderflow=%u, nDsOverflow=%u, nPODelay=%u, nInvalid=%u", 
-#endif
-                               (uint32_t) param.nType,
-                               (uint32_t) param.nBufSize,
-                               (uint32_t) param.nIsUnderflow,
-                               (uint32_t) param.nDsOverflow,
-                               (uint32_t) param.nPODelay,
-                               (uint32_t) param.nInvalid);
-               
-               pvt->jb_size = param.nBufSize;
-               pvt->jb_underflow = param.nIsUnderflow;
-               pvt->jb_overflow = param.nDsOverflow;
-               pvt->jb_invalid = param.nInvalid;
-               pvt->jb_delay = param.nPODelay;
-       }
-}
-
-
-static int lantiq_standby(int c)
-{
-       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
-               return -1;
-       }
-
-       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_STOP, 0)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_ENC_STOP ioctl failed\n");
-               return -1;
-       }
-
-       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_STOP, 0)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_DEC_STOP ioctl failed\n");
-               return -1;
-       }
-
-       return lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
-}
-
-static int lantiq_end_dialing(int c)
-{
-       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       if (pvt->dial_timer) {
-               ast_sched_thread_del(sched_thread, pvt->dial_timer);
-               pvt->dial_timer = 0;
-       }
-
-       if(pvt->owner) {
-               ast_hangup(pvt->owner);
-       }
-
-       return 0;
-}
-
-static int lantiq_end_call(int c)
-{
-       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
-
-       struct lantiq_pvt *pvt = &iflist[c];
-       
-       if(pvt->owner) {
-               lantiq_jb_get_stats(c);
-               ast_queue_hangup(pvt->owner);
-       }
-
-       return 0;
-}
-
-static struct ast_channel * lantiq_channel(int state, int c, char *ext, char *ctx)
-{
-       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
-
-       struct ast_channel *chan = NULL;
-
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       chan = ast_channel_alloc(1, state, NULL, NULL, "", ext, ctx, 0, c, "TAPI/%s", "1");
-
-       chan->tech = &lantiq_tech;
-       chan->nativeformats = AST_FORMAT_ULAW;
-       chan->readformat  = AST_FORMAT_ULAW;
-       chan->writeformat = AST_FORMAT_ULAW;
-       chan->tech_pvt = pvt;
-
-       pvt->owner = chan;
-
-       return chan;
-}
-
-static struct ast_channel * ast_lantiq_requester(const char *type, format_t format, const struct ast_channel *requestor, void *data, int *cause)
-{
-       ast_mutex_lock(&iflock);
-
-       char buf[BUFSIZ];
-       struct ast_channel *chan = NULL;
-       int port_id = -1;
-
-       ast_debug(1, "Asked to create a TAPI channel with formats: %s\n", ast_getformatname_multiple(buf, sizeof(buf), format));
-
-
-       /* check for correct data argument */
-       if (ast_strlen_zero(data)) {
-               ast_log(LOG_ERROR, "Unable to create channel with empty destination.\n");
-               *cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
-               return NULL;
-       }
-
-       /* get our port number */
-       port_id = atoi((char*) data);
-       if (port_id < 1 || port_id > dev_ctx.channels) {
-               ast_log(LOG_ERROR, "Unknown channel ID: \"%s\"\n", (char*) data);
-               *cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
-               return NULL;
-       }
-
-       /* on asterisk user's side, we're using port 1-2.
-        * Here in non normal human's world, we begin
-        * counting at 0.
-        */
-       port_id -= 1;
-
-       chan = lantiq_channel(AST_STATE_DOWN, port_id, NULL, NULL);
-
-       ast_mutex_unlock(&iflock);
-       return chan;
-}
-
-static int lantiq_dev_data_handler(int c)
-{
-       char buf[BUFSIZ];
-       struct ast_frame frame = {0};
-
-       int res = read(dev_ctx.ch_fd[c], buf, sizeof(buf));
-       if (res <= 0) ast_log(LOG_ERROR, "we got read error %i\n", res);
-       
-       rtp_header_t *rtp = (rtp_header_t*) buf;
-
-       frame.src = "TAPI";
-       frame.frametype = AST_FRAME_VOICE;
-       frame.subclass.codec = rtp->payload_type;
-       frame.samples = res - RTP_HEADER_LEN;
-       frame.datalen = res - RTP_HEADER_LEN;
-       frame.data.ptr = buf + RTP_HEADER_LEN;
-
-       struct lantiq_pvt *pvt = (struct lantiq_pvt *) &iflist[c];
-       if (pvt->owner && (pvt->owner->_state == AST_STATE_UP)) {
-               if(!ast_channel_trylock(pvt->owner)) {
-                       ast_queue_frame(pvt->owner, &frame);
-                       ast_channel_unlock(pvt->owner);
-               }
-       }
-
-/*     ast_debug(1, "lantiq_dev_data_handler(): size: %i version: %i padding: %i extension: %i csrc_count: %i \n"
-                                "marker: %i payload_type: %s seqno: %i timestamp: %i ssrc: %i\n", 
-                                (int)res,
-                                (int)rtp->version,
-                                (int)rtp->padding,
-                                (int)rtp->extension,
-                                (int)rtp->csrc_count,
-                                (int)rtp->marker,
-                                ast_codec2str(rtp->payload_type),
-                                (int)rtp->seqno,
-                                (int)rtp->timestamp,
-                                (int)rtp->ssrc);
-*/
-       return 0;
-}
-
-static int accept_call(int c)
-{ 
-       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
-
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       if (pvt->owner) {
-               struct ast_channel *chan = pvt->owner;
-
-               switch (chan->_state) {
-                       case AST_STATE_RINGING:
-                               lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
-                               ast_queue_control(pvt->owner, AST_CONTROL_ANSWER);
-                               pvt->channel_state = INCALL;
-                               break;
-                       default:
-                               ast_log(LOG_WARNING, "entered unhandled state %s\n", ast_state2str(chan->_state));
-               }
-       }
-
-       return 0;
-}
-
-static int lantiq_dev_event_hook(int c, int state)
-{
-       ast_mutex_lock(&iflock);
-
-       ast_log(LOG_DEBUG, "on port %i detected event %s hook\n", c, state ? "on" : "off");
-
-       int ret = -1;
-       if (state) { /* going onhook */
-               switch (iflist[c].channel_state) {
-                       case OFFHOOK: 
-                               ret = lantiq_standby(c);
-                               break;
-                       case DIALING: 
-                               ret = lantiq_end_dialing(c);
-                               break;
-                       case INCALL: 
-                               ret = lantiq_end_call(c);
-                               break;
-                       case CALL_ENDED:
-                               ret = lantiq_standby(c); // TODO: are we sure for this ?
-                               break;
-                       default:
-                               break;
-               }
-               iflist[c].channel_state = ONHOOK;
-       } else { /* going offhook */
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_ACTIVE)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
-                       goto out;
-               }
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_START, 0)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_START ioctl failed\n");
-                       goto out;
-               }
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_START, 0)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_DEC_START ioctl failed\n");
-                       goto out;
-               }
-
-               switch (iflist[c].channel_state) {
-                       case RINGING: 
-                               ret = accept_call(c);
-                               break;
-                       default:
-                               iflist[c].channel_state = OFFHOOK;
-                               lantiq_play_tone(c, TAPI_TONE_LOCALE_DIAL_CODE);
-                               ret = 0;
-                               break;
-               }
-
-       }
-
-out:
-       ast_mutex_unlock(&iflock);
-
-       return ret;
-}
-
-static void lantiq_reset_dtmfbuf(struct lantiq_pvt *pvt)
-{
-       pvt->dtmfbuf[0] = '\0';
-       pvt->dtmfbuf_len = 0;
-       pvt->ext[0] = '\0';
-}
-
-static void lantiq_dial(struct lantiq_pvt *pvt)
-{
-       struct ast_channel *chan = NULL;
-
-       ast_log(LOG_DEBUG, "user want's to dial %s.\n", pvt->dtmfbuf);
-
-       if (ast_exists_extension(NULL, pvt->context, pvt->dtmfbuf, 1, NULL)) {
-               ast_debug(1, "found extension %s, dialing\n", pvt->dtmfbuf);
-
-               strcpy(pvt->ext, pvt->dtmfbuf);
-
-               ast_verbose(VERBOSE_PREFIX_3 " extension exists, starting PBX %s\n", pvt->ext);
-
-               chan = lantiq_channel(AST_STATE_UP, pvt->port_id, pvt->ext+1, pvt->context);
-               chan->tech_pvt = pvt;
-               pvt->owner = chan;
-
-               strcpy(chan->exten, pvt->ext);
-               ast_setstate(chan, AST_STATE_RING);
-               pvt->channel_state = INCALL;
-
-               pvt->call_setup_start = now();
-
-               if (ast_pbx_start(chan)) {
-                       ast_log(LOG_WARNING, " unable to start PBX on %s\n", chan->name);
-                       ast_hangup(chan);
-               }
-       } else {
-               ast_log(LOG_DEBUG, "no extension found\n");
-               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
-               pvt->channel_state = CALL_ENDED;
-       }
-       
-       lantiq_reset_dtmfbuf(pvt);
-}
-
-static int lantiq_event_dial_timeout(const void* data)
-{
-       ast_debug(1, "TAPI: lantiq_event_dial_timeout()\n");
-
-       struct lantiq_pvt *pvt = (struct lantiq_pvt *) data;
-       pvt->dial_timer = 0;
-
-       if (! pvt->channel_state == ONHOOK) {
-               lantiq_dial(pvt);
-       } else {
-               ast_debug(1, "TAPI: lantiq_event_dial_timeout(): dial timeout in state ONHOOK.\n");
-       }
-
-       return 0;
-}
-
-static int lantiq_send_digit(int c, char digit) 
-{
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       struct ast_frame f = { .frametype = AST_FRAME_DTMF, .subclass.integer = digit };
-
-       if (pvt->owner) {
-               ast_log(LOG_DEBUG, "Port %i transmitting digit \"%c\"\n", c, digit);
-               return ast_queue_frame(pvt->owner, &f);
-       } else {
-               ast_debug(1, "Warning: lantiq_send_digit() without owner!\n");
-               return -1;
-       }
-}
-
-static void lantiq_dev_event_digit(int c, char digit)
-{
-       ast_mutex_lock(&iflock);
-
-       ast_log(LOG_DEBUG, "on port %i detected digit \"%c\"\n", c, digit);
-
-       struct lantiq_pvt *pvt = &iflist[c];
-
-       switch (pvt->channel_state) {
-               case INCALL:
-                       {
-                               lantiq_send_digit(c, digit);
-                               break;
-                       }
-               case OFFHOOK:  
-                       pvt->channel_state = DIALING;
-
-                       lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
-
-                       /* fall through */
-               case DIALING: 
-                       if (digit == '#') {
-                               if (pvt->dial_timer) {
-                                       ast_sched_thread_del(sched_thread, pvt->dial_timer);
-                                       pvt->dial_timer = 0;
-                               }
-
-                               lantiq_dial(pvt);
-                       } else {
-                               pvt->dtmfbuf[pvt->dtmfbuf_len] = digit;
-                               pvt->dtmfbuf_len++;
-                               pvt->dtmfbuf[pvt->dtmfbuf_len] = '\0';
-
-                               /* setup autodial timer */
-                               if (!pvt->dial_timer) {
-                                       ast_log(LOG_DEBUG, "setting new timer\n");
-                                       pvt->dial_timer = ast_sched_thread_add(sched_thread, 2000, lantiq_event_dial_timeout, (const void*) pvt);
-                               } else {
-                                       ast_log(LOG_DEBUG, "replacing timer\n");
-                                       struct sched_context *sched = ast_sched_thread_get_context(sched_thread);
-                                       AST_SCHED_REPLACE(pvt->dial_timer, sched, 2000, lantiq_event_dial_timeout, (const void*) pvt);
-                               }
-                       }
-                       break;
-               default:
-                       ast_log(LOG_ERROR, "don't know what to do in unhandled state\n");
-                       break;
-       }
-
-       ast_mutex_unlock(&iflock);
-       return;
-}
-
-static void lantiq_dev_event_handler(void)
-{
-       IFX_TAPI_EVENT_t event;
-       unsigned int i;
-
-       for (i = 0; i < dev_ctx.channels ; i++) {
-               ast_mutex_lock(&iflock);
-
-               memset (&event, 0, sizeof(event));
-               event.ch = i;
-               if (ioctl(dev_ctx.dev_fd, IFX_TAPI_EVENT_GET, &event)) {
-                       ast_mutex_unlock(&iflock);
-                       continue;
-               }
-               if (event.id == IFX_TAPI_EVENT_NONE) {
-                       ast_mutex_unlock(&iflock);
-                       continue;
-               }
-
-               ast_mutex_unlock(&iflock);
-
-               switch(event.id) {
-                       case IFX_TAPI_EVENT_FXS_ONHOOK:
-                               lantiq_dev_event_hook(i, 1);
-                               break;
-                       case IFX_TAPI_EVENT_FXS_OFFHOOK:
-                               lantiq_dev_event_hook(i, 0);
-                               break;
-                       case IFX_TAPI_EVENT_DTMF_DIGIT:
-                               lantiq_dev_event_digit(i, (char)event.data.dtmf.ascii);
-                               break;
-                       case IFX_TAPI_EVENT_PULSE_DIGIT:
-                               if (event.data.pulse.digit == 0xB) {
-                                       lantiq_dev_event_digit(i, '0');
-                               } else {
-                                       lantiq_dev_event_digit(i, '0' + (char)event.data.pulse.digit);
-                               }
-                               break;
-                       case IFX_TAPI_EVENT_COD_DEC_CHG:
-                       case IFX_TAPI_EVENT_TONE_GEN_END:
-                       case IFX_TAPI_EVENT_CID_TX_SEQ_END:
-                               break;
-                       default:
-                               ast_log(LOG_ERROR, "unknown TAPI event %08X\n", event.id);
-                               break;
-               }
-       }
-}
-
-static void * lantiq_events_monitor(void *data)
-{
-       ast_verbose("TAPI thread started\n");
-
-       struct pollfd fds[3];
-
-       fds[0].fd = dev_ctx.dev_fd;
-       fds[0].events = POLLIN;
-       fds[1].fd = dev_ctx.ch_fd[0];
-       fds[1].events = POLLIN;
-       fds[2].fd = dev_ctx.ch_fd[1];
-       fds[2].events = POLLIN;
-
-       while (monitor) {
-               ast_mutex_lock(&monlock);
-
-               if (poll(fds, dev_ctx.channels + 1, 2000) <= 0) {
-                       ast_mutex_unlock(&monlock);
-                       continue;
-               }
-
-               if (fds[0].revents & POLLIN) {
-                       lantiq_dev_event_handler();
-               }
-
-               ast_mutex_unlock(&monlock);
-
-               if ((fds[1].revents & POLLIN) && (lantiq_dev_data_handler(0))) {
-                       ast_log(LOG_ERROR, "data handler 0 failed\n");
-                       break;
-               }
-
-               if ((fds[2].revents & POLLIN) && (lantiq_dev_data_handler(1))) {
-                       ast_log(LOG_ERROR, "data handler 1 failed\n");
-                       break;
-               }
-       }
-
-       return NULL;
-}
-
-static int restart_monitor(void)
-{
-       /* If we're supposed to be stopped -- stay stopped */
-       if (monitor_thread == AST_PTHREADT_STOP)
-               return 0;
-
-       ast_mutex_lock(&monlock);
-
-       if (monitor_thread == pthread_self()) {
-               ast_mutex_unlock(&monlock);
-               ast_log(LOG_WARNING, "Cannot kill myself\n");
-               return -1;
-       }
-
-       if (monitor_thread != AST_PTHREADT_NULL) {
-               if (ast_mutex_lock(&iflock)) {
-                       ast_mutex_unlock(&monlock);
-                       ast_log(LOG_WARNING, "Unable to lock the interface list\n");
-                       return -1;
-               }
-               monitor = 0;
-               while (pthread_kill(monitor_thread, SIGURG) == 0)
-                       sched_yield();
-               pthread_join(monitor_thread, NULL);
-               ast_mutex_unlock(&iflock);
-       }
-
-       monitor = 1;
-       /* Start a new monitor */
-       if (ast_pthread_create_background(&monitor_thread, NULL, lantiq_events_monitor, NULL) < 0) {
-               ast_mutex_unlock(&monlock);
-               ast_log(LOG_ERROR, "Unable to start monitor thread.\n");
-               return -1;
-       }
-
-       ast_mutex_unlock(&monlock);
-
-       return 0;
-}
-
-static void lantiq_cleanup(void)
-{
-       int c;
-
-       for (c = 0; c < dev_ctx.channels ; c++) { 
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
-                       ast_log(LOG_WARNING, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
-               }
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_STOP, 0)) {
-                       ast_log(LOG_WARNING, "IFX_TAPI_ENC_STOP ioctl failed\n");
-               }
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_STOP, 0)) {
-                       ast_log(LOG_WARNING, "IFX_TAPI_DEC_STOP ioctl failed\n");
-               }
-       }
-
-       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_STOP, 0)) {
-               ast_log(LOG_WARNING, "IFX_TAPI_DEV_STOP ioctl failed\n");
-       }
-
-       close(dev_ctx.dev_fd);
-}
-
-static int unload_module(void)
-{
-       int c;
-
-       ast_channel_unregister(&lantiq_tech);
-
-       if (!ast_mutex_lock(&iflock)) {
-               for (c = 0; c < dev_ctx.channels ; c++) {
-                       if (iflist[c].owner)
-                               ast_softhangup(iflist[c].owner, AST_SOFTHANGUP_APPUNLOAD);
-               }
-               ast_mutex_unlock(&iflock);
-       } else {
-               ast_log(LOG_WARNING, "Unable to lock the monitor\n");
-               return -1;
-       }
-
-       if (!ast_mutex_lock(&monlock)) {
-               if (monitor_thread > AST_PTHREADT_NULL) {
-                       monitor = 0;
-                       while (pthread_kill(monitor_thread, SIGURG) == 0)
-                               sched_yield();
-                       pthread_join(monitor_thread, NULL);
-               }
-               monitor_thread = AST_PTHREADT_STOP;
-               ast_mutex_unlock(&monlock);
-       } else {
-               ast_log(LOG_WARNING, "Unable to lock the monitor\n");
-               return -1;
-       }
-
-       return 0;
-}
-
-static struct lantiq_pvt *lantiq_init_pvt(struct lantiq_pvt *pvt)
-{
-       if (pvt) {
-               pvt->owner = NULL;
-               pvt->port_id = -1;
-               pvt->channel_state = UNKNOWN;
-               pvt->context[0] = '\0';
-               pvt->ext[0] = '\0';
-               pvt->dial_timer = 0;
-               pvt->dtmfbuf[0] = '\0';
-               pvt->dtmfbuf_len = 0;
-               pvt->call_setup_start = 0;
-               pvt->call_setup_delay = 0;
-               pvt->jb_size = 0;
-               pvt->jb_underflow = 0;
-               pvt->jb_overflow = 0;
-               pvt->jb_delay = 0;
-               pvt->jb_invalid = 0;
-       } else {
-               ast_log(LOG_ERROR, "unable to clear pvt structure\n");
-       }
-
-       return pvt;
-}
-
-static int lantiq_create_pvts(void)
-{
-       int i;
-
-       iflist = ast_calloc(1, sizeof(struct lantiq_pvt) * dev_ctx.channels);
-
-       if (iflist) { 
-               for (i=0 ; i<dev_ctx.channels ; i++) {
-                       lantiq_init_pvt(&iflist[i]);
-                       iflist[i].port_id = i;
-                       if (per_channel_context) {
-                               snprintf(iflist[i].context, AST_MAX_CONTEXT, "%s%i", LANTIQ_CONTEXT_PREFIX, i+1);
-                               ast_debug(1, "Context for channel %i: %s\n", i, iflist[i].context);
-                       } else {
-                               snprintf(iflist[i].context, AST_MAX_CONTEXT, "default");
-                       }
-               }
-               return 0;
-       } else {
-               ast_log(LOG_ERROR, "unable to allocate memory\n");
-               return -1;
-       }
-}
-
-static int lantiq_setup_rtp(int c)
-{
-       /* Configure RTP payload type tables */
-       IFX_TAPI_PKT_RTP_PT_CFG_t rtpPTConf;
-
-       memset((char*)&rtpPTConf, '\0', sizeof(rtpPTConf));
-
-       rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_MLAW] = AST_FORMAT_ULAW;
-       rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_ALAW] = AST_FORMAT_ALAW;
-//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G723_63] = AST_FORMAT_G723_1;
-//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G723_53] = 4;
-//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G729] = AST_FORMAT_G729A;
-//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G722_64] = AST_FORMAT_G722;
-
-       rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_MLAW] = AST_FORMAT_ULAW;
-       rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_ALAW] = AST_FORMAT_ALAW;
-//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G723_63] = AST_FORMAT_G723_1;
-//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G723_53] = AST_FORMAT_G723_1;
-//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G729] = AST_FORMAT_G729A;
-//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G722_64] = AST_FORMAT_G722;
-
-       int ret;
-       if ((ret = ioctl(dev_ctx.ch_fd[c], IFX_TAPI_PKT_RTP_PT_CFG_SET, (IFX_int32_t) &rtpPTConf))) {
-               ast_log(LOG_ERROR, "IFX_TAPI_PKT_RTP_PT_CFG_SET failed: ret=%i\n", ret);
-               return -1;
-       }
-
-       return 0;
-}
-
-static int load_module(void)
-{
-       struct ast_config *cfg;
-       struct ast_variable *v;
-       int txgain = 0;
-       int rxgain = 0;
-       int wlec_type = 0;
-       int wlec_nlp = 0;
-       int wlec_nbfe = 0;
-       int wlec_nbne = 0;
-       int wlec_wbne = 0;
-       int jb_type = IFX_TAPI_JB_TYPE_ADAPTIVE;
-       int jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_VOICE;
-       int jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_DEFAULT;
-       int jb_scaling = 0x10;
-       int jb_initialsize = 0x2d0;
-       int jb_minsize = 0x50;
-       int jb_maxsize = 0x5a0;
-       int cid_type = IFX_TAPI_CID_STD_TELCORDIA;
-       int vad_type = IFX_TAPI_ENC_VAD_NOVAD;
-       dev_ctx.channels = TAPI_AUDIO_PORT_NUM_MAX;
-       struct ast_flags config_flags = { 0 };
-       
-       if (!(sched_thread = ast_sched_thread_create())) {
-               ast_log(LOG_ERROR, "Unable to create scheduler thread\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       if ((cfg = ast_config_load(config, config_flags)) == CONFIG_STATUS_FILEINVALID) {
-               ast_log(LOG_ERROR, "Config file %s is in an invalid format.  Aborting.\n", config);
-               return AST_MODULE_LOAD_DECLINE;
-       }
-
-       /* We *must* have a config file otherwise stop immediately */
-       if (!cfg) {
-               ast_log(LOG_ERROR, "Unable to load config %s\n", config);
-               return AST_MODULE_LOAD_DECLINE;
-       }
-
-       if (ast_mutex_lock(&iflock)) {
-               ast_log(LOG_ERROR, "Unable to lock interface list.\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       for (v = ast_variable_browse(cfg, "interfaces"); v; v = v->next) {
-               if (!strcasecmp(v->name, "channels")) {
-                       dev_ctx.channels = atoi(v->value);
-                       if (!dev_ctx.channels) {
-                               ast_log(LOG_ERROR, "Invalid value for channels in config %s\n", config);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "firmwarefilename")) {
-                       ast_copy_string(firmware_filename, v->value, sizeof(firmware_filename));
-               } else if (!strcasecmp(v->name, "bbdfilename")) {
-                       ast_copy_string(bbd_filename, v->value, sizeof(bbd_filename));
-               } else if (!strcasecmp(v->name, "basepath")) {
-                       ast_copy_string(base_path, v->value, sizeof(base_path));
-               } else if (!strcasecmp(v->name, "per_channel_context")) {
-                       if (!strcasecmp(v->value, "on")) {
-                               per_channel_context = 1;
-                       } else if (!strcasecmp(v->value, "off")) {
-                               per_channel_context = 0;
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown per_channel_context value '%s'. Try 'on' or 'off'.\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               }
-       }
-
-       for (v = ast_variable_browse(cfg, "general"); v; v = v->next) {
-               if (!strcasecmp(v->name, "rxgain")) {
-                       rxgain = atoi(v->value);
-                       if (!rxgain) {
-                               rxgain = 0;
-                               ast_log(LOG_WARNING, "Invalid rxgain: %s, using default.\n", v->value);
-                       }
-               } else if (!strcasecmp(v->name, "txgain")) {
-                       txgain = atoi(v->value);
-                       if (!txgain) {
-                               txgain = 0;
-                               ast_log(LOG_WARNING, "Invalid txgain: %s, using default.\n", v->value);
-                       }
-               } else if (!strcasecmp(v->name, "echocancel")) {
-                       if (!strcasecmp(v->value, "off")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_OFF;
-                       } else if (!strcasecmp(v->value, "nlec")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_NE;
-                               if (!strcasecmp(v->name, "echocancelfixedwindowsize")) {
-                                       wlec_nbne = atoi(v->value);
-                               }
-                       } else if (!strcasecmp(v->value, "wlec")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_NFE;
-                               if (!strcasecmp(v->name, "echocancelnfemovingwindowsize")) {
-                                       wlec_nbfe = atoi(v->value);
-                               } else if (!strcasecmp(v->name, "echocancelfixedwindowsize")) {
-                                       wlec_nbne = atoi(v->value);
-                               } else if (!strcasecmp(v->name, "echocancelwidefixedwindowsize")) {
-                                       wlec_wbne = atoi(v->value);
-                               }
-                       } else if (!strcasecmp(v->value, "nees")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_NE_ES;
-                       } else if (!strcasecmp(v->value, "nfees")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_NFE_ES;
-                       } else if (!strcasecmp(v->value, "es")) {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_ES;
-                       } else {
-                               wlec_type = IFX_TAPI_WLEC_TYPE_OFF;
-                               ast_log(LOG_ERROR, "Unknown echo cancellation type '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "echocancelnlp")) {
-                       if (!strcasecmp(v->value, "on")) {
-                               wlec_nlp = IFX_TAPI_WLEC_NLP_ON;
-                       } else if (!strcasecmp(v->value, "off")) {
-                               wlec_nlp = IFX_TAPI_WLEC_NLP_OFF;
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown echo cancellation nlp '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "jitterbuffertype")) {
-                       if (!strcasecmp(v->value, "fixed")) {
-                               jb_type = IFX_TAPI_JB_TYPE_FIXED;
-                       } else if (!strcasecmp(v->value, "adaptive")) {
-                               jb_type = IFX_TAPI_JB_TYPE_ADAPTIVE;
-                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_DEFAULT;
-                               if (!strcasecmp(v->name, "jitterbufferadaptation")) {
-                                       if (!strcasecmp(v->value, "on")) {
-                                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_ON;
-                                       } else if (!strcasecmp(v->value, "off")) {
-                                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_OFF;
-                                       }
-                               } else if (!strcasecmp(v->name, "jitterbufferscalling")) {
-                                       jb_scaling = atoi(v->value);
-                               } else if (!strcasecmp(v->name, "jitterbufferinitialsize")) {
-                                       jb_initialsize = atoi(v->value);
-                               } else if (!strcasecmp(v->name, "jitterbufferminsize")) {
-                                       jb_minsize = atoi(v->value);
-                               } else if (!strcasecmp(v->name, "jitterbuffermaxsize")) {
-                                       jb_maxsize = atoi(v->value);
-                               }
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown jitter buffer type '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "jitterbufferpackettype")) {
-                       if (!strcasecmp(v->value, "voice")) {
-                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_VOICE;
-                       } else if (!strcasecmp(v->value, "data")) {
-                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_DATA;
-                       } else if (!strcasecmp(v->value, "datanorep")) {
-                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_DATA_NO_REP;
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown jitter buffer packet adaptation type '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "calleridtype")) {
-                       ast_log(LOG_DEBUG, "Setting CID type to %s.\n", v->value);
-                       if (!strcasecmp(v->value, "telecordia")) {
-                               cid_type = IFX_TAPI_CID_STD_TELCORDIA;
-                       } else if (!strcasecmp(v->value, "etsifsk")) {
-                               cid_type = IFX_TAPI_CID_STD_ETSI_FSK;
-                       } else if (!strcasecmp(v->value, "etsidtmf")) {
-                               cid_type = IFX_TAPI_CID_STD_ETSI_DTMF;
-                       } else if (!strcasecmp(v->value, "sin")) {
-                               cid_type = IFX_TAPI_CID_STD_SIN;
-                       } else if (!strcasecmp(v->value, "ntt")) {
-                               cid_type = IFX_TAPI_CID_STD_NTT;
-                       } else if (!strcasecmp(v->value, "kpndtmf")) {
-                               cid_type = IFX_TAPI_CID_STD_KPN_DTMF;
-                       } else if (!strcasecmp(v->value, "kpndtmffsk")) {
-                               cid_type = IFX_TAPI_CID_STD_KPN_DTMF_FSK;
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown caller id type '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               } else if (!strcasecmp(v->name, "voiceactivitydetection")) {
-                       if (!strcasecmp(v->value, "on")) {
-                               vad_type = IFX_TAPI_ENC_VAD_ON;
-                       } else if (!strcasecmp(v->value, "g711")) {
-                               vad_type = IFX_TAPI_ENC_VAD_G711;
-                       } else if (!strcasecmp(v->value, "cng")) {
-                               vad_type = IFX_TAPI_ENC_VAD_CNG_ONLY;
-                       } else if (!strcasecmp(v->value, "sc")) {
-                               vad_type = IFX_TAPI_ENC_VAD_SC_ONLY;
-                       } else {
-                               ast_log(LOG_ERROR, "Unknown voice activity detection value '%s'\n", v->value);
-                               ast_config_destroy(cfg);
-                               return AST_MODULE_LOAD_DECLINE;
-                       }
-               }
-       }
-
-       lantiq_create_pvts();
-
-       ast_mutex_unlock(&iflock);
-
-       if (ast_channel_register(&lantiq_tech)) {
-               ast_log(LOG_ERROR, "Unable to register channel class 'Phone'\n");
-               ast_config_destroy(cfg);
-               unload_module();
-               return AST_MODULE_LOAD_FAILURE;
-       }
-       ast_config_destroy(cfg);
-       
-       /* tapi */
-#ifdef TODO_TONES
-       IFX_TAPI_TONE_t tone;
-#endif
-       IFX_TAPI_DEV_START_CFG_t dev_start;
-       IFX_TAPI_MAP_DATA_t map_data;
-       IFX_TAPI_ENC_CFG_t enc_cfg;
-       IFX_TAPI_LINE_VOLUME_t line_vol;
-       IFX_TAPI_WLEC_CFG_t wlec_cfg;
-       IFX_TAPI_JB_CFG_t jb_cfg;
-       IFX_TAPI_CID_CFG_t cid_cfg;
-       uint8_t c;
-
-       /* open device */
-       dev_ctx.dev_fd = lantiq_dev_open(base_path, 0);
-
-       if (dev_ctx.dev_fd < 0) {
-               ast_log(LOG_ERROR, "lantiq tapi device open function failed\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       for (c = 0; c < dev_ctx.channels ; c++) {
-               dev_ctx.ch_fd[c] = lantiq_dev_open(base_path, c + 1);
-
-               if (dev_ctx.ch_fd[c] < 0) {
-                       ast_log(LOG_ERROR, "lantiq tapi channel %d open function failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-       }
-
-       if (lantiq_dev_firmware_download(dev_ctx.dev_fd, firmware_filename)) {
-               ast_log(LOG_ERROR, "voice firmware download failed\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_STOP, 0)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_DEV_STOP ioctl failed\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       memset(&dev_start, 0x0, sizeof(IFX_TAPI_DEV_START_CFG_t));
-       dev_start.nMode = IFX_TAPI_INIT_MODE_VOICE_CODER;
-
-       /* Start TAPI */
-       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_START, &dev_start)) {
-               ast_log(LOG_ERROR, "IFX_TAPI_DEV_START ioctl failed\n");
-               return AST_MODULE_LOAD_FAILURE;
-       }
-
-       for (c = 0; c < dev_ctx.channels ; c++) {
-               /* tones */
-#ifdef TODO_TONES
-               memset(&tone, 0, sizeof(IFX_TAPI_TONE_t));
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_TABLE_CFG_SET, &tone)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_TONE_TABLE_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-#endif
-               /* ringing type */
-               IFX_TAPI_RING_CFG_t ringingType;
-               memset(&ringingType, 0, sizeof(IFX_TAPI_RING_CFG_t));
-               ringingType.nMode = IFX_TAPI_RING_CFG_MODE_INTERNAL_BALANCED;
-               ringingType.nSubmode = IFX_TAPI_RING_CFG_SUBMODE_DC_RNG_TRIP_FAST;
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_CFG_SET, (IFX_int32_t) &ringingType)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_RING_CFG_SET failed\n");
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* ring cadence */
-               IFX_char_t data[15] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-                                                               0x00, 0x00, 0x00, 0x00, 0x00,     
-                                                               0x00, 0x00, 0x00, 0x00, 0x00 };
-
-               IFX_TAPI_RING_CADENCE_t ringCadence;
-               memset(&ringCadence, 0, sizeof(IFX_TAPI_RING_CADENCE_t));
-               memcpy(&ringCadence.data, data, sizeof(data));
-               ringCadence.nr = sizeof(data) * 8;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_CADENCE_HR_SET, &ringCadence)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_RING_CADENCE_HR_SET failed\n");
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* perform mapping */
-               memset(&map_data, 0x0, sizeof(IFX_TAPI_MAP_DATA_t));
-               map_data.nDstCh = c;
-               map_data.nChType = IFX_TAPI_MAP_TYPE_PHONE;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_MAP_DATA_ADD, &map_data)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_MAP_DATA_ADD %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* set line feed */
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Configure encoder */
-               memset(&enc_cfg, 0x0, sizeof(IFX_TAPI_ENC_CFG_t));
-               enc_cfg.nFrameLen = IFX_TAPI_COD_LENGTH_20;
-               enc_cfg.nEncType = IFX_TAPI_COD_TYPE_MLAW;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_CFG_SET, &enc_cfg)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* set volume */
-               memset(&line_vol, 0, sizeof(line_vol));
-               line_vol.nGainRx = rxgain;
-               line_vol.nGainTx = txgain;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_PHONE_VOLUME_SET, &line_vol)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_PHONE_VOLUME_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Configure line echo canceller */
-               memset(&wlec_cfg, 0, sizeof(wlec_cfg));
-               wlec_cfg.nType = wlec_type;
-               wlec_cfg.bNlp = wlec_nlp;
-               wlec_cfg.nNBFEwindow = wlec_nbfe;
-               wlec_cfg.nNBNEwindow = wlec_nbne;
-               wlec_cfg.nWBNEwindow = wlec_wbne;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_WLEC_PHONE_CFG_SET, &wlec_cfg)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_WLEC_PHONE_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Configure jitter buffer */
-               memset(&jb_cfg, 0, sizeof(jb_cfg));
-               jb_cfg.nJbType = jb_type;
-               jb_cfg.nPckAdpt = jb_pckadpt;
-               jb_cfg.nLocalAdpt = jb_localadpt;
-               jb_cfg.nScaling = jb_scaling;
-               jb_cfg.nInitialSize = jb_initialsize;
-               jb_cfg.nMinSize = jb_minsize;
-               jb_cfg.nMaxSize = jb_maxsize;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_JB_CFG_SET, &jb_cfg)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_JB_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Configure Caller ID type */
-               memset(&cid_cfg, 0, sizeof(cid_cfg));
-               cid_cfg.nStandard = cid_type;
-
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_CID_CFG_SET, &cid_cfg)) {
-                       ast_log(LOG_ERROR, "IIFX_TAPI_CID_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Configure voice activity detection */
-               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_VAD_CFG_SET, vad_type)) {
-                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_VAD_CFG_SET %d failed\n", c);
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Setup TAPI <-> Asterisk codec type mapping */
-               if (lantiq_setup_rtp(c)) {
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-
-               /* Set initial hook status */
-               iflist[c].channel_state = lantiq_get_hookstatus(c);
-               
-               if (iflist[c].channel_state == UNKNOWN) {
-                       return AST_MODULE_LOAD_FAILURE;
-               }
-       }
-
-       /* make sure our device will be closed properly */
-       ast_register_atexit(lantiq_cleanup);
-
-       restart_monitor();
-       return AST_MODULE_LOAD_SUCCESS;
-}
-
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Lantiq TAPI Telephony API Support");
diff --git a/asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample b/asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample
deleted file mode 100644 (file)
index 16ba174..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-;
-; TAPI Telephony Interface
-;
-; Configuration file
-
-[interfaces]
-;
-; Number of FXS ports (default: 2)
-channels = 2
-;
-; Set tapi firmware file path
-;firmwarefilename = /lib/firmware/danube_firmware.bin
-;
-; Set tapi bbd file path
-;bbdfilename = /lib/firmware/danube_bbd_fxs.bin
-;
-; Set vmmc device path
-;basepath = /dev/vmmc
-;
-[general]
-;
-; Gain setting for the receive and transmit path.
-; The value is given in dB within the range (-24dB to +12dB), in 1 dB steps.
-;
-;rxgain = 1
-;txgain = 1
-;
-;
-;
-; Line echo cancller valid types:
-;
-; off          LEC and echo suppressor turned off.
-; nlec         LEC using fixed window; no echo suppressor.
-; wlec         LEC using fixed and moving window; no echo suppressor.
-; nees         LEC using fixed window and echo suppressor.
-; nfees                LEC using fixed and moving window and echo suppressor.
-; es           Echo suppressor
-;
-;echocancel = off
-;
-; If nlec or wlec is selected than size of the fixed window in narrowband (8 kHz) sampling mode
-; can be defined with:
-; A value of 0 defaults to: 16 ms if type is nlec or 8 ms if type is wlec:
-;
-;echocancelfixedwindowsize = 0
-;
-; If wlec is selected than size of the moving window in narrowband (8 kHz) sampling mode
-; can be defined with:
-; A value of 0 defaults to 8 ms.
-;
-;echocancelnfemovingwindowsize = 0
-;
-; If wlec is selected than size of the moving window in wideband (16 kHz) sampling mode
-; can be defined with:
-; A value of 0 defaults to 8 ms.
-;
-;echocancelwidefixedwindowsize = 0
-;
-; Activate or deactivate line echo cancller NLP (Non Linear Processor) if the LEC is active,
-; valid is on or off:
-;
-;echocancelnlp = off
-;
-;
-;
-; Jitter buffer valid types:
-;
-; fixed                Fixed jitter buffer.
-; adaptive     Adaptive jitter buffer.
-;
-;jitterbuffertype = fixed
-;
-; Jitter buffer packet adaptation valid types:
-;
-; voice                Jitter buffer optimized for voice.
-; data         Jitter buffer optimized for data.
-; datanorep    Jitter buffer optimized for data but without doing packet repetition.
-;
-;jitterbufferpackettype = voice
-;
-;      Following jitter buffer values can only be used with jitter buffer adaptive type:
-; Turns on or off jitter buffer adaptation:
-;
-;jitterbufferadaptation = off
-;
-; Scaling factor multiplied by 16; in adaptive jitter buffer mode, the target average playout delay is
-; equal to the estimated jitter multiplied by the scaling factor. The default value for the scaling factor
-; is about 1.4 (scaling=22), meaning that the target average playout delay is equal to the estimated
-; jitter. If less packets should be dropped because of jitter, the scaling factor has to be increased. An
-; increase in the scaling factor will eventually lead to an increased playout delay.
-; The supported range is 1 to 16 (16 up to 256).
-;
-;jitterbufferscalling = 1
-;
-; Initial size of the jitter buffer in time stamps of 125 us:
-;
-;jitterbufferinitialsize = 125
-;
-; Minimum size of the jitter buffer in time stamps of 125 us
-;
-;jitterbufferminsize = 125
-;
-; Maximum size of the jitter buffer in time stamps of 125 us
-;
-;jitterbuffermaxsize = 125
-;
-;
-;
-; Caller id valid standards:
-;
-; telecordia    Bellcore/Telcordia GR-30-CORE; use Bell202 FSK coding of CID information. (default)
-; etsifsk       ETSI 300-659-1/2/3 V1.3.1; use V.23 FSK coding to transmit CID information.
-; etsidtmf      ETSI 300-659-1/2/3 V1.3.1; use DTMF transmission of CID information.
-; sin           SIN 227 Issue 3.4; use V.23 FSK coding of CID information.
-; ntt           NTT standard: TELEPHONE SERVICE INTERFACES, edition 5; use a modified V.23 FSK coding of
-;               CID information.
-; kpndtmf       KPN; use DTMF transmission of CID information.
-; kpndtmffsk    KPN; use DTMF and FSK transmission of CID information.
-;
-;calleridtype = telecordia
-;
-;
-;
-; Voice activity detection:
-;
-; on           Voice activity detection on; in this case also comfort noise and spectral
-;              information (nicer noise) is switched on.
-; g711         Voice activity detection on with comfort noise generation,
-;              but without spectral information.
-; cng          Voice activity detection on with comfort noise generation, but without silence compression
-; sc           Voice activity detection on with silence compression,
-;              but without comfort noise generation.
-;
-;voiceactivitydetection = on
-;
-;
-;
-;
diff --git a/asterisk-11.x-chan-dongle/Makefile b/asterisk-11.x-chan-dongle/Makefile
deleted file mode 100644 (file)
index 2df5d3c..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Copyright (C) 2013 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:=asterisk11-chan-dongle
-PKG_VERSION:=14012013
-PKG_REV:=0b0c67c4cd5e1ee22d83d69e9b728f3b66b598f8
-PKG_RELEASE:=1
-
-PKG_SOURCE:=asterisk11-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/jstasiak/asterisk-chan-dongle.git
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_SUBDIR:=asterisk11
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_FIXUP:=autoreconf
-
-PKG_SOURCE_SUBDIR:=chan_dongle-$(PKG_VERSION)
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/asterisk11-chan-dongle
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  URL:=http://www.asterisk.org/        
-  DEPENDS:= asterisk11 +libiconv-full +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +usb-modeswitch
-  TITLE:=Huawei UMTS 3G dongle support
-endef
-
-define Package/asterisk11-chan-dongle/description
-Asterisk channel driver for Huawei UMTS 3G dongle
-endef
-
-MAKE_ARGS:= \
-       CC="$(TARGET_CC)" \
-       LD="$(TARGET_CC)" \
-       CFLAGS="$(TARGET_CFLAGS) -DASTERISK_VERSION_NUM=110000 -DLOW_MEMORY -D_XOPEN_SOURCE=600 $(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/lib/libiconv-full/include -I$(STAGING_DIR)/usr/include/asterisk-11/include -DHAVE_CONFIG_H -I. -fPIC" \
-       LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/libiconv-full/lib -liconv" \
-       DESTDIR="$(PKG_INSTALL_DIR)/usr/lib/asterisk/modules"
-
-CONFIGURE_VARS += \
-       ac_cv_type_size_t=yes \
-       ac_cv_type_ssize_t=yes
-
-define Build/Configure
-       $(call Build/Configure/Default, \
-           --with-asterisk=$(STAGING_DIR)/usr/include/asterisk-11/include \
-           $(MAKE_ARGS) \
-       )
-endef
-
-define Build/Compile
-       mkdir -p $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules
-       $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_ARGS) all install
-endef
-
-define Package/asterisk11-chan-dongle/conffiles
-/etc/asterisk/dongle.conf
-endef
-
-define Package/asterisk11-chan-dongle/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/dongle.conf $(1)/etc/asterisk/
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_dongle.so $(1)/usr/lib/asterisk/modules/
-endef
-
-$(eval $(call BuildPackage,asterisk11-chan-dongle))
diff --git a/asterisk-11.x-chan-sccp-b/Makefile b/asterisk-11.x-chan-sccp-b/Makefile
deleted file mode 100644 (file)
index 1ec852a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (C) 2013 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:=asterisk11-chan-sccp-b
-PKG_REV=4631
-PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://svn.code.sf.net/p/chan-sccp-b/code/trunk
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_PROTO:=svn
-
-PKG_FIXUP:=autoreconf -fi
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/asterisk11-chan-sccp-b
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=SCCP channel provider for asterisk
-  URL:=http://chan-sccp-b.net.sourceforge.net/
-  DEPENDS:= asterisk11 +libltdl
-endef
-
-define Package/asterisk11-chan-sccp-b/description
- SCCP channel provider for asterisk. It delivers extended functionality for SCCP phones over chan_skinny delivered
- by asterisk by default.
-endef
-
-define Build/Configure
-    $(call Build/Configure/Default,--with-asterisk=$(STAGING_DIR)/usr/include/asterisk-11)
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               CFLAGS="$(CFLAGS) -I$(PKG_BUILD_DIR)/src -DLOW_MEMORY" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install
-endef
-
-define Package/asterisk11-chan-sccp-b/conffiles
-/etc/asterisk/sccp.conf
-endef
-
-define Package/asterisk11-chan-sccp-b/install
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(CP)  ./files/sccp.openwrt.conf $(1)/etc/asterisk/sccp.conf
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sccp.so $(1)/usr/lib/asterisk/modules/
-endef
-
-$(eval $(call BuildPackage,asterisk11-chan-sccp-b))
diff --git a/asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf b/asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf
deleted file mode 100644 (file)
index c59f4cd..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-[general]
-servername = Openwrt
-keepalive = 60
-debug = core
-context = default
-dateformat = D/M/Y
-bindaddr = 192.168.1.1
-port = 2000
-disallow=all
-allow=ulaw
-allow=alaw
-allow=gsm
-firstdigittimeout = 16
-digittimeout = 6
-autoanswer_ring_time = 1
-musicclass=default
-language=en
-deny=0.0.0.0/0.0.0.0
-permit=192.168.1.0/255.255.255.0
-protocolversion=17
-
-hotline_enabled=yes
-hotline_context=default
-hotline_extension=111
-
-[SEP001122334455]
-type = device
-description = Phone Number One
-devicetype = 7940
-button = line, 111
-button = line, 113@01:shared
-button = speeddial,Phone 2 Line 1, 112, 112@hint
-
-[SEP00a1a2a3a4a5]
-type = device
-description = Phone Number Two
-devicetype = 7960
-button = line, 112
-button = line, 113@01:shared
-button = speeddial,Phone 1 Line 1, 111, 111@hint
-
-[111]
-id = 1000
-type = line
-pin = 1234
-label = Phone 1 Line 1
-description = Line 111
-mailbox = 10111
-cid_name = Phone 1 CID
-cid_num = 111
-accountcode=79111
-callgroup=1
-pickupgroup=1
-context = default
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
-[112]
-id = 1001
-type = line
-pin = 1234
-label = Phone 2 Line 1
-description = Line 112
-mailbox = 10112
-cid_name = Phone 2 CID
-cid_num = 112
-accountcode=79112
-callgroup=1
-pickupgroup=1
-context = default
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
-[113]
-id = 1002
-type = line
-pin = 1234
-label = SharedLine 1
-description = Line 113
-mailbox = 10113
-cid_name = Shared
-cid_num = 113
-accountcode=79113
-incominglimit = 2
-vmnum = 600
-trnsfvm = 1000
-
diff --git a/asterisk-11.x/Makefile b/asterisk-11.x/Makefile
deleted file mode 100644 (file)
index 011f3ba..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-#
-# Copyright (C) 2013 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:=asterisk11
-PKG_VERSION:=11.4.0
-PKG_RELEASE:=6
-
-PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://downloads.asterisk.org/pub/telephony/asterisk/releases/
-PKG_MD5SUM:=f2654567261f194f537bd2fbb97c9117
-
-PKG_BUILD_DIR=$(BUILD_DIR)/asterisk-$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/asterisk11/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/asterisk11/install/conffile
-       $(INSTALL_DIR) $(1)/etc/asterisk
-       $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/*$(2)* $(1)/etc/asterisk/
-endef
-
-define Package/asterisk11/install/lib
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(2).so* $(1)/usr/lib/
-endef
-
-define Package/asterisk11/install/sbin
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $(1)/usr/sbin/
-endef
-
-define Package/asterisk11/install/sounds
-       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/$(2) $(1)/usr/lib/asterisk/sounds/
-endef
-
-define BuildAsteriskModule
-  define Package/asterisk11-$(1)
-  $$(call Package/asterisk11/Default)
-    TITLE:=$(2) support
-    DEPENDS:= asterisk11 $(4)
-  endef
-
-  define Package/asterisk11-$(1)/conffiles
-$(5)
-  endef
-
-  define Package/asterisk11-$(1)/description
-  $$(call Package/asterisk11/Default/description)
-This package provides support $(3) in Asterisk.
-  endef
-
-  define Package/asterisk11-$(1)/install
-$(foreach c,$(6),$(call Package/asterisk11/install/conffile,$$(1),$(c));)
-$(foreach m,$(7),$(call Package/asterisk11/install/module,$$(1),$(m));)
-$(foreach s,$(8),$(call Package/asterisk11/install/sounds,$$(1),$(s));)
-  endef
-
-  $$(eval $$(call BuildPackage,asterisk11-$(1)))
-endef
-
-define Package/asterisk11/Default
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  URL:=http://www.asterisk.org/
-  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
-endef
-
-define Package/asterisk11/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/asterisk11
-$(call Package/asterisk11/Default)
-  TITLE:=Complete open source PBX, v11.x
-  MENU:=1
-  DEPENDS:=+libuuid +libopenssl +libncurses +libpopt +libpthread +libsqlite3 +librt +zlib @!TARGET_avr32
-endef
-
-define Package/asterisk11/description
-$(call Package/asterisk11/Default/description)
-endef
-
-define Package/asterisk11/conffiles
-/etc/asterisk/asterisk.conf
-/etc/asterisk/acl.conf
-/etc/asterisk/ccss.conf
-/etc/asterisk/modules.conf
-/etc/asterisk/extconfig.conf
-/etc/asterisk/extensions.conf
-/etc/asterisk/features.conf
-/etc/asterisk/indications.conf
-/etc/asterisk/logger.conf
-/etc/asterisk/manager.conf
-/etc/asterisk/rtp.conf
-/etc/asterisk/sip.conf
-/etc/asterisk/sip_notify.conf
-/etc/asterisk/udptl.conf
-/etc/default/asterisk
-/etc/init.d/asterisk
-endef
-
-AST_CFG_FILES:= \
-       asterisk.conf acl.conf ccss.conf extconfig.conf extensions.conf features.conf indications.conf logger.conf manager.conf modules.conf \
-       rtp.conf sip_notify.conf sip.conf udptl.conf
-AST_EMB_MODULES:=\
-       app_dial app_echo app_macro app_playback codec_gsm codec_ulaw format_gsm format_pcm format_wav format_wav_gsm func_callerid \
-       func_logic func_strings func_timeout chan_sip chan_local pbx_config res_crypto res_http_websocket res_rtp_asterisk res_rtp_multicast
-
-define Package/asterisk11/install
-$(call Package/asterisk11/install/lib,$(1),libasteriskssl)
-$(call Package/asterisk11/install/sbin,$(1),asterisk)
-$(call Package/asterisk11/install/sbin,$(1),safe_asterisk)
-$(call Package/asterisk11/install/sbin,$(1),astgenkey)
-$(foreach m,$(AST_CFG_FILES),$(call Package/asterisk11/install/conffile,$(1),$(m));)
-$(foreach m,$(AST_EMB_MODULES),$(call Package/asterisk11/install/module,$(1),$(m));)
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/asterisk.default $(1)/etc/default/asterisk
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk
-endef
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-xmpp),)
-  CONFIGURE_ARGS+= \
-       --with-gnutls="$(STAGING_DIR)/usr" \
-       --with-iksemel="$(STAGING_DIR)/usr"
-  SITE_VARS+= \
-       ac_cv_lib_iksemel_iks_start_sasl=yes \
-       ac_cv_lib_gnutls_gnutls_bye=yes
-else
-  CONFIGURE_ARGS+= \
-       --without-gnutls \
-       --without-iksemel
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-curl),)
-  CONFIGURE_ARGS+= \
-       --with-curl="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-curl
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-pgsql),)
-  CONFIGURE_ARGS+= \
-       --with-postgres="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-postgres
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-mysql),)
-  CONFIGURE_ARGS+= \
-       --with-mysqlclient="$(STAGING_DIR)/usr/bin"
-else
-  CONFIGURE_ARGS+= \
-       --without-mysqlclient
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-fax-spandsp),)
-  CONFIGURE_ARGS+= \
-       --with-spandsp="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-spandsp
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-chan-mobile),)
-  CONFIGURE_ARGS+= \
-       --with-bluetooth="$(STAGING_DIR)/usr"
-else
-
-  CONFIGURE_ARGS+= \
-       --without-bluetooth
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-srtp),)
-  CONFIGURE_ARGS+= \
-       --with-srtp="$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= \
-       --without-srtp
-endif
-
-ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-pbx-lua),)
-  CONFIGURE_ARGS+= \
-       --with-lua="$(STAGING_DIR)/usr"
-  TARGET_LDFLAGS+=-ldl -lcrypt
-else
-  CONFIGURE_ARGS+= \
-       --without-lua
-endif
-
-EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
-EXTRA_LDFLAGS+= $(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
-CONFIGURE_ARGS+= \
-       --without-curses \
-       --with-gsm=internal \
-       --without-cap \
-       --without-gtk2 \
-       --without-isdnnet \
-       --without-misdn \
-       --without-nbs \
-       --with-ncurses="$(STAGING_DIR)/usr" \
-       --without-netsnmp \
-       --without-newt \
-       --without-ogg \
-       --without-osptk \
-       --with-popt="$(STAGING_DIR)/usr" \
-       --without-pri \
-       --without-qt \
-       --without-radius \
-       --without-sdl \
-       --without-suppserv \
-       --without-tds \
-       --without-termcap \
-       --without-tinfo \
-       --without-vorbis \
-       --without-vpb \
-       --with-z="$(STAGING_DIR)/usr" \
-       --with-sounds-cache="$(DL_DIR)" \
-       --disable-xmldoc
-
-define Build/Prepare
-       $(call Build/Prepare/Default)
-endef
-
-define Build/Configure
-       $(call Build/Configure/Default,,$(SITE_VARS))
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               include/asterisk/version.h \
-               include/asterisk/buildopts.h defaults.h \
-               makeopts.embed_rules
-       ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY"
-       ASTLDFLAGS="$(EXTRA_LDFLAGS)"
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               ASTVARLIBDIR="/usr/lib/asterisk" \
-               ASTDATADIR="/usr/lib/asterisk" \
-               ASTKEYDIR="/usr/lib/asterisk" \
-               ASTDBDIR="/usr/lib/asterisk" \
-               NOISY_BUILD="yes" \
-               DEBUG="" \
-               OPTIMIZE="" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install samples
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/asterisk-11/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-11/include/asterisk/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-11/include/
-endef
-
-$(eval $(call BuildPackage,asterisk11))
-
-################################
-# AST modules
-# Params:
-# 1 - Package subname
-# 2 - Package title
-# 3 - Module description
-# 4 - Module dependencies
-# 5 - Full path to multiple conffiles
-# 6 - conf files
-# 7 - module files
-# 8 - sound files
-################################
-
-$(eval $(call BuildAsteriskModule,app-alarmreceiver,Alarm receiver,Central Station Alarm receiver for Ademco Contact ID,,,,app_alarmreceiver,))
-$(eval $(call BuildAsteriskModule,app-authenticate,Authenticate commands,Execute arbitrary authenticate commands,,,,app_authenticate,))
-$(eval $(call BuildAsteriskModule,app-confbridge,ConfBridge,Software bridge for multi-party audio conferencing,,/etc/asterisk/confbridge.conf,confbridge.conf,app_confbridge,))
-$(eval $(call BuildAsteriskModule,app-directed_pickup,Directed call pickup,support for directed call pickup,,,,app_directed_pickup,))
-$(eval $(call BuildAsteriskModule,app-disa,Direct Inward System Access,Direct Inward System Access,,,,app_disa,))
-$(eval $(call BuildAsteriskModule,app-exec,Exec application,support for application execution,,,,app_exec,))
-$(eval $(call BuildAsteriskModule,app-chanisavail,Channel availability check,support for checking if a channel is available,,,,app_chanisavail,))
-$(eval $(call BuildAsteriskModule,app-chanspy,Channel listen in,support for listening in on any channel,,,,app_chanspy,))
-$(eval $(call BuildAsteriskModule,app-minivm,Minimal voicemail system,a voicemail system in small building blocks working together based on the Comedian Mail voicemail,,/etc/asterisk/extensions_minivm.conf /etc/asterisk/minivm.conf,extensions_minivm.conf minivm.conf,app_minivm,))
-$(eval $(call BuildAsteriskModule,app-mixmonitor,Record a call and mix the audio,record a call and mix the audio during the recording,,,,app_mixmonitor,))
-$(eval $(call BuildAsteriskModule,app-originate,Originate a call,originating an outbound call and connecting it to a specified extension or application,,,,app_originate,))
-$(eval $(call BuildAsteriskModule,app-playtones,Playtones application,play a tone list,,,,app_playtones,))
-$(eval $(call BuildAsteriskModule,app-read,Variable read,a trivial application to read a variable,,,,app_read,))
-$(eval $(call BuildAsteriskModule,app-readexten,Extension to variable,a trivial application to read an extension into a variable,,,,app_readexten,))
-$(eval $(call BuildAsteriskModule,app-record,Record sound file,to record a sound file,,,,app_record,))
-$(eval $(call BuildAsteriskModule,app-sayunixtime,Say Unix time,an application to say Unix time,,,,app_sayunixtime,))
-$(eval $(call BuildAsteriskModule,app-senddtmf,Send DTMF digits,Sends arbitrary DTMF digits,,,,app_senddtmf,))
-$(eval $(call BuildAsteriskModule,app-sms,SMS,SMS support (ETSI ES 201 912 protocol 1),,,,app_sms,))
-$(eval $(call BuildAsteriskModule,app-stack,Stack applications, stack applications Gosub Return etc., +asterisk11-res-agi,,,app_stack,))
-$(eval $(call BuildAsteriskModule,app-system,System exec,support for executing system commands,,,,app_system,))
-$(eval $(call BuildAsteriskModule,app-talkdetect,File playback with audio detect,for file playback with audio detect,,,,app_talkdetect,))
-$(eval $(call BuildAsteriskModule,app-verbose,Verbose logging,Verbose logging application,,,,app_verbose,))
-$(eval $(call BuildAsteriskModule,app-waituntil,Sleep,support sleeping until the given epoch,,,,app_waituntil,))
-$(eval $(call BuildAsteriskModule,app-while,While loop,a while loop implementation,,,,app_while,))
-$(eval $(call BuildAsteriskModule,cdr,Provides CDR,Call Detail Record,,/etc/asterisk/cdr.conf /etc/asterisk/cdr_custom.conf /etc/asterisk/cdr_manager.conf /etc/asterisk/cdr_syslog.conf,cdr cdr_custom cdr_manager cdr_syslog,app_cdr app_forkcdr cdr_custom cdr_manager cdr_syslog func_cdr,))
-$(eval $(call BuildAsteriskModule,cdr-csv,Provides CDR CSV,Call Detail Record with CSV support,,,,cdr_csv,))
-$(eval $(call BuildAsteriskModule,cdr-sqlite3,Provides CDR SQLITE3,Call Detail Record with SQLITE3 support,libsqlite3,,,cdr_sqlite3_custom,))
-$(eval $(call BuildAsteriskModule,codec-a-mu,Alaw to ulaw translation,translation between alaw and ulaw codecs,,,,codec_a_mu,))
-$(eval $(call BuildAsteriskModule,codec-adpcm,ADPCM text,ADPCM text ,,,,codec_adpcm,))
-$(eval $(call BuildAsteriskModule,codec-alaw,Signed linear to alaw translation,translation between signed linear and alaw codecs,,,,codec_alaw,))
-$(eval $(call BuildAsteriskModule,codec-g722,G.722,a high bit rate 48/56/64Kbps ITU standard codec,,,,codec_g722,))
-$(eval $(call BuildAsteriskModule,codec-g726,Signed linear to G.726 translation,translation between signed linear and ITU G.726-32kbps codecs,,,,codec_g726,))
-$(eval $(call BuildAsteriskModule,codec-gsm,linear to GSM translation,translate between signed linear and GSM,,,,codec_gsm,))
-$(eval $(call BuildAsteriskModule,codec-ilbc,linear to ILBC translation,translate between signed linear and ILBC,,,,codec_ilbc,))
-$(eval $(call BuildAsteriskModule,codec-lpc10,Linear to LPC10 translation,translate between signed linear and LPC10,,,,codec_lpc10,))
-$(eval $(call BuildAsteriskModule,codec-resample,resample sLinear audio,resample sLinear audio,,,,codec_resample,))
-$(eval $(call BuildAsteriskModule,codec-ulaw,Linear to ulaw translation,translate between signed linear and ulaw,,,,codec_ulaw,))
-$(eval $(call BuildAsteriskModule,curl,CURL,CURL support,+libcurl,,,func_curl res_curl,))
-$(eval $(call BuildAsteriskModule,format-g726,G.726,support for headerless G.726 16/24/32/40kbps data format,,,,format_g726,))
-$(eval $(call BuildAsteriskModule,format-g729,G.729,support for raw headerless G729 data,,,,format_g729,))
-$(eval $(call BuildAsteriskModule,format-gsm,GSM format,support for GSM format,,,,format_gsm,))
-$(eval $(call BuildAsteriskModule,format-h263,H263 format,support for H264 format,,,,format_h263,))
-$(eval $(call BuildAsteriskModule,format-h264,H264 format,support for H264 format,,,,format_h264,))
-$(eval $(call BuildAsteriskModule,format-ilbc,ILBC format,support for ILBC format,,,,format_ilbc,))
-$(eval $(call BuildAsteriskModule,format-pcm,PCM,support for PCM format,,,,format_pcm,))
-$(eval $(call BuildAsteriskModule,format-sln,Raw slinear format,support for raw slinear format,,,,format_sln,))
-$(eval $(call BuildAsteriskModule,format-vox,VOX format,support for ADPCM vox format,,,,format_vox,))
-$(eval $(call BuildAsteriskModule,func-blacklist,Blacklist on callerid,looking up the callerid number and see if it is blacklisted,,,,func_blacklist,))
-$(eval $(call BuildAsteriskModule,func-cut,CUT function,CUT function,,,,func_cut,))
-$(eval $(call BuildAsteriskModule,func-db,Database interaction,functions for interaction with the database,,,,func_db,))
-$(eval $(call BuildAsteriskModule,func-devstate,Blinky lights control,functions for manually controlled blinky lights,,,,func_devstate,))
-$(eval $(call BuildAsteriskModule,func-extstate,Hinted extension state,retrieving the state of a hinted extension for dialplan control,,,,func_extstate,))
-$(eval $(call BuildAsteriskModule,func-global,Global variable,global variable dialplan functions,,,,func_global,))
-$(eval $(call BuildAsteriskModule,func-channel,Channel info,Channel info dialplan function,,,,func_channel,))
-$(eval $(call BuildAsteriskModule,func-shell,Shell,support for shell execution,,,,func_shell,))
-$(eval $(call BuildAsteriskModule,func-uri,URI encoding and decoding,Encodes and decodes URI-safe strings,,,,func_uri,))
-$(eval $(call BuildAsteriskModule,func-vmcount,vmcount dialplan,a vmcount dialplan function,,,,func_vmcount,))
-$(eval $(call BuildAsteriskModule,func-base64,base64 support,support of base64 function,,,,func_base64,))
-$(eval $(call BuildAsteriskModule,chan-agent,Agents proxy channel, an implementation of agents proxy channel,,,,chan_agent,))
-$(eval $(call BuildAsteriskModule,chan-iax2,IAX2 channel,IAX support,,/etc/asterisk/iax.conf /etc/asterisk/iaxprov.conf,iax.conf iaxprov.conf,chan_iax2,))
-$(eval $(call BuildAsteriskModule,chan-motif,Jingle channel,Motif Jingle Channel Driver,+asterisk11-res-xmpp,/etc/asterisk/motif.conf /etc/asterisk/jingle.conf,motif.conf jingle.conf,chan_motif,))
-$(eval $(call BuildAsteriskModule,chan-mgcp,MGCP channel,the channel chan_mgcp,,/etc/asterisk/mgcp.conf,mgcp.conf,chan_mgcp,))
-$(eval $(call BuildAsteriskModule,chan-mobile,Mobile channel,the channel chan_mobile,+bluez-libs,/etc/asterisk/chan_mobile.conf,chan_mobile.conf,chan_mobile,))
-$(eval $(call BuildAsteriskModule,chan-skinny,Skinny channel,the channel chan_skinny,,/etc/asterisk/skinny.conf,skinny.conf,chan_skinny,))
-$(eval $(call BuildAsteriskModule,chan-unistim,Unistim channel,channel driver for the UNISTIM (Unified Networks IP Stimulus) protocol,,/etc/asterisk/unistim.conf,unistim.conf,chan_unistim,))
-$(eval $(call BuildAsteriskModule,mysql,MySQL,MySQL support,+libmysqlclient,/etc/asterisk/res_config_mysql.conf,res_config_mysql.conf,res_config_mysql,))
-$(eval $(call BuildAsteriskModule,odbc,ODBC,ODBC support,+libpthread +libc +unixodbc,/etc/asterisk/cdr_adaptive_odbc.conf /etc/asterisk/cdr_odbc.conf /etc/asterisk/cel_odbc.conf /etc/asterisk/func_odbc.conf /etc/asterisk/res_odbc.conf,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_odbc,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_config_odbc res_odbc,))
-$(eval $(call BuildAsteriskModule,pgsql,PostgreSQL,PostgreSQL support,+libpq,/etc/asterisk/cel_pgsql.conf /etc/asterisk/cdr_pgsql.conf /etc/asterisk/res_pgsql.conf,cel_pgsql.conf cdr_pgsql.conf res_pgsql.conf,cel_pgsql cdr_pgsql res_config_pgsql,))
-$(eval $(call BuildAsteriskModule,pbx-ael,Asterisk Extension Logic,support for symbolic Asterisk Extension Logic,,,extensions.ael,pbx_ael,))
-$(eval $(call BuildAsteriskModule,pbx-spool,Call Spool,outgoing call spool support,,,,pbx_spool,))
-$(eval $(call BuildAsteriskModule,pbx-lua,Lua,provides Lua resources for Asterisk,+libpthread +libc +liblua,/etc/asterisk/extensions.lua,extensions.lua,pbx_lua,))
-$(eval $(call BuildAsteriskModule,res-ael-share,Shareable AEL code,support for shareable AEL code mainly between internal and external modules,,,,res_ael_share,))
-$(eval $(call BuildAsteriskModule,res-agi,Asterisk Gateway Interface,support for the Asterisk Gateway Interface extension,,,,res_agi,))
-$(eval $(call BuildAsteriskModule,res-clioriginate,Calls via CLI,Originate calls via the CLI,,,,res_clioriginate,))
-$(eval $(call BuildAsteriskModule,res-monitor,Provide Monitor,Cryptographic Signature capability,,,,res_monitor,))
-$(eval $(call BuildAsteriskModule,res-pktccops,Provide PacketCable COPS,simple client/server model for supporting policy control over QoS signaling protocols,,/etc/asterisk/res_pktccops.conf,res_pktccops.conf,res_pktccops,))
-$(eval $(call BuildAsteriskModule,res-smdi,Provide SMDI,Simple Message Desk Interface capability,,/etc/asterisk/smdi.conf,smdi.conf,res_smdi,))
-$(eval $(call BuildAsteriskModule,res-fax,FAX modules,Generic FAX resource for FAX technology resource modules,+asterisk11-res-timing-pthread,/etc/asterisk/res_fax.conf /etc/asterisk/udptl.conf,udptl.conf res_fax.conf,res_fax,))
-$(eval $(call BuildAsteriskModule,res-fax-spandsp,Spandsp T.38 and G.711,Spandsp T.38 and G.711 FAX Resource,+asterisk11-res-fax +libspandsp +libtiff,,,res_fax_spandsp,))
-$(eval $(call BuildAsteriskModule,res-musiconhold,MOH,Music On Hold support,,/etc/asterisk/musiconhold.conf,musiconhold.conf,res_musiconhold,))
-$(eval $(call BuildAsteriskModule,res-srtp,SRTP,Secure RTP,+libsrtp,,,res_srtp,))
-$(eval $(call BuildAsteriskModule,res-timing-pthread,pthread Timing Interface,,,,,res_timing_pthread,))
-$(eval $(call BuildAsteriskModule,res-timing-timerfd,Timerfd Timing Interface,,,,,res_timing_timerfd,))
-$(eval $(call BuildAsteriskModule,res-xmpp,XMPP client and component module,reference module for interfacting Asterisk directly as a client or component with XMPP server,+libiksemel +libopenssl,/etc/asterisk/xmpp.conf,xmpp.conf,res_xmpp,))
-$(eval $(call BuildAsteriskModule,sounds,Sounds,contains sound files,,,,,a* b* d* h* i* m* p* q* s* t*))
-$(eval $(call BuildAsteriskModule,voicemail,Voicemail,voicemail related modules,,/etc/asterisk/voicemail.conf,voicemail.conf,*voicemail res_adsi res_smdi,vm-*))
diff --git a/asterisk-11.x/files/asterisk.default b/asterisk-11.x/files/asterisk.default
deleted file mode 100644 (file)
index 9d046c4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-## startup options for /etc/init.d/asterisk
-
-ENABLE_ASTERISK="yes"
-OPTIONS=""
diff --git a/asterisk-11.x/files/asterisk.init b/asterisk-11.x/files/asterisk.init
deleted file mode 100644 (file)
index 8761561..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2013 OpenWrt.org
-
-. /lib/functions/service.sh
-
-START=99
-APP=asterisk
-OPTIONS=
-DEST=
-DEFAULT=$DEST/etc/default/$APP
-BIN_FILE=$DEST/usr/sbin/$APP
-PID_FILE=$DEST/var/run/$APP/$APP.pid
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       [ -d $DEST/var/run/asterisk ] || mkdir -p $DEST/var/run/asterisk
-       [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
-       [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
-       [ -d $DEST/var/lib ] || mkdir -p $DEST/var/lib
-       [ -h $DEST/var/lib/asterisk ] || ln -s /usr/lib/asterisk /var/lib/asterisk
-       [ -d $DEST/var/lib/asterisk/keys ] || mkdir -p $DEST/var/lib/asterisk/keys
-
-       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
-       service_start $BIN_FILE $OPTIONS
-}
-
-stop() {
-       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
-       service_stop $BIN_FILE
-}
-
-reload() {
-       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
-       service_reload $BIN_FILE
-}
diff --git a/asterisk-11.x/patches/001-pjproject-change-configure-args.patch b/asterisk-11.x/patches/001-pjproject-change-configure-args.patch
deleted file mode 100644 (file)
index 71774af..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- asterisk-11.4.0/res/Makefile       2013-02-04 20:50:52.000000000 +0100
-+++ asterisk11-new/res/Makefile        2013-06-02 13:51:22.269684111 +0200
-@@ -74,7 +74,7 @@ dist-clean::
-       rm -f pjproject/build.mak
- pjproject/build.mak: pjproject/aconfigure
--      (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec)
-+      (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound  --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec --disable-opencore-amrnb --disable-video --disable-sdl --disable-ffmpeg --disable-v4l2)
- ifneq ($(findstring $(MAKECMDGOALS),all),)
- -include pjproject/build.mak
diff --git a/asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch b/asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch
deleted file mode 100644 (file)
index d0587ed..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -16383,7 +16383,6 @@
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
--$as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_ndestroy" >&5
- $as_echo_n "checking for library containing res_9_ndestroy... " >&6; }
diff --git a/asterisk-11.x/patches/020-asterisk-enable-default-modules.patch b/asterisk-11.x/patches/020-asterisk-enable-default-modules.patch
deleted file mode 100644 (file)
index 07ca670..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/addons/chan_mobile.c
-+++ b/addons/chan_mobile.c
-@@ -27,7 +27,7 @@
- /*** MODULEINFO
-       <depend>bluetooth</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
---- a/addons/res_config_mysql.c
-+++ b/addons/res_config_mysql.c
-@@ -24,7 +24,7 @@
- /*** MODULEINFO
-       <depend>mysqlclient</depend>
--      <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
---- a/res/res_pktccops.c
-+++ b/res/res_pktccops.c
-@@ -31,7 +31,7 @@
-  */
- /*** MODULEINFO
--        <defaultenabled>no</defaultenabled>
-+      <defaultenabled>yes</defaultenabled>
-       <support_level>extended</support_level>
-  ***/
diff --git a/baresip/Makefile b/baresip/Makefile
deleted file mode 100644 (file)
index 76c2f2a..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-#
-# Copyright (C) 2010-2013 OpenWrt.org
-# Copyright (C) 2010 Alfred E. Heggestad
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=baresip
-PKG_VERSION:=0.4.4
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub/
-PKG_MD5SUM:=09ed622e6c0992e543a5a78023fbb916
-
-baresip-mods:= \
-       alsa \
-       avcodec \
-       avformat \
-       cons \
-       evdev \
-       g711 \
-       g722 \
-       oss \
-       sdl \
-       speex \
-       stdio \
-       uuid \
-       v4l \
-       v4l2 \
-
-PKG_CONFIG_DEPENDS:= \
-       $(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(baresip-mods)) \
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/baresip/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.creytiv.com/
-endef
-
-define Package/baresip
-$(call Package/baresip/Default)
-  TITLE:=Portable and modular SIP User-Agent with A/V support
-  DEPENDS:=+libre +librem +libpthread
-endef
-
-
-baresip-mod-alsa      := USE_ALSA
-baresip-mod-avcodec   := USE_FFMPEG
-baresip-mod-avformat  := USE_FFMPEG_AVFORMAT
-baresip-mod-cons      := USE_CONS
-baresip-mod-evdev     := USE_EVDEV
-baresip-mod-g711      := USE_G711
-baresip-mod-g722      := USE_G722
-baresip-mod-oss       := USE_OSS
-baresip-mod-sdl       := USE_SDL
-baresip-mod-speex     := USE_SPEEX
-baresip-mod-stdio     := USE_STDIO
-baresip-mod-uuid      := USE_UUID
-baresip-mod-v4l       := USE_V4L
-baresip-mod-v4l2      := USE_V4L2
-
-BARESIP_MOD_OPTIONS:= \
-       MOD_AUTODETECT= \
-       $(foreach m,$(baresip-mods),$(baresip-mod-$(m))=$(if $(CONFIG_PACKAGE_baresip-mod-$(m)),1))
-
-TARGET_CFLAGS += $(FPIC)
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
-               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
-               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
-               LIBREM_PATH="../rem" \
-               CC="$(TARGET_CC)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               EXTRA_CFLAGS="$(TARGET_CFLAGS) -DOPENWRT" \
-               SYSROOT="$$$$($(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s#/include/pthread.h##p')" \
-               SYSROOT_ALT="$(STAGING_DIR)/usr" \
-               RELEASE=1 \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               OS="linux" \
-               $(BARESIP_MOD_OPTIONS) \
-               all install
-endef
-
-define Package/baresip/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/baresip $(1)/usr/bin/
-       $(INSTALL_DIR) $(1)/usr/lib/baresip/modules
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/ice.so \
-               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/stun.so \
-               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/turn.so \
-               $(1)/usr/lib/baresip/modules/.
-       $(INSTALL_DIR) $(1)/usr/share/baresip
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/baresip/* $(1)/usr/share/baresip/.
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/baresip.init $(1)/etc/init.d/baresip
-endef
-
-
-#
-# 1. Name
-# 2. Title
-# 3. Files
-# 4. Depends
-#
-define BuildPlugin
-
-  define Package/baresip-mod-$(1)
-    $$(call Package/baresip/Default)
-    TITLE:= baresip $(2) module
-    DEPENDS:= baresip $(4)
-  endef
-
-  define Package/baresip-mod-$(1)/install
-       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
-       for f in $(3); do \
-               $(CP) \
-                       $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$$$$$$$${f}.so \
-                       $$(1)/usr/lib/baresip/modules/ ; \
-       done
-  endef
-
-  $$(eval $$(call BuildPackage,baresip-mod-$(1)))
-endef
-
-
-$(eval $(call BuildPackage,baresip))
-
-$(eval $(call BuildPlugin,alsa,ALSA audio driver,alsa,+PACKAGE_baresip-mod-alsa:alsa-lib))
-$(eval $(call BuildPlugin,avcodec,FFmpeg video codecs,avcodec,+PACKAGE_baresip-mod-avcodec:libffmpeg-full))
-$(eval $(call BuildPlugin,avformat,FFmpeg video source,avformat,+PACKAGE_baresip-mod-avformat:libffmpeg-full))
-$(eval $(call BuildPlugin,cons,console UI,cons,))
-$(eval $(call BuildPlugin,evdev,input event device UI,evdev,))
-$(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
-$(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+PACKAGE_baresip-mod-g722:libspandsp))
-$(eval $(call BuildPlugin,sdl,SDL video display,sdl,+libsdl))
-$(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
-$(eval $(call BuildPlugin,speex,Speex audio codec,speex,+PACKAGE_baresip-mod-speex:libspeex))
-$(eval $(call BuildPlugin,stdio,standard I/O UI,stdio,))
-$(eval $(call BuildPlugin,uuid,UUID,uuid,+libuuid))
-$(eval $(call BuildPlugin,v4l,Video4Linux video source,v4l,+PACKAGE_baresip-mod-v4l:libv4l))
-$(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,v4l2,+PACKAGE_baresip-mod-v4l2:libv4l))
diff --git a/baresip/files/baresip.init b/baresip/files/baresip.init
deleted file mode 100644 (file)
index e398595..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2010-2011 OpenWrt.org
-# Copyright (C) 2010 Alfred E. Heggestad
-#
-
-START=92
-
-start() {
-       service_start /usr/bin/baresip -d
-}
-
-stop() {
-       service_stop /usr/bin/baresip
-}
diff --git a/baresip/patches/100-videodev-compat.patch b/baresip/patches/100-videodev-compat.patch
deleted file mode 100644 (file)
index 7d74e0c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/modules/v4l/v4l.c
-+++ b/modules/v4l/v4l.c
-@@ -13,7 +13,7 @@
- #include <fcntl.h>
- #include <unistd.h>
- #undef __STRICT_ANSI__ /* needed for RHEL4 kernel 2.6.9 */
--#include <linux/videodev.h>
-+#include <libv4l1-videodev.h>
- #include <pthread.h>
- #include <re.h>
- #include <baresip.h>
diff --git a/freeswitch/Makefile b/freeswitch/Makefile
deleted file mode 100644 (file)
index c18f5fd..0000000
+++ /dev/null
@@ -1,1093 +0,0 @@
-#
-# Copyright (C) 2009-2013 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:=freeswitch
-PKG_DISTNAME:=$(PKG_NAME)_git
-PKG_VERSION:=1.5.2b
-
-
-#
-# The latest FS git hash in PKG_SOURCE_VERSION can be obtained from http://fisheye.freeswitch.org
-#
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
-FS_DEFAULT_HEAD:=bd2862080c7f55450a99b5565650c8300512a59a
-FS_LATEST_HEAD:=$(if $(DUMP),$(FS_DEFAULT_HEAD),$(shell git ls-remote $(PKG_SOURCE_URL) HEAD | cut -f1))
-PKG_SOURCE_VERSION:=$(if $(CONFIG_FS_WITH_PULL_CURRENT),$(FS_LATEST_HEAD),$(FS_DEFAULT_HEAD))
-PKG_SOURCE_VERSION_SHORT:=$(shell echo $(PKG_SOURCE_VERSION)|cut -b -7)
-PKG_RELEASE:=$(PKG_SOURCE_VERSION_SHORT)
-PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)
-PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_SOURCE_VERSION_SHORT).tar.bz2
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
-
-PKG_FIXUP:=libtool autoreconf
-PKG_BUILD_PARALLEL:=1
-
-
-FS_MOD_AVAILABLE:= \
-       abstraction \
-       alsa \
-       amr \
-       amrwb \
-       avmd \
-       blacklist \
-       bv \
-       callcenter \
-       cdr-csv \
-       cdr-pg-csv \
-       cdr-sqlite \
-       celt \
-       cepstral \
-       cidlookup \
-       cluechoo \
-       codec2 \
-       commands \
-       conference \
-       console \
-       curl \
-       dahdi-codec \
-       db \
-       dialplan-asterisk \
-       dialplan-directory \
-       dialplan-xml \
-       dingaling \
-       directory \
-       distributor \
-       dptools \
-       easyroute \
-       enum \
-       erlang-event \
-       esf \
-       event-multicast \
-       event-socket \
-       event-zmq \
-       expr \
-       fifo \
-       file-string \
-       flite \
-       fsk \
-       fsv \
-       g723-1 \
-       g729 \
-       gsmopen \
-       h26x \
-       h323 \
-       hash \
-       html5 \
-       httapi \
-       http-cache \
-       ilbc \
-       isac \
-       java \
-       json-cdr \
-       lcr \
-       local-stream \
-       logfile \
-       loopback \
-       lua \
-       managed \
-       mp4 \
-       mp4v \
-       native-file \
-       nibblebill \
-       openzap \
-       opus \
-       oreka \
-       portaudio \
-       portaudio-stream \
-       posix-timer \
-       radius-cdr \
-       rayo \
-       redis \
-       rss \
-       rtmp \
-       sangoma-codec \
-       say-de \
-       say-en \
-       say-es \
-       say-fa \
-       say-fr \
-       say-hu \
-       say-it \
-       say-nl \
-       say-pt \
-       say-ru \
-       say-th \
-       say-zh \
-       shell-stream \
-       silk \
-       siren \
-       skel \
-       skinny \
-       skypopen \
-       sms \
-       snapshot \
-       snipe-hunt \
-       sndfile \
-       snmp \
-       snom \
-       sofia \
-       sonar \
-       spandsp \
-       speex \
-       spidermonkey \
-       spidermonkey-core-db \
-       spidermonkey-curl \
-       spidermonkey-odbc \
-       spidermonkey-socket \
-       spidermonkey-teletone \
-       spy \
-       stress \
-       syslog \
-       timerfd \
-       tone-stream \
-       tts-commandline \
-       unimrcp \
-       valet-parking \
-       vmd \
-       voicemail \
-       voicemail-ivr \
-       vp8 \
-       xml-cdr \
-       xml-curl \
-       xml-rpc \
-       xml-scgi \
-       yaml \
-
-
-PKG_CONFIG_DEPENDS:= \
-       CONFIG_FS_WITH_ALSA \
-       CONFIG_FS_WITH_BUILTIN_ZRTP \
-       CONFIG_FS_WITH_FIXED_POINT \
-       CONFIG_FS_WITH_IPV6 \
-       CONFIG_FS_WITH_MYSQL \
-       CONFIG_FS_WITH_ODBC \
-       CONFIG_FS_WITH_OPT \
-       CONFIG_FS_WITH_POSTGRESQL \
-       CONFIG_FS_WITH_PULL_CURRENT \
-       CONFIG_FS_WITH_SQLITE3 \
-       CONFIG_FS_WITH_SCTP \
-       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-mod-%,$(FS_MOD_AVAILABLE)) \
-
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
-
-
-TAR_OPTIONS+= --strip-components=1 -C $(PKG_BUILD_DIR)
-
-
-define Package/$(PKG_NAME)/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.$(PKG_NAME).org/
-  MAINTAINER:=Mazilo <openwrt.forum.mazilo@recursor.net>
-endef
-
-
-define Package/$(PKG_NAME)
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH open source telephony platform ($(PKG_SOURCE_VERSION_SHORT))
-  DEPENDS:=+libcurl +libiconv-full +libjpeg +libncurses +libpthread +librt +libstdcpp +FS_WITH_POSTGRESQL:libpq
-  MENU:=1
-endef
-
-
-define Package/$(PKG_NAME)/description
-  FreeSWITCH is an open source telephony platform designed to
-  facilitate the creation of voice and chat driven products scaling
-  from a soft-phone up to a soft-switch.  See http://wiki.$(PKG_NAME).org
-endef
-
-
-define Package/$(PKG_NAME)/config
-    config FS_WITH_PULL_CURRENT
-    depends on DEVEL
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Pull the latest git HEAD - $(PKG_SOURCE_VERSION_SHORT) (Press < Help > for more information)"
-    default n
-    help
-       This existing git HEAD ($(FS_DEFAULT_HEAD)) is probably outdated. 
-       Enable this option for the latest git HEAD ($(FS_LATEST_HEAD)). 
-       Enable this option ONLY if you know what you are doing. It may and/or may not be cleanly 
-       compiled and may require some intervension to create new patches. If you take this route
-       and come up with some patches, please contemplate to contribute or send in your patches.
-
-    config FS_WITH_ALSA
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Enable ALSA for sound support"
-    default n
-    help
-        Compile $(PKG_NAME) with ALSA support.
-
-    config FS_WITH_BUILTIN_ZRTP
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Enable built-in ZRTP"
-    default y
-    help
-        Compile $(PKG_NAME) with ZRTP support.
-
-    config FS_WITH_IPV6
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Enable IPV6 support in APR"
-    default y
-    help
-        Compile libs/apr package with IPV6 support.
-
-    config FS_WITH_OPT
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Enable optimization"
-    default y
-    help
-       Compile $(PKG_NAME) with optimization flag enabled. This will add max optimising
-       compiler flags
-
-    config FS_WITH_SCTP
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Enable SCTP (Stream Control Transfer Protocol) support in APR"
-    default y
-    select PACKAGE_sctp
-    help
-        Compile $(PKG_NAME) with SCTP support.
-
-    config FS_WITH_MYSQL
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Compile apr-util with MySQL"
-    default n
-    select PACKAGE_libmysqlclient
-    help
-        Compile libs/apr-util with MySQL.
-
-    config FS_WITH_POSTGRESQL
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Compile apr-util (also enable $(PKG_NAME) core) with PostgreSQL support"
-    default n
-    help
-        Compile both libs/apr-util and $(PKG_NAME) with PostgreSQL support.
-
-    config FS_WITH_SQLITE3
-    depends on PACKAGE_$(PKG_NAME)
-    bool "Compile apr-util with SQLITE3"
-    default y
-    select PACKAGE_libsqlite3
-    help
-        Compile libs/apr-util with SQLITE3.
-
-    config FS_WITH_ODBC
-    depends on PACKAGE_$(PKG_NAME)
-    depends on PACKAGE_sqliteodbc
-    depends on PACKAGE_unixodbc_svn
-    bool "Compile with ODBC support (Requires unixodbc_svn NOT YET AVAILABLE)"
-    default n
-    help
-       Compile $(PKG_NAME) with ODBC support. Since both sqliteodbc and unixodbc_svn packages
-       are not yet available on OpenWRT, $(PKG_NAME) CAN NOT be compiled with ODBC support.
-endef
-
-
-define Package/$(PKG_NAME)-mod-spandsp/config
-    config FS_WITH_FIXED_POINT
-    depends on PACKAGE_$(PKG_NAME)-mod-spandsp
-    bool "Enable fixed point support for spandsp (may degrade performance)"
-    default n
-    help
-       Compile spandsp package with a fixed point support. ONLY enabled this option when
-       necessary, i.e. CPU doesn't support floating computation.
-endef
-
-
-define Package/$(PKG_NAME)-example-config
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH example config (commented)
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-example-config/description
-  The default configuration included with FreeSWITCH. It is not intended to be
-  a final product, and is thus moved to /usr/share/$(PKG_NAME)/examples/conf to
-  be an example of how FreeSWITCH can be configured.
-endef
-
-
-define Package/$(PKG_NAME)-config-upstream-defaults
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH upstream config
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-config-upstream-defaults/description
-  The default configuration included with FreeSWITCH. It is not intended to be
-  a final product, and but is included for those who don't want to use the
-  OpenWRT configuration and/or want to try things as prepared by upstream.
-endef
-
-
-define Package/$(PKG_NAME)-config-minimal
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH minimal config
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-config-minimal/description
-  A minimal configuration of FreeSWITCH for OpenWRT devices.  Is what the UCI
-  configuration began with.
-endef
-
-
-define Package/$(PKG_NAME)-collection-upstream-defaults
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FS upstream def sample conf
-  DEPENDS:= $(PKG_NAME) \
-               +$(PKG_NAME)-config-upstream-defaults \
-               +$(PKG_NAME)-mod-callcenter \
-               +$(PKG_NAME)-mod-codec2 \
-               +$(PKG_NAME)-mod-commands \
-               +$(PKG_NAME)-mod-conference \
-               +$(PKG_NAME)-mod-curl \
-               +$(PKG_NAME)-mod-dialplan-xml \
-               +$(PKG_NAME)-mod-dingaling \
-               +$(PKG_NAME)-mod-dptools \
-               +$(PKG_NAME)-mod-event-socket \
-               +$(PKG_NAME)-mod-g723-1 \
-               +$(PKG_NAME)-mod-g729 \
-               +$(PKG_NAME)-mod-hash \
-               +$(PKG_NAME)-mod-http-cache \
-               +$(PKG_NAME)-mod-ilbc \
-               +$(PKG_NAME)-mod-local-stream \
-               +$(PKG_NAME)-mod-lua \
-               +$(PKG_NAME)-mod-native-file \
-               +$(PKG_NAME)-mod-sndfile \
-               +$(PKG_NAME)-mod-sofia \
-               +$(PKG_NAME)-mod-spandsp \
-               +$(PKG_NAME)-mod-speex \
-               +$(PKG_NAME)-mod-syslog \
-               +$(PKG_NAME)-mod-tone-stream \
-               +$(PKG_NAME)-mod-xml-curl \
-               +$(PKG_NAME)-mod-xml-rpc \
-               +$(PKG_NAME)-tools
-endef
-
-
-define Package/$(PKG_NAME)-collection-minimal
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH minimal package collection
-  DEFAULT:=y
-  DEPENDS:= $(PKG_NAME) \
-               +$(PKG_NAME)-config-minimal \
-               +$(PKG_NAME)-mod-codec2 \
-               +$(PKG_NAME)-mod-commands \
-               +$(PKG_NAME)-mod-dialplan-xml \
-               +$(PKG_NAME)-mod-dptools \
-               +$(PKG_NAME)-mod-event-socket \
-               +$(PKG_NAME)-mod-hash \
-               +$(PKG_NAME)-mod-local-stream \
-               +$(PKG_NAME)-mod-sndfile \
-               +$(PKG_NAME)-mod-sofia \
-               +$(PKG_NAME)-mod-syslog \
-               +$(PKG_NAME)-mod-tone-stream \
-               +$(PKG_NAME)-tools
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-08KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 8KHz english sounds
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-16KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 16KHz english sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-en-08KHz
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-32KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 32KHz english sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-en-16KHz
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-48KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 48KHz english sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-en-32KHz
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-08KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 8KHz music-on-hold sounds
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-16KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 16KHz music-on-hold sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-moh-08KHz
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-32KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 32KHz music-on-hold sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-moh-16KHz
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-48KHz
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH 48KHz music-on-hold sounds
-  DEPENDS:= +$(PKG_NAME)-sounds-moh-32KHz
-endef
-
-
-define Package/$(PKG_NAME)-tools
-$(call Package/$(PKG_NAME)/Default)
-  TITLE:=FreeSWITCH control tools
-  DEPENDS:= $(PKG_NAME)
-endef
-
-
-define Download/files
- define Download/$(1)
-  FILE:=$(2)
-  URL:=$(if $(4),$(4),http://files.$(PKG_NAME).org)/$(5)
-  MD5SUM:=$(3)
- endef
- define Prepare/$(1)
-  $(LN) $(DL_DIR)/$(2) $(PKG_BUILD_DIR)/$(6)
- endef
- $$(eval $$(call Download,$(1)))
-endef
-
-
-MAKE_INSTALL_TARGETS:=install
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),)
- $(eval $(call Download/files,celt,celt-0.10.0.tar.gz,a656f6176e9be84027c0e51ceedd710f,,downloads/libs/,libs/))
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl),)
- $(eval $(call Download/files,json-cdr,json-c-0.9.tar.gz,4653b3b9c568bb9c782178abfaac128d,,downloads/libs/,libs/))
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-event-zmq),)
- $(eval $(call Download/files,event-zmq,zeromq-2.1.9.tar.gz,94c5e0262a79c5f82bc0b178c1f8a33d,http://download.zeromq.org http://download.zeromq.org/historic,,libs/))
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-flite),)
- $(eval $(call Download/files,flite,flite-1.5.4-current.tar.bz2,f3a2d88b1059f6f4ff3c20a8169bc0f4,,downloads/libs/,libs/))
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-opus),)
- $(eval $(call Download/files,opus,opus-1.0.2.tar.gz,c503ad05a59ddb44deab96204401be03,,downloads/libs/,libs/))
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-08KHz),)
- $(eval $(call Download/files,sounds-en-08KHz,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.25.tar.gz,1140efad453ed1a72259d799f7fef0fc,,,))
-       MAKE_INSTALL_TARGETS+= sounds-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-16KHz),)
- $(eval $(call Download/files,sounds-en-16KHz,$(PKG_NAME)-sounds-en-us-callie-16000-1.0.25.tar.gz,20b9bf1b1637be2abe838113fb675c41,,,))
-       MAKE_INSTALL_TARGETS+= hd-sounds-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-32KHz),)
- $(eval $(call Download/files,sounds-en-32KHz,$(PKG_NAME)-sounds-en-us-callie-32000-1.0.25.tar.gz,977d453d8ffa9a5b0fadee8408e84f60,,,))
-       MAKE_INSTALL_TARGETS+= uhd-sounds-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-48KHz),)
- $(eval $(call Download/files,sounds-en-48KHz,$(PKG_NAME)-sounds-en-us-callie-48000-1.0.25.tar.gz,96ec0df908eb1c535063fdc8580626d2,,,))
-       MAKE_INSTALL_TARGETS+= cd-sounds-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-08KHz),)
- $(eval $(call Download/files,sounds-moh-08KHz,$(PKG_NAME)-sounds-music-8000-1.0.8.tar.gz,f63ef3cc3507af079ae5c7b8b8a01e42,,,))
-       MAKE_INSTALL_TARGETS+= moh-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-16KHz),)
- $(eval $(call Download/files,sounds-moh-16KHz,$(PKG_NAME)-sounds-music-16000-1.0.8.tar.gz,7fd0ca9a9e3878783baa39b8187743bf,,,))
-       MAKE_INSTALL_TARGETS+= hd-moh-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-32KHz),)
- $(eval $(call Download/files,sounds-moh-32KHz,$(PKG_NAME)-sounds-music-32000-1.0.8.tar.gz,7e03932ea81b8d0bf6d686f838b060b4,,,))
-       MAKE_INSTALL_TARGETS+= uhd-moh-install
-endif
-
-
-ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-48KHz),)
- $(eval $(call Download/files,sounds-moh-48KHz,$(PKG_NAME)-sounds-music-48000-1.0.8.tar.gz,d06cd2a80379f224affab21f5180e4c6,,,))
-       MAKE_INSTALL_TARGETS+= cd-moh-install
-endif
-
-
-#
-# XXX: -fgnu89-inline is not supported on all compiler versions, so only enable it on avr32 where it solves build issues
-#
-ifneq ($(CONFIG_avr32),)
-  TARGET_CFLAGS += -fgnu89-inline
-  TARGET_CXXFLAGS += -fgnu89-inline
-endif
-
-
-ifneq ($(CONFIG_USE_EGLIBC),)
-  ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),)
-    TARGET_CFLAGS += -DNO_GETLOGIN
-  endif
-endif
-
-
-FS_TARGET_CFLAGS:= $(TARGET_CFLAGS) -DLUA_USE_LINUX $(FPIC) -std=gnu99 -Wno-format
-FS_TARGET_CXXFLAGS:= $(TARGET_CXXFLAGS) -DLUA_USE_LINUX $(FPIC) -Wno-format
-FS_TARGET_CPPFLAGS:= -I. -I./lua $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),-I$(STAGING_DIR_HOST)/lib/erlang/lib/erl_interface-3.7.7/include) $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-json-cdr),-Wno-error) $(TARGET_CPPFLAGS)
-
-
-CONFIGURE_ARGS+= \
-       --host=$(GNU_TARGET_NAME) \
-       --build=$(GNU_HOST_NAME) \
-       --prefix="/usr/share/$(PKG_NAME)" \
-       --bindir="/usr/bin" \
-       --libdir="/usr/lib" \
-       --srcdir="$(PKG_BUILD_DIR)" \
-       --sysconfdir="/etc/$(PKG_NAME)" \
-       --with-modinstdir="/usr/lib/$(PKG_NAME)" \
-       --with-random="/dev/urandom" \
-       $(if $(CONFIG_FS_WITH_MYSQL),--with,--without)-mysql \
-       $(if $(CONFIG_FS_WITH_POSTGRESQL),--with,--without)-pgsql \
-       $(if $(CONFIG_FS_WITH_SQLITE3),--with,--without)-sqlite3 \
-       $(call autoconf_bool,CONFIG_FS_WITH_IPV6,ipv6) \
-       $(call autoconf_bool,CONFIG_FS_WITH_OPT,optimization) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),--with-erlang,--without-erlang) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),--with-ogg="$(STAGING_DIR)/usr",--without-ogg) \
-       $(if ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-cdr)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-curl)),--with-libcurl="$(STAGING_DIR)/usr",--without-libcurl) \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-java),--with-java="$(STAGING_DIR)/usr",--without-java) \
-       $(call autoconf_bool,CONFIG_FS_WITH_POSTGRESQL,core-pgsql-support) \
-       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp && CONFIG_FS_WITH_FIXED_POINT,fixed-point) \
-       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp,builtin-tiff) \
-       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-timerfd,timerfd-wrapper) \
-       $(call autoconf_bool,CONFIG_FS_WITH_BUILTIN_ZRTP,zrtp) \
-       $(call autoconf_bool,CONFIG_FS_WITH_ODBC,core-odbc-support) \
-       $(if $(CONFIG_FS_WITH_ODBC),--with-odbc="$(STAGING_DIR)/usr") \
-       $(if $(CONFIG_FS_WITH_ODBC),--with-odbc-lib="$(STAGING_DIR)/usr/lib") \
-
-
-CONFIGURE_VARS+= \
-       config_TARGET_CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
-       config_TARGET_CFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CFLAGS)" \
-       config_TARGET_CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
-       config_TARGET_CXXFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CXXFLAGS)" \
-       config_TARGET_CPPFLAGS="$(FS_TARGET_CPPFLAGS)" \
-       config_TARGET_READLINE_INC="$(FS_TARGET_CPPFLAGS)" \
-       config_TARGET_READLINE_LIBS="$(TARGET_LDFLAGS) -lreadline -lncurses" \
-       config_TARGET_LIBS="$(TARGET_LDFLAGS) -lpthread -ldl" \
-       config_BUILD_CC="$(HOSTCC)" \
-       config_BUILD_CFLAGS="$(HOST_CFLAGS)" \
-       CC_FOR_BUILD="$(HOSTCC)" \
-       BUILDTOOL_CC="$(HOSTCC)" \
-       BUILDTOOL_CCLD="$(HOSTCC)" \
-       LDFLAGS="$$$$LDFLAGS" \
-       LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
-       CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
-       CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
-       AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
-       RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
-       CFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CFLAGS)" \
-       CXXFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CXXFLAGS)" \
-       CPPFLAGS="$(FS_TARGET_CPPFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS) -Wl,-rpath-link=\"$(STAGING_DIR)/usr/lib\"" \
-       HOST_CC="/usr/bin/cc" \
-       HOST_CXX="/usr/bin/g++" \
-       CROSS_COMPILE="1" \
-       ax_cv_c_compiler_vendor="gnu" \
-       ac_cv_dev_urandom="yes" \
-       ac_cv_file_dbd_apr_dbd_mysql_c="no" \
-       ac_cv_file__dev_random="no" \
-       ac_cv_file__dev_urandom="yes" \
-       ac_cv_file___dev_urandom_="yes" \
-       ac_cv_func_mmap_fixed_mapped="yes" \
-       ac_cv_func_pthread_rwlock_init="yes" \
-       ac_cv_struct_rlimit="yes" \
-       apr_cv_mutex_recursive="yes" \
-       apr_cv_process_shared_works="no" \
-       apr_cv_tcp_nodelay_with_cork="yes" \
-       apr_cv_type_rwlock_t="yes" \
-       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),ac_cv_path_PERL="yes",) \
-       libzmq_cv_cxx_werror_flag="" \
-
-
-define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(call Prepare/celt)
-       $(call Prepare/event-zmq)
-       $(call Prepare/flite)
-       $(call Prepare/json-cdr)
-       $(call Prepare/opus)
-       $(call Prepare/sounds-en-08KHz)
-       $(call Prepare/sounds-en-16KHz)
-       $(call Prepare/sounds-en-32KHz)
-       $(call Prepare/sounds-en-48KHz)
-       $(call Prepare/sounds-moh-08KHz)
-       $(call Prepare/sounds-moh-16KHz)
-       $(call Prepare/sounds-moh-32KHz)
-       $(call Prepare/sounds-moh-48KHz)
-endef
-
-
-define Build/Configure
-       if [ -d $(PKG_BUILD_DIR)/libs/libcodec2/src ]; then \
-               (cd $(PKG_BUILD_DIR)/libs/libcodec2/src; $(HOSTCC) -c generate_codebook.c; $(HOSTCC) -o generate_codebook generate_codebook.o -lm) \
-       fi
-       (cd $(PKG_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap.sh)
-       $(call Build/Configure/Default,)
-       $(foreach m,$(FS_MOD_AVAILABLE),
-               $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-$(m)),
-                       $(SED) 's|^[ #]*\([^#]*/mod_$(subst -,_,$(m))\)$$$$|\1|g' $(PKG_BUILD_DIR)/modules.conf
-               ,
-                       $(SED) 's|^\([^#]*/mod_$(subst -,_,$(m))\)$$$$|#\1|g' $(PKG_BUILD_DIR)/modules.conf
-               )
-       )
-endef
-
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
-               RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
-               CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
-               CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
-               all $(MAKE_INSTALL_TARGETS)
-       $(SED) 's|^\([ \t]*\)\(.*\)"mod_console"\(.*\)$$$$|\1<!-- \2"mod_console"\3 -->|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
-       $(SED) 's|^\([ \t]*\)<!-- *\(.*\)"mod_syslog"\(.*\) *-->\(.*\)$$$$|\1\2"mod_syslog"\3\4|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
-endef
-
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/$(PKG_NAME)
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/include/* $(1)/usr/include/$(PKG_NAME)/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME).{a,so*} $(1)/usr/lib/
-endef
-
-
-define Package/$(PKG_NAME)/install
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/scripts
-       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
-       $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
-       $(INSTALL_DATA) ./files/$(PKG_NAME).default $(1)/etc/default/$(PKG_NAME)
-       $(INSTALL_DATA) ./files/$(PKG_NAME).hotplug $(1)/etc/hotplug.d/iface/90-$(PKG_NAME)
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME)* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(PKG_NAME).pc $(1)/usr/lib/pkgconfig/
-       $(if $(1)/usr/lib/lib$(PKG_NAME).la,sed -i -e "s#-lcurl -lz\(.*\)/usr/lib/libexpat.la\(.*\)$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)\(.*\)#-L/usr/lib -lcurl -lz /usr/lib/libexpat.la\2/usr\3#g" $(1)/usr/lib/lib$(PKG_NAME).la)
-endef
-
-
-define Package/$(PKG_NAME)-collection-upstream-defaults/install
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-example-config/install
-       $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/examples/conf
-       $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/usr/share/$(PKG_NAME)/examples/conf/
-endef
-
-
-define Package/$(PKG_NAME)-config-upstream-defaults/install
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-       $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME) $(1)/etc
-endef
-
-
-define Package/$(PKG_NAME)-collection-minimal/install
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-collection-uci-minimal/install
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-endef
-
-
-define Package/$(PKG_NAME)-config-minimal/install
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/autoload_configs
-
-       #
-       # Copying dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml
-       # fur_elise.ttml mime.types tetris.ttml tones.conf vars.xml
-       #
-       $(foreach f,dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml fur_elise.ttml mime.types tetris.ttml vars.xml,$(if $(PKG_BUILD_DIR)/conf/vanilla/$(f),$(CP) $(PKG_BUILD_DIR)/conf/vanilla/$(f) $(1)/etc/$(PKG_NAME);))
-
-       #
-       # Copying acl ivr modules post_load_modules switch timezones
-       #
-       $(foreach f,acl ivr modules post_load_modules switch timezones,$(if $(PKG_BUILD_DIR)/conf/vanilla/autoload_configs/$(f).conf.xml,$(CP) $(PKG_BUILD_DIR)/conf/vanilla/autoload_configs/$(f).conf.xml $(1)/etc/$(PKG_NAME)/autoload_configs;))
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-08KHz/install
-       #
-       # sounds-en-8KHz
-       #
-       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
-       do \
-               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000; \
-               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000; \
-       done
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-16KHz/install
-       #
-       # sounds-en-16KHz
-       #
-       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
-       do \
-               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000; \
-               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000; \
-       done
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-32KHz/install
-       #
-       # sounds-en-32KHz
-       #
-       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
-       do \
-               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000; \
-               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000; \
-       done
-endef
-
-
-define Package/$(PKG_NAME)-sounds-en-48KHz/install
-       #
-       # sounds-en-48KHz
-       #
-       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
-       do \
-               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000; \
-               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000; \
-       done
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-08KHz/install
-       #
-       # sounds-moh-8KHz
-       #
-       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/8000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/8000;
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/8000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-16KHz/install
-       #
-       # sounds-moh-16KHz
-       #
-       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/16000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/16000;
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/16000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-32KHz/install
-       #
-       # sounds-moh-32KHz
-       #
-       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/32000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/32000;
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/32000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
-endef
-
-
-define Package/$(PKG_NAME)-sounds-moh-48KHz/install
-       #
-       # sounds-moh-48KHz
-       #
-       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/48000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/48000;
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/48000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
-endef
-
-
-define Package/$(PKG_NAME)-tools/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_cli $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_encode $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_ivrd $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fsxs $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/gentls_cert $(1)/usr/bin/
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/tone2wav $(1)/usr/bin/
-endef
-
-
-# 1. Name
-# 2. Title
-# 3. Selection on module configuration file
-# 4. Files (module files include different names)
-# 5. Files (supporting files include different names)
-# 6. Inter module depends
-# 7. Extra depends
-#
-define BuildPlugin
-  define Package/$(PKG_NAME)-mod-$(1)
-    $$(call Package/$(PKG_NAME)/Default)
-    TITLE:= FS $(2) module
-    DEPENDS:= $(PKG_NAME) $(foreach m,$(6),+$(PKG_NAME)-mod-$(m)) $(7)
-  endef
-
-  define Package/$(PKG_NAME)-mod-$(1)/install
-       [ -z "mod_$(subst -,_,$(1))" ] || $(INSTALL_DIR) $$(1)/usr/lib/$(PKG_NAME)
-
-       for f in $$$$(realpath $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/mod_$(subst -,_,$(1)).*)) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/$(4)_*); \
-       do \
-               $(CP) $$$$$$$${f} $$(1)/usr/lib/$(PKG_NAME)/; \
-       done
-
-       #
-       # mod_$(subst -,_,$(1)): $(5)
-       #
-       $(foreach f,$(5),[ -d $(dir $$(1)/usr/${f}) ] || $(INSTALL_DIR) $(dir $$(1)/usr/${f});$(CP) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/${f}*) $(dir $$(1)/usr/${f});)
-
-       #
-       # mod_$(subst -,_,$(1)): Clean installed library control files from referencig to OpenWRT PATH.
-       #
-       for f in `ls $$(1)/usr/lib/$(PKG_NAME)/*.la`; \
-       do \
-               sed -i -e "s#' \(.*\)/usr/lib/libexpat.la\(.*\)$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)\(.*\)#' -L/usr/lib -L/usr/lib/libiconv-full/lib -L/usr/lib/libintl-full/lib /usr/lib/lib$(PKG_NAME).la /usr/lib/libexpat.la\2/usr\3#g;s#' \(.*\)/usr/lib/libintl-full/lib#' -L/usr/lib -L/usr/lib/libiconv-full/lib -L/usr/lib/libintl-full/lib#g;s#-L\.\.##g;s#$(PKG_BUILD_DIR)\(.*\)/usr/lib/libtiff.la\(.*\)#/usr/lib/libtiff.la\2#g" $$$$$$$${f}; \
-       done
-
-       #
-       # 1. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
-
-       #
-       # 2. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
-
-       #
-       # 3. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
-
-       #
-       # 4. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
-
-       #
-       # 5. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
-
-       #
-       # 6. Additional configuration files for mod_$(subst -,_,$(1)) from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/$(1)/*.$(1))))
-       #
-       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/$(1)/*.$(1))),[ -d $$(1)/etc/$(PKG_NAME)/$(1) ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/$(1);$(CP) $(PKG_BUILD_DIR)/conf/$(3)/$(1) $$(1)/etc/$(PKG_NAME))
-  endef
-
-  define Package/$(PKG_NAME)-mod-$(1)/postinst
-#!/bin/sh
-sed -i -e 's|^\([ \t]*\)<!-- *\(.*\)"mod_$(subst -,_,$(1))"\(.*\) *-->\(.*\)$$$$|\1\2"mod_$(subst -,_,$(1))"\3\4|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
-  endef
-
-  define Package/$(PKG_NAME)-mod-$(1)/prerm
-#!/bin/sh
-sed -i -e 's|^\([ \t]*\)\(.*\)"mod_$(subst -,_,$(1))"\(.*\)$$$$|\1<!-- \2"mod_$(subst -,_,$(1))"\3 -->|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
-  endef
-
-  $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
-endef
-
-
-$(eval $(call BuildPackage,$(PKG_NAME)))
-$(eval $(call BuildPackage,$(PKG_NAME)-collection-upstream-defaults))
-$(eval $(call BuildPackage,$(PKG_NAME)-collection-minimal))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-08KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-16KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-32KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-48KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-08KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-16KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-32KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-48KHz))
-$(eval $(call BuildPackage,$(PKG_NAME)-tools))
-$(eval $(call BuildPackage,$(PKG_NAME)-example-config))
-$(eval $(call BuildPackage,$(PKG_NAME)-config-upstream-defaults))
-$(eval $(call BuildPackage,$(PKG_NAME)-config-minimal))
-
-
-#
-# $(eval $(call BuildPlugin,Name,Title,Selection on module Conf File,Files,Inter Depends,Extra Depends))
-#
-$(eval $(call BuildPlugin,abstraction,An Abstraction To API Call,vanilla,,,,))
-$(eval $(call BuildPlugin,alsa,Alsa Endpoint,vanilla,,,,+alsa-lib @FS_WITH_ALSA))
-$(eval $(call BuildPlugin,amr,Adaptive Multi-Rate On Bandwidth Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,amrwb,Wide Band AMR,vanilla,,,,))
-$(eval $(call BuildPlugin,avmd,Advanced Voice Mail Detection,vanilla,,,,))
-$(eval $(call BuildPlugin,blacklist,Blacklist,vanilla,,,,))
-$(eval $(call BuildPlugin,bv,BroadVoice 16/32-bit Audio Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,callcenter,Call Center,vanilla,,,,))
-$(eval $(call BuildPlugin,cdr-csv,CSV-CDR Handler,mod,,,,)) # ~/conf
-$(eval $(call BuildPlugin,cdr-pg-csv,PostgreSQL CDR Handler,vanilla,,,,+coreutils +FS_WITH_POSTGRESQL:libpq @FS_WITH_POSTGRESQL))
-$(eval $(call BuildPlugin,cdr-sqlite,SQLite3 CDR Handler,vanilla,,,,@FS_WITH_SQLITE3))
-$(eval $(call BuildPlugin,celt,CELT Ultra-Low Delay Codec,vanilla,,,,+libogg))
-$(eval $(call BuildPlugin,cepstral,Cepstral Interface,vanilla,,,,@BROKEN)) # needs <swift.h>
-$(eval $(call BuildPlugin,cidlookup,Data Query For CID->NAME Services,mod,,,,+libcurl)) # ~/conf
-$(eval $(call BuildPlugin,cluechoo,Framework Demo,vanilla,,,,))
-$(eval $(call BuildPlugin,codec2,CoDec 2,,,,,))
-$(eval $(call BuildPlugin,commands,API Commands,vanilla,,,,))
-$(eval $(call BuildPlugin,conference,Conference Room,vanilla,,,,))
-$(eval $(call BuildPlugin,console,Console Logger,vanilla,,,,))
-$(eval $(call BuildPlugin,curl,HTTP Request,vanilla,,,,+libcurl))
-$(eval $(call BuildPlugin,dahdi-codec,DAHDI Codecs,vanilla,,,,))
-$(eval $(call BuildPlugin,db,Database Backend,vanilla,,,,))
-$(eval $(call BuildPlugin,dialplan-asterisk,Asterisk Dialplan Parser,vanilla,,,,))
-$(eval $(call BuildPlugin,dialplan-directory,Dialplan Directory,vanilla,,,,))
-$(eval $(call BuildPlugin,dialplan-xml,Dialplan-XML Interface,vanilla,,,,))
-$(eval $(call BuildPlugin,dingaling,Jabber Interface,vanilla,,,,+libopenssl))
-$(eval $(call BuildPlugin,directory,Search By Name Directory IVR,vanilla,,,,))
-$(eval $(call BuildPlugin,distributor,Simple Robin-Round Load,vanilla,,,,))
-$(eval $(call BuildPlugin,dptools,Dialplan Tools,vanilla,,,,))
-$(eval $(call BuildPlugin,easyroute,Simple DID Routing,vanilla,,,,))
-$(eval $(call BuildPlugin,enum,ENUM Routing,,,,,))
-$(eval $(call BuildPlugin,erlang-event,Erlang Event Handler,vanilla,,,,+erlang @BROKEN))
-$(eval $(call BuildPlugin,esf,Extra SIP Functionality,vanilla,,,,))
-$(eval $(call BuildPlugin,event-multicast,Multicast Event Handler,vanilla,,,,))
-$(eval $(call BuildPlugin,event-socket,Socket Event Handler,vanilla,,,,))
-$(eval $(call BuildPlugin,event-zmq,Socket Event Handler By Zero MQ,vanilla,,,,+libuuid))
-$(eval $(call BuildPlugin,expr,Expression Evaluation,vanilla,,,,))
-$(eval $(call BuildPlugin,fifo,FIFO,vanilla,,,,))
-$(eval $(call BuildPlugin,file-string,Streaming Multiple Sound Files Sequentially,vanilla,,,,@OBSOLETE)) # merged into dptools
-$(eval $(call BuildPlugin,flite,Festival TTS,vanilla,,,,@(!(armeb||avr32)||BROKEN)))
-$(eval $(call BuildPlugin,fsk,Bell-202 1200-Baud FSK Decoder,vanilla,,,,))
-$(eval $(call BuildPlugin,fsv,Video Player / Recorder,vanilla,,,,))
-$(eval $(call BuildPlugin,g723-1,G.723.1 Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,g729,G.729 Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,gsmopen,GSM Modem compatible Endpoint,mod,,,alsa,+alsa-lib @FS_WITH_ALSA @BROKEN)) # needs gsmlib
-$(eval $(call BuildPlugin,h26x,H26X Linear Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,h323,H323 Endpoint,mod,,,,@BROKEN)) # Req. H323Plus v1.24.x or newer
-$(eval $(call BuildPlugin,hash,API For Manipulating A Hash Table,vanilla,,,,))
-$(eval $(call BuildPlugin,html5,HTML5 Endpoint Module,vanilla,,,,))
-$(eval $(call BuildPlugin,httapi,HT Telephony API and HTTP Caching,mod,,,,)) # ~/conf
-$(eval $(call BuildPlugin,http-cache,HTTP GET With Caching,mod,,,,+libcurl)) # ~/conf
-$(eval $(call BuildPlugin,ilbc,ILBC Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,isac,iSAC Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,java,Java Language Interface,vanilla,,,,@BROKEN)) # needs java
-$(eval $(call BuildPlugin,json-cdr,JSon-CDR Interface,mod,,,,+libcurl))
-$(eval $(call BuildPlugin,lcr,Least Cost Routing,vanilla,,,,))
-$(eval $(call BuildPlugin,local-stream,Multi-Channel On Same Stream,vanilla,,,,))
-$(eval $(call BuildPlugin,logfile,File Logger,vanilla,,,,))
-$(eval $(call BuildPlugin,loopback,Loopback to Dialplan Endpoint,vanilla,,,,))
-$(eval $(call BuildPlugin,lua,LUA Language Interface,vanilla,,,,))
-$(eval $(call BuildPlugin,managed,Media Switching Software Library,vanilla,,,,+glib2 @BROKEN)) # needs Mono
-$(eval $(call BuildPlugin,mp4,MP4 File Format Support For Video,vanilla,,,,@BROKEN)) # needs libmp4v2
-$(eval $(call BuildPlugin,mp4v,MP4 CoDec Support For Video,vanilla,,,,))
-$(eval $(call BuildPlugin,native-file,WAV Format Sound Player,vanilla,,,,))
-$(eval $(call BuildPlugin,nibblebill,Credit / Debit Billing,vanilla,,,,))
-$(eval $(call BuildPlugin,oreka,Media Recording with Oreka,vanilla,,,,))
-$(eval $(call BuildPlugin,openzap,Zaptel (Superseded by FreeTDM),libs,ozmod,lib/libopenzap lib/pkgconfig/openzap,,+libpcap))
-$(eval $(call BuildPlugin,opus,Opus CoDec,vanilla,,,,))
-$(eval $(call BuildPlugin,portaudio,Portaudio To Sound Card Interface,vanilla,,,alsa,+alsa-lib @FS_WITH_ALSA))
-$(eval $(call BuildPlugin,portaudio-stream,Portaudio Streaming Interface,vanilla,,,alsa,+alsa-lib @FS_WITH_ALSA))
-$(eval $(call BuildPlugin,posix-timer,POSIX Compliant Soft Timer,vanilla,,,,))
-$(eval $(call BuildPlugin,radius-cdr,Radius-CDR interface,vanilla,,,,@BROKEN)) # fails in freeradius-client
-$(eval $(call BuildPlugin,rayo,Rayo server & node implementation,vanilla,,,,))
-$(eval $(call BuildPlugin,redis,Redis Limited Backend,vanilla,,,,))
-$(eval $(call BuildPlugin,rss,RRS Feeds via TTS,vanilla,,,,))
-$(eval $(call BuildPlugin,rtmp,RTMP Protocol Handler,vanilla,,,,))
-$(eval $(call BuildPlugin,sangoma-codec,Sangoma Codec,vanilla,,,,@BROKEN)) # Req. Sangoma CoDec source
-$(eval $(call BuildPlugin,say-de,German Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-en,English Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-es,Spanish Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-fa,Persian Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-fr,French Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-hu,Hungarian Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-it,Italian Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-nl,Dutch Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-pt,Portugeese Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-ru,Russian Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-th,Thai Say,vanilla,,,,))
-$(eval $(call BuildPlugin,say-zh,Chineese Say,vanilla,,,,))
-$(eval $(call BuildPlugin,shell-stream,Streaming Audio Through CLI,vanilla,,,,))
-$(eval $(call BuildPlugin,silk,Skype(TM) SILK Codec Module,vanilla,,,,))
-$(eval $(call BuildPlugin,siren,G.722.1 Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,skel,Template For New Module,vanilla,,,,))
-$(eval $(call BuildPlugin,skinny,Skinny Call Control Protocol (SCCP),vanilla,,,,))
-$(eval $(call BuildPlugin,skypopen,Skype Compatible Endpoint,mod,,,,@FEATURE_drawing-backend_libX11))
-$(eval $(call BuildPlugin,sms,SMS,vanilla,,,,))
-$(eval $(call BuildPlugin,snapshot,Record Audio Snapshot to File,vanilla,,,,))
-$(eval $(call BuildPlugin,sndfile,Multi-Format Sound File,vanilla,,,,))
-$(eval $(call BuildPlugin,snipe-hunt,Snipe Hunt (Simple Example Module),vanilla,,,,))
-$(eval $(call BuildPlugin,snmp,SNMP AgentX Subagent,vanilla,,,,+libnetsnmp))
-$(eval $(call BuildPlugin,snom,SNOM specific features,vanilla,,,,))
-$(eval $(call BuildPlugin,sofia,SOFIA SIP,mod,,,,)) # ~/conf
-$(eval $(call BuildPlugin,sonar,Sonar Ping Timer,vanilla,,,,))
-$(eval $(call BuildPlugin,spandsp,Span DSP,mod,,,,+libjpeg)) # ~/conf
-$(eval $(call BuildPlugin,speex,Speex codec,mod,,,,))
-$(eval $(call BuildPlugin,spidermonkey,JavaScript,vanilla,,,,@BROKEN)) # fails in js
-$(eval $(call BuildPlugin,spidermonkey-core_db,JavaScript DB,vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,spidermonkey-curl,JavaScript Curl,vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,spidermonkey-odbc,JavaScript ODBC,vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,spidermonkey-socket,JavaScript Socket,vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,spidermonkey-teletone,JavaScript Teletone,vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,spy,User Spy,vanilla,,,,))
-$(eval $(call BuildPlugin,stress,Voice Stress Detection,vanilla,,,,))
-$(eval $(call BuildPlugin,syslog,SysLog logger,vanilla,,,,))
-$(eval $(call BuildPlugin,timerfd,Linux Kernel timerfd API,vanilla,,,,))
-$(eval $(call BuildPlugin,tone-stream,Tone Generation Stream,vanilla,,,,))
-$(eval $(call BuildPlugin,tts-commandline,ASR TTS Command Interface,vanilla,,,,))
-$(eval $(call BuildPlugin,unimrcp,UniMRCP (MRCP Client),vanilla,,,,@BROKEN))
-$(eval $(call BuildPlugin,valet-parking,Valet Parking Application,vanilla,,,,))
-$(eval $(call BuildPlugin,vmd,VoiceMail Beep Detection,vanilla,,,,))
-$(eval $(call BuildPlugin,voicemail,VoiceMail,vanilla,,,,))
-$(eval $(call BuildPlugin,voicemail-ivr,VoiceMail IVR,vanilla,,,,))
-$(eval $(call BuildPlugin,vp8,VP8 Video Codec,vanilla,,,,))
-$(eval $(call BuildPlugin,xml-cdr,XML-CDR Handler,vanilla,,,,+libcurl))
-$(eval $(call BuildPlugin,xml-curl,XML-Curl Gateway,vanilla,,,,+libcurl))
-$(eval $(call BuildPlugin,xml-rpc,XML-RPC Interface,vanilla,,,,))
-$(eval $(call BuildPlugin,xml-scgi,SCGI XML Gateway,vanilla,,,,))
-$(eval $(call BuildPlugin,yaml,YAML langunage,vanilla,,,,))
diff --git a/freeswitch/files/freeswitch.config b/freeswitch/files/freeswitch.config
deleted file mode 100644 (file)
index 9b4ab84..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-
-config 'global' 'state'
-       option 'started' '0'
-
-config 'profile_top' 'internal_top'
-
-config 'profile_top' 'external_top'
-
-config 'external_gateway' 'external_example'
-
-
diff --git a/freeswitch/files/freeswitch.default b/freeswitch/files/freeswitch.default
deleted file mode 100644 (file)
index 079c314..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#FS_DIR="/opt"
-FS_DIR_ETC="$FS_DIR/etc/freeswitch"
-FS_DIR_MOD="$FS_DIR/usr/lib/freeswitch"
-FS_DIR_DB="$FS_DIR/tmp/freeswitch/db"
-FS_DIR_LOG="$FS_DIR/tmp/freeswitch/log"
-FS_DIR_SCRIPTS="$FS_DIR/usr/share/freeswitch/scripts"
-FS_DIR_HTDOCS="$FS_DIR/usr/share/freeswitch/htdocs"
-FS_DIR_RECORDINGS="/var/lib/freeswitch/recordings" # NOTE: must be changed in config as well
-FS_DIR_VM_STORAGE="/var/lib/freeswitch/storage" # NOTE: must be changed in config as well
-
-OPTIONS="-conf $FS_DIR_ETC -log $FS_DIR_LOG -db $FS_DIR_DB -mod $FS_DIR_MOD -htdocs $FS_DIR_HTDOCS -scripts $FS_DIR_SCRIPTS"
diff --git a/freeswitch/files/freeswitch.hotplug b/freeswitch/files/freeswitch.hotplug
deleted file mode 100644 (file)
index ef9656c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-
-. /lib/functions.sh
-LOAD_STATE=1
-
-if [ "$ACTION" = "ifup" ]; then
-       /etc/init.d/freeswitch enabled && {
-               local not_all_up="$(sh -c '
-                       . /lib/functions.sh
-
-                       LOAD_STATE=1
-                       local if_is_down=0
-                       local network_ignore=""
-                       
-                       check_if_down () {
-                               local cfg="$1"
-                               local up
-                               local proto
-                               config_get_bool up "$1" up 0
-                               config_get proto "$1" proto
-                               if [ "$proto" != "none" ] && [ "$up" -ne 1 ]; then
-                                       local new_down=1
-                                       local oIFS="$IFS"
-                                       local ignore
-                                       IFS=" "
-                                       for ignore in $network_ignore; do
-                                               [ "$cfg" = "$ignore" ] && new_down=0
-                                       done
-                                       IFS="$oIFS"
-                                       [ "$new_down" = "1" ] && if_is_down=1
-                               fi
-                       }
-                       
-                       append_ignore() {
-                               local cfg="$1"
-                               local network
-                               config_get network "$1" network
-                               append network_ignore "$network"
-                       }       
-
-                       LOAD_STATE=1
-                       config_load freeswitch
-                       config_foreach append_ignore network_ignore
-                       config_load network
-                       config_foreach check_if_down interface
-                       
-                       echo "$if_is_down"
-               ')"     
-               [ "$not_all_up" = "0" ] && {
-                       local started
-                       {
-                               mkdir -p /tmp/freeswitch
-                               lock /tmp/freeswitch/.start.lck
-                               config_load freeswitch
-                               config_get started "state" started
-                               [ "$started" != "1" ] && {
-                                       /etc/init.d/freeswitch start
-                                       uci_set_state freeswitch global state started 1
-                               }
-                               lock -u /tmp/freeswitch/.start.lck
-                       } &
-               }
-       }
-fi
-
diff --git a/freeswitch/files/freeswitch.init b/freeswitch/files/freeswitch.init
deleted file mode 100644 (file)
index 4476b47..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
-START=90 
-
-DEFAULT=/etc/default/freeswitch
-OPTIONS=""
-
-boot() {
-       # Do nothing on boot
-       exit 0
-}
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $FS_DIR_DB
-       mkdir -p $FS_DIR_LOG
-       mkdir -p $FS_DIR_RECORDINGS
-       mkdir -p $FS_DIR_VM_STORAGE
-       ulimit -s 240
-       $FS_DIR/usr/bin/freeswitch $OPTIONS -nc
-}
-
-stop() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       $FS_DIR/usr/bin/freeswitch $OPTIONS -stop
-}
-
-restart() {
-       # stopping freeswitch is non-blocking, so we wait until freeswitch's 
-       # event socket is down, and then wait an additional ten seconds so that 
-       # freeswitch should be completely shutdown before we start it again
-       local retval
-       stop
-       fs_cli -x status >/dev/null 2>&1
-       retval=$?
-       while [ $retval -eq 0 ]; do sleep 1; fs_cli -x status >/dev/null 2>&1; retval=$?; done
-       sleep 10
-       start
-}
-
diff --git a/freeswitch/patches/000-build-openwrt_rules.mk.patch b/freeswitch/patches/000-build-openwrt_rules.mk.patch
deleted file mode 100644 (file)
index 31fb16f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- /dev/null
-+++ b/build/openwrt_rules.mk
-@@ -0,0 +1,7 @@
-+OPENWRT_DIR=$(shell (cd $(BASE)/../../..;pwd))
-+STAGING_PREFIX=$(OPENWRT_DIR)/staging_dir/host
-+STAGING_DIR=$(OPENWRT_DIR)/staging_dir/$(shell (cd $(BASE)/..;basename `pwd`))
-+ARCH="$(shell grep CONFIG_ARCH $(OPENWRT_DIR)/.config|cut -d= -d'"' -f2)"
-+GNU_TARGET_NAME=$(ARCH)-openwrt-linux
-+
-+include $(OPENWRT_DIR)/rules.mk
diff --git a/freeswitch/patches/001-build-modules_conf_in.patch b/freeswitch/patches/001-build-modules_conf_in.patch
deleted file mode 100644 (file)
index e34ea59..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/build/modules.conf.in
-+++ b/build/modules.conf.in
-@@ -3,6 +3,9 @@
- #applications/mod_blacklist
- #applications/mod_callcenter
- #applications/mod_cidlookup
-+#applications/mod_skel
-+#applications/mod_mp4
-+#applications/mod_protovm
- applications/mod_cluechoo
- applications/mod_commands
- applications/mod_conference
-@@ -27,6 +30,7 @@ applications/mod_httapi
- #applications/mod_memcache
- #applications/mod_mongo
- #applications/mod_nibblebill
-+#applications/mod_oreka
- #applications/mod_osp
- #applications/mod_redis
- #applications/mod_rss
-@@ -34,6 +38,7 @@ applications/mod_sms
- #applications/mod_snapshot
- #applications/mod_snipe_hunt
- #applications/mod_snom
-+#applications/mod_sonar
- #applications/mod_soundtouch
- applications/mod_spandsp
- #applications/mod_spy
-@@ -63,17 +68,20 @@ codecs/mod_h26x
- codecs/mod_vp8
- #codecs/mod_ilbc
- #codecs/mod_isac
-+#codecs/mod_mp4v
- #codecs/mod_opus
- #codecs/mod_sangoma_codec
- #codecs/mod_silk
- #codecs/mod_siren
- codecs/mod_speex
-+#codecs/mod_theora
- dialplans/mod_dialplan_asterisk
- #dialplans/mod_dialplan_directory
- dialplans/mod_dialplan_xml
- #directories/mod_ldap
- #endpoints/mod_alsa
- #endpoints/mod_dingaling
-+#endpoints/mod_gsmopen
- #endpoints/mod_h323
- #endpoints/mod_html5
- #endpoints/mod_khomp
-@@ -90,6 +98,7 @@ event_handlers/mod_cdr_csv
- event_handlers/mod_cdr_sqlite
- #event_handlers/mod_erlang_event
- #event_handlers/mod_event_multicast
-+#event_handlers/mod_json_cdr
- event_handlers/mod_event_socket
- #event_handlers/mod_event_zmq
- #event_handlers/mod_radius_cdr
-@@ -117,6 +126,7 @@ loggers/mod_syslog
- #say/mod_say_de
- say/mod_say_en
- #say/mod_say_es
-+#say/mod_say_fa
- #say/mod_say_fr
- #say/mod_say_he
- #say/mod_say_hu
diff --git a/freeswitch/patches/002-configure_in.patch b/freeswitch/patches/002-configure_in.patch
deleted file mode 100644 (file)
index 99375be..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/configure.in
-+++ b/configure.in
-@@ -162,7 +162,7 @@ if test "${enable_optimizer}" = "yes" ;
-         AX_CC_MAXOPT
- fi
--AX_PATH_LIBGNUTLS()
-+#AX_PATH_LIBGNUTLS()
- # set defaults for use on all platforms
- SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src -I${switch_srcdir}/libs/stfu"
-@@ -597,7 +597,7 @@ AC_CHECK_LIB(pthread, pthread_setschedpa
- AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
--AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
-+# AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
- AC_CHECK_LIB(util, openpty, [AC_DEFINE(HAVE_OPENPTY, 1, [Define if you have openpty()])])
- AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
diff --git a/freeswitch/patches/003-Makefile.am.patch b/freeswitch/patches/003-Makefile.am.patch
deleted file mode 100644 (file)
index 9bab90d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,3 +1,7 @@
-+BASE=.
-+
-+include $(BASE)/build/openwrt_rules.mk
-+
- EXTRA_DIST =
- SUBDIRS = . src
- AUTOMAKE_OPTIONS = foreign
-@@ -164,7 +168,6 @@ ZRTP_LIBS = -lbn -lzrtp
- libfreeswitch_la_LDFLAGS += $(ZRTP_LDFLAGS)
- libfreeswitch_la_LIBADD += $(ZRTP_LIBS)
- CORE_LIBS += libs/libzrtp/libzrtp.a
--LIBS += libs/libzrtp/third_party/bnlib/libbn.a
- endif
- library_includedir      = $(includedir)
-@@ -426,7 +429,7 @@ $(switch_builddir)/quiet_libtool: $(swit
-       @cat libtool | sed -e 's|$$show "$$command"|if test -z "$$suppress_output" ; then $$show "Compiling $$srcfile ..." ; fi|' > $(switch_builddir)/quiet_libtool
- build/print_git_revision: build/print_git_revision.c
--      $(CC) -o $@ $<
-+      $(HOSTCC) -o $@ $<
- src/include/switch_version.h: src/include/switch_version.h.in Makefile build/print_git_revision $(libfreeswitch_la_SOURCES) $(library_include_HEADERS)
-       @cat $< > $@; \
-@@ -664,7 +667,9 @@ sndfile-reconf:
- tiff-reconf:
-       cd libs/tiff-4.0.2 && autoreconf -fi
--      cd libs/tiff-4.0.2 && sh ./configure.gnu
-+      cd libs/tiff-4.0.2 && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
-+      cd libs/spandsp && autoreconf -fi
-+      cd libs/spandsp && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
-       cd libs/tiff-4.0.2 && make
- python-reconf:
-@@ -689,9 +694,6 @@ iks-reconf:
-       $(MAKE) mod_dingaling-clean
- spandsp-reconf: tiff-reconf
--      cd libs/spandsp && $(MAKE) clean || echo
--      cd libs/spandsp && autoreconf -fi
--      cd libs/spandsp && sh ./configure.gnu --prefix=$(prefix)
-       cd libs/spandsp && $(MAKE)
- sofia-reconf:
diff --git a/freeswitch/patches/100-libs-esl-Makefile.patch b/freeswitch/patches/100-libs-esl-Makefile.patch
deleted file mode 100644 (file)
index c0034ec..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/libs/esl/Makefile
-+++ b/libs/esl/Makefile
-@@ -7,7 +7,7 @@ PICKY=-O2
- CFLAGS=$(BASE_FLAGS) $(PICKY)
- CXXFLAGS=$(BASE_FLAGS)
- MYLIB=libesl.a
--LIBS=-lncurses -lesl -lpthread -lm
-+LIBS=-L$(STAGING_DIR)/usr/lib -lncurses -lesl -lpthread -lm
- LDFLAGS=-L.
- OBJS=src/esl.o src/esl_event.o src/esl_threadmutex.o src/esl_config.o src/esl_json.o src/esl_buffer.o
- SRC=src/esl.c src/esl_json.c src/esl_event.c src/esl_threadmutex.c src/esl_config.c src/esl_oop.cpp src/esl_json.c src/esl_buffer.c
-@@ -19,8 +19,8 @@ OBJS += src/esl_oop.o
- all: $(MYLIB) fs_cli testclient testserver ivrd
- $(MYLIB): $(OBJS) $(HEADERS) $(SRC)
--      ar rcs $(MYLIB) $(OBJS)
--      ranlib $(MYLIB)
-+      $(AR) rcs $(MYLIB) $(OBJS)
-+      $(RANLIB) $(MYLIB)
- testserver: $(MYLIB) testserver.c
-       $(CC) $(CC_CFLAGS) $(CFLAGS) testserver.c -o testserver $(LDFLAGS) $(LIBS)
diff --git a/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch b/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch
deleted file mode 100644 (file)
index e2fb3da..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libs/spandsp/src/spandsp/fast_convert.h
-+++ b/libs/spandsp/src/spandsp/fast_convert.h
-@@ -195,7 +195,7 @@ extern "C"
-     {
-         return (long int) (x);
-     }
--#elif defined(__ppc__)  ||   defined(__powerpc__)
-+#elif 0 /* defined(__ppc__)  ||   defined(__powerpc__) */
-     static __inline__ long int lfastrint(register double x)
-     {
-         int res[2];
diff --git a/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch b/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch
deleted file mode 100644 (file)
index b7057ca..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libs/spandsp/src/t4_rx.c
-+++ b/libs/spandsp/src/t4_rx.c
-@@ -45,7 +45,7 @@
- #include <math.h>
- #endif
- #include "floating_fudge.h"
--#include <tiffio.h>
-+#include <tiffiop.h>
- #include "spandsp/telephony.h"
- #include "spandsp/logging.h"
diff --git a/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch b/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch
deleted file mode 100644 (file)
index 31264ae..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libs/spandsp/src/t4_tx.c
-+++ b/libs/spandsp/src/t4_tx.c
-@@ -45,7 +45,7 @@
- #include <math.h>
- #endif
- #include "floating_fudge.h"
--#include <tiffio.h>
-+#include <tiffiop.h>
- #include "spandsp/telephony.h"
- #include "spandsp/logging.h"
diff --git a/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch b/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch
deleted file mode 100644 (file)
index 79cb33e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/libs/xmlrpc-c/config.mk.in
-+++ b/libs/xmlrpc-c/config.mk.in
-@@ -335,8 +335,8 @@ endif
- # The cross compiling user can update config.mk or override
- # BUILDTOOL_CC on a make command.
--BUILDTOOL_CC = $(CC)
--BUILDTOOL_CCLD = $(CCLD)
-+BUILDTOOL_CC = $(HOSTCC)
-+BUILDTOOL_CCLD = $(HOSTCC)
- # Here are the commands 'make install' uses to install various kinds of files:
diff --git a/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch b/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch
deleted file mode 100644 (file)
index d50d200..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
-+++ b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
-@@ -1,3 +1,5 @@
-+TOPDIR=$(shell (cd $(SRCDIR)/../../../../..; pwd))
-+
- ifeq ($(SRCDIR),)
-   updir = $(shell echo $(dir $(1)) | sed 's/.$$//')
-   EXPATDIR := $(call updir,$(CURDIR))
-@@ -7,6 +9,7 @@ ifeq ($(SRCDIR),)
- endif
- SUBDIR := lib/expat/gennmtab
-+include $(TOPDIR)/rules.mk
- include $(BLDDIR)/config.mk
- LDFLAGS = $(LADD)
diff --git a/freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch b/freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch
deleted file mode 100644 (file)
index 0463885..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/libs/libzrtp/include/zrtp_config.h
-+++ b/libs/libzrtp/include/zrtp_config.h
-@@ -68,8 +68,16 @@
-  * If the byte order is not specified manually in zrtp_config_user.h - try to detect it automatically
-  */
- #if !defined(ZRTP_BYTE_ORDER)
-+#if defined(linux) || defined(__linux)
--#if defined(_i386_) || defined(i_386_) || defined(_X86_) || defined(x86) || defined(__i386__) || \
-+#include <endian.h>
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+#define ZRTP_BYTE_ORDER ZBO_LITTLE_ENDIAN
-+#elif __BYTE_ORDER == __BIG_ENDIAN
-+#define ZRTP_BYTE_ORDER ZBO_BIG_ENDIAN
-+#endif
-+
-+#elif defined(_i386_) || defined(i_386_) || defined(_X86_) || defined(x86) || defined(__i386__) || \
-       defined(__i386) || defined(_M_IX86) || defined(__I86__)
- /*
-  * Generic i386 processor family, little-endian
diff --git a/freeswitch/patches/200-src-include-timerfd_wrap_h.patch b/freeswitch/patches/200-src-include-timerfd_wrap_h.patch
deleted file mode 100644 (file)
index dbf995e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/src/include/timerfd_wrap.h
-+++ b/src/include/timerfd_wrap.h
-@@ -55,20 +55,12 @@ SWITCH_BEGIN_EXTERN_C
- #ifndef __NR_timerfd
--#if defined(__x86_64__)
--#define __NR_timerfd_create 283
--#define __NR_timerfd_settime 286
--#define __NR_timerfd_gettime 287
--#elif defined(__i386__)
--#define __NR_timerfd_create 322
--#define __NR_timerfd_settime 325
--#define __NR_timerfd_gettime 326
--#else
--#error invalid system
--#endif
-+#include <linux/unistd.h>
- #endif
--#define TFD_TIMER_ABSTIME (1 << 0)
-+#ifndef TFD_TIMER_ABSTIME
-+#include <sys/timerfd.h>
-+#endif
- int timerfd_create(int clockid, int flags) 
- {
diff --git a/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch b/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch
deleted file mode 100644 (file)
index cdf710a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/src/mod/codecs/mod_opus/Makefile
-+++ b/src/mod/codecs/mod_opus/Makefile
-@@ -12,12 +12,13 @@ OPUS_LA=$(OPUS_BUILDDIR)/.libs/libopus.l
- LOCAL_LIBADD=$(OPUS_LA)
- include $(BASE)/build/modmake.rules
-+include $(BASE)/build/openwrt_rules.mk
- $(OPUS_DIR):
-       $(GETLIB) $(OPUS).tar.gz
- $(OPUS_DIR)/Makefile: $(OPUS_DIR)
--      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --disable-shared --with-pic --srcdir=$(OPUS_DIR)
-+      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --host=$(GNU_TARGET_NAME) --disable-shared --with-pic --srcdir=$(OPUS_DIR)
-       $(TOUCH_TARGET)
- $(OPUS_LA): $(OPUS_DIR)/Makefile
diff --git a/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch b/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch
deleted file mode 100644 (file)
index 1d4341e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/src/mod/codecs/mod_silk/Makefile
-+++ b/src/mod/codecs/mod_silk/Makefile
-@@ -1,4 +1,5 @@
- BASE=../../../..
-+include $(BASE)/build/openwrt_rules.mk
- SILK_DIR=$(switch_srcdir)/libs/silk
- SILK_BUILDDIR=$(switch_builddir)/libs/silk
- LOCAL_CFLAGS=-I$(SILK_DIR)/src  -I$(SILK_DIR)/interface
-@@ -8,5 +9,5 @@ LOCAL_OBJS=$(BASE)/libs/stfu/stfu.o
- include $(BASE)/build/modmake.rules
- $(SILK_LA): $(SILK_DIR)/.update       
--      cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
-+      cd $(SILK_BUILDDIR) && ./configure --host=$(GNU_TARGET_NAME) --disable-shared && make clean && $(MAKE)
-       $(TOUCH_TARGET)
diff --git a/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch b/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch
deleted file mode 100644 (file)
index 92741d1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/mod/directories/mod_ldap/Makefile
-+++ b/src/mod/directories/mod_ldap/Makefile
-@@ -21,7 +21,7 @@ $(LDAP_DIR):
- $(LDAP_BUILDDIR)/Makefile: $(LDAP_DIR)
-       mkdir -p $(LDAP_BUILDDIR)
--      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR)
-+      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR) --with-yielding_select=yes
-       $(TOUCH_TARGET)
- $(LDAPLA) $(LIBLBERLA): $(LDAP_BUILDDIR)/Makefile
diff --git a/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch b/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch
deleted file mode 100644 (file)
index 3b24669..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/mod/endpoints/mod_gsmopen/Makefile
-+++ b/src/mod/endpoints/mod_gsmopen/Makefile
-@@ -1,5 +1,15 @@
-+BASE=../../../..
- MODNAME=mod_gsmopen
--LOCAL_CFLAGS += -I../../../../libs/spandsp/src -I../../../..//libs/tiff-4.0.2/libtiff -DGSMOPEN_C_VER=\"`git log -1 --format="%h" gsmopen_protocol.cpp`\" -DMODGSMOPEN_C_VER=\"`git log -1 --format="%h" mod_gsmopen.cpp`\"
--LOCAL_LDFLAGS=-L../../../../libs/spandsp/src -lspandsp -lctb-0.16 -lgsmme
-+SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
-+
-+TIFF_DIR="$(shell ls -d $(switch_srcdir)/libs/tiff*)"
-+TIFF_BUILDDIR=$(TIFF_DIR)
-+TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
-+
-+SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
-+SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp
-+SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la
-+LOCAL_CFLAGS += $(SVNDEF) -I$(BASE)/libs/spandsp/src -I$(TIFF_DIR)/libtiff -I$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/include -fpermissive
-+LOCAL_LDFLAGS=-L$(BASE)/libs/spandsp/src -lspandsp -L$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/lib -lctb-0.16
- LOCAL_OBJS=gsmopen_protocol.o
- include ../../../../build/modmake.rules
diff --git a/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch b/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch
deleted file mode 100644 (file)
index c85f62c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/src/mod/event_handlers/mod_snmp/Makefile
-+++ b/src/mod/event_handlers/mod_snmp/Makefile
-@@ -1,7 +1,10 @@
--include ../../../../build/modmake.rules
-+BASE=../../../..
-+
-+include $(BASE)/build/modmake.rules
-+include $(BASE)/build/openwrt_rules.mk
-+
-+LOCAL_CFLAGS=$(shell $(STAGING_DIR)/host/bin/net-snmp-config --cflags --agent-libs) -DNETSNMP_NO_INLINE
--LOCAL_CFLAGS=`net-snmp-config --cflags`
--LOCAL_LDFLAGS=`net-snmp-config --agent-libs`
- LOCAL_OBJS=subagent.o
- local_depend: $(LOCAL_OBJS)
diff --git a/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch b/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch
deleted file mode 100644 (file)
index 0734887..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/mod/xml_int/mod_xml_ldap/Makefile
-+++ b/src/mod/xml_int/mod_xml_ldap/Makefile
-@@ -14,7 +14,7 @@ LOCAL_LIBADD=$(LDAPLA) $(LIBLBERLA) $(LI
- include $(BASE)/build/modmake.rules
--DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb
-+DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb --with-yielding_select=yes
- $(LDAP_DIR):
-       $(GETLIB) $(LDAP).tar.gz
diff --git a/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch b/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch
deleted file mode 100644 (file)
index 7691d3e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/mod/xml_int/mod_xml_rpc/Makefile
-+++ b/src/mod/xml_int/mod_xml_rpc/Makefile
-@@ -14,7 +14,6 @@ $(XMLRPC_DIR)/lib/abyss/src/date.o\
- $(XMLRPC_DIR)/src/double.o\
- $(XMLRPC_DIR)/lib/libutil/error.o\
- $(XMLRPC_DIR)/lib/abyss/src/file.o\
--$(XMLRPC_DIR)/lib/expat/gennmtab/gennmtab.o\
- $(XMLRPC_DIR)/lib/util/getoptx.o\
- $(XMLRPC_DIR)/lib/abyss/src/handler.o\
- $(XMLRPC_DIR)/lib/abyss/src/http.o\
diff --git a/freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch b/freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch
deleted file mode 100644 (file)
index 84de2af..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/mod/codecs/mod_isac/typedefs.h
-+++ b/src/mod/codecs/mod_isac/typedefs.h
-@@ -66,7 +66,7 @@
- #define WEBRTC_ARCH_X86
- #define WEBRTC_ARCH_32_BITS
- #define WEBRTC_ARCH_LITTLE_ENDIAN
--#elif defined(__ARMEL__)
-+#elif defined(__ARMEL__) || defined(__mips__)
- // TODO(andrew): We'd prefer to control platform defines here, but this is
- // currently provided by the Android makefiles. Commented to avoid duplicate
- // definition warnings.
diff --git a/freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch b/freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch
deleted file mode 100644 (file)
index 0b56586..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/mod/endpoints/mod_dingaling/Makefile
-+++ b/src/mod/endpoints/mod_dingaling/Makefile
-@@ -10,7 +10,6 @@ DING_DIR=$(BASE)/libs/libdingaling
- LOCAL_CFLAGS += -I$(DING_DIR)/src -I$(BASE)/libs/iksemel/include
- LOCAL_OBJS=$(DING_DIR)/src/libdingaling.o $(DING_DIR)/src/sha1.o $(IKS_LA)
- LOCAL_SOURCES=$(DING_DIR)/src/libdingaling.c $(DING_DIR)/src/sha1.c $(DING_DIR)/src/libdingaling.h
--LOCAL_LDFLAGS=$(LIBGNUTLS_LIBS)
- include $(BASE)/build/modmake.rules
diff --git a/kamailio-1.5.x/Makefile b/kamailio-1.5.x/Makefile
deleted file mode 100644 (file)
index b89dbb0..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-#
-# Copyright (C) 2009 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:=kamailio
-PKG_VERSION:=1.5.2
-PKG_RELEASE:=1
-PKG_VARIANT:=-tls
-
-PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/1.5.2/src/
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
-PKG_MD5SUM:=26b0d0d3c67c2d981bee86a803cca51f
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)
-
-PKG_BUILD_DEPENDS:=curl expat libxml2 mysql openldap openssl pcre postgresql radiusclient-ng
-
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-
-define Package/kamailio/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.kamailio.org/
-endef
-
-
-define Package/kamailio
-$(call Package/kamailio/Default)
-  TITLE:=Mature and flexible open source SIP server, v1.5.x
-  MENU:=1
-endef
-
-define Package/kamailio-example
-$(call Package/kamailio/Default)
-  TITLE:=Kamailio example config
-  DEPENDS:=kamailio \
-       +kamailio-mod-acc \
-       +kamailio-mod-maxfwd \
-       +kamailio-mod-mi-fifo \
-       +kamailio-mod-pv \
-       +kamailio-mod-registrar \
-       +kamailio-mod-rr \
-       +kamailio-mod-sl \
-       +kamailio-mod-siputils \
-       +kamailio-mod-textops \
-       +kamailio-mod-tm \
-       +kamailio-mod-uri-db \
-       +kamailio-mod-usrloc \
-       +kamailio-mod-xlog
-endef
-
-define Package/kamailio-example/conffiles
-/etc/default/kamailio
-/etc/kamailio/kamailio.cfg
-endef
-
-
-define Package/kamailio-tools
-$(call Package/kamailio/Default)
-  TITLE:=Kamailio control tools
-  DEPENDS:=kamailio
-endef
-
-define Package/kamailio-tools/conffiles
-/etc/kamailio/kamctlrc
-endef
-
-
-PKG_EXCL_MODULES:= \
-       auth_diameter \
-       carrierroute \
-       db_berkeley \
-       db_oracle \
-       db_unixodbc \
-       mediaproxy \
-       mi_xmlrpc \
-       osp \
-       perl \
-       perlvdb \
-       purple \
-       snmpstats \
-
-PKG_MAKE_ARGS:= \
-       cfg-dir="etc/kamailio/" \
-       bin-dir="usr/sbin/" \
-       data-dir="var/lib/kamailio/" \
-       lib-dir="usr/lib/kamailio/" \
-       modules-dir="usr/lib/kamailio/modules/" \
-       exclude_modules="$(PKG_EXCL_MODULES)" \
-
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               prefix=/ \
-               extra_defs="-DUSE_PTHREAD_MUTEX "  \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               ISSMP="no" \
-               LOCALBASE="$(STAGING_DIR)/usr" \
-               SYSBASE="$(STAGING_DIR)/usr" \
-               PCREDEFS:="$(TARGET_CPPFLAGS)" \
-               PCRELIBS:="$(TARGET_LDFLAGS)" \
-               CROSS_COMPILE=1 \
-               all
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               install
-endef
-
-define Package/kamailio/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/kamailio \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
-endef
-
-define Package/kamailio-example/install
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/etc/kamailio/kamailio.cfg \
-               $(1)/etc/kamailio/
-       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
-               $(1)/etc/kamailio/kamailio.cfg
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/kamailio.default $(1)/etc/default/kamailio
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/kamailio.init $(1)/etc/init.d/kamailio
-endef
-
-define Package/kamailio-tools/install
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/etc/kamailio/kamctlrc \
-               $(1)/etc/kamailio/
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl,unix} \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
-               $(1)/usr/lib/kamailio/
-       $(SED) 's,/bin/bash,/bin/sh,g' \
-               -e 's,$(PKG_INSTALL_DIR),,g' \
-               $(1)/usr/sbin/kam{ctl,dbctl}
-endef
-
-define BuildPlugin
-  define Package/kamailio-mod-$(1)
-    $$(call Package/kamailio/Default)
-    TITLE:= kamailio $(3) module
-    DEPENDS:=kamailio $$(foreach m,$(4),+kamailio-mod-$$m) $(5)
-  endef
-
-  define Package/kamailio-mod-$(1)/install
-       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/kamailio/modules/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so \
-                       $$(1)/usr/lib/kamailio/modules/ ;
-  endef
-
-  $$(eval $$(call BuildPackage,kamailio-mod-$(1)))
-endef
-
-$(eval $(call BuildPackage,kamailio))
-$(eval $(call BuildPackage,kamailio-example))
-$(eval $(call BuildPackage,kamailio-tools))
-$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
-$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,,))
-$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,))
-$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth,))
-#$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,))
-$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
-$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
-$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
-#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse))
-$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
-$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2))
-#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,))
-$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
-$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
-#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,))
-$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
-$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
-#$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,))
-$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
-$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre))
-$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
-$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
-$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
-$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
-$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
-$(eval $(call BuildPlugin,exec,exec,External exec,,))
-$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
-$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
-$(eval $(call BuildPlugin,htable,htable,Hash Table,,))
-$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
-$(eval $(call BuildPlugin,jabber,jabber,Jabber,tm,+libexpat))
-$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre))
-$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
-$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
-$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
-$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
-#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c))
-#$(eval $(call BuildPlugin,mediaproxy,mediaproxy,NAT traversal,,+mediaproxy))
-$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
-$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
-$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
-#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp))
-$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
-$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
-$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
-#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl))
-#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,))
-$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
-$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
-$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2))
-$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
-$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
-$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
-$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
-$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
-$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
-$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
-$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
-$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
-#$(eval $(call BuildPlugin,purple,purple,Multi-protocol IM gateway,presence pua,+libpurple))
-$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,))
-$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
-$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
-$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
-$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,))
-$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2))
-$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
-$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,))
-$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,))
-#$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,))
-$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
-$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,))
-$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
-$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
-#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp))
-$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
-$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,))
-$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
-$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
-$(eval $(call BuildPlugin,textops,textops,Text operations,,))
-$(eval $(call BuildPlugin,tlsops,tlsops,TLS operations,,+libopenssl))
-$(eval $(call BuildPlugin,tm,tm,Transaction,,))
-$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
-$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
-$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
-$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
-$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
-$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl))
-$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl))
-$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
-$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
diff --git a/kamailio-1.5.x/files/kamailio.default b/kamailio-1.5.x/files/kamailio.default
deleted file mode 100644 (file)
index a61617b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# OPTIONS
-# -n COUNT
-# Specifies the number of children processes forked per interface
-# -N COUNT
-# Specifies the number of children processes forked to handle tcp incoming connections
-# -m SIZE
-# Size of the shared memory which will be allocated (in Megabytes).
-# -u UID
-# Changes the user id under which 
-# -g GID
-# Changes the group id under which 
-
-OPTIONS="-n 4 -m 4 - m 8"
diff --git a/kamailio-1.5.x/files/kamailio.init b/kamailio-1.5.x/files/kamailio.init
deleted file mode 100755 (executable)
index 1f42a9e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2009 OpenWrt.org
-START=50
-
-BIN=kamailio
-DEFAULT=/etc/default/$BIN
-RUN_D=/var/run
-PID_F=$RUN_D/$BIN.pid
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $RUN_D
-       $BIN -P $PID_F $OPTIONS >/dev/null 2>&1
-}
-
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
-}
-
diff --git a/kamailio-1.5.x/patches/005-config_h.patch b/kamailio-1.5.x/patches/005-config_h.patch
deleted file mode 100644 (file)
index a641b3a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/config.h
-+++ b/config.h
-@@ -48,7 +48,7 @@
- #define MAX_LISTEN 16         /*!< maximum number of addresses on which we will listen */
--#define CHILD_NO    8         /*!< default number of child processes started */
-+#define CHILD_NO    4         /*!< default number of child processes started */
- #ifndef RT_NO
- #define RT_NO 80              /*!< routing tables number */
-@@ -119,7 +119,7 @@
- #define PKG_MEM_POOL_SIZE 4*1024*1024         /*!< Used only if PKG_MALLOC is defined*/
- #endif
--#define SHM_MEM_SIZE 32                               /*!< Used if SH_MEM is defined*/
-+#define SHM_MEM_SIZE 8                                /*!< Used if SH_MEM is defined*/
- #define TIMER_TICK   1                        /*!< one second */
- #define UTIMER_TICK  100*1000                 /*!< 100 miliseconds*/
diff --git a/kamailio-1.5.x/patches/007-modules_build.patch b/kamailio-1.5.x/patches/007-modules_build.patch
deleted file mode 100644 (file)
index 3fac163..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
---- a/modules/carrierroute/Makefile
-+++ b/modules/carrierroute/Makefile
-@@ -12,10 +12,8 @@ NAME=carrierroute.so
- BUILDER = $(shell which confuse-config)
- ifeq ($(BUILDER),)
--      CONFUSEDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
--              -I/usr/sfw/include
--      CONFUSELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
--              -L/opt/lib -lconfuse
-+      CONFUSEDEFS=-I$(LOCALBASE)/include
-+      CONFUSELIBS=-L$(LOCALBASE)/lib
- else
-               CONFUSEDEFS = $(shell confuse-config --cflags)
-               CONFUSELIBS = $(shell confuse-config --libs)
---- a/modules/h350/Makefile
-+++ b/modules/h350/Makefile
-@@ -9,7 +9,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=h350.so
--LIBS=
-+
- DEFS+=-I$(LOCALBASE)/include
-+LIBS=-L$(LOCALBASE)/lib -lldap
- include ../../Makefile.modules
---- a/modules/ldap/Makefile
-+++ b/modules/ldap/Makefile
-@@ -12,8 +12,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=ldap.so
--LIBS=-L$(LOCALBASE)/lib -lldap
- DEFS+=-I$(LOCALBASE)/include
-+LIBS=-L$(LOCALBASE)/lib -lldap
- ifeq ($(OS),solaris)
-        DEFS+=-I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/include -I/opt/sfw/include -I/opt/csw/include
---- a/modules/pua_bla/Makefile
-+++ b/modules/pua_bla/Makefile
-@@ -9,8 +9,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=pua_bla.so
- LIBS=
--DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
--LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
-+DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
-+LIBS+=-L$(LOCALBASE)/lib -lxml2
- include ../../Makefile.modules
---- a/modules/pua_xmpp/Makefile
-+++ b/modules/pua_xmpp/Makefile
-@@ -10,7 +10,7 @@ auto_gen=
- NAME= pua_xmpp.so
- LIBS=
--DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
--LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
-+DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
-+LIBS+=-L$(LOCALBASE)/lib -lxml2
- include ../../Makefile.modules
---- a/modules/regex/Makefile
-+++ b/modules/regex/Makefile
-@@ -7,10 +7,8 @@ NAME=regex.so
- BUILDER = $(shell which pcre-config)
- ifeq ($(BUILDER),)
--      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
--      -I/usr/sfw/include
--      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
--      -L/opt/lib -lpcre
-+      PCREDEFS=-I$(LOCALBASE)/include 
-+      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
- else
-       PCREDEFS = $(shell pcre-config --cflags)
-       PCRELIBS = $(shell pcre-config --libs)
---- a/modules/tlsops/Makefile
-+++ b/modules/tlsops/Makefile
-@@ -7,8 +7,8 @@ auto_gen=
- NAME=tlsops.so
- LIBS=
--DEFS+= -I$(LOCALBASE)/ssl/include
--LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl  -lcrypto
-+DEFS+= -I$(LOCALBASE)/include
-+LIBS+= -L$(LOCALBASE)/lib -lssl  -lcrypto
- include ../../Makefile.modules
---- a/modules/dialplan/Makefile
-+++ b/modules/dialplan/Makefile
-@@ -9,10 +9,8 @@ NAME=dialplan.so
- BUILDER = $(shell which pcre-config)
- ifeq ($(BUILDER),)
--      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
--      -I/usr/sfw/include
--      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
--      -L/opt/lib -lpcre
-+      PCREDEFS=-I$(LOCALBASE)/include
-+      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
- else
-       PCREDEFS = $(shell pcre-config --cflags)
-       PCRELIBS = $(shell pcre-config --libs)
---- a/modules/lcr/Makefile
-+++ b/modules/lcr/Makefile
-@@ -11,10 +11,8 @@ NAME=lcr.so
- BUILDER = $(shell which pcre-config)
- ifeq ($(BUILDER),)
--      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
--      -I/usr/sfw/include
--      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
--      -L/opt/lib -lpcre
-+      PCREDEFS=-I$(LOCALBASE)/include
-+      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
- else
-       PCREDEFS = $(shell pcre-config --cflags)
-       PCRELIBS = $(shell pcre-config --libs)
---- a/modules/purple/Makefile
-+++ b/modules/purple/Makefile
-@@ -3,9 +3,9 @@ auto_gen=
- NAME=purple.so
- LIBS= 
--DEFS+=-I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 \
--              -I/usr/include/libxml2
--LIBS+=-lglib-2.0 -lpurple -lxml2
-+DEFS+=-I$(LOCALBASE)/include/glib-2.0/include -I$(LOCALBASE)/include/glib-2.0 \
-+              -I$(LOCALBASE)/incldue/libxml2
-+LIBS+=-L$(LOCALBASE)/lib -lglib-2.0 -lpurple -lxml2
- include ../../Makefile.modules
diff --git a/kamailio-3.3.x/Makefile b/kamailio-3.3.x/Makefile
deleted file mode 100644 (file)
index d5fda52..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-#
-# Copyright (C) 2013 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:=kamailio3
-PKG_VERSION:=3.3.4
-PKG_RELEASE:=1
-
-PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src/
-PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
-PKG_MD5SUM:=24d6a0c852d49791f7e0d0694e128d43
-
-INCL_MODULES:=
-KAM_MODULES:=
-
-include $(INCLUDE_DIR)/nls.mk
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-PREBUILT_STAMP=$(STAGING_DIR)/stamp/.$(PKG_NAME)_prebuilt
-TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
-
-define Package/kamailio3/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.kamailio.org/
-  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
-  DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline
-endef
-
-define Package/kamailio3
-$(call Package/kamailio3/Default)
-  TITLE:=Mature and flexible open source SIP server, v3.3.x
-  MENU:=1
-endef
-
-define Package/kamailio3-example
-$(call Package/kamailio3/Default)
-  TITLE:=Kamailio3 example config
-  DEPENDS:=kamailio3 \
-       +kamailio3-mod-acc \
-       +kamailio3-mod-maxfwd \
-       +kamailio3-mod-mi-fifo \
-       +kamailio3-mod-pv \
-       +kamailio3-mod-registrar \
-       +kamailio3-mod-rr \
-       +kamailio3-mod-sl \
-       +kamailio3-mod-siputils \
-       +kamailio3-mod-textops \
-       +kamailio3-mod-tm \
-       +kamailio3-mod-uri-db \
-       +kamailio3-mod-usrloc \
-       +kamailio3-mod-xlog
-endef
-
-define Package/kamailio3-example/conffiles
-/etc/default/kamailio
-/etc/kamailio/kamailio.cfg
-endef
-
-define Package/kamailio3-tools
-$(call Package/kamailio3/Default)
-  TITLE:=Kamailio3 control tools
-  DEPENDS:=kamailio3 +bash
-endef
-
-define Package/kamailio3-tools/conffiles
-/etc/kamailio/kamctlrc
-endef
-
-define Package/kamailio3/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/kamailio \
-               $(1)/usr/sbin/
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/sercmd \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules_k
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules_s
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib*.so* \
-               $(1)/usr/lib/kamailio/
-endef
-
-define Package/kamailio3-example/install
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/etc/kamailio/kamailio.cfg \
-               $(1)/etc/kamailio/
-       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
-               $(1)/etc/kamailio/kamailio.cfg
-       $(SED) 's,//lib/kamailio,/usr/lib/kamailio,g' \
-               $(1)/etc/kamailio/kamailio.cfg
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/kamailio.default $(1)/etc/default/kamailio
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/kamailio.init $(1)/etc/init.d/kamailio
-endef
-
-define Package/kamailio3-tools/install
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_BUILD_DIR)/utils/kamctl/kamctlrc \
-               $(1)/etc/kamailio/
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl} \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
-               $(1)/usr/lib/kamailio/
-endef
-
-define BuildPlugin
-  define Package/kamailio3-mod-$(1)
-    $$(call Package/kamailio3/Default)
-    TITLE:= kamailio3 $(3) module
-    DEPENDS:=kamailio3 $$(foreach m,$(4),+kamailio3-mod-$$m) $(5)
-  endef
-
-  define Package/kamailio3-mod-$(1)/install
-       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/kamailio/$(6)
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/$(6)/$(2).so \
-                       $$(1)/usr/lib/kamailio/$(6)/ ;
-  endef
-
-  INCL_MODULES+=$(2)
-  KAM_MODULES+=kamailio3-mod-$(1)
-endef
-
-$(eval $(call BuildPlugin,acc,acc,Accounting,tm,,modules_k))
-$(eval $(call BuildPlugin,acc-radius,acc_radius,Accounting for RADIUS backend,acc,+libradiusclient-ng,modules_k))
-$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,db-sqlite,,modules_k))
-$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,,modules))
-$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth db-sqlite,,modules_k))
-#$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,,modules_k))
-$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng,modules_k))
-$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,,modules))
-$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,,modules_k))
-#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse,modules))
-$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,,modules_k))
-$(eval $(call BuildPlugin,cfg-db,cfg_db,Load core and module parameters from database,db-sqlite,,modules))
-$(eval $(call BuildPlugin,cfg-rpc,cfg_rpc,Update core and module parameters at runtime via RPC interface,,,modules))
-#$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2,modules_k))
-$(eval $(call BuildPlugin,ctl,ctl,BINRPC transport interface,,,modules))
-#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,,modules))
-$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,,modules))
-$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient,modules))
-#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,,modules_k))
-#$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq,modules))
-$(eval $(call BuildPlugin,db-sqlite,db_sqlite,Sqlite DB support,,+libsqlite3,modules_k))
-$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,,modules_k))
-$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,+unixodbc,modules_k))
-$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,,modules_k))
-$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre,modules))
-$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,,modules_s))
-$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,,modules_s))
-$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,,modules_k))
-$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,,modules_k))
-$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,,modules))
-$(eval $(call BuildPlugin,exec,exec,External exec,,,modules_k))
-$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,,modules_k))
-$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap,modules_k))
-$(eval $(call BuildPlugin,htable,htable,Hash Table,,,modules_k))
-$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,,modules_k))
-$(eval $(call BuildPlugin,ipops,ipops,IP and IPv6 operations module,,,modules))
-$(eval $(call BuildPlugin,kex,kex,Core extensions,,,modules_k))
-$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre,modules))
-$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap,modules_k))
-$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,,modules_k))
-$(eval $(call BuildPlugin,mediaproxy,mediaproxy,Automatic NAT traversal,dialog,,modules))
-$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,,modules_k))
-$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,,modules_k))
-#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c,modules_k))
-$(eval $(call BuildPlugin,mi-rpc,mi_rpc,RPC support for Management Interface,,,modules))
-$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng,modules_k))
-$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,,modules_k))
-$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,,modules_k))
-$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy,modules_k))
-#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp,modules_k))
-$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,,modules_k))
-$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,,modules_k))
-$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng,modules))
-#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl,modules_k))
-#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,,modules_k))
-$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,,modules_k))
-$(eval $(call BuildPlugin,pike,pike,Flood detector,,,modules_k))
-$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2,modules_k))
-$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,,modules_k))
-$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,,modules_k))
-$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,,modules_k))
-$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2,modules_k))
-$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,,modules_k))
-$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,,modules_k))
-$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,,modules_k))
-$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,,modules_k))
-$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,,modules_k))
-#$(eval $(call BuildPlugin,purple,purple,Multi-protocol IM gateway,presence pua,+libpurple,modules_k))
-$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,,modules_k))
-$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,,modules_k))
-$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,,modules))
-$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre,modules_k))
-$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,,modules_k))
-$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2,modules_k))
-$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,,modules_k))
-$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,,modules_k))
-$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,,modules))
-#$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,,modules_k))
-$(eval $(call BuildPlugin,sipcapture,sipcapture,SIP capture module,,,modules))
-$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,,modules_k))
-$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,,modules_k))
-$(eval $(call BuildPlugin,sl,sl,Stateless replier,,,modules))
-$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,,modules))
-#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp,modules_k))
-$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,,modules_k))
-$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,,modules_k))
-$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,,modules_k))
-$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,,modules_k))
-$(eval $(call BuildPlugin,textops,textops,Text operations,,,modules_k))
-$(eval $(call BuildPlugin,tls,tls,TLS operations,,+libopenssl,modules))
-$(eval $(call BuildPlugin,tm,tm,Transaction,,,modules))
-$(eval $(call BuildPlugin,tmx,tmx,Transaction module extensions,,,modules_k))
-$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,,modules_k))
-$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,,modules_k))
-$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,,modules_k))
-$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,,modules_k))
-$(eval $(call BuildPlugin,usrloc,usrloc,User location,,,modules_k))
-$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl +libxml2,modules))
-$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl,modules_k))
-$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,,modules_k))
-$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat,modules_k))
-
-PKG_MAKE_ARGS:= \
-       cfg-dir="/etc/kamailio/" \
-       bin-dir="/usr/sbin/" \
-       data-dir="/var/lib/kamailio/" \
-       lib-dir="/usr/lib/kamailio/" \
-       modules-dir="/usr/lib/kamailio/modules/" \
-       include_modules="$(INCL_MODULES)" \
-       $(KAM3_EXTRA_ARGS) \
-       TLS_HOOKS=1 extra_defs="-DUSE_PTHREAD_MUTEX " \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       ISSMP="no" \
-       LOCALBASE="$(STAGING_DIR)/usr" \
-       SYSBASE="$(STAGING_DIR)/usr" \
-       PCREDEFS:="$(TARGET_CPPFLAGS)" \
-       PCRELIBS:="$(TARGET_LDFLAGS)" \
-       cfg_target:=/etc/kamailio/ \
-       PREFIX:=/usr \
-       prefix:=/usr quiet=verbose
-
-define Build/Compile
-       if ! [ -f $(PREBUILT_STAMP) ]; then echo $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               EXTRA_LIBS=-L$(STAGING_DIR)/usr/lib/ \
-               all && touch $(PREBUILT_STAMP); \
-       fi
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               DESTDIR=$(PKG_INSTALL_DIR) \
-               prefix=/ \
-               install-cfg
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               DESTDIR=$(PKG_INSTALL_DIR) \
-               prefix=/usr \
-               install-bin install-modules-all install-utils
-endef
-
-$(eval $(call BuildPackage,kamailio3))
-$(eval $(call BuildPackage,kamailio3-example))
-$(eval $(call BuildPackage,kamailio3-tools))
-$(foreach m,$(KAM_MODULES),$(eval $(call BuildPackage,$(m))))
diff --git a/kamailio-3.3.x/files/kamailio.default b/kamailio-3.3.x/files/kamailio.default
deleted file mode 100644 (file)
index a61617b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# OPTIONS
-# -n COUNT
-# Specifies the number of children processes forked per interface
-# -N COUNT
-# Specifies the number of children processes forked to handle tcp incoming connections
-# -m SIZE
-# Size of the shared memory which will be allocated (in Megabytes).
-# -u UID
-# Changes the user id under which 
-# -g GID
-# Changes the group id under which 
-
-OPTIONS="-n 4 -m 4 - m 8"
diff --git a/kamailio-3.3.x/files/kamailio.init b/kamailio-3.3.x/files/kamailio.init
deleted file mode 100644 (file)
index 5a382ae..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2012 OpenWrt.org
-START=99 
-APP=kamailio
-BIN_FILE="/usr/sbin/"$APP
-PID_FILE="/var/run/"$APP".pid"
-
-start() {
-       start-stop-daemon -S -x $BIN_FILE -p $PID_FILE -b -m
-}
-
-stop() {
-       start-stop-daemon -K -x $BIN_FILE -p $PID_FILE -q
-       rm -rf $PID_FILE
-}
diff --git a/kamailio-3.3.x/patches/100-cross_compile.patch b/kamailio-3.3.x/patches/100-cross_compile.patch
deleted file mode 100644 (file)
index 963a607..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kamailio3-3.3.0/modules_s/ldap/Makefile
-===================================================================
---- kamailio3-3.3.0.orig/modules_s/ldap/Makefile       2012-08-14 17:14:01.000000000 +0200
-+++ kamailio3-3.3.0/modules_s/ldap/Makefile    2012-08-14 17:14:12.000000000 +0200
-@@ -14,7 +14,7 @@
- # LD_SCOPE_CHILDREN defined
- #DEFS += -DHAVE_SCOPE_CHILDREN
--LIBS=-L$(LOCALBASE)/lib -L /usr/lib -lldap
-+LIBS=-L$(LOCALBASE)/lib -lldap
- DEFS+=-DSER_MOD_INTERFACE
diff --git a/kamailio-4.0.x/Makefile b/kamailio-4.0.x/Makefile
deleted file mode 100644 (file)
index a0a560a..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-#
-# Copyright (C) 2013 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:=kamailio4
-PKG_VERSION:=4.0.2
-PKG_RELEASE:=1
-
-PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src/
-PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
-PKG_MD5SUM:=012f1a0f288434549ad54ea2c5c3fa7a
-
-INCL_MODULES:=
-KAM_MODULES:=
-
-include $(INCLUDE_DIR)/nls.mk
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-PREBUILT_STAMP=$(STAGING_DIR)/stamp/.$(PKG_NAME)_prebuilt
-TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
-
-define Package/kamailio4/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.kamailio.org/
-  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
-  DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline +libxml2
-endef
-
-define Package/kamailio4
-$(call Package/kamailio4/Default)
-  TITLE:=Mature and flexible open source SIP server, v4.0.x
-  MENU:=1
-endef
-
-define Package/kamailio4/conffiles
-/etc/default/kamailio
-/etc/kamailio/kamailio.cfg
-/etc/kamailio/kamailio-advanced.cfg
-/etc/kamailio/dictionary.kamailio
-/etc/kamailio/tls.cfg
-endef
-
-define Package/kamailio4-tools
-$(call Package/kamailio4/Default)
-  TITLE:=Kamailio4 control tools
-  DEPENDS:=kamailio4 +bash
-endef
-
-define Package/kamailio4-tools/conffiles
-/etc/kamailio/kamctlrc
-endef
-
-define Package/kamailio4/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/sbin/{kamailio,kamcmd} \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib*.so* \
-               $(1)/usr/lib/kamailio/
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/etc/kamailio/*{kamailio,tls}* \
-               $(1)/etc/kamailio/
-       $(INSTALL_DIR) $(1)/etc/default
-       $(CP) \
-               ./files/kamailio.default \
-               $(1)/etc/default/kamailio
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) \
-               ./files/kamailio.init \
-               $(1)/etc/init.d/kamailio        
-endef
-
-define Package/kamailio4-tools/install
-       $(INSTALL_DIR) $(1)/etc/kamailio
-       $(CP) \
-               $(PKG_BUILD_DIR)/utils/kamctl/kamctlrc \
-               $(1)/etc/kamailio/
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl} \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/kamailio
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
-               $(1)/usr/lib/kamailio/
-endef
-
-define BuildPlugin
-  define Package/kamailio4-mod-$(1)
-    $$(call Package/kamailio4/Default)
-    TITLE:= kamailio4 $(3) module
-    DEPENDS:=kamailio4 $$(foreach m,$(4),+kamailio4-mod-$$m) $(5)
-  endef
-
-  define Package/kamailio4-mod-$(1)/install
-       $(INSTALL_DIR) $$(1)/usr/lib/kamailio/modules
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so \
-                       $$(1)/usr/lib/kamailio/modules/ ;
-  endef
-
-  INCL_MODULES+=$(2)
-  KAM_MODULES+=kamailio4-mod-$(1)
-endef
-
-$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
-$(eval $(call BuildPlugin,acc-radius,acc_radius,Accounting for RADIUS backend,acc,+libradiusclient-ng))
-$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,db-sqlite,))
-$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,))
-$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth db-sqlite,))
-$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,))
-$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
-$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
-$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
-$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
-$(eval $(call BuildPlugin,cfg-db,cfg_db,Load core and module parameters from database,db-sqlite,))
-$(eval $(call BuildPlugin,cfg-rpc,cfg_rpc,Update core and module parameters at runtime via RPC interface,,))
-$(eval $(call BuildPlugin,corex,corex,Legacy functions,,))
-$(eval $(call BuildPlugin,ctl,ctl,BINRPC transport interface,,))
-$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
-$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
-$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
-$(eval $(call BuildPlugin,db-sqlite,db_sqlite,Sqlite DB support,,+libsqlite3))
-$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
-$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,+unixodbc))
-$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
-$(eval $(call BuildPlugin,dialog_ng,dialog,Dialog support,rr tm,))
-$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre))
-$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
-$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
-$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
-$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
-$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
-$(eval $(call BuildPlugin,exec,exec,External exec,,))
-$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
-$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
-$(eval $(call BuildPlugin,htable,htable,Hash Table,,))
-$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
-$(eval $(call BuildPlugin,ipops,ipops,IP and IPv6 operations,,))
-$(eval $(call BuildPlugin,json,json,Access to JSON document attributes,,+libjson))
-$(eval $(call BuildPlugin,kex,kex,Core extensions,,))
-$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre))
-$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
-$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
-$(eval $(call BuildPlugin,mediaproxy,mediaproxy,Automatic NAT traversal,dialog,))
-$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
-$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
-$(eval $(call BuildPlugin,mi-rpc,mi_rpc,RPC support for Management Interface,,))
-$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
-$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
-$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
-$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
-$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
-$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
-$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
-$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2))
-$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
-$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
-$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
-$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
-$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
-$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
-$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
-$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
-$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
-$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,))
-$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
-$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
-$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
-$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,))
-$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2))
-$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
-$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,))
-$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,))
-$(eval $(call BuildPlugin,sipcapture,sipcapture,SIP capture,,))
-$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
-$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,))
-$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
-$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
-$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
-$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,))
-$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
-$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
-$(eval $(call BuildPlugin,textops,textops,Text operations,,))
-$(eval $(call BuildPlugin,tls,tls,TLS operations,,+libopenssl))
-$(eval $(call BuildPlugin,topoh,topoh,Topology hiding,rr,))
-$(eval $(call BuildPlugin,tm,tm,Transaction,,))
-$(eval $(call BuildPlugin,tmx,tmx,Transaction module extensions,,))
-$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
-$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
-$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
-$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
-$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
-$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl +libxml2))
-$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl))
-$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
-$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
-
-PKG_MAKE_ARGS:= \
-       cfg-dir="/etc/kamailio/" \
-       bin-dir="/usr/sbin/" \
-       data-dir="/var/lib/kamailio/" \
-       lib-dir="/usr/lib/kamailio/" \
-       modules-dir="/usr/lib/kamailio/modules/" \
-       include_modules="$(INCL_MODULES)" \
-       TLS_HOOKS=1 \
-       extra_defs="-DUSE_PTHREAD_MUTEX " \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       ISSMP="no" \
-       LOCALBASE="$(STAGING_DIR)/usr" \
-       SYSBASE="$(STAGING_DIR)/usr" \
-       PCREDEFS:="$(TARGET_CPPFLAGS)" \
-       PCRELIBS:="$(TARGET_LDFLAGS)" \
-       cfg_target:=/etc/kamailio/ \
-       PREFIX:=/usr \
-       CROSS_COMPILE=$(TARGET_CROSS) \
-       CC="$(TARGET_CC)" \
-       ARCH="$(ARCH)"  \
-       DESTDIR=$(PKG_INSTALL_DIR) \
-       quiet=verbose \
-       prefix=/usr
-
-define Build/Configure
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               cfg
-endef
-
-define Build/Compile
-       if ! [ -f $(PREBUILT_STAMP) ]; then \
-               echo $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               EXTRA_LIBS=-L$(STAGING_DIR)/usr/lib/ \
-               all && touch $(PREBUILT_STAMP); \
-       fi
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               install
-endef
-
-$(eval $(call BuildPackage,kamailio4))
-$(eval $(call BuildPackage,kamailio4-tools))
-$(foreach m,$(KAM_MODULES),$(eval $(call BuildPackage,$(m))))
diff --git a/kamailio-4.0.x/files/kamailio.default b/kamailio-4.0.x/files/kamailio.default
deleted file mode 100644 (file)
index a61617b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# OPTIONS
-# -n COUNT
-# Specifies the number of children processes forked per interface
-# -N COUNT
-# Specifies the number of children processes forked to handle tcp incoming connections
-# -m SIZE
-# Size of the shared memory which will be allocated (in Megabytes).
-# -u UID
-# Changes the user id under which 
-# -g GID
-# Changes the group id under which 
-
-OPTIONS="-n 4 -m 4 - m 8"
diff --git a/kamailio-4.0.x/files/kamailio.init b/kamailio-4.0.x/files/kamailio.init
deleted file mode 100644 (file)
index 5a382ae..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2012 OpenWrt.org
-START=99 
-APP=kamailio
-BIN_FILE="/usr/sbin/"$APP
-PID_FILE="/var/run/"$APP".pid"
-
-start() {
-       start-stop-daemon -S -x $BIN_FILE -p $PID_FILE -b -m
-}
-
-stop() {
-       start-stop-daemon -K -x $BIN_FILE -p $PID_FILE -q
-       rm -rf $PID_FILE
-}
diff --git a/kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch b/kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch
deleted file mode 100644 (file)
index 772aaa2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- kamailio4-4.0.1/modules/json/Makefile      2013-04-25 16:56:29.000000000 +0200
-+++ kamailio4-next/modules/json/Makefile       2013-05-31 10:54:42.125995025 +0200
-@@ -11,12 +11,12 @@ LIBS=
- BUILDER = $(shell which pkg-config)
- ifeq ($(BUILDER),)
--      DEFS+=-I/usr/include/json -I$(LOCALBASE)/include/json \
-+      DEFS+=-I/usr/include/json-c -I$(LOCALBASE)/include/json-c \
-        -I$(LOCALBASE)/include
--      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -ljson
-+      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -ljson-c
- else
--      DEFS+= $(shell pkg-config --cflags json)
--      LIBS+= $(shell pkg-config --libs json)
-+      DEFS+= $(shell pkg-config --cflags json-c)
-+      LIBS+= $(shell pkg-config --libs json-c)
- endif
- DEFS+=-DKAMAILIO_MOD_INTERFACE
diff --git a/kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch b/kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch
deleted file mode 100644 (file)
index d0dc962..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- kamailio4-4.0.1/modules/jsonrpc-c/Makefile 2013-04-25 16:56:29.000000000 +0200
-+++ kamailio4-next/modules/jsonrpc-c/Makefile  2013-05-31 10:58:00.689999015 +0200
-@@ -11,12 +11,12 @@ LIBS=-lm
- BUILDER = $(shell which pkg-config)
- ifeq ($(BUILDER),)
--      DEFS+=-I/usr/include/json -I$(LOCALBASE)/include/json \
-+      DEFS+=-I/usr/include/json-c -I$(LOCALBASE)/include/json-c \
-        -I$(LOCALBASE)/include
--      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -levent -ljson
-+      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -levent -ljson-c
- else
--      DEFS+= $(shell pkg-config --cflags json)
--      LIBS+= $(shell pkg-config --libs json)
-+      DEFS+= $(shell pkg-config --cflags json-c)
-+      LIBS+= $(shell pkg-config --libs json-c)
-       DEFS+= $(shell pkg-config --cflags libevent)
-       LIBS+= $(shell pkg-config --libs libevent)
- endif
diff --git a/miax/Makefile b/miax/Makefile
deleted file mode 100644 (file)
index 85194f4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# Copyright (C) 2006-2009 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:=miax
-PKG_VERSION:=1.4
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/miax
-PKG_MD5SUM:=44f0d2ef46ee2697d890b7b96846adc7
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/miax
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  DEPENDS:=+libpthread +bluez-libs
-  TITLE:=A console iax (asterisk) client
-  URL:=http://www.eja.it/?l=en&n=miax
-endef
-
-define Package/miax/description
-       miax is a console iax (asterisk) client, it can work with 
-       a soundcard as a normal voip phone, taking input/output from 
-       keyboard, analog/gsm/isdn modem or bluetooth phones.
-endef
-
-define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)" \
-               CC="$(TARGET_CC)" \
-               OFLAGS="$(TARGET_CFLAGS)" \
-               CPPFLAGS="$(TARGET_CPPFLAGS)" \
-               LDFLAGS="$(TARGET_LDFLAGS)" \
-               all
-endef
-
-define Package/miax/install    
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/miax $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,miax))
diff --git a/miax/patches/001-cross.patch b/miax/patches/001-cross.patch
deleted file mode 100644 (file)
index f47c110..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ruN miax-1.4-old/Makefile miax-1.4-new/Makefile
---- miax-1.4-old/Makefile      2005-04-27 18:56:13.000000000 +0200
-+++ miax-1.4-new/Makefile      2005-11-30 01:07:21.000000000 +0100
-@@ -1,4 +1,5 @@
--CFLAGS= -Iiax/ -Igsm/inc -DIAXC_IAX2 -DLIBIAX -g -DPOSIXSLEEP -DLINUX -O2 
-+OFLAGS= -02 -g
-+CFLAGS= -Iiax/ -Igsm/inc $(CPPFLAGS) -DIAXC_IAX2 -DLIBIAX -DPOSIXSLEEP -DLINUX $(OFLAGS)
- SYSLIBS=-lpthread -lm -lbluetooth
-@@ -32,11 +33,10 @@
-       miax.o
- all: $(OBJS)
--      gcc $(OBJS) $(CFLAGS) $(SYSLIBS)  -o miax
--      cp miax /bin/miax
-+      $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) $(SYSLIBS) -o miax
- static: $(OBJS) bluetooth.o 
--      gcc $(OBJS) $(CFLAGS) $(SYSLIBS)  -static -o miax
-+      $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) $(SYSLIBS) -static -o miax
- clean: 
-       rm -f $(OBJS) miax 
diff --git a/net/asterisk-1.8.x-chan-sccp-b/Makefile b/net/asterisk-1.8.x-chan-sccp-b/Makefile
new file mode 100644 (file)
index 0000000..9b098e3
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (C) 2013 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:=asterisk18-chan-sccp-b
+PKG_REV=4631
+PKG_VERSION:=r$(PKG_REV)
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://svn.code.sf.net/p/chan-sccp-b/code/trunk
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_PROTO:=svn
+
+PKG_FIXUP:=autoreconf -fi
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/asterisk18-chan-sccp-b
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=SCCP channel provider for asterisk
+  URL:=http://chan-sccp-b.net.sourceforge.net/
+  DEPENDS:= asterisk18 +libltdl
+endef
+
+define Package/asterisk18-chan-sccp-b/description
+ SCCP channel provider for asterisk. It delivers extended functionality for SCCP phones over chan_skinny delivered
+ by asterisk by default.
+endef
+
+define Build/Configure
+       $(call Build/Configure/Default,--with-asterisk=$(STAGING_DIR)/usr/include/asterisk-1.8)
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               CFLAGS="$(CFLAGS) -I$(PKG_BUILD_DIR)/src -DLOW_MEMORY" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               all install
+endef
+
+define Package/asterisk18-chan-sccp-b/conffiles
+/etc/asterisk/sccp.conf
+endef
+
+define Package/asterisk18-chan-sccp-b/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(CP)  ./files/sccp.openwrt.conf $(1)/etc/asterisk/sccp.conf
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sccp.so $(1)/usr/lib/asterisk/modules/
+endef
+
+$(eval $(call BuildPackage,asterisk18-chan-sccp-b))
diff --git a/net/asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf b/net/asterisk-1.8.x-chan-sccp-b/files/sccp.openwrt.conf
new file mode 100644 (file)
index 0000000..c59f4cd
--- /dev/null
@@ -0,0 +1,89 @@
+[general]
+servername = Openwrt
+keepalive = 60
+debug = core
+context = default
+dateformat = D/M/Y
+bindaddr = 192.168.1.1
+port = 2000
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+firstdigittimeout = 16
+digittimeout = 6
+autoanswer_ring_time = 1
+musicclass=default
+language=en
+deny=0.0.0.0/0.0.0.0
+permit=192.168.1.0/255.255.255.0
+protocolversion=17
+
+hotline_enabled=yes
+hotline_context=default
+hotline_extension=111
+
+[SEP001122334455]
+type = device
+description = Phone Number One
+devicetype = 7940
+button = line, 111
+button = line, 113@01:shared
+button = speeddial,Phone 2 Line 1, 112, 112@hint
+
+[SEP00a1a2a3a4a5]
+type = device
+description = Phone Number Two
+devicetype = 7960
+button = line, 112
+button = line, 113@01:shared
+button = speeddial,Phone 1 Line 1, 111, 111@hint
+
+[111]
+id = 1000
+type = line
+pin = 1234
+label = Phone 1 Line 1
+description = Line 111
+mailbox = 10111
+cid_name = Phone 1 CID
+cid_num = 111
+accountcode=79111
+callgroup=1
+pickupgroup=1
+context = default
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
+[112]
+id = 1001
+type = line
+pin = 1234
+label = Phone 2 Line 1
+description = Line 112
+mailbox = 10112
+cid_name = Phone 2 CID
+cid_num = 112
+accountcode=79112
+callgroup=1
+pickupgroup=1
+context = default
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
+[113]
+id = 1002
+type = line
+pin = 1234
+label = SharedLine 1
+description = Line 113
+mailbox = 10113
+cid_name = Shared
+cid_num = 113
+accountcode=79113
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
diff --git a/net/asterisk-1.8.x/Makefile b/net/asterisk-1.8.x/Makefile
new file mode 100644 (file)
index 0000000..a420b5a
--- /dev/null
@@ -0,0 +1,773 @@
+#
+# Copyright (C) 2013 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:=asterisk18
+PKG_VERSION:=1.8.10.1
+PKG_RELEASE:=7
+
+PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.asterisk.org/pub/telephony/asterisk/releases/
+PKG_MD5SUM:=415738d347b9037cbe5f8bfbe66843de
+
+PKG_BUILD_DIR=$(BUILD_DIR)/asterisk-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/ltqtapi.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/asterisk18/Default
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  URL:=http://www.asterisk.org/
+endef
+
+define Package/asterisk18/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/asterisk18
+$(call Package/asterisk18/Default)
+  TITLE:=Complete open source PBX, v1.8x
+  MENU:=1
+  DEPENDS:= +libopenssl +libncurses +libpopt +libpthread +zlib @!TARGET_avr32
+endef
+
+define Package/asterisk18/description
+$(call Package/asterisk18/Default/description)
+endef
+
+define Package/asterisk18-sounds
+$(call Package/asterisk18/Default)
+  TITLE:=Sound files
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-sounds/description
+$(call Package/asterisk18/Default/description)
+ This package contains sound files for Asterisk.
+endef
+
+define Package/asterisk18-voicemail
+$(call Package/asterisk18/Default)
+  TITLE:=Voicemail support
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-voicemail/description
+$(call Package/asterisk18/Default/description)
+ This package contains voicemail related modules for Asterisk.
+endef
+
+define Package/asterisk18-app-meetme
+$(call Package/asterisk18/Default)
+  TITLE:=conferencing support
+  DEPENDS:= asterisk18 +dahdi-tools-libtonezone +kmod-dahdi-linux
+endef
+
+define Package/asterisk18-app-meetme/description
+$(call Package/asterisk18/Default/description)
+ This package provides the MeetMe application driver Conferencing support to
+ Asterisk.
+endef
+
+define Package/asterisk18-chan-iax2
+$(call Package/asterisk18/Default)
+  TITLE:=IAX support
+  DEPENDS:= asterisk18 +asterisk18-res-crypto
+endef
+
+define Package/asterisk18-chan-iax2/description
+$(call Package/asterisk18/Default/description)
+ This package provides IAX support to
+ Asterisk.
+endef
+
+define Package/asterisk18-cdr
+$(call Package/asterisk18/Default)
+  TITLE:=CDR support
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-cdr/description
+$(call Package/asterisk18/Default/description)
+ This package provides Call Detail Record support to
+ Asterisk.
+endef
+
+define Package/asterisk18-pgsql
+$(call Package/asterisk18/Default)
+  TITLE:=PostgreSQL support
+  DEPENDS:= asterisk18 +libpq
+endef
+
+define Package/asterisk18-pgsql/description
+$(call Package/asterisk18/Default/description)
+ This package provides PostgreSQL support to
+ Asterisk.
+endef
+
+define Package/asterisk18-res-musiconhold
+$(call Package/asterisk18/Default)
+  TITLE:=MOH support
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-res-musiconhold/description
+$(call Package/asterisk18/Default/description)
+ This package provides Music On Hold support to
+ Asterisk.
+endef
+
+define Package/asterisk18-res-srtp
+$(call Package/asterisk18/Default)
+  TITLE:=SRTP support
+  DEPENDS:= asterisk18 libsrtp +asterisk18-res-crypto
+endef
+
+define Package/asterisk18-res-srtp/description
+$(call Package/asterisk18/Default/description)
+ This package provides SRTP support to
+ Asterisk.
+endef
+
+define Package/asterisk18-chan-gtalk
+$(call Package/asterisk18/Default)
+  TITLE:=GTalk support
+  DEPENDS:= asterisk18 +libiksemel
+endef
+
+define Package/asterisk18-chan-gtalk/description
+$(call Package/asterisk18/Default/description)
+ This package provides the channel chan_gtalk and res_jabber for GTalk
+ support to Asterisk.
+endef
+
+define Package/asterisk18-chan-mobile
+$(call Package/asterisk18/Default)
+  TITLE:=Mobile channel support
+  DEPENDS:= asterisk18 +bluez-libs
+endef
+
+define Package/asterisk18-chan-mobile/description
+$(call Package/asterisk18/Default/description)
+ This package provides the channel chan_mobile support to Asterisk.
+endef
+
+define Package/asterisk18-res-timing-timerfd
+$(call Package/asterisk18/Default)
+  TITLE:= Timerfd Timing Interface
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-res-timing-pthread
+$(call Package/asterisk18/Default)
+  TITLE:= pthread Timing Interface
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-res-fax
+$(call Package/asterisk18/Default)
+  TITLE:=Generic FAX Resource for FAX technology resource modules
+  DEPENDS:= asterisk18 +asterisk18-res-timing-pthread
+endef
+
+define Package/asterisk18-res-fax-spandsp
+$(call Package/asterisk18/Default)
+  TITLE:=Spandsp T.38 and G.711 FAX Resource
+  DEPENDS:= asterisk18 +asterisk18-res-fax +libspandsp
+endef
+
+define Package/asterisk18-chan-mgcp
+$(call Package/asterisk18/Default)
+  TITLE:=MGCP channel support
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-chan-mgcp/description
+$(call Package/asterisk18/Default/description)
+ This package provides the channel chan_mgcp support to Asterisk.
+endef
+
+define Package/asterisk18-chan-skinny
+$(call Package/asterisk18/Default)
+  TITLE:=Skinny channel support
+  DEPENDS:= asterisk18
+endef
+
+define Package/asterisk18-chan-skinny/description
+$(call Package/asterisk18/Default/description)
+ This package provides the channel chan_skinny support to Asterisk.
+endef
+
+define Package/asterisk18-curl
+$(call Package/asterisk18/Default)
+  TITLE:=CURL support
+  DEPENDS:= asterisk18 +libcurl
+endef
+
+define Package/asterisk18-curl/description
+$(call Package/asterisk18/Default/description)
+ This package provides CURL
+ support to Asterisk.
+endef
+
+define Package/asterisk18-mysql
+$(call Package/asterisk18/Default)
+  TITLE:=MySQL support
+  DEPENDS:= asterisk18 +PACKAGE_asterisk18-mysql:libmysqlclient
+endef
+
+define Package/asterisk18-mysql/description
+$(call Package/asterisk18/Default/description)
+ This package provides MySQL
+ support to Asterisk.
+endef
+
+define Package/asterisk18-chan-lantiq
+$(call Package/asterisk18/Default)
+  TITLE:=Lantiq TAPI support
+  DEPENDS:= asterisk18 $(LTQ_TAPI_DEPENDS)
+  URL:=http://git.nanl.de/?p=asterisk_channel_lantiq.git
+  MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
+endef
+
+define Package/asterisk18-chan-lantiq/description
+$(call Package/asterisk18/Default/description)
+ This package provides the channel chan_lantiq support to Asterisk.
+endef
+
+define Package/asterisk18-odbc
+$(call Package/asterisk18/Default)
+  TITLE:=ODBC support
+  DEPENDS:= asterisk18 +libpthread +libc +unixodbc
+endef
+
+define Package/asterisk18-odbc/description
+$(call Package/asterisk18/Default/description)
+ This package provides ODBC support for Asterisk.
+endef
+
+define Package/asterisk18-pbx-lua
+$(call Package/asterisk18/Default)
+  TITLE:=Lua support
+  DEPENDS:= asterisk18 +libpthread +libc +liblua
+endef
+
+define Package/asterisk18-pbx-lua/description
+$(call Package/asterisk18/Default/description)
+ This package provides Lua resources for Asterisk.
+endef
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-app-meetme),)
+  CONFIGURE_ARGS+= \
+       --with-dahdi="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-dahdi
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-chan-gtalk),)
+  CONFIGURE_ARGS+= \
+       --with-gnutls="$(STAGING_DIR)/usr" \
+       --with-iksemel="$(STAGING_DIR)/usr"
+  SITE_VARS+= \
+       ac_cv_lib_iksemel_iks_start_sasl=yes \
+       ac_cv_lib_gnutls_gnutls_bye=yes
+else
+  CONFIGURE_ARGS+= \
+       --without-gnutls \
+       --without-iksemel
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-curl),)
+  CONFIGURE_ARGS+= \
+       --with-curl="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-curl
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-pgsql),)
+  CONFIGURE_ARGS+= \
+       --with-postgres="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-postgres
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mysql),)
+  CONFIGURE_ARGS+= \
+       --with-mysqlclient="$(STAGING_DIR)/usr/bin"
+else
+  CONFIGURE_ARGS+= \
+       --without-mysqlclient
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-res-fax-spandsp),)
+  CONFIGURE_ARGS+= \
+    --with-spandsp="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+    --without-spandsp
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-chan-mobile),)
+  CONFIGURE_ARGS+= \
+       --with-bluetooth="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-bluetooth
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-res-srtp),)
+  CONFIGURE_ARGS+= \
+       --with-srtp="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-srtp
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-pbx-lua),)
+  CONFIGURE_ARGS+= \
+       --with-lua="$(STAGING_DIR)/usr"
+  TARGET_LDFLAGS+=-ldl -lcrypt
+else
+  CONFIGURE_ARGS+= \
+       --without-pbx-lua
+endif
+
+CONFIGURE_ARGS+= \
+       --without-curses \
+       --with-gsm=internal \
+       --without-cap \
+       --without-gtk \
+       --without-gtk2 \
+       --without-isdnnet \
+       --without-kde \
+       --without-misdn \
+       --without-nbs \
+       --with-ncurses="$(STAGING_DIR)/usr" \
+       --without-netsnmp \
+       --without-newt \
+       --without-ogg \
+       --without-osptk \
+       --with-popt="$(STAGING_DIR)/usr" \
+       --without-pri \
+       --without-qt \
+       --without-radius \
+       --without-sdl \
+       --without-suppserv \
+       --without-tds \
+       --without-termcap \
+       --without-tinfo \
+       --without-vorbis \
+       --without-vpb \
+       --with-z="$(STAGING_DIR)/usr" \
+       --with-sounds-cache="$(DL_DIR)" \
+       --disable-xmldoc
+
+EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
+EXTRA_LDFLAGS+= $(TARGET_LDFLAGS)
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+ifneq ($(CONFIG_TARGET_lantiq),)
+       $(CP) ./src-lantiq/* $(PKG_BUILD_DIR)/
+endif
+endef
+
+define Build/Configure
+       $(call Build/Configure/Default,,$(SITE_VARS))
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               include/asterisk/version.h \
+               include/asterisk/buildopts.h defaults.h \
+               makeopts.embed_rules
+       ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY" \
+       ASTLDFLAGS="$(EXTRA_LDFLAGS)" \
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               ASTVARLIBDIR="/usr/lib/asterisk" \
+               ASTDATADIR="/usr/lib/asterisk" \
+               ASTKEYDIR="/usr/lib/asterisk" \
+               ASTDBDIR="/usr/lib/asterisk" \
+               NOISY_BUILD="1" \
+               DEBUG="" \
+               OPTIMIZE="" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               all install samples
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/asterisk-1.8/include/asterisk/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-1.8/include/asterisk/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-1.8/include/
+endef
+
+define Package/asterisk18/conffiles
+/etc/asterisk/asterisk.conf
+/etc/asterisk/modules.conf
+/etc/asterisk/extensions.conf
+/etc/asterisk/sip.conf
+/etc/asterisk/sip_notify.conf
+/etc/asterisk/features.conf
+/etc/asterisk/indications.conf
+/etc/asterisk/logger.conf
+/etc/asterisk/manager.conf
+/etc/asterisk/rtp.conf
+/etc/default/asterisk
+/etc/init.d/asterisk
+endef
+
+define Package/asterisk18/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       for f in asterisk extensions features \
+               indications logger manager modules \
+               sip sip_notify rtp; do \
+               $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f.conf $(1)/etc/asterisk/ ; \
+       done
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       for f in app_dial app_echo app_playback app_macro \
+               chan_sip res_rtp_asterisk res_rtp_multicast \
+               codec_ulaw codec_gsm \
+               format_gsm format_pcm format_wav format_wav_gsm \
+               pbx_config \
+               func_strings func_timeout func_callerid func_logic; do \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \
+       done
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/asterisk $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DATA)  ./files/asterisk.default $(1)/etc/default/asterisk
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN)  ./files/asterisk.init $(1)/etc/init.d/asterisk
+endef
+
+define Package/asterisk18-sounds/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/* $(1)/usr/lib/asterisk/sounds/
+       rm -f $(1)/usr/lib/asterisk/sounds/vm-*
+       rm -f $(1)/usr/lib/asterisk/sounds/conf-*
+endef
+
+
+define Package/asterisk18-voicemail/conffiles
+/etc/asterisk/voicemail.conf
+endef
+
+define Package/asterisk18-voicemail/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/voicemail.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*voicemail.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_adsi.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_smdi.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/vm-*.gsm $(1)/usr/lib/asterisk/sounds/
+endef
+
+define Package/asterisk18-app-meetme/conffiles
+/etc/asterisk/meetme.conf
+endef
+
+define Package/asterisk18-app-meetme/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/meetme.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_meetme.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_dahdi.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/conf-*.gsm $(1)/usr/lib/asterisk/sounds/
+endef
+
+define Package/asterisk18-chan-iax2/conffiles
+/etc/asterisk/iax.conf
+/etc/asterisk/iaxprov.conf
+endef
+
+define Package/asterisk18-cdr/conffiles
+/etc/asterisk/cdr.conf
+/etc/asterisk/cdr_custom.conf
+/etc/asterisk/cdr_manager.conf
+/etc/asterisk/cdr_syslog.conf
+endef
+
+define Package/asterisk18-res-musiconhold/conffiles
+/etc/asterisk/musiconhold.conf
+endef
+
+define Package/asterisk18-chan-iax2/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iax.conf $(1)/etc/asterisk/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iaxprov.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_iax2.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-cdr/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/{cdr,cdr_custom,cdr_manager,cdr_syslog}.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{app_,app_fork,func_}cdr.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_csv.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-pgsql/conffiles
+/etc/asterisk/cel_pgsql.conf
+/etc/asterisk/cdr_pgsql.conf
+/etc/asterisk/res_pgsql.conf
+endef
+
+define Package/asterisk18-pgsql/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/{cel,cdr,res}_pgsql.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{cel,cdr,res_config}_pgsql.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-musiconhold/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_musiconhold.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-chan-gtalk/conffiles
+/etc/asterisk/gtalk.conf
+/etc/asterisk/jabber.conf
+endef
+
+define Package/asterisk18-chan-gtalk/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/gtalk.conf $(1)/etc/asterisk/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/jabber.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_gtalk.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_jabber.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-chan-mobile/conffiles
+/etc/asterisk/chan_mobile.conf
+endef
+
+define Package/asterisk18-chan-mobile/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/chan_mobile.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mobile.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-timing-timerfd/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_timerfd.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-timing-pthread/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_pthread.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-fax/conffiles
+/etc/asterisk/res_fax.conf
+endef
+
+define Package/asterisk18-res-fax/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_fax.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-fax-spandsp/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax_spandsp.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-chan-mgcp/conffiles
+/etc/asterisk/mgcp.conf
+endef
+
+define Package/asterisk18-chan-mgcp/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/mgcp.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mgcp.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-chan-skinny/conffiles
+/etc/asterisk/skinny.conf
+endef
+
+define Package/asterisk18-chan-skinny/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/skinny.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_skinny.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-curl/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_curl.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_curl.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-mysql/conffiles
+/etc/asterisk/app_mysql.conf
+/etc/asterisk/res_config_mysql.conf
+/etc/asterisk/cdr_mysql.conf
+endef
+
+define Package/asterisk18-mysql/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/app_mysql.conf $(1)/etc/asterisk/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_config_mysql.conf $(1)/etc/asterisk/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/cdr_mysql.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_mysql.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_mysql.so $(1)/usr/lib/asterisk/modules/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_config_mysql.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-chan-lantiq/conffiles
+/etc/asterisk/lantiq.conf
+endef
+
+define Package/asterisk18-chan-lantiq/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/lantiq.conf $(1)/etc/asterisk/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_lantiq.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-res-srtp/install
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_srtp.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-odbc/conffiles
+/etc/asterisk/cdr_adaptive_odbc.conf
+/etc/asterisk/cdr_odbc.conf
+/etc/asterisk/cel_odbc.conf
+/etc/asterisk/func_odbc.conf
+/etc/asterisk/res_odbc.conf
+endef
+
+define Package/asterisk18-odbc/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/{cdr_adaptive,cdr,cel,func,res}_odbc.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/{cdr_adaptive,cdr,cel,func,res_config,res}_odbc.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Package/asterisk18-pbx-lua/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/extensions.lua $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/pbx_lua.so $(1)/usr/lib/asterisk/modules/
+endef
+
+define Buildasterisk18ModuleTemplate
+
+  define Package/asterisk18-$(subst _,-,$(1))
+  $$(call Package/asterisk18/Default)
+    TITLE:=$(2) support
+    DEPENDS:= asterisk18 $(4)
+  endef
+
+  define Package/asterisk18-$(subst _,-,$(1))/description
+  $$(call Package/asterisk18/Default/description)
+    This package provides support $(3) in Asterisk.
+  endef
+
+  define Package/asterisk18-$(subst _,-,$(1))/install
+       $(INSTALL_DIR) $$(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$(1).so $$(1)/usr/lib/asterisk/modules/
+  endef
+
+  $$(eval $$(call BuildPackage,asterisk18-$(subst _,-,$(1))))
+endef
+
+$(eval $(call BuildPackage,asterisk18))
+$(eval $(call BuildPackage,asterisk18-voicemail))
+$(eval $(call BuildPackage,asterisk18-sounds))
+#$(eval $(call BuildPackage,asterisk18-app-meetme))
+$(eval $(call BuildPackage,asterisk18-chan-iax2))
+$(eval $(call BuildPackage,asterisk18-cdr))
+$(eval $(call BuildPackage,asterisk18-res-musiconhold))
+$(eval $(call BuildPackage,asterisk18-chan-gtalk))
+$(eval $(call BuildPackage,asterisk18-chan-mobile))
+$(eval $(call BuildPackage,asterisk18-odbc))
+$(eval $(call BuildPackage,asterisk18-pgsql))
+$(eval $(call BuildPackage,asterisk18-pbx-lua))
+$(eval $(call BuildPackage,asterisk18-res-fax))
+$(eval $(call BuildPackage,asterisk18-res-fax-spandsp))
+$(eval $(call BuildPackage,asterisk18-res-timing-timerfd))
+$(eval $(call BuildPackage,asterisk18-res-timing-pthread))
+$(eval $(call BuildPackage,asterisk18-chan-mgcp))
+$(eval $(call BuildPackage,asterisk18-chan-skinny))
+$(eval $(call BuildPackage,asterisk18-curl))
+$(eval $(call BuildPackage,asterisk18-mysql))
+$(eval $(call BuildPackage,asterisk18-chan-lantiq))
+$(eval $(call BuildPackage,asterisk18-res-srtp))
+$(eval $(call Buildasterisk18ModuleTemplate,app_authenticate,Authenticate,support for executing arbitrary authenticate commands))
+$(eval $(call Buildasterisk18ModuleTemplate,app_chanisavail,Channel availability check,support for checking if a channel is available))
+$(eval $(call Buildasterisk18ModuleTemplate,app_chanspy,Channel listen in,support for listening in on any channel))
+$(eval $(call Buildasterisk18ModuleTemplate,app_directed_pickup,Directed call pickup,support for directed call pickup))
+$(eval $(call Buildasterisk18ModuleTemplate,app_exec,Exec application,support for application execution))
+$(eval $(call Buildasterisk18ModuleTemplate,app_minivm,Minimal voicemail system,a voicemail system in small building blocks working together based on the Comedian Mail voicemail system))
+$(eval $(call Buildasterisk18ModuleTemplate,app_readexten,Extension to variable,a trivial application to read an extension into a variable))
+$(eval $(call Buildasterisk18ModuleTemplate,app_read,Variable read,a trivial application to read a variable))
+$(eval $(call Buildasterisk18ModuleTemplate,app_sayunixtime,Say Unix time,an application to say Unix time))
+$(eval $(call Buildasterisk18ModuleTemplate,app_sms,SMS,SMS support (ETSI ES 201 912 protocol 1)))
+$(eval $(call Buildasterisk18ModuleTemplate,app_stack,Stack applications, stack applications Gosub Return etc., +asterisk18-res-agi))
+$(eval $(call Buildasterisk18ModuleTemplate,app_system,System exec,support for executing system commands))
+$(eval $(call Buildasterisk18ModuleTemplate,app_talkdetect,File playback with audio detect,for file playback with audio detect))
+$(eval $(call Buildasterisk18ModuleTemplate,app_waituntil,Sleep,support sleeping until the given epoch))
+$(eval $(call Buildasterisk18ModuleTemplate,app_while,While loop,a while loop implementation))
+$(eval $(call Buildasterisk18ModuleTemplate,chan_agent,Agents proxy channel, an implementation of agents proxy channel))
+$(eval $(call Buildasterisk18ModuleTemplate,chan_local,Local proxy channel, an implementation of local proxy channel))
+$(eval $(call Buildasterisk18ModuleTemplate,codec_alaw,Signed linear to alaw translation,translation between signed linear and alaw codecs))
+$(eval $(call Buildasterisk18ModuleTemplate,codec_a_mu,Alaw to ulaw translation,translation between alaw and ulaw codecs))
+$(eval $(call Buildasterisk18ModuleTemplate,codec_g722,G.722,a high bit rate 48/56/64Kbps ITU standard codec))
+$(eval $(call Buildasterisk18ModuleTemplate,codec_g726,Signed linear to G.726 translation,translation between signed linear and ITU G.726-32kbps codecs))
+$(eval $(call Buildasterisk18ModuleTemplate,format_g726,G.726,support for headerless G.726 16/24/32/40kbps data format))
+$(eval $(call Buildasterisk18ModuleTemplate,format_g729,G.729,support for raw headerless G729 data))
+$(eval $(call Buildasterisk18ModuleTemplate,format_sln,Raw slinear format,support for raw slinear format))
+$(eval $(call Buildasterisk18ModuleTemplate,format_sln16,Raw slinear 16 format,support for Raw slinear 16 format))
+$(eval $(call Buildasterisk18ModuleTemplate,func_db,Database interaction,functions for interaction with the database))
+$(eval $(call Buildasterisk18ModuleTemplate,func_devstate,Blinky lights control,functions for manually controlled blinky lights))
+$(eval $(call Buildasterisk18ModuleTemplate,func_vmcount,vmcount dialplan,a vmcount dialplan function))
+$(eval $(call Buildasterisk18ModuleTemplate,func_extstate,Hinted extension state,retrieving the state of a hinted extension for dialplan control))
+$(eval $(call Buildasterisk18ModuleTemplate,func_global,Global variable,global variable dialplan functions))
+$(eval $(call Buildasterisk18ModuleTemplate,func_shell,Shell,support for shell execution))
+$(eval $(call Buildasterisk18ModuleTemplate,pbx_ael,Asterisk Extension Logic,support for symbolic Asterisk Extension Logic))
+$(eval $(call Buildasterisk18ModuleTemplate,res_ael_share,Shareable AEL code,support for shareable AEL code mainly between internal and external modules))
+$(eval $(call Buildasterisk18ModuleTemplate,pbx_spool,Call Spool,outgoing call spool support))
+$(eval $(call Buildasterisk18ModuleTemplate,res_agi,Asterisk Gateway Interface,support for the Asterisk Gateway Interface extension))
+$(eval $(call Buildasterisk18ModuleTemplate,res_crypto,Provide Crypto,Cryptographic Signature capability))
+$(eval $(call Buildasterisk18ModuleTemplate,app_alarmreceiver,Alarm receiver,Central Station Alarm receiver for Ademco Contact ID))
+$(eval $(call Buildasterisk18ModuleTemplate,app_setcallerid,Set callerid,support for setting callerid))
+$(eval $(call Buildasterisk18ModuleTemplate,app_verbose,Verbose logging,Verbose logging application))
+$(eval $(call Buildasterisk18ModuleTemplate,func_channel,Channel info,Channel info dialplan function))
+$(eval $(call Buildasterisk18ModuleTemplate,func_blacklist,Blacklist on callerid,looking up the callerid number and see if it is blacklisted))
+$(eval $(call Buildasterisk18ModuleTemplate,app_originate,Originate a call,originating an outbound call and connecting it to a specified extension or application))
+$(eval $(call Buildasterisk18ModuleTemplate,func_uri,URI encoding and decoding,Encodes and decodes URI-safe strings))
+$(eval $(call Buildasterisk18ModuleTemplate,app_disa,Direct Inward System Access,Direct Inward System Access))
+$(eval $(call Buildasterisk18ModuleTemplate,app_senddtmf,Send DTMF digits,Sends arbitrary DTMF digits))
+$(eval $(call Buildasterisk18ModuleTemplate,func_cut,CUT function,CUT function))
+$(eval $(call Buildasterisk18ModuleTemplate,res_clioriginate,Calls via CLI,Originate calls via the CLI))
+$(eval $(call Buildasterisk18ModuleTemplate,app_mixmonitor,Record a call and mix the audio,record a call and mix the audio during the recording))
+$(eval $(call Buildasterisk18ModuleTemplate,app_playtones,Playtones application,play a tone list))
+$(eval $(call Buildasterisk18ModuleTemplate,app_record,Record sound file,to record a sound file))
diff --git a/net/asterisk-1.8.x/files/asterisk.default b/net/asterisk-1.8.x/files/asterisk.default
new file mode 100644 (file)
index 0000000..9d046c4
--- /dev/null
@@ -0,0 +1,4 @@
+## startup options for /etc/init.d/asterisk
+
+ENABLE_ASTERISK="yes"
+OPTIONS=""
diff --git a/net/asterisk-1.8.x/files/asterisk.init b/net/asterisk-1.8.x/files/asterisk.init
new file mode 100644 (file)
index 0000000..53bf4af
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=50 
+
+DEST=
+DEFAULT=$DEST/etc/default/asterisk
+OPTIONS=""
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       [ -d $DEST/var/run/asterisk ] || mkdir -p $DEST/var/run/asterisk
+       [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
+       [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
+        [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
+        [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
+       $DEST/usr/sbin/asterisk $OPTIONS
+}
+
+stop() {
+       [ -f $DEST/var/run/asterisk/asterisk.pid ] && kill $(cat $DEST/var/run/asterisk/asterisk.pid) >/dev/null 2>&1
+}
diff --git a/net/asterisk-1.8.x/patches/100-build_tools-iconv.patch b/net/asterisk-1.8.x/patches/100-build_tools-iconv.patch
new file mode 100644 (file)
index 0000000..d3cad82
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/build_tools/menuselect-deps.in
++++ b/build_tools/menuselect-deps.in
+@@ -16,7 +16,7 @@ GTK2=@PBX_GTK2@
+ H323=@PBX_H323@
+ HOARD=@PBX_HOARD@
+ ICAL=@PBX_ICAL@
+-ICONV=@PBX_ICONV@
++ICONV=0
+ IKSEMEL=@PBX_IKSEMEL@
+ IMAP_TK=@PBX_IMAP_TK@
+ IODBC=@PBX_IODBC@
diff --git a/net/asterisk-1.8.x/patches/200-addons-defaultenable.patch b/net/asterisk-1.8.x/patches/200-addons-defaultenable.patch
new file mode 100644 (file)
index 0000000..65b9e79
--- /dev/null
@@ -0,0 +1,77 @@
+--- a/addons/app_mysql.c
++++ b/addons/app_mysql.c
+@@ -25,7 +25,7 @@
+ /*** MODULEINFO
+       <depend>mysqlclient</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>deprecated</support_level>
+       <replacement>func_odbc</replacement>
+  ***/
+--- a/addons/app_saycountpl.c
++++ b/addons/app_saycountpl.c
+@@ -21,7 +21,7 @@
+  */
+ /*** MODULEINFO
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>deprecated</support_level>
+       <replacement>say.conf</replacement>
+  ***/
+--- a/addons/cdr_mysql.c
++++ b/addons/cdr_mysql.c
+@@ -35,7 +35,7 @@
+ /*** MODULEINFO
+       <depend>mysqlclient</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>deprecated</support_level>
+       <replacement>cdr_adaptive_odbc</replacement>
+  ***/
+--- a/addons/chan_mobile.c
++++ b/addons/chan_mobile.c
+@@ -27,7 +27,7 @@
+ /*** MODULEINFO
+       <depend>bluetooth</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
+--- a/addons/chan_ooh323.c
++++ b/addons/chan_ooh323.c
+@@ -18,7 +18,7 @@
+ /*** MODULEINFO
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
+--- a/addons/res_config_mysql.c
++++ b/addons/res_config_mysql.c
+@@ -24,7 +24,7 @@
+ /*** MODULEINFO
+       <depend>mysqlclient</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
+--- a/res/res_pktccops.c
++++ b/res/res_pktccops.c
+@@ -31,7 +31,7 @@
+  */
+ /*** MODULEINFO
+-        <defaultenabled>no</defaultenabled>
++        <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
diff --git a/net/asterisk-1.8.x/patches/500-nres.patch b/net/asterisk-1.8.x/patches/500-nres.patch
new file mode 100644 (file)
index 0000000..1d030b5
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -16784,7 +16784,7 @@ if ac_fn_c_try_link "$LINENO"; then :
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+-$as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h
++$as_echo "//#define HAVE_RES_NINIT 1" >>confdefs.h
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_ndestroy" >&5
+ $as_echo_n "checking for library containing res_9_ndestroy... " >&6; }
diff --git a/net/asterisk-1.8.x/patches/600-CVE-2012-2186.patch b/net/asterisk-1.8.x/patches/600-CVE-2012-2186.patch
new file mode 100644 (file)
index 0000000..dbe790b
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/main/manager.c
++++ b/main/manager.c
+@@ -4020,6 +4020,7 @@ static int action_originate(struct manse
+                                                                    TryExec(System(rm -rf /)) */
+                               strcasestr(app, "agi") ||         /* AGI(/bin/rm,-rf /)
+                                                                    EAGI(/bin/rm,-rf /)       */
++                              strcasestr(app, "externalivr") || /* ExternalIVR(rm -rf)       */
+                               strstr(appdata, "SHELL") ||       /* NoOp(${SHELL(rm -rf /)})  */
+                               strstr(appdata, "EVAL")           /* NoOp(${EVAL(${some_var_containing_SHELL})}) */
+                               )) {
diff --git a/net/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c b/net/asterisk-1.8.x/src-lantiq/channels/chan_lantiq.c
new file mode 100644 (file)
index 0000000..6e2b502
--- /dev/null
@@ -0,0 +1,1679 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 2012, Luka Perkov
+ * Copyright (C) 2012, John Crispin
+ * Copyright (C) 2012, Andrej VlaÅ¡ić
+ * Copyright (C) 2012, Kaspar Schleiser for T-Labs
+ *                     (Deutsche Telekom Innovation Laboratories)
+ * Copyright (C) 2012, Mirko Vogt for T-Labs
+ *                     (Deutsche Telekom Innovation Laboratories)
+ *
+ * Luka Perkov <openwrt@lukaperkov.net>
+ * John Crispin <blogic@openwrt.org>
+ * Andrej VlaÅ¡ić <andrej.vlasic0@gmail.com>
+ * Kaspar Schleiser <kaspar@schleiser.de>
+ * Mirko Vogt <mirko@openwrt.org>
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*! \file
+ *
+ * \brief Asterisk channel line driver for Lantiq based TAPI boards
+ *
+ * \author Luka Perkov <openwrt@lukaperkov.net>
+ * \author John Crispin <blogic@openwrt.org>
+ * \author Andrej VlaÅ¡ić <andrej.vlasic0@gmail.com>
+ * \author Kaspar Schleiser <kaspar@schleiser.de>
+ * \author Mirko Vogt <mirko@openwrt.org>
+ * 
+ * \ingroup channel_drivers
+ */
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: xxx $")
+
+#include <ctype.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <arpa/inet.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <signal.h>
+#ifdef HAVE_LINUX_COMPILER_H
+#include <linux/compiler.h>
+#endif
+#include <linux/telephony.h>
+
+#include <asterisk/lock.h>
+#include <asterisk/channel.h>
+#include <asterisk/config.h>
+#include <asterisk/module.h>
+#include <asterisk/pbx.h>
+#include <asterisk/utils.h>
+#include <asterisk/callerid.h>
+#include <asterisk/causes.h>
+#include <asterisk/stringfields.h>
+#include <asterisk/musiconhold.h>
+#include <asterisk/sched.h>
+
+/* Lantiq TAPI includes */
+#include <drv_tapi/drv_tapi_io.h>
+#include <drv_vmmc/vmmc_io.h>
+
+#define RTP_HEADER_LEN 12
+
+#define TAPI_AUDIO_PORT_NUM_MAX                 2
+#define TAPI_TONE_LOCALE_NONE                   0 
+#define TAPI_TONE_LOCALE_RINGING_CODE           26
+#define TAPI_TONE_LOCALE_BUSY_CODE              27
+#define TAPI_TONE_LOCALE_CONGESTION_CODE        27
+#define TAPI_TONE_LOCALE_DIAL_CODE              25
+#define TAPI_TONE_LOCALE_WAITING_CODE           37
+
+#define LANTIQ_CONTEXT_PREFIX "lantiq"
+
+static const char config[] = "lantiq.conf";
+
+static char firmware_filename[PATH_MAX] = "/lib/firmware/ifx_firmware.bin";
+static char bbd_filename[PATH_MAX] = "/lib/firmware/ifx_bbd_fxs.bin";
+static char base_path[PATH_MAX] = "/dev/vmmc";
+static int per_channel_context = 0;
+
+/*
+ * The private structures of the Phone Jack channels are linked for selecting
+ * outgoing channels.
+ */
+enum channel_state {
+       ONHOOK,
+       OFFHOOK,
+       DIALING,
+       INCALL,
+       CALL_ENDED,
+       RINGING,
+       UNKNOWN
+};
+
+static struct lantiq_pvt {
+       struct ast_channel *owner;         /* Channel we belong to, possibly NULL   */
+       int port_id;                       /* Port number of this object, 0..n      */
+       int channel_state;
+       char context[AST_MAX_CONTEXT];     /* this port's dialplan context          */
+       char ext[AST_MAX_EXTENSION+1];     /* the extension this port is connecting */
+       int dial_timer;                    /* timer handle for autodial timeout     */
+       char dtmfbuf[AST_MAX_EXTENSION+1]; /* buffer holding dialed digits          */
+       int dtmfbuf_len;                   /* lenght of dtmfbuf                     */
+       int rtp_timestamp;                 /* timestamp for RTP packets             */
+       uint16_t rtp_seqno;                /* Sequence nr for RTP packets           */
+       uint32_t call_setup_start;         /* Start of dialling in ms               */
+       uint32_t call_setup_delay;         /* time between ^ and 1st ring in ms     */
+       uint16_t jb_size;                  /* Jitter buffer size                    */
+       uint32_t jb_underflow;             /* Jitter buffer injected samples        */
+       uint32_t jb_overflow;              /* Jitter buffer dropped samples         */
+       uint16_t jb_delay;                 /* Jitter buffer: playout delay          */
+       uint16_t jb_invalid;               /* Jitter buffer: Nr. of invalid packets */
+
+} *iflist = NULL;
+
+static struct lantiq_ctx {
+               int dev_fd;
+               int channels;
+               int ch_fd[TAPI_AUDIO_PORT_NUM_MAX];
+} dev_ctx;
+
+static int ast_digit_begin(struct ast_channel *ast, char digit);
+static int ast_digit_end(struct ast_channel *ast, char digit, unsigned int duration);
+static int ast_lantiq_call(struct ast_channel *ast, char *dest, int timeout);
+static int ast_lantiq_hangup(struct ast_channel *ast);
+static int ast_lantiq_answer(struct ast_channel *ast);
+static struct ast_frame *ast_lantiq_read(struct ast_channel *ast);
+static int ast_lantiq_write(struct ast_channel *ast, struct ast_frame *frame);
+static struct ast_frame *ast_lantiq_exception(struct ast_channel *ast);
+static int ast_lantiq_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen);
+static int ast_lantiq_fixup(struct ast_channel *old, struct ast_channel *new);
+static struct ast_channel *ast_lantiq_requester(const char *type, format_t format, const struct ast_channel *requestor, void *data, int *cause);
+static int acf_channel_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen);
+static void lantiq_jb_get_stats(int c);
+
+static const struct ast_channel_tech lantiq_tech = {
+       .type = "TAPI",
+       .description = "Lantiq TAPI Telephony API Driver",
+       .capabilities = AST_FORMAT_G723_1 | AST_FORMAT_SLINEAR | AST_FORMAT_ULAW | AST_FORMAT_G729A,
+       .send_digit_begin = ast_digit_begin,
+       .send_digit_end = ast_digit_end,
+       .call = ast_lantiq_call,
+       .hangup = ast_lantiq_hangup,
+       .answer = ast_lantiq_answer,
+       .read = ast_lantiq_read,
+       .write = ast_lantiq_write,
+       .exception = ast_lantiq_exception,
+       .indicate = ast_lantiq_indicate,
+       .fixup = ast_lantiq_fixup,
+       .requester = ast_lantiq_requester,
+       .func_channel_read = acf_channel_read
+};
+
+/* Protect the interface list (of lantiq_pvt's) */
+AST_MUTEX_DEFINE_STATIC(iflock);
+
+/*
+ * Protect the monitoring thread, so only one process can kill or start it, and
+ * not when it's doing something critical.
+ */
+AST_MUTEX_DEFINE_STATIC(monlock);
+
+/* Boolean value whether the monitoring thread shall continue. */
+static unsigned int monitor;
+
+/* The scheduling thread */
+struct ast_sched_thread *sched_thread;
+   
+/*
+ * This is the thread for the monitor which checks for input on the channels
+ * which are not currently in use.
+ */
+static pthread_t monitor_thread = AST_PTHREADT_NULL;
+
+
+#define WORDS_BIGENDIAN
+/* struct taken from some GPLed code by  Mike Borella */
+typedef struct rtp_header
+{
+#if defined(WORDS_BIGENDIAN)
+  uint8_t version:2, padding:1, extension:1, csrc_count:4;
+#else
+  uint8_t csrc_count:4, extension:1, padding:1, version:2;
+#endif
+#if defined(WORDS_BIGENDIAN)
+  uint8_t marker:1, payload_type:7;
+#else
+  uint8_t payload_type:7, marker:1;
+#endif
+  uint16_t seqno;
+  uint32_t timestamp;
+  uint32_t ssrc;
+} rtp_header_t;
+
+static uint32_t now(void) {
+       struct timespec ts;
+       clock_gettime(CLOCK_MONOTONIC, &ts);
+
+       uint64_t tmp = ts.tv_sec*1000 + (ts.tv_nsec/1000000);
+       return (uint32_t) tmp;
+}
+
+static int lantiq_dev_open(const char *dev_path, const int32_t ch_num)
+{
+       char dev_name[PATH_MAX];
+       memset(dev_name, 0, sizeof(dev_name));
+       snprintf(dev_name, PATH_MAX, "%s%u%u", dev_path, 1, ch_num);
+       return open((const char*)dev_name, O_RDWR, 0644);
+}
+
+static void lantiq_ring(int c, int r, const char *cid)
+{
+       uint8_t status;
+
+       if (r) {
+               if (!cid) {
+                       status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_START, 0);
+               } else {
+                       IFX_TAPI_CID_MSG_t msg;
+                       IFX_TAPI_CID_MSG_STRING_t cid_el;
+
+                       memset(&msg, 0, sizeof(msg));
+                       memset(&cid_el, 0, sizeof(cid_el));
+                       
+                       cid_el.elementType = IFX_TAPI_CID_ST_CLI;
+                       cid_el.len = strlen(cid);
+                       strncpy((char*)cid_el.element, cid, (size_t)cid_el.len);
+
+                       msg.txMode = IFX_TAPI_CID_HM_ONHOOK;
+                       msg.messageType = IFX_TAPI_CID_MT_CSUP;
+                       msg.message = (IFX_TAPI_CID_MSG_ELEMENT_t *)&cid_el;
+                       msg.nMsgElements = 1;
+
+                       status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_CID_TX_SEQ_START, (IFX_int32_t) &msg);
+               }
+       } else {
+               status = (uint8_t) ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_STOP, 0);
+       }
+
+       if (status) {
+               ast_log(LOG_ERROR, "%s ioctl failed\n",
+                       (r ? "IFX_TAPI_RING_START" : "IFX_TAPI_RING_STOP"));
+       }
+}
+
+static int lantiq_play_tone(int c, int t)
+{
+       /* stop currently playing tone before starting new one */
+       if (t != TAPI_TONE_LOCALE_NONE) {
+               ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_LOCAL_PLAY, TAPI_TONE_LOCALE_NONE);
+       }
+
+       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_LOCAL_PLAY, t)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_TONE_LOCAL_PLAY ioctl failed\n");
+               return -1;
+       }
+
+       return 0;
+}
+
+static enum channel_state lantiq_get_hookstatus(int port)
+{
+       uint8_t status;
+
+       if (ioctl(dev_ctx.ch_fd[port], IFX_TAPI_LINE_HOOK_STATUS_GET, &status)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_LINE_HOOK_STATUS_GET ioctl failed\n");
+               return UNKNOWN;
+       }
+
+       if (status) {
+               return OFFHOOK;
+       } else {
+               return ONHOOK;
+       }
+}
+
+static int
+lantiq_dev_binary_buffer_create(const char *path, uint8_t **ppBuf, uint32_t *pBufSz)
+{
+       FILE *fd;
+       struct stat file_stat;
+       int32_t status = 0;
+
+       fd = fopen(path, "rb");
+       if (fd == NULL) {
+               ast_log(LOG_ERROR, "binary file %s open failed\n", path);
+               return -1;
+       }
+
+       if (stat(path, &file_stat)) {
+               ast_log(LOG_ERROR, "file %s statistics get failed\n", path);
+               return -1;
+       }
+
+       *ppBuf = malloc(file_stat.st_size);
+       if (*ppBuf == NULL) {
+               ast_log(LOG_ERROR, "binary file %s memory allocation failed\n", path);
+               status = -1;
+               goto on_exit;
+       }
+
+       if (fread (*ppBuf, sizeof(uint8_t), file_stat.st_size, fd) <= 0) {
+               ast_log(LOG_ERROR, "file %s read failed\n", path);
+               status = -1;
+               goto on_exit;
+       }
+
+       *pBufSz = file_stat.st_size;
+
+on_exit:
+       if (fd != NULL)
+               fclose(fd);
+
+       if (*ppBuf != NULL && status)
+               free(*ppBuf);
+
+       return status;
+}
+
+static int32_t lantiq_dev_firmware_download(int32_t fd, const char *path)
+{
+       uint8_t *firmware = NULL;
+       uint32_t size = 0;
+       VMMC_IO_INIT vmmc_io_init;
+
+       ast_log(LOG_DEBUG, "loading firmware: \"%s\".", path);
+
+       if (lantiq_dev_binary_buffer_create(path, &firmware, &size))
+               return -1;
+
+       memset(&vmmc_io_init, 0, sizeof(VMMC_IO_INIT));
+       vmmc_io_init.pPRAMfw = firmware;
+       vmmc_io_init.pram_size = size;
+
+       if (ioctl(fd, FIO_FW_DOWNLOAD, &vmmc_io_init)) {
+               ast_log(LOG_ERROR, "FIO_FW_DOWNLOAD ioctl failed\n");
+               return -1;
+       }
+
+       if (firmware != NULL)
+               free(firmware);
+
+       return 0;
+}
+
+static const char *state_string(enum channel_state s)
+{
+       switch (s) {
+               case ONHOOK: return "ONHOOK";
+               case OFFHOOK: return "OFFHOOK";
+               case DIALING: return "DIALING";
+               case INCALL: return "INCALL";
+               case CALL_ENDED: return "CALL_ENDED";
+               case RINGING: return "RINGING";
+               default: return "UNKNOWN";
+       }
+}
+
+static const char *control_string(int c)
+{
+       switch (c) {
+               case AST_CONTROL_HANGUP: return "Other end has hungup";
+               case AST_CONTROL_RING: return "Local ring";
+               case AST_CONTROL_RINGING: return "Remote end is ringing";
+               case AST_CONTROL_ANSWER: return "Remote end has answered";
+               case AST_CONTROL_BUSY: return "Remote end is busy";
+               case AST_CONTROL_TAKEOFFHOOK: return "Make it go off hook";
+               case AST_CONTROL_OFFHOOK: return "Line is off hook";
+               case AST_CONTROL_CONGESTION: return "Congestion (circuits busy)";
+               case AST_CONTROL_FLASH: return "Flash hook";
+               case AST_CONTROL_WINK: return "Wink";
+               case AST_CONTROL_OPTION: return "Set a low-level option";
+               case AST_CONTROL_RADIO_KEY: return "Key Radio";
+               case AST_CONTROL_RADIO_UNKEY: return "Un-Key Radio";
+               case AST_CONTROL_PROGRESS: return "Remote end is making Progress";
+               case AST_CONTROL_PROCEEDING: return "Remote end is proceeding";
+               case AST_CONTROL_HOLD: return "Hold";
+               case AST_CONTROL_UNHOLD: return "Unhold";
+               case AST_CONTROL_SRCUPDATE: return "Media Source Update";
+               case AST_CONTROL_CONNECTED_LINE: return "Connected Line";
+               case AST_CONTROL_REDIRECTING: return "Redirecting";
+               case AST_CONTROL_INCOMPLETE: return "Incomplete";
+               case -1: return "Stop tone";
+               default: return "Unknown";
+       }
+}
+
+static int ast_lantiq_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen)
+{
+       ast_verb(3, "phone indication \"%s\"\n", control_string(condition));
+
+       struct lantiq_pvt *pvt = chan->tech_pvt;
+
+       switch (condition) {
+               case -1:
+                       {
+                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_NONE);
+                               return 0;
+                       }
+               case AST_CONTROL_CONGESTION:
+               case AST_CONTROL_BUSY:
+                       {
+                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
+                               return 0;
+                       }
+               case AST_CONTROL_RINGING:
+                       {
+                               pvt->call_setup_delay = now() - pvt->call_setup_start;
+                               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_RINGING_CODE);
+                               return 0;
+                       }
+               default:
+                       {
+                               /* -1 lets asterisk generate the tone */
+                               return -1;
+                       }
+       }
+}
+
+static int ast_lantiq_fixup(struct ast_channel *old, struct ast_channel *new)
+{
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return 0;
+}
+
+static int ast_digit_begin(struct ast_channel *chan, char digit)
+{
+       /* TODO: Modify this callback to let Asterisk support controlling the length of DTMF */
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return 0;
+}
+
+static int ast_digit_end(struct ast_channel *ast, char digit, unsigned int duration)
+{
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return 0;
+}
+
+static int ast_lantiq_call(struct ast_channel *ast, char *dest, int timeout)
+{
+       /* lock to prevent simultaneous access with do_monitor thread processing */
+       ast_mutex_lock(&iflock);
+
+       struct lantiq_pvt *pvt = ast->tech_pvt;
+       ast_log(LOG_DEBUG, "state: %s\n", state_string(pvt->channel_state));
+
+       if (pvt->channel_state == ONHOOK) {
+               ast_log(LOG_DEBUG, "port %i is ringing\n", pvt->port_id);
+
+               char *cid = ast->connected.id.number.valid ? ast->connected.id.number.str : NULL;
+               ast_log(LOG_DEBUG, "port %i CID: %s\n", pvt->port_id, cid ? cid : "none");
+
+               lantiq_ring(pvt->port_id, 1, cid);
+               pvt->channel_state = RINGING;
+
+               ast_setstate(ast, AST_STATE_RINGING);
+               ast_queue_control(ast, AST_CONTROL_RINGING);
+       } else {
+               ast_log(LOG_DEBUG, "port %i is busy\n", pvt->port_id);
+               ast_setstate(ast, AST_STATE_BUSY);
+               ast_queue_control(ast, AST_CONTROL_BUSY);
+       }
+
+       ast_mutex_unlock(&iflock);
+
+       return 0;
+}
+
+static int ast_lantiq_hangup(struct ast_channel *ast)
+{
+       /* lock to prevent simultaneous access with do_monitor thread processing */
+       ast_mutex_lock(&iflock);
+
+       struct lantiq_pvt *pvt = ast->tech_pvt;
+       ast_log(LOG_DEBUG, "state: %s\n", state_string(pvt->channel_state));
+       
+       if (ast->_state == AST_STATE_RINGING) {
+               // FIXME
+               ast_debug(1, "TAPI: ast_lantiq_hangup(): ast->_state == AST_STATE_RINGING\n");
+       }
+
+       switch (pvt->channel_state) {
+               case RINGING:
+               case ONHOOK: 
+                       lantiq_ring(pvt->port_id, 0, NULL);
+                       pvt->channel_state = ONHOOK;
+                       break;
+               default:
+                       ast_log(LOG_DEBUG, "we were hung up, play busy tone\n");
+                       pvt->channel_state = CALL_ENDED;
+                       lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
+       }
+
+       lantiq_jb_get_stats(pvt->port_id);
+
+       ast_setstate(ast, AST_STATE_DOWN);
+       ast_module_unref(ast_module_info->self);
+       ast->tech_pvt = NULL;
+       pvt->owner = NULL;
+
+       ast_mutex_unlock(&iflock);
+
+       return 0;
+}
+
+static int ast_lantiq_answer(struct ast_channel *ast)
+{
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return 0;
+}
+
+static struct ast_frame * ast_lantiq_read(struct ast_channel *ast)
+{
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return NULL;
+}
+
+static int ast_lantiq_write(struct ast_channel *ast, struct ast_frame *frame)
+{
+       char buf[2048];
+       struct lantiq_pvt *pvt = ast->tech_pvt;
+       int ret = -1;
+       rtp_header_t *rtp_header = (rtp_header_t *) buf;
+
+       if(frame->frametype != AST_FRAME_VOICE) {
+               ast_log(LOG_DEBUG, "unhandled frame type\n");
+               return 0;
+       }
+       
+       if (frame->datalen == 0) {
+               ast_log(LOG_DEBUG, "we've been prodded\n");
+               return 0;
+       }
+
+       memset(buf, 0, sizeof(rtp_header_t));
+       rtp_header->version      = 2;
+       rtp_header->padding      = 0;
+       rtp_header->extension    = 0;
+       rtp_header->csrc_count   = 0;
+       rtp_header->marker       = 0;
+       rtp_header->timestamp    = pvt->rtp_timestamp;
+       rtp_header->seqno        = pvt->rtp_seqno++;
+       rtp_header->ssrc         = 0;
+       rtp_header->payload_type = (uint8_t) frame->subclass.codec;
+
+       pvt->rtp_timestamp += 160;
+
+       memcpy(buf+RTP_HEADER_LEN, frame->data.ptr, frame->datalen);
+
+       ret = write(dev_ctx.ch_fd[pvt->port_id], buf, frame->datalen+RTP_HEADER_LEN);
+       if (ret <= 0) {
+               ast_debug(1, "TAPI: ast_lantiq_write(): error writing.\n");
+               return -1;
+       }
+
+#ifdef TODO_DEVEL_INFO
+       ast_debug(1, "ast_lantiq_write(): size: %i version: %i padding: %i extension: %i csrc_count: %i\n"
+                "marker: %i payload_type: %s seqno: %i timestamp: %i ssrc: %i\n", 
+                        (int)ret,
+                        (int)rtp_header->version,
+                        (int)rtp_header->padding,
+                        (int)rtp_header->extension,
+                        (int)rtp_header->csrc_count,
+                        (int)rtp_header->marker,
+                        ast_codec2str(rtp_header->payload_type),
+                        (int)rtp_header->seqno,
+                        (int)rtp_header->timestamp,
+                        (int)rtp_header->ssrc);
+#endif
+
+       return 0;
+}
+
+static int acf_channel_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen)
+{
+       struct lantiq_pvt *pvt;
+       int res = 0;
+
+       if (!chan || chan->tech != &lantiq_tech) {
+               ast_log(LOG_ERROR, "This function requires a valid Lantiq TAPI channel\n");
+               return -1;
+       }
+
+       ast_mutex_lock(&iflock);
+
+       pvt = (struct lantiq_pvt*) chan->tech_pvt;
+
+       if (!strcasecmp(args, "csd")) {
+               snprintf(buf, buflen, "%lu", (unsigned long int) pvt->call_setup_delay);
+       } else if (!strcasecmp(args, "jitter_stats")){
+               lantiq_jb_get_stats(pvt->port_id);
+               snprintf(buf, buflen, "jbBufSize=%u,jbUnderflow=%u,jbOverflow=%u,jbDelay=%u,jbInvalid=%u",
+                               (uint32_t) pvt->jb_size,
+                               (uint32_t) pvt->jb_underflow,
+                               (uint32_t) pvt->jb_overflow,
+                               (uint32_t) pvt->jb_delay,
+                               (uint32_t) pvt->jb_invalid);
+       } else {
+               res = -1;
+       }
+
+       ast_mutex_unlock(&iflock);
+
+       return res;
+}
+
+
+static struct ast_frame * ast_lantiq_exception(struct ast_channel *ast)
+{
+       ast_log(LOG_DEBUG, "entering... no code here...\n");
+       return NULL;
+}
+
+static void lantiq_jb_get_stats(int c) {
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       IFX_TAPI_JB_STATISTICS_t param;
+       memset (&param, 0, sizeof (param));
+       if (ioctl (dev_ctx.ch_fd[c], IFX_TAPI_JB_STATISTICS_GET, (IFX_int32_t) &param) != IFX_SUCCESS) {
+               ast_debug(1, "Error getting jitter buffer  stats.\n");
+       } else {
+#if !defined (TAPI_VERSION3) && defined (TAPI_VERSION4)
+               ast_debug(1, "Jitter buffer stats:  dev=%u, ch=%u, nType=%u, nBufSize=%u, nIsUnderflow=%u, nDsOverflow=%u, nPODelay=%u, nInvalid=%u", 
+                               (uint32_t) param.dev,
+                               (uint32_t) param.ch,
+#else
+               ast_debug(1, "Jitter buffer stats:  nType=%u, nBufSize=%u, nIsUnderflow=%u, nDsOverflow=%u, nPODelay=%u, nInvalid=%u", 
+#endif
+                               (uint32_t) param.nType,
+                               (uint32_t) param.nBufSize,
+                               (uint32_t) param.nIsUnderflow,
+                               (uint32_t) param.nDsOverflow,
+                               (uint32_t) param.nPODelay,
+                               (uint32_t) param.nInvalid);
+               
+               pvt->jb_size = param.nBufSize;
+               pvt->jb_underflow = param.nIsUnderflow;
+               pvt->jb_overflow = param.nDsOverflow;
+               pvt->jb_invalid = param.nInvalid;
+               pvt->jb_delay = param.nPODelay;
+       }
+}
+
+
+static int lantiq_standby(int c)
+{
+       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
+               return -1;
+       }
+
+       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_STOP, 0)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_ENC_STOP ioctl failed\n");
+               return -1;
+       }
+
+       if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_STOP, 0)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_DEC_STOP ioctl failed\n");
+               return -1;
+       }
+
+       return lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
+}
+
+static int lantiq_end_dialing(int c)
+{
+       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       if (pvt->dial_timer) {
+               ast_sched_thread_del(sched_thread, pvt->dial_timer);
+               pvt->dial_timer = 0;
+       }
+
+       if(pvt->owner) {
+               ast_hangup(pvt->owner);
+       }
+
+       return 0;
+}
+
+static int lantiq_end_call(int c)
+{
+       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
+
+       struct lantiq_pvt *pvt = &iflist[c];
+       
+       if(pvt->owner) {
+               lantiq_jb_get_stats(c);
+               ast_queue_hangup(pvt->owner);
+       }
+
+       return 0;
+}
+
+static struct ast_channel * lantiq_channel(int state, int c, char *ext, char *ctx)
+{
+       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
+
+       struct ast_channel *chan = NULL;
+
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       chan = ast_channel_alloc(1, state, NULL, NULL, "", ext, ctx, 0, c, "TAPI/%s", "1");
+
+       chan->tech = &lantiq_tech;
+       chan->nativeformats = AST_FORMAT_ULAW;
+       chan->readformat  = AST_FORMAT_ULAW;
+       chan->writeformat = AST_FORMAT_ULAW;
+       chan->tech_pvt = pvt;
+
+       pvt->owner = chan;
+
+       return chan;
+}
+
+static struct ast_channel * ast_lantiq_requester(const char *type, format_t format, const struct ast_channel *requestor, void *data, int *cause)
+{
+       ast_mutex_lock(&iflock);
+
+       char buf[BUFSIZ];
+       struct ast_channel *chan = NULL;
+       int port_id = -1;
+
+       ast_debug(1, "Asked to create a TAPI channel with formats: %s\n", ast_getformatname_multiple(buf, sizeof(buf), format));
+
+
+       /* check for correct data argument */
+       if (ast_strlen_zero(data)) {
+               ast_log(LOG_ERROR, "Unable to create channel with empty destination.\n");
+               *cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
+               return NULL;
+       }
+
+       /* get our port number */
+       port_id = atoi((char*) data);
+       if (port_id < 1 || port_id > dev_ctx.channels) {
+               ast_log(LOG_ERROR, "Unknown channel ID: \"%s\"\n", (char*) data);
+               *cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
+               return NULL;
+       }
+
+       /* on asterisk user's side, we're using port 1-2.
+        * Here in non normal human's world, we begin
+        * counting at 0.
+        */
+       port_id -= 1;
+
+       chan = lantiq_channel(AST_STATE_DOWN, port_id, NULL, NULL);
+
+       ast_mutex_unlock(&iflock);
+       return chan;
+}
+
+static int lantiq_dev_data_handler(int c)
+{
+       char buf[BUFSIZ];
+       struct ast_frame frame = {0};
+
+       int res = read(dev_ctx.ch_fd[c], buf, sizeof(buf));
+       if (res <= 0) ast_log(LOG_ERROR, "we got read error %i\n", res);
+       
+       rtp_header_t *rtp = (rtp_header_t*) buf;
+
+       frame.src = "TAPI";
+       frame.frametype = AST_FRAME_VOICE;
+       frame.subclass.codec = rtp->payload_type;
+       frame.samples = res - RTP_HEADER_LEN;
+       frame.datalen = res - RTP_HEADER_LEN;
+       frame.data.ptr = buf + RTP_HEADER_LEN;
+
+       struct lantiq_pvt *pvt = (struct lantiq_pvt *) &iflist[c];
+       if (pvt->owner && (pvt->owner->_state == AST_STATE_UP)) {
+               if(!ast_channel_trylock(pvt->owner)) {
+                       ast_queue_frame(pvt->owner, &frame);
+                       ast_channel_unlock(pvt->owner);
+               }
+       }
+
+/*     ast_debug(1, "lantiq_dev_data_handler(): size: %i version: %i padding: %i extension: %i csrc_count: %i \n"
+                                "marker: %i payload_type: %s seqno: %i timestamp: %i ssrc: %i\n", 
+                                (int)res,
+                                (int)rtp->version,
+                                (int)rtp->padding,
+                                (int)rtp->extension,
+                                (int)rtp->csrc_count,
+                                (int)rtp->marker,
+                                ast_codec2str(rtp->payload_type),
+                                (int)rtp->seqno,
+                                (int)rtp->timestamp,
+                                (int)rtp->ssrc);
+*/
+       return 0;
+}
+
+static int accept_call(int c)
+{ 
+       ast_log(LOG_DEBUG, "TODO - DEBUG MSG\n");
+
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       if (pvt->owner) {
+               struct ast_channel *chan = pvt->owner;
+
+               switch (chan->_state) {
+                       case AST_STATE_RINGING:
+                               lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
+                               ast_queue_control(pvt->owner, AST_CONTROL_ANSWER);
+                               pvt->channel_state = INCALL;
+                               break;
+                       default:
+                               ast_log(LOG_WARNING, "entered unhandled state %s\n", ast_state2str(chan->_state));
+               }
+       }
+
+       return 0;
+}
+
+static int lantiq_dev_event_hook(int c, int state)
+{
+       ast_mutex_lock(&iflock);
+
+       ast_log(LOG_DEBUG, "on port %i detected event %s hook\n", c, state ? "on" : "off");
+
+       int ret = -1;
+       if (state) { /* going onhook */
+               switch (iflist[c].channel_state) {
+                       case OFFHOOK: 
+                               ret = lantiq_standby(c);
+                               break;
+                       case DIALING: 
+                               ret = lantiq_end_dialing(c);
+                               break;
+                       case INCALL: 
+                               ret = lantiq_end_call(c);
+                               break;
+                       case CALL_ENDED:
+                               ret = lantiq_standby(c); // TODO: are we sure for this ?
+                               break;
+                       default:
+                               break;
+               }
+               iflist[c].channel_state = ONHOOK;
+       } else { /* going offhook */
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_ACTIVE)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
+                       goto out;
+               }
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_START, 0)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_START ioctl failed\n");
+                       goto out;
+               }
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_START, 0)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_DEC_START ioctl failed\n");
+                       goto out;
+               }
+
+               switch (iflist[c].channel_state) {
+                       case RINGING: 
+                               ret = accept_call(c);
+                               break;
+                       default:
+                               iflist[c].channel_state = OFFHOOK;
+                               lantiq_play_tone(c, TAPI_TONE_LOCALE_DIAL_CODE);
+                               ret = 0;
+                               break;
+               }
+
+       }
+
+out:
+       ast_mutex_unlock(&iflock);
+
+       return ret;
+}
+
+static void lantiq_reset_dtmfbuf(struct lantiq_pvt *pvt)
+{
+       pvt->dtmfbuf[0] = '\0';
+       pvt->dtmfbuf_len = 0;
+       pvt->ext[0] = '\0';
+}
+
+static void lantiq_dial(struct lantiq_pvt *pvt)
+{
+       struct ast_channel *chan = NULL;
+
+       ast_log(LOG_DEBUG, "user want's to dial %s.\n", pvt->dtmfbuf);
+
+       if (ast_exists_extension(NULL, pvt->context, pvt->dtmfbuf, 1, NULL)) {
+               ast_debug(1, "found extension %s, dialing\n", pvt->dtmfbuf);
+
+               strcpy(pvt->ext, pvt->dtmfbuf);
+
+               ast_verbose(VERBOSE_PREFIX_3 " extension exists, starting PBX %s\n", pvt->ext);
+
+               chan = lantiq_channel(AST_STATE_UP, pvt->port_id, pvt->ext+1, pvt->context);
+               chan->tech_pvt = pvt;
+               pvt->owner = chan;
+
+               strcpy(chan->exten, pvt->ext);
+               ast_setstate(chan, AST_STATE_RING);
+               pvt->channel_state = INCALL;
+
+               pvt->call_setup_start = now();
+
+               if (ast_pbx_start(chan)) {
+                       ast_log(LOG_WARNING, " unable to start PBX on %s\n", chan->name);
+                       ast_hangup(chan);
+               }
+       } else {
+               ast_log(LOG_DEBUG, "no extension found\n");
+               lantiq_play_tone(pvt->port_id, TAPI_TONE_LOCALE_BUSY_CODE);
+               pvt->channel_state = CALL_ENDED;
+       }
+       
+       lantiq_reset_dtmfbuf(pvt);
+}
+
+static int lantiq_event_dial_timeout(const void* data)
+{
+       ast_debug(1, "TAPI: lantiq_event_dial_timeout()\n");
+
+       struct lantiq_pvt *pvt = (struct lantiq_pvt *) data;
+       pvt->dial_timer = 0;
+
+       if (! pvt->channel_state == ONHOOK) {
+               lantiq_dial(pvt);
+       } else {
+               ast_debug(1, "TAPI: lantiq_event_dial_timeout(): dial timeout in state ONHOOK.\n");
+       }
+
+       return 0;
+}
+
+static int lantiq_send_digit(int c, char digit) 
+{
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       struct ast_frame f = { .frametype = AST_FRAME_DTMF, .subclass.integer = digit };
+
+       if (pvt->owner) {
+               ast_log(LOG_DEBUG, "Port %i transmitting digit \"%c\"\n", c, digit);
+               return ast_queue_frame(pvt->owner, &f);
+       } else {
+               ast_debug(1, "Warning: lantiq_send_digit() without owner!\n");
+               return -1;
+       }
+}
+
+static void lantiq_dev_event_digit(int c, char digit)
+{
+       ast_mutex_lock(&iflock);
+
+       ast_log(LOG_DEBUG, "on port %i detected digit \"%c\"\n", c, digit);
+
+       struct lantiq_pvt *pvt = &iflist[c];
+
+       switch (pvt->channel_state) {
+               case INCALL:
+                       {
+                               lantiq_send_digit(c, digit);
+                               break;
+                       }
+               case OFFHOOK:  
+                       pvt->channel_state = DIALING;
+
+                       lantiq_play_tone(c, TAPI_TONE_LOCALE_NONE);
+
+                       /* fall through */
+               case DIALING: 
+                       if (digit == '#') {
+                               if (pvt->dial_timer) {
+                                       ast_sched_thread_del(sched_thread, pvt->dial_timer);
+                                       pvt->dial_timer = 0;
+                               }
+
+                               lantiq_dial(pvt);
+                       } else {
+                               pvt->dtmfbuf[pvt->dtmfbuf_len] = digit;
+                               pvt->dtmfbuf_len++;
+                               pvt->dtmfbuf[pvt->dtmfbuf_len] = '\0';
+
+                               /* setup autodial timer */
+                               if (!pvt->dial_timer) {
+                                       ast_log(LOG_DEBUG, "setting new timer\n");
+                                       pvt->dial_timer = ast_sched_thread_add(sched_thread, 2000, lantiq_event_dial_timeout, (const void*) pvt);
+                               } else {
+                                       ast_log(LOG_DEBUG, "replacing timer\n");
+                                       struct sched_context *sched = ast_sched_thread_get_context(sched_thread);
+                                       AST_SCHED_REPLACE(pvt->dial_timer, sched, 2000, lantiq_event_dial_timeout, (const void*) pvt);
+                               }
+                       }
+                       break;
+               default:
+                       ast_log(LOG_ERROR, "don't know what to do in unhandled state\n");
+                       break;
+       }
+
+       ast_mutex_unlock(&iflock);
+       return;
+}
+
+static void lantiq_dev_event_handler(void)
+{
+       IFX_TAPI_EVENT_t event;
+       unsigned int i;
+
+       for (i = 0; i < dev_ctx.channels ; i++) {
+               ast_mutex_lock(&iflock);
+
+               memset (&event, 0, sizeof(event));
+               event.ch = i;
+               if (ioctl(dev_ctx.dev_fd, IFX_TAPI_EVENT_GET, &event)) {
+                       ast_mutex_unlock(&iflock);
+                       continue;
+               }
+               if (event.id == IFX_TAPI_EVENT_NONE) {
+                       ast_mutex_unlock(&iflock);
+                       continue;
+               }
+
+               ast_mutex_unlock(&iflock);
+
+               switch(event.id) {
+                       case IFX_TAPI_EVENT_FXS_ONHOOK:
+                               lantiq_dev_event_hook(i, 1);
+                               break;
+                       case IFX_TAPI_EVENT_FXS_OFFHOOK:
+                               lantiq_dev_event_hook(i, 0);
+                               break;
+                       case IFX_TAPI_EVENT_DTMF_DIGIT:
+                               lantiq_dev_event_digit(i, (char)event.data.dtmf.ascii);
+                               break;
+                       case IFX_TAPI_EVENT_PULSE_DIGIT:
+                               if (event.data.pulse.digit == 0xB) {
+                                       lantiq_dev_event_digit(i, '0');
+                               } else {
+                                       lantiq_dev_event_digit(i, '0' + (char)event.data.pulse.digit);
+                               }
+                               break;
+                       case IFX_TAPI_EVENT_COD_DEC_CHG:
+                       case IFX_TAPI_EVENT_TONE_GEN_END:
+                       case IFX_TAPI_EVENT_CID_TX_SEQ_END:
+                               break;
+                       default:
+                               ast_log(LOG_ERROR, "unknown TAPI event %08X\n", event.id);
+                               break;
+               }
+       }
+}
+
+static void * lantiq_events_monitor(void *data)
+{
+       ast_verbose("TAPI thread started\n");
+
+       struct pollfd fds[3];
+
+       fds[0].fd = dev_ctx.dev_fd;
+       fds[0].events = POLLIN;
+       fds[1].fd = dev_ctx.ch_fd[0];
+       fds[1].events = POLLIN;
+       fds[2].fd = dev_ctx.ch_fd[1];
+       fds[2].events = POLLIN;
+
+       while (monitor) {
+               ast_mutex_lock(&monlock);
+
+               if (poll(fds, dev_ctx.channels + 1, 2000) <= 0) {
+                       ast_mutex_unlock(&monlock);
+                       continue;
+               }
+
+               if (fds[0].revents & POLLIN) {
+                       lantiq_dev_event_handler();
+               }
+
+               ast_mutex_unlock(&monlock);
+
+               if ((fds[1].revents & POLLIN) && (lantiq_dev_data_handler(0))) {
+                       ast_log(LOG_ERROR, "data handler 0 failed\n");
+                       break;
+               }
+
+               if ((fds[2].revents & POLLIN) && (lantiq_dev_data_handler(1))) {
+                       ast_log(LOG_ERROR, "data handler 1 failed\n");
+                       break;
+               }
+       }
+
+       return NULL;
+}
+
+static int restart_monitor(void)
+{
+       /* If we're supposed to be stopped -- stay stopped */
+       if (monitor_thread == AST_PTHREADT_STOP)
+               return 0;
+
+       ast_mutex_lock(&monlock);
+
+       if (monitor_thread == pthread_self()) {
+               ast_mutex_unlock(&monlock);
+               ast_log(LOG_WARNING, "Cannot kill myself\n");
+               return -1;
+       }
+
+       if (monitor_thread != AST_PTHREADT_NULL) {
+               if (ast_mutex_lock(&iflock)) {
+                       ast_mutex_unlock(&monlock);
+                       ast_log(LOG_WARNING, "Unable to lock the interface list\n");
+                       return -1;
+               }
+               monitor = 0;
+               while (pthread_kill(monitor_thread, SIGURG) == 0)
+                       sched_yield();
+               pthread_join(monitor_thread, NULL);
+               ast_mutex_unlock(&iflock);
+       }
+
+       monitor = 1;
+       /* Start a new monitor */
+       if (ast_pthread_create_background(&monitor_thread, NULL, lantiq_events_monitor, NULL) < 0) {
+               ast_mutex_unlock(&monlock);
+               ast_log(LOG_ERROR, "Unable to start monitor thread.\n");
+               return -1;
+       }
+
+       ast_mutex_unlock(&monlock);
+
+       return 0;
+}
+
+static void lantiq_cleanup(void)
+{
+       int c;
+
+       for (c = 0; c < dev_ctx.channels ; c++) { 
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
+                       ast_log(LOG_WARNING, "IFX_TAPI_LINE_FEED_SET ioctl failed\n");
+               }
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_STOP, 0)) {
+                       ast_log(LOG_WARNING, "IFX_TAPI_ENC_STOP ioctl failed\n");
+               }
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_DEC_STOP, 0)) {
+                       ast_log(LOG_WARNING, "IFX_TAPI_DEC_STOP ioctl failed\n");
+               }
+       }
+
+       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_STOP, 0)) {
+               ast_log(LOG_WARNING, "IFX_TAPI_DEV_STOP ioctl failed\n");
+       }
+
+       close(dev_ctx.dev_fd);
+}
+
+static int unload_module(void)
+{
+       int c;
+
+       ast_channel_unregister(&lantiq_tech);
+
+       if (!ast_mutex_lock(&iflock)) {
+               for (c = 0; c < dev_ctx.channels ; c++) {
+                       if (iflist[c].owner)
+                               ast_softhangup(iflist[c].owner, AST_SOFTHANGUP_APPUNLOAD);
+               }
+               ast_mutex_unlock(&iflock);
+       } else {
+               ast_log(LOG_WARNING, "Unable to lock the monitor\n");
+               return -1;
+       }
+
+       if (!ast_mutex_lock(&monlock)) {
+               if (monitor_thread > AST_PTHREADT_NULL) {
+                       monitor = 0;
+                       while (pthread_kill(monitor_thread, SIGURG) == 0)
+                               sched_yield();
+                       pthread_join(monitor_thread, NULL);
+               }
+               monitor_thread = AST_PTHREADT_STOP;
+               ast_mutex_unlock(&monlock);
+       } else {
+               ast_log(LOG_WARNING, "Unable to lock the monitor\n");
+               return -1;
+       }
+
+       return 0;
+}
+
+static struct lantiq_pvt *lantiq_init_pvt(struct lantiq_pvt *pvt)
+{
+       if (pvt) {
+               pvt->owner = NULL;
+               pvt->port_id = -1;
+               pvt->channel_state = UNKNOWN;
+               pvt->context[0] = '\0';
+               pvt->ext[0] = '\0';
+               pvt->dial_timer = 0;
+               pvt->dtmfbuf[0] = '\0';
+               pvt->dtmfbuf_len = 0;
+               pvt->call_setup_start = 0;
+               pvt->call_setup_delay = 0;
+               pvt->jb_size = 0;
+               pvt->jb_underflow = 0;
+               pvt->jb_overflow = 0;
+               pvt->jb_delay = 0;
+               pvt->jb_invalid = 0;
+       } else {
+               ast_log(LOG_ERROR, "unable to clear pvt structure\n");
+       }
+
+       return pvt;
+}
+
+static int lantiq_create_pvts(void)
+{
+       int i;
+
+       iflist = ast_calloc(1, sizeof(struct lantiq_pvt) * dev_ctx.channels);
+
+       if (iflist) { 
+               for (i=0 ; i<dev_ctx.channels ; i++) {
+                       lantiq_init_pvt(&iflist[i]);
+                       iflist[i].port_id = i;
+                       if (per_channel_context) {
+                               snprintf(iflist[i].context, AST_MAX_CONTEXT, "%s%i", LANTIQ_CONTEXT_PREFIX, i+1);
+                               ast_debug(1, "Context for channel %i: %s\n", i, iflist[i].context);
+                       } else {
+                               snprintf(iflist[i].context, AST_MAX_CONTEXT, "default");
+                       }
+               }
+               return 0;
+       } else {
+               ast_log(LOG_ERROR, "unable to allocate memory\n");
+               return -1;
+       }
+}
+
+static int lantiq_setup_rtp(int c)
+{
+       /* Configure RTP payload type tables */
+       IFX_TAPI_PKT_RTP_PT_CFG_t rtpPTConf;
+
+       memset((char*)&rtpPTConf, '\0', sizeof(rtpPTConf));
+
+       rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_MLAW] = AST_FORMAT_ULAW;
+       rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_ALAW] = AST_FORMAT_ALAW;
+//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G723_63] = AST_FORMAT_G723_1;
+//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G723_53] = 4;
+//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G729] = AST_FORMAT_G729A;
+//     rtpPTConf.nPTup[IFX_TAPI_COD_TYPE_G722_64] = AST_FORMAT_G722;
+
+       rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_MLAW] = AST_FORMAT_ULAW;
+       rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_ALAW] = AST_FORMAT_ALAW;
+//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G723_63] = AST_FORMAT_G723_1;
+//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G723_53] = AST_FORMAT_G723_1;
+//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G729] = AST_FORMAT_G729A;
+//     rtpPTConf.nPTdown[IFX_TAPI_COD_TYPE_G722_64] = AST_FORMAT_G722;
+
+       int ret;
+       if ((ret = ioctl(dev_ctx.ch_fd[c], IFX_TAPI_PKT_RTP_PT_CFG_SET, (IFX_int32_t) &rtpPTConf))) {
+               ast_log(LOG_ERROR, "IFX_TAPI_PKT_RTP_PT_CFG_SET failed: ret=%i\n", ret);
+               return -1;
+       }
+
+       return 0;
+}
+
+static int load_module(void)
+{
+       struct ast_config *cfg;
+       struct ast_variable *v;
+       int txgain = 0;
+       int rxgain = 0;
+       int wlec_type = 0;
+       int wlec_nlp = 0;
+       int wlec_nbfe = 0;
+       int wlec_nbne = 0;
+       int wlec_wbne = 0;
+       int jb_type = IFX_TAPI_JB_TYPE_ADAPTIVE;
+       int jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_VOICE;
+       int jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_DEFAULT;
+       int jb_scaling = 0x10;
+       int jb_initialsize = 0x2d0;
+       int jb_minsize = 0x50;
+       int jb_maxsize = 0x5a0;
+       int cid_type = IFX_TAPI_CID_STD_TELCORDIA;
+       int vad_type = IFX_TAPI_ENC_VAD_NOVAD;
+       dev_ctx.channels = TAPI_AUDIO_PORT_NUM_MAX;
+       struct ast_flags config_flags = { 0 };
+       
+       if (!(sched_thread = ast_sched_thread_create())) {
+               ast_log(LOG_ERROR, "Unable to create scheduler thread\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       if ((cfg = ast_config_load(config, config_flags)) == CONFIG_STATUS_FILEINVALID) {
+               ast_log(LOG_ERROR, "Config file %s is in an invalid format.  Aborting.\n", config);
+               return AST_MODULE_LOAD_DECLINE;
+       }
+
+       /* We *must* have a config file otherwise stop immediately */
+       if (!cfg) {
+               ast_log(LOG_ERROR, "Unable to load config %s\n", config);
+               return AST_MODULE_LOAD_DECLINE;
+       }
+
+       if (ast_mutex_lock(&iflock)) {
+               ast_log(LOG_ERROR, "Unable to lock interface list.\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       for (v = ast_variable_browse(cfg, "interfaces"); v; v = v->next) {
+               if (!strcasecmp(v->name, "channels")) {
+                       dev_ctx.channels = atoi(v->value);
+                       if (!dev_ctx.channels) {
+                               ast_log(LOG_ERROR, "Invalid value for channels in config %s\n", config);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "firmwarefilename")) {
+                       ast_copy_string(firmware_filename, v->value, sizeof(firmware_filename));
+               } else if (!strcasecmp(v->name, "bbdfilename")) {
+                       ast_copy_string(bbd_filename, v->value, sizeof(bbd_filename));
+               } else if (!strcasecmp(v->name, "basepath")) {
+                       ast_copy_string(base_path, v->value, sizeof(base_path));
+               } else if (!strcasecmp(v->name, "per_channel_context")) {
+                       if (!strcasecmp(v->value, "on")) {
+                               per_channel_context = 1;
+                       } else if (!strcasecmp(v->value, "off")) {
+                               per_channel_context = 0;
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown per_channel_context value '%s'. Try 'on' or 'off'.\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               }
+       }
+
+       for (v = ast_variable_browse(cfg, "general"); v; v = v->next) {
+               if (!strcasecmp(v->name, "rxgain")) {
+                       rxgain = atoi(v->value);
+                       if (!rxgain) {
+                               rxgain = 0;
+                               ast_log(LOG_WARNING, "Invalid rxgain: %s, using default.\n", v->value);
+                       }
+               } else if (!strcasecmp(v->name, "txgain")) {
+                       txgain = atoi(v->value);
+                       if (!txgain) {
+                               txgain = 0;
+                               ast_log(LOG_WARNING, "Invalid txgain: %s, using default.\n", v->value);
+                       }
+               } else if (!strcasecmp(v->name, "echocancel")) {
+                       if (!strcasecmp(v->value, "off")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_OFF;
+                       } else if (!strcasecmp(v->value, "nlec")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_NE;
+                               if (!strcasecmp(v->name, "echocancelfixedwindowsize")) {
+                                       wlec_nbne = atoi(v->value);
+                               }
+                       } else if (!strcasecmp(v->value, "wlec")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_NFE;
+                               if (!strcasecmp(v->name, "echocancelnfemovingwindowsize")) {
+                                       wlec_nbfe = atoi(v->value);
+                               } else if (!strcasecmp(v->name, "echocancelfixedwindowsize")) {
+                                       wlec_nbne = atoi(v->value);
+                               } else if (!strcasecmp(v->name, "echocancelwidefixedwindowsize")) {
+                                       wlec_wbne = atoi(v->value);
+                               }
+                       } else if (!strcasecmp(v->value, "nees")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_NE_ES;
+                       } else if (!strcasecmp(v->value, "nfees")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_NFE_ES;
+                       } else if (!strcasecmp(v->value, "es")) {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_ES;
+                       } else {
+                               wlec_type = IFX_TAPI_WLEC_TYPE_OFF;
+                               ast_log(LOG_ERROR, "Unknown echo cancellation type '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "echocancelnlp")) {
+                       if (!strcasecmp(v->value, "on")) {
+                               wlec_nlp = IFX_TAPI_WLEC_NLP_ON;
+                       } else if (!strcasecmp(v->value, "off")) {
+                               wlec_nlp = IFX_TAPI_WLEC_NLP_OFF;
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown echo cancellation nlp '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "jitterbuffertype")) {
+                       if (!strcasecmp(v->value, "fixed")) {
+                               jb_type = IFX_TAPI_JB_TYPE_FIXED;
+                       } else if (!strcasecmp(v->value, "adaptive")) {
+                               jb_type = IFX_TAPI_JB_TYPE_ADAPTIVE;
+                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_DEFAULT;
+                               if (!strcasecmp(v->name, "jitterbufferadaptation")) {
+                                       if (!strcasecmp(v->value, "on")) {
+                                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_ON;
+                                       } else if (!strcasecmp(v->value, "off")) {
+                                               jb_localadpt = IFX_TAPI_JB_LOCAL_ADAPT_OFF;
+                                       }
+                               } else if (!strcasecmp(v->name, "jitterbufferscalling")) {
+                                       jb_scaling = atoi(v->value);
+                               } else if (!strcasecmp(v->name, "jitterbufferinitialsize")) {
+                                       jb_initialsize = atoi(v->value);
+                               } else if (!strcasecmp(v->name, "jitterbufferminsize")) {
+                                       jb_minsize = atoi(v->value);
+                               } else if (!strcasecmp(v->name, "jitterbuffermaxsize")) {
+                                       jb_maxsize = atoi(v->value);
+                               }
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown jitter buffer type '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "jitterbufferpackettype")) {
+                       if (!strcasecmp(v->value, "voice")) {
+                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_VOICE;
+                       } else if (!strcasecmp(v->value, "data")) {
+                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_DATA;
+                       } else if (!strcasecmp(v->value, "datanorep")) {
+                               jb_pckadpt = IFX_TAPI_JB_PKT_ADAPT_DATA_NO_REP;
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown jitter buffer packet adaptation type '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "calleridtype")) {
+                       ast_log(LOG_DEBUG, "Setting CID type to %s.\n", v->value);
+                       if (!strcasecmp(v->value, "telecordia")) {
+                               cid_type = IFX_TAPI_CID_STD_TELCORDIA;
+                       } else if (!strcasecmp(v->value, "etsifsk")) {
+                               cid_type = IFX_TAPI_CID_STD_ETSI_FSK;
+                       } else if (!strcasecmp(v->value, "etsidtmf")) {
+                               cid_type = IFX_TAPI_CID_STD_ETSI_DTMF;
+                       } else if (!strcasecmp(v->value, "sin")) {
+                               cid_type = IFX_TAPI_CID_STD_SIN;
+                       } else if (!strcasecmp(v->value, "ntt")) {
+                               cid_type = IFX_TAPI_CID_STD_NTT;
+                       } else if (!strcasecmp(v->value, "kpndtmf")) {
+                               cid_type = IFX_TAPI_CID_STD_KPN_DTMF;
+                       } else if (!strcasecmp(v->value, "kpndtmffsk")) {
+                               cid_type = IFX_TAPI_CID_STD_KPN_DTMF_FSK;
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown caller id type '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               } else if (!strcasecmp(v->name, "voiceactivitydetection")) {
+                       if (!strcasecmp(v->value, "on")) {
+                               vad_type = IFX_TAPI_ENC_VAD_ON;
+                       } else if (!strcasecmp(v->value, "g711")) {
+                               vad_type = IFX_TAPI_ENC_VAD_G711;
+                       } else if (!strcasecmp(v->value, "cng")) {
+                               vad_type = IFX_TAPI_ENC_VAD_CNG_ONLY;
+                       } else if (!strcasecmp(v->value, "sc")) {
+                               vad_type = IFX_TAPI_ENC_VAD_SC_ONLY;
+                       } else {
+                               ast_log(LOG_ERROR, "Unknown voice activity detection value '%s'\n", v->value);
+                               ast_config_destroy(cfg);
+                               return AST_MODULE_LOAD_DECLINE;
+                       }
+               }
+       }
+
+       lantiq_create_pvts();
+
+       ast_mutex_unlock(&iflock);
+
+       if (ast_channel_register(&lantiq_tech)) {
+               ast_log(LOG_ERROR, "Unable to register channel class 'Phone'\n");
+               ast_config_destroy(cfg);
+               unload_module();
+               return AST_MODULE_LOAD_FAILURE;
+       }
+       ast_config_destroy(cfg);
+       
+       /* tapi */
+#ifdef TODO_TONES
+       IFX_TAPI_TONE_t tone;
+#endif
+       IFX_TAPI_DEV_START_CFG_t dev_start;
+       IFX_TAPI_MAP_DATA_t map_data;
+       IFX_TAPI_ENC_CFG_t enc_cfg;
+       IFX_TAPI_LINE_VOLUME_t line_vol;
+       IFX_TAPI_WLEC_CFG_t wlec_cfg;
+       IFX_TAPI_JB_CFG_t jb_cfg;
+       IFX_TAPI_CID_CFG_t cid_cfg;
+       uint8_t c;
+
+       /* open device */
+       dev_ctx.dev_fd = lantiq_dev_open(base_path, 0);
+
+       if (dev_ctx.dev_fd < 0) {
+               ast_log(LOG_ERROR, "lantiq tapi device open function failed\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       for (c = 0; c < dev_ctx.channels ; c++) {
+               dev_ctx.ch_fd[c] = lantiq_dev_open(base_path, c + 1);
+
+               if (dev_ctx.ch_fd[c] < 0) {
+                       ast_log(LOG_ERROR, "lantiq tapi channel %d open function failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+       }
+
+       if (lantiq_dev_firmware_download(dev_ctx.dev_fd, firmware_filename)) {
+               ast_log(LOG_ERROR, "voice firmware download failed\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_STOP, 0)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_DEV_STOP ioctl failed\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       memset(&dev_start, 0x0, sizeof(IFX_TAPI_DEV_START_CFG_t));
+       dev_start.nMode = IFX_TAPI_INIT_MODE_VOICE_CODER;
+
+       /* Start TAPI */
+       if (ioctl(dev_ctx.dev_fd, IFX_TAPI_DEV_START, &dev_start)) {
+               ast_log(LOG_ERROR, "IFX_TAPI_DEV_START ioctl failed\n");
+               return AST_MODULE_LOAD_FAILURE;
+       }
+
+       for (c = 0; c < dev_ctx.channels ; c++) {
+               /* tones */
+#ifdef TODO_TONES
+               memset(&tone, 0, sizeof(IFX_TAPI_TONE_t));
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_TONE_TABLE_CFG_SET, &tone)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_TONE_TABLE_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+#endif
+               /* ringing type */
+               IFX_TAPI_RING_CFG_t ringingType;
+               memset(&ringingType, 0, sizeof(IFX_TAPI_RING_CFG_t));
+               ringingType.nMode = IFX_TAPI_RING_CFG_MODE_INTERNAL_BALANCED;
+               ringingType.nSubmode = IFX_TAPI_RING_CFG_SUBMODE_DC_RNG_TRIP_FAST;
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_CFG_SET, (IFX_int32_t) &ringingType)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_RING_CFG_SET failed\n");
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* ring cadence */
+               IFX_char_t data[15] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+                                                               0x00, 0x00, 0x00, 0x00, 0x00,     
+                                                               0x00, 0x00, 0x00, 0x00, 0x00 };
+
+               IFX_TAPI_RING_CADENCE_t ringCadence;
+               memset(&ringCadence, 0, sizeof(IFX_TAPI_RING_CADENCE_t));
+               memcpy(&ringCadence.data, data, sizeof(data));
+               ringCadence.nr = sizeof(data) * 8;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_RING_CADENCE_HR_SET, &ringCadence)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_RING_CADENCE_HR_SET failed\n");
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* perform mapping */
+               memset(&map_data, 0x0, sizeof(IFX_TAPI_MAP_DATA_t));
+               map_data.nDstCh = c;
+               map_data.nChType = IFX_TAPI_MAP_TYPE_PHONE;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_MAP_DATA_ADD, &map_data)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_MAP_DATA_ADD %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* set line feed */
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_LINE_FEED_SET, IFX_TAPI_LINE_FEED_STANDBY)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_LINE_FEED_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Configure encoder */
+               memset(&enc_cfg, 0x0, sizeof(IFX_TAPI_ENC_CFG_t));
+               enc_cfg.nFrameLen = IFX_TAPI_COD_LENGTH_20;
+               enc_cfg.nEncType = IFX_TAPI_COD_TYPE_MLAW;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_CFG_SET, &enc_cfg)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* set volume */
+               memset(&line_vol, 0, sizeof(line_vol));
+               line_vol.nGainRx = rxgain;
+               line_vol.nGainTx = txgain;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_PHONE_VOLUME_SET, &line_vol)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_PHONE_VOLUME_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Configure line echo canceller */
+               memset(&wlec_cfg, 0, sizeof(wlec_cfg));
+               wlec_cfg.nType = wlec_type;
+               wlec_cfg.bNlp = wlec_nlp;
+               wlec_cfg.nNBFEwindow = wlec_nbfe;
+               wlec_cfg.nNBNEwindow = wlec_nbne;
+               wlec_cfg.nWBNEwindow = wlec_wbne;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_WLEC_PHONE_CFG_SET, &wlec_cfg)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_WLEC_PHONE_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Configure jitter buffer */
+               memset(&jb_cfg, 0, sizeof(jb_cfg));
+               jb_cfg.nJbType = jb_type;
+               jb_cfg.nPckAdpt = jb_pckadpt;
+               jb_cfg.nLocalAdpt = jb_localadpt;
+               jb_cfg.nScaling = jb_scaling;
+               jb_cfg.nInitialSize = jb_initialsize;
+               jb_cfg.nMinSize = jb_minsize;
+               jb_cfg.nMaxSize = jb_maxsize;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_JB_CFG_SET, &jb_cfg)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_JB_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Configure Caller ID type */
+               memset(&cid_cfg, 0, sizeof(cid_cfg));
+               cid_cfg.nStandard = cid_type;
+
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_CID_CFG_SET, &cid_cfg)) {
+                       ast_log(LOG_ERROR, "IIFX_TAPI_CID_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Configure voice activity detection */
+               if (ioctl(dev_ctx.ch_fd[c], IFX_TAPI_ENC_VAD_CFG_SET, vad_type)) {
+                       ast_log(LOG_ERROR, "IFX_TAPI_ENC_VAD_CFG_SET %d failed\n", c);
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Setup TAPI <-> Asterisk codec type mapping */
+               if (lantiq_setup_rtp(c)) {
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+
+               /* Set initial hook status */
+               iflist[c].channel_state = lantiq_get_hookstatus(c);
+               
+               if (iflist[c].channel_state == UNKNOWN) {
+                       return AST_MODULE_LOAD_FAILURE;
+               }
+       }
+
+       /* make sure our device will be closed properly */
+       ast_register_atexit(lantiq_cleanup);
+
+       restart_monitor();
+       return AST_MODULE_LOAD_SUCCESS;
+}
+
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Lantiq TAPI Telephony API Support");
diff --git a/net/asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample b/net/asterisk-1.8.x/src-lantiq/configs/lantiq.conf.sample
new file mode 100644 (file)
index 0000000..16ba174
--- /dev/null
@@ -0,0 +1,138 @@
+;
+; TAPI Telephony Interface
+;
+; Configuration file
+
+[interfaces]
+;
+; Number of FXS ports (default: 2)
+channels = 2
+;
+; Set tapi firmware file path
+;firmwarefilename = /lib/firmware/danube_firmware.bin
+;
+; Set tapi bbd file path
+;bbdfilename = /lib/firmware/danube_bbd_fxs.bin
+;
+; Set vmmc device path
+;basepath = /dev/vmmc
+;
+[general]
+;
+; Gain setting for the receive and transmit path.
+; The value is given in dB within the range (-24dB to +12dB), in 1 dB steps.
+;
+;rxgain = 1
+;txgain = 1
+;
+;
+;
+; Line echo cancller valid types:
+;
+; off          LEC and echo suppressor turned off.
+; nlec         LEC using fixed window; no echo suppressor.
+; wlec         LEC using fixed and moving window; no echo suppressor.
+; nees         LEC using fixed window and echo suppressor.
+; nfees                LEC using fixed and moving window and echo suppressor.
+; es           Echo suppressor
+;
+;echocancel = off
+;
+; If nlec or wlec is selected than size of the fixed window in narrowband (8 kHz) sampling mode
+; can be defined with:
+; A value of 0 defaults to: 16 ms if type is nlec or 8 ms if type is wlec:
+;
+;echocancelfixedwindowsize = 0
+;
+; If wlec is selected than size of the moving window in narrowband (8 kHz) sampling mode
+; can be defined with:
+; A value of 0 defaults to 8 ms.
+;
+;echocancelnfemovingwindowsize = 0
+;
+; If wlec is selected than size of the moving window in wideband (16 kHz) sampling mode
+; can be defined with:
+; A value of 0 defaults to 8 ms.
+;
+;echocancelwidefixedwindowsize = 0
+;
+; Activate or deactivate line echo cancller NLP (Non Linear Processor) if the LEC is active,
+; valid is on or off:
+;
+;echocancelnlp = off
+;
+;
+;
+; Jitter buffer valid types:
+;
+; fixed                Fixed jitter buffer.
+; adaptive     Adaptive jitter buffer.
+;
+;jitterbuffertype = fixed
+;
+; Jitter buffer packet adaptation valid types:
+;
+; voice                Jitter buffer optimized for voice.
+; data         Jitter buffer optimized for data.
+; datanorep    Jitter buffer optimized for data but without doing packet repetition.
+;
+;jitterbufferpackettype = voice
+;
+;      Following jitter buffer values can only be used with jitter buffer adaptive type:
+; Turns on or off jitter buffer adaptation:
+;
+;jitterbufferadaptation = off
+;
+; Scaling factor multiplied by 16; in adaptive jitter buffer mode, the target average playout delay is
+; equal to the estimated jitter multiplied by the scaling factor. The default value for the scaling factor
+; is about 1.4 (scaling=22), meaning that the target average playout delay is equal to the estimated
+; jitter. If less packets should be dropped because of jitter, the scaling factor has to be increased. An
+; increase in the scaling factor will eventually lead to an increased playout delay.
+; The supported range is 1 to 16 (16 up to 256).
+;
+;jitterbufferscalling = 1
+;
+; Initial size of the jitter buffer in time stamps of 125 us:
+;
+;jitterbufferinitialsize = 125
+;
+; Minimum size of the jitter buffer in time stamps of 125 us
+;
+;jitterbufferminsize = 125
+;
+; Maximum size of the jitter buffer in time stamps of 125 us
+;
+;jitterbuffermaxsize = 125
+;
+;
+;
+; Caller id valid standards:
+;
+; telecordia    Bellcore/Telcordia GR-30-CORE; use Bell202 FSK coding of CID information. (default)
+; etsifsk       ETSI 300-659-1/2/3 V1.3.1; use V.23 FSK coding to transmit CID information.
+; etsidtmf      ETSI 300-659-1/2/3 V1.3.1; use DTMF transmission of CID information.
+; sin           SIN 227 Issue 3.4; use V.23 FSK coding of CID information.
+; ntt           NTT standard: TELEPHONE SERVICE INTERFACES, edition 5; use a modified V.23 FSK coding of
+;               CID information.
+; kpndtmf       KPN; use DTMF transmission of CID information.
+; kpndtmffsk    KPN; use DTMF and FSK transmission of CID information.
+;
+;calleridtype = telecordia
+;
+;
+;
+; Voice activity detection:
+;
+; on           Voice activity detection on; in this case also comfort noise and spectral
+;              information (nicer noise) is switched on.
+; g711         Voice activity detection on with comfort noise generation,
+;              but without spectral information.
+; cng          Voice activity detection on with comfort noise generation, but without silence compression
+; sc           Voice activity detection on with silence compression,
+;              but without comfort noise generation.
+;
+;voiceactivitydetection = on
+;
+;
+;
+;
diff --git a/net/asterisk-11.x-chan-dongle/Makefile b/net/asterisk-11.x-chan-dongle/Makefile
new file mode 100644 (file)
index 0000000..2df5d3c
--- /dev/null
@@ -0,0 +1,74 @@
+#
+# Copyright (C) 2013 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:=asterisk11-chan-dongle
+PKG_VERSION:=14012013
+PKG_REV:=0b0c67c4cd5e1ee22d83d69e9b728f3b66b598f8
+PKG_RELEASE:=1
+
+PKG_SOURCE:=asterisk11-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/jstasiak/asterisk-chan-dongle.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=asterisk11
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_FIXUP:=autoreconf
+
+PKG_SOURCE_SUBDIR:=chan_dongle-$(PKG_VERSION)
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/asterisk11-chan-dongle
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  URL:=http://www.asterisk.org/        
+  DEPENDS:= asterisk11 +libiconv-full +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +usb-modeswitch
+  TITLE:=Huawei UMTS 3G dongle support
+endef
+
+define Package/asterisk11-chan-dongle/description
+Asterisk channel driver for Huawei UMTS 3G dongle
+endef
+
+MAKE_ARGS:= \
+       CC="$(TARGET_CC)" \
+       LD="$(TARGET_CC)" \
+       CFLAGS="$(TARGET_CFLAGS) -DASTERISK_VERSION_NUM=110000 -DLOW_MEMORY -D_XOPEN_SOURCE=600 $(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/lib/libiconv-full/include -I$(STAGING_DIR)/usr/include/asterisk-11/include -DHAVE_CONFIG_H -I. -fPIC" \
+       LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/libiconv-full/lib -liconv" \
+       DESTDIR="$(PKG_INSTALL_DIR)/usr/lib/asterisk/modules"
+
+CONFIGURE_VARS += \
+       ac_cv_type_size_t=yes \
+       ac_cv_type_ssize_t=yes
+
+define Build/Configure
+       $(call Build/Configure/Default, \
+           --with-asterisk=$(STAGING_DIR)/usr/include/asterisk-11/include \
+           $(MAKE_ARGS) \
+       )
+endef
+
+define Build/Compile
+       mkdir -p $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules
+       $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_ARGS) all install
+endef
+
+define Package/asterisk11-chan-dongle/conffiles
+/etc/asterisk/dongle.conf
+endef
+
+define Package/asterisk11-chan-dongle/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/dongle.conf $(1)/etc/asterisk/
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_dongle.so $(1)/usr/lib/asterisk/modules/
+endef
+
+$(eval $(call BuildPackage,asterisk11-chan-dongle))
diff --git a/net/asterisk-11.x-chan-sccp-b/Makefile b/net/asterisk-11.x-chan-sccp-b/Makefile
new file mode 100644 (file)
index 0000000..1ec852a
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Copyright (C) 2013 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:=asterisk11-chan-sccp-b
+PKG_REV=4631
+PKG_VERSION:=r$(PKG_REV)
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://svn.code.sf.net/p/chan-sccp-b/code/trunk
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_PROTO:=svn
+
+PKG_FIXUP:=autoreconf -fi
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/asterisk11-chan-sccp-b
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=SCCP channel provider for asterisk
+  URL:=http://chan-sccp-b.net.sourceforge.net/
+  DEPENDS:= asterisk11 +libltdl
+endef
+
+define Package/asterisk11-chan-sccp-b/description
+ SCCP channel provider for asterisk. It delivers extended functionality for SCCP phones over chan_skinny delivered
+ by asterisk by default.
+endef
+
+define Build/Configure
+    $(call Build/Configure/Default,--with-asterisk=$(STAGING_DIR)/usr/include/asterisk-11)
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               CFLAGS="$(CFLAGS) -I$(PKG_BUILD_DIR)/src -DLOW_MEMORY" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               all install
+endef
+
+define Package/asterisk11-chan-sccp-b/conffiles
+/etc/asterisk/sccp.conf
+endef
+
+define Package/asterisk11-chan-sccp-b/install
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(CP)  ./files/sccp.openwrt.conf $(1)/etc/asterisk/sccp.conf
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sccp.so $(1)/usr/lib/asterisk/modules/
+endef
+
+$(eval $(call BuildPackage,asterisk11-chan-sccp-b))
diff --git a/net/asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf b/net/asterisk-11.x-chan-sccp-b/files/sccp.openwrt.conf
new file mode 100644 (file)
index 0000000..c59f4cd
--- /dev/null
@@ -0,0 +1,89 @@
+[general]
+servername = Openwrt
+keepalive = 60
+debug = core
+context = default
+dateformat = D/M/Y
+bindaddr = 192.168.1.1
+port = 2000
+disallow=all
+allow=ulaw
+allow=alaw
+allow=gsm
+firstdigittimeout = 16
+digittimeout = 6
+autoanswer_ring_time = 1
+musicclass=default
+language=en
+deny=0.0.0.0/0.0.0.0
+permit=192.168.1.0/255.255.255.0
+protocolversion=17
+
+hotline_enabled=yes
+hotline_context=default
+hotline_extension=111
+
+[SEP001122334455]
+type = device
+description = Phone Number One
+devicetype = 7940
+button = line, 111
+button = line, 113@01:shared
+button = speeddial,Phone 2 Line 1, 112, 112@hint
+
+[SEP00a1a2a3a4a5]
+type = device
+description = Phone Number Two
+devicetype = 7960
+button = line, 112
+button = line, 113@01:shared
+button = speeddial,Phone 1 Line 1, 111, 111@hint
+
+[111]
+id = 1000
+type = line
+pin = 1234
+label = Phone 1 Line 1
+description = Line 111
+mailbox = 10111
+cid_name = Phone 1 CID
+cid_num = 111
+accountcode=79111
+callgroup=1
+pickupgroup=1
+context = default
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
+[112]
+id = 1001
+type = line
+pin = 1234
+label = Phone 2 Line 1
+description = Line 112
+mailbox = 10112
+cid_name = Phone 2 CID
+cid_num = 112
+accountcode=79112
+callgroup=1
+pickupgroup=1
+context = default
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
+[113]
+id = 1002
+type = line
+pin = 1234
+label = SharedLine 1
+description = Line 113
+mailbox = 10113
+cid_name = Shared
+cid_num = 113
+accountcode=79113
+incominglimit = 2
+vmnum = 600
+trnsfvm = 1000
+
diff --git a/net/asterisk-11.x/Makefile b/net/asterisk-11.x/Makefile
new file mode 100644 (file)
index 0000000..011f3ba
--- /dev/null
@@ -0,0 +1,371 @@
+#
+# Copyright (C) 2013 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:=asterisk11
+PKG_VERSION:=11.4.0
+PKG_RELEASE:=6
+
+PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.asterisk.org/pub/telephony/asterisk/releases/
+PKG_MD5SUM:=f2654567261f194f537bd2fbb97c9117
+
+PKG_BUILD_DIR=$(BUILD_DIR)/asterisk-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/asterisk11/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/asterisk11/install/conffile
+       $(INSTALL_DIR) $(1)/etc/asterisk
+       $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/*$(2)* $(1)/etc/asterisk/
+endef
+
+define Package/asterisk11/install/lib
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/$(2).so* $(1)/usr/lib/
+endef
+
+define Package/asterisk11/install/sbin
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $(1)/usr/sbin/
+endef
+
+define Package/asterisk11/install/sounds
+       $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/$(2) $(1)/usr/lib/asterisk/sounds/
+endef
+
+define BuildAsteriskModule
+  define Package/asterisk11-$(1)
+  $$(call Package/asterisk11/Default)
+    TITLE:=$(2) support
+    DEPENDS:= asterisk11 $(4)
+  endef
+
+  define Package/asterisk11-$(1)/conffiles
+$(5)
+  endef
+
+  define Package/asterisk11-$(1)/description
+  $$(call Package/asterisk11/Default/description)
+This package provides support $(3) in Asterisk.
+  endef
+
+  define Package/asterisk11-$(1)/install
+$(foreach c,$(6),$(call Package/asterisk11/install/conffile,$$(1),$(c));)
+$(foreach m,$(7),$(call Package/asterisk11/install/module,$$(1),$(m));)
+$(foreach s,$(8),$(call Package/asterisk11/install/sounds,$$(1),$(s));)
+  endef
+
+  $$(eval $$(call BuildPackage,asterisk11-$(1)))
+endef
+
+define Package/asterisk11/Default
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  URL:=http://www.asterisk.org/
+  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
+endef
+
+define Package/asterisk11/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/asterisk11
+$(call Package/asterisk11/Default)
+  TITLE:=Complete open source PBX, v11.x
+  MENU:=1
+  DEPENDS:=+libuuid +libopenssl +libncurses +libpopt +libpthread +libsqlite3 +librt +zlib @!TARGET_avr32
+endef
+
+define Package/asterisk11/description
+$(call Package/asterisk11/Default/description)
+endef
+
+define Package/asterisk11/conffiles
+/etc/asterisk/asterisk.conf
+/etc/asterisk/acl.conf
+/etc/asterisk/ccss.conf
+/etc/asterisk/modules.conf
+/etc/asterisk/extconfig.conf
+/etc/asterisk/extensions.conf
+/etc/asterisk/features.conf
+/etc/asterisk/indications.conf
+/etc/asterisk/logger.conf
+/etc/asterisk/manager.conf
+/etc/asterisk/rtp.conf
+/etc/asterisk/sip.conf
+/etc/asterisk/sip_notify.conf
+/etc/asterisk/udptl.conf
+/etc/default/asterisk
+/etc/init.d/asterisk
+endef
+
+AST_CFG_FILES:= \
+       asterisk.conf acl.conf ccss.conf extconfig.conf extensions.conf features.conf indications.conf logger.conf manager.conf modules.conf \
+       rtp.conf sip_notify.conf sip.conf udptl.conf
+AST_EMB_MODULES:=\
+       app_dial app_echo app_macro app_playback codec_gsm codec_ulaw format_gsm format_pcm format_wav format_wav_gsm func_callerid \
+       func_logic func_strings func_timeout chan_sip chan_local pbx_config res_crypto res_http_websocket res_rtp_asterisk res_rtp_multicast
+
+define Package/asterisk11/install
+$(call Package/asterisk11/install/lib,$(1),libasteriskssl)
+$(call Package/asterisk11/install/sbin,$(1),asterisk)
+$(call Package/asterisk11/install/sbin,$(1),safe_asterisk)
+$(call Package/asterisk11/install/sbin,$(1),astgenkey)
+$(foreach m,$(AST_CFG_FILES),$(call Package/asterisk11/install/conffile,$(1),$(m));)
+$(foreach m,$(AST_EMB_MODULES),$(call Package/asterisk11/install/module,$(1),$(m));)
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DATA) ./files/asterisk.default $(1)/etc/default/asterisk
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk
+endef
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-xmpp),)
+  CONFIGURE_ARGS+= \
+       --with-gnutls="$(STAGING_DIR)/usr" \
+       --with-iksemel="$(STAGING_DIR)/usr"
+  SITE_VARS+= \
+       ac_cv_lib_iksemel_iks_start_sasl=yes \
+       ac_cv_lib_gnutls_gnutls_bye=yes
+else
+  CONFIGURE_ARGS+= \
+       --without-gnutls \
+       --without-iksemel
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-curl),)
+  CONFIGURE_ARGS+= \
+       --with-curl="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-curl
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-pgsql),)
+  CONFIGURE_ARGS+= \
+       --with-postgres="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-postgres
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-mysql),)
+  CONFIGURE_ARGS+= \
+       --with-mysqlclient="$(STAGING_DIR)/usr/bin"
+else
+  CONFIGURE_ARGS+= \
+       --without-mysqlclient
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-fax-spandsp),)
+  CONFIGURE_ARGS+= \
+       --with-spandsp="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-spandsp
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-chan-mobile),)
+  CONFIGURE_ARGS+= \
+       --with-bluetooth="$(STAGING_DIR)/usr"
+else
+
+  CONFIGURE_ARGS+= \
+       --without-bluetooth
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-res-srtp),)
+  CONFIGURE_ARGS+= \
+       --with-srtp="$(STAGING_DIR)/usr"
+else
+  CONFIGURE_ARGS+= \
+       --without-srtp
+endif
+
+ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk11-pbx-lua),)
+  CONFIGURE_ARGS+= \
+       --with-lua="$(STAGING_DIR)/usr"
+  TARGET_LDFLAGS+=-ldl -lcrypt
+else
+  CONFIGURE_ARGS+= \
+       --without-lua
+endif
+
+EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
+EXTRA_LDFLAGS+= $(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
+CONFIGURE_ARGS+= \
+       --without-curses \
+       --with-gsm=internal \
+       --without-cap \
+       --without-gtk2 \
+       --without-isdnnet \
+       --without-misdn \
+       --without-nbs \
+       --with-ncurses="$(STAGING_DIR)/usr" \
+       --without-netsnmp \
+       --without-newt \
+       --without-ogg \
+       --without-osptk \
+       --with-popt="$(STAGING_DIR)/usr" \
+       --without-pri \
+       --without-qt \
+       --without-radius \
+       --without-sdl \
+       --without-suppserv \
+       --without-tds \
+       --without-termcap \
+       --without-tinfo \
+       --without-vorbis \
+       --without-vpb \
+       --with-z="$(STAGING_DIR)/usr" \
+       --with-sounds-cache="$(DL_DIR)" \
+       --disable-xmldoc
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+endef
+
+define Build/Configure
+       $(call Build/Configure/Default,,$(SITE_VARS))
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               include/asterisk/version.h \
+               include/asterisk/buildopts.h defaults.h \
+               makeopts.embed_rules
+       ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY"
+       ASTLDFLAGS="$(EXTRA_LDFLAGS)"
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               ASTVARLIBDIR="/usr/lib/asterisk" \
+               ASTDATADIR="/usr/lib/asterisk" \
+               ASTKEYDIR="/usr/lib/asterisk" \
+               ASTDBDIR="/usr/lib/asterisk" \
+               NOISY_BUILD="yes" \
+               DEBUG="" \
+               OPTIMIZE="" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               all install samples
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/asterisk-11/include/asterisk/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-11/include/asterisk/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-11/include/
+endef
+
+$(eval $(call BuildPackage,asterisk11))
+
+################################
+# AST modules
+# Params:
+# 1 - Package subname
+# 2 - Package title
+# 3 - Module description
+# 4 - Module dependencies
+# 5 - Full path to multiple conffiles
+# 6 - conf files
+# 7 - module files
+# 8 - sound files
+################################
+
+$(eval $(call BuildAsteriskModule,app-alarmreceiver,Alarm receiver,Central Station Alarm receiver for Ademco Contact ID,,,,app_alarmreceiver,))
+$(eval $(call BuildAsteriskModule,app-authenticate,Authenticate commands,Execute arbitrary authenticate commands,,,,app_authenticate,))
+$(eval $(call BuildAsteriskModule,app-confbridge,ConfBridge,Software bridge for multi-party audio conferencing,,/etc/asterisk/confbridge.conf,confbridge.conf,app_confbridge,))
+$(eval $(call BuildAsteriskModule,app-directed_pickup,Directed call pickup,support for directed call pickup,,,,app_directed_pickup,))
+$(eval $(call BuildAsteriskModule,app-disa,Direct Inward System Access,Direct Inward System Access,,,,app_disa,))
+$(eval $(call BuildAsteriskModule,app-exec,Exec application,support for application execution,,,,app_exec,))
+$(eval $(call BuildAsteriskModule,app-chanisavail,Channel availability check,support for checking if a channel is available,,,,app_chanisavail,))
+$(eval $(call BuildAsteriskModule,app-chanspy,Channel listen in,support for listening in on any channel,,,,app_chanspy,))
+$(eval $(call BuildAsteriskModule,app-minivm,Minimal voicemail system,a voicemail system in small building blocks working together based on the Comedian Mail voicemail,,/etc/asterisk/extensions_minivm.conf /etc/asterisk/minivm.conf,extensions_minivm.conf minivm.conf,app_minivm,))
+$(eval $(call BuildAsteriskModule,app-mixmonitor,Record a call and mix the audio,record a call and mix the audio during the recording,,,,app_mixmonitor,))
+$(eval $(call BuildAsteriskModule,app-originate,Originate a call,originating an outbound call and connecting it to a specified extension or application,,,,app_originate,))
+$(eval $(call BuildAsteriskModule,app-playtones,Playtones application,play a tone list,,,,app_playtones,))
+$(eval $(call BuildAsteriskModule,app-read,Variable read,a trivial application to read a variable,,,,app_read,))
+$(eval $(call BuildAsteriskModule,app-readexten,Extension to variable,a trivial application to read an extension into a variable,,,,app_readexten,))
+$(eval $(call BuildAsteriskModule,app-record,Record sound file,to record a sound file,,,,app_record,))
+$(eval $(call BuildAsteriskModule,app-sayunixtime,Say Unix time,an application to say Unix time,,,,app_sayunixtime,))
+$(eval $(call BuildAsteriskModule,app-senddtmf,Send DTMF digits,Sends arbitrary DTMF digits,,,,app_senddtmf,))
+$(eval $(call BuildAsteriskModule,app-sms,SMS,SMS support (ETSI ES 201 912 protocol 1),,,,app_sms,))
+$(eval $(call BuildAsteriskModule,app-stack,Stack applications, stack applications Gosub Return etc., +asterisk11-res-agi,,,app_stack,))
+$(eval $(call BuildAsteriskModule,app-system,System exec,support for executing system commands,,,,app_system,))
+$(eval $(call BuildAsteriskModule,app-talkdetect,File playback with audio detect,for file playback with audio detect,,,,app_talkdetect,))
+$(eval $(call BuildAsteriskModule,app-verbose,Verbose logging,Verbose logging application,,,,app_verbose,))
+$(eval $(call BuildAsteriskModule,app-waituntil,Sleep,support sleeping until the given epoch,,,,app_waituntil,))
+$(eval $(call BuildAsteriskModule,app-while,While loop,a while loop implementation,,,,app_while,))
+$(eval $(call BuildAsteriskModule,cdr,Provides CDR,Call Detail Record,,/etc/asterisk/cdr.conf /etc/asterisk/cdr_custom.conf /etc/asterisk/cdr_manager.conf /etc/asterisk/cdr_syslog.conf,cdr cdr_custom cdr_manager cdr_syslog,app_cdr app_forkcdr cdr_custom cdr_manager cdr_syslog func_cdr,))
+$(eval $(call BuildAsteriskModule,cdr-csv,Provides CDR CSV,Call Detail Record with CSV support,,,,cdr_csv,))
+$(eval $(call BuildAsteriskModule,cdr-sqlite3,Provides CDR SQLITE3,Call Detail Record with SQLITE3 support,libsqlite3,,,cdr_sqlite3_custom,))
+$(eval $(call BuildAsteriskModule,codec-a-mu,Alaw to ulaw translation,translation between alaw and ulaw codecs,,,,codec_a_mu,))
+$(eval $(call BuildAsteriskModule,codec-adpcm,ADPCM text,ADPCM text ,,,,codec_adpcm,))
+$(eval $(call BuildAsteriskModule,codec-alaw,Signed linear to alaw translation,translation between signed linear and alaw codecs,,,,codec_alaw,))
+$(eval $(call BuildAsteriskModule,codec-g722,G.722,a high bit rate 48/56/64Kbps ITU standard codec,,,,codec_g722,))
+$(eval $(call BuildAsteriskModule,codec-g726,Signed linear to G.726 translation,translation between signed linear and ITU G.726-32kbps codecs,,,,codec_g726,))
+$(eval $(call BuildAsteriskModule,codec-gsm,linear to GSM translation,translate between signed linear and GSM,,,,codec_gsm,))
+$(eval $(call BuildAsteriskModule,codec-ilbc,linear to ILBC translation,translate between signed linear and ILBC,,,,codec_ilbc,))
+$(eval $(call BuildAsteriskModule,codec-lpc10,Linear to LPC10 translation,translate between signed linear and LPC10,,,,codec_lpc10,))
+$(eval $(call BuildAsteriskModule,codec-resample,resample sLinear audio,resample sLinear audio,,,,codec_resample,))
+$(eval $(call BuildAsteriskModule,codec-ulaw,Linear to ulaw translation,translate between signed linear and ulaw,,,,codec_ulaw,))
+$(eval $(call BuildAsteriskModule,curl,CURL,CURL support,+libcurl,,,func_curl res_curl,))
+$(eval $(call BuildAsteriskModule,format-g726,G.726,support for headerless G.726 16/24/32/40kbps data format,,,,format_g726,))
+$(eval $(call BuildAsteriskModule,format-g729,G.729,support for raw headerless G729 data,,,,format_g729,))
+$(eval $(call BuildAsteriskModule,format-gsm,GSM format,support for GSM format,,,,format_gsm,))
+$(eval $(call BuildAsteriskModule,format-h263,H263 format,support for H264 format,,,,format_h263,))
+$(eval $(call BuildAsteriskModule,format-h264,H264 format,support for H264 format,,,,format_h264,))
+$(eval $(call BuildAsteriskModule,format-ilbc,ILBC format,support for ILBC format,,,,format_ilbc,))
+$(eval $(call BuildAsteriskModule,format-pcm,PCM,support for PCM format,,,,format_pcm,))
+$(eval $(call BuildAsteriskModule,format-sln,Raw slinear format,support for raw slinear format,,,,format_sln,))
+$(eval $(call BuildAsteriskModule,format-vox,VOX format,support for ADPCM vox format,,,,format_vox,))
+$(eval $(call BuildAsteriskModule,func-blacklist,Blacklist on callerid,looking up the callerid number and see if it is blacklisted,,,,func_blacklist,))
+$(eval $(call BuildAsteriskModule,func-cut,CUT function,CUT function,,,,func_cut,))
+$(eval $(call BuildAsteriskModule,func-db,Database interaction,functions for interaction with the database,,,,func_db,))
+$(eval $(call BuildAsteriskModule,func-devstate,Blinky lights control,functions for manually controlled blinky lights,,,,func_devstate,))
+$(eval $(call BuildAsteriskModule,func-extstate,Hinted extension state,retrieving the state of a hinted extension for dialplan control,,,,func_extstate,))
+$(eval $(call BuildAsteriskModule,func-global,Global variable,global variable dialplan functions,,,,func_global,))
+$(eval $(call BuildAsteriskModule,func-channel,Channel info,Channel info dialplan function,,,,func_channel,))
+$(eval $(call BuildAsteriskModule,func-shell,Shell,support for shell execution,,,,func_shell,))
+$(eval $(call BuildAsteriskModule,func-uri,URI encoding and decoding,Encodes and decodes URI-safe strings,,,,func_uri,))
+$(eval $(call BuildAsteriskModule,func-vmcount,vmcount dialplan,a vmcount dialplan function,,,,func_vmcount,))
+$(eval $(call BuildAsteriskModule,func-base64,base64 support,support of base64 function,,,,func_base64,))
+$(eval $(call BuildAsteriskModule,chan-agent,Agents proxy channel, an implementation of agents proxy channel,,,,chan_agent,))
+$(eval $(call BuildAsteriskModule,chan-iax2,IAX2 channel,IAX support,,/etc/asterisk/iax.conf /etc/asterisk/iaxprov.conf,iax.conf iaxprov.conf,chan_iax2,))
+$(eval $(call BuildAsteriskModule,chan-motif,Jingle channel,Motif Jingle Channel Driver,+asterisk11-res-xmpp,/etc/asterisk/motif.conf /etc/asterisk/jingle.conf,motif.conf jingle.conf,chan_motif,))
+$(eval $(call BuildAsteriskModule,chan-mgcp,MGCP channel,the channel chan_mgcp,,/etc/asterisk/mgcp.conf,mgcp.conf,chan_mgcp,))
+$(eval $(call BuildAsteriskModule,chan-mobile,Mobile channel,the channel chan_mobile,+bluez-libs,/etc/asterisk/chan_mobile.conf,chan_mobile.conf,chan_mobile,))
+$(eval $(call BuildAsteriskModule,chan-skinny,Skinny channel,the channel chan_skinny,,/etc/asterisk/skinny.conf,skinny.conf,chan_skinny,))
+$(eval $(call BuildAsteriskModule,chan-unistim,Unistim channel,channel driver for the UNISTIM (Unified Networks IP Stimulus) protocol,,/etc/asterisk/unistim.conf,unistim.conf,chan_unistim,))
+$(eval $(call BuildAsteriskModule,mysql,MySQL,MySQL support,+libmysqlclient,/etc/asterisk/res_config_mysql.conf,res_config_mysql.conf,res_config_mysql,))
+$(eval $(call BuildAsteriskModule,odbc,ODBC,ODBC support,+libpthread +libc +unixodbc,/etc/asterisk/cdr_adaptive_odbc.conf /etc/asterisk/cdr_odbc.conf /etc/asterisk/cel_odbc.conf /etc/asterisk/func_odbc.conf /etc/asterisk/res_odbc.conf,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_odbc,cdr_adaptive_odbc cdr_odbc cel_odbc func_odbc res_config_odbc res_odbc,))
+$(eval $(call BuildAsteriskModule,pgsql,PostgreSQL,PostgreSQL support,+libpq,/etc/asterisk/cel_pgsql.conf /etc/asterisk/cdr_pgsql.conf /etc/asterisk/res_pgsql.conf,cel_pgsql.conf cdr_pgsql.conf res_pgsql.conf,cel_pgsql cdr_pgsql res_config_pgsql,))
+$(eval $(call BuildAsteriskModule,pbx-ael,Asterisk Extension Logic,support for symbolic Asterisk Extension Logic,,,extensions.ael,pbx_ael,))
+$(eval $(call BuildAsteriskModule,pbx-spool,Call Spool,outgoing call spool support,,,,pbx_spool,))
+$(eval $(call BuildAsteriskModule,pbx-lua,Lua,provides Lua resources for Asterisk,+libpthread +libc +liblua,/etc/asterisk/extensions.lua,extensions.lua,pbx_lua,))
+$(eval $(call BuildAsteriskModule,res-ael-share,Shareable AEL code,support for shareable AEL code mainly between internal and external modules,,,,res_ael_share,))
+$(eval $(call BuildAsteriskModule,res-agi,Asterisk Gateway Interface,support for the Asterisk Gateway Interface extension,,,,res_agi,))
+$(eval $(call BuildAsteriskModule,res-clioriginate,Calls via CLI,Originate calls via the CLI,,,,res_clioriginate,))
+$(eval $(call BuildAsteriskModule,res-monitor,Provide Monitor,Cryptographic Signature capability,,,,res_monitor,))
+$(eval $(call BuildAsteriskModule,res-pktccops,Provide PacketCable COPS,simple client/server model for supporting policy control over QoS signaling protocols,,/etc/asterisk/res_pktccops.conf,res_pktccops.conf,res_pktccops,))
+$(eval $(call BuildAsteriskModule,res-smdi,Provide SMDI,Simple Message Desk Interface capability,,/etc/asterisk/smdi.conf,smdi.conf,res_smdi,))
+$(eval $(call BuildAsteriskModule,res-fax,FAX modules,Generic FAX resource for FAX technology resource modules,+asterisk11-res-timing-pthread,/etc/asterisk/res_fax.conf /etc/asterisk/udptl.conf,udptl.conf res_fax.conf,res_fax,))
+$(eval $(call BuildAsteriskModule,res-fax-spandsp,Spandsp T.38 and G.711,Spandsp T.38 and G.711 FAX Resource,+asterisk11-res-fax +libspandsp +libtiff,,,res_fax_spandsp,))
+$(eval $(call BuildAsteriskModule,res-musiconhold,MOH,Music On Hold support,,/etc/asterisk/musiconhold.conf,musiconhold.conf,res_musiconhold,))
+$(eval $(call BuildAsteriskModule,res-srtp,SRTP,Secure RTP,+libsrtp,,,res_srtp,))
+$(eval $(call BuildAsteriskModule,res-timing-pthread,pthread Timing Interface,,,,,res_timing_pthread,))
+$(eval $(call BuildAsteriskModule,res-timing-timerfd,Timerfd Timing Interface,,,,,res_timing_timerfd,))
+$(eval $(call BuildAsteriskModule,res-xmpp,XMPP client and component module,reference module for interfacting Asterisk directly as a client or component with XMPP server,+libiksemel +libopenssl,/etc/asterisk/xmpp.conf,xmpp.conf,res_xmpp,))
+$(eval $(call BuildAsteriskModule,sounds,Sounds,contains sound files,,,,,a* b* d* h* i* m* p* q* s* t*))
+$(eval $(call BuildAsteriskModule,voicemail,Voicemail,voicemail related modules,,/etc/asterisk/voicemail.conf,voicemail.conf,*voicemail res_adsi res_smdi,vm-*))
diff --git a/net/asterisk-11.x/files/asterisk.default b/net/asterisk-11.x/files/asterisk.default
new file mode 100644 (file)
index 0000000..9d046c4
--- /dev/null
@@ -0,0 +1,4 @@
+## startup options for /etc/init.d/asterisk
+
+ENABLE_ASTERISK="yes"
+OPTIONS=""
diff --git a/net/asterisk-11.x/files/asterisk.init b/net/asterisk-11.x/files/asterisk.init
new file mode 100644 (file)
index 0000000..8761561
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 OpenWrt.org
+
+. /lib/functions/service.sh
+
+START=99
+APP=asterisk
+OPTIONS=
+DEST=
+DEFAULT=$DEST/etc/default/$APP
+BIN_FILE=$DEST/usr/sbin/$APP
+PID_FILE=$DEST/var/run/$APP/$APP.pid
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       [ -d $DEST/var/run/asterisk ] || mkdir -p $DEST/var/run/asterisk
+       [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
+       [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
+       [ -d $DEST/var/lib ] || mkdir -p $DEST/var/lib
+       [ -h $DEST/var/lib/asterisk ] || ln -s /usr/lib/asterisk /var/lib/asterisk
+       [ -d $DEST/var/lib/asterisk/keys ] || mkdir -p $DEST/var/lib/asterisk/keys
+
+       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
+       service_start $BIN_FILE $OPTIONS
+}
+
+stop() {
+       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
+       service_stop $BIN_FILE
+}
+
+reload() {
+       SERVICE_PID_FILE="/var/run/asterisk/asterisk.pid" \
+       service_reload $BIN_FILE
+}
diff --git a/net/asterisk-11.x/patches/001-pjproject-change-configure-args.patch b/net/asterisk-11.x/patches/001-pjproject-change-configure-args.patch
new file mode 100644 (file)
index 0000000..71774af
--- /dev/null
@@ -0,0 +1,11 @@
+--- asterisk-11.4.0/res/Makefile       2013-02-04 20:50:52.000000000 +0100
++++ asterisk11-new/res/Makefile        2013-06-02 13:51:22.269684111 +0200
+@@ -74,7 +74,7 @@ dist-clean::
+       rm -f pjproject/build.mak
+ pjproject/build.mak: pjproject/aconfigure
+-      (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec)
++      (cd pjproject && CFLAGS="-fPIC" ./configure --build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --disable-floating-point --disable-sound  --disable-oss --disable-speex-aec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-g711-codec --disable-opencore-amrnb --disable-video --disable-sdl --disable-ffmpeg --disable-v4l2)
+ ifneq ($(findstring $(MAKECMDGOALS),all),)
+ -include pjproject/build.mak
diff --git a/net/asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch b/net/asterisk-11.x/patches/010-asterisk-configure-undef-res-ninit.patch
new file mode 100644 (file)
index 0000000..d0587ed
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/configure
++++ b/configure
+@@ -16383,7 +16383,6 @@
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+-$as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_ndestroy" >&5
+ $as_echo_n "checking for library containing res_9_ndestroy... " >&6; }
diff --git a/net/asterisk-11.x/patches/020-asterisk-enable-default-modules.patch b/net/asterisk-11.x/patches/020-asterisk-enable-default-modules.patch
new file mode 100644 (file)
index 0000000..07ca670
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/addons/chan_mobile.c
++++ b/addons/chan_mobile.c
+@@ -27,7 +27,7 @@
+ /*** MODULEINFO
+       <depend>bluetooth</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
+--- a/addons/res_config_mysql.c
++++ b/addons/res_config_mysql.c
+@@ -24,7 +24,7 @@
+ /*** MODULEINFO
+       <depend>mysqlclient</depend>
+-      <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
+--- a/res/res_pktccops.c
++++ b/res/res_pktccops.c
+@@ -31,7 +31,7 @@
+  */
+ /*** MODULEINFO
+-        <defaultenabled>no</defaultenabled>
++      <defaultenabled>yes</defaultenabled>
+       <support_level>extended</support_level>
+  ***/
diff --git a/net/baresip/Makefile b/net/baresip/Makefile
new file mode 100644 (file)
index 0000000..76c2f2a
--- /dev/null
@@ -0,0 +1,151 @@
+#
+# Copyright (C) 2010-2013 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=baresip
+PKG_VERSION:=0.4.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.creytiv.com/pub/
+PKG_MD5SUM:=09ed622e6c0992e543a5a78023fbb916
+
+baresip-mods:= \
+       alsa \
+       avcodec \
+       avformat \
+       cons \
+       evdev \
+       g711 \
+       g722 \
+       oss \
+       sdl \
+       speex \
+       stdio \
+       uuid \
+       v4l \
+       v4l2 \
+
+PKG_CONFIG_DEPENDS:= \
+       $(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(baresip-mods)) \
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/baresip/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.creytiv.com/
+endef
+
+define Package/baresip
+$(call Package/baresip/Default)
+  TITLE:=Portable and modular SIP User-Agent with A/V support
+  DEPENDS:=+libre +librem +libpthread
+endef
+
+
+baresip-mod-alsa      := USE_ALSA
+baresip-mod-avcodec   := USE_FFMPEG
+baresip-mod-avformat  := USE_FFMPEG_AVFORMAT
+baresip-mod-cons      := USE_CONS
+baresip-mod-evdev     := USE_EVDEV
+baresip-mod-g711      := USE_G711
+baresip-mod-g722      := USE_G722
+baresip-mod-oss       := USE_OSS
+baresip-mod-sdl       := USE_SDL
+baresip-mod-speex     := USE_SPEEX
+baresip-mod-stdio     := USE_STDIO
+baresip-mod-uuid      := USE_UUID
+baresip-mod-v4l       := USE_V4L
+baresip-mod-v4l2      := USE_V4L2
+
+BARESIP_MOD_OPTIONS:= \
+       MOD_AUTODETECT= \
+       $(foreach m,$(baresip-mods),$(baresip-mod-$(m))=$(if $(CONFIG_PACKAGE_baresip-mod-$(m)),1))
+
+TARGET_CFLAGS += $(FPIC)
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
+               LIBREM_PATH="../rem" \
+               CC="$(TARGET_CC)" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               EXTRA_CFLAGS="$(TARGET_CFLAGS) -DOPENWRT" \
+               SYSROOT="$$$$($(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s#/include/pthread.h##p')" \
+               SYSROOT_ALT="$(STAGING_DIR)/usr" \
+               RELEASE=1 \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               OS="linux" \
+               $(BARESIP_MOD_OPTIONS) \
+               all install
+endef
+
+define Package/baresip/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/baresip $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib/baresip/modules
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/ice.so \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/stun.so \
+               $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/turn.so \
+               $(1)/usr/lib/baresip/modules/.
+       $(INSTALL_DIR) $(1)/usr/share/baresip
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/baresip/* $(1)/usr/share/baresip/.
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/baresip.init $(1)/etc/init.d/baresip
+endef
+
+
+#
+# 1. Name
+# 2. Title
+# 3. Files
+# 4. Depends
+#
+define BuildPlugin
+
+  define Package/baresip-mod-$(1)
+    $$(call Package/baresip/Default)
+    TITLE:= baresip $(2) module
+    DEPENDS:= baresip $(4)
+  endef
+
+  define Package/baresip-mod-$(1)/install
+       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
+       for f in $(3); do \
+               $(CP) \
+                       $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$$$$$$$${f}.so \
+                       $$(1)/usr/lib/baresip/modules/ ; \
+       done
+  endef
+
+  $$(eval $$(call BuildPackage,baresip-mod-$(1)))
+endef
+
+
+$(eval $(call BuildPackage,baresip))
+
+$(eval $(call BuildPlugin,alsa,ALSA audio driver,alsa,+PACKAGE_baresip-mod-alsa:alsa-lib))
+$(eval $(call BuildPlugin,avcodec,FFmpeg video codecs,avcodec,+PACKAGE_baresip-mod-avcodec:libffmpeg-full))
+$(eval $(call BuildPlugin,avformat,FFmpeg video source,avformat,+PACKAGE_baresip-mod-avformat:libffmpeg-full))
+$(eval $(call BuildPlugin,cons,console UI,cons,))
+$(eval $(call BuildPlugin,evdev,input event device UI,evdev,))
+$(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
+$(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+PACKAGE_baresip-mod-g722:libspandsp))
+$(eval $(call BuildPlugin,sdl,SDL video display,sdl,+libsdl))
+$(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
+$(eval $(call BuildPlugin,speex,Speex audio codec,speex,+PACKAGE_baresip-mod-speex:libspeex))
+$(eval $(call BuildPlugin,stdio,standard I/O UI,stdio,))
+$(eval $(call BuildPlugin,uuid,UUID,uuid,+libuuid))
+$(eval $(call BuildPlugin,v4l,Video4Linux video source,v4l,+PACKAGE_baresip-mod-v4l:libv4l))
+$(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,v4l2,+PACKAGE_baresip-mod-v4l2:libv4l))
diff --git a/net/baresip/files/baresip.init b/net/baresip/files/baresip.init
new file mode 100644 (file)
index 0000000..e398595
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+
+START=92
+
+start() {
+       service_start /usr/bin/baresip -d
+}
+
+stop() {
+       service_stop /usr/bin/baresip
+}
diff --git a/net/baresip/patches/100-videodev-compat.patch b/net/baresip/patches/100-videodev-compat.patch
new file mode 100644 (file)
index 0000000..7d74e0c
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/modules/v4l/v4l.c
++++ b/modules/v4l/v4l.c
+@@ -13,7 +13,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #undef __STRICT_ANSI__ /* needed for RHEL4 kernel 2.6.9 */
+-#include <linux/videodev.h>
++#include <libv4l1-videodev.h>
+ #include <pthread.h>
+ #include <re.h>
+ #include <baresip.h>
diff --git a/net/freeswitch/Makefile b/net/freeswitch/Makefile
new file mode 100644 (file)
index 0000000..c18f5fd
--- /dev/null
@@ -0,0 +1,1093 @@
+#
+# Copyright (C) 2009-2013 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:=freeswitch
+PKG_DISTNAME:=$(PKG_NAME)_git
+PKG_VERSION:=1.5.2b
+
+
+#
+# The latest FS git hash in PKG_SOURCE_VERSION can be obtained from http://fisheye.freeswitch.org
+#
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
+FS_DEFAULT_HEAD:=bd2862080c7f55450a99b5565650c8300512a59a
+FS_LATEST_HEAD:=$(if $(DUMP),$(FS_DEFAULT_HEAD),$(shell git ls-remote $(PKG_SOURCE_URL) HEAD | cut -f1))
+PKG_SOURCE_VERSION:=$(if $(CONFIG_FS_WITH_PULL_CURRENT),$(FS_LATEST_HEAD),$(FS_DEFAULT_HEAD))
+PKG_SOURCE_VERSION_SHORT:=$(shell echo $(PKG_SOURCE_VERSION)|cut -b -7)
+PKG_RELEASE:=$(PKG_SOURCE_VERSION_SHORT)
+PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)
+PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_SOURCE_VERSION_SHORT).tar.bz2
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+
+PKG_FIXUP:=libtool autoreconf
+PKG_BUILD_PARALLEL:=1
+
+
+FS_MOD_AVAILABLE:= \
+       abstraction \
+       alsa \
+       amr \
+       amrwb \
+       avmd \
+       blacklist \
+       bv \
+       callcenter \
+       cdr-csv \
+       cdr-pg-csv \
+       cdr-sqlite \
+       celt \
+       cepstral \
+       cidlookup \
+       cluechoo \
+       codec2 \
+       commands \
+       conference \
+       console \
+       curl \
+       dahdi-codec \
+       db \
+       dialplan-asterisk \
+       dialplan-directory \
+       dialplan-xml \
+       dingaling \
+       directory \
+       distributor \
+       dptools \
+       easyroute \
+       enum \
+       erlang-event \
+       esf \
+       event-multicast \
+       event-socket \
+       event-zmq \
+       expr \
+       fifo \
+       file-string \
+       flite \
+       fsk \
+       fsv \
+       g723-1 \
+       g729 \
+       gsmopen \
+       h26x \
+       h323 \
+       hash \
+       html5 \
+       httapi \
+       http-cache \
+       ilbc \
+       isac \
+       java \
+       json-cdr \
+       lcr \
+       local-stream \
+       logfile \
+       loopback \
+       lua \
+       managed \
+       mp4 \
+       mp4v \
+       native-file \
+       nibblebill \
+       openzap \
+       opus \
+       oreka \
+       portaudio \
+       portaudio-stream \
+       posix-timer \
+       radius-cdr \
+       rayo \
+       redis \
+       rss \
+       rtmp \
+       sangoma-codec \
+       say-de \
+       say-en \
+       say-es \
+       say-fa \
+       say-fr \
+       say-hu \
+       say-it \
+       say-nl \
+       say-pt \
+       say-ru \
+       say-th \
+       say-zh \
+       shell-stream \
+       silk \
+       siren \
+       skel \
+       skinny \
+       skypopen \
+       sms \
+       snapshot \
+       snipe-hunt \
+       sndfile \
+       snmp \
+       snom \
+       sofia \
+       sonar \
+       spandsp \
+       speex \
+       spidermonkey \
+       spidermonkey-core-db \
+       spidermonkey-curl \
+       spidermonkey-odbc \
+       spidermonkey-socket \
+       spidermonkey-teletone \
+       spy \
+       stress \
+       syslog \
+       timerfd \
+       tone-stream \
+       tts-commandline \
+       unimrcp \
+       valet-parking \
+       vmd \
+       voicemail \
+       voicemail-ivr \
+       vp8 \
+       xml-cdr \
+       xml-curl \
+       xml-rpc \
+       xml-scgi \
+       yaml \
+
+
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_FS_WITH_ALSA \
+       CONFIG_FS_WITH_BUILTIN_ZRTP \
+       CONFIG_FS_WITH_FIXED_POINT \
+       CONFIG_FS_WITH_IPV6 \
+       CONFIG_FS_WITH_MYSQL \
+       CONFIG_FS_WITH_ODBC \
+       CONFIG_FS_WITH_OPT \
+       CONFIG_FS_WITH_POSTGRESQL \
+       CONFIG_FS_WITH_PULL_CURRENT \
+       CONFIG_FS_WITH_SQLITE3 \
+       CONFIG_FS_WITH_SCTP \
+       $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-mod-%,$(FS_MOD_AVAILABLE)) \
+
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+
+TAR_OPTIONS+= --strip-components=1 -C $(PKG_BUILD_DIR)
+
+
+define Package/$(PKG_NAME)/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.$(PKG_NAME).org/
+  MAINTAINER:=Mazilo <openwrt.forum.mazilo@recursor.net>
+endef
+
+
+define Package/$(PKG_NAME)
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH open source telephony platform ($(PKG_SOURCE_VERSION_SHORT))
+  DEPENDS:=+libcurl +libiconv-full +libjpeg +libncurses +libpthread +librt +libstdcpp +FS_WITH_POSTGRESQL:libpq
+  MENU:=1
+endef
+
+
+define Package/$(PKG_NAME)/description
+  FreeSWITCH is an open source telephony platform designed to
+  facilitate the creation of voice and chat driven products scaling
+  from a soft-phone up to a soft-switch.  See http://wiki.$(PKG_NAME).org
+endef
+
+
+define Package/$(PKG_NAME)/config
+    config FS_WITH_PULL_CURRENT
+    depends on DEVEL
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Pull the latest git HEAD - $(PKG_SOURCE_VERSION_SHORT) (Press < Help > for more information)"
+    default n
+    help
+       This existing git HEAD ($(FS_DEFAULT_HEAD)) is probably outdated. 
+       Enable this option for the latest git HEAD ($(FS_LATEST_HEAD)). 
+       Enable this option ONLY if you know what you are doing. It may and/or may not be cleanly 
+       compiled and may require some intervension to create new patches. If you take this route
+       and come up with some patches, please contemplate to contribute or send in your patches.
+
+    config FS_WITH_ALSA
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Enable ALSA for sound support"
+    default n
+    help
+        Compile $(PKG_NAME) with ALSA support.
+
+    config FS_WITH_BUILTIN_ZRTP
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Enable built-in ZRTP"
+    default y
+    help
+        Compile $(PKG_NAME) with ZRTP support.
+
+    config FS_WITH_IPV6
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Enable IPV6 support in APR"
+    default y
+    help
+        Compile libs/apr package with IPV6 support.
+
+    config FS_WITH_OPT
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Enable optimization"
+    default y
+    help
+       Compile $(PKG_NAME) with optimization flag enabled. This will add max optimising
+       compiler flags
+
+    config FS_WITH_SCTP
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Enable SCTP (Stream Control Transfer Protocol) support in APR"
+    default y
+    select PACKAGE_sctp
+    help
+        Compile $(PKG_NAME) with SCTP support.
+
+    config FS_WITH_MYSQL
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Compile apr-util with MySQL"
+    default n
+    select PACKAGE_libmysqlclient
+    help
+        Compile libs/apr-util with MySQL.
+
+    config FS_WITH_POSTGRESQL
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Compile apr-util (also enable $(PKG_NAME) core) with PostgreSQL support"
+    default n
+    help
+        Compile both libs/apr-util and $(PKG_NAME) with PostgreSQL support.
+
+    config FS_WITH_SQLITE3
+    depends on PACKAGE_$(PKG_NAME)
+    bool "Compile apr-util with SQLITE3"
+    default y
+    select PACKAGE_libsqlite3
+    help
+        Compile libs/apr-util with SQLITE3.
+
+    config FS_WITH_ODBC
+    depends on PACKAGE_$(PKG_NAME)
+    depends on PACKAGE_sqliteodbc
+    depends on PACKAGE_unixodbc_svn
+    bool "Compile with ODBC support (Requires unixodbc_svn NOT YET AVAILABLE)"
+    default n
+    help
+       Compile $(PKG_NAME) with ODBC support. Since both sqliteodbc and unixodbc_svn packages
+       are not yet available on OpenWRT, $(PKG_NAME) CAN NOT be compiled with ODBC support.
+endef
+
+
+define Package/$(PKG_NAME)-mod-spandsp/config
+    config FS_WITH_FIXED_POINT
+    depends on PACKAGE_$(PKG_NAME)-mod-spandsp
+    bool "Enable fixed point support for spandsp (may degrade performance)"
+    default n
+    help
+       Compile spandsp package with a fixed point support. ONLY enabled this option when
+       necessary, i.e. CPU doesn't support floating computation.
+endef
+
+
+define Package/$(PKG_NAME)-example-config
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH example config (commented)
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-example-config/description
+  The default configuration included with FreeSWITCH. It is not intended to be
+  a final product, and is thus moved to /usr/share/$(PKG_NAME)/examples/conf to
+  be an example of how FreeSWITCH can be configured.
+endef
+
+
+define Package/$(PKG_NAME)-config-upstream-defaults
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH upstream config
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-config-upstream-defaults/description
+  The default configuration included with FreeSWITCH. It is not intended to be
+  a final product, and but is included for those who don't want to use the
+  OpenWRT configuration and/or want to try things as prepared by upstream.
+endef
+
+
+define Package/$(PKG_NAME)-config-minimal
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH minimal config
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-config-minimal/description
+  A minimal configuration of FreeSWITCH for OpenWRT devices.  Is what the UCI
+  configuration began with.
+endef
+
+
+define Package/$(PKG_NAME)-collection-upstream-defaults
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FS upstream def sample conf
+  DEPENDS:= $(PKG_NAME) \
+               +$(PKG_NAME)-config-upstream-defaults \
+               +$(PKG_NAME)-mod-callcenter \
+               +$(PKG_NAME)-mod-codec2 \
+               +$(PKG_NAME)-mod-commands \
+               +$(PKG_NAME)-mod-conference \
+               +$(PKG_NAME)-mod-curl \
+               +$(PKG_NAME)-mod-dialplan-xml \
+               +$(PKG_NAME)-mod-dingaling \
+               +$(PKG_NAME)-mod-dptools \
+               +$(PKG_NAME)-mod-event-socket \
+               +$(PKG_NAME)-mod-g723-1 \
+               +$(PKG_NAME)-mod-g729 \
+               +$(PKG_NAME)-mod-hash \
+               +$(PKG_NAME)-mod-http-cache \
+               +$(PKG_NAME)-mod-ilbc \
+               +$(PKG_NAME)-mod-local-stream \
+               +$(PKG_NAME)-mod-lua \
+               +$(PKG_NAME)-mod-native-file \
+               +$(PKG_NAME)-mod-sndfile \
+               +$(PKG_NAME)-mod-sofia \
+               +$(PKG_NAME)-mod-spandsp \
+               +$(PKG_NAME)-mod-speex \
+               +$(PKG_NAME)-mod-syslog \
+               +$(PKG_NAME)-mod-tone-stream \
+               +$(PKG_NAME)-mod-xml-curl \
+               +$(PKG_NAME)-mod-xml-rpc \
+               +$(PKG_NAME)-tools
+endef
+
+
+define Package/$(PKG_NAME)-collection-minimal
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH minimal package collection
+  DEFAULT:=y
+  DEPENDS:= $(PKG_NAME) \
+               +$(PKG_NAME)-config-minimal \
+               +$(PKG_NAME)-mod-codec2 \
+               +$(PKG_NAME)-mod-commands \
+               +$(PKG_NAME)-mod-dialplan-xml \
+               +$(PKG_NAME)-mod-dptools \
+               +$(PKG_NAME)-mod-event-socket \
+               +$(PKG_NAME)-mod-hash \
+               +$(PKG_NAME)-mod-local-stream \
+               +$(PKG_NAME)-mod-sndfile \
+               +$(PKG_NAME)-mod-sofia \
+               +$(PKG_NAME)-mod-syslog \
+               +$(PKG_NAME)-mod-tone-stream \
+               +$(PKG_NAME)-tools
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-08KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 8KHz english sounds
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-16KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 16KHz english sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-en-08KHz
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-32KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 32KHz english sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-en-16KHz
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-48KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 48KHz english sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-en-32KHz
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-08KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 8KHz music-on-hold sounds
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-16KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 16KHz music-on-hold sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-moh-08KHz
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-32KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 32KHz music-on-hold sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-moh-16KHz
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-48KHz
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH 48KHz music-on-hold sounds
+  DEPENDS:= +$(PKG_NAME)-sounds-moh-32KHz
+endef
+
+
+define Package/$(PKG_NAME)-tools
+$(call Package/$(PKG_NAME)/Default)
+  TITLE:=FreeSWITCH control tools
+  DEPENDS:= $(PKG_NAME)
+endef
+
+
+define Download/files
+ define Download/$(1)
+  FILE:=$(2)
+  URL:=$(if $(4),$(4),http://files.$(PKG_NAME).org)/$(5)
+  MD5SUM:=$(3)
+ endef
+ define Prepare/$(1)
+  $(LN) $(DL_DIR)/$(2) $(PKG_BUILD_DIR)/$(6)
+ endef
+ $$(eval $$(call Download,$(1)))
+endef
+
+
+MAKE_INSTALL_TARGETS:=install
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),)
+ $(eval $(call Download/files,celt,celt-0.10.0.tar.gz,a656f6176e9be84027c0e51ceedd710f,,downloads/libs/,libs/))
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl),)
+ $(eval $(call Download/files,json-cdr,json-c-0.9.tar.gz,4653b3b9c568bb9c782178abfaac128d,,downloads/libs/,libs/))
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-event-zmq),)
+ $(eval $(call Download/files,event-zmq,zeromq-2.1.9.tar.gz,94c5e0262a79c5f82bc0b178c1f8a33d,http://download.zeromq.org http://download.zeromq.org/historic,,libs/))
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-flite),)
+ $(eval $(call Download/files,flite,flite-1.5.4-current.tar.bz2,f3a2d88b1059f6f4ff3c20a8169bc0f4,,downloads/libs/,libs/))
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-opus),)
+ $(eval $(call Download/files,opus,opus-1.0.2.tar.gz,c503ad05a59ddb44deab96204401be03,,downloads/libs/,libs/))
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-08KHz),)
+ $(eval $(call Download/files,sounds-en-08KHz,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.25.tar.gz,1140efad453ed1a72259d799f7fef0fc,,,))
+       MAKE_INSTALL_TARGETS+= sounds-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-16KHz),)
+ $(eval $(call Download/files,sounds-en-16KHz,$(PKG_NAME)-sounds-en-us-callie-16000-1.0.25.tar.gz,20b9bf1b1637be2abe838113fb675c41,,,))
+       MAKE_INSTALL_TARGETS+= hd-sounds-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-32KHz),)
+ $(eval $(call Download/files,sounds-en-32KHz,$(PKG_NAME)-sounds-en-us-callie-32000-1.0.25.tar.gz,977d453d8ffa9a5b0fadee8408e84f60,,,))
+       MAKE_INSTALL_TARGETS+= uhd-sounds-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en-48KHz),)
+ $(eval $(call Download/files,sounds-en-48KHz,$(PKG_NAME)-sounds-en-us-callie-48000-1.0.25.tar.gz,96ec0df908eb1c535063fdc8580626d2,,,))
+       MAKE_INSTALL_TARGETS+= cd-sounds-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-08KHz),)
+ $(eval $(call Download/files,sounds-moh-08KHz,$(PKG_NAME)-sounds-music-8000-1.0.8.tar.gz,f63ef3cc3507af079ae5c7b8b8a01e42,,,))
+       MAKE_INSTALL_TARGETS+= moh-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-16KHz),)
+ $(eval $(call Download/files,sounds-moh-16KHz,$(PKG_NAME)-sounds-music-16000-1.0.8.tar.gz,7fd0ca9a9e3878783baa39b8187743bf,,,))
+       MAKE_INSTALL_TARGETS+= hd-moh-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-32KHz),)
+ $(eval $(call Download/files,sounds-moh-32KHz,$(PKG_NAME)-sounds-music-32000-1.0.8.tar.gz,7e03932ea81b8d0bf6d686f838b060b4,,,))
+       MAKE_INSTALL_TARGETS+= uhd-moh-install
+endif
+
+
+ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh-48KHz),)
+ $(eval $(call Download/files,sounds-moh-48KHz,$(PKG_NAME)-sounds-music-48000-1.0.8.tar.gz,d06cd2a80379f224affab21f5180e4c6,,,))
+       MAKE_INSTALL_TARGETS+= cd-moh-install
+endif
+
+
+#
+# XXX: -fgnu89-inline is not supported on all compiler versions, so only enable it on avr32 where it solves build issues
+#
+ifneq ($(CONFIG_avr32),)
+  TARGET_CFLAGS += -fgnu89-inline
+  TARGET_CXXFLAGS += -fgnu89-inline
+endif
+
+
+ifneq ($(CONFIG_USE_EGLIBC),)
+  ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),)
+    TARGET_CFLAGS += -DNO_GETLOGIN
+  endif
+endif
+
+
+FS_TARGET_CFLAGS:= $(TARGET_CFLAGS) -DLUA_USE_LINUX $(FPIC) -std=gnu99 -Wno-format
+FS_TARGET_CXXFLAGS:= $(TARGET_CXXFLAGS) -DLUA_USE_LINUX $(FPIC) -Wno-format
+FS_TARGET_CPPFLAGS:= -I. -I./lua $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),-I$(STAGING_DIR_HOST)/lib/erlang/lib/erl_interface-3.7.7/include) $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-json-cdr),-Wno-error) $(TARGET_CPPFLAGS)
+
+
+CONFIGURE_ARGS+= \
+       --host=$(GNU_TARGET_NAME) \
+       --build=$(GNU_HOST_NAME) \
+       --prefix="/usr/share/$(PKG_NAME)" \
+       --bindir="/usr/bin" \
+       --libdir="/usr/lib" \
+       --srcdir="$(PKG_BUILD_DIR)" \
+       --sysconfdir="/etc/$(PKG_NAME)" \
+       --with-modinstdir="/usr/lib/$(PKG_NAME)" \
+       --with-random="/dev/urandom" \
+       $(if $(CONFIG_FS_WITH_MYSQL),--with,--without)-mysql \
+       $(if $(CONFIG_FS_WITH_POSTGRESQL),--with,--without)-pgsql \
+       $(if $(CONFIG_FS_WITH_SQLITE3),--with,--without)-sqlite3 \
+       $(call autoconf_bool,CONFIG_FS_WITH_IPV6,ipv6) \
+       $(call autoconf_bool,CONFIG_FS_WITH_OPT,optimization) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),--with-erlang,--without-erlang) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),--with-ogg="$(STAGING_DIR)/usr",--without-ogg) \
+       $(if ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-cdr)|$(CONFIG_PACKAGE_$(PKG_NAME)-mod-xml-curl)),--with-libcurl="$(STAGING_DIR)/usr",--without-libcurl) \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-java),--with-java="$(STAGING_DIR)/usr",--without-java) \
+       $(call autoconf_bool,CONFIG_FS_WITH_POSTGRESQL,core-pgsql-support) \
+       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp && CONFIG_FS_WITH_FIXED_POINT,fixed-point) \
+       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp,builtin-tiff) \
+       $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-timerfd,timerfd-wrapper) \
+       $(call autoconf_bool,CONFIG_FS_WITH_BUILTIN_ZRTP,zrtp) \
+       $(call autoconf_bool,CONFIG_FS_WITH_ODBC,core-odbc-support) \
+       $(if $(CONFIG_FS_WITH_ODBC),--with-odbc="$(STAGING_DIR)/usr") \
+       $(if $(CONFIG_FS_WITH_ODBC),--with-odbc-lib="$(STAGING_DIR)/usr/lib") \
+
+
+CONFIGURE_VARS+= \
+       config_TARGET_CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
+       config_TARGET_CFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CFLAGS)" \
+       config_TARGET_CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
+       config_TARGET_CXXFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CXXFLAGS)" \
+       config_TARGET_CPPFLAGS="$(FS_TARGET_CPPFLAGS)" \
+       config_TARGET_READLINE_INC="$(FS_TARGET_CPPFLAGS)" \
+       config_TARGET_READLINE_LIBS="$(TARGET_LDFLAGS) -lreadline -lncurses" \
+       config_TARGET_LIBS="$(TARGET_LDFLAGS) -lpthread -ldl" \
+       config_BUILD_CC="$(HOSTCC)" \
+       config_BUILD_CFLAGS="$(HOST_CFLAGS)" \
+       CC_FOR_BUILD="$(HOSTCC)" \
+       BUILDTOOL_CC="$(HOSTCC)" \
+       BUILDTOOL_CCLD="$(HOSTCC)" \
+       LDFLAGS="$$$$LDFLAGS" \
+       LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
+       CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
+       CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
+       AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
+       RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
+       CFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CFLAGS)" \
+       CXXFLAGS="$(FS_TARGET_CPPFLAGS) $(FS_TARGET_CXXFLAGS)" \
+       CPPFLAGS="$(FS_TARGET_CPPFLAGS)" \
+       LDFLAGS="$(TARGET_LDFLAGS) -Wl,-rpath-link=\"$(STAGING_DIR)/usr/lib\"" \
+       HOST_CC="/usr/bin/cc" \
+       HOST_CXX="/usr/bin/g++" \
+       CROSS_COMPILE="1" \
+       ax_cv_c_compiler_vendor="gnu" \
+       ac_cv_dev_urandom="yes" \
+       ac_cv_file_dbd_apr_dbd_mysql_c="no" \
+       ac_cv_file__dev_random="no" \
+       ac_cv_file__dev_urandom="yes" \
+       ac_cv_file___dev_urandom_="yes" \
+       ac_cv_func_mmap_fixed_mapped="yes" \
+       ac_cv_func_pthread_rwlock_init="yes" \
+       ac_cv_struct_rlimit="yes" \
+       apr_cv_mutex_recursive="yes" \
+       apr_cv_process_shared_works="no" \
+       apr_cv_tcp_nodelay_with_cork="yes" \
+       apr_cv_type_rwlock_t="yes" \
+       $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),ac_cv_path_PERL="yes",) \
+       libzmq_cv_cxx_werror_flag="" \
+
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(call Prepare/celt)
+       $(call Prepare/event-zmq)
+       $(call Prepare/flite)
+       $(call Prepare/json-cdr)
+       $(call Prepare/opus)
+       $(call Prepare/sounds-en-08KHz)
+       $(call Prepare/sounds-en-16KHz)
+       $(call Prepare/sounds-en-32KHz)
+       $(call Prepare/sounds-en-48KHz)
+       $(call Prepare/sounds-moh-08KHz)
+       $(call Prepare/sounds-moh-16KHz)
+       $(call Prepare/sounds-moh-32KHz)
+       $(call Prepare/sounds-moh-48KHz)
+endef
+
+
+define Build/Configure
+       if [ -d $(PKG_BUILD_DIR)/libs/libcodec2/src ]; then \
+               (cd $(PKG_BUILD_DIR)/libs/libcodec2/src; $(HOSTCC) -c generate_codebook.c; $(HOSTCC) -o generate_codebook generate_codebook.o -lm) \
+       fi
+       (cd $(PKG_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap.sh)
+       $(call Build/Configure/Default,)
+       $(foreach m,$(FS_MOD_AVAILABLE),
+               $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-$(m)),
+                       $(SED) 's|^[ #]*\([^#]*/mod_$(subst -,_,$(m))\)$$$$|\1|g' $(PKG_BUILD_DIR)/modules.conf
+               ,
+                       $(SED) 's|^\([^#]*/mod_$(subst -,_,$(m))\)$$$$|#\1|g' $(PKG_BUILD_DIR)/modules.conf
+               )
+       )
+endef
+
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
+               RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
+               CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
+               CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
+               all $(MAKE_INSTALL_TARGETS)
+       $(SED) 's|^\([ \t]*\)\(.*\)"mod_console"\(.*\)$$$$|\1<!-- \2"mod_console"\3 -->|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
+       $(SED) 's|^\([ \t]*\)<!-- *\(.*\)"mod_syslog"\(.*\) *-->\(.*\)$$$$|\1\2"mod_syslog"\3\4|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
+endef
+
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/$(PKG_NAME)
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/include/* $(1)/usr/include/$(PKG_NAME)/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME).{a,so*} $(1)/usr/lib/
+endef
+
+
+define Package/$(PKG_NAME)/install
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/scripts
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
+       $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
+       $(INSTALL_DATA) ./files/$(PKG_NAME).default $(1)/etc/default/$(PKG_NAME)
+       $(INSTALL_DATA) ./files/$(PKG_NAME).hotplug $(1)/etc/hotplug.d/iface/90-$(PKG_NAME)
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME)* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(PKG_NAME).pc $(1)/usr/lib/pkgconfig/
+       $(if $(1)/usr/lib/lib$(PKG_NAME).la,sed -i -e "s#-lcurl -lz\(.*\)/usr/lib/libexpat.la\(.*\)$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)\(.*\)#-L/usr/lib -lcurl -lz /usr/lib/libexpat.la\2/usr\3#g" $(1)/usr/lib/lib$(PKG_NAME).la)
+endef
+
+
+define Package/$(PKG_NAME)-collection-upstream-defaults/install
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-example-config/install
+       $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/examples/conf
+       $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/usr/share/$(PKG_NAME)/examples/conf/
+endef
+
+
+define Package/$(PKG_NAME)-config-upstream-defaults/install
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+       $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME) $(1)/etc
+endef
+
+
+define Package/$(PKG_NAME)-collection-minimal/install
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-collection-uci-minimal/install
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+endef
+
+
+define Package/$(PKG_NAME)-config-minimal/install
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/autoload_configs
+
+       #
+       # Copying dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml
+       # fur_elise.ttml mime.types tetris.ttml tones.conf vars.xml
+       #
+       $(foreach f,dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml fur_elise.ttml mime.types tetris.ttml vars.xml,$(if $(PKG_BUILD_DIR)/conf/vanilla/$(f),$(CP) $(PKG_BUILD_DIR)/conf/vanilla/$(f) $(1)/etc/$(PKG_NAME);))
+
+       #
+       # Copying acl ivr modules post_load_modules switch timezones
+       #
+       $(foreach f,acl ivr modules post_load_modules switch timezones,$(if $(PKG_BUILD_DIR)/conf/vanilla/autoload_configs/$(f).conf.xml,$(CP) $(PKG_BUILD_DIR)/conf/vanilla/autoload_configs/$(f).conf.xml $(1)/etc/$(PKG_NAME)/autoload_configs;))
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-08KHz/install
+       #
+       # sounds-en-8KHz
+       #
+       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
+       do \
+               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/8000; \
+       done
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-16KHz/install
+       #
+       # sounds-en-16KHz
+       #
+       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
+       do \
+               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/16000; \
+       done
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-32KHz/install
+       #
+       # sounds-en-32KHz
+       #
+       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
+       do \
+               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/32000; \
+       done
+endef
+
+
+define Package/$(PKG_NAME)-sounds-en-48KHz/install
+       #
+       # sounds-en-48KHz
+       #
+       for dir in `(cd $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie;ls)`; \
+       do \
+               [ -d $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000/* $(1)/usr/share/$(PKG_NAME)/sounds/en/us/callie/$$$${dir}/48000; \
+       done
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-08KHz/install
+       #
+       # sounds-moh-8KHz
+       #
+       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/8000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/8000;
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/8000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-16KHz/install
+       #
+       # sounds-moh-16KHz
+       #
+       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/16000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/16000;
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/16000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-32KHz/install
+       #
+       # sounds-moh-32KHz
+       #
+       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/32000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/32000;
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/32000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
+endef
+
+
+define Package/$(PKG_NAME)-sounds-moh-48KHz/install
+       #
+       # sounds-moh-48KHz
+       #
+       [ -d $(1)/usr/share/$(PKG_NAME)/sounds/music/48000 ] || $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds/music/48000;
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music/48000 $(1)/usr/share/$(PKG_NAME)/sounds/music;
+endef
+
+
+define Package/$(PKG_NAME)-tools/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_cli $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_encode $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_ivrd $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/fsxs $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/gentls_cert $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/tone2wav $(1)/usr/bin/
+endef
+
+
+# 1. Name
+# 2. Title
+# 3. Selection on module configuration file
+# 4. Files (module files include different names)
+# 5. Files (supporting files include different names)
+# 6. Inter module depends
+# 7. Extra depends
+#
+define BuildPlugin
+  define Package/$(PKG_NAME)-mod-$(1)
+    $$(call Package/$(PKG_NAME)/Default)
+    TITLE:= FS $(2) module
+    DEPENDS:= $(PKG_NAME) $(foreach m,$(6),+$(PKG_NAME)-mod-$(m)) $(7)
+  endef
+
+  define Package/$(PKG_NAME)-mod-$(1)/install
+       [ -z "mod_$(subst -,_,$(1))" ] || $(INSTALL_DIR) $$(1)/usr/lib/$(PKG_NAME)
+
+       for f in $$$$(realpath $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/mod_$(subst -,_,$(1)).*)) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/$(4)_*); \
+       do \
+               $(CP) $$$$$$$${f} $$(1)/usr/lib/$(PKG_NAME)/; \
+       done
+
+       #
+       # mod_$(subst -,_,$(1)): $(5)
+       #
+       $(foreach f,$(5),[ -d $(dir $$(1)/usr/${f}) ] || $(INSTALL_DIR) $(dir $$(1)/usr/${f});$(CP) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/${f}*) $(dir $$(1)/usr/${f});)
+
+       #
+       # mod_$(subst -,_,$(1)): Clean installed library control files from referencig to OpenWRT PATH.
+       #
+       for f in `ls $$(1)/usr/lib/$(PKG_NAME)/*.la`; \
+       do \
+               sed -i -e "s#' \(.*\)/usr/lib/libexpat.la\(.*\)$(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)\(.*\)#' -L/usr/lib -L/usr/lib/libiconv-full/lib -L/usr/lib/libintl-full/lib /usr/lib/lib$(PKG_NAME).la /usr/lib/libexpat.la\2/usr\3#g;s#' \(.*\)/usr/lib/libintl-full/lib#' -L/usr/lib -L/usr/lib/libiconv-full/lib -L/usr/lib/libintl-full/lib#g;s#-L\.\.##g;s#$(PKG_BUILD_DIR)\(.*\)/usr/lib/libtiff.la\(.*\)#/usr/lib/libtiff.la\2#g" $$$$$$$${f}; \
+       done
+
+       #
+       # 1. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/autoload_configs/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
+
+       #
+       # 2. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
+
+       #
+       # 3. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf/autoload_configs/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
+
+       #
+       # 4. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/conf*/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
+
+       #
+       # 5. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)),[ -d $$(1)/etc/$(PKG_NAME)/autoload_configs ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/autoload_configs;$(CP) $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/src/$(3)/*/mod_$(subst -,_,$(1))/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
+
+       #
+       # 6. Additional configuration files for mod_$(subst -,_,$(1)) from: $$$$(patsubst $(PKG_BUILD_DIR)/%,%,$$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/$(1)/*.$(1))))
+       #
+       $$$$(if $$$$(firstword $$$$(wildcard $(PKG_BUILD_DIR)/conf/$(3)/$(1)/*.$(1))),[ -d $$(1)/etc/$(PKG_NAME)/$(1) ] || $(INSTALL_DIR) $$(1)/etc/$(PKG_NAME)/$(1);$(CP) $(PKG_BUILD_DIR)/conf/$(3)/$(1) $$(1)/etc/$(PKG_NAME))
+  endef
+
+  define Package/$(PKG_NAME)-mod-$(1)/postinst
+#!/bin/sh
+sed -i -e 's|^\([ \t]*\)<!-- *\(.*\)"mod_$(subst -,_,$(1))"\(.*\) *-->\(.*\)$$$$|\1\2"mod_$(subst -,_,$(1))"\3\4|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
+  endef
+
+  define Package/$(PKG_NAME)-mod-$(1)/prerm
+#!/bin/sh
+sed -i -e 's|^\([ \t]*\)\(.*\)"mod_$(subst -,_,$(1))"\(.*\)$$$$|\1<!-- \2"mod_$(subst -,_,$(1))"\3 -->|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
+  endef
+
+  $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
+endef
+
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,$(PKG_NAME)-collection-upstream-defaults))
+$(eval $(call BuildPackage,$(PKG_NAME)-collection-minimal))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-08KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-16KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-32KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-en-48KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-08KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-16KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-32KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh-48KHz))
+$(eval $(call BuildPackage,$(PKG_NAME)-tools))
+$(eval $(call BuildPackage,$(PKG_NAME)-example-config))
+$(eval $(call BuildPackage,$(PKG_NAME)-config-upstream-defaults))
+$(eval $(call BuildPackage,$(PKG_NAME)-config-minimal))
+
+
+#
+# $(eval $(call BuildPlugin,Name,Title,Selection on module Conf File,Files,Inter Depends,Extra Depends))
+#
+$(eval $(call BuildPlugin,abstraction,An Abstraction To API Call,vanilla,,,,))
+$(eval $(call BuildPlugin,alsa,Alsa Endpoint,vanilla,,,,+alsa-lib @FS_WITH_ALSA))
+$(eval $(call BuildPlugin,amr,Adaptive Multi-Rate On Bandwidth Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,amrwb,Wide Band AMR,vanilla,,,,))
+$(eval $(call BuildPlugin,avmd,Advanced Voice Mail Detection,vanilla,,,,))
+$(eval $(call BuildPlugin,blacklist,Blacklist,vanilla,,,,))
+$(eval $(call BuildPlugin,bv,BroadVoice 16/32-bit Audio Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,callcenter,Call Center,vanilla,,,,))
+$(eval $(call BuildPlugin,cdr-csv,CSV-CDR Handler,mod,,,,)) # ~/conf
+$(eval $(call BuildPlugin,cdr-pg-csv,PostgreSQL CDR Handler,vanilla,,,,+coreutils +FS_WITH_POSTGRESQL:libpq @FS_WITH_POSTGRESQL))
+$(eval $(call BuildPlugin,cdr-sqlite,SQLite3 CDR Handler,vanilla,,,,@FS_WITH_SQLITE3))
+$(eval $(call BuildPlugin,celt,CELT Ultra-Low Delay Codec,vanilla,,,,+libogg))
+$(eval $(call BuildPlugin,cepstral,Cepstral Interface,vanilla,,,,@BROKEN)) # needs <swift.h>
+$(eval $(call BuildPlugin,cidlookup,Data Query For CID->NAME Services,mod,,,,+libcurl)) # ~/conf
+$(eval $(call BuildPlugin,cluechoo,Framework Demo,vanilla,,,,))
+$(eval $(call BuildPlugin,codec2,CoDec 2,,,,,))
+$(eval $(call BuildPlugin,commands,API Commands,vanilla,,,,))
+$(eval $(call BuildPlugin,conference,Conference Room,vanilla,,,,))
+$(eval $(call BuildPlugin,console,Console Logger,vanilla,,,,))
+$(eval $(call BuildPlugin,curl,HTTP Request,vanilla,,,,+libcurl))
+$(eval $(call BuildPlugin,dahdi-codec,DAHDI Codecs,vanilla,,,,))
+$(eval $(call BuildPlugin,db,Database Backend,vanilla,,,,))
+$(eval $(call BuildPlugin,dialplan-asterisk,Asterisk Dialplan Parser,vanilla,,,,))
+$(eval $(call BuildPlugin,dialplan-directory,Dialplan Directory,vanilla,,,,))
+$(eval $(call BuildPlugin,dialplan-xml,Dialplan-XML Interface,vanilla,,,,))
+$(eval $(call BuildPlugin,dingaling,Jabber Interface,vanilla,,,,+libopenssl))
+$(eval $(call BuildPlugin,directory,Search By Name Directory IVR,vanilla,,,,))
+$(eval $(call BuildPlugin,distributor,Simple Robin-Round Load,vanilla,,,,))
+$(eval $(call BuildPlugin,dptools,Dialplan Tools,vanilla,,,,))
+$(eval $(call BuildPlugin,easyroute,Simple DID Routing,vanilla,,,,))
+$(eval $(call BuildPlugin,enum,ENUM Routing,,,,,))
+$(eval $(call BuildPlugin,erlang-event,Erlang Event Handler,vanilla,,,,+erlang @BROKEN))
+$(eval $(call BuildPlugin,esf,Extra SIP Functionality,vanilla,,,,))
+$(eval $(call BuildPlugin,event-multicast,Multicast Event Handler,vanilla,,,,))
+$(eval $(call BuildPlugin,event-socket,Socket Event Handler,vanilla,,,,))
+$(eval $(call BuildPlugin,event-zmq,Socket Event Handler By Zero MQ,vanilla,,,,+libuuid))
+$(eval $(call BuildPlugin,expr,Expression Evaluation,vanilla,,,,))
+$(eval $(call BuildPlugin,fifo,FIFO,vanilla,,,,))
+$(eval $(call BuildPlugin,file-string,Streaming Multiple Sound Files Sequentially,vanilla,,,,@OBSOLETE)) # merged into dptools
+$(eval $(call BuildPlugin,flite,Festival TTS,vanilla,,,,@(!(armeb||avr32)||BROKEN)))
+$(eval $(call BuildPlugin,fsk,Bell-202 1200-Baud FSK Decoder,vanilla,,,,))
+$(eval $(call BuildPlugin,fsv,Video Player / Recorder,vanilla,,,,))
+$(eval $(call BuildPlugin,g723-1,G.723.1 Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,g729,G.729 Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,gsmopen,GSM Modem compatible Endpoint,mod,,,alsa,+alsa-lib @FS_WITH_ALSA @BROKEN)) # needs gsmlib
+$(eval $(call BuildPlugin,h26x,H26X Linear Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,h323,H323 Endpoint,mod,,,,@BROKEN)) # Req. H323Plus v1.24.x or newer
+$(eval $(call BuildPlugin,hash,API For Manipulating A Hash Table,vanilla,,,,))
+$(eval $(call BuildPlugin,html5,HTML5 Endpoint Module,vanilla,,,,))
+$(eval $(call BuildPlugin,httapi,HT Telephony API and HTTP Caching,mod,,,,)) # ~/conf
+$(eval $(call BuildPlugin,http-cache,HTTP GET With Caching,mod,,,,+libcurl)) # ~/conf
+$(eval $(call BuildPlugin,ilbc,ILBC Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,isac,iSAC Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,java,Java Language Interface,vanilla,,,,@BROKEN)) # needs java
+$(eval $(call BuildPlugin,json-cdr,JSon-CDR Interface,mod,,,,+libcurl))
+$(eval $(call BuildPlugin,lcr,Least Cost Routing,vanilla,,,,))
+$(eval $(call BuildPlugin,local-stream,Multi-Channel On Same Stream,vanilla,,,,))
+$(eval $(call BuildPlugin,logfile,File Logger,vanilla,,,,))
+$(eval $(call BuildPlugin,loopback,Loopback to Dialplan Endpoint,vanilla,,,,))
+$(eval $(call BuildPlugin,lua,LUA Language Interface,vanilla,,,,))
+$(eval $(call BuildPlugin,managed,Media Switching Software Library,vanilla,,,,+glib2 @BROKEN)) # needs Mono
+$(eval $(call BuildPlugin,mp4,MP4 File Format Support For Video,vanilla,,,,@BROKEN)) # needs libmp4v2
+$(eval $(call BuildPlugin,mp4v,MP4 CoDec Support For Video,vanilla,,,,))
+$(eval $(call BuildPlugin,native-file,WAV Format Sound Player,vanilla,,,,))
+$(eval $(call BuildPlugin,nibblebill,Credit / Debit Billing,vanilla,,,,))
+$(eval $(call BuildPlugin,oreka,Media Recording with Oreka,vanilla,,,,))
+$(eval $(call BuildPlugin,openzap,Zaptel (Superseded by FreeTDM),libs,ozmod,lib/libopenzap lib/pkgconfig/openzap,,+libpcap))
+$(eval $(call BuildPlugin,opus,Opus CoDec,vanilla,,,,))
+$(eval $(call BuildPlugin,portaudio,Portaudio To Sound Card Interface,vanilla,,,alsa,+alsa-lib @FS_WITH_ALSA))
+$(eval $(call BuildPlugin,portaudio-stream,Portaudio Streaming Interface,vanilla,,,alsa,+alsa-lib @FS_WITH_ALSA))
+$(eval $(call BuildPlugin,posix-timer,POSIX Compliant Soft Timer,vanilla,,,,))
+$(eval $(call BuildPlugin,radius-cdr,Radius-CDR interface,vanilla,,,,@BROKEN)) # fails in freeradius-client
+$(eval $(call BuildPlugin,rayo,Rayo server & node implementation,vanilla,,,,))
+$(eval $(call BuildPlugin,redis,Redis Limited Backend,vanilla,,,,))
+$(eval $(call BuildPlugin,rss,RRS Feeds via TTS,vanilla,,,,))
+$(eval $(call BuildPlugin,rtmp,RTMP Protocol Handler,vanilla,,,,))
+$(eval $(call BuildPlugin,sangoma-codec,Sangoma Codec,vanilla,,,,@BROKEN)) # Req. Sangoma CoDec source
+$(eval $(call BuildPlugin,say-de,German Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-en,English Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-es,Spanish Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-fa,Persian Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-fr,French Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-hu,Hungarian Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-it,Italian Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-nl,Dutch Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-pt,Portugeese Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-ru,Russian Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-th,Thai Say,vanilla,,,,))
+$(eval $(call BuildPlugin,say-zh,Chineese Say,vanilla,,,,))
+$(eval $(call BuildPlugin,shell-stream,Streaming Audio Through CLI,vanilla,,,,))
+$(eval $(call BuildPlugin,silk,Skype(TM) SILK Codec Module,vanilla,,,,))
+$(eval $(call BuildPlugin,siren,G.722.1 Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,skel,Template For New Module,vanilla,,,,))
+$(eval $(call BuildPlugin,skinny,Skinny Call Control Protocol (SCCP),vanilla,,,,))
+$(eval $(call BuildPlugin,skypopen,Skype Compatible Endpoint,mod,,,,@FEATURE_drawing-backend_libX11))
+$(eval $(call BuildPlugin,sms,SMS,vanilla,,,,))
+$(eval $(call BuildPlugin,snapshot,Record Audio Snapshot to File,vanilla,,,,))
+$(eval $(call BuildPlugin,sndfile,Multi-Format Sound File,vanilla,,,,))
+$(eval $(call BuildPlugin,snipe-hunt,Snipe Hunt (Simple Example Module),vanilla,,,,))
+$(eval $(call BuildPlugin,snmp,SNMP AgentX Subagent,vanilla,,,,+libnetsnmp))
+$(eval $(call BuildPlugin,snom,SNOM specific features,vanilla,,,,))
+$(eval $(call BuildPlugin,sofia,SOFIA SIP,mod,,,,)) # ~/conf
+$(eval $(call BuildPlugin,sonar,Sonar Ping Timer,vanilla,,,,))
+$(eval $(call BuildPlugin,spandsp,Span DSP,mod,,,,+libjpeg)) # ~/conf
+$(eval $(call BuildPlugin,speex,Speex codec,mod,,,,))
+$(eval $(call BuildPlugin,spidermonkey,JavaScript,vanilla,,,,@BROKEN)) # fails in js
+$(eval $(call BuildPlugin,spidermonkey-core_db,JavaScript DB,vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,spidermonkey-curl,JavaScript Curl,vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,spidermonkey-odbc,JavaScript ODBC,vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,spidermonkey-socket,JavaScript Socket,vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,spidermonkey-teletone,JavaScript Teletone,vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,spy,User Spy,vanilla,,,,))
+$(eval $(call BuildPlugin,stress,Voice Stress Detection,vanilla,,,,))
+$(eval $(call BuildPlugin,syslog,SysLog logger,vanilla,,,,))
+$(eval $(call BuildPlugin,timerfd,Linux Kernel timerfd API,vanilla,,,,))
+$(eval $(call BuildPlugin,tone-stream,Tone Generation Stream,vanilla,,,,))
+$(eval $(call BuildPlugin,tts-commandline,ASR TTS Command Interface,vanilla,,,,))
+$(eval $(call BuildPlugin,unimrcp,UniMRCP (MRCP Client),vanilla,,,,@BROKEN))
+$(eval $(call BuildPlugin,valet-parking,Valet Parking Application,vanilla,,,,))
+$(eval $(call BuildPlugin,vmd,VoiceMail Beep Detection,vanilla,,,,))
+$(eval $(call BuildPlugin,voicemail,VoiceMail,vanilla,,,,))
+$(eval $(call BuildPlugin,voicemail-ivr,VoiceMail IVR,vanilla,,,,))
+$(eval $(call BuildPlugin,vp8,VP8 Video Codec,vanilla,,,,))
+$(eval $(call BuildPlugin,xml-cdr,XML-CDR Handler,vanilla,,,,+libcurl))
+$(eval $(call BuildPlugin,xml-curl,XML-Curl Gateway,vanilla,,,,+libcurl))
+$(eval $(call BuildPlugin,xml-rpc,XML-RPC Interface,vanilla,,,,))
+$(eval $(call BuildPlugin,xml-scgi,SCGI XML Gateway,vanilla,,,,))
+$(eval $(call BuildPlugin,yaml,YAML langunage,vanilla,,,,))
diff --git a/net/freeswitch/files/freeswitch.config b/net/freeswitch/files/freeswitch.config
new file mode 100644 (file)
index 0000000..9b4ab84
--- /dev/null
@@ -0,0 +1,11 @@
+
+config 'global' 'state'
+       option 'started' '0'
+
+config 'profile_top' 'internal_top'
+
+config 'profile_top' 'external_top'
+
+config 'external_gateway' 'external_example'
+
+
diff --git a/net/freeswitch/files/freeswitch.default b/net/freeswitch/files/freeswitch.default
new file mode 100644 (file)
index 0000000..079c314
--- /dev/null
@@ -0,0 +1,11 @@
+#FS_DIR="/opt"
+FS_DIR_ETC="$FS_DIR/etc/freeswitch"
+FS_DIR_MOD="$FS_DIR/usr/lib/freeswitch"
+FS_DIR_DB="$FS_DIR/tmp/freeswitch/db"
+FS_DIR_LOG="$FS_DIR/tmp/freeswitch/log"
+FS_DIR_SCRIPTS="$FS_DIR/usr/share/freeswitch/scripts"
+FS_DIR_HTDOCS="$FS_DIR/usr/share/freeswitch/htdocs"
+FS_DIR_RECORDINGS="/var/lib/freeswitch/recordings" # NOTE: must be changed in config as well
+FS_DIR_VM_STORAGE="/var/lib/freeswitch/storage" # NOTE: must be changed in config as well
+
+OPTIONS="-conf $FS_DIR_ETC -log $FS_DIR_LOG -db $FS_DIR_DB -mod $FS_DIR_MOD -htdocs $FS_DIR_HTDOCS -scripts $FS_DIR_SCRIPTS"
diff --git a/net/freeswitch/files/freeswitch.hotplug b/net/freeswitch/files/freeswitch.hotplug
new file mode 100644 (file)
index 0000000..ef9656c
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+. /lib/functions.sh
+LOAD_STATE=1
+
+if [ "$ACTION" = "ifup" ]; then
+       /etc/init.d/freeswitch enabled && {
+               local not_all_up="$(sh -c '
+                       . /lib/functions.sh
+
+                       LOAD_STATE=1
+                       local if_is_down=0
+                       local network_ignore=""
+                       
+                       check_if_down () {
+                               local cfg="$1"
+                               local up
+                               local proto
+                               config_get_bool up "$1" up 0
+                               config_get proto "$1" proto
+                               if [ "$proto" != "none" ] && [ "$up" -ne 1 ]; then
+                                       local new_down=1
+                                       local oIFS="$IFS"
+                                       local ignore
+                                       IFS=" "
+                                       for ignore in $network_ignore; do
+                                               [ "$cfg" = "$ignore" ] && new_down=0
+                                       done
+                                       IFS="$oIFS"
+                                       [ "$new_down" = "1" ] && if_is_down=1
+                               fi
+                       }
+                       
+                       append_ignore() {
+                               local cfg="$1"
+                               local network
+                               config_get network "$1" network
+                               append network_ignore "$network"
+                       }       
+
+                       LOAD_STATE=1
+                       config_load freeswitch
+                       config_foreach append_ignore network_ignore
+                       config_load network
+                       config_foreach check_if_down interface
+                       
+                       echo "$if_is_down"
+               ')"     
+               [ "$not_all_up" = "0" ] && {
+                       local started
+                       {
+                               mkdir -p /tmp/freeswitch
+                               lock /tmp/freeswitch/.start.lck
+                               config_load freeswitch
+                               config_get started "state" started
+                               [ "$started" != "1" ] && {
+                                       /etc/init.d/freeswitch start
+                                       uci_set_state freeswitch global state started 1
+                               }
+                               lock -u /tmp/freeswitch/.start.lck
+                       } &
+               }
+       }
+fi
+
diff --git a/net/freeswitch/files/freeswitch.init b/net/freeswitch/files/freeswitch.init
new file mode 100644 (file)
index 0000000..4476b47
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
+START=90 
+
+DEFAULT=/etc/default/freeswitch
+OPTIONS=""
+
+boot() {
+       # Do nothing on boot
+       exit 0
+}
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       mkdir -p $FS_DIR_DB
+       mkdir -p $FS_DIR_LOG
+       mkdir -p $FS_DIR_RECORDINGS
+       mkdir -p $FS_DIR_VM_STORAGE
+       ulimit -s 240
+       $FS_DIR/usr/bin/freeswitch $OPTIONS -nc
+}
+
+stop() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       $FS_DIR/usr/bin/freeswitch $OPTIONS -stop
+}
+
+restart() {
+       # stopping freeswitch is non-blocking, so we wait until freeswitch's 
+       # event socket is down, and then wait an additional ten seconds so that 
+       # freeswitch should be completely shutdown before we start it again
+       local retval
+       stop
+       fs_cli -x status >/dev/null 2>&1
+       retval=$?
+       while [ $retval -eq 0 ]; do sleep 1; fs_cli -x status >/dev/null 2>&1; retval=$?; done
+       sleep 10
+       start
+}
+
diff --git a/net/freeswitch/patches/000-build-openwrt_rules.mk.patch b/net/freeswitch/patches/000-build-openwrt_rules.mk.patch
new file mode 100644 (file)
index 0000000..31fb16f
--- /dev/null
@@ -0,0 +1,10 @@
+--- /dev/null
++++ b/build/openwrt_rules.mk
+@@ -0,0 +1,7 @@
++OPENWRT_DIR=$(shell (cd $(BASE)/../../..;pwd))
++STAGING_PREFIX=$(OPENWRT_DIR)/staging_dir/host
++STAGING_DIR=$(OPENWRT_DIR)/staging_dir/$(shell (cd $(BASE)/..;basename `pwd`))
++ARCH="$(shell grep CONFIG_ARCH $(OPENWRT_DIR)/.config|cut -d= -d'"' -f2)"
++GNU_TARGET_NAME=$(ARCH)-openwrt-linux
++
++include $(OPENWRT_DIR)/rules.mk
diff --git a/net/freeswitch/patches/001-build-modules_conf_in.patch b/net/freeswitch/patches/001-build-modules_conf_in.patch
new file mode 100644 (file)
index 0000000..e34ea59
--- /dev/null
@@ -0,0 +1,65 @@
+--- a/build/modules.conf.in
++++ b/build/modules.conf.in
+@@ -3,6 +3,9 @@
+ #applications/mod_blacklist
+ #applications/mod_callcenter
+ #applications/mod_cidlookup
++#applications/mod_skel
++#applications/mod_mp4
++#applications/mod_protovm
+ applications/mod_cluechoo
+ applications/mod_commands
+ applications/mod_conference
+@@ -27,6 +30,7 @@ applications/mod_httapi
+ #applications/mod_memcache
+ #applications/mod_mongo
+ #applications/mod_nibblebill
++#applications/mod_oreka
+ #applications/mod_osp
+ #applications/mod_redis
+ #applications/mod_rss
+@@ -34,6 +38,7 @@ applications/mod_sms
+ #applications/mod_snapshot
+ #applications/mod_snipe_hunt
+ #applications/mod_snom
++#applications/mod_sonar
+ #applications/mod_soundtouch
+ applications/mod_spandsp
+ #applications/mod_spy
+@@ -63,17 +68,20 @@ codecs/mod_h26x
+ codecs/mod_vp8
+ #codecs/mod_ilbc
+ #codecs/mod_isac
++#codecs/mod_mp4v
+ #codecs/mod_opus
+ #codecs/mod_sangoma_codec
+ #codecs/mod_silk
+ #codecs/mod_siren
+ codecs/mod_speex
++#codecs/mod_theora
+ dialplans/mod_dialplan_asterisk
+ #dialplans/mod_dialplan_directory
+ dialplans/mod_dialplan_xml
+ #directories/mod_ldap
+ #endpoints/mod_alsa
+ #endpoints/mod_dingaling
++#endpoints/mod_gsmopen
+ #endpoints/mod_h323
+ #endpoints/mod_html5
+ #endpoints/mod_khomp
+@@ -90,6 +98,7 @@ event_handlers/mod_cdr_csv
+ event_handlers/mod_cdr_sqlite
+ #event_handlers/mod_erlang_event
+ #event_handlers/mod_event_multicast
++#event_handlers/mod_json_cdr
+ event_handlers/mod_event_socket
+ #event_handlers/mod_event_zmq
+ #event_handlers/mod_radius_cdr
+@@ -117,6 +126,7 @@ loggers/mod_syslog
+ #say/mod_say_de
+ say/mod_say_en
+ #say/mod_say_es
++#say/mod_say_fa
+ #say/mod_say_fr
+ #say/mod_say_he
+ #say/mod_say_hu
diff --git a/net/freeswitch/patches/002-configure_in.patch b/net/freeswitch/patches/002-configure_in.patch
new file mode 100644 (file)
index 0000000..99375be
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/configure.in
++++ b/configure.in
+@@ -162,7 +162,7 @@ if test "${enable_optimizer}" = "yes" ;
+         AX_CC_MAXOPT
+ fi
+-AX_PATH_LIBGNUTLS()
++#AX_PATH_LIBGNUTLS()
+ # set defaults for use on all platforms
+ SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src -I${switch_srcdir}/libs/stfu"
+@@ -597,7 +597,7 @@ AC_CHECK_LIB(pthread, pthread_setschedpa
+ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
+-AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
++# AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
+ AC_CHECK_LIB(util, openpty, [AC_DEFINE(HAVE_OPENPTY, 1, [Define if you have openpty()])])
+ AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
diff --git a/net/freeswitch/patches/003-Makefile.am.patch b/net/freeswitch/patches/003-Makefile.am.patch
new file mode 100644 (file)
index 0000000..9bab90d
--- /dev/null
@@ -0,0 +1,48 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,3 +1,7 @@
++BASE=.
++
++include $(BASE)/build/openwrt_rules.mk
++
+ EXTRA_DIST =
+ SUBDIRS = . src
+ AUTOMAKE_OPTIONS = foreign
+@@ -164,7 +168,6 @@ ZRTP_LIBS = -lbn -lzrtp
+ libfreeswitch_la_LDFLAGS += $(ZRTP_LDFLAGS)
+ libfreeswitch_la_LIBADD += $(ZRTP_LIBS)
+ CORE_LIBS += libs/libzrtp/libzrtp.a
+-LIBS += libs/libzrtp/third_party/bnlib/libbn.a
+ endif
+ library_includedir      = $(includedir)
+@@ -426,7 +429,7 @@ $(switch_builddir)/quiet_libtool: $(swit
+       @cat libtool | sed -e 's|$$show "$$command"|if test -z "$$suppress_output" ; then $$show "Compiling $$srcfile ..." ; fi|' > $(switch_builddir)/quiet_libtool
+ build/print_git_revision: build/print_git_revision.c
+-      $(CC) -o $@ $<
++      $(HOSTCC) -o $@ $<
+ src/include/switch_version.h: src/include/switch_version.h.in Makefile build/print_git_revision $(libfreeswitch_la_SOURCES) $(library_include_HEADERS)
+       @cat $< > $@; \
+@@ -664,7 +667,9 @@ sndfile-reconf:
+ tiff-reconf:
+       cd libs/tiff-4.0.2 && autoreconf -fi
+-      cd libs/tiff-4.0.2 && sh ./configure.gnu
++      cd libs/tiff-4.0.2 && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
++      cd libs/spandsp && autoreconf -fi
++      cd libs/spandsp && sh ./configure.gnu --host="$(GNU_TARGET_NAME)" --prefix="/usr"
+       cd libs/tiff-4.0.2 && make
+ python-reconf:
+@@ -689,9 +694,6 @@ iks-reconf:
+       $(MAKE) mod_dingaling-clean
+ spandsp-reconf: tiff-reconf
+-      cd libs/spandsp && $(MAKE) clean || echo
+-      cd libs/spandsp && autoreconf -fi
+-      cd libs/spandsp && sh ./configure.gnu --prefix=$(prefix)
+       cd libs/spandsp && $(MAKE)
+ sofia-reconf:
diff --git a/net/freeswitch/patches/100-libs-esl-Makefile.patch b/net/freeswitch/patches/100-libs-esl-Makefile.patch
new file mode 100644 (file)
index 0000000..c0034ec
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/libs/esl/Makefile
++++ b/libs/esl/Makefile
+@@ -7,7 +7,7 @@ PICKY=-O2
+ CFLAGS=$(BASE_FLAGS) $(PICKY)
+ CXXFLAGS=$(BASE_FLAGS)
+ MYLIB=libesl.a
+-LIBS=-lncurses -lesl -lpthread -lm
++LIBS=-L$(STAGING_DIR)/usr/lib -lncurses -lesl -lpthread -lm
+ LDFLAGS=-L.
+ OBJS=src/esl.o src/esl_event.o src/esl_threadmutex.o src/esl_config.o src/esl_json.o src/esl_buffer.o
+ SRC=src/esl.c src/esl_json.c src/esl_event.c src/esl_threadmutex.c src/esl_config.c src/esl_oop.cpp src/esl_json.c src/esl_buffer.c
+@@ -19,8 +19,8 @@ OBJS += src/esl_oop.o
+ all: $(MYLIB) fs_cli testclient testserver ivrd
+ $(MYLIB): $(OBJS) $(HEADERS) $(SRC)
+-      ar rcs $(MYLIB) $(OBJS)
+-      ranlib $(MYLIB)
++      $(AR) rcs $(MYLIB) $(OBJS)
++      $(RANLIB) $(MYLIB)
+ testserver: $(MYLIB) testserver.c
+       $(CC) $(CC_CFLAGS) $(CFLAGS) testserver.c -o testserver $(LDFLAGS) $(LIBS)
diff --git a/net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch b/net/freeswitch/patches/101-libs-spandsp-src-spandsp-fast_convert_h.patch
new file mode 100644 (file)
index 0000000..e2fb3da
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/spandsp/fast_convert.h
++++ b/libs/spandsp/src/spandsp/fast_convert.h
+@@ -195,7 +195,7 @@ extern "C"
+     {
+         return (long int) (x);
+     }
+-#elif defined(__ppc__)  ||   defined(__powerpc__)
++#elif 0 /* defined(__ppc__)  ||   defined(__powerpc__) */
+     static __inline__ long int lfastrint(register double x)
+     {
+         int res[2];
diff --git a/net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch b/net/freeswitch/patches/103-libs-spandsp-src-t4_rx_c.patch
new file mode 100644 (file)
index 0000000..b7057ca
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/t4_rx.c
++++ b/libs/spandsp/src/t4_rx.c
+@@ -45,7 +45,7 @@
+ #include <math.h>
+ #endif
+ #include "floating_fudge.h"
+-#include <tiffio.h>
++#include <tiffiop.h>
+ #include "spandsp/telephony.h"
+ #include "spandsp/logging.h"
diff --git a/net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch b/net/freeswitch/patches/104-libs-spandsp-src-t4_tx_c.patch
new file mode 100644 (file)
index 0000000..31264ae
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/libs/spandsp/src/t4_tx.c
++++ b/libs/spandsp/src/t4_tx.c
+@@ -45,7 +45,7 @@
+ #include <math.h>
+ #endif
+ #include "floating_fudge.h"
+-#include <tiffio.h>
++#include <tiffiop.h>
+ #include "spandsp/telephony.h"
+ #include "spandsp/logging.h"
diff --git a/net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch b/net/freeswitch/patches/105-libs-xmlrpc-c-config_mk_in.patch
new file mode 100644 (file)
index 0000000..79cb33e
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/libs/xmlrpc-c/config.mk.in
++++ b/libs/xmlrpc-c/config.mk.in
+@@ -335,8 +335,8 @@ endif
+ # The cross compiling user can update config.mk or override
+ # BUILDTOOL_CC on a make command.
+-BUILDTOOL_CC = $(CC)
+-BUILDTOOL_CCLD = $(CCLD)
++BUILDTOOL_CC = $(HOSTCC)
++BUILDTOOL_CCLD = $(HOSTCC)
+ # Here are the commands 'make install' uses to install various kinds of files:
diff --git a/net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch b/net/freeswitch/patches/106-libs-xmlrpc-c-lib-expat-gennmtab-Makefile.patch
new file mode 100644 (file)
index 0000000..d50d200
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
++++ b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
+@@ -1,3 +1,5 @@
++TOPDIR=$(shell (cd $(SRCDIR)/../../../../..; pwd))
++
+ ifeq ($(SRCDIR),)
+   updir = $(shell echo $(dir $(1)) | sed 's/.$$//')
+   EXPATDIR := $(call updir,$(CURDIR))
+@@ -7,6 +9,7 @@ ifeq ($(SRCDIR),)
+ endif
+ SUBDIR := lib/expat/gennmtab
++include $(TOPDIR)/rules.mk
+ include $(BLDDIR)/config.mk
+ LDFLAGS = $(LADD)
diff --git a/net/freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch b/net/freeswitch/patches/107-libs-libzrtp-include-zrtp_config_h.patch
new file mode 100644 (file)
index 0000000..0463885
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/libs/libzrtp/include/zrtp_config.h
++++ b/libs/libzrtp/include/zrtp_config.h
+@@ -68,8 +68,16 @@
+  * If the byte order is not specified manually in zrtp_config_user.h - try to detect it automatically
+  */
+ #if !defined(ZRTP_BYTE_ORDER)
++#if defined(linux) || defined(__linux)
+-#if defined(_i386_) || defined(i_386_) || defined(_X86_) || defined(x86) || defined(__i386__) || \
++#include <endian.h>
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++#define ZRTP_BYTE_ORDER ZBO_LITTLE_ENDIAN
++#elif __BYTE_ORDER == __BIG_ENDIAN
++#define ZRTP_BYTE_ORDER ZBO_BIG_ENDIAN
++#endif
++
++#elif defined(_i386_) || defined(i_386_) || defined(_X86_) || defined(x86) || defined(__i386__) || \
+       defined(__i386) || defined(_M_IX86) || defined(__I86__)
+ /*
+  * Generic i386 processor family, little-endian
diff --git a/net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch b/net/freeswitch/patches/200-src-include-timerfd_wrap_h.patch
new file mode 100644 (file)
index 0000000..dbf995e
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/src/include/timerfd_wrap.h
++++ b/src/include/timerfd_wrap.h
+@@ -55,20 +55,12 @@ SWITCH_BEGIN_EXTERN_C
+ #ifndef __NR_timerfd
+-#if defined(__x86_64__)
+-#define __NR_timerfd_create 283
+-#define __NR_timerfd_settime 286
+-#define __NR_timerfd_gettime 287
+-#elif defined(__i386__)
+-#define __NR_timerfd_create 322
+-#define __NR_timerfd_settime 325
+-#define __NR_timerfd_gettime 326
+-#else
+-#error invalid system
+-#endif
++#include <linux/unistd.h>
+ #endif
+-#define TFD_TIMER_ABSTIME (1 << 0)
++#ifndef TFD_TIMER_ABSTIME
++#include <sys/timerfd.h>
++#endif
+ int timerfd_create(int clockid, int flags) 
+ {
diff --git a/net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch b/net/freeswitch/patches/202-src-mod-codecs-mod_opus-Makefile.patch
new file mode 100644 (file)
index 0000000..cdf710a
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/src/mod/codecs/mod_opus/Makefile
++++ b/src/mod/codecs/mod_opus/Makefile
+@@ -12,12 +12,13 @@ OPUS_LA=$(OPUS_BUILDDIR)/.libs/libopus.l
+ LOCAL_LIBADD=$(OPUS_LA)
+ include $(BASE)/build/modmake.rules
++include $(BASE)/build/openwrt_rules.mk
+ $(OPUS_DIR):
+       $(GETLIB) $(OPUS).tar.gz
+ $(OPUS_DIR)/Makefile: $(OPUS_DIR)
+-      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --disable-shared --with-pic --srcdir=$(OPUS_DIR)
++      cd $(OPUS_BUILDDIR) && $(DEFAULT_VARS) $(OPUS_DIR)/configure --host=$(GNU_TARGET_NAME) --disable-shared --with-pic --srcdir=$(OPUS_DIR)
+       $(TOUCH_TARGET)
+ $(OPUS_LA): $(OPUS_DIR)/Makefile
diff --git a/net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch b/net/freeswitch/patches/203-src-mod-codecs-mod_silk-Makefile.patch
new file mode 100644 (file)
index 0000000..1d4341e
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/src/mod/codecs/mod_silk/Makefile
++++ b/src/mod/codecs/mod_silk/Makefile
+@@ -1,4 +1,5 @@
+ BASE=../../../..
++include $(BASE)/build/openwrt_rules.mk
+ SILK_DIR=$(switch_srcdir)/libs/silk
+ SILK_BUILDDIR=$(switch_builddir)/libs/silk
+ LOCAL_CFLAGS=-I$(SILK_DIR)/src  -I$(SILK_DIR)/interface
+@@ -8,5 +9,5 @@ LOCAL_OBJS=$(BASE)/libs/stfu/stfu.o
+ include $(BASE)/build/modmake.rules
+ $(SILK_LA): $(SILK_DIR)/.update       
+-      cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
++      cd $(SILK_BUILDDIR) && ./configure --host=$(GNU_TARGET_NAME) --disable-shared && make clean && $(MAKE)
+       $(TOUCH_TARGET)
diff --git a/net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch b/net/freeswitch/patches/204-src-mod-directories-mod_ldap-Makefile.patch
new file mode 100644 (file)
index 0000000..92741d1
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/mod/directories/mod_ldap/Makefile
++++ b/src/mod/directories/mod_ldap/Makefile
+@@ -21,7 +21,7 @@ $(LDAP_DIR):
+ $(LDAP_BUILDDIR)/Makefile: $(LDAP_DIR)
+       mkdir -p $(LDAP_BUILDDIR)
+-      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR)
++      cd $(LDAP_BUILDDIR) && $(DEFAULT_VARS) $(LDAP_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(LDAP_DIR) --with-yielding_select=yes
+       $(TOUCH_TARGET)
+ $(LDAPLA) $(LIBLBERLA): $(LDAP_BUILDDIR)/Makefile
diff --git a/net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch b/net/freeswitch/patches/205-src-mod-endpoints-mod_gsmopen-Makefile.patch
new file mode 100644 (file)
index 0000000..3b24669
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/mod/endpoints/mod_gsmopen/Makefile
++++ b/src/mod/endpoints/mod_gsmopen/Makefile
+@@ -1,5 +1,15 @@
++BASE=../../../..
+ MODNAME=mod_gsmopen
+-LOCAL_CFLAGS += -I../../../../libs/spandsp/src -I../../../..//libs/tiff-4.0.2/libtiff -DGSMOPEN_C_VER=\"`git log -1 --format="%h" gsmopen_protocol.cpp`\" -DMODGSMOPEN_C_VER=\"`git log -1 --format="%h" mod_gsmopen.cpp`\"
+-LOCAL_LDFLAGS=-L../../../../libs/spandsp/src -lspandsp -lctb-0.16 -lgsmme
++SVNDEF := -D'GSMOPEN_SVN_VERSION="$(shell svnversion -n .)"'
++
++TIFF_DIR="$(shell ls -d $(switch_srcdir)/libs/tiff*)"
++TIFF_BUILDDIR=$(TIFF_DIR)
++TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
++
++SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
++SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp
++SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la
++LOCAL_CFLAGS += $(SVNDEF) -I$(BASE)/libs/spandsp/src -I$(TIFF_DIR)/libtiff -I$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/include -fpermissive
++LOCAL_LDFLAGS=-L$(BASE)/libs/spandsp/src -lspandsp -L$(BASE)/src/mod/endpoints/mod_gsmopen/libctb-0.16/lib -lctb-0.16
+ LOCAL_OBJS=gsmopen_protocol.o
+ include ../../../../build/modmake.rules
diff --git a/net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch b/net/freeswitch/patches/206-src-mod-event_handlers-mod_snmp-Makefile.patch
new file mode 100644 (file)
index 0000000..c85f62c
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/src/mod/event_handlers/mod_snmp/Makefile
++++ b/src/mod/event_handlers/mod_snmp/Makefile
+@@ -1,7 +1,10 @@
+-include ../../../../build/modmake.rules
++BASE=../../../..
++
++include $(BASE)/build/modmake.rules
++include $(BASE)/build/openwrt_rules.mk
++
++LOCAL_CFLAGS=$(shell $(STAGING_DIR)/host/bin/net-snmp-config --cflags --agent-libs) -DNETSNMP_NO_INLINE
+-LOCAL_CFLAGS=`net-snmp-config --cflags`
+-LOCAL_LDFLAGS=`net-snmp-config --agent-libs`
+ LOCAL_OBJS=subagent.o
+ local_depend: $(LOCAL_OBJS)
diff --git a/net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch b/net/freeswitch/patches/207-src-mod-xml_int-mod_xml_ldap-Makefile.patch
new file mode 100644 (file)
index 0000000..0734887
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/mod/xml_int/mod_xml_ldap/Makefile
++++ b/src/mod/xml_int/mod_xml_ldap/Makefile
+@@ -14,7 +14,7 @@ LOCAL_LIBADD=$(LDAPLA) $(LIBLBERLA) $(LI
+ include $(BASE)/build/modmake.rules
+-DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb
++DEFAULT_ARGS+= --disable-slapd --disable-slurpd --disable-relay --disable-bdb --disable-hdb --with-yielding_select=yes
+ $(LDAP_DIR):
+       $(GETLIB) $(LDAP).tar.gz
diff --git a/net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch b/net/freeswitch/patches/208-src-mod-xml_int-mod_xml_rpc-Makefile.patch
new file mode 100644 (file)
index 0000000..7691d3e
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/mod/xml_int/mod_xml_rpc/Makefile
++++ b/src/mod/xml_int/mod_xml_rpc/Makefile
+@@ -14,7 +14,6 @@ $(XMLRPC_DIR)/lib/abyss/src/date.o\
+ $(XMLRPC_DIR)/src/double.o\
+ $(XMLRPC_DIR)/lib/libutil/error.o\
+ $(XMLRPC_DIR)/lib/abyss/src/file.o\
+-$(XMLRPC_DIR)/lib/expat/gennmtab/gennmtab.o\
+ $(XMLRPC_DIR)/lib/util/getoptx.o\
+ $(XMLRPC_DIR)/lib/abyss/src/handler.o\
+ $(XMLRPC_DIR)/lib/abyss/src/http.o\
diff --git a/net/freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch b/net/freeswitch/patches/209-src-mod-codecs-mod_isac-typedefs_h.patch
new file mode 100644 (file)
index 0000000..84de2af
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/mod/codecs/mod_isac/typedefs.h
++++ b/src/mod/codecs/mod_isac/typedefs.h
+@@ -66,7 +66,7 @@
+ #define WEBRTC_ARCH_X86
+ #define WEBRTC_ARCH_32_BITS
+ #define WEBRTC_ARCH_LITTLE_ENDIAN
+-#elif defined(__ARMEL__)
++#elif defined(__ARMEL__) || defined(__mips__)
+ // TODO(andrew): We'd prefer to control platform defines here, but this is
+ // currently provided by the Android makefiles. Commented to avoid duplicate
+ // definition warnings.
diff --git a/net/freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch b/net/freeswitch/patches/210-src-mod-endpoints-mod_dingaling-Makefile.patch
new file mode 100644 (file)
index 0000000..0b56586
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/src/mod/endpoints/mod_dingaling/Makefile
++++ b/src/mod/endpoints/mod_dingaling/Makefile
+@@ -10,7 +10,6 @@ DING_DIR=$(BASE)/libs/libdingaling
+ LOCAL_CFLAGS += -I$(DING_DIR)/src -I$(BASE)/libs/iksemel/include
+ LOCAL_OBJS=$(DING_DIR)/src/libdingaling.o $(DING_DIR)/src/sha1.o $(IKS_LA)
+ LOCAL_SOURCES=$(DING_DIR)/src/libdingaling.c $(DING_DIR)/src/sha1.c $(DING_DIR)/src/libdingaling.h
+-LOCAL_LDFLAGS=$(LIBGNUTLS_LIBS)
+ include $(BASE)/build/modmake.rules
diff --git a/net/kamailio-1.5.x/Makefile b/net/kamailio-1.5.x/Makefile
new file mode 100644 (file)
index 0000000..b89dbb0
--- /dev/null
@@ -0,0 +1,268 @@
+#
+# Copyright (C) 2009 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:=kamailio
+PKG_VERSION:=1.5.2
+PKG_RELEASE:=1
+PKG_VARIANT:=-tls
+
+PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/1.5.2/src/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
+PKG_MD5SUM:=26b0d0d3c67c2d981bee86a803cca51f
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)
+
+PKG_BUILD_DEPENDS:=curl expat libxml2 mysql openldap openssl pcre postgresql radiusclient-ng
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+
+define Package/kamailio/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.kamailio.org/
+endef
+
+
+define Package/kamailio
+$(call Package/kamailio/Default)
+  TITLE:=Mature and flexible open source SIP server, v1.5.x
+  MENU:=1
+endef
+
+define Package/kamailio-example
+$(call Package/kamailio/Default)
+  TITLE:=Kamailio example config
+  DEPENDS:=kamailio \
+       +kamailio-mod-acc \
+       +kamailio-mod-maxfwd \
+       +kamailio-mod-mi-fifo \
+       +kamailio-mod-pv \
+       +kamailio-mod-registrar \
+       +kamailio-mod-rr \
+       +kamailio-mod-sl \
+       +kamailio-mod-siputils \
+       +kamailio-mod-textops \
+       +kamailio-mod-tm \
+       +kamailio-mod-uri-db \
+       +kamailio-mod-usrloc \
+       +kamailio-mod-xlog
+endef
+
+define Package/kamailio-example/conffiles
+/etc/default/kamailio
+/etc/kamailio/kamailio.cfg
+endef
+
+
+define Package/kamailio-tools
+$(call Package/kamailio/Default)
+  TITLE:=Kamailio control tools
+  DEPENDS:=kamailio
+endef
+
+define Package/kamailio-tools/conffiles
+/etc/kamailio/kamctlrc
+endef
+
+
+PKG_EXCL_MODULES:= \
+       auth_diameter \
+       carrierroute \
+       db_berkeley \
+       db_oracle \
+       db_unixodbc \
+       mediaproxy \
+       mi_xmlrpc \
+       osp \
+       perl \
+       perlvdb \
+       purple \
+       snmpstats \
+
+PKG_MAKE_ARGS:= \
+       cfg-dir="etc/kamailio/" \
+       bin-dir="usr/sbin/" \
+       data-dir="var/lib/kamailio/" \
+       lib-dir="usr/lib/kamailio/" \
+       modules-dir="usr/lib/kamailio/modules/" \
+       exclude_modules="$(PKG_EXCL_MODULES)" \
+
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               prefix=/ \
+               extra_defs="-DUSE_PTHREAD_MUTEX "  \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               ISSMP="no" \
+               LOCALBASE="$(STAGING_DIR)/usr" \
+               SYSBASE="$(STAGING_DIR)/usr" \
+               PCREDEFS:="$(TARGET_CPPFLAGS)" \
+               PCRELIBS:="$(TARGET_LDFLAGS)" \
+               CROSS_COMPILE=1 \
+               all
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               install
+endef
+
+define Package/kamailio/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/kamailio \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
+endef
+
+define Package/kamailio-example/install
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/etc/kamailio/kamailio.cfg \
+               $(1)/etc/kamailio/
+       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
+               $(1)/etc/kamailio/kamailio.cfg
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DATA) ./files/kamailio.default $(1)/etc/default/kamailio
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/kamailio.init $(1)/etc/init.d/kamailio
+endef
+
+define Package/kamailio-tools/install
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/etc/kamailio/kamctlrc \
+               $(1)/etc/kamailio/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl,unix} \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
+               $(1)/usr/lib/kamailio/
+       $(SED) 's,/bin/bash,/bin/sh,g' \
+               -e 's,$(PKG_INSTALL_DIR),,g' \
+               $(1)/usr/sbin/kam{ctl,dbctl}
+endef
+
+define BuildPlugin
+  define Package/kamailio-mod-$(1)
+    $$(call Package/kamailio/Default)
+    TITLE:= kamailio $(3) module
+    DEPENDS:=kamailio $$(foreach m,$(4),+kamailio-mod-$$m) $(5)
+  endef
+
+  define Package/kamailio-mod-$(1)/install
+       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/kamailio/modules/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so \
+                       $$(1)/usr/lib/kamailio/modules/ ;
+  endef
+
+  $$(eval $$(call BuildPackage,kamailio-mod-$(1)))
+endef
+
+$(eval $(call BuildPackage,kamailio))
+$(eval $(call BuildPackage,kamailio-example))
+$(eval $(call BuildPackage,kamailio-tools))
+$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
+$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,,))
+$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,))
+$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth,))
+#$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,))
+$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
+$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
+$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
+#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse))
+$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
+$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2))
+#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,))
+$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
+$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
+#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,))
+$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
+$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
+#$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,))
+$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
+$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre))
+$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
+$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
+$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
+$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
+$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
+$(eval $(call BuildPlugin,exec,exec,External exec,,))
+$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
+$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
+$(eval $(call BuildPlugin,htable,htable,Hash Table,,))
+$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
+$(eval $(call BuildPlugin,jabber,jabber,Jabber,tm,+libexpat))
+$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre))
+$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
+$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
+$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
+$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
+#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c))
+#$(eval $(call BuildPlugin,mediaproxy,mediaproxy,NAT traversal,,+mediaproxy))
+$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
+$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
+$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
+#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp))
+$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
+$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
+$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
+#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl))
+#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,))
+$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
+$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
+$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2))
+$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
+$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
+$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
+$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
+$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
+$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
+$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
+$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
+$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
+#$(eval $(call BuildPlugin,purple,purple,Multi-protocol IM gateway,presence pua,+libpurple))
+$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,))
+$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
+$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
+$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
+$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,))
+$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2))
+$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
+$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,))
+$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,))
+#$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,))
+$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
+$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,))
+$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
+$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
+#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp))
+$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
+$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,))
+$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
+$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
+$(eval $(call BuildPlugin,textops,textops,Text operations,,))
+$(eval $(call BuildPlugin,tlsops,tlsops,TLS operations,,+libopenssl))
+$(eval $(call BuildPlugin,tm,tm,Transaction,,))
+$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
+$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
+$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
+$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
+$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
+$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl))
+$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl))
+$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
+$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
diff --git a/net/kamailio-1.5.x/files/kamailio.default b/net/kamailio-1.5.x/files/kamailio.default
new file mode 100644 (file)
index 0000000..a61617b
--- /dev/null
@@ -0,0 +1,13 @@
+# OPTIONS
+# -n COUNT
+# Specifies the number of children processes forked per interface
+# -N COUNT
+# Specifies the number of children processes forked to handle tcp incoming connections
+# -m SIZE
+# Size of the shared memory which will be allocated (in Megabytes).
+# -u UID
+# Changes the user id under which 
+# -g GID
+# Changes the group id under which 
+
+OPTIONS="-n 4 -m 4 - m 8"
diff --git a/net/kamailio-1.5.x/files/kamailio.init b/net/kamailio-1.5.x/files/kamailio.init
new file mode 100755 (executable)
index 0000000..1f42a9e
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009 OpenWrt.org
+START=50
+
+BIN=kamailio
+DEFAULT=/etc/default/$BIN
+RUN_D=/var/run
+PID_F=$RUN_D/$BIN.pid
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       mkdir -p $RUN_D
+       $BIN -P $PID_F $OPTIONS >/dev/null 2>&1
+}
+
+stop() {
+       [ -f $PID_F ] && kill $(cat $PID_F)
+}
+
diff --git a/net/kamailio-1.5.x/patches/005-config_h.patch b/net/kamailio-1.5.x/patches/005-config_h.patch
new file mode 100644 (file)
index 0000000..a641b3a
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/config.h
++++ b/config.h
+@@ -48,7 +48,7 @@
+ #define MAX_LISTEN 16         /*!< maximum number of addresses on which we will listen */
+-#define CHILD_NO    8         /*!< default number of child processes started */
++#define CHILD_NO    4         /*!< default number of child processes started */
+ #ifndef RT_NO
+ #define RT_NO 80              /*!< routing tables number */
+@@ -119,7 +119,7 @@
+ #define PKG_MEM_POOL_SIZE 4*1024*1024         /*!< Used only if PKG_MALLOC is defined*/
+ #endif
+-#define SHM_MEM_SIZE 32                               /*!< Used if SH_MEM is defined*/
++#define SHM_MEM_SIZE 8                                /*!< Used if SH_MEM is defined*/
+ #define TIMER_TICK   1                        /*!< one second */
+ #define UTIMER_TICK  100*1000                 /*!< 100 miliseconds*/
diff --git a/net/kamailio-1.5.x/patches/007-modules_build.patch b/net/kamailio-1.5.x/patches/007-modules_build.patch
new file mode 100644 (file)
index 0000000..3fac163
--- /dev/null
@@ -0,0 +1,137 @@
+--- a/modules/carrierroute/Makefile
++++ b/modules/carrierroute/Makefile
+@@ -12,10 +12,8 @@ NAME=carrierroute.so
+ BUILDER = $(shell which confuse-config)
+ ifeq ($(BUILDER),)
+-      CONFUSEDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
+-              -I/usr/sfw/include
+-      CONFUSELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
+-              -L/opt/lib -lconfuse
++      CONFUSEDEFS=-I$(LOCALBASE)/include
++      CONFUSELIBS=-L$(LOCALBASE)/lib
+ else
+               CONFUSEDEFS = $(shell confuse-config --cflags)
+               CONFUSELIBS = $(shell confuse-config --libs)
+--- a/modules/h350/Makefile
++++ b/modules/h350/Makefile
+@@ -9,7 +9,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=h350.so
+-LIBS=
++
+ DEFS+=-I$(LOCALBASE)/include
++LIBS=-L$(LOCALBASE)/lib -lldap
+ include ../../Makefile.modules
+--- a/modules/ldap/Makefile
++++ b/modules/ldap/Makefile
+@@ -12,8 +12,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=ldap.so
+-LIBS=-L$(LOCALBASE)/lib -lldap
+ DEFS+=-I$(LOCALBASE)/include
++LIBS=-L$(LOCALBASE)/lib -lldap
+ ifeq ($(OS),solaris)
+        DEFS+=-I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/include -I/opt/sfw/include -I/opt/csw/include
+--- a/modules/pua_bla/Makefile
++++ b/modules/pua_bla/Makefile
+@@ -9,8 +9,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=pua_bla.so
+ LIBS=
+-DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
+-LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
++DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
++LIBS+=-L$(LOCALBASE)/lib -lxml2
+ include ../../Makefile.modules
+--- a/modules/pua_xmpp/Makefile
++++ b/modules/pua_xmpp/Makefile
+@@ -10,7 +10,7 @@ auto_gen=
+ NAME= pua_xmpp.so
+ LIBS=
+-DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
+-LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
++DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
++LIBS+=-L$(LOCALBASE)/lib -lxml2
+ include ../../Makefile.modules
+--- a/modules/regex/Makefile
++++ b/modules/regex/Makefile
+@@ -7,10 +7,8 @@ NAME=regex.so
+ BUILDER = $(shell which pcre-config)
+ ifeq ($(BUILDER),)
+-      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
+-      -I/usr/sfw/include
+-      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
+-      -L/opt/lib -lpcre
++      PCREDEFS=-I$(LOCALBASE)/include 
++      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+ else
+       PCREDEFS = $(shell pcre-config --cflags)
+       PCRELIBS = $(shell pcre-config --libs)
+--- a/modules/tlsops/Makefile
++++ b/modules/tlsops/Makefile
+@@ -7,8 +7,8 @@ auto_gen=
+ NAME=tlsops.so
+ LIBS=
+-DEFS+= -I$(LOCALBASE)/ssl/include
+-LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl  -lcrypto
++DEFS+= -I$(LOCALBASE)/include
++LIBS+= -L$(LOCALBASE)/lib -lssl  -lcrypto
+ include ../../Makefile.modules
+--- a/modules/dialplan/Makefile
++++ b/modules/dialplan/Makefile
+@@ -9,10 +9,8 @@ NAME=dialplan.so
+ BUILDER = $(shell which pcre-config)
+ ifeq ($(BUILDER),)
+-      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
+-      -I/usr/sfw/include
+-      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
+-      -L/opt/lib -lpcre
++      PCREDEFS=-I$(LOCALBASE)/include
++      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+ else
+       PCREDEFS = $(shell pcre-config --cflags)
+       PCRELIBS = $(shell pcre-config --libs)
+--- a/modules/lcr/Makefile
++++ b/modules/lcr/Makefile
+@@ -11,10 +11,8 @@ NAME=lcr.so
+ BUILDER = $(shell which pcre-config)
+ ifeq ($(BUILDER),)
+-      PCREDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
+-      -I/usr/sfw/include
+-      PCRELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
+-      -L/opt/lib -lpcre
++      PCREDEFS=-I$(LOCALBASE)/include
++      PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+ else
+       PCREDEFS = $(shell pcre-config --cflags)
+       PCRELIBS = $(shell pcre-config --libs)
+--- a/modules/purple/Makefile
++++ b/modules/purple/Makefile
+@@ -3,9 +3,9 @@ auto_gen=
+ NAME=purple.so
+ LIBS= 
+-DEFS+=-I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 \
+-              -I/usr/include/libxml2
+-LIBS+=-lglib-2.0 -lpurple -lxml2
++DEFS+=-I$(LOCALBASE)/include/glib-2.0/include -I$(LOCALBASE)/include/glib-2.0 \
++              -I$(LOCALBASE)/incldue/libxml2
++LIBS+=-L$(LOCALBASE)/lib -lglib-2.0 -lpurple -lxml2
+ include ../../Makefile.modules
diff --git a/net/kamailio-3.3.x/Makefile b/net/kamailio-3.3.x/Makefile
new file mode 100644 (file)
index 0000000..d5fda52
--- /dev/null
@@ -0,0 +1,285 @@
+#
+# Copyright (C) 2013 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:=kamailio3
+PKG_VERSION:=3.3.4
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src/
+PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
+PKG_MD5SUM:=24d6a0c852d49791f7e0d0694e128d43
+
+INCL_MODULES:=
+KAM_MODULES:=
+
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+PREBUILT_STAMP=$(STAGING_DIR)/stamp/.$(PKG_NAME)_prebuilt
+TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
+
+define Package/kamailio3/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.kamailio.org/
+  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
+  DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline
+endef
+
+define Package/kamailio3
+$(call Package/kamailio3/Default)
+  TITLE:=Mature and flexible open source SIP server, v3.3.x
+  MENU:=1
+endef
+
+define Package/kamailio3-example
+$(call Package/kamailio3/Default)
+  TITLE:=Kamailio3 example config
+  DEPENDS:=kamailio3 \
+       +kamailio3-mod-acc \
+       +kamailio3-mod-maxfwd \
+       +kamailio3-mod-mi-fifo \
+       +kamailio3-mod-pv \
+       +kamailio3-mod-registrar \
+       +kamailio3-mod-rr \
+       +kamailio3-mod-sl \
+       +kamailio3-mod-siputils \
+       +kamailio3-mod-textops \
+       +kamailio3-mod-tm \
+       +kamailio3-mod-uri-db \
+       +kamailio3-mod-usrloc \
+       +kamailio3-mod-xlog
+endef
+
+define Package/kamailio3-example/conffiles
+/etc/default/kamailio
+/etc/kamailio/kamailio.cfg
+endef
+
+define Package/kamailio3-tools
+$(call Package/kamailio3/Default)
+  TITLE:=Kamailio3 control tools
+  DEPENDS:=kamailio3 +bash
+endef
+
+define Package/kamailio3-tools/conffiles
+/etc/kamailio/kamctlrc
+endef
+
+define Package/kamailio3/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/kamailio \
+               $(1)/usr/sbin/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/sercmd \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules_k
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules_s
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib*.so* \
+               $(1)/usr/lib/kamailio/
+endef
+
+define Package/kamailio3-example/install
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/etc/kamailio/kamailio.cfg \
+               $(1)/etc/kamailio/
+       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
+               $(1)/etc/kamailio/kamailio.cfg
+       $(SED) 's,//lib/kamailio,/usr/lib/kamailio,g' \
+               $(1)/etc/kamailio/kamailio.cfg
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DATA) ./files/kamailio.default $(1)/etc/default/kamailio
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/kamailio.init $(1)/etc/init.d/kamailio
+endef
+
+define Package/kamailio3-tools/install
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_BUILD_DIR)/utils/kamctl/kamctlrc \
+               $(1)/etc/kamailio/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl} \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
+               $(1)/usr/lib/kamailio/
+endef
+
+define BuildPlugin
+  define Package/kamailio3-mod-$(1)
+    $$(call Package/kamailio3/Default)
+    TITLE:= kamailio3 $(3) module
+    DEPENDS:=kamailio3 $$(foreach m,$(4),+kamailio3-mod-$$m) $(5)
+  endef
+
+  define Package/kamailio3-mod-$(1)/install
+       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/kamailio/$(6)
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/$(6)/$(2).so \
+                       $$(1)/usr/lib/kamailio/$(6)/ ;
+  endef
+
+  INCL_MODULES+=$(2)
+  KAM_MODULES+=kamailio3-mod-$(1)
+endef
+
+$(eval $(call BuildPlugin,acc,acc,Accounting,tm,,modules_k))
+$(eval $(call BuildPlugin,acc-radius,acc_radius,Accounting for RADIUS backend,acc,+libradiusclient-ng,modules_k))
+$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,db-sqlite,,modules_k))
+$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,,modules))
+$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth db-sqlite,,modules_k))
+#$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,,modules_k))
+$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng,modules_k))
+$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,,modules))
+$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,,modules_k))
+#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse,modules))
+$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,,modules_k))
+$(eval $(call BuildPlugin,cfg-db,cfg_db,Load core and module parameters from database,db-sqlite,,modules))
+$(eval $(call BuildPlugin,cfg-rpc,cfg_rpc,Update core and module parameters at runtime via RPC interface,,,modules))
+#$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2,modules_k))
+$(eval $(call BuildPlugin,ctl,ctl,BINRPC transport interface,,,modules))
+#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,,modules))
+$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,,modules))
+$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient,modules))
+#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,,modules_k))
+#$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq,modules))
+$(eval $(call BuildPlugin,db-sqlite,db_sqlite,Sqlite DB support,,+libsqlite3,modules_k))
+$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,,modules_k))
+$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,+unixodbc,modules_k))
+$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,,modules_k))
+$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre,modules))
+$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,,modules_s))
+$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,,modules_s))
+$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,,modules_k))
+$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,,modules_k))
+$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,,modules))
+$(eval $(call BuildPlugin,exec,exec,External exec,,,modules_k))
+$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,,modules_k))
+$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap,modules_k))
+$(eval $(call BuildPlugin,htable,htable,Hash Table,,,modules_k))
+$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,,modules_k))
+$(eval $(call BuildPlugin,ipops,ipops,IP and IPv6 operations module,,,modules))
+$(eval $(call BuildPlugin,kex,kex,Core extensions,,,modules_k))
+$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre,modules))
+$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap,modules_k))
+$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,,modules_k))
+$(eval $(call BuildPlugin,mediaproxy,mediaproxy,Automatic NAT traversal,dialog,,modules))
+$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,,modules_k))
+$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,,modules_k))
+#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c,modules_k))
+$(eval $(call BuildPlugin,mi-rpc,mi_rpc,RPC support for Management Interface,,,modules))
+$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng,modules_k))
+$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,,modules_k))
+$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,,modules_k))
+$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy,modules_k))
+#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp,modules_k))
+$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,,modules_k))
+$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,,modules_k))
+$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng,modules))
+#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl,modules_k))
+#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,,modules_k))
+$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,,modules_k))
+$(eval $(call BuildPlugin,pike,pike,Flood detector,,,modules_k))
+$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2,modules_k))
+$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,,modules_k))
+$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,,modules_k))
+$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,,modules_k))
+$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2,modules_k))
+$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,,modules_k))
+$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,,modules_k))
+$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,,modules_k))
+$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,,modules_k))
+$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,,modules_k))
+#$(eval $(call BuildPlugin,purple,purple,Multi-protocol IM gateway,presence pua,+libpurple,modules_k))
+$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,,modules_k))
+$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,,modules_k))
+$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,,modules))
+$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre,modules_k))
+$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,,modules_k))
+$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2,modules_k))
+$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,,modules_k))
+$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,,modules_k))
+$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,,modules))
+#$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,,modules_k))
+$(eval $(call BuildPlugin,sipcapture,sipcapture,SIP capture module,,,modules))
+$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,,modules_k))
+$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,,modules_k))
+$(eval $(call BuildPlugin,sl,sl,Stateless replier,,,modules))
+$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,,modules))
+#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp,modules_k))
+$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,,modules_k))
+$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,,modules_k))
+$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,,modules_k))
+$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,,modules_k))
+$(eval $(call BuildPlugin,textops,textops,Text operations,,,modules_k))
+$(eval $(call BuildPlugin,tls,tls,TLS operations,,+libopenssl,modules))
+$(eval $(call BuildPlugin,tm,tm,Transaction,,,modules))
+$(eval $(call BuildPlugin,tmx,tmx,Transaction module extensions,,,modules_k))
+$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,,modules_k))
+$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,,modules_k))
+$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,,modules_k))
+$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,,modules_k))
+$(eval $(call BuildPlugin,usrloc,usrloc,User location,,,modules_k))
+$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl +libxml2,modules))
+$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl,modules_k))
+$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,,modules_k))
+$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat,modules_k))
+
+PKG_MAKE_ARGS:= \
+       cfg-dir="/etc/kamailio/" \
+       bin-dir="/usr/sbin/" \
+       data-dir="/var/lib/kamailio/" \
+       lib-dir="/usr/lib/kamailio/" \
+       modules-dir="/usr/lib/kamailio/modules/" \
+       include_modules="$(INCL_MODULES)" \
+       $(KAM3_EXTRA_ARGS) \
+       TLS_HOOKS=1 extra_defs="-DUSE_PTHREAD_MUTEX " \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       ISSMP="no" \
+       LOCALBASE="$(STAGING_DIR)/usr" \
+       SYSBASE="$(STAGING_DIR)/usr" \
+       PCREDEFS:="$(TARGET_CPPFLAGS)" \
+       PCRELIBS:="$(TARGET_LDFLAGS)" \
+       cfg_target:=/etc/kamailio/ \
+       PREFIX:=/usr \
+       prefix:=/usr quiet=verbose
+
+define Build/Compile
+       if ! [ -f $(PREBUILT_STAMP) ]; then echo $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               EXTRA_LIBS=-L$(STAGING_DIR)/usr/lib/ \
+               all && touch $(PREBUILT_STAMP); \
+       fi
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               DESTDIR=$(PKG_INSTALL_DIR) \
+               prefix=/ \
+               install-cfg
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               DESTDIR=$(PKG_INSTALL_DIR) \
+               prefix=/usr \
+               install-bin install-modules-all install-utils
+endef
+
+$(eval $(call BuildPackage,kamailio3))
+$(eval $(call BuildPackage,kamailio3-example))
+$(eval $(call BuildPackage,kamailio3-tools))
+$(foreach m,$(KAM_MODULES),$(eval $(call BuildPackage,$(m))))
diff --git a/net/kamailio-3.3.x/files/kamailio.default b/net/kamailio-3.3.x/files/kamailio.default
new file mode 100644 (file)
index 0000000..a61617b
--- /dev/null
@@ -0,0 +1,13 @@
+# OPTIONS
+# -n COUNT
+# Specifies the number of children processes forked per interface
+# -N COUNT
+# Specifies the number of children processes forked to handle tcp incoming connections
+# -m SIZE
+# Size of the shared memory which will be allocated (in Megabytes).
+# -u UID
+# Changes the user id under which 
+# -g GID
+# Changes the group id under which 
+
+OPTIONS="-n 4 -m 4 - m 8"
diff --git a/net/kamailio-3.3.x/files/kamailio.init b/net/kamailio-3.3.x/files/kamailio.init
new file mode 100644 (file)
index 0000000..5a382ae
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2012 OpenWrt.org
+START=99 
+APP=kamailio
+BIN_FILE="/usr/sbin/"$APP
+PID_FILE="/var/run/"$APP".pid"
+
+start() {
+       start-stop-daemon -S -x $BIN_FILE -p $PID_FILE -b -m
+}
+
+stop() {
+       start-stop-daemon -K -x $BIN_FILE -p $PID_FILE -q
+       rm -rf $PID_FILE
+}
diff --git a/net/kamailio-3.3.x/patches/100-cross_compile.patch b/net/kamailio-3.3.x/patches/100-cross_compile.patch
new file mode 100644 (file)
index 0000000..963a607
--- /dev/null
@@ -0,0 +1,13 @@
+Index: kamailio3-3.3.0/modules_s/ldap/Makefile
+===================================================================
+--- kamailio3-3.3.0.orig/modules_s/ldap/Makefile       2012-08-14 17:14:01.000000000 +0200
++++ kamailio3-3.3.0/modules_s/ldap/Makefile    2012-08-14 17:14:12.000000000 +0200
+@@ -14,7 +14,7 @@
+ # LD_SCOPE_CHILDREN defined
+ #DEFS += -DHAVE_SCOPE_CHILDREN
+-LIBS=-L$(LOCALBASE)/lib -L /usr/lib -lldap
++LIBS=-L$(LOCALBASE)/lib -lldap
+ DEFS+=-DSER_MOD_INTERFACE
diff --git a/net/kamailio-4.0.x/Makefile b/net/kamailio-4.0.x/Makefile
new file mode 100644 (file)
index 0000000..a0a560a
--- /dev/null
@@ -0,0 +1,252 @@
+#
+# Copyright (C) 2013 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:=kamailio4
+PKG_VERSION:=4.0.2
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src/
+PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
+PKG_MD5SUM:=012f1a0f288434549ad54ea2c5c3fa7a
+
+INCL_MODULES:=
+KAM_MODULES:=
+
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+PREBUILT_STAMP=$(STAGING_DIR)/stamp/.$(PKG_NAME)_prebuilt
+TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
+
+define Package/kamailio4/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.kamailio.org/
+  MAINTAINER:=Jiri Slachta <slachta@cesnet.cz>
+  DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline +libxml2
+endef
+
+define Package/kamailio4
+$(call Package/kamailio4/Default)
+  TITLE:=Mature and flexible open source SIP server, v4.0.x
+  MENU:=1
+endef
+
+define Package/kamailio4/conffiles
+/etc/default/kamailio
+/etc/kamailio/kamailio.cfg
+/etc/kamailio/kamailio-advanced.cfg
+/etc/kamailio/dictionary.kamailio
+/etc/kamailio/tls.cfg
+endef
+
+define Package/kamailio4-tools
+$(call Package/kamailio4/Default)
+  TITLE:=Kamailio4 control tools
+  DEPENDS:=kamailio4 +bash
+endef
+
+define Package/kamailio4-tools/conffiles
+/etc/kamailio/kamctlrc
+endef
+
+define Package/kamailio4/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/sbin/{kamailio,kamcmd} \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib*.so* \
+               $(1)/usr/lib/kamailio/
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/etc/kamailio/*{kamailio,tls}* \
+               $(1)/etc/kamailio/
+       $(INSTALL_DIR) $(1)/etc/default
+       $(CP) \
+               ./files/kamailio.default \
+               $(1)/etc/default/kamailio
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) \
+               ./files/kamailio.init \
+               $(1)/etc/init.d/kamailio        
+endef
+
+define Package/kamailio4-tools/install
+       $(INSTALL_DIR) $(1)/etc/kamailio
+       $(CP) \
+               $(PKG_BUILD_DIR)/utils/kamctl/kamctlrc \
+               $(1)/etc/kamailio/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/kam{ctl,dbctl} \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/kamailio
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
+               $(1)/usr/lib/kamailio/
+endef
+
+define BuildPlugin
+  define Package/kamailio4-mod-$(1)
+    $$(call Package/kamailio4/Default)
+    TITLE:= kamailio4 $(3) module
+    DEPENDS:=kamailio4 $$(foreach m,$(4),+kamailio4-mod-$$m) $(5)
+  endef
+
+  define Package/kamailio4-mod-$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/lib/kamailio/modules
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so \
+                       $$(1)/usr/lib/kamailio/modules/ ;
+  endef
+
+  INCL_MODULES+=$(2)
+  KAM_MODULES+=kamailio4-mod-$(1)
+endef
+
+$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
+$(eval $(call BuildPlugin,acc-radius,acc_radius,Accounting for RADIUS backend,acc,+libradiusclient-ng))
+$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,db-sqlite,))
+$(eval $(call BuildPlugin,auth,auth,Authentication Framework,,))
+$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth db-sqlite,))
+$(eval $(call BuildPlugin,auth-diameter,auth_diameter,Diameter-backend authentication,sl,))
+$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
+$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
+$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
+$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
+$(eval $(call BuildPlugin,cfg-db,cfg_db,Load core and module parameters from database,db-sqlite,))
+$(eval $(call BuildPlugin,cfg-rpc,cfg_rpc,Update core and module parameters at runtime via RPC interface,,))
+$(eval $(call BuildPlugin,corex,corex,Legacy functions,,))
+$(eval $(call BuildPlugin,ctl,ctl,BINRPC transport interface,,))
+$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
+$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
+$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
+$(eval $(call BuildPlugin,db-sqlite,db_sqlite,Sqlite DB support,,+libsqlite3))
+$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
+$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,+unixodbc))
+$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
+$(eval $(call BuildPlugin,dialog_ng,dialog,Dialog support,rr tm,))
+$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,+libpcre))
+$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
+$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
+$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
+$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
+$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
+$(eval $(call BuildPlugin,exec,exec,External exec,,))
+$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
+$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
+$(eval $(call BuildPlugin,htable,htable,Hash Table,,))
+$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
+$(eval $(call BuildPlugin,ipops,ipops,IP and IPv6 operations,,))
+$(eval $(call BuildPlugin,json,json,Access to JSON document attributes,,+libjson))
+$(eval $(call BuildPlugin,kex,kex,Core extensions,,))
+$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,+libpcre))
+$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
+$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
+$(eval $(call BuildPlugin,mediaproxy,mediaproxy,Automatic NAT traversal,dialog,))
+$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
+$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
+$(eval $(call BuildPlugin,mi-rpc,mi_rpc,RPC support for Management Interface,,))
+$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
+$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
+$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
+$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
+$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
+$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
+$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
+$(eval $(call BuildPlugin,presence,presence,Presence server,sl tm,+libxml2))
+$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
+$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
+$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
+$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
+$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
+$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
+$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
+$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
+$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
+$(eval $(call BuildPlugin,pv,pv,Pseudo-Variables,,))
+$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
+$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
+$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
+$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,usrloc,))
+$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua tm,+libxml2))
+$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
+$(eval $(call BuildPlugin,rtimer,rtimer,Routing Timer,,))
+$(eval $(call BuildPlugin,sanity,sanity,SIP sanity checks,sl,))
+$(eval $(call BuildPlugin,sipcapture,sipcapture,SIP capture,,))
+$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
+$(eval $(call BuildPlugin,siputils,siputils,SIP utilities,sl,))
+$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
+$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
+$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
+$(eval $(call BuildPlugin,sqlops,sqlops,SQL operations,,))
+$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
+$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
+$(eval $(call BuildPlugin,textops,textops,Text operations,,))
+$(eval $(call BuildPlugin,tls,tls,TLS operations,,+libopenssl))
+$(eval $(call BuildPlugin,topoh,topoh,Topology hiding,rr,))
+$(eval $(call BuildPlugin,tm,tm,Transaction,,))
+$(eval $(call BuildPlugin,tmx,tmx,Transaction module extensions,,))
+$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
+$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
+$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
+$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
+$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
+$(eval $(call BuildPlugin,utils,utils,Misc utilities,,+libcurl +libxml2))
+$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl))
+$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
+$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
+
+PKG_MAKE_ARGS:= \
+       cfg-dir="/etc/kamailio/" \
+       bin-dir="/usr/sbin/" \
+       data-dir="/var/lib/kamailio/" \
+       lib-dir="/usr/lib/kamailio/" \
+       modules-dir="/usr/lib/kamailio/modules/" \
+       include_modules="$(INCL_MODULES)" \
+       TLS_HOOKS=1 \
+       extra_defs="-DUSE_PTHREAD_MUTEX " \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       ISSMP="no" \
+       LOCALBASE="$(STAGING_DIR)/usr" \
+       SYSBASE="$(STAGING_DIR)/usr" \
+       PCREDEFS:="$(TARGET_CPPFLAGS)" \
+       PCRELIBS:="$(TARGET_LDFLAGS)" \
+       cfg_target:=/etc/kamailio/ \
+       PREFIX:=/usr \
+       CROSS_COMPILE=$(TARGET_CROSS) \
+       CC="$(TARGET_CC)" \
+       ARCH="$(ARCH)"  \
+       DESTDIR=$(PKG_INSTALL_DIR) \
+       quiet=verbose \
+       prefix=/usr
+
+define Build/Configure
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               cfg
+endef
+
+define Build/Compile
+       if ! [ -f $(PREBUILT_STAMP) ]; then \
+               echo $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               EXTRA_LIBS=-L$(STAGING_DIR)/usr/lib/ \
+               all && touch $(PREBUILT_STAMP); \
+       fi
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               install
+endef
+
+$(eval $(call BuildPackage,kamailio4))
+$(eval $(call BuildPackage,kamailio4-tools))
+$(foreach m,$(KAM_MODULES),$(eval $(call BuildPackage,$(m))))
diff --git a/net/kamailio-4.0.x/files/kamailio.default b/net/kamailio-4.0.x/files/kamailio.default
new file mode 100644 (file)
index 0000000..a61617b
--- /dev/null
@@ -0,0 +1,13 @@
+# OPTIONS
+# -n COUNT
+# Specifies the number of children processes forked per interface
+# -N COUNT
+# Specifies the number of children processes forked to handle tcp incoming connections
+# -m SIZE
+# Size of the shared memory which will be allocated (in Megabytes).
+# -u UID
+# Changes the user id under which 
+# -g GID
+# Changes the group id under which 
+
+OPTIONS="-n 4 -m 4 - m 8"
diff --git a/net/kamailio-4.0.x/files/kamailio.init b/net/kamailio-4.0.x/files/kamailio.init
new file mode 100644 (file)
index 0000000..5a382ae
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2012 OpenWrt.org
+START=99 
+APP=kamailio
+BIN_FILE="/usr/sbin/"$APP
+PID_FILE="/var/run/"$APP".pid"
+
+start() {
+       start-stop-daemon -S -x $BIN_FILE -p $PID_FILE -b -m
+}
+
+stop() {
+       start-stop-daemon -K -x $BIN_FILE -p $PID_FILE -q
+       rm -rf $PID_FILE
+}
diff --git a/net/kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch b/net/kamailio-4.0.x/patches/001-mod-json-fix-library-name.patch
new file mode 100644 (file)
index 0000000..772aaa2
--- /dev/null
@@ -0,0 +1,19 @@
+--- kamailio4-4.0.1/modules/json/Makefile      2013-04-25 16:56:29.000000000 +0200
++++ kamailio4-next/modules/json/Makefile       2013-05-31 10:54:42.125995025 +0200
+@@ -11,12 +11,12 @@ LIBS=
+ BUILDER = $(shell which pkg-config)
+ ifeq ($(BUILDER),)
+-      DEFS+=-I/usr/include/json -I$(LOCALBASE)/include/json \
++      DEFS+=-I/usr/include/json-c -I$(LOCALBASE)/include/json-c \
+        -I$(LOCALBASE)/include
+-      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -ljson
++      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -ljson-c
+ else
+-      DEFS+= $(shell pkg-config --cflags json)
+-      LIBS+= $(shell pkg-config --libs json)
++      DEFS+= $(shell pkg-config --cflags json-c)
++      LIBS+= $(shell pkg-config --libs json-c)
+ endif
+ DEFS+=-DKAMAILIO_MOD_INTERFACE
diff --git a/net/kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch b/net/kamailio-4.0.x/patches/002-mod-jsonrpc-fix-library-name.patch
new file mode 100644 (file)
index 0000000..d0dc962
--- /dev/null
@@ -0,0 +1,19 @@
+--- kamailio4-4.0.1/modules/jsonrpc-c/Makefile 2013-04-25 16:56:29.000000000 +0200
++++ kamailio4-next/modules/jsonrpc-c/Makefile  2013-05-31 10:58:00.689999015 +0200
+@@ -11,12 +11,12 @@ LIBS=-lm
+ BUILDER = $(shell which pkg-config)
+ ifeq ($(BUILDER),)
+-      DEFS+=-I/usr/include/json -I$(LOCALBASE)/include/json \
++      DEFS+=-I/usr/include/json-c -I$(LOCALBASE)/include/json-c \
+        -I$(LOCALBASE)/include
+-      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -levent -ljson
++      LIBS+=-L$(SYSBASE)/include/lib -L$(LOCALBASE)/lib -levent -ljson-c
+ else
+-      DEFS+= $(shell pkg-config --cflags json)
+-      LIBS+= $(shell pkg-config --libs json)
++      DEFS+= $(shell pkg-config --cflags json-c)
++      LIBS+= $(shell pkg-config --libs json-c)
+       DEFS+= $(shell pkg-config --cflags libevent)
+       LIBS+= $(shell pkg-config --libs libevent)
+ endif
diff --git a/net/miax/Makefile b/net/miax/Makefile
new file mode 100644 (file)
index 0000000..85194f4
--- /dev/null
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2006-2009 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:=miax
+PKG_VERSION:=1.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/miax
+PKG_MD5SUM:=44f0d2ef46ee2697d890b7b96846adc7
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/miax
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEPENDS:=+libpthread +bluez-libs
+  TITLE:=A console iax (asterisk) client
+  URL:=http://www.eja.it/?l=en&n=miax
+endef
+
+define Package/miax/description
+       miax is a console iax (asterisk) client, it can work with 
+       a soundcard as a normal voip phone, taking input/output from 
+       keyboard, analog/gsm/isdn modem or bluetooth phones.
+endef
+
+define Build/Compile
+       $(MAKE) -C "$(PKG_BUILD_DIR)" \
+               CC="$(TARGET_CC)" \
+               OFLAGS="$(TARGET_CFLAGS)" \
+               CPPFLAGS="$(TARGET_CPPFLAGS)" \
+               LDFLAGS="$(TARGET_LDFLAGS)" \
+               all
+endef
+
+define Package/miax/install    
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/miax $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,miax))
diff --git a/net/miax/patches/001-cross.patch b/net/miax/patches/001-cross.patch
new file mode 100644 (file)
index 0000000..f47c110
--- /dev/null
@@ -0,0 +1,24 @@
+diff -ruN miax-1.4-old/Makefile miax-1.4-new/Makefile
+--- miax-1.4-old/Makefile      2005-04-27 18:56:13.000000000 +0200
++++ miax-1.4-new/Makefile      2005-11-30 01:07:21.000000000 +0100
+@@ -1,4 +1,5 @@
+-CFLAGS= -Iiax/ -Igsm/inc -DIAXC_IAX2 -DLIBIAX -g -DPOSIXSLEEP -DLINUX -O2 
++OFLAGS= -02 -g
++CFLAGS= -Iiax/ -Igsm/inc $(CPPFLAGS) -DIAXC_IAX2 -DLIBIAX -DPOSIXSLEEP -DLINUX $(OFLAGS)
+ SYSLIBS=-lpthread -lm -lbluetooth
+@@ -32,11 +33,10 @@
+       miax.o
+ all: $(OBJS)
+-      gcc $(OBJS) $(CFLAGS) $(SYSLIBS)  -o miax
+-      cp miax /bin/miax
++      $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) $(SYSLIBS) -o miax
+ static: $(OBJS) bluetooth.o 
+-      gcc $(OBJS) $(CFLAGS) $(SYSLIBS)  -static -o miax
++      $(CC) $(OBJS) $(CFLAGS) $(LDFLAGS) $(SYSLIBS) -static -o miax
+ clean: 
+       rm -f $(OBJS) miax 
diff --git a/net/openser/Makefile b/net/openser/Makefile
new file mode 100644 (file)
index 0000000..889e472
--- /dev/null
@@ -0,0 +1,339 @@
+#
+# Copyright (C) 2006 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:=openser
+PKG_VERSION:=1.0.1
+PKG_RELEASE:=1
+PKG_MD5SUM:=eebc16665003ee92daf96b216d6f9563
+# PKG_VARIANT:=-tls # for tls version
+PKG_VARIANT:=
+
+PKG_SOURCE_URL:=http://openser.org/pub/openser/$(PKG_VERSION)/src
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/openser
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  TITLE:=Configurable, free SIP server
+  URL:=http://www.openser.org
+  MENU:=1
+endef
+
+define Package/openser/conffiles
+/etc/openser/openser.cfg
+endef
+
+define Package/openser-mod-acc
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libradiusclient-ng
+  TITLE:=Accounting support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-auth
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Authentication support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-auth-db
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Authentication with database support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-auth-radius
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libradiusclient-ng
+  TITLE:=Authentication with RADIUS support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-avp-radius
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libradiusclient-ng
+  TITLE:=AVP with RADIUS support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-avpops
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=AVP options support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-dispatcher
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Dispatcher support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-diversion
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Diversion support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-flatstore
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Flatstore support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-gflags
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Gflags support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-group
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Group support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-group-radius
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libradiusclient-ng
+  TITLE:=Group with RADIUS support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-lcr
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser openser-mod-mysql
+  TITLE:=Least Cost Routing support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-mediaproxy
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Mediaproxy support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-msilo
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=MSilo support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-mysql
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libmysqlclient
+  TITLE:=MySQL support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-nathelper
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=NAT helper support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-options
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Options support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-pdt
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=PDT support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-permissions
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Permissions support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-pike
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=PIKE support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-sms
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=SMS support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-speeddial
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Speeddial supporte
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-uac
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=UAC support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-uac-redirect
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=UAC with redirect support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-uri
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=URI support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-uri-db
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +openser-mod-mysql
+  TITLE:=URI with database support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-uri-radius
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser +libradiusclient-ng
+  TITLE:=URI with RADIUS support
+  SUBMENU:=Telephony
+endef
+
+define Package/openser-mod-xlog
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=openser
+  TITLE:=Advanced logging support
+  SUBMENU:=Telephony
+endef
+
+# Select here the modules for the ipk package
+OPENSER_MODULES := sl tm rr maxfwd usrloc registrar dbtext textops exec
+
+OPENSER_MODULE_FILES := $(foreach module,$(OPENSER_MODULES),modules/$(module)/$(module).so)
+OPENSER_MODULES := $(patsubst %,modules/%,$(OPENSER_MODULES))
+
+define Build/Compile   
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               prefix=/ \
+               extra_defs="-DUSE_PTHREAD_MUTEX "  \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
+               LOCALBASE="$(STAGING_DIR)/usr" \
+               all utils/gen_ha1/gen_ha1
+endef
+
+define Package/openser/install 
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
+       $(CP) $(PKG_BUILD_DIR)/utils/gen_ha1/gen_ha1 $(1)/usr/sbin/openser_gen_ha1
+       $(CP) $(PKG_BUILD_DIR)/scripts/sc $(1)/usr/sbin/openserctl
+       chmod 744 $(1)/usr/sbin/openserctl
+       $(CP) $(PKG_BUILD_DIR)/scripts/sc.dbtext $(1)/usr/sbin/dbtextctl
+       chmod 744 $(1)/usr/sbin/dbtextctl
+       $(INSTALL_DIR) $(1)/usr/lib/openser/modules
+       (cd $(PKG_BUILD_DIR);\
+               $(CP) $(OPENSER_MODULE_FILES) $(1)/usr/lib/openser/modules/; \
+       )
+       $(INSTALL_DIR) $(1)/etc/openser
+       $(CP) $(PKG_BUILD_DIR)/etc/openser.cfg $(1)/etc/openser/
+endef
+
+define BuildPlugin
+  define Package/$(1)/install
+       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/openser/modules/
+       $(CP) $(PKG_BUILD_DIR)/modules/$(2)/$(2).so \
+                       $$(1)/usr/lib/openser/modules/ ;
+  endef
+
+  $$(eval $$(call BuildPackage,$(1)))
+endef
+
+$(eval $(call BuildPackage,openser))
+$(eval $(call BuildPlugin,openser-mod-acc,acc))
+$(eval $(call BuildPlugin,openser-mod-auth,auth))
+$(eval $(call BuildPlugin,openser-mod-auth-db,auth_db))
+$(eval $(call BuildPlugin,openser-mod-auth-radius,auth_radius))
+$(eval $(call BuildPlugin,openser-mod-avp-radius,avp_radius))
+$(eval $(call BuildPlugin,openser-mod-avpops,avpops))
+$(eval $(call BuildPlugin,openser-mod-dispatcher,dispatcher))
+$(eval $(call BuildPlugin,openser-mod-diversion,diversion))
+$(eval $(call BuildPlugin,openser-mod-flatstore,flatstore))
+$(eval $(call BuildPlugin,openser-mod-gflags,gflags))
+$(eval $(call BuildPlugin,openser-mod-group,group))
+$(eval $(call BuildPlugin,openser-mod-group-radius,group_radius))
+$(eval $(call BuildPlugin,openser-mod-lcr,lcr))
+$(eval $(call BuildPlugin,openser-mod-mediaproxy,mediaproxy))
+$(eval $(call BuildPlugin,openser-mod-msilo,msilo))
+$(eval $(call BuildPlugin,openser-mod-mysql,mysql))
+$(eval $(call BuildPlugin,openser-mod-nathelper,nathelper))
+$(eval $(call BuildPlugin,openser-mod-options,options))
+$(eval $(call BuildPlugin,openser-mod-pdt,pdt))
+$(eval $(call BuildPlugin,openser-mod-permissions,permissions))
+$(eval $(call BuildPlugin,openser-mod-pike,pike))
+$(eval $(call BuildPlugin,openser-mod-sms,sms))
+$(eval $(call BuildPlugin,openser-mod-speeddial,speeddial))
+$(eval $(call BuildPlugin,openser-mod-uac,uac))
+$(eval $(call BuildPlugin,openser-mod-uac-redirect,uac_redirect))
+$(eval $(call BuildPlugin,openser-mod-uri,uri))
+$(eval $(call BuildPlugin,openser-mod-uri-db,uri_db))
+$(eval $(call BuildPlugin,openser-mod-uri-radius,uri_radius))
+$(eval $(call BuildPlugin,openser-mod-xlog,xlog))
diff --git a/net/openser/patches/001-openser_cfg.patch b/net/openser/patches/001-openser_cfg.patch
new file mode 100644 (file)
index 0000000..f26e79e
--- /dev/null
@@ -0,0 +1,33 @@
+--- openser-1.0.0-tls.orig/etc/openser.cfg     2005-10-28 21:45:33.000000000 +0200
++++ openser-1.0.0-tls/etc/openser.cfg  2006-01-07 01:39:01.077134312 +0100
+@@ -36,20 +36,20 @@
+ # ------------------ module loading ----------------------------------
+ # Uncomment this if you want to use SQL database
+-#loadmodule "/usr/local/lib/openser/modules/mysql.so"
++#loadmodule "/usr/lib/openser/modules/mysql.so"
+-loadmodule "/usr/local/lib/openser/modules/sl.so"
+-loadmodule "/usr/local/lib/openser/modules/tm.so"
+-loadmodule "/usr/local/lib/openser/modules/rr.so"
+-loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
+-loadmodule "/usr/local/lib/openser/modules/usrloc.so"
+-loadmodule "/usr/local/lib/openser/modules/registrar.so"
+-loadmodule "/usr/local/lib/openser/modules/textops.so"
++loadmodule "/usr/lib/openser/modules/sl.so"
++loadmodule "/usr/lib/openser/modules/tm.so"
++loadmodule "/usr/lib/openser/modules/rr.so"
++loadmodule "/usr/lib/openser/modules/maxfwd.so"
++loadmodule "/usr/lib/openser/modules/usrloc.so"
++loadmodule "/usr/lib/openser/modules/registrar.so"
++loadmodule "/usr/lib/openser/modules/textops.so"
+ # Uncomment this if you want digest authentication
+ # mysql.so must be loaded !
+-#loadmodule "/usr/local/lib/openser/modules/auth.so"
+-#loadmodule "/usr/local/lib/openser/modules/auth_db.so"
++#loadmodule "/usr/lib/openser/modules/auth.so"
++#loadmodule "/usr/lib/openser/modules/auth_db.so"
+ # ----------------- setting module-specific parameters ---------------
diff --git a/net/openser/patches/002-sc.patch b/net/openser/patches/002-sc.patch
new file mode 100644 (file)
index 0000000..52ef9a6
--- /dev/null
@@ -0,0 +1,41 @@
+--- openser-1.0.0-tls.orig/scripts/sc  2005-08-11 14:08:02.000000000 +0200
++++ openser-1.0.0-tls/scripts/sc       2006-01-29 02:18:43.319054456 +0100
+@@ -48,11 +48,15 @@
+       STARTOPTIONS= # for example -dddd
+ fi
+ if [ -z "$DIR" ] ; then
+-      DIR=`dirname $0`
++      DIR=/usr/sbin
+ fi
+ if [ -z "$SERBIN" ] ; then
+       SERBIN=$DIR/openser
+ fi
++if [ -z "$SIP_DOMAIN" ] ; then
++      SIP_DOMAIN=$(nvram get sip_domain)
++fi
++
+ ##### ----------------------------------------------- #####
+ ### openser's FIFO server
+@@ -415,7 +419,7 @@
+       fi
+       if [ -z "$SERDOMAIN" ] ; then
+-              echo "domain unknown: use usernames with domain or set default domain in SIP_DOMAIN"
++              echo "domain unknown: use usernames with domain or set default domain in SIP_DOMAIN (with 'nvram set sip_domain=YOUR_SIP_DOMAIN')"
+               exit 1
+       fi
+ }
+@@ -671,11 +675,7 @@
+                               set_user $2
+                               fifo_cmd ul_show_contact $USRLOC_TABLE "$SERUSER@$SERDOMAIN"
+                       elif [ $# -eq 1 ] ; then
+-                              printf "Dumping all contacts may take long: are you sure you want to proceed? [Y|N] " > /dev/stderr
+-                              read answer
+-                              if [ "$answer" = "y" -o "$answer" = "Y" ] ; then
+-                                      fifo_cmd ul_dump
+-                              fi
++                              fifo_cmd ul_dump
+                       else
+                               echo "wrong number of params for usrloc show"
+                               usage
diff --git a/net/openser/patches/003-makefile_defs.patch b/net/openser/patches/003-makefile_defs.patch
new file mode 100644 (file)
index 0000000..a7275bd
--- /dev/null
@@ -0,0 +1,71 @@
+--- openser-1.0.0-tls.orig/Makefile.defs       2005-10-28 18:32:39.000000000 +0200
++++ openser-1.0.0-tls/Makefile.defs    2006-01-15 23:40:18.391547040 +0100
+@@ -917,7 +917,7 @@
+ endif
+ YACC_FLAGS=-d -b cfg
+ # on solaris add -lxnet (e.g. LIBS= -lxnet)
+-LIBS= -lfl -ldl -lresolv
++LIBS= -ldl -lresolv
+ #os specific stuff
+@@ -955,7 +955,7 @@
+ endif
+       OLD_SOLARIS= $(shell echo "$(OSREL)" | \
+                               sed -e 's/^5\.[0-6][^0-9]*$$/yes/' )
+-      LIBS+= -L$(LOCALBASE)/lib -lfl -lxnet -lnsl 
++      LIBS+= -L$(LOCALBASE)/lib -lxnet -lnsl 
+ ifeq  ($(OLD_SOLARIS), yes)
+               LIBS+=-lposix4
+ else
+@@ -970,9 +970,9 @@
+       ifneq ($(found_lock_method), yes)
+               DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
+               found_lock_method=yes
+-              LIBS= -pthread -lfl  #dlopen is in libc
++              LIBS= -pthread  #dlopen is in libc
+       else
+-              LIBS= -lfl  #dlopen is in libc
++              LIBS=  #dlopen is in libc
+       endif
+       YACC=yacc
+ endif
+@@ -987,7 +987,7 @@
+       # (symbols on openbsd are prefixed by "_")
+       YACC=yacc
+       # no sched_yield on openbsd unless linking with c_r (not recommended)
+-      LIBS= -lfl 
++      LIBS= 
+       OPENBSD_IS_AOUT= $(shell echo "$(OSREL)" | \
+                               sed -e 's/^3\.[0-3][^0-9]*$$/yes/' |sed -e 's/^[0-2]\..*/yes/')
+ # exception: on sparc openbsd 3.2 is elf and not aout
+@@ -1014,7 +1014,7 @@
+               found_lock_method=yes
+       endif
+       YACC=yacc
+-      LIBS= -lfl 
++      LIBS= 
+ endif
+ # OS X support, same as freebsd
+@@ -1028,9 +1028,9 @@
+       ifneq ($(found_lock_method), yes)
+               DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
+               found_lock_method=yes
+-              LIBS= -pthread -lfl -lresolv  #dlopen is in libc
++              LIBS= -pthread -lresolv  #dlopen is in libc
+       else
+-              LIBS= -lfl -lresolv  #dlopen is in libc
++              LIBS= -lresolv  #dlopen is in libc
+       endif
+       LDFLAGS=        # darwin doesn't like -O2 or -E
+       MOD_LDFLAGS= -bundle -bundle_loader ../../$(MAIN_NAME)
+@@ -1047,7 +1047,7 @@
+ #add libssl if needed
+ ifneq ($(TLS),)
+-DEFS+= -I$(LOCALBASE)/ssl/include
++DEFS+= -I$(LOCALBASE)/include
+ LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl  -lcrypto
+ endif
diff --git a/net/openser/patches/004-cfg_lex.patch b/net/openser/patches/004-cfg_lex.patch
new file mode 100644 (file)
index 0000000..39eacb2
--- /dev/null
@@ -0,0 +1,13 @@
+--- openser-1.0.0-tls.orig/cfg.lex     2005-09-02 17:34:41.000000000 +0200
++++ openser-1.0.0-tls/cfg.lex  2006-01-05 01:34:50.279630928 +0100
+@@ -85,6 +85,10 @@
+       static char* addstr(struct str_buf *, char*, int);
+       static void count();
++      int yywrap(void)
++      {
++              return 1;
++      }
+ %}
diff --git a/net/openser/patches/005-config_h.patch b/net/openser/patches/005-config_h.patch
new file mode 100644 (file)
index 0000000..45af8f1
--- /dev/null
@@ -0,0 +1,33 @@
+--- openser-1.0.0-tls.orig/config.h    2005-08-23 19:31:12.000000000 +0200
++++ openser-1.0.0-tls/config.h 2006-01-05 01:42:14.101159800 +0100
+@@ -48,7 +48,7 @@
+ #define MAX_LISTEN 16
+ /* default number of child processes started */
+-#define CHILD_NO    8
++#define CHILD_NO    4
+ #define RT_NO 40 /* routing tables number */
+ #define FAILURE_RT_NO RT_NO /* on_failure routing tables number */
+@@ -68,10 +68,10 @@
+ #define CONTENT_LENGTH "Content-Length: "
+ #define CONTENT_LENGTH_LEN (sizeof(CONTENT_LENGTH)-1)
+-#define USER_AGENT "User-Agent: OpenSer (" VERSION " (" ARCH "/" OS"))"
++#define USER_AGENT "User-Agent: OpenSer " VERSION " (boozy.milkfish.org)"
+ #define USER_AGENT_LEN (sizeof(USER_AGENT)-1)
+-#define SERVER_HDR "Server: OpenSer (" VERSION " (" ARCH "/" OS"))"
++#define SERVER_HDR "Server: OpenSer " VERSION " (boozy.milkfish.org)"
+ #define SERVER_HDR_LEN (sizeof(SERVER_HDR)-1)
+ #define MAX_WARNING_LEN  256
+@@ -113,7 +113,7 @@
+ #define PKG_MEM_POOL_SIZE 1024*1024
+ /*used if SH_MEM is defined*/
+-#define SHM_MEM_SIZE 32
++#define SHM_MEM_SIZE 8
+ #define TIMER_TICK 1
diff --git a/net/openser/patches/006-sc_dbtext.patch b/net/openser/patches/006-sc_dbtext.patch
new file mode 100644 (file)
index 0000000..2a1b7ea
--- /dev/null
@@ -0,0 +1,22 @@
+--- openser-1.0.0-tls.orig/scripts/sc.dbtext   2005-07-29 21:05:36.000000000 +0200
++++ openser-1.0.0-tls/scripts/sc.dbtext        2006-01-29 02:30:31.795349688 +0100
+@@ -62,6 +62,10 @@
+ ##### ----------------------------------------------- #####
+ #### table names
++if [ -z "$SIP_DOMAIN" ] ; then
++      SIP_DOMAIN=$(nvram get sip_domain)
++fi
++
+ # UsrLoc Table
+ if [ -z "$UL_TABLE" ] ; then
+       UL_TABLE=location
+@@ -247,7 +251,7 @@
+       fi
+       if [ -z "$SERDOMAIN" ] ; then
+-              echo -e "\nDomain unknown: use usernames with domain or set default domain in SIP_DOMAIN\n"
++              echo -e "\nDomain unknown: use usernames with domain or set default domain in SIP_DOMAIN (with 'nvram set sip_domain=YOUR_SIP_DOMAIN')\n"
+               exit 1
+       fi
+ }
diff --git a/net/openser/patches/007-modules_build.patch b/net/openser/patches/007-modules_build.patch
new file mode 100644 (file)
index 0000000..bdc9f65
--- /dev/null
@@ -0,0 +1,57 @@
+--- openser-1.0.1/Makefile     2006-02-15 20:52:21.000000000 +0100
++++ openser-1.0.1.new/Makefile 2006-03-17 11:01:27.417488936 +0100
+@@ -46,8 +46,7 @@
+ skip_modules?=
+ # if not set on the cmd. line or the env, exclude this modules:
+-exclude_modules?=             jabber cpl-c pa postgres mysql \
+-                                              avp_radius auth_radius group_radius uri_radius
++exclude_modules?=             jabber cpl-c pa postgres
+ # always exclude the CVS dir
+ override exclude_modules+= CVS $(skip_modules)
+diff -urN openser-1.0.1/modules/acc/Makefile openser-1.0.1.new/modules/acc/Makefile
+--- openser-1.0.1/modules/acc/Makefile 2005-09-05 21:32:02.000000000 +0200
++++ openser-1.0.1.new/modules/acc/Makefile     2006-03-17 10:38:14.333269928 +0100
+@@ -14,8 +14,8 @@
+ DEFS+=-DSQL_ACC
+ # uncomment the next two lines if you wish to enable RADIUS accounting
+-#DEFS+=-DRAD_ACC -I$(LOCALBASE)/include
+-#LIBS=-L$(LOCALBASE)/lib -lradiusclient-ng
++DEFS+=-DRAD_ACC -I$(LOCALBASE)/include
++LIBS=-L$(LOCALBASE)/lib -lradiusclient-ng
+ # uncomment the next two lines if you wish to enable DIAMETER accounting
+ #DEFS+=-DDIAM_ACC
+diff -urN openser-1.0.1/modules/mysql/Makefile openser-1.0.1.new/modules/mysql/Makefile
+--- openser-1.0.1/modules/mysql/Makefile       2005-06-13 18:47:40.000000000 +0200
++++ openser-1.0.1.new/modules/mysql/Makefile   2006-03-17 11:12:16.218856136 +0100
+@@ -9,14 +9,12 @@
+ # mysql.h locations (freebsd,openbsd  solaris)
+ DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/mysql \
+               -I$(LOCALBASE)/mysql/include \
+-              -I/usr/include/mysql
+ # libmysqlclient locations on RH/Suse, Solaris /OpenBSD, FreeBSD
+ # (Debian does the right thing and puts it in /usr/lib)
+ LIBS=-L/usr/lib/mysql -L$(LOCALBASE)/lib -L$(LOCALBASE)/lib/mysql \
+               -L$(LOCALBASE)/mysql/lib/mysql/ \
+               -L$(LOCALBASE)/mysql/lib \
+-              -L/usr/lib64/mysql \
+               -lmysqlclient -lz
+ include ../../Makefile.modules
+diff -urN openser-1.0.1/modules/postgres/Makefile openser-1.0.1.new/modules/postgres/Makefile
+--- openser-1.0.1/modules/postgres/Makefile    2005-07-01 16:52:34.000000000 +0200
++++ openser-1.0.1.new/modules/postgres/Makefile        2006-03-17 11:13:22.150832952 +0100
+@@ -7,8 +7,7 @@
+ NAME=postgres.so
+ # libpq-fe.h locations
+-DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/pgsql/include \
+-       -I/usr/include/postgresql -I/usr/include/postgresql/8.0
++DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/pgsql/include -I$(LOCALBASE)/include/postgresql
+ LIBS=-L$(LOCALBASE)/lib -L$(LOCALBASE)/pgsql/lib -L$(LOCALBASE)/lib/pgsql \
+        -lpq
diff --git a/net/opensips/Makefile b/net/opensips/Makefile
new file mode 100644 (file)
index 0000000..c90abf7
--- /dev/null
@@ -0,0 +1,272 @@
+#
+# Copyright (C) 2009 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:=opensips
+PKG_VERSION:=1.5.3
+PKG_RELEASE:=1
+PKG_VARIANT:=-tls
+
+PKG_SOURCE_URL:=http://opensips.org/pub/opensips/$(PKG_VERSION)/src
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
+PKG_MD5SUM:=8a03167420c31da15405bed7630ed3e2
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)
+
+PKG_BUILD_DEPENDS:=curl expat libxml2 mysql openldap openssl pcre postgresql radiusclient-ng
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+
+define Package/opensips/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.opensips.org/
+endef
+
+
+define Package/opensips
+$(call Package/opensips/Default)
+  TITLE:=Open SIP Server
+  MENU:=1
+endef
+
+define Package/opensips-example
+$(call Package/opensips/Default)
+  TITLE:=OpenSIPS example config
+  DEPENDS:=opensips \
+       +opensips-mod-acc \
+       +opensips-mod-maxfwd \
+       +opensips-mod-mi-fifo \
+       +opensips-mod-registrar \
+       +opensips-mod-rr \
+       +opensips-mod-signaling \
+       +opensips-mod-sl \
+       +opensips-mod-textops \
+       +opensips-mod-tm \
+       +opensips-mod-uri \
+       +opensips-mod-uri-db \
+       +opensips-mod-usrloc \
+       +opensips-mod-xlog
+endef
+
+define Package/opensips-example/conffiles
+/etc/default/opensips
+/etc/opensips/opensips.cfg
+endef
+
+
+define Package/opensips-tools
+$(call Package/opensips/Default)
+  TITLE:=OpenSIPS control tools
+  DEPENDS:=opensips
+endef
+
+define Package/opensips-tools/conffiles
+/etc/opensips/opensipsctlrc
+endef
+
+
+PKG_EXCL_MODULES:= \
+       auth_diameter \
+       carrierroute \
+       db_berkeley \
+       db_oracle \
+       db_unixodbc \
+       mediaproxy \
+       mi_xmlrpc \
+       mmgeoip \
+       osp \
+       perl \
+       perlvdb \
+       snmpstats \
+
+PKG_MAKE_ARGS:= \
+       cfg-dir="etc/opensips/" \
+       bin-dir="usr/sbin/" \
+       data-dir="var/lib/opensips/" \
+       lib-dir="usr/lib/opensips/" \
+       modules-dir="usr/lib/opensips/modules/" \
+       exclude_modules="$(PKG_EXCL_MODULES)" \
+
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               prefix=/ \
+               extra_defs="-DUSE_PTHREAD_MUTEX "  \
+               CC="$(TARGET_CC)" \
+               ARCH="$(ARCH)"  \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               ISSMP="no" \
+               LOCALBASE="$(STAGING_DIR)/usr" \
+               SYSBASE="$(STAGING_DIR)/usr" \
+               PCRECFG= \
+               all
+       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               install
+endef
+
+define Package/opensips/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/opensips \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/opensips/modules
+endef
+
+define Package/opensips-example/install
+       $(INSTALL_DIR) $(1)/etc/opensips
+       $(CP) \
+               $(PKG_INSTALL_DIR)/etc/opensips/opensips.cfg \
+               $(1)/etc/opensips/
+       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
+               $(1)/etc/opensips/opensips.cfg
+       $(INSTALL_DIR) $(1)/etc/default
+       $(INSTALL_DATA) ./files/opensips.default $(1)/etc/default/opensips
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/opensips.init $(1)/etc/init.d/opensips
+endef
+
+define Package/opensips-tools/install
+       $(INSTALL_DIR) $(1)/etc/opensips
+       $(CP) \
+               $(PKG_INSTALL_DIR)/etc/opensips/opensipsctlrc \
+               $(1)/etc/opensips/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/sbin/opensips{ctl,dbctl,unix} \
+               $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/opensips
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/opensips/opensipsctl \
+               $(1)/usr/lib/opensips/
+       $(SED) 's,/bin/bash,/bin/sh,g' \
+               -e 's,$(PKG_INSTALL_DIR),,g' \
+               $(1)/usr/sbin/opensips{ctl,dbctl}
+endef
+
+define BuildPlugin
+  define Package/opensips-mod-$(1)
+    $$(call Package/opensips/Default)
+    TITLE:= OpenSIPS $(3) module
+    DEPENDS:=opensips $$(foreach m,$(4),+opensips-mod-$$m) $(5)
+  endef
+
+  define Package/opensips-mod-$(1)/install
+       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/opensips/modules/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/opensips/modules/$(2).so \
+                       $$(1)/usr/lib/opensips/modules/ ;
+  endef
+
+  $$(eval $$(call BuildPackage,opensips-mod-$(1)))
+endef
+
+$(eval $(call BuildPackage,opensips))
+$(eval $(call BuildPackage,opensips-example))
+$(eval $(call BuildPackage,opensips-tools))
+$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
+$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,,))
+$(eval $(call BuildPlugin,auth,auth,Authentication Framework,signaling,))
+$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth,))
+$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
+$(eval $(call BuildPlugin,avp-radius,avp_radius,RADIUS-backend for AVP loading,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
+$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
+$(eval $(call BuildPlugin,call-control,call_control,Prepair application,dialog,))
+#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse))
+$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
+$(eval $(call BuildPlugin,closeddial,closeddial,PBX-like features,,))
+$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2))
+#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,))
+$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
+$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
+#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,))
+$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
+$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
+#$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,))
+$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
+$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,))
+$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
+$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
+$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
+$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
+$(eval $(call BuildPlugin,drouting,drouting,Dynaming routing,,))
+$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
+$(eval $(call BuildPlugin,exec,exec,External exec,,))
+$(eval $(call BuildPlugin,gflags,gflags,Global shared flags,,))
+$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
+$(eval $(call BuildPlugin,group-radius,group_radius,RADIUS-backend user-groups,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
+$(eval $(call BuildPlugin,identity,identity,Identity,,+libopenssl))
+$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
+$(eval $(call BuildPlugin,jabber,jabber,Jabber,tm,+libexpat))
+$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,))
+$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
+$(eval $(call BuildPlugin,load_balancer,load_balancer,Load balancer,dialog,))
+$(eval $(call BuildPlugin,localcache,localcache,Local cache,,))
+$(eval $(call BuildPlugin,mangler,mangler,SIP mangler,,))
+$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
+$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
+$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
+#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c))
+#$(eval $(call BuildPlugin,mediaproxy,mediaproxy,NAT traversal,,+mediaproxy))
+#$(eval $(call BuildPlugin,mmgeoip,mmgeoip,MaxMind GeoIP,,+libgeoip))
+$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
+$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
+$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
+$(eval $(call BuildPlugin,options,options,OPTIONS server replier,sl,))
+#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp))
+$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
+$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
+$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
+#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl))
+#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,))
+$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
+$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
+$(eval $(call BuildPlugin,presence,presence,Presence server,signaling,+libxml2))
+$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
+$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
+$(eval $(call BuildPlugin,presence-xcapdiff,presence_xcapdiff,XCAP-Diff presence,presence pua,))
+$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
+$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
+$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
+$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
+$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
+$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
+$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
+$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
+$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
+$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
+$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,signaling usrloc,))
+$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua signaling tm,+libxml2))
+$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
+$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,))
+$(eval $(call BuildPlugin,signaling,signaling,Signaling,sl tm,))
+$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
+$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
+$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
+#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp))
+$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
+$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
+$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
+$(eval $(call BuildPlugin,textops,textops,Text operations,,))
+$(eval $(call BuildPlugin,tlsops,tlsops,TLS operations,,+libopenssl))
+$(eval $(call BuildPlugin,tm,tm,Transaction,,))
+$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
+$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
+$(eval $(call BuildPlugin,uri,uri,Generic URI operation,,))
+$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
+$(eval $(call BuildPlugin,uri-radius,uri_radius,RADIUS-backend SIP URI checking,,+libradiusclient-ng))
+$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
+$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
+$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl +libxml2))
+$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
+$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
diff --git a/net/opensips/files/opensips.default b/net/opensips/files/opensips.default
new file mode 100644 (file)
index 0000000..a61617b
--- /dev/null
@@ -0,0 +1,13 @@
+# OPTIONS
+# -n COUNT
+# Specifies the number of children processes forked per interface
+# -N COUNT
+# Specifies the number of children processes forked to handle tcp incoming connections
+# -m SIZE
+# Size of the shared memory which will be allocated (in Megabytes).
+# -u UID
+# Changes the user id under which 
+# -g GID
+# Changes the group id under which 
+
+OPTIONS="-n 4 -m 4 - m 8"
diff --git a/net/opensips/files/opensips.init b/net/opensips/files/opensips.init
new file mode 100755 (executable)
index 0000000..32654da
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009 OpenWrt.org
+START=50
+
+BIN=opensips
+DEFAULT=/etc/default/$BIN
+RUN_D=/var/run
+PID_F=$RUN_D/$BIN.pid
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       mkdir -p $RUN_D
+       $BIN -P $PID_F $OPTIONS >/dev/null 2>&1
+}
+
+stop() {
+       [ -f $PID_F ] && kill $(cat $PID_F)
+}
+
diff --git a/net/opensips/patches/001-no_rej.patch b/net/opensips/patches/001-no_rej.patch
new file mode 100644 (file)
index 0000000..066249a
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/pvar.c.rej
++++ /dev/null
+@@ -1,18 +0,0 @@
+-***************
+-*** 2409,2415 ****
+-                                      LM_ERR("invalid socket specification\n");
+-                                      return -1;
+-                              }
+--                             si = grep_sock_info(&host, (unsigned short)port, 
+-                                      (unsigned short)proto);
+-                              if (si==NULL)
+-                                      return -1;
+---- 2409,2416 ----
+-                                      LM_ERR("invalid socket specification\n");
+-                                      return -1;
+-                              }
+-+                             set_sip_defaults( port, proto);
+-+                             si = grep_sock_info(&host, (unsigned short)port,
+-                                      (unsigned short)proto);
+-                              if (si==NULL)
+-                                      return -1;
diff --git a/net/opensips/patches/005-config_h.patch b/net/opensips/patches/005-config_h.patch
new file mode 100644 (file)
index 0000000..abd40d6
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/config.h
++++ b/config.h
+@@ -48,7 +48,7 @@
+ #define MAX_LISTEN 16         /*!< maximum number of addresses on which we will listen */
+-#define CHILD_NO    8         /*!< default number of child processes started */
++#define CHILD_NO    4         /*!< default number of child processes started */
+ #define RT_NO 100             /*!< routing tables number */
+ #define FAILURE_RT_NO RT_NO   /*!< on_failure routing tables number */
+@@ -114,7 +114,7 @@
+ #define SRV_MAX_PREFIX_LEN SRV_TLS_PREFIX_LEN
+ #define PKG_MEM_POOL_SIZE 1024*1024           /*!< Used only if PKG_MALLOC is defined*/
+-#define SHM_MEM_SIZE 32                               /*!< Used if SH_MEM is defined*/
++#define SHM_MEM_SIZE 8                                /*!< Used if SH_MEM is defined*/
+ #define TIMER_TICK   1                        /*!< one second */
+ #define UTIMER_TICK  100*1000                 /*!< 100 miliseconds*/
diff --git a/net/opensips/patches/007-modules_build.patch b/net/opensips/patches/007-modules_build.patch
new file mode 100644 (file)
index 0000000..178b6e9
--- /dev/null
@@ -0,0 +1,102 @@
+--- a/modules/carrierroute/Makefile
++++ b/modules/carrierroute/Makefile
+@@ -12,10 +12,8 @@ NAME=carrierroute.so
+ BUILDER = $(shell which confuse-config)
+ ifeq ($(BUILDER),)
+-      CONFUSEDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
+-              -I/usr/sfw/include
+-      CONFUSELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
+-              -L/opt/lib -lconfuse
++      CONFUSEDEFS=-I$(LOCALBASE)/include
++      CONFUSELIBS=-L$(LOCALBASE)/lib
+ else
+               CONFUSEDEFS = $(shell confuse-config --cflags)
+               CONFUSELIBS = $(shell confuse-config --libs)
+--- a/modules/h350/Makefile
++++ b/modules/h350/Makefile
+@@ -9,6 +9,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=h350.so
+-LIBS=
++
++DEFS+=-I$(LOCALBASE)/include
++LIBS=-L$(LOCALBASE)/lib -lldap
+ include ../../Makefile.modules
+--- a/modules/identity/Makefile
++++ b/modules/identity/Makefile
+@@ -9,7 +9,7 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=identity.so
+-DEFS+= -I$(LOCALBASE)/ssl/include -I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/ssl/include
+-LIBS= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -L/usr/sfw/lib -L/usr/local/ssl/lib -lssl  -lcrypto
++DEFS+= -I$(LOCALBASE)/include
++LIBS= -L$(LOCALBASE)/lib -lssl  -lcrypto
+ include ../../Makefile.modules
+--- a/modules/ldap/Makefile
++++ b/modules/ldap/Makefile
+@@ -12,7 +12,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=ldap.so
+-LIBS=-lldap
++DEFS+=-I$(LOCALBASE)/include
++LIBS=-L$(LOCALBASE)/lib -lldap 
+ ifeq ($(OS),solaris)
+        DEFS+=-I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/include -I/opt/sfw/include -I/opt/csw/include
+--- a/modules/pua_bla/Makefile
++++ b/modules/pua_bla/Makefile
+@@ -9,8 +9,8 @@ include ../../Makefile.defs
+ auto_gen=
+ NAME=pua_bla.so
+ LIBS=
+-DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
+-LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
++DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
++LIBS+=-L$(LOCALBASE)/lib -lxml2
+ include ../../Makefile.modules
+--- a/modules/pua_xmpp/Makefile
++++ b/modules/pua_xmpp/Makefile
+@@ -10,7 +10,7 @@ auto_gen=
+ NAME= pua_xmpp.so
+ LIBS=
+-DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
+-LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
++DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
++LIBS+=-L$(LOCALBASE)/lib -lxml2
+ include ../../Makefile.modules
+--- a/modules/regex/Makefile
++++ b/modules/regex/Makefile
+@@ -20,8 +20,8 @@ ifneq ($(PCRECFG),)
+ else
+-      DEFS+=-I/usr/include -I/usr/sfw/include -I/usr/local/include -I/opt/csw/include -I$(LOCALBASE)/include
+-      LIBS=-I/usr/lib -I/usr/sfw/lib -I/usr/local/lib -I/opt/csw/lib -I$(LOCALBASE)/lib -lpcre
++      DEFS+=-I$(LOCALBASE)/include
++      LIBS=-L$(LOCALBASE)/lib -lpcre
+ endif
+--- a/modules/tlsops/Makefile
++++ b/modules/tlsops/Makefile
+@@ -7,8 +7,8 @@ auto_gen=
+ NAME=tlsops.so
+ LIBS=
+-DEFS+= -I$(LOCALBASE)/ssl/include -I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/ssl/include
+-LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -L/usr/sfw/lib -L/usr/local/ssl/lib -lssl  -lcrypto
++DEFS+= -I$(LOCALBASE)/include
++LIBS+= -L$(LOCALBASE)/lib -lssl  -lcrypto
+ include ../../Makefile.modules
diff --git a/net/pcapsipdump/Makefile b/net/pcapsipdump/Makefile
new file mode 100644 (file)
index 0000000..ad07746
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2009-2010 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:=pcapsipdump
+PKG_VERSION:=0.1.4
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/psipdump
+PKG_MD5SUM:=95ed26caf66237a654cae2cacdaa3386
+
+include $(INCLUDE_DIR)/uclibc++.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/pcapsipdump
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEPENDS:=+libpcap $(CXX_DEPENDS)
+  TITLE:=SIP sessions dumping tool
+  URL:=http://sourceforge.net/projects/pcapsipdump/
+endef
+
+define Package/pcapsipdump/description
+        pcapsipdump is a tool for dumping SIP sessions (+RTP traffic, if available) to disk in a
+        fashion similar to "tcpdump -w" (format is exactly the same), but one file per sip session
+        (even if there is thousands of concurrect SIP sessions).
+endef
+
+TARGET_CC=$(TARGET_CXX)
+
+define Build/Compile
+       $(TARGET_CONFIGURE_OPTS) \
+               $(MAKE) -C $(PKG_BUILD_DIR) \
+               CPPFLAGS="$(TARGET_CXXFLAGS) -fno-rtti"  \
+               LIBS="-lpcap"
+endef
+
+define Package/pcapsipdump/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pcapsipdump $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,pcapsipdump))
diff --git a/net/pcapsipdump/patches/001-cross_compile.patch b/net/pcapsipdump/patches/001-cross_compile.patch
new file mode 100644 (file)
index 0000000..db4bead
--- /dev/null
@@ -0,0 +1,16 @@
+diff -urN pcapsipdump-0.1.4/Makefile pcapsipdump-0.1.4.new/Makefile
+--- pcapsipdump-0.1.4/Makefile 2007-02-09 12:33:48.000000000 +0100
++++ pcapsipdump-0.1.4.new/Makefile     2009-05-12 12:01:02.000000000 +0200
+@@ -1,10 +1,10 @@
+ all: pcapsipdump
+ pcapsipdump: pcapsipdump.cpp calltable.cpp calltable.h
+-      $(CC) $(CPPFLAGS) $(LDFLAGS) pcapsipdump.cpp calltable.cpp -o pcapsipdump -lpcap -lstdc++
++      $(CC) $(CPPFLAGS) $(LDFLAGS) pcapsipdump.cpp calltable.cpp -o pcapsipdump $(LIBS)
+ pcapsipdump-debug: pcapsipdump.cpp calltable.cpp calltable.h
+-      $(CC) $(CPPFLAGS) $(LDFLAGS) -ggdb pcapsipdump.cpp calltable.cpp -o pcapsipdump-debug -lpcap -lstdc++
++      $(CC) $(CPPFLAGS) $(LDFLAGS) -ggdb pcapsipdump.cpp calltable.cpp -o pcapsipdump-debug $(LIBS)
+ clean:
+       rm -f pcapsipdump
diff --git a/net/pcapsipdump/patches/002-elif_else_replacement.patch b/net/pcapsipdump/patches/002-elif_else_replacement.patch
new file mode 100644 (file)
index 0000000..bb217b7
--- /dev/null
@@ -0,0 +1,12 @@
+diff -urN pcapsipdump-0.1.4/pcapsipdump.h pcapsipdump-0.1.4.new/pcapsipdump.h
+--- pcapsipdump-0.1.4/pcapsipdump.h    2007-05-11 20:40:49.000000000 +0200
++++ pcapsipdump-0.1.4.new/pcapsipdump.h        2010-03-29 09:52:20.000000000 +0200
+@@ -35,7 +35,7 @@
+ #elif defined (__BIG_ENDIAN)
+       uint8_t version:4,
+               ihl:4;
+-#elif
++#else
+ #error Endian not defined
+ #endif
+       uint8_t tos;
diff --git a/net/restund/Makefile b/net/restund/Makefile
new file mode 100644 (file)
index 0000000..32dd04e
--- /dev/null
@@ -0,0 +1,117 @@
+# 
+# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=restund
+PKG_VERSION:=0.4.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.creytiv.com/pub/
+PKG_MD5SUM:=e11da0acd10af42ce6101f3106cd34dc
+
+restund-mods:= \
+       mysql \
+
+PKG_CONFIG_DEPENDS:= \
+       $(patsubst %,CONFIG_PACKAGE_restund-mod-%,$(restund-mods)) \
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/restund/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://www.creytiv.com/
+endef
+
+define Package/restund
+$(call Package/restund/Default)
+  TITLE:=Modular STUN/TURN server
+  DEPENDS:=+libre +libpthread
+endef
+
+
+restund-mod-mysql := USE_MYSQL
+
+RESTUND_MOD_OPTIONS:= \
+       $(foreach m,$(restund-mods),$(restund-mod-$(m))=$(if $(CONFIG_PACKAGE_restund-mod-$(m)),1))
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
+               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
+               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
+               CC="$(TARGET_CC)" \
+               EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               SYSROOT="$$$$($(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s#/include/pthread.h##p')" \
+               SYSROOT_ALT="$(STAGING_DIR)/usr" \
+               RELEASE=1 \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               OS="linux" \
+               $(RESTUND_MOD_OPTIONS) \
+               all install
+endef
+
+define Package/restund/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/restund/modules
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/auth.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/binding.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/stat.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/status.so \
+               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/syslog.so \
+               $(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/
+       $(SED) \
+               's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
+               $(1)/etc/restund.conf
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/restund.init $(1)/etc/init.d/restund
+endef
+
+define Package/restund/conffiles
+/etc/restund.conf
+endef
+
+#
+# 1. Name
+# 2. Title
+# 3. Files
+# 4. Depends
+#
+define BuildPlugin
+
+  define Package/restund-mod-$(1)
+    $$(call Package/restund/Default)
+    TITLE:= restund $(2) module
+    DEPENDS:= restund $(4)
+  endef
+
+  define Package/restund-mod-$(1)/install
+       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/restund/modules
+       for f in $(3); do \
+               $(CP) \
+                       $(PKG_INSTALL_DIR)/usr/lib/restund/modules/$$$$$$$${f}.so \
+                       $$(1)/usr/lib/restund/modules/ ; \
+       done
+  endef
+
+  $$(eval $$(call BuildPackage,restund-mod-$(1)))
+endef
+
+
+$(eval $(call BuildPackage,restund))
+
+$(eval $(call BuildPlugin,mysql,MySQL database backend,mysql_ser,+PACKAGE_restund-mod-mysql:libmysqlclient))
diff --git a/net/restund/files/restund.init b/net/restund/files/restund.init
new file mode 100644 (file)
index 0000000..d6360ff
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+#
+# Copyright (C) 2010-2011 OpenWrt.org
+# Copyright (C) 2010 Alfred E. Heggestad
+#
+
+START=60
+
+start() {
+       service_start /usr/sbin/restund
+}
+
+stop() {
+       service_stop /usr/sbin/restund
+}
diff --git a/net/rtpproxy/Makefile b/net/rtpproxy/Makefile
new file mode 100644 (file)
index 0000000..88fce3e
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Copyright (C) 2013 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:=rtpproxy
+PKG_VERSION:=1.2.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://b2bua.org/chrome/site/
+PKG_MD5SUM:=b0b5d6cdce3f17cdbbac473c11a2d0e5
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/rtpproxy
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEPENDS:=+libpthread
+  TITLE:=RTP (Realtime Transport Protocol) proxy
+  URL:=http://www.rtpproxy.org/
+endef
+
+# uses GNU configure
+
+define Package/rtpproxy/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rtpproxy $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,rtpproxy))
diff --git a/net/sipp/Makefile b/net/sipp/Makefile
new file mode 100644 (file)
index 0000000..038da48
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Copyright (C) 2013 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:=sipp
+PKG_VERSION:=3.3
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/sipp
+PKG_MD5SUM:=8c1d513423f9dabee799e738b737e311
+
+include $(INCLUDE_DIR)/uclibc++.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/sipp
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEPENDS:= +libncurses +libpthread $(CXX_DEPENDS)
+  TITLE:=test tool / traffic generator for the SIP protocol
+  URL:=http://sipp.sourceforge.net/
+endef
+
+define Package/sipp/description
+ SIPp is a free Open Source test tool / traffic generator for the SIP
+ protocol. It includes a few basic SipStone user agent scenarios (UAC and
+ UAS) and establishes and releases multiple calls with the INVITE and BYE
+ methods.
+endef
+
+TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
+
+define Build/Configure
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               $(TARGET_CONFIGURE_OPTS) \
+               CC_linux="$(TARGET_CXX)" \
+               CPP_linux="$(TARGET_CXX)" \
+               CCLINK_linux="$(TARGET_CXX)" \
+               CFLAGS="$(TARGET_CFLAGS)" \
+               CPPFLAGS_linux="$(TARGET_CPPFLAGS) -fno-rtti" \
+               LFLAGS_linux="$(TARGET_LDFLAGS)" \
+               LIBS="-lncurses -ldl -lpthread -lm" \
+               all
+endef
+
+define Package/sipp/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/sipp $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,sipp))
diff --git a/net/siproxd/Makefile b/net/siproxd/Makefile
new file mode 100644 (file)
index 0000000..6b08d05
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# Copyright (C) 2006-2011 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:=siproxd
+PKG_VERSION:=0.8.1
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/siproxd
+PKG_MD5SUM:=1a6f9d13aeb2d650375c9a346ac6cbaf
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/siproxd/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  URL:=http://siproxd.sourceforge.net/
+endef
+
+define Package/siproxd
+  $(call Package/siproxd/Default)
+  DEPENDS:=+libltdl +libpthread +libosip2
+  TITLE:=SIP (Session Initiation Protocol) proxy
+  MENU:=1
+endef
+
+define Package/siproxd/description
+       Siproxd is a proxy/masquerading daemon for the SIP protocol.
+endef
+
+define Package/siproxd/conffiles
+/etc/config/siproxd
+endef
+
+CONFIGURE_ARGS+= \
+       --with-libosip-prefix="$(STAGING_DIR)/usr" \
+       --disable-doc
+
+MAKE_FLAGS+= \
+       SUBDIRS="src scripts contrib" \
+       LIBLTDL="$(STAGING_DIR)/usr/lib/libltdl.la" \
+
+define Package/siproxd/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/siproxd $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/siproxd.config $(1)/etc/config/siproxd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/siproxd.init $(1)/etc/init.d/siproxd
+endef
+
+define BuildPlugin
+  define Package/siproxd-mod-$(1)
+    $$(call Package/siproxd/Default)
+    TITLE:= siproxd $(1) plugin
+    DEPENDS:=siproxd
+  endef
+
+  define Package/siproxd-mod-$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/lib/siproxd
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/siproxd/plugin_$(1)*.so* $$(1)/usr/lib/siproxd
+  endef
+
+  $$(eval $$(call BuildPackage,siproxd-mod-$(1)))
+endef
+
+$(eval $(call BuildPackage,siproxd))
+$(eval $(call BuildPlugin,defaulttarget))
+$(eval $(call BuildPlugin,demo))
+$(eval $(call BuildPlugin,fix_bogus_via))
+$(eval $(call BuildPlugin,logcall))
+$(eval $(call BuildPlugin,prefix))
+$(eval $(call BuildPlugin,regex))
+$(eval $(call BuildPlugin,shortdial))
+$(eval $(call BuildPlugin,stun))
diff --git a/net/siproxd/files/siproxd.config b/net/siproxd/files/siproxd.config
new file mode 100644 (file)
index 0000000..b65148c
--- /dev/null
@@ -0,0 +1,3 @@
+config siproxd general
+       option if_inbound       lan
+       option if_outbound      wan
diff --git a/net/siproxd/files/siproxd.init b/net/siproxd/files/siproxd.init
new file mode 100644 (file)
index 0000000..4ecdfbb
--- /dev/null
@@ -0,0 +1,235 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 Alina Friedrichsen
+# Copyright (C) 2011 OpenWrt.org
+
+START=50
+
+SERVICE_USE_PID=1
+
+siproxd_bin="/usr/sbin/siproxd"
+siproxd_conf_dir="/var/etc"
+siproxd_conf_prefix="$siproxd_conf_dir/siproxd-"
+siproxd_registration_dir="/var/lib/siproxd"
+siproxd_pid_dir="/var/run/siproxd"
+
+deal_with_lists () {
+       echo "$2" = "$1" >> "$siproxd_conf_prefix$cfg"
+}
+
+start_instance() {
+       local cfg="$1"
+
+       config_get if_inbound "$cfg" if_inbound
+       config_get if_outbound "$cfg" if_outbound
+       config_get host_outbound "$cfg" host_outbound
+       config_get hosts_allow_reg "$cfg" hosts_allow_reg
+       config_get hosts_allow_sip "$cfg" hosts_allow_sip
+       config_get hosts_deny_sip "$cfg" hosts_deny_sip
+       config_get sip_listen_port "$cfg" sip_listen_port 5060
+       config_get_bool daemonize "$cfg" daemonize 1
+       config_get silence_log "$cfg" silence_log 4
+       config_get user "$cfg" user nobody
+       config_get chrootjail "$cfg" chrootjail
+       config_get registration_file "$cfg" registration_file "$siproxd_registration_dir/siproxd_registrations-$cfg"
+       config_get autosave_registrations "$cfg" autosave_registrations 300
+       config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid"
+       config_get_bool rtp_proxy_enable "$cfg" rtp_proxy_enable 1
+       config_get rtp_port_low "$cfg" rtp_port_low 7070
+       config_get rtp_port_high "$cfg" rtp_port_high 7089
+       config_get rtp_timeout "$cfg" rtp_timeout 300
+       config_get rtp_dscp "$cfg" rtp_dscp 46
+       config_get sip_dscp "$cfg" sip_dscp 0
+       config_get rtp_input_dejitter "$cfg" rtp_input_dejitter 0
+       config_get rtp_output_dejitter "$cfg" rtp_output_dejitter 0
+       config_get tcp_timeout "$cfg" tcp_timeout 600
+       config_get tcp_connect_timeout "$cfg" tcp_connect_timeout 500
+       config_get tcp_keepalive "$cfg" tcp_keepalive 20
+       config_get default_expires "$cfg" default_expires 600
+       config_get proxy_auth_realm "$cfg" proxy_auth_realm
+       config_get proxy_auth_passwd "$cfg" proxy_auth_passwd
+       config_get proxy_auth_pwfile "$cfg" proxy_auth_pwfile
+       config_get debug_level "$cfg" debug_level 0x00000000
+       config_get debug_port "$cfg" debug_port 0
+       config_get mask_host "$cfg" mask_host
+       config_get masked_host "$cfg" masked_host
+       config_get ua_string "$cfg" ua_string Siproxd-UA
+       config_get use_rport "$cfg" use_rport 0
+       config_get outbound_proxy_host "$cfg" outbound_proxy_host
+       config_get outbound_proxy_port "$cfg" outbound_proxy_port
+       config_get outbound_domain_name "$cfg" outbound_domain_name
+       config_get outbound_domain_host "$cfg" outbound_domain_host
+       config_get outbound_domain_port "$cfg" outbound_domain_port
+
+       if [ -f "$siproxd_conf_prefix$cfg" ]; then
+               rm "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$if_inbound" ]; then
+               echo if_inbound = "$if_inbound" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$if_outbound" ]; then
+               echo if_outbound = "$if_outbound" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$host_outbound" ]; then
+               echo host_outbound = "$host_outbound" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$hosts_allow_reg" ]; then
+               echo hosts_allow_reg = "$hosts_allow_reg" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$hosts_allow_sip" ]; then
+               echo hosts_allow_sip = "$hosts_allow_sip" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$hosts_deny_sip" ]; then
+               echo hosts_deny_sip = "$hosts_deny_sip" >> "$siproxd_conf_prefix$cfg"
+       fi
+       echo sip_listen_port = "$sip_listen_port" >> "$siproxd_conf_prefix$cfg"
+       echo daemonize = "$daemonize" >> "$siproxd_conf_prefix$cfg"
+       echo silence_log = "$silence_log" >> "$siproxd_conf_prefix$cfg"
+       echo user = "$user" >> "$siproxd_conf_prefix$cfg"
+       if [ -n "$chrootjail" ]; then
+               if [ ! -d "$chrootjail" ]; then
+                       mkdir -p "$chrootjail"
+                       chmod 0755 "$chrootjail"
+               fi
+               echo chrootjail = "$chrootjail" >> "$siproxd_conf_prefix$cfg"
+       fi
+       echo registration_file = "$registration_file" >> "$siproxd_conf_prefix$cfg"
+       echo autosave_registrations = "$autosave_registrations" >> "$siproxd_conf_prefix$cfg"
+
+       echo pid_file = "$pid_file" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_proxy_enable = "$rtp_proxy_enable" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_port_low = "$rtp_port_low" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_port_high = "$rtp_port_high" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_timeout = "$rtp_timeout" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_dscp = "$rtp_dscp" >> "$siproxd_conf_prefix$cfg"
+       echo sip_dscp = "$sip_dscp" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_input_dejitter = "$rtp_input_dejitter" >> "$siproxd_conf_prefix$cfg"
+       echo rtp_output_dejitter = "$rtp_output_dejitter" >> "$siproxd_conf_prefix$cfg"
+       echo tcp_timeout = "$tcp_timeout" >> "$siproxd_conf_prefix$cfg"
+       echo tcp_connect_timeout = "$tcp_connect_timeout" >> "$siproxd_conf_prefix$cfg"
+       echo tcp_keepalive = "$tcp_keepalive" >> "$siproxd_conf_prefix$cfg"
+       echo default_expires = "$default_expires" >> "$siproxd_conf_prefix$cfg"
+       if [ -n "$proxy_auth_realm" ]; then
+               echo proxy_auth_realm = "$proxy_auth_realm" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$proxy_auth_passwd" ]; then
+               echo proxy_auth_passwd = "$proxy_auth_passwd" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$proxy_auth_pwfile" ]; then
+               echo proxy_auth_pwfile = "$proxy_auth_pwfile" >> "$siproxd_conf_prefix$cfg"
+       fi
+       echo debug_level = "$debug_level" >> "$siproxd_conf_prefix$cfg"
+       echo debug_port = "$debug_port" >> "$siproxd_conf_prefix$cfg"
+       if [ -n "$mask_host" ]; then
+               echo mask_host = "$mask_host" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$masked_host" ]; then
+               echo masked_host = "$masked_host" >> "$siproxd_conf_prefix$cfg"
+       fi
+       echo ua_string = "$ua_string" >> "$siproxd_conf_prefix$cfg"
+       echo use_rport = "$use_rport" >> "$siproxd_conf_prefix$cfg"
+       if [ -n "$outbound_proxy_host" ]; then
+               echo oubound_proxy_host = "$outbound_proxy_host" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$outbound_proxy_port" ]; then
+               echo outbound_proxy_port = "$outbound_proxy_port" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$outbound_domain_name" ]; then
+               echo outbound_domain_name = "$outbound_domain_name" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$outbound_domain_host" ]; then
+               echo outbound_domain_host = "$outbound_domain_host" >> "$siproxd_conf_prefix$cfg"
+       fi
+       if [ -n "$outbound_domain_port" ]; then
+               echo outbound_domain_port = "$outbound_domain_port" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # handle plugins
+       config_get plugindir "$cfg" plugindir "/usr/lib/siproxd/"
+       echo plugindir = "$plugindir" >> "$siproxd_conf_prefix$cfg"
+
+       config_list_foreach "$cfg" 'load_plugin' deal_with_lists "load_plugin"
+
+       # plugin_demo.so
+       config_get plugin_demo_string "$cfg" plugin_demo_string
+       if [ -n "$plugin_demo_string" ]; then
+               echo plugin_demo_string = "$plugin_demo_string" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # plugin_shortdial.so
+       config_get plugin_shortdial_akey "$cfg" plugin_shortdial_akey
+       if [ -n "$plugin_shortdial_akey" ]; then
+               echo plugin_shortdial_akey = "$plugin_shortdial_akey" >> "$siproxd_conf_prefix$cfg"
+       fi
+       config_list_foreach "$cfg" 'plugin_shortdial_entry' deal_with_lists "plugin_shortdial_entry"
+
+       # plugin_defaulttarget.so
+       config_get_bool plugin_defaulttarget_log "$cfg" plugin_defaulttarget_log
+       if [ -n "$plugin_defaulttarget_log" ]; then
+               echo plugin_defaulttarget_log = "$plugin_defaulttarget_log" >> "$siproxd_conf_prefix$cfg"
+       fi
+       config_get plugin_defaulttarget_target "$cfg" plugin_defaulttarget_target
+       if [ -n "$plugin_defaulttarget_target" ]; then
+               echo plugin_defaulttarget_target = "$plugin_defaulttarget_target" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # plugin_fix_bogus_via.so
+       config_get plugin_fix_bogus_via_networks "$cfg" plugin_fix_bogus_via_networks
+       if [ -n "$plugin_fix_bogus_via_networks" ]; then
+               echo plugin_fix_bogus_via_networks = "$plugin_fix_bogus_via_networks" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # plugin_stun.so
+       config_get plugin_stun_server "$cfg" plugin_stun_server
+       if [ -n "$plugin_stun_server" ]; then
+               echo plugin_stun_server = "$plugin_stun_server" >> "$siproxd_conf_prefix$cfg"
+       fi
+       config_get plugin_stun_port "$cfg" plugin_stun_port
+       if [ -n "$plugin_stun_port" ]; then
+               echo plugin_stun_port = "$plugin_stun_port" >> "$siproxd_conf_prefix$cfg"
+       fi
+       config_get plugin_stun_period "$cfg" plugin_stun_period
+       if [ -n "$plugin_stun_period" ]; then
+               echo plugin_stun_period = "$plugin_stun_period" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # plugin_prefix.so
+       config_get plugin_prefix_akey "$cfg" plugin_prefix_akey
+       if [ -n "$plugin_prefix_akey" ]; then
+               echo plugin_prefix_akey = "$plugin_prefix_akey" >> "$siproxd_conf_prefix$cfg"
+       fi
+
+       # plugin_regex.so
+       config_list_foreach "$cfg" 'plugin_regex_desc' deal_with_lists "plugin_regex_desc"
+       config_list_foreach "$cfg" 'plugin_regex_pattern' deal_with_lists "plugin_regex_pattern"
+       config_list_foreach "$cfg" 'plugin_regex_replace' deal_with_lists "plugin_regex_replace"
+
+       SERVICE_PID_FILE="$pid_file" \
+       service_start $siproxd_bin --config "$siproxd_conf_prefix$cfg"
+}
+
+stop_instance() {
+       local cfg="$1"
+
+       config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid"
+
+       SERVICE_PID_FILE="$pid_file" \
+       service_stop $siproxd_bin
+}
+
+start() {
+       mkdir -m 0755 -p "$siproxd_conf_dir"
+       mkdir -m 0755 -p "$siproxd_registration_dir"
+       [ -d "$siproxd_pid_dir" ] || {
+               mkdir -m 0755 -p "$siproxd_pid_dir"
+               chmod 0750 "$siproxd_pid_dir"
+               chown nobody:nogroup "$siproxd_pid_dir"
+       }
+
+       config_load 'siproxd'
+       config_foreach start_instance 'siproxd'
+}
+
+stop() {
+       config_load 'siproxd'
+       config_foreach stop_instance 'siproxd'
+}
diff --git a/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch b/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch
new file mode 100644 (file)
index 0000000..20f3b6b
--- /dev/null
@@ -0,0 +1,26 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -77,8 +77,8 @@ plugin_regex_la_LDFLAGS = -module -avoid
+ #  else Cygwin goes beserk when building...)
+ #
+ sbin_PROGRAMS = siproxd
+-siproxd_LDFLAGS=-export-dynamic
+-siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS)
++siproxd_LDFLAGS=-export-dynamic -lltdl
++siproxd_LDADD = $(DLOPENPLUGINS)
+ siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \
+                 sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \
+                 rtpproxy_relay.c accessctl.c route_processing.c \
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -326,8 +326,8 @@ plugin_prefix_la_LDFLAGS = -module -avoi
+ #
+ plugin_regex_la_SOURCES = plugin_regex.c
+ plugin_regex_la_LDFLAGS = -module -avoid-version -shrext '.so'
+-siproxd_LDFLAGS = -export-dynamic
+-siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS)
++siproxd_LDFLAGS = -export-dynamic -lltdl
++siproxd_LDADD = $(DLOPENPLUGINS)
+ siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \
+                 sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \
+                 rtpproxy_relay.c accessctl.c route_processing.c \
diff --git a/net/sipsak/Makefile b/net/sipsak/Makefile
new file mode 100644 (file)
index 0000000..24cebd3
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# Copyright (C) 2006-2009 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:=sipsak
+PKG_VERSION:=0.9.6
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://download.berlios.de/sipsak/ \
+       http://ftp.iptel.org/pub/sipsak/
+PKG_MD5SUM:=c4eb8e282902e75f4f040f09ea9d99d5
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/sipsak
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEPENDS:=+libopenssl
+  TITLE:=SIP (Session Initiation Protocol) stress and diagnostics utility
+  URL:=http://www.sipsak.org/
+endef
+
+define Build/Configure
+       $(call Build/Configure/Default, \
+               --disable-gnutls \
+       )
+endef
+
+define Package/sipsak/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sipsak $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,sipsak))
diff --git a/net/sipsak/patches/001-ssp.patch b/net/sipsak/patches/001-ssp.patch
new file mode 100644 (file)
index 0000000..1dda867
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -363,7 +363,7 @@ AC_DEFUN([SIPSAK_GCC_STACK_PROTECT_CC],[
+     AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
+     ssp_old_cflags="$CFLAGS"
+     CFLAGS="$CFLAGS -fstack-protector"
+-    AC_TRY_COMPILE(,,, ssp_cc=no)
++    AC_TRY_LINK(,,, ssp_cc=no)
+     echo $ssp_cc
+     if test "X$ssp_cc" = "Xno"; then
+       CFLAGS="$ssp_old_cflags"
+--- a/configure
++++ b/configure
+@@ -2923,7 +2923,7 @@ main ()
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
++  (eval $ac_link) 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
diff --git a/net/sipsak/patches/002-no_cares_ruli.patch b/net/sipsak/patches/002-no_cares_ruli.patch
new file mode 100644 (file)
index 0000000..759ec94
--- /dev/null
@@ -0,0 +1,276 @@
+diff -urN sipsak-0.9.6/configure sipsak-0.9.6.new/configure
+--- sipsak-0.9.6/configure     2006-01-28 22:11:34.000000000 +0100
++++ sipsak-0.9.6.new/configure 2012-08-06 16:45:07.051588486 +0200
+@@ -5954,264 +5954,6 @@
+-      echo "$as_me:$LINENO: checking for ares_version.h" >&5
+-echo $ECHO_N "checking for ares_version.h... $ECHO_C" >&6
+-
+-      ares_incdir=NONE
+-      ares_libdir=NONE
+-      ares_libcall=NONE
+-      ares_incdirs="/usr/include /usr/local/include /sw/include"
+-      ares_libdirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /sw/lib"
+-      ares_libexten=".so .dylib .a"
+-
+-      for dir in $ares_incdirs; do
+-              try="$dir/ares_version.h"
+-              if test -f $try; then
+-                      ares_incdir=$dir;
+-                      break;
+-              fi
+-      done
+-
+-      if test "$ares_incdir" = "NONE"; then
+-              echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6
+-      else
+-              echo "$as_me:$LINENO: result: found at $ares_incdir" >&5
+-echo "${ECHO_T}found at $ares_incdir" >&6
+-
+-              echo "$as_me:$LINENO: checking for c-ares lib" >&5
+-echo $ECHO_N "checking for c-ares lib... $ECHO_C" >&6
+-
+-              for dir in $ares_libdirs; do
+-                      for extension in $ares_libexten; do
+-                              try="$dir/libcares$extension"
+-                              if test -f $try; then
+-                                      ares_libdir=$dir;
+-                                      ares_libcall=cares;
+-                                      break;
+-                              fi
+-                      done
+-                      if test "$ares_libdir" != "NONE"; then
+-                              break;
+-                      fi
+-              done
+-
+-              if test "$ares_libdir" = "NONE"; then
+-                      echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6
+-              else
+-                      echo "$as_me:$LINENO: result: found at $ares_libdir" >&5
+-echo "${ECHO_T}found at $ares_libdir" >&6
+-              fi
+-
+-              echo "$as_me:$LINENO: checking for ares_version in -lcares" >&5
+-echo $ECHO_N "checking for ares_version in -lcares... $ECHO_C" >&6
+-if test "${ac_cv_lib_cares_ares_version+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lcares  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char ares_version ();
+-int
+-main ()
+-{
+-ares_version ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_cares_ares_version=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_cares_ares_version=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_cares_ares_version" >&5
+-echo "${ECHO_T}$ac_cv_lib_cares_ares_version" >&6
+-if test $ac_cv_lib_cares_ares_version = yes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_CARES_H 1
+-_ACEOF
+-
+-                LIBS="$LIBS -L$ares_libdir -l$ares_libcall"
+-                CFLAGS="$CFLAGS -I$ares_incdir"
+-                SIPSAK_HAVE_ARES="1"
+-
+-
+-fi
+-
+-      fi
+-
+-if test "X$SIPSAK_HAVE_ARES" == "X"; then
+-
+-      echo "$as_me:$LINENO: checking for ruli.h" >&5
+-echo $ECHO_N "checking for ruli.h... $ECHO_C" >&6
+-
+-      ruli_incdir=NONE
+-      ruli_libdir=NONE
+-      ruli_incdirs="/usr/include /usr/local/include /sw/include"
+-      ruli_libdirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /sw/lib"
+-      ruli_libexten=".so .dylib .a"
+-
+-      for dir in $ruli_incdirs; do
+-              try="$dir/ruli.h"
+-              if test -f $try; then
+-                      ruli_incdir=$dir;
+-                      break;
+-              fi
+-      done
+-
+-      if test "$ruli_incdir" = "NONE"; then
+-              echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6
+-      else
+-              echo "$as_me:$LINENO: result: found at $ruli_incdir" >&5
+-echo "${ECHO_T}found at $ruli_incdir" >&6
+-
+-              echo "$as_me:$LINENO: checking for libruli" >&5
+-echo $ECHO_N "checking for libruli... $ECHO_C" >&6
+-
+-              for dir in $ruli_libdirs; do
+-                      for extension in $ruli_libexten; do
+-                              try="$dir/libruli$extension"
+-                              if test -f $try; then
+-                                      ruli_libdir=$dir;
+-                                      break;
+-                              fi
+-                      done
+-                      if test "$ruli_libdir" != "NONE"; then
+-                              break;
+-                      fi
+-              done
+-
+-              if test "$ruli_libdir" = "NONE"; then
+-                      echo "$as_me:$LINENO: result: not found" >&5
+-echo "${ECHO_T}not found" >&6
+-              else
+-                      echo "$as_me:$LINENO: result: found at $ruli_libdir" >&5
+-echo "${ECHO_T}found at $ruli_libdir" >&6
+-              fi
+-
+-              echo "$as_me:$LINENO: checking for ruli_sync_query in -lruli" >&5
+-echo $ECHO_N "checking for ruli_sync_query in -lruli... $ECHO_C" >&6
+-if test "${ac_cv_lib_ruli_ruli_sync_query+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lruli  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char ruli_sync_query ();
+-int
+-main ()
+-{
+-ruli_sync_query ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_ruli_ruli_sync_query=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_ruli_ruli_sync_query=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_ruli_ruli_sync_query" >&5
+-echo "${ECHO_T}$ac_cv_lib_ruli_ruli_sync_query" >&6
+-if test $ac_cv_lib_ruli_ruli_sync_query = yes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_RULI_H 1
+-_ACEOF
+-
+-                LIBS="$LIBS -L$ruli_libdir -lruli"
+-                CFLAGS="$CFLAGS -I$ruli_incdir"
+-
+-fi
+-
+-      fi
+-
+-else
+-
+ for ac_header in arpa/nameser.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+@@ -6361,7 +6103,6 @@
+ done
+-fi
+       # Check for T1 timer value
diff --git a/net/smap/Makefile b/net/smap/Makefile
new file mode 100644 (file)
index 0000000..f6a1a07
--- /dev/null
@@ -0,0 +1,64 @@
+# 
+# Copyright (C) 2009 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:=smap
+PKG_VERSION:=0.6.0
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-20081016.tar.gz
+PKG_SOURCE_URL:=http://www.wormulon.net/smap/
+PKG_MD5SUM:=814456ccc8fea5688382b7ec55fe44eb
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/smap-$(PKG_VERSION)/smap
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+LIBTOOL="$(STAGING_DIR)/host/bin/libtool"
+
+define Package/smap
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  TITLE:=A SIP network discovery tool
+  MAINTAINER:=Daniel Dickinson <openwrt@cshore.neomailbox.net>
+  URL:=http://www.wormulon.net/smap/
+  DEPENDS:=+libpthread
+endef
+
+define Package/smap/description
+ Discovers and identifies SIP devices on the network including hardware
+ phones, softphones, PBX software, and PBX equipment.
+endef
+
+# define Package/smap/conffiles
+# /etc/config/smap
+# endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CC="$(TARGET_CC)" \
+               LD="$(TARGET_LD)" \
+               CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -DRAW_SOCKET -DHAVE_RANDOM -DSMAP_OS=linux" \
+               LDFLAGS="$(TARGET_LDFLAGS) -lm -lpthread" \
+               LIBTOOL="$(LIBTOOL)" \
+               smap
+endef
+
+define Package/smap/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/smap $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/share/smap
+       $(CP) $(PKG_BUILD_DIR)/fingerprint.db $(1)/usr/share/smap
+endef
+
+$(eval $(call BuildPackage,smap))
diff --git a/net/smap/patches/00-fix-broadcast.patch b/net/smap/patches/00-fix-broadcast.patch
new file mode 100644 (file)
index 0000000..c47b89e
--- /dev/null
@@ -0,0 +1,62 @@
+diff -Naur smap.orig/icmpping.c smap/icmpping.c
+--- smap.orig/icmpping.c       2007-10-07 06:15:11.000000000 -0400
++++ smap/icmpping.c    2009-06-13 11:57:28.000000000 -0400
+@@ -182,6 +182,7 @@
+       struct sockaddr_in      sin;
+ #define ICMP_PKT_LEN  (sizeof(struct icmp) + ICMP_PAYLOAD_LEN)
+       char                            icmpbuf[ICMP_PKT_LEN];
++      socklen_t socklen;
+       /* prepare ICMP packet */
+       memset(&icmpbuf, 'A', ICMP_PKT_LEN);
+@@ -207,6 +208,8 @@
+       if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &one, sizeof(one)) != 0)
+               perror("setsockopt");
+ #endif
++      if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one)) != 0)
++              perror("setsockopt");
+       icmp->icmp_cksum = icmp_in_cksum((unsigned short *) &icmpbuf, ICMP_PKT_LEN);
+       /* send data */
+diff -Naur smap.orig/smap.c smap/smap.c
+--- smap.orig/smap.c   2007-11-03 14:14:52.000000000 -0400
++++ smap/smap.c        2009-06-13 10:49:15.000000000 -0400
+@@ -244,11 +244,11 @@
+                 break;
+             case 't': /* TCP transport */
+                 /* UDP is default so TCP would override it */
+-                config.flags ^= FLAG_UDP_TRANSPORT;
++                config.flags &= ~FLAG_UDP_TRANSPORT;
+                 config.flags |= FLAG_TCP_TRANSPORT;
+                 break;
+             case 'u': /* UDP transport */
+-                config.flags ^= FLAG_TCP_TRANSPORT;
++                config.flags &= ~FLAG_TCP_TRANSPORT;
+                 config.flags |= FLAG_UDP_TRANSPORT;
+                 break;
+                       case 'r': /* ratelimit messages/sec */
+diff -Naur smap.orig/transport_udp.c smap/transport_udp.c
+--- smap.orig/transport_udp.c  2008-08-20 09:02:57.000000000 -0400
++++ smap/transport_udp.c       2009-06-13 11:56:15.000000000 -0400
+@@ -52,6 +52,7 @@
+       extern int udp_sendsock;
+       extern struct sockaddr_in udp_sendsock_sockaddr;
+       int sockaddrlen;
++      int one;
+     /* is 5060 (DEFAULT_SIP_PORT) available?
+      * if yes, we'll use it since some clients send responses to
+@@ -116,6 +117,13 @@
+             error(ERR_DEBUG, "bind() successful");
+         }
+     }
++      one = 1;
++      if (setsockopt(udp_sendsock, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one)) != 0) {
++              perror("setsockopt");
++              error(ERR_ERROR, "unable to set socket to broadcast");
++              return 0;
++      }
++    
+     if (getsockname(udp_sendsock, (struct sockaddr *) &udp_sendsock_sockaddr,
+                 (socklen_t *) &sockaddrlen) != 0)
+     if (DEBUG) perror("getsocknameudp_sendsock");
diff --git a/net/smap/patches/01-add-tecom-supported-header.patch b/net/smap/patches/01-add-tecom-supported-header.patch
new file mode 100644 (file)
index 0000000..699a635
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur smap.broadcast/test_supported.c smap/test_supported.c
+--- smap.broadcast/test_supported.c    2009-06-14 21:41:49.000000000 -0400
++++ smap/test_supported.c      2009-06-14 21:51:17.000000000 -0400
+@@ -49,6 +49,8 @@
+       {"Supported: timer, 100rel, replaces, callerid", 13},
+       /* Cisco 79x0 */
+       {"Supported: replaces,join,norefersub", 14},
++      /* Tecom IP2007 */
++      {"Supported: 100rel,replaces", 15 },
+       {"", 0}
+ };
diff --git a/net/smap/patches/02-segfault-and-toofast-bugfixes.patch b/net/smap/patches/02-segfault-and-toofast-bugfixes.patch
new file mode 100644 (file)
index 0000000..1f14786
--- /dev/null
@@ -0,0 +1,63 @@
+diff -Naur smap.supported/config.h smap/config.h
+--- smap.supported/config.h    2009-06-14 22:18:57.000000000 -0400
++++ smap/config.h      2009-06-24 16:36:50.000000000 -0400
+@@ -113,6 +113,7 @@
+ #define DEFAULT_SIP_PORT      5060
+ #define DEFAULT_TIMEOUT               500             /* in ms */
++#define DEFAULT_RATELIMIT       25
+ /* randomizer related ********************************************************/
+ enum { RAND_CALLID = 1, RAND_TAG, RAND_CSEQ, RAND_BRANCH };
+diff -Naur smap.supported/listener.c smap/listener.c
+--- smap.supported/listener.c  2009-06-14 22:18:57.000000000 -0400
++++ smap/listener.c    2009-06-15 04:36:40.000000000 -0400
+@@ -130,7 +130,7 @@
+                       /* use Call-ID to match response to requests */
+                       callid = response_getcallid(msg);
+                       if (callid == 0) {
+-                              error(ERR_NOTICE, "could not parse Call-ID");
++                              error(ERR_DEBUG, "could not parse Call-ID");
+                               goto nextmsg;
+                       }
+                       state = state_lookup_by_callid(callid);
+diff -Naur smap.supported/results.c smap/results.c
+--- smap.supported/results.c   2009-06-14 22:18:57.000000000 -0400
++++ smap/results.c     2009-06-24 16:38:00.000000000 -0400
+@@ -39,6 +39,7 @@
+                       (task->results & RES_ICMP_REACH) ? "reachable" : "unreachable",
+                       (task->results & RES_SIP_ENABLED) ? "enabled" : "disabled");
+               if (task->results & RES_SIP_ENABLED)
++                error(ERR_DEBUG, "Looking up fingerprint");
+                       fingerprint_lookup(*task->fp);
+               break;
+       default:
+diff -Naur smap.supported/smap.c smap/smap.c
+--- smap.supported/smap.c      2009-06-14 22:18:57.000000000 -0400
++++ smap/smap.c        2009-06-24 17:09:39.000000000 -0400
+@@ -197,7 +197,7 @@
+     config.sip_port = DEFAULT_SIP_PORT;
+     config.sip_domain = NULL;
+     config.timeout = DEFAULT_TIMEOUT;
+-      config.ratelimit = 0;
++    config.ratelimit = DEFAULT_RATELIMIT;
+       printf("\nsmap %s <hs@123.org> "
+         "http://www.wormulon.net/\n\n", SMAP_VERSION);
+@@ -338,12 +338,15 @@
+             break; /* make gcc happy */
+     }
+ error_while_scanning:
+-
+       pthread_join(pth_worker, NULL);
+       pthread_kill(pth_worker, SIGINT);
+       pthread_kill(pth_listener, SIGINT);
+       stats_dump();
++      signal(SIGINT, SIG_DFL);
++      signal(SIGTERM, SIG_DFL);
++      signal(SIGKILL, SIG_DFL);
++
+       /* clean up */
+       pthread_mutex_destroy(&scrlock);
+       pthread_mutex_destroy(&tasklock);
diff --git a/net/yate/Makefile b/net/yate/Makefile
new file mode 100644 (file)
index 0000000..27f2c28
--- /dev/null
@@ -0,0 +1,277 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+# Copyright (C) 2006-2011 SMBPhone
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/uclibc++.mk
+
+RELEASEVER:=3.2.0
+
+PKG_NAME:=yate
+PKG_VERSION:=$(RELEASEVER)-1
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://yate.null.ro/tarballs/yate3/
+PKG_MD5SUM:=8ef5f0c420cb41ad2b5828fdba28c4ee
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)/Default
+  SUBMENU:=Telephony
+  SECTION:=net
+  CATEGORY:=Network
+  URL:=http://yate.null.ro/
+  MAINTAINER:=Daniel Dickinson <openwrt@cshore.neomailbox.net>
+endef
+
+define Package/$(PKG_NAME)
+  $(call Package/yate/Default)
+  DEPENDS:=+libpthread $(CXX_DEPENDS)
+  TITLE:=Yet Another Telphony Engine
+  MENU:=1
+endef
+
+define Package/$(PKG_NAME)/conffiles
+/etc/yate/yate.conf
+endef
+
+define Package/$(PKG_NAME)/Default/description
+  Is a next-generation telephony engine focused on the VoIP and PSTN.  It does
+  SIP, H.323, IAX, PSTN, and more.
+endef
+
+define Package/$(PKG_NAME)-scripts-php
+  $(call Package/yate/Default)
+  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +php5 +php5-cli
+  TITLE:= PHP Scripts and script libraries for Yate
+endef
+
+define Package/$(PKG_NAME)-scripts-perl
+  $(call Package/yate/Default)
+  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +microperl
+  TITLE:= Perl module for Yate
+endef
+
+define Package/$(PKG_NAME)-scripts-python
+  $(call Package/yate/Default)
+  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +python-mini
+  TITLE:= Python module for Yate
+endef
+
+define Package/$(PKG_NAME)-sounds
+  $(call Package/yate/Default)
+  DEPENDS += $(PKG_NAME)
+  TITLE := Sounds for Yate
+endef
+
+define Package/$(PKG_NAME)-collection-basic
+  $(call Package/yate/Default)
+  DEPENDS += $(PKG_NAME) \
+       +$(PKG_NAME)-sounds \
+       +$(PKG_NAME)-mod-dumbchan \
+       +$(PKG_NAME)-mod-regfile \
+       +$(PKG_NAME)-mod-regexroute \
+       +$(PKG_NAME)-mod-rmanager \
+       +$(PKG_NAME)-mod-tonegen \
+       +$(PKG_NAME)-mod-yrtpchan \
+       +$(PKG_NAME)-mod-ysipchan
+   TITLE := Basic Yate Server
+endef
+
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include $(if $(CONFIG_BIG_ENDIAN),-DBIGENDIAN,)
+
+CONFIGURE_ARGS+= \
+       --without-libqt4 \
+       --without-qtstatic \
+       --without-pwlib \
+       --without-coredumper \
+       --without-doxygen \
+       --without-kdoc \
+       --with-spandsp="$(STAGING_DIR)/usr/include" \
+       --with-libgsm="$(STAGING_DIR)/usr/include/gsm" \
+       --with-mysql="$(STAGING_DIR)/usr" \
+       --with-openssl="$(STAGING_DIR)/usr" \
+       --with-libpq="$(STAGING_DIR)/usr" \
+       --with-libspeex="$(STAGING_DIR)/usr/include/speex" \
+       --with-zaptel="$(STAGING_DIR)/usr/include" \
+       --with-zlib="$(STAGING_DIR)/usr"
+
+CONFIGURE_VARS+= \
+       CFLAGS="$$$$CFLAGS -nostdinc++" \
+       LDFLAGS="$$$$LDFLAGS -nodefaultlibs" \
+       LIBS="-lc -luClibc++ -lpthread -lresolv -ldl -lm -lc $(LIBGCC_S)"
+
+define Package/$(PKG_NAME)/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       
+       for yatelib in "" sig mgcp jabber; do \
+               $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyate$$$${yatelib}.so.$(RELEASEVER) $(1)/usr/lib ;\
+               $(LN) ./libyate$$$${yatelib}.so.$(RELEASEVER) $(1)/usr/lib/libyate$$$${yatelib}.so ;\
+       done
+       
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yate $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/yate/yate.conf    $(1)/etc/$(PKG_NAME)/yate.conf
+endef
+
+define Package/$(PKG_NAME)-scripts-php/install
+       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/leavemail.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/queue_in.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/queue_out.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/route.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/voicemail.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libvoicemail.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyatechan.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyateivr.php $(1)/usr/share/yate/scripts/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyate.php $(1)/usr/share/yate/scripts/
+endef
+
+define Package/$(PKG_NAME)-scripts-perl/install
+       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/Yate.pm $(1)/usr/share/yate/scripts/
+endef
+
+define Package/$(PKG_NAME)-scripts-python/install
+       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyate.py $(1)/usr/share/yate/scripts/
+endef
+
+define Package/$(PKG_NAME)-sounds/install
+       $(INSTALL_DIR) $(1)/usr/share/yate/sounds
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/yate/sounds/ $(1)/usr/share/yate/
+endef
+
+define Package/$(PKG_NAME)-collection-basic/install
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(STAGING_DIR)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(STAGING_DIR)/usr/include/
+       $(INSTALL_DIR) $(STAGING_DIR)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(STAGING_DIR)/usr/lib/
+endef
+
+define BuildPlugin
+  define Package/$(PKG_NAME)-mod-$(1)
+    $(call Package/yate/Default)
+    DEPENDS:= $(PKG_NAME) $(4)
+    TITLE:=$(3)
+  endef
+
+  $(if $(PKG_BUILD_DIR)/conf.d/$(1).conf.sample,
+  define Package/$(PKG_NAME)-mod-$(1)/conffiles
+    /etc/yate/$(1).conf
+  endef
+  ,)
+  
+  define Package/$(PKG_NAME)-mod-$(1)/description
+    $(3) module for $(PKG_NAME)
+  endef
+  
+  define Package/$(PKG_NAME)-mod-$(1)/install
+       $$(INSTALL_DIR) $$(1)/usr/lib/yate/$(2)
+       $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/lib/yate/$(2)/$(1).yate $$(1)/usr/lib/yate/$(2)/$(1).yate
+       if [ -f $$(PKG_INSTALL_DIR)/etc/yate/$(1).conf ]; then \
+               $$(INSTALL_DIR) $$(1)/etc/yate ;\
+               $$(INSTALL_DATA) $$(PKG_INSTALL_DIR)/etc/yate/$(1).conf $$(1)/etc/yate/ ;\
+       fi
+       $(if $(5),$(foreach extra_file,$(5),\
+               $(INSTALL_DIR) $$(1)$(dir $(extra_file)) ; \
+               $(CP) $(PKG_INSTALL_DIR)$(extra_file) $$(1)$(extra_file) ; \
+       ),)
+  endef
+
+  $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
+$(eval $(call BuildPackage,$(PKG_NAME)-collection-basic))
+$(eval $(call BuildPackage,$(PKG_NAME)-scripts-php))
+$(eval $(call BuildPackage,$(PKG_NAME)-scripts-perl))
+$(eval $(call BuildPackage,$(PKG_NAME)-scripts-python))
+$(eval $(call BuildPackage,$(PKG_NAME)-sounds))
+$(eval $(call BuildPlugin,accfile,server,SIP or H.323 client (from file),))
+$(eval $(call BuildPlugin,alsachan,client,ALSA Sound Channel,+alsa-lib))
+$(eval $(call BuildPlugin,amrnbcodec,,AMR-NB Codec,@BROKEN)) # Missing amr-nb library
+$(eval $(call BuildPlugin,analog,server,Analog (e.g. POTS) Channel,))
+$(eval $(call BuildPlugin,analogdetect,server,Analog Data Detector,))
+$(eval $(call BuildPlugin,analyzer,,Test Call Generator and AQ Analyzer,))
+$(eval $(call BuildPlugin,callcounters,server,Count Active Call Legs,))
+$(eval $(call BuildPlugin,callfork,,Call Forker,))
+$(eval $(call BuildPlugin,callgen,,Call Generator,))
+$(eval $(call BuildPlugin,ccongestion,server,Accept Status from Installed Engine Monitors,))
+$(eval $(call BuildPlugin,cdrbuild,,Call Detail Record Builder,))
+$(eval $(call BuildPlugin,cdrfile,,Call Detail Record to File,))
+$(eval $(call BuildPlugin,ciscosm,server,SS7 Support,))
+$(eval $(call BuildPlugin,clustering,server,Clustering Server Support,))
+$(eval $(call BuildPlugin,conference,,Conference Room Mixer,))
+$(eval $(call BuildPlugin,cpuload,server,Monitor CPU load and Inform Yate,))
+$(eval $(call BuildPlugin,dbpbx,server,PBX IVR and Multi-routing from Database,))
+$(eval $(call BuildPlugin,dbwave,server,Wav Media for DB Storage,+$(PKG_NAME)-mod-wavefile))
+$(eval $(call BuildPlugin,dumbchan,,Dummy Channel,))
+$(eval $(call BuildPlugin,enumroute,,ENUM Routing,))
+$(eval $(call BuildPlugin,extmodule,,External Module Handler,))
+$(eval $(call BuildPlugin,faxchan,,Spandsp Fax Channel,+libspandsp))
+$(eval $(call BuildPlugin,filetransfer,,File Transfer Driver,))
+$(eval $(call BuildPlugin,gsmcodec,,GSM Codec,+libgsm))
+$(eval $(call BuildPlugin,h323chan,,Open H.323 Channel,+libopenh323 @BROKEN)) # libopenh323 doesn't create package or stagin_dir includes or libs
+$(eval $(call BuildPlugin,heartbeat,server,Linux-HA compatible heartbeat,))
+$(eval $(call BuildPlugin,ilbccodec,,iLBC Codec,))
+$(eval $(call BuildPlugin,isupmangler,server,ISUP paramter mangling in a STP,))
+$(eval $(call BuildPlugin,jabberclient,client,Jabber Client,))
+$(eval $(call BuildPlugin,jabberserver,jabber,Jabber Server,))
+$(eval $(call BuildPlugin,jbfeatures,jabber,Jabber Server Features,))
+$(eval $(call BuildPlugin,lateroute,server,Last Chance Routing,))
+$(eval $(call BuildPlugin,lksctp,server,SCTP sockets using linux kernel,@BROKEN)) # Missing libraries/header files
+$(eval $(call BuildPlugin,mgcpca,server,Media Gateway Control Protocol Agent,))
+$(eval $(call BuildPlugin,mgcpgw,server,Media Gateway Control Protocol Gateway,))
+$(eval $(call BuildPlugin,moh,,On Hold (music) Generator,))
+$(eval $(call BuildPlugin,monitoring,server,Monitoring/gathering Information,))
+$(eval $(call BuildPlugin,mrcpspeech,server,MRCP v2 Voice/Tone Detector and Synthesizer,))
+$(eval $(call BuildPlugin,msgsniff,,Sample Message Sniffer,))
+$(eval $(call BuildPlugin,mux,,Data Multiplexor,))
+$(eval $(call BuildPlugin,mysqldb,server,MySQL Backend DB,+libmysqlclient-r))
+$(eval $(call BuildPlugin,openssl,,Encrypted transport (OpenSSL),+libopenssl))
+$(eval $(call BuildPlugin,osschan,client,OSS Sound Channel,))
+$(eval $(call BuildPlugin,park,server,Call Parking,))
+$(eval $(call BuildPlugin,pbx,,PBX Message Handlers,))
+$(eval $(call BuildPlugin,pbxassist,server,Full featured PBX and IVR,))
+$(eval $(call BuildPlugin,pgsqldb,server,PostgrestSQL Backend DB,+libpq))
+$(eval $(call BuildPlugin,presence,server,Presence,))
+$(eval $(call BuildPlugin,regfile,server,Registration based on users in file,))
+$(eval $(call BuildPlugin,queues,server,Call Distribution and Queues from Database,))
+$(eval $(call BuildPlugin,queuesnotify,server,Notify when queued call status changes,))
+$(eval $(call BuildPlugin,regexroute,,Regular Expression Based Routing,))
+$(eval $(call BuildPlugin,rmanager,,Yate Remote Management,))
+$(eval $(call BuildPlugin,sip_cnam_lnp,sip,Query CNAM and LNP databases using SIP INVITE,))
+$(eval $(call BuildPlugin,sigtransport,server,SIGTRAN (SS7 over IP) connection provider,))
+$(eval $(call BuildPlugin,sipfeatures,server,SIP Features (SUBSCRIBE/NOTIFY),))
+$(eval $(call BuildPlugin,speexcodec,,Speex Codec,+libspeex))
+$(eval $(call BuildPlugin,subscription,server,Subcription handler and presence notifier,))
+$(eval $(call BuildPlugin,tdmcard,server,TDM Cards Signalling and Data Driver,@BROKEN)) # Missing TDM libraries
+$(eval $(call BuildPlugin,tonedetect,,Detectors for Various Tones,))
+$(eval $(call BuildPlugin,tonegen,,Tones Generator,))
+$(eval $(call BuildPlugin,users,server,Users,))
+$(eval $(call BuildPlugin,wavefile,,Wav file Record and Playback,))
+$(eval $(call BuildPlugin,wpcard,server,Wanpipe PRI cards Signalling and Data Driver,@BROKEN)) # Mising wanpipe and PRI libraries
+$(eval $(call BuildPlugin,yiaxchan,,IAX Channel,))
+$(eval $(call BuildPlugin,yjinglechan,,Jingle Channel,))
+$(eval $(call BuildPlugin,yrtpchan,,RTP Channel and Other Data Helper,))
+$(eval $(call BuildPlugin,yradius,server,RADIUS Client,))
+$(eval $(call BuildPlugin,ysigchan,server,SS7/ISDN Protocols - Yate Signalling Library,))
+$(eval $(call BuildPlugin,ysipchan,,SIP Channel,))
+$(eval $(call BuildPlugin,ysockschan,,SOCKS Channel,))
+$(eval $(call BuildPlugin,ysnmpagent,server,SNMP Protocol Agent,,/usr/share/yate/data/NULL-TEAM-MIB.txt /usr/share/yate/data/snmp_mib.conf /usr/share/yate/data/YATE-MIB.txt))
+$(eval $(call BuildPlugin,ystunchan,,STUN Support,))
+$(eval $(call BuildPlugin,zapcard,server,Zaptel Card Signalling and Data Driver,+zaptel14-libtonezone))
+$(eval $(call BuildPlugin,zlibcompress,,Zlib Compression,+zlib))
diff --git a/net/yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch b/net/yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch
new file mode 100644 (file)
index 0000000..bc61df0
--- /dev/null
@@ -0,0 +1,111 @@
+--- a/engine/Makefile.in
++++ b/engine/Makefile.in
+@@ -31,8 +31,9 @@ CLSOBJS := TelEngine.o ObjList.o HashLis
+ ENGOBJS := Configuration.o Message.o Engine.o Plugin.o
+ TELOBJS := DataFormat.o Channel.o
+ CLIOBJS := Client.o ClientLogic.o
++MISCOBJS := dn_skipname.o
+-LIBOBJS := $(CLSOBJS) $(ENGOBJS) $(TELOBJS) $(CLIOBJS)
++LIBOBJS := $(CLSOBJS) $(ENGOBJS) $(TELOBJS) $(CLIOBJS) $(MISCOBJS)
+ CLEANS = $(LIBOBJS) core
+ CCOMPILE = $(CC) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS)
+ COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CPPFLAGS)
+@@ -109,6 +110,9 @@ String.o: @srcdir@/String.cpp $(MKDEPS)
+ regex.o: @top_srcdir@/engine/regex/regex.c $(MKDEPS)
+       $(CCOMPILE) -DSTDC_HEADERS $(REGEX_INC) -c $<
++dn_skipname.o: @srcdir@/dn_skipname.c $(MKDEPS)
++      $(CCOMPILE) -DSTDC_HEADERS -c $<
++
+ %.o: @srcdir@/%.cpp $(MKDEPS) $(EINC)
+       $(COMPILE) -c $<
+--- /dev/null
++++ b/engine/dn_skipname.c
+@@ -0,0 +1,85 @@
++/* Taken from patch by Natanael Copa for uClibc in message
++  * http://lists.busybox.net/pipermail/uclibc/2009-September/042971.html
++  * Turned into yate patch by Daniel Dickinson <openwrt@cshore.neomailbox.net>, Mar 11, 2011
++*/
++#include <sys/types.h>
++#include <resolv.h>
++
++/* taken from OpenBSD source */
++/*
++ * Copyright (c) 1985, 1993
++ *    The Regents of the University of California.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ * 3. Neither the name of the University nor the names of its contributors
++ *    may be used to endorse or promote products derived from this software
++ *    without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ * -
++ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies, and that
++ * the name of Digital Equipment Corporation not be used in advertising or
++ * publicity pertaining to distribution of the document or software without
++ * specific, written prior permission.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
++ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
++ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Skip over a compressed domain name. Return the size or -1.
++ */
++int
++__dn_skipname(const u_char *comp_dn, const u_char *eom)
++{
++      const u_char *cp;
++      int n;
++
++      cp = comp_dn;
++      while (cp < eom && (n = *cp++)) {
++              /*
++               * check for indirection
++               */
++              switch (n & INDIR_MASK) {
++              case 0:                 /* normal case, n == len */
++                      cp += n;
++                      continue;
++              case INDIR_MASK:        /* indirection */
++                      cp++;
++                      break;
++              default:                /* illegal type */
++                      return (-1);
++              }
++              break;
++      }
++      if (cp > eom)
++              return (-1);
++      return (cp - comp_dn);
++}
diff --git a/openser/Makefile b/openser/Makefile
deleted file mode 100644 (file)
index 889e472..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-#
-# Copyright (C) 2006 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:=openser
-PKG_VERSION:=1.0.1
-PKG_RELEASE:=1
-PKG_MD5SUM:=eebc16665003ee92daf96b216d6f9563
-# PKG_VARIANT:=-tls # for tls version
-PKG_VARIANT:=
-
-PKG_SOURCE_URL:=http://openser.org/pub/openser/$(PKG_VERSION)/src
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/openser
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  TITLE:=Configurable, free SIP server
-  URL:=http://www.openser.org
-  MENU:=1
-endef
-
-define Package/openser/conffiles
-/etc/openser/openser.cfg
-endef
-
-define Package/openser-mod-acc
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libradiusclient-ng
-  TITLE:=Accounting support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-auth
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Authentication support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-auth-db
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Authentication with database support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-auth-radius
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libradiusclient-ng
-  TITLE:=Authentication with RADIUS support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-avp-radius
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libradiusclient-ng
-  TITLE:=AVP with RADIUS support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-avpops
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=AVP options support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-dispatcher
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Dispatcher support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-diversion
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Diversion support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-flatstore
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Flatstore support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-gflags
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Gflags support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-group
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Group support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-group-radius
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libradiusclient-ng
-  TITLE:=Group with RADIUS support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-lcr
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser openser-mod-mysql
-  TITLE:=Least Cost Routing support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-mediaproxy
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Mediaproxy support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-msilo
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=MSilo support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-mysql
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libmysqlclient
-  TITLE:=MySQL support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-nathelper
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=NAT helper support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-options
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Options support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-pdt
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=PDT support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-permissions
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Permissions support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-pike
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=PIKE support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-sms
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=SMS support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-speeddial
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Speeddial supporte
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-uac
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=UAC support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-uac-redirect
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=UAC with redirect support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-uri
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=URI support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-uri-db
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +openser-mod-mysql
-  TITLE:=URI with database support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-uri-radius
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser +libradiusclient-ng
-  TITLE:=URI with RADIUS support
-  SUBMENU:=Telephony
-endef
-
-define Package/openser-mod-xlog
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=openser
-  TITLE:=Advanced logging support
-  SUBMENU:=Telephony
-endef
-
-# Select here the modules for the ipk package
-OPENSER_MODULES := sl tm rr maxfwd usrloc registrar dbtext textops exec
-
-OPENSER_MODULE_FILES := $(foreach module,$(OPENSER_MODULES),modules/$(module)/$(module).so)
-OPENSER_MODULES := $(patsubst %,modules/%,$(OPENSER_MODULES))
-
-define Build/Compile   
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               prefix=/ \
-               extra_defs="-DUSE_PTHREAD_MUTEX "  \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
-               LOCALBASE="$(STAGING_DIR)/usr" \
-               all utils/gen_ha1/gen_ha1
-endef
-
-define Package/openser/install 
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin/
-       $(CP) $(PKG_BUILD_DIR)/utils/gen_ha1/gen_ha1 $(1)/usr/sbin/openser_gen_ha1
-       $(CP) $(PKG_BUILD_DIR)/scripts/sc $(1)/usr/sbin/openserctl
-       chmod 744 $(1)/usr/sbin/openserctl
-       $(CP) $(PKG_BUILD_DIR)/scripts/sc.dbtext $(1)/usr/sbin/dbtextctl
-       chmod 744 $(1)/usr/sbin/dbtextctl
-       $(INSTALL_DIR) $(1)/usr/lib/openser/modules
-       (cd $(PKG_BUILD_DIR);\
-               $(CP) $(OPENSER_MODULE_FILES) $(1)/usr/lib/openser/modules/; \
-       )
-       $(INSTALL_DIR) $(1)/etc/openser
-       $(CP) $(PKG_BUILD_DIR)/etc/openser.cfg $(1)/etc/openser/
-endef
-
-define BuildPlugin
-  define Package/$(1)/install
-       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/openser/modules/
-       $(CP) $(PKG_BUILD_DIR)/modules/$(2)/$(2).so \
-                       $$(1)/usr/lib/openser/modules/ ;
-  endef
-
-  $$(eval $$(call BuildPackage,$(1)))
-endef
-
-$(eval $(call BuildPackage,openser))
-$(eval $(call BuildPlugin,openser-mod-acc,acc))
-$(eval $(call BuildPlugin,openser-mod-auth,auth))
-$(eval $(call BuildPlugin,openser-mod-auth-db,auth_db))
-$(eval $(call BuildPlugin,openser-mod-auth-radius,auth_radius))
-$(eval $(call BuildPlugin,openser-mod-avp-radius,avp_radius))
-$(eval $(call BuildPlugin,openser-mod-avpops,avpops))
-$(eval $(call BuildPlugin,openser-mod-dispatcher,dispatcher))
-$(eval $(call BuildPlugin,openser-mod-diversion,diversion))
-$(eval $(call BuildPlugin,openser-mod-flatstore,flatstore))
-$(eval $(call BuildPlugin,openser-mod-gflags,gflags))
-$(eval $(call BuildPlugin,openser-mod-group,group))
-$(eval $(call BuildPlugin,openser-mod-group-radius,group_radius))
-$(eval $(call BuildPlugin,openser-mod-lcr,lcr))
-$(eval $(call BuildPlugin,openser-mod-mediaproxy,mediaproxy))
-$(eval $(call BuildPlugin,openser-mod-msilo,msilo))
-$(eval $(call BuildPlugin,openser-mod-mysql,mysql))
-$(eval $(call BuildPlugin,openser-mod-nathelper,nathelper))
-$(eval $(call BuildPlugin,openser-mod-options,options))
-$(eval $(call BuildPlugin,openser-mod-pdt,pdt))
-$(eval $(call BuildPlugin,openser-mod-permissions,permissions))
-$(eval $(call BuildPlugin,openser-mod-pike,pike))
-$(eval $(call BuildPlugin,openser-mod-sms,sms))
-$(eval $(call BuildPlugin,openser-mod-speeddial,speeddial))
-$(eval $(call BuildPlugin,openser-mod-uac,uac))
-$(eval $(call BuildPlugin,openser-mod-uac-redirect,uac_redirect))
-$(eval $(call BuildPlugin,openser-mod-uri,uri))
-$(eval $(call BuildPlugin,openser-mod-uri-db,uri_db))
-$(eval $(call BuildPlugin,openser-mod-uri-radius,uri_radius))
-$(eval $(call BuildPlugin,openser-mod-xlog,xlog))
diff --git a/openser/patches/001-openser_cfg.patch b/openser/patches/001-openser_cfg.patch
deleted file mode 100644 (file)
index f26e79e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- openser-1.0.0-tls.orig/etc/openser.cfg     2005-10-28 21:45:33.000000000 +0200
-+++ openser-1.0.0-tls/etc/openser.cfg  2006-01-07 01:39:01.077134312 +0100
-@@ -36,20 +36,20 @@
- # ------------------ module loading ----------------------------------
- # Uncomment this if you want to use SQL database
--#loadmodule "/usr/local/lib/openser/modules/mysql.so"
-+#loadmodule "/usr/lib/openser/modules/mysql.so"
--loadmodule "/usr/local/lib/openser/modules/sl.so"
--loadmodule "/usr/local/lib/openser/modules/tm.so"
--loadmodule "/usr/local/lib/openser/modules/rr.so"
--loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
--loadmodule "/usr/local/lib/openser/modules/usrloc.so"
--loadmodule "/usr/local/lib/openser/modules/registrar.so"
--loadmodule "/usr/local/lib/openser/modules/textops.so"
-+loadmodule "/usr/lib/openser/modules/sl.so"
-+loadmodule "/usr/lib/openser/modules/tm.so"
-+loadmodule "/usr/lib/openser/modules/rr.so"
-+loadmodule "/usr/lib/openser/modules/maxfwd.so"
-+loadmodule "/usr/lib/openser/modules/usrloc.so"
-+loadmodule "/usr/lib/openser/modules/registrar.so"
-+loadmodule "/usr/lib/openser/modules/textops.so"
- # Uncomment this if you want digest authentication
- # mysql.so must be loaded !
--#loadmodule "/usr/local/lib/openser/modules/auth.so"
--#loadmodule "/usr/local/lib/openser/modules/auth_db.so"
-+#loadmodule "/usr/lib/openser/modules/auth.so"
-+#loadmodule "/usr/lib/openser/modules/auth_db.so"
- # ----------------- setting module-specific parameters ---------------
diff --git a/openser/patches/002-sc.patch b/openser/patches/002-sc.patch
deleted file mode 100644 (file)
index 52ef9a6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
---- openser-1.0.0-tls.orig/scripts/sc  2005-08-11 14:08:02.000000000 +0200
-+++ openser-1.0.0-tls/scripts/sc       2006-01-29 02:18:43.319054456 +0100
-@@ -48,11 +48,15 @@
-       STARTOPTIONS= # for example -dddd
- fi
- if [ -z "$DIR" ] ; then
--      DIR=`dirname $0`
-+      DIR=/usr/sbin
- fi
- if [ -z "$SERBIN" ] ; then
-       SERBIN=$DIR/openser
- fi
-+if [ -z "$SIP_DOMAIN" ] ; then
-+      SIP_DOMAIN=$(nvram get sip_domain)
-+fi
-+
- ##### ----------------------------------------------- #####
- ### openser's FIFO server
-@@ -415,7 +419,7 @@
-       fi
-       if [ -z "$SERDOMAIN" ] ; then
--              echo "domain unknown: use usernames with domain or set default domain in SIP_DOMAIN"
-+              echo "domain unknown: use usernames with domain or set default domain in SIP_DOMAIN (with 'nvram set sip_domain=YOUR_SIP_DOMAIN')"
-               exit 1
-       fi
- }
-@@ -671,11 +675,7 @@
-                               set_user $2
-                               fifo_cmd ul_show_contact $USRLOC_TABLE "$SERUSER@$SERDOMAIN"
-                       elif [ $# -eq 1 ] ; then
--                              printf "Dumping all contacts may take long: are you sure you want to proceed? [Y|N] " > /dev/stderr
--                              read answer
--                              if [ "$answer" = "y" -o "$answer" = "Y" ] ; then
--                                      fifo_cmd ul_dump
--                              fi
-+                              fifo_cmd ul_dump
-                       else
-                               echo "wrong number of params for usrloc show"
-                               usage
diff --git a/openser/patches/003-makefile_defs.patch b/openser/patches/003-makefile_defs.patch
deleted file mode 100644 (file)
index a7275bd..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
---- openser-1.0.0-tls.orig/Makefile.defs       2005-10-28 18:32:39.000000000 +0200
-+++ openser-1.0.0-tls/Makefile.defs    2006-01-15 23:40:18.391547040 +0100
-@@ -917,7 +917,7 @@
- endif
- YACC_FLAGS=-d -b cfg
- # on solaris add -lxnet (e.g. LIBS= -lxnet)
--LIBS= -lfl -ldl -lresolv
-+LIBS= -ldl -lresolv
- #os specific stuff
-@@ -955,7 +955,7 @@
- endif
-       OLD_SOLARIS= $(shell echo "$(OSREL)" | \
-                               sed -e 's/^5\.[0-6][^0-9]*$$/yes/' )
--      LIBS+= -L$(LOCALBASE)/lib -lfl -lxnet -lnsl 
-+      LIBS+= -L$(LOCALBASE)/lib -lxnet -lnsl 
- ifeq  ($(OLD_SOLARIS), yes)
-               LIBS+=-lposix4
- else
-@@ -970,9 +970,9 @@
-       ifneq ($(found_lock_method), yes)
-               DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-               found_lock_method=yes
--              LIBS= -pthread -lfl  #dlopen is in libc
-+              LIBS= -pthread  #dlopen is in libc
-       else
--              LIBS= -lfl  #dlopen is in libc
-+              LIBS=  #dlopen is in libc
-       endif
-       YACC=yacc
- endif
-@@ -987,7 +987,7 @@
-       # (symbols on openbsd are prefixed by "_")
-       YACC=yacc
-       # no sched_yield on openbsd unless linking with c_r (not recommended)
--      LIBS= -lfl 
-+      LIBS= 
-       OPENBSD_IS_AOUT= $(shell echo "$(OSREL)" | \
-                               sed -e 's/^3\.[0-3][^0-9]*$$/yes/' |sed -e 's/^[0-2]\..*/yes/')
- # exception: on sparc openbsd 3.2 is elf and not aout
-@@ -1014,7 +1014,7 @@
-               found_lock_method=yes
-       endif
-       YACC=yacc
--      LIBS= -lfl 
-+      LIBS= 
- endif
- # OS X support, same as freebsd
-@@ -1028,9 +1028,9 @@
-       ifneq ($(found_lock_method), yes)
-               DEFS+= -DUSE_PTHREAD_MUTEX  # try pthread sems
-               found_lock_method=yes
--              LIBS= -pthread -lfl -lresolv  #dlopen is in libc
-+              LIBS= -pthread -lresolv  #dlopen is in libc
-       else
--              LIBS= -lfl -lresolv  #dlopen is in libc
-+              LIBS= -lresolv  #dlopen is in libc
-       endif
-       LDFLAGS=        # darwin doesn't like -O2 or -E
-       MOD_LDFLAGS= -bundle -bundle_loader ../../$(MAIN_NAME)
-@@ -1047,7 +1047,7 @@
- #add libssl if needed
- ifneq ($(TLS),)
--DEFS+= -I$(LOCALBASE)/ssl/include
-+DEFS+= -I$(LOCALBASE)/include
- LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -lssl  -lcrypto
- endif
diff --git a/openser/patches/004-cfg_lex.patch b/openser/patches/004-cfg_lex.patch
deleted file mode 100644 (file)
index 39eacb2..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- openser-1.0.0-tls.orig/cfg.lex     2005-09-02 17:34:41.000000000 +0200
-+++ openser-1.0.0-tls/cfg.lex  2006-01-05 01:34:50.279630928 +0100
-@@ -85,6 +85,10 @@
-       static char* addstr(struct str_buf *, char*, int);
-       static void count();
-+      int yywrap(void)
-+      {
-+              return 1;
-+      }
- %}
diff --git a/openser/patches/005-config_h.patch b/openser/patches/005-config_h.patch
deleted file mode 100644 (file)
index 45af8f1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- openser-1.0.0-tls.orig/config.h    2005-08-23 19:31:12.000000000 +0200
-+++ openser-1.0.0-tls/config.h 2006-01-05 01:42:14.101159800 +0100
-@@ -48,7 +48,7 @@
- #define MAX_LISTEN 16
- /* default number of child processes started */
--#define CHILD_NO    8
-+#define CHILD_NO    4
- #define RT_NO 40 /* routing tables number */
- #define FAILURE_RT_NO RT_NO /* on_failure routing tables number */
-@@ -68,10 +68,10 @@
- #define CONTENT_LENGTH "Content-Length: "
- #define CONTENT_LENGTH_LEN (sizeof(CONTENT_LENGTH)-1)
--#define USER_AGENT "User-Agent: OpenSer (" VERSION " (" ARCH "/" OS"))"
-+#define USER_AGENT "User-Agent: OpenSer " VERSION " (boozy.milkfish.org)"
- #define USER_AGENT_LEN (sizeof(USER_AGENT)-1)
--#define SERVER_HDR "Server: OpenSer (" VERSION " (" ARCH "/" OS"))"
-+#define SERVER_HDR "Server: OpenSer " VERSION " (boozy.milkfish.org)"
- #define SERVER_HDR_LEN (sizeof(SERVER_HDR)-1)
- #define MAX_WARNING_LEN  256
-@@ -113,7 +113,7 @@
- #define PKG_MEM_POOL_SIZE 1024*1024
- /*used if SH_MEM is defined*/
--#define SHM_MEM_SIZE 32
-+#define SHM_MEM_SIZE 8
- #define TIMER_TICK 1
diff --git a/openser/patches/006-sc_dbtext.patch b/openser/patches/006-sc_dbtext.patch
deleted file mode 100644 (file)
index 2a1b7ea..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- openser-1.0.0-tls.orig/scripts/sc.dbtext   2005-07-29 21:05:36.000000000 +0200
-+++ openser-1.0.0-tls/scripts/sc.dbtext        2006-01-29 02:30:31.795349688 +0100
-@@ -62,6 +62,10 @@
- ##### ----------------------------------------------- #####
- #### table names
-+if [ -z "$SIP_DOMAIN" ] ; then
-+      SIP_DOMAIN=$(nvram get sip_domain)
-+fi
-+
- # UsrLoc Table
- if [ -z "$UL_TABLE" ] ; then
-       UL_TABLE=location
-@@ -247,7 +251,7 @@
-       fi
-       if [ -z "$SERDOMAIN" ] ; then
--              echo -e "\nDomain unknown: use usernames with domain or set default domain in SIP_DOMAIN\n"
-+              echo -e "\nDomain unknown: use usernames with domain or set default domain in SIP_DOMAIN (with 'nvram set sip_domain=YOUR_SIP_DOMAIN')\n"
-               exit 1
-       fi
- }
diff --git a/openser/patches/007-modules_build.patch b/openser/patches/007-modules_build.patch
deleted file mode 100644 (file)
index bdc9f65..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
---- openser-1.0.1/Makefile     2006-02-15 20:52:21.000000000 +0100
-+++ openser-1.0.1.new/Makefile 2006-03-17 11:01:27.417488936 +0100
-@@ -46,8 +46,7 @@
- skip_modules?=
- # if not set on the cmd. line or the env, exclude this modules:
--exclude_modules?=             jabber cpl-c pa postgres mysql \
--                                              avp_radius auth_radius group_radius uri_radius
-+exclude_modules?=             jabber cpl-c pa postgres
- # always exclude the CVS dir
- override exclude_modules+= CVS $(skip_modules)
-diff -urN openser-1.0.1/modules/acc/Makefile openser-1.0.1.new/modules/acc/Makefile
---- openser-1.0.1/modules/acc/Makefile 2005-09-05 21:32:02.000000000 +0200
-+++ openser-1.0.1.new/modules/acc/Makefile     2006-03-17 10:38:14.333269928 +0100
-@@ -14,8 +14,8 @@
- DEFS+=-DSQL_ACC
- # uncomment the next two lines if you wish to enable RADIUS accounting
--#DEFS+=-DRAD_ACC -I$(LOCALBASE)/include
--#LIBS=-L$(LOCALBASE)/lib -lradiusclient-ng
-+DEFS+=-DRAD_ACC -I$(LOCALBASE)/include
-+LIBS=-L$(LOCALBASE)/lib -lradiusclient-ng
- # uncomment the next two lines if you wish to enable DIAMETER accounting
- #DEFS+=-DDIAM_ACC
-diff -urN openser-1.0.1/modules/mysql/Makefile openser-1.0.1.new/modules/mysql/Makefile
---- openser-1.0.1/modules/mysql/Makefile       2005-06-13 18:47:40.000000000 +0200
-+++ openser-1.0.1.new/modules/mysql/Makefile   2006-03-17 11:12:16.218856136 +0100
-@@ -9,14 +9,12 @@
- # mysql.h locations (freebsd,openbsd  solaris)
- DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/mysql \
-               -I$(LOCALBASE)/mysql/include \
--              -I/usr/include/mysql
- # libmysqlclient locations on RH/Suse, Solaris /OpenBSD, FreeBSD
- # (Debian does the right thing and puts it in /usr/lib)
- LIBS=-L/usr/lib/mysql -L$(LOCALBASE)/lib -L$(LOCALBASE)/lib/mysql \
-               -L$(LOCALBASE)/mysql/lib/mysql/ \
-               -L$(LOCALBASE)/mysql/lib \
--              -L/usr/lib64/mysql \
-               -lmysqlclient -lz
- include ../../Makefile.modules
-diff -urN openser-1.0.1/modules/postgres/Makefile openser-1.0.1.new/modules/postgres/Makefile
---- openser-1.0.1/modules/postgres/Makefile    2005-07-01 16:52:34.000000000 +0200
-+++ openser-1.0.1.new/modules/postgres/Makefile        2006-03-17 11:13:22.150832952 +0100
-@@ -7,8 +7,7 @@
- NAME=postgres.so
- # libpq-fe.h locations
--DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/pgsql/include \
--       -I/usr/include/postgresql -I/usr/include/postgresql/8.0
-+DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/pgsql/include -I$(LOCALBASE)/include/postgresql
- LIBS=-L$(LOCALBASE)/lib -L$(LOCALBASE)/pgsql/lib -L$(LOCALBASE)/lib/pgsql \
-        -lpq
diff --git a/opensips/Makefile b/opensips/Makefile
deleted file mode 100644 (file)
index c90abf7..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-#
-# Copyright (C) 2009 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:=opensips
-PKG_VERSION:=1.5.3
-PKG_RELEASE:=1
-PKG_VARIANT:=-tls
-
-PKG_SOURCE_URL:=http://opensips.org/pub/opensips/$(PKG_VERSION)/src
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
-PKG_MD5SUM:=8a03167420c31da15405bed7630ed3e2
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)$(PKG_VARIANT)
-
-PKG_BUILD_DEPENDS:=curl expat libxml2 mysql openldap openssl pcre postgresql radiusclient-ng
-
-include $(INCLUDE_DIR)/package.mk
-
-TARGET_CFLAGS += $(FPIC)
-
-define Package/opensips/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.opensips.org/
-endef
-
-
-define Package/opensips
-$(call Package/opensips/Default)
-  TITLE:=Open SIP Server
-  MENU:=1
-endef
-
-define Package/opensips-example
-$(call Package/opensips/Default)
-  TITLE:=OpenSIPS example config
-  DEPENDS:=opensips \
-       +opensips-mod-acc \
-       +opensips-mod-maxfwd \
-       +opensips-mod-mi-fifo \
-       +opensips-mod-registrar \
-       +opensips-mod-rr \
-       +opensips-mod-signaling \
-       +opensips-mod-sl \
-       +opensips-mod-textops \
-       +opensips-mod-tm \
-       +opensips-mod-uri \
-       +opensips-mod-uri-db \
-       +opensips-mod-usrloc \
-       +opensips-mod-xlog
-endef
-
-define Package/opensips-example/conffiles
-/etc/default/opensips
-/etc/opensips/opensips.cfg
-endef
-
-
-define Package/opensips-tools
-$(call Package/opensips/Default)
-  TITLE:=OpenSIPS control tools
-  DEPENDS:=opensips
-endef
-
-define Package/opensips-tools/conffiles
-/etc/opensips/opensipsctlrc
-endef
-
-
-PKG_EXCL_MODULES:= \
-       auth_diameter \
-       carrierroute \
-       db_berkeley \
-       db_oracle \
-       db_unixodbc \
-       mediaproxy \
-       mi_xmlrpc \
-       mmgeoip \
-       osp \
-       perl \
-       perlvdb \
-       snmpstats \
-
-PKG_MAKE_ARGS:= \
-       cfg-dir="etc/opensips/" \
-       bin-dir="usr/sbin/" \
-       data-dir="var/lib/opensips/" \
-       lib-dir="usr/lib/opensips/" \
-       modules-dir="usr/lib/opensips/modules/" \
-       exclude_modules="$(PKG_EXCL_MODULES)" \
-
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               prefix=/ \
-               extra_defs="-DUSE_PTHREAD_MUTEX "  \
-               CC="$(TARGET_CC)" \
-               ARCH="$(ARCH)"  \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               ISSMP="no" \
-               LOCALBASE="$(STAGING_DIR)/usr" \
-               SYSBASE="$(STAGING_DIR)/usr" \
-               PCRECFG= \
-               all
-       $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               install
-endef
-
-define Package/opensips/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/opensips \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/opensips/modules
-endef
-
-define Package/opensips-example/install
-       $(INSTALL_DIR) $(1)/etc/opensips
-       $(CP) \
-               $(PKG_INSTALL_DIR)/etc/opensips/opensips.cfg \
-               $(1)/etc/opensips/
-       $(SED) 's,$(PKG_INSTALL_DIR),,g' \
-               $(1)/etc/opensips/opensips.cfg
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/opensips.default $(1)/etc/default/opensips
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/opensips.init $(1)/etc/init.d/opensips
-endef
-
-define Package/opensips-tools/install
-       $(INSTALL_DIR) $(1)/etc/opensips
-       $(CP) \
-               $(PKG_INSTALL_DIR)/etc/opensips/opensipsctlrc \
-               $(1)/etc/opensips/
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/sbin/opensips{ctl,dbctl,unix} \
-               $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/opensips
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/opensips/opensipsctl \
-               $(1)/usr/lib/opensips/
-       $(SED) 's,/bin/bash,/bin/sh,g' \
-               -e 's,$(PKG_INSTALL_DIR),,g' \
-               $(1)/usr/sbin/opensips{ctl,dbctl}
-endef
-
-define BuildPlugin
-  define Package/opensips-mod-$(1)
-    $$(call Package/opensips/Default)
-    TITLE:= OpenSIPS $(3) module
-    DEPENDS:=opensips $$(foreach m,$(4),+opensips-mod-$$m) $(5)
-  endef
-
-  define Package/opensips-mod-$(1)/install
-       [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/opensips/modules/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/opensips/modules/$(2).so \
-                       $$(1)/usr/lib/opensips/modules/ ;
-  endef
-
-  $$(eval $$(call BuildPackage,opensips-mod-$(1)))
-endef
-
-$(eval $(call BuildPackage,opensips))
-$(eval $(call BuildPackage,opensips-example))
-$(eval $(call BuildPackage,opensips-tools))
-$(eval $(call BuildPlugin,acc,acc,Accounting,tm,))
-$(eval $(call BuildPlugin,alias-db,alias_db,Database-backend aliases,,))
-$(eval $(call BuildPlugin,auth,auth,Authentication Framework,signaling,))
-$(eval $(call BuildPlugin,auth-db,auth_db,Database-backend authentication,auth,))
-$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng))
-$(eval $(call BuildPlugin,avp-radius,avp_radius,RADIUS-backend for AVP loading,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,avpops,avpops,AVP operation,,))
-$(eval $(call BuildPlugin,benchmark,benchmark,Config benchmark,,))
-$(eval $(call BuildPlugin,call-control,call_control,Prepair application,dialog,))
-#$(eval $(call BuildPlugin,carrierroute,carrierroute,Carrier Routing,,+libconfuse))
-$(eval $(call BuildPlugin,cfgutils,cfgutils,Config utilities,,))
-$(eval $(call BuildPlugin,closeddial,closeddial,PBX-like features,,))
-$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2))
-#$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,))
-$(eval $(call BuildPlugin,db-flatstore,db_flatstore,Fast writing-only text database-backed,,))
-$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient))
-#$(eval $(call BuildPlugin,db-oracle,db_oracle,Oracle Database-backend,,))
-$(eval $(call BuildPlugin,db-postgres,db_postgres,PostgreSQL Database-backend,,+libpq))
-$(eval $(call BuildPlugin,db-text,db_text,Text database-backend,,))
-#$(eval $(call BuildPlugin,db-unixodbc,db_unixodbc,UnixODBC Database-backend,,))
-$(eval $(call BuildPlugin,dialog,dialog,Dialog support,rr tm,))
-$(eval $(call BuildPlugin,dialplan,dialplan,Dialplan management,,))
-$(eval $(call BuildPlugin,dispatcher,dispatcher,Dispatcher,,))
-$(eval $(call BuildPlugin,diversion,diversion,Diversion header insertion,,))
-$(eval $(call BuildPlugin,domain,domain,Multi-domain support,,))
-$(eval $(call BuildPlugin,domainpolicy,domainpolicy,Domain policy,,))
-$(eval $(call BuildPlugin,drouting,drouting,Dynaming routing,,))
-$(eval $(call BuildPlugin,enum,enum,ENUM lookup,,))
-$(eval $(call BuildPlugin,exec,exec,External exec,,))
-$(eval $(call BuildPlugin,gflags,gflags,Global shared flags,,))
-$(eval $(call BuildPlugin,group,group,Database-backend user-groups,,))
-$(eval $(call BuildPlugin,group-radius,group_radius,RADIUS-backend user-groups,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,h350,h350,H.350,ldap,+libopenldap))
-$(eval $(call BuildPlugin,identity,identity,Identity,,+libopenssl))
-$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,))
-$(eval $(call BuildPlugin,jabber,jabber,Jabber,tm,+libexpat))
-$(eval $(call BuildPlugin,lcr,lcr,Least Cost Routing,tm,))
-$(eval $(call BuildPlugin,ldap,ldap,LDAP connector,,+libopenldap))
-$(eval $(call BuildPlugin,load_balancer,load_balancer,Load balancer,dialog,))
-$(eval $(call BuildPlugin,localcache,localcache,Local cache,,))
-$(eval $(call BuildPlugin,mangler,mangler,SIP mangler,,))
-$(eval $(call BuildPlugin,maxfwd,maxfwd,Max-Forward processor,,))
-$(eval $(call BuildPlugin,mi-datagram,mi_datagram,Datagram support for Management Interface,,))
-$(eval $(call BuildPlugin,mi-fifo,mi_fifo,FIFO support for Management Interface,,))
-#$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c))
-#$(eval $(call BuildPlugin,mediaproxy,mediaproxy,NAT traversal,,+mediaproxy))
-#$(eval $(call BuildPlugin,mmgeoip,mmgeoip,MaxMind GeoIP,,+libgeoip))
-$(eval $(call BuildPlugin,msilo,msilo,SIP message silo,tm,))
-$(eval $(call BuildPlugin,nat_traversal,nat_traversal,NAT traversal,dialog sl tm,))
-$(eval $(call BuildPlugin,nathelper,nathelper,NAT traversal helper,,+rtpproxy))
-$(eval $(call BuildPlugin,options,options,OPTIONS server replier,sl,))
-#$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp))
-$(eval $(call BuildPlugin,path,path,SIP path insertion,rr,))
-$(eval $(call BuildPlugin,pdt,pdt,Prefix-to-Domain translator,,))
-$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng))
-#$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl))
-#$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,))
-$(eval $(call BuildPlugin,permissions,permissions,Permissions control,,))
-$(eval $(call BuildPlugin,pike,pike,Flood detector,,))
-$(eval $(call BuildPlugin,presence,presence,Presence server,signaling,+libxml2))
-$(eval $(call BuildPlugin,presence-dialoginfo,presence_dialoginfo,Dialog Event presence,presence,))
-$(eval $(call BuildPlugin,presence-mwi,presence_mwi,Message Waiting Indication presence,presence,))
-$(eval $(call BuildPlugin,presence-xcapdiff,presence_xcapdiff,XCAP-Diff presence,presence pua,))
-$(eval $(call BuildPlugin,presence-xml,presence_xml,XCAP presence,presence xcap-client,))
-$(eval $(call BuildPlugin,pua,pua,Presence User Agent,tm,+libxml2))
-$(eval $(call BuildPlugin,pua-bla,pua_bla,Bridged Line Appearence PUA,presence pua usrloc,))
-$(eval $(call BuildPlugin,pua-dialoginfo,pua_dialoginfo,Dialog Event PUA,dialog pua,))
-$(eval $(call BuildPlugin,pua-mi,pua_mi,PUA Management Interface,pua,))
-$(eval $(call BuildPlugin,pua-usrloc,pua_usrloc,PUA User Location,pua usrloc,))
-$(eval $(call BuildPlugin,pua-xmpp,pua_xmpp,PUA XMPP,presence pua xmpp,))
-$(eval $(call BuildPlugin,qos,qos,QoS control,dialog,))
-$(eval $(call BuildPlugin,ratelimit,ratelimit,Traffic shapping,,))
-$(eval $(call BuildPlugin,regex,regex,Regular Expression,,+libpcre))
-$(eval $(call BuildPlugin,registrar,registrar,SIP Registrar,signaling usrloc,))
-$(eval $(call BuildPlugin,rls,rls,Resource List Server,presence pua signaling tm,+libxml2))
-$(eval $(call BuildPlugin,rr,rr,Record-Route and Route,,))
-$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,))
-$(eval $(call BuildPlugin,signaling,signaling,Signaling,sl tm,))
-$(eval $(call BuildPlugin,siptrace,siptrace,SIP trace,,))
-$(eval $(call BuildPlugin,sl,sl,Stateless replier,,))
-$(eval $(call BuildPlugin,sms,sms,SIP-to-SMS IM gateway,tm,))
-#$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp))
-$(eval $(call BuildPlugin,speeddial,speeddial,Per-user speed-dial controller,,))
-$(eval $(call BuildPlugin,statistics,statistics,Script statistics,,))
-$(eval $(call BuildPlugin,sst,sst,SIP Session Timer,dialog sl,))
-$(eval $(call BuildPlugin,textops,textops,Text operations,,))
-$(eval $(call BuildPlugin,tlsops,tlsops,TLS operations,,+libopenssl))
-$(eval $(call BuildPlugin,tm,tm,Transaction,,))
-$(eval $(call BuildPlugin,uac,uac,User Agent Client,tm,))
-$(eval $(call BuildPlugin,uac-redirect,uac_redirect,User Agent Client redirection,tm,))
-$(eval $(call BuildPlugin,uri,uri,Generic URI operation,,))
-$(eval $(call BuildPlugin,uri-db,uri_db,Database-backend SIP URI checking,,))
-$(eval $(call BuildPlugin,uri-radius,uri_radius,RADIUS-backend SIP URI checking,,+libradiusclient-ng))
-$(eval $(call BuildPlugin,userblacklist,userblacklist,User blacklists,,))
-$(eval $(call BuildPlugin,usrloc,usrloc,User location,,))
-$(eval $(call BuildPlugin,xcap-client,xcap_client,XCAP Client,,+libcurl +libxml2))
-$(eval $(call BuildPlugin,xlog,xlog,Advanced logger,,))
-$(eval $(call BuildPlugin,xmpp,xmpp,SIP-to-XMPP Gateway,tm,+libexpat))
diff --git a/opensips/files/opensips.default b/opensips/files/opensips.default
deleted file mode 100644 (file)
index a61617b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# OPTIONS
-# -n COUNT
-# Specifies the number of children processes forked per interface
-# -N COUNT
-# Specifies the number of children processes forked to handle tcp incoming connections
-# -m SIZE
-# Size of the shared memory which will be allocated (in Megabytes).
-# -u UID
-# Changes the user id under which 
-# -g GID
-# Changes the group id under which 
-
-OPTIONS="-n 4 -m 4 - m 8"
diff --git a/opensips/files/opensips.init b/opensips/files/opensips.init
deleted file mode 100755 (executable)
index 32654da..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2009 OpenWrt.org
-START=50
-
-BIN=opensips
-DEFAULT=/etc/default/$BIN
-RUN_D=/var/run
-PID_F=$RUN_D/$BIN.pid
-
-start() {
-       [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $RUN_D
-       $BIN -P $PID_F $OPTIONS >/dev/null 2>&1
-}
-
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
-}
-
diff --git a/opensips/patches/001-no_rej.patch b/opensips/patches/001-no_rej.patch
deleted file mode 100644 (file)
index 066249a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/pvar.c.rej
-+++ /dev/null
-@@ -1,18 +0,0 @@
--***************
--*** 2409,2415 ****
--                                      LM_ERR("invalid socket specification\n");
--                                      return -1;
--                              }
---                             si = grep_sock_info(&host, (unsigned short)port, 
--                                      (unsigned short)proto);
--                              if (si==NULL)
--                                      return -1;
----- 2409,2416 ----
--                                      LM_ERR("invalid socket specification\n");
--                                      return -1;
--                              }
--+                             set_sip_defaults( port, proto);
--+                             si = grep_sock_info(&host, (unsigned short)port,
--                                      (unsigned short)proto);
--                              if (si==NULL)
--                                      return -1;
diff --git a/opensips/patches/005-config_h.patch b/opensips/patches/005-config_h.patch
deleted file mode 100644 (file)
index abd40d6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/config.h
-+++ b/config.h
-@@ -48,7 +48,7 @@
- #define MAX_LISTEN 16         /*!< maximum number of addresses on which we will listen */
--#define CHILD_NO    8         /*!< default number of child processes started */
-+#define CHILD_NO    4         /*!< default number of child processes started */
- #define RT_NO 100             /*!< routing tables number */
- #define FAILURE_RT_NO RT_NO   /*!< on_failure routing tables number */
-@@ -114,7 +114,7 @@
- #define SRV_MAX_PREFIX_LEN SRV_TLS_PREFIX_LEN
- #define PKG_MEM_POOL_SIZE 1024*1024           /*!< Used only if PKG_MALLOC is defined*/
--#define SHM_MEM_SIZE 32                               /*!< Used if SH_MEM is defined*/
-+#define SHM_MEM_SIZE 8                                /*!< Used if SH_MEM is defined*/
- #define TIMER_TICK   1                        /*!< one second */
- #define UTIMER_TICK  100*1000                 /*!< 100 miliseconds*/
diff --git a/opensips/patches/007-modules_build.patch b/opensips/patches/007-modules_build.patch
deleted file mode 100644 (file)
index 178b6e9..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
---- a/modules/carrierroute/Makefile
-+++ b/modules/carrierroute/Makefile
-@@ -12,10 +12,8 @@ NAME=carrierroute.so
- BUILDER = $(shell which confuse-config)
- ifeq ($(BUILDER),)
--      CONFUSEDEFS=-I$(LOCALBASE)/include -I/usr/local/include -I/opt/include \
--              -I/usr/sfw/include
--      CONFUSELIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L/usr/sfw/lib \
--              -L/opt/lib -lconfuse
-+      CONFUSEDEFS=-I$(LOCALBASE)/include
-+      CONFUSELIBS=-L$(LOCALBASE)/lib
- else
-               CONFUSEDEFS = $(shell confuse-config --cflags)
-               CONFUSELIBS = $(shell confuse-config --libs)
---- a/modules/h350/Makefile
-+++ b/modules/h350/Makefile
-@@ -9,6 +9,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=h350.so
--LIBS=
-+
-+DEFS+=-I$(LOCALBASE)/include
-+LIBS=-L$(LOCALBASE)/lib -lldap
- include ../../Makefile.modules
---- a/modules/identity/Makefile
-+++ b/modules/identity/Makefile
-@@ -9,7 +9,7 @@ include ../../Makefile.defs
- auto_gen=
- NAME=identity.so
--DEFS+= -I$(LOCALBASE)/ssl/include -I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/ssl/include
--LIBS= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -L/usr/sfw/lib -L/usr/local/ssl/lib -lssl  -lcrypto
-+DEFS+= -I$(LOCALBASE)/include
-+LIBS= -L$(LOCALBASE)/lib -lssl  -lcrypto
- include ../../Makefile.modules
---- a/modules/ldap/Makefile
-+++ b/modules/ldap/Makefile
-@@ -12,7 +12,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=ldap.so
--LIBS=-lldap
-+DEFS+=-I$(LOCALBASE)/include
-+LIBS=-L$(LOCALBASE)/lib -lldap 
- ifeq ($(OS),solaris)
-        DEFS+=-I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/include -I/opt/sfw/include -I/opt/csw/include
---- a/modules/pua_bla/Makefile
-+++ b/modules/pua_bla/Makefile
-@@ -9,8 +9,8 @@ include ../../Makefile.defs
- auto_gen=
- NAME=pua_bla.so
- LIBS=
--DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
--LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
-+DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
-+LIBS+=-L$(LOCALBASE)/lib -lxml2
- include ../../Makefile.modules
---- a/modules/pua_xmpp/Makefile
-+++ b/modules/pua_xmpp/Makefile
-@@ -10,7 +10,7 @@ auto_gen=
- NAME= pua_xmpp.so
- LIBS=
--DEFS+=-I/usr/include/libxml2 -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
--LIBS+=-L/usr/include/lib  -L$(LOCALBASE)/lib -lxml2
-+DEFS+=-I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include
-+LIBS+=-L$(LOCALBASE)/lib -lxml2
- include ../../Makefile.modules
---- a/modules/regex/Makefile
-+++ b/modules/regex/Makefile
-@@ -20,8 +20,8 @@ ifneq ($(PCRECFG),)
- else
--      DEFS+=-I/usr/include -I/usr/sfw/include -I/usr/local/include -I/opt/csw/include -I$(LOCALBASE)/include
--      LIBS=-I/usr/lib -I/usr/sfw/lib -I/usr/local/lib -I/opt/csw/lib -I$(LOCALBASE)/lib -lpcre
-+      DEFS+=-I$(LOCALBASE)/include
-+      LIBS=-L$(LOCALBASE)/lib -lpcre
- endif
---- a/modules/tlsops/Makefile
-+++ b/modules/tlsops/Makefile
-@@ -7,8 +7,8 @@ auto_gen=
- NAME=tlsops.so
- LIBS=
--DEFS+= -I$(LOCALBASE)/ssl/include -I$(LOCALBASE)/include -I/usr/sfw/include -I/usr/local/ssl/include
--LIBS+= -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib -L/usr/sfw/lib -L/usr/local/ssl/lib -lssl  -lcrypto
-+DEFS+= -I$(LOCALBASE)/include
-+LIBS+= -L$(LOCALBASE)/lib -lssl  -lcrypto
- include ../../Makefile.modules
diff --git a/pcapsipdump/Makefile b/pcapsipdump/Makefile
deleted file mode 100644 (file)
index ad07746..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright (C) 2009-2010 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:=pcapsipdump
-PKG_VERSION:=0.1.4
-PKG_RELEASE:=3
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/psipdump
-PKG_MD5SUM:=95ed26caf66237a654cae2cacdaa3386
-
-include $(INCLUDE_DIR)/uclibc++.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/pcapsipdump
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  DEPENDS:=+libpcap $(CXX_DEPENDS)
-  TITLE:=SIP sessions dumping tool
-  URL:=http://sourceforge.net/projects/pcapsipdump/
-endef
-
-define Package/pcapsipdump/description
-        pcapsipdump is a tool for dumping SIP sessions (+RTP traffic, if available) to disk in a
-        fashion similar to "tcpdump -w" (format is exactly the same), but one file per sip session
-        (even if there is thousands of concurrect SIP sessions).
-endef
-
-TARGET_CC=$(TARGET_CXX)
-
-define Build/Compile
-       $(TARGET_CONFIGURE_OPTS) \
-               $(MAKE) -C $(PKG_BUILD_DIR) \
-               CPPFLAGS="$(TARGET_CXXFLAGS) -fno-rtti"  \
-               LIBS="-lpcap"
-endef
-
-define Package/pcapsipdump/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/pcapsipdump $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,pcapsipdump))
diff --git a/pcapsipdump/patches/001-cross_compile.patch b/pcapsipdump/patches/001-cross_compile.patch
deleted file mode 100644 (file)
index db4bead..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -urN pcapsipdump-0.1.4/Makefile pcapsipdump-0.1.4.new/Makefile
---- pcapsipdump-0.1.4/Makefile 2007-02-09 12:33:48.000000000 +0100
-+++ pcapsipdump-0.1.4.new/Makefile     2009-05-12 12:01:02.000000000 +0200
-@@ -1,10 +1,10 @@
- all: pcapsipdump
- pcapsipdump: pcapsipdump.cpp calltable.cpp calltable.h
--      $(CC) $(CPPFLAGS) $(LDFLAGS) pcapsipdump.cpp calltable.cpp -o pcapsipdump -lpcap -lstdc++
-+      $(CC) $(CPPFLAGS) $(LDFLAGS) pcapsipdump.cpp calltable.cpp -o pcapsipdump $(LIBS)
- pcapsipdump-debug: pcapsipdump.cpp calltable.cpp calltable.h
--      $(CC) $(CPPFLAGS) $(LDFLAGS) -ggdb pcapsipdump.cpp calltable.cpp -o pcapsipdump-debug -lpcap -lstdc++
-+      $(CC) $(CPPFLAGS) $(LDFLAGS) -ggdb pcapsipdump.cpp calltable.cpp -o pcapsipdump-debug $(LIBS)
- clean:
-       rm -f pcapsipdump
diff --git a/pcapsipdump/patches/002-elif_else_replacement.patch b/pcapsipdump/patches/002-elif_else_replacement.patch
deleted file mode 100644 (file)
index bb217b7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN pcapsipdump-0.1.4/pcapsipdump.h pcapsipdump-0.1.4.new/pcapsipdump.h
---- pcapsipdump-0.1.4/pcapsipdump.h    2007-05-11 20:40:49.000000000 +0200
-+++ pcapsipdump-0.1.4.new/pcapsipdump.h        2010-03-29 09:52:20.000000000 +0200
-@@ -35,7 +35,7 @@
- #elif defined (__BIG_ENDIAN)
-       uint8_t version:4,
-               ihl:4;
--#elif
-+#else
- #error Endian not defined
- #endif
-       uint8_t tos;
diff --git a/restund/Makefile b/restund/Makefile
deleted file mode 100644 (file)
index 32dd04e..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-# 
-# Copyright (C) 2010-2011 OpenWrt.org
-# Copyright (C) 2010 Alfred E. Heggestad
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=restund
-PKG_VERSION:=0.4.1
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.creytiv.com/pub/
-PKG_MD5SUM:=e11da0acd10af42ce6101f3106cd34dc
-
-restund-mods:= \
-       mysql \
-
-PKG_CONFIG_DEPENDS:= \
-       $(patsubst %,CONFIG_PACKAGE_restund-mod-%,$(restund-mods)) \
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/restund/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://www.creytiv.com/
-endef
-
-define Package/restund
-$(call Package/restund/Default)
-  TITLE:=Modular STUN/TURN server
-  DEPENDS:=+libre +libpthread
-endef
-
-
-restund-mod-mysql := USE_MYSQL
-
-RESTUND_MOD_OPTIONS:= \
-       $(foreach m,$(restund-mods),$(restund-mod-$(m))=$(if $(CONFIG_PACKAGE_restund-mod-$(m)),1))
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
-               LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
-               LIBRE_SO="$(STAGING_DIR)/usr/lib" \
-               CC="$(TARGET_CC)" \
-               EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               SYSROOT="$$$$($(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s#/include/pthread.h##p')" \
-               SYSROOT_ALT="$(STAGING_DIR)/usr" \
-               RELEASE=1 \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               OS="linux" \
-               $(RESTUND_MOD_OPTIONS) \
-               all install
-endef
-
-define Package/restund/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/restund $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/usr/lib/restund/modules
-       $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/auth.so \
-               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/binding.so \
-               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/stat.so \
-               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/status.so \
-               $(PKG_INSTALL_DIR)/usr/lib/restund/modules/syslog.so \
-               $(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/
-       $(SED) \
-               's|^\(module_path\)\([ \t]\+\).*$$$$|\1\2/usr/lib/restund/modules|g' \
-               $(1)/etc/restund.conf
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/restund.init $(1)/etc/init.d/restund
-endef
-
-define Package/restund/conffiles
-/etc/restund.conf
-endef
-
-#
-# 1. Name
-# 2. Title
-# 3. Files
-# 4. Depends
-#
-define BuildPlugin
-
-  define Package/restund-mod-$(1)
-    $$(call Package/restund/Default)
-    TITLE:= restund $(2) module
-    DEPENDS:= restund $(4)
-  endef
-
-  define Package/restund-mod-$(1)/install
-       [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/restund/modules
-       for f in $(3); do \
-               $(CP) \
-                       $(PKG_INSTALL_DIR)/usr/lib/restund/modules/$$$$$$$${f}.so \
-                       $$(1)/usr/lib/restund/modules/ ; \
-       done
-  endef
-
-  $$(eval $$(call BuildPackage,restund-mod-$(1)))
-endef
-
-
-$(eval $(call BuildPackage,restund))
-
-$(eval $(call BuildPlugin,mysql,MySQL database backend,mysql_ser,+PACKAGE_restund-mod-mysql:libmysqlclient))
diff --git a/restund/files/restund.init b/restund/files/restund.init
deleted file mode 100644 (file)
index d6360ff..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh /etc/rc.common
-#
-# Copyright (C) 2010-2011 OpenWrt.org
-# Copyright (C) 2010 Alfred E. Heggestad
-#
-
-START=60
-
-start() {
-       service_start /usr/sbin/restund
-}
-
-stop() {
-       service_stop /usr/sbin/restund
-}
diff --git a/rtpproxy/Makefile b/rtpproxy/Makefile
deleted file mode 100644 (file)
index 88fce3e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (C) 2013 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:=rtpproxy
-PKG_VERSION:=1.2.1
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://b2bua.org/chrome/site/
-PKG_MD5SUM:=b0b5d6cdce3f17cdbbac473c11a2d0e5
-
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/rtpproxy
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  DEPENDS:=+libpthread
-  TITLE:=RTP (Realtime Transport Protocol) proxy
-  URL:=http://www.rtpproxy.org/
-endef
-
-# uses GNU configure
-
-define Package/rtpproxy/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rtpproxy $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,rtpproxy))
diff --git a/sipp/Makefile b/sipp/Makefile
deleted file mode 100644 (file)
index 038da48..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Copyright (C) 2013 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:=sipp
-PKG_VERSION:=3.3
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/sipp
-PKG_MD5SUM:=8c1d513423f9dabee799e738b737e311
-
-include $(INCLUDE_DIR)/uclibc++.mk
-include $(INCLUDE_DIR)/package.mk
-
-define Package/sipp
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  DEPENDS:= +libncurses +libpthread $(CXX_DEPENDS)
-  TITLE:=test tool / traffic generator for the SIP protocol
-  URL:=http://sipp.sourceforge.net/
-endef
-
-define Package/sipp/description
- SIPp is a free Open Source test tool / traffic generator for the SIP
- protocol. It includes a few basic SipStone user agent scenarios (UAC and
- UAS) and establishes and releases multiple calls with the INVITE and BYE
- methods.
-endef
-
-TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
-
-define Build/Configure
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               $(TARGET_CONFIGURE_OPTS) \
-               CC_linux="$(TARGET_CXX)" \
-               CPP_linux="$(TARGET_CXX)" \
-               CCLINK_linux="$(TARGET_CXX)" \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               CPPFLAGS_linux="$(TARGET_CPPFLAGS) -fno-rtti" \
-               LFLAGS_linux="$(TARGET_LDFLAGS)" \
-               LIBS="-lncurses -ldl -lpthread -lm" \
-               all
-endef
-
-define Package/sipp/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/sipp $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,sipp))
diff --git a/siproxd/Makefile b/siproxd/Makefile
deleted file mode 100644 (file)
index 6b08d05..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Copyright (C) 2006-2011 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:=siproxd
-PKG_VERSION:=0.8.1
-PKG_RELEASE:=3
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/siproxd
-PKG_MD5SUM:=1a6f9d13aeb2d650375c9a346ac6cbaf
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/siproxd/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  URL:=http://siproxd.sourceforge.net/
-endef
-
-define Package/siproxd
-  $(call Package/siproxd/Default)
-  DEPENDS:=+libltdl +libpthread +libosip2
-  TITLE:=SIP (Session Initiation Protocol) proxy
-  MENU:=1
-endef
-
-define Package/siproxd/description
-       Siproxd is a proxy/masquerading daemon for the SIP protocol.
-endef
-
-define Package/siproxd/conffiles
-/etc/config/siproxd
-endef
-
-CONFIGURE_ARGS+= \
-       --with-libosip-prefix="$(STAGING_DIR)/usr" \
-       --disable-doc
-
-MAKE_FLAGS+= \
-       SUBDIRS="src scripts contrib" \
-       LIBLTDL="$(STAGING_DIR)/usr/lib/libltdl.la" \
-
-define Package/siproxd/install
-       $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/siproxd $(1)/usr/sbin
-       $(INSTALL_DIR) $(1)/etc/config
-       $(INSTALL_CONF) ./files/siproxd.config $(1)/etc/config/siproxd
-       $(INSTALL_DIR) $(1)/etc/init.d
-       $(INSTALL_BIN) ./files/siproxd.init $(1)/etc/init.d/siproxd
-endef
-
-define BuildPlugin
-  define Package/siproxd-mod-$(1)
-    $$(call Package/siproxd/Default)
-    TITLE:= siproxd $(1) plugin
-    DEPENDS:=siproxd
-  endef
-
-  define Package/siproxd-mod-$(1)/install
-       $(INSTALL_DIR) $$(1)/usr/lib/siproxd
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/siproxd/plugin_$(1)*.so* $$(1)/usr/lib/siproxd
-  endef
-
-  $$(eval $$(call BuildPackage,siproxd-mod-$(1)))
-endef
-
-$(eval $(call BuildPackage,siproxd))
-$(eval $(call BuildPlugin,defaulttarget))
-$(eval $(call BuildPlugin,demo))
-$(eval $(call BuildPlugin,fix_bogus_via))
-$(eval $(call BuildPlugin,logcall))
-$(eval $(call BuildPlugin,prefix))
-$(eval $(call BuildPlugin,regex))
-$(eval $(call BuildPlugin,shortdial))
-$(eval $(call BuildPlugin,stun))
diff --git a/siproxd/files/siproxd.config b/siproxd/files/siproxd.config
deleted file mode 100644 (file)
index b65148c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-config siproxd general
-       option if_inbound       lan
-       option if_outbound      wan
diff --git a/siproxd/files/siproxd.init b/siproxd/files/siproxd.init
deleted file mode 100644 (file)
index 4ecdfbb..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2008 Alina Friedrichsen
-# Copyright (C) 2011 OpenWrt.org
-
-START=50
-
-SERVICE_USE_PID=1
-
-siproxd_bin="/usr/sbin/siproxd"
-siproxd_conf_dir="/var/etc"
-siproxd_conf_prefix="$siproxd_conf_dir/siproxd-"
-siproxd_registration_dir="/var/lib/siproxd"
-siproxd_pid_dir="/var/run/siproxd"
-
-deal_with_lists () {
-       echo "$2" = "$1" >> "$siproxd_conf_prefix$cfg"
-}
-
-start_instance() {
-       local cfg="$1"
-
-       config_get if_inbound "$cfg" if_inbound
-       config_get if_outbound "$cfg" if_outbound
-       config_get host_outbound "$cfg" host_outbound
-       config_get hosts_allow_reg "$cfg" hosts_allow_reg
-       config_get hosts_allow_sip "$cfg" hosts_allow_sip
-       config_get hosts_deny_sip "$cfg" hosts_deny_sip
-       config_get sip_listen_port "$cfg" sip_listen_port 5060
-       config_get_bool daemonize "$cfg" daemonize 1
-       config_get silence_log "$cfg" silence_log 4
-       config_get user "$cfg" user nobody
-       config_get chrootjail "$cfg" chrootjail
-       config_get registration_file "$cfg" registration_file "$siproxd_registration_dir/siproxd_registrations-$cfg"
-       config_get autosave_registrations "$cfg" autosave_registrations 300
-       config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid"
-       config_get_bool rtp_proxy_enable "$cfg" rtp_proxy_enable 1
-       config_get rtp_port_low "$cfg" rtp_port_low 7070
-       config_get rtp_port_high "$cfg" rtp_port_high 7089
-       config_get rtp_timeout "$cfg" rtp_timeout 300
-       config_get rtp_dscp "$cfg" rtp_dscp 46
-       config_get sip_dscp "$cfg" sip_dscp 0
-       config_get rtp_input_dejitter "$cfg" rtp_input_dejitter 0
-       config_get rtp_output_dejitter "$cfg" rtp_output_dejitter 0
-       config_get tcp_timeout "$cfg" tcp_timeout 600
-       config_get tcp_connect_timeout "$cfg" tcp_connect_timeout 500
-       config_get tcp_keepalive "$cfg" tcp_keepalive 20
-       config_get default_expires "$cfg" default_expires 600
-       config_get proxy_auth_realm "$cfg" proxy_auth_realm
-       config_get proxy_auth_passwd "$cfg" proxy_auth_passwd
-       config_get proxy_auth_pwfile "$cfg" proxy_auth_pwfile
-       config_get debug_level "$cfg" debug_level 0x00000000
-       config_get debug_port "$cfg" debug_port 0
-       config_get mask_host "$cfg" mask_host
-       config_get masked_host "$cfg" masked_host
-       config_get ua_string "$cfg" ua_string Siproxd-UA
-       config_get use_rport "$cfg" use_rport 0
-       config_get outbound_proxy_host "$cfg" outbound_proxy_host
-       config_get outbound_proxy_port "$cfg" outbound_proxy_port
-       config_get outbound_domain_name "$cfg" outbound_domain_name
-       config_get outbound_domain_host "$cfg" outbound_domain_host
-       config_get outbound_domain_port "$cfg" outbound_domain_port
-
-       if [ -f "$siproxd_conf_prefix$cfg" ]; then
-               rm "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$if_inbound" ]; then
-               echo if_inbound = "$if_inbound" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$if_outbound" ]; then
-               echo if_outbound = "$if_outbound" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$host_outbound" ]; then
-               echo host_outbound = "$host_outbound" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$hosts_allow_reg" ]; then
-               echo hosts_allow_reg = "$hosts_allow_reg" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$hosts_allow_sip" ]; then
-               echo hosts_allow_sip = "$hosts_allow_sip" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$hosts_deny_sip" ]; then
-               echo hosts_deny_sip = "$hosts_deny_sip" >> "$siproxd_conf_prefix$cfg"
-       fi
-       echo sip_listen_port = "$sip_listen_port" >> "$siproxd_conf_prefix$cfg"
-       echo daemonize = "$daemonize" >> "$siproxd_conf_prefix$cfg"
-       echo silence_log = "$silence_log" >> "$siproxd_conf_prefix$cfg"
-       echo user = "$user" >> "$siproxd_conf_prefix$cfg"
-       if [ -n "$chrootjail" ]; then
-               if [ ! -d "$chrootjail" ]; then
-                       mkdir -p "$chrootjail"
-                       chmod 0755 "$chrootjail"
-               fi
-               echo chrootjail = "$chrootjail" >> "$siproxd_conf_prefix$cfg"
-       fi
-       echo registration_file = "$registration_file" >> "$siproxd_conf_prefix$cfg"
-       echo autosave_registrations = "$autosave_registrations" >> "$siproxd_conf_prefix$cfg"
-
-       echo pid_file = "$pid_file" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_proxy_enable = "$rtp_proxy_enable" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_port_low = "$rtp_port_low" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_port_high = "$rtp_port_high" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_timeout = "$rtp_timeout" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_dscp = "$rtp_dscp" >> "$siproxd_conf_prefix$cfg"
-       echo sip_dscp = "$sip_dscp" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_input_dejitter = "$rtp_input_dejitter" >> "$siproxd_conf_prefix$cfg"
-       echo rtp_output_dejitter = "$rtp_output_dejitter" >> "$siproxd_conf_prefix$cfg"
-       echo tcp_timeout = "$tcp_timeout" >> "$siproxd_conf_prefix$cfg"
-       echo tcp_connect_timeout = "$tcp_connect_timeout" >> "$siproxd_conf_prefix$cfg"
-       echo tcp_keepalive = "$tcp_keepalive" >> "$siproxd_conf_prefix$cfg"
-       echo default_expires = "$default_expires" >> "$siproxd_conf_prefix$cfg"
-       if [ -n "$proxy_auth_realm" ]; then
-               echo proxy_auth_realm = "$proxy_auth_realm" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$proxy_auth_passwd" ]; then
-               echo proxy_auth_passwd = "$proxy_auth_passwd" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$proxy_auth_pwfile" ]; then
-               echo proxy_auth_pwfile = "$proxy_auth_pwfile" >> "$siproxd_conf_prefix$cfg"
-       fi
-       echo debug_level = "$debug_level" >> "$siproxd_conf_prefix$cfg"
-       echo debug_port = "$debug_port" >> "$siproxd_conf_prefix$cfg"
-       if [ -n "$mask_host" ]; then
-               echo mask_host = "$mask_host" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$masked_host" ]; then
-               echo masked_host = "$masked_host" >> "$siproxd_conf_prefix$cfg"
-       fi
-       echo ua_string = "$ua_string" >> "$siproxd_conf_prefix$cfg"
-       echo use_rport = "$use_rport" >> "$siproxd_conf_prefix$cfg"
-       if [ -n "$outbound_proxy_host" ]; then
-               echo oubound_proxy_host = "$outbound_proxy_host" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$outbound_proxy_port" ]; then
-               echo outbound_proxy_port = "$outbound_proxy_port" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$outbound_domain_name" ]; then
-               echo outbound_domain_name = "$outbound_domain_name" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$outbound_domain_host" ]; then
-               echo outbound_domain_host = "$outbound_domain_host" >> "$siproxd_conf_prefix$cfg"
-       fi
-       if [ -n "$outbound_domain_port" ]; then
-               echo outbound_domain_port = "$outbound_domain_port" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # handle plugins
-       config_get plugindir "$cfg" plugindir "/usr/lib/siproxd/"
-       echo plugindir = "$plugindir" >> "$siproxd_conf_prefix$cfg"
-
-       config_list_foreach "$cfg" 'load_plugin' deal_with_lists "load_plugin"
-
-       # plugin_demo.so
-       config_get plugin_demo_string "$cfg" plugin_demo_string
-       if [ -n "$plugin_demo_string" ]; then
-               echo plugin_demo_string = "$plugin_demo_string" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # plugin_shortdial.so
-       config_get plugin_shortdial_akey "$cfg" plugin_shortdial_akey
-       if [ -n "$plugin_shortdial_akey" ]; then
-               echo plugin_shortdial_akey = "$plugin_shortdial_akey" >> "$siproxd_conf_prefix$cfg"
-       fi
-       config_list_foreach "$cfg" 'plugin_shortdial_entry' deal_with_lists "plugin_shortdial_entry"
-
-       # plugin_defaulttarget.so
-       config_get_bool plugin_defaulttarget_log "$cfg" plugin_defaulttarget_log
-       if [ -n "$plugin_defaulttarget_log" ]; then
-               echo plugin_defaulttarget_log = "$plugin_defaulttarget_log" >> "$siproxd_conf_prefix$cfg"
-       fi
-       config_get plugin_defaulttarget_target "$cfg" plugin_defaulttarget_target
-       if [ -n "$plugin_defaulttarget_target" ]; then
-               echo plugin_defaulttarget_target = "$plugin_defaulttarget_target" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # plugin_fix_bogus_via.so
-       config_get plugin_fix_bogus_via_networks "$cfg" plugin_fix_bogus_via_networks
-       if [ -n "$plugin_fix_bogus_via_networks" ]; then
-               echo plugin_fix_bogus_via_networks = "$plugin_fix_bogus_via_networks" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # plugin_stun.so
-       config_get plugin_stun_server "$cfg" plugin_stun_server
-       if [ -n "$plugin_stun_server" ]; then
-               echo plugin_stun_server = "$plugin_stun_server" >> "$siproxd_conf_prefix$cfg"
-       fi
-       config_get plugin_stun_port "$cfg" plugin_stun_port
-       if [ -n "$plugin_stun_port" ]; then
-               echo plugin_stun_port = "$plugin_stun_port" >> "$siproxd_conf_prefix$cfg"
-       fi
-       config_get plugin_stun_period "$cfg" plugin_stun_period
-       if [ -n "$plugin_stun_period" ]; then
-               echo plugin_stun_period = "$plugin_stun_period" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # plugin_prefix.so
-       config_get plugin_prefix_akey "$cfg" plugin_prefix_akey
-       if [ -n "$plugin_prefix_akey" ]; then
-               echo plugin_prefix_akey = "$plugin_prefix_akey" >> "$siproxd_conf_prefix$cfg"
-       fi
-
-       # plugin_regex.so
-       config_list_foreach "$cfg" 'plugin_regex_desc' deal_with_lists "plugin_regex_desc"
-       config_list_foreach "$cfg" 'plugin_regex_pattern' deal_with_lists "plugin_regex_pattern"
-       config_list_foreach "$cfg" 'plugin_regex_replace' deal_with_lists "plugin_regex_replace"
-
-       SERVICE_PID_FILE="$pid_file" \
-       service_start $siproxd_bin --config "$siproxd_conf_prefix$cfg"
-}
-
-stop_instance() {
-       local cfg="$1"
-
-       config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid"
-
-       SERVICE_PID_FILE="$pid_file" \
-       service_stop $siproxd_bin
-}
-
-start() {
-       mkdir -m 0755 -p "$siproxd_conf_dir"
-       mkdir -m 0755 -p "$siproxd_registration_dir"
-       [ -d "$siproxd_pid_dir" ] || {
-               mkdir -m 0755 -p "$siproxd_pid_dir"
-               chmod 0750 "$siproxd_pid_dir"
-               chown nobody:nogroup "$siproxd_pid_dir"
-       }
-
-       config_load 'siproxd'
-       config_foreach start_instance 'siproxd'
-}
-
-stop() {
-       config_load 'siproxd'
-       config_foreach stop_instance 'siproxd'
-}
diff --git a/siproxd/patches/010-fix-bogus-libltdl-dependency.patch b/siproxd/patches/010-fix-bogus-libltdl-dependency.patch
deleted file mode 100644 (file)
index 20f3b6b..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -77,8 +77,8 @@ plugin_regex_la_LDFLAGS = -module -avoid
- #  else Cygwin goes beserk when building...)
- #
- sbin_PROGRAMS = siproxd
--siproxd_LDFLAGS=-export-dynamic
--siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS)
-+siproxd_LDFLAGS=-export-dynamic -lltdl
-+siproxd_LDADD = $(DLOPENPLUGINS)
- siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \
-                 sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \
-                 rtpproxy_relay.c accessctl.c route_processing.c \
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -326,8 +326,8 @@ plugin_prefix_la_LDFLAGS = -module -avoi
- #
- plugin_regex_la_SOURCES = plugin_regex.c
- plugin_regex_la_LDFLAGS = -module -avoid-version -shrext '.so'
--siproxd_LDFLAGS = -export-dynamic
--siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS)
-+siproxd_LDFLAGS = -export-dynamic -lltdl
-+siproxd_LDADD = $(DLOPENPLUGINS)
- siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \
-                 sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \
-                 rtpproxy_relay.c accessctl.c route_processing.c \
diff --git a/sipsak/Makefile b/sipsak/Makefile
deleted file mode 100644 (file)
index 24cebd3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2006-2009 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:=sipsak
-PKG_VERSION:=0.9.6
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://download.berlios.de/sipsak/ \
-       http://ftp.iptel.org/pub/sipsak/
-PKG_MD5SUM:=c4eb8e282902e75f4f040f09ea9d99d5
-
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/sipsak
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  DEPENDS:=+libopenssl
-  TITLE:=SIP (Session Initiation Protocol) stress and diagnostics utility
-  URL:=http://www.sipsak.org/
-endef
-
-define Build/Configure
-       $(call Build/Configure/Default, \
-               --disable-gnutls \
-       )
-endef
-
-define Package/sipsak/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sipsak $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,sipsak))
diff --git a/sipsak/patches/001-ssp.patch b/sipsak/patches/001-ssp.patch
deleted file mode 100644 (file)
index 1dda867..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -363,7 +363,7 @@ AC_DEFUN([SIPSAK_GCC_STACK_PROTECT_CC],[
-     AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
-     ssp_old_cflags="$CFLAGS"
-     CFLAGS="$CFLAGS -fstack-protector"
--    AC_TRY_COMPILE(,,, ssp_cc=no)
-+    AC_TRY_LINK(,,, ssp_cc=no)
-     echo $ssp_cc
-     if test "X$ssp_cc" = "Xno"; then
-       CFLAGS="$ssp_old_cflags"
---- a/configure
-+++ b/configure
-@@ -2923,7 +2923,7 @@ main ()
- _ACEOF
- rm -f conftest.$ac_objext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>conftest.er1
-+  (eval $ac_link) 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
diff --git a/sipsak/patches/002-no_cares_ruli.patch b/sipsak/patches/002-no_cares_ruli.patch
deleted file mode 100644 (file)
index 759ec94..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-diff -urN sipsak-0.9.6/configure sipsak-0.9.6.new/configure
---- sipsak-0.9.6/configure     2006-01-28 22:11:34.000000000 +0100
-+++ sipsak-0.9.6.new/configure 2012-08-06 16:45:07.051588486 +0200
-@@ -5954,264 +5954,6 @@
--      echo "$as_me:$LINENO: checking for ares_version.h" >&5
--echo $ECHO_N "checking for ares_version.h... $ECHO_C" >&6
--
--      ares_incdir=NONE
--      ares_libdir=NONE
--      ares_libcall=NONE
--      ares_incdirs="/usr/include /usr/local/include /sw/include"
--      ares_libdirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /sw/lib"
--      ares_libexten=".so .dylib .a"
--
--      for dir in $ares_incdirs; do
--              try="$dir/ares_version.h"
--              if test -f $try; then
--                      ares_incdir=$dir;
--                      break;
--              fi
--      done
--
--      if test "$ares_incdir" = "NONE"; then
--              echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
--      else
--              echo "$as_me:$LINENO: result: found at $ares_incdir" >&5
--echo "${ECHO_T}found at $ares_incdir" >&6
--
--              echo "$as_me:$LINENO: checking for c-ares lib" >&5
--echo $ECHO_N "checking for c-ares lib... $ECHO_C" >&6
--
--              for dir in $ares_libdirs; do
--                      for extension in $ares_libexten; do
--                              try="$dir/libcares$extension"
--                              if test -f $try; then
--                                      ares_libdir=$dir;
--                                      ares_libcall=cares;
--                                      break;
--                              fi
--                      done
--                      if test "$ares_libdir" != "NONE"; then
--                              break;
--                      fi
--              done
--
--              if test "$ares_libdir" = "NONE"; then
--                      echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
--              else
--                      echo "$as_me:$LINENO: result: found at $ares_libdir" >&5
--echo "${ECHO_T}found at $ares_libdir" >&6
--              fi
--
--              echo "$as_me:$LINENO: checking for ares_version in -lcares" >&5
--echo $ECHO_N "checking for ares_version in -lcares... $ECHO_C" >&6
--if test "${ac_cv_lib_cares_ares_version+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_check_lib_save_LIBS=$LIBS
--LIBS="-lcares  $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--
--/* Override any gcc2 internal prototype to avoid an error.  */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
--   builtin and then its argument prototype would still apply.  */
--char ares_version ();
--int
--main ()
--{
--ares_version ();
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--       { ac_try='test -z "$ac_c_werror_flag"
--                       || test ! -s conftest.err'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; } &&
--       { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_lib_cares_ares_version=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_lib_cares_ares_version=no
--fi
--rm -f conftest.err conftest.$ac_objext \
--      conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_cares_ares_version" >&5
--echo "${ECHO_T}$ac_cv_lib_cares_ares_version" >&6
--if test $ac_cv_lib_cares_ares_version = yes; then
--
--cat >>confdefs.h <<\_ACEOF
--#define HAVE_CARES_H 1
--_ACEOF
--
--                LIBS="$LIBS -L$ares_libdir -l$ares_libcall"
--                CFLAGS="$CFLAGS -I$ares_incdir"
--                SIPSAK_HAVE_ARES="1"
--
--
--fi
--
--      fi
--
--if test "X$SIPSAK_HAVE_ARES" == "X"; then
--
--      echo "$as_me:$LINENO: checking for ruli.h" >&5
--echo $ECHO_N "checking for ruli.h... $ECHO_C" >&6
--
--      ruli_incdir=NONE
--      ruli_libdir=NONE
--      ruli_incdirs="/usr/include /usr/local/include /sw/include"
--      ruli_libdirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /sw/lib"
--      ruli_libexten=".so .dylib .a"
--
--      for dir in $ruli_incdirs; do
--              try="$dir/ruli.h"
--              if test -f $try; then
--                      ruli_incdir=$dir;
--                      break;
--              fi
--      done
--
--      if test "$ruli_incdir" = "NONE"; then
--              echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
--      else
--              echo "$as_me:$LINENO: result: found at $ruli_incdir" >&5
--echo "${ECHO_T}found at $ruli_incdir" >&6
--
--              echo "$as_me:$LINENO: checking for libruli" >&5
--echo $ECHO_N "checking for libruli... $ECHO_C" >&6
--
--              for dir in $ruli_libdirs; do
--                      for extension in $ruli_libexten; do
--                              try="$dir/libruli$extension"
--                              if test -f $try; then
--                                      ruli_libdir=$dir;
--                                      break;
--                              fi
--                      done
--                      if test "$ruli_libdir" != "NONE"; then
--                              break;
--                      fi
--              done
--
--              if test "$ruli_libdir" = "NONE"; then
--                      echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
--              else
--                      echo "$as_me:$LINENO: result: found at $ruli_libdir" >&5
--echo "${ECHO_T}found at $ruli_libdir" >&6
--              fi
--
--              echo "$as_me:$LINENO: checking for ruli_sync_query in -lruli" >&5
--echo $ECHO_N "checking for ruli_sync_query in -lruli... $ECHO_C" >&6
--if test "${ac_cv_lib_ruli_ruli_sync_query+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  ac_check_lib_save_LIBS=$LIBS
--LIBS="-lruli  $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--
--/* Override any gcc2 internal prototype to avoid an error.  */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
--   builtin and then its argument prototype would still apply.  */
--char ruli_sync_query ();
--int
--main ()
--{
--ruli_sync_query ();
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
--  (eval $ac_link) 2>conftest.er1
--  ac_status=$?
--  grep -v '^ *+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--       { ac_try='test -z "$ac_c_werror_flag"
--                       || test ! -s conftest.err'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; } &&
--       { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_lib_ruli_ruli_sync_query=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--ac_cv_lib_ruli_ruli_sync_query=no
--fi
--rm -f conftest.err conftest.$ac_objext \
--      conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_ruli_ruli_sync_query" >&5
--echo "${ECHO_T}$ac_cv_lib_ruli_ruli_sync_query" >&6
--if test $ac_cv_lib_ruli_ruli_sync_query = yes; then
--
--cat >>confdefs.h <<\_ACEOF
--#define HAVE_RULI_H 1
--_ACEOF
--
--                LIBS="$LIBS -L$ruli_libdir -lruli"
--                CFLAGS="$CFLAGS -I$ruli_incdir"
--
--fi
--
--      fi
--
--else
--
- for ac_header in arpa/nameser.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-@@ -6361,7 +6103,6 @@
- done
--fi
-       # Check for T1 timer value
diff --git a/smap/Makefile b/smap/Makefile
deleted file mode 100644 (file)
index f6a1a07..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# 
-# Copyright (C) 2009 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:=smap
-PKG_VERSION:=0.6.0
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-20081016.tar.gz
-PKG_SOURCE_URL:=http://www.wormulon.net/smap/
-PKG_MD5SUM:=814456ccc8fea5688382b7ec55fe44eb
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/smap-$(PKG_VERSION)/smap
-PKG_FIXUP:=autoreconf
-
-include $(INCLUDE_DIR)/package.mk
-
-LIBTOOL="$(STAGING_DIR)/host/bin/libtool"
-
-define Package/smap
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=Telephony
-  TITLE:=A SIP network discovery tool
-  MAINTAINER:=Daniel Dickinson <openwrt@cshore.neomailbox.net>
-  URL:=http://www.wormulon.net/smap/
-  DEPENDS:=+libpthread
-endef
-
-define Package/smap/description
- Discovers and identifies SIP devices on the network including hardware
- phones, softphones, PBX software, and PBX equipment.
-endef
-
-# define Package/smap/conffiles
-# /etc/config/smap
-# endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC="$(TARGET_CC)" \
-               LD="$(TARGET_LD)" \
-               CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -DRAW_SOCKET -DHAVE_RANDOM -DSMAP_OS=linux" \
-               LDFLAGS="$(TARGET_LDFLAGS) -lm -lpthread" \
-               LIBTOOL="$(LIBTOOL)" \
-               smap
-endef
-
-define Package/smap/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/smap $(1)/usr/bin
-       $(INSTALL_DIR) $(1)/usr/share/smap
-       $(CP) $(PKG_BUILD_DIR)/fingerprint.db $(1)/usr/share/smap
-endef
-
-$(eval $(call BuildPackage,smap))
diff --git a/smap/patches/00-fix-broadcast.patch b/smap/patches/00-fix-broadcast.patch
deleted file mode 100644 (file)
index c47b89e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -Naur smap.orig/icmpping.c smap/icmpping.c
---- smap.orig/icmpping.c       2007-10-07 06:15:11.000000000 -0400
-+++ smap/icmpping.c    2009-06-13 11:57:28.000000000 -0400
-@@ -182,6 +182,7 @@
-       struct sockaddr_in      sin;
- #define ICMP_PKT_LEN  (sizeof(struct icmp) + ICMP_PAYLOAD_LEN)
-       char                            icmpbuf[ICMP_PKT_LEN];
-+      socklen_t socklen;
-       /* prepare ICMP packet */
-       memset(&icmpbuf, 'A', ICMP_PKT_LEN);
-@@ -207,6 +208,8 @@
-       if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &one, sizeof(one)) != 0)
-               perror("setsockopt");
- #endif
-+      if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one)) != 0)
-+              perror("setsockopt");
-       icmp->icmp_cksum = icmp_in_cksum((unsigned short *) &icmpbuf, ICMP_PKT_LEN);
-       /* send data */
-diff -Naur smap.orig/smap.c smap/smap.c
---- smap.orig/smap.c   2007-11-03 14:14:52.000000000 -0400
-+++ smap/smap.c        2009-06-13 10:49:15.000000000 -0400
-@@ -244,11 +244,11 @@
-                 break;
-             case 't': /* TCP transport */
-                 /* UDP is default so TCP would override it */
--                config.flags ^= FLAG_UDP_TRANSPORT;
-+                config.flags &= ~FLAG_UDP_TRANSPORT;
-                 config.flags |= FLAG_TCP_TRANSPORT;
-                 break;
-             case 'u': /* UDP transport */
--                config.flags ^= FLAG_TCP_TRANSPORT;
-+                config.flags &= ~FLAG_TCP_TRANSPORT;
-                 config.flags |= FLAG_UDP_TRANSPORT;
-                 break;
-                       case 'r': /* ratelimit messages/sec */
-diff -Naur smap.orig/transport_udp.c smap/transport_udp.c
---- smap.orig/transport_udp.c  2008-08-20 09:02:57.000000000 -0400
-+++ smap/transport_udp.c       2009-06-13 11:56:15.000000000 -0400
-@@ -52,6 +52,7 @@
-       extern int udp_sendsock;
-       extern struct sockaddr_in udp_sendsock_sockaddr;
-       int sockaddrlen;
-+      int one;
-     /* is 5060 (DEFAULT_SIP_PORT) available?
-      * if yes, we'll use it since some clients send responses to
-@@ -116,6 +117,13 @@
-             error(ERR_DEBUG, "bind() successful");
-         }
-     }
-+      one = 1;
-+      if (setsockopt(udp_sendsock, SOL_SOCKET, SO_BROADCAST, &one, sizeof(one)) != 0) {
-+              perror("setsockopt");
-+              error(ERR_ERROR, "unable to set socket to broadcast");
-+              return 0;
-+      }
-+    
-     if (getsockname(udp_sendsock, (struct sockaddr *) &udp_sendsock_sockaddr,
-                 (socklen_t *) &sockaddrlen) != 0)
-     if (DEBUG) perror("getsocknameudp_sendsock");
diff --git a/smap/patches/01-add-tecom-supported-header.patch b/smap/patches/01-add-tecom-supported-header.patch
deleted file mode 100644 (file)
index 699a635..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur smap.broadcast/test_supported.c smap/test_supported.c
---- smap.broadcast/test_supported.c    2009-06-14 21:41:49.000000000 -0400
-+++ smap/test_supported.c      2009-06-14 21:51:17.000000000 -0400
-@@ -49,6 +49,8 @@
-       {"Supported: timer, 100rel, replaces, callerid", 13},
-       /* Cisco 79x0 */
-       {"Supported: replaces,join,norefersub", 14},
-+      /* Tecom IP2007 */
-+      {"Supported: 100rel,replaces", 15 },
-       {"", 0}
- };
diff --git a/smap/patches/02-segfault-and-toofast-bugfixes.patch b/smap/patches/02-segfault-and-toofast-bugfixes.patch
deleted file mode 100644 (file)
index 1f14786..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -Naur smap.supported/config.h smap/config.h
---- smap.supported/config.h    2009-06-14 22:18:57.000000000 -0400
-+++ smap/config.h      2009-06-24 16:36:50.000000000 -0400
-@@ -113,6 +113,7 @@
- #define DEFAULT_SIP_PORT      5060
- #define DEFAULT_TIMEOUT               500             /* in ms */
-+#define DEFAULT_RATELIMIT       25
- /* randomizer related ********************************************************/
- enum { RAND_CALLID = 1, RAND_TAG, RAND_CSEQ, RAND_BRANCH };
-diff -Naur smap.supported/listener.c smap/listener.c
---- smap.supported/listener.c  2009-06-14 22:18:57.000000000 -0400
-+++ smap/listener.c    2009-06-15 04:36:40.000000000 -0400
-@@ -130,7 +130,7 @@
-                       /* use Call-ID to match response to requests */
-                       callid = response_getcallid(msg);
-                       if (callid == 0) {
--                              error(ERR_NOTICE, "could not parse Call-ID");
-+                              error(ERR_DEBUG, "could not parse Call-ID");
-                               goto nextmsg;
-                       }
-                       state = state_lookup_by_callid(callid);
-diff -Naur smap.supported/results.c smap/results.c
---- smap.supported/results.c   2009-06-14 22:18:57.000000000 -0400
-+++ smap/results.c     2009-06-24 16:38:00.000000000 -0400
-@@ -39,6 +39,7 @@
-                       (task->results & RES_ICMP_REACH) ? "reachable" : "unreachable",
-                       (task->results & RES_SIP_ENABLED) ? "enabled" : "disabled");
-               if (task->results & RES_SIP_ENABLED)
-+                error(ERR_DEBUG, "Looking up fingerprint");
-                       fingerprint_lookup(*task->fp);
-               break;
-       default:
-diff -Naur smap.supported/smap.c smap/smap.c
---- smap.supported/smap.c      2009-06-14 22:18:57.000000000 -0400
-+++ smap/smap.c        2009-06-24 17:09:39.000000000 -0400
-@@ -197,7 +197,7 @@
-     config.sip_port = DEFAULT_SIP_PORT;
-     config.sip_domain = NULL;
-     config.timeout = DEFAULT_TIMEOUT;
--      config.ratelimit = 0;
-+    config.ratelimit = DEFAULT_RATELIMIT;
-       printf("\nsmap %s <hs@123.org> "
-         "http://www.wormulon.net/\n\n", SMAP_VERSION);
-@@ -338,12 +338,15 @@
-             break; /* make gcc happy */
-     }
- error_while_scanning:
--
-       pthread_join(pth_worker, NULL);
-       pthread_kill(pth_worker, SIGINT);
-       pthread_kill(pth_listener, SIGINT);
-       stats_dump();
-+      signal(SIGINT, SIG_DFL);
-+      signal(SIGTERM, SIG_DFL);
-+      signal(SIGKILL, SIG_DFL);
-+
-       /* clean up */
-       pthread_mutex_destroy(&scrlock);
-       pthread_mutex_destroy(&tasklock);
diff --git a/yate/Makefile b/yate/Makefile
deleted file mode 100644 (file)
index 27f2c28..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-#
-# Copyright (C) 2006-2011 OpenWrt.org
-# Copyright (C) 2006-2011 SMBPhone
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/uclibc++.mk
-
-RELEASEVER:=3.2.0
-
-PKG_NAME:=yate
-PKG_VERSION:=$(RELEASEVER)-1
-PKG_RELEASE:=3
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://yate.null.ro/tarballs/yate3/
-PKG_MD5SUM:=8ef5f0c420cb41ad2b5828fdba28c4ee
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/$(PKG_NAME)/Default
-  SUBMENU:=Telephony
-  SECTION:=net
-  CATEGORY:=Network
-  URL:=http://yate.null.ro/
-  MAINTAINER:=Daniel Dickinson <openwrt@cshore.neomailbox.net>
-endef
-
-define Package/$(PKG_NAME)
-  $(call Package/yate/Default)
-  DEPENDS:=+libpthread $(CXX_DEPENDS)
-  TITLE:=Yet Another Telphony Engine
-  MENU:=1
-endef
-
-define Package/$(PKG_NAME)/conffiles
-/etc/yate/yate.conf
-endef
-
-define Package/$(PKG_NAME)/Default/description
-  Is a next-generation telephony engine focused on the VoIP and PSTN.  It does
-  SIP, H.323, IAX, PSTN, and more.
-endef
-
-define Package/$(PKG_NAME)-scripts-php
-  $(call Package/yate/Default)
-  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +php5 +php5-cli
-  TITLE:= PHP Scripts and script libraries for Yate
-endef
-
-define Package/$(PKG_NAME)-scripts-perl
-  $(call Package/yate/Default)
-  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +microperl
-  TITLE:= Perl module for Yate
-endef
-
-define Package/$(PKG_NAME)-scripts-python
-  $(call Package/yate/Default)
-  DEPENDS += $(PKG_NAME) $(PKG_NAME)-mod-extmodule +python-mini
-  TITLE:= Python module for Yate
-endef
-
-define Package/$(PKG_NAME)-sounds
-  $(call Package/yate/Default)
-  DEPENDS += $(PKG_NAME)
-  TITLE := Sounds for Yate
-endef
-
-define Package/$(PKG_NAME)-collection-basic
-  $(call Package/yate/Default)
-  DEPENDS += $(PKG_NAME) \
-       +$(PKG_NAME)-sounds \
-       +$(PKG_NAME)-mod-dumbchan \
-       +$(PKG_NAME)-mod-regfile \
-       +$(PKG_NAME)-mod-regexroute \
-       +$(PKG_NAME)-mod-rmanager \
-       +$(PKG_NAME)-mod-tonegen \
-       +$(PKG_NAME)-mod-yrtpchan \
-       +$(PKG_NAME)-mod-ysipchan
-   TITLE := Basic Yate Server
-endef
-
-TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include $(if $(CONFIG_BIG_ENDIAN),-DBIGENDIAN,)
-
-CONFIGURE_ARGS+= \
-       --without-libqt4 \
-       --without-qtstatic \
-       --without-pwlib \
-       --without-coredumper \
-       --without-doxygen \
-       --without-kdoc \
-       --with-spandsp="$(STAGING_DIR)/usr/include" \
-       --with-libgsm="$(STAGING_DIR)/usr/include/gsm" \
-       --with-mysql="$(STAGING_DIR)/usr" \
-       --with-openssl="$(STAGING_DIR)/usr" \
-       --with-libpq="$(STAGING_DIR)/usr" \
-       --with-libspeex="$(STAGING_DIR)/usr/include/speex" \
-       --with-zaptel="$(STAGING_DIR)/usr/include" \
-       --with-zlib="$(STAGING_DIR)/usr"
-
-CONFIGURE_VARS+= \
-       CFLAGS="$$$$CFLAGS -nostdinc++" \
-       LDFLAGS="$$$$LDFLAGS -nodefaultlibs" \
-       LIBS="-lc -luClibc++ -lpthread -lresolv -ldl -lm -lc $(LIBGCC_S)"
-
-define Package/$(PKG_NAME)/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       
-       for yatelib in "" sig mgcp jabber; do \
-               $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libyate$$$${yatelib}.so.$(RELEASEVER) $(1)/usr/lib ;\
-               $(LN) ./libyate$$$${yatelib}.so.$(RELEASEVER) $(1)/usr/lib/libyate$$$${yatelib}.so ;\
-       done
-       
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yate $(1)/usr/bin/
-       $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/yate/yate.conf    $(1)/etc/$(PKG_NAME)/yate.conf
-endef
-
-define Package/$(PKG_NAME)-scripts-php/install
-       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/leavemail.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/queue_in.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/queue_out.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/route.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/voicemail.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libvoicemail.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyatechan.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyateivr.php $(1)/usr/share/yate/scripts/
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyate.php $(1)/usr/share/yate/scripts/
-endef
-
-define Package/$(PKG_NAME)-scripts-perl/install
-       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/Yate.pm $(1)/usr/share/yate/scripts/
-endef
-
-define Package/$(PKG_NAME)-scripts-python/install
-       $(INSTALL_DIR) $(1)/usr/share/yate/scripts
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/yate/scripts/libyate.py $(1)/usr/share/yate/scripts/
-endef
-
-define Package/$(PKG_NAME)-sounds/install
-       $(INSTALL_DIR) $(1)/usr/share/yate/sounds
-       $(CP) $(PKG_INSTALL_DIR)/usr/share/yate/sounds/ $(1)/usr/share/yate/
-endef
-
-define Package/$(PKG_NAME)-collection-basic/install
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(STAGING_DIR)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(STAGING_DIR)/usr/include/
-       $(INSTALL_DIR) $(STAGING_DIR)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(STAGING_DIR)/usr/lib/
-endef
-
-define BuildPlugin
-  define Package/$(PKG_NAME)-mod-$(1)
-    $(call Package/yate/Default)
-    DEPENDS:= $(PKG_NAME) $(4)
-    TITLE:=$(3)
-  endef
-
-  $(if $(PKG_BUILD_DIR)/conf.d/$(1).conf.sample,
-  define Package/$(PKG_NAME)-mod-$(1)/conffiles
-    /etc/yate/$(1).conf
-  endef
-  ,)
-  
-  define Package/$(PKG_NAME)-mod-$(1)/description
-    $(3) module for $(PKG_NAME)
-  endef
-  
-  define Package/$(PKG_NAME)-mod-$(1)/install
-       $$(INSTALL_DIR) $$(1)/usr/lib/yate/$(2)
-       $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/lib/yate/$(2)/$(1).yate $$(1)/usr/lib/yate/$(2)/$(1).yate
-       if [ -f $$(PKG_INSTALL_DIR)/etc/yate/$(1).conf ]; then \
-               $$(INSTALL_DIR) $$(1)/etc/yate ;\
-               $$(INSTALL_DATA) $$(PKG_INSTALL_DIR)/etc/yate/$(1).conf $$(1)/etc/yate/ ;\
-       fi
-       $(if $(5),$(foreach extra_file,$(5),\
-               $(INSTALL_DIR) $$(1)$(dir $(extra_file)) ; \
-               $(CP) $(PKG_INSTALL_DIR)$(extra_file) $$(1)$(extra_file) ; \
-       ),)
-  endef
-
-  $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
-endef
-
-$(eval $(call BuildPackage,$(PKG_NAME)))
-$(eval $(call BuildPackage,$(PKG_NAME)-collection-basic))
-$(eval $(call BuildPackage,$(PKG_NAME)-scripts-php))
-$(eval $(call BuildPackage,$(PKG_NAME)-scripts-perl))
-$(eval $(call BuildPackage,$(PKG_NAME)-scripts-python))
-$(eval $(call BuildPackage,$(PKG_NAME)-sounds))
-$(eval $(call BuildPlugin,accfile,server,SIP or H.323 client (from file),))
-$(eval $(call BuildPlugin,alsachan,client,ALSA Sound Channel,+alsa-lib))
-$(eval $(call BuildPlugin,amrnbcodec,,AMR-NB Codec,@BROKEN)) # Missing amr-nb library
-$(eval $(call BuildPlugin,analog,server,Analog (e.g. POTS) Channel,))
-$(eval $(call BuildPlugin,analogdetect,server,Analog Data Detector,))
-$(eval $(call BuildPlugin,analyzer,,Test Call Generator and AQ Analyzer,))
-$(eval $(call BuildPlugin,callcounters,server,Count Active Call Legs,))
-$(eval $(call BuildPlugin,callfork,,Call Forker,))
-$(eval $(call BuildPlugin,callgen,,Call Generator,))
-$(eval $(call BuildPlugin,ccongestion,server,Accept Status from Installed Engine Monitors,))
-$(eval $(call BuildPlugin,cdrbuild,,Call Detail Record Builder,))
-$(eval $(call BuildPlugin,cdrfile,,Call Detail Record to File,))
-$(eval $(call BuildPlugin,ciscosm,server,SS7 Support,))
-$(eval $(call BuildPlugin,clustering,server,Clustering Server Support,))
-$(eval $(call BuildPlugin,conference,,Conference Room Mixer,))
-$(eval $(call BuildPlugin,cpuload,server,Monitor CPU load and Inform Yate,))
-$(eval $(call BuildPlugin,dbpbx,server,PBX IVR and Multi-routing from Database,))
-$(eval $(call BuildPlugin,dbwave,server,Wav Media for DB Storage,+$(PKG_NAME)-mod-wavefile))
-$(eval $(call BuildPlugin,dumbchan,,Dummy Channel,))
-$(eval $(call BuildPlugin,enumroute,,ENUM Routing,))
-$(eval $(call BuildPlugin,extmodule,,External Module Handler,))
-$(eval $(call BuildPlugin,faxchan,,Spandsp Fax Channel,+libspandsp))
-$(eval $(call BuildPlugin,filetransfer,,File Transfer Driver,))
-$(eval $(call BuildPlugin,gsmcodec,,GSM Codec,+libgsm))
-$(eval $(call BuildPlugin,h323chan,,Open H.323 Channel,+libopenh323 @BROKEN)) # libopenh323 doesn't create package or stagin_dir includes or libs
-$(eval $(call BuildPlugin,heartbeat,server,Linux-HA compatible heartbeat,))
-$(eval $(call BuildPlugin,ilbccodec,,iLBC Codec,))
-$(eval $(call BuildPlugin,isupmangler,server,ISUP paramter mangling in a STP,))
-$(eval $(call BuildPlugin,jabberclient,client,Jabber Client,))
-$(eval $(call BuildPlugin,jabberserver,jabber,Jabber Server,))
-$(eval $(call BuildPlugin,jbfeatures,jabber,Jabber Server Features,))
-$(eval $(call BuildPlugin,lateroute,server,Last Chance Routing,))
-$(eval $(call BuildPlugin,lksctp,server,SCTP sockets using linux kernel,@BROKEN)) # Missing libraries/header files
-$(eval $(call BuildPlugin,mgcpca,server,Media Gateway Control Protocol Agent,))
-$(eval $(call BuildPlugin,mgcpgw,server,Media Gateway Control Protocol Gateway,))
-$(eval $(call BuildPlugin,moh,,On Hold (music) Generator,))
-$(eval $(call BuildPlugin,monitoring,server,Monitoring/gathering Information,))
-$(eval $(call BuildPlugin,mrcpspeech,server,MRCP v2 Voice/Tone Detector and Synthesizer,))
-$(eval $(call BuildPlugin,msgsniff,,Sample Message Sniffer,))
-$(eval $(call BuildPlugin,mux,,Data Multiplexor,))
-$(eval $(call BuildPlugin,mysqldb,server,MySQL Backend DB,+libmysqlclient-r))
-$(eval $(call BuildPlugin,openssl,,Encrypted transport (OpenSSL),+libopenssl))
-$(eval $(call BuildPlugin,osschan,client,OSS Sound Channel,))
-$(eval $(call BuildPlugin,park,server,Call Parking,))
-$(eval $(call BuildPlugin,pbx,,PBX Message Handlers,))
-$(eval $(call BuildPlugin,pbxassist,server,Full featured PBX and IVR,))
-$(eval $(call BuildPlugin,pgsqldb,server,PostgrestSQL Backend DB,+libpq))
-$(eval $(call BuildPlugin,presence,server,Presence,))
-$(eval $(call BuildPlugin,regfile,server,Registration based on users in file,))
-$(eval $(call BuildPlugin,queues,server,Call Distribution and Queues from Database,))
-$(eval $(call BuildPlugin,queuesnotify,server,Notify when queued call status changes,))
-$(eval $(call BuildPlugin,regexroute,,Regular Expression Based Routing,))
-$(eval $(call BuildPlugin,rmanager,,Yate Remote Management,))
-$(eval $(call BuildPlugin,sip_cnam_lnp,sip,Query CNAM and LNP databases using SIP INVITE,))
-$(eval $(call BuildPlugin,sigtransport,server,SIGTRAN (SS7 over IP) connection provider,))
-$(eval $(call BuildPlugin,sipfeatures,server,SIP Features (SUBSCRIBE/NOTIFY),))
-$(eval $(call BuildPlugin,speexcodec,,Speex Codec,+libspeex))
-$(eval $(call BuildPlugin,subscription,server,Subcription handler and presence notifier,))
-$(eval $(call BuildPlugin,tdmcard,server,TDM Cards Signalling and Data Driver,@BROKEN)) # Missing TDM libraries
-$(eval $(call BuildPlugin,tonedetect,,Detectors for Various Tones,))
-$(eval $(call BuildPlugin,tonegen,,Tones Generator,))
-$(eval $(call BuildPlugin,users,server,Users,))
-$(eval $(call BuildPlugin,wavefile,,Wav file Record and Playback,))
-$(eval $(call BuildPlugin,wpcard,server,Wanpipe PRI cards Signalling and Data Driver,@BROKEN)) # Mising wanpipe and PRI libraries
-$(eval $(call BuildPlugin,yiaxchan,,IAX Channel,))
-$(eval $(call BuildPlugin,yjinglechan,,Jingle Channel,))
-$(eval $(call BuildPlugin,yrtpchan,,RTP Channel and Other Data Helper,))
-$(eval $(call BuildPlugin,yradius,server,RADIUS Client,))
-$(eval $(call BuildPlugin,ysigchan,server,SS7/ISDN Protocols - Yate Signalling Library,))
-$(eval $(call BuildPlugin,ysipchan,,SIP Channel,))
-$(eval $(call BuildPlugin,ysockschan,,SOCKS Channel,))
-$(eval $(call BuildPlugin,ysnmpagent,server,SNMP Protocol Agent,,/usr/share/yate/data/NULL-TEAM-MIB.txt /usr/share/yate/data/snmp_mib.conf /usr/share/yate/data/YATE-MIB.txt))
-$(eval $(call BuildPlugin,ystunchan,,STUN Support,))
-$(eval $(call BuildPlugin,zapcard,server,Zaptel Card Signalling and Data Driver,+zaptel14-libtonezone))
-$(eval $(call BuildPlugin,zlibcompress,,Zlib Compression,+zlib))
diff --git a/yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch b/yate/patches/100-add_dn_skipname_missing_from_many_libresolv.patch
deleted file mode 100644 (file)
index bc61df0..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
---- a/engine/Makefile.in
-+++ b/engine/Makefile.in
-@@ -31,8 +31,9 @@ CLSOBJS := TelEngine.o ObjList.o HashLis
- ENGOBJS := Configuration.o Message.o Engine.o Plugin.o
- TELOBJS := DataFormat.o Channel.o
- CLIOBJS := Client.o ClientLogic.o
-+MISCOBJS := dn_skipname.o
--LIBOBJS := $(CLSOBJS) $(ENGOBJS) $(TELOBJS) $(CLIOBJS)
-+LIBOBJS := $(CLSOBJS) $(ENGOBJS) $(TELOBJS) $(CLIOBJS) $(MISCOBJS)
- CLEANS = $(LIBOBJS) core
- CCOMPILE = $(CC) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS)
- COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CPPFLAGS)
-@@ -109,6 +110,9 @@ String.o: @srcdir@/String.cpp $(MKDEPS)
- regex.o: @top_srcdir@/engine/regex/regex.c $(MKDEPS)
-       $(CCOMPILE) -DSTDC_HEADERS $(REGEX_INC) -c $<
-+dn_skipname.o: @srcdir@/dn_skipname.c $(MKDEPS)
-+      $(CCOMPILE) -DSTDC_HEADERS -c $<
-+
- %.o: @srcdir@/%.cpp $(MKDEPS) $(EINC)
-       $(COMPILE) -c $<
---- /dev/null
-+++ b/engine/dn_skipname.c
-@@ -0,0 +1,85 @@
-+/* Taken from patch by Natanael Copa for uClibc in message
-+  * http://lists.busybox.net/pipermail/uclibc/2009-September/042971.html
-+  * Turned into yate patch by Daniel Dickinson <openwrt@cshore.neomailbox.net>, Mar 11, 2011
-+*/
-+#include <sys/types.h>
-+#include <resolv.h>
-+
-+/* taken from OpenBSD source */
-+/*
-+ * Copyright (c) 1985, 1993
-+ *    The Regents of the University of California.  All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ * 3. Neither the name of the University nor the names of its contributors
-+ *    may be used to endorse or promote products derived from this software
-+ *    without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+ * SUCH DAMAGE.
-+ * -
-+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies, and that
-+ * the name of Digital Equipment Corporation not be used in advertising or
-+ * publicity pertaining to distribution of the document or software without
-+ * specific, written prior permission.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
-+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ * Skip over a compressed domain name. Return the size or -1.
-+ */
-+int
-+__dn_skipname(const u_char *comp_dn, const u_char *eom)
-+{
-+      const u_char *cp;
-+      int n;
-+
-+      cp = comp_dn;
-+      while (cp < eom && (n = *cp++)) {
-+              /*
-+               * check for indirection
-+               */
-+              switch (n & INDIR_MASK) {
-+              case 0:                 /* normal case, n == len */
-+                      cp += n;
-+                      continue;
-+              case INDIR_MASK:        /* indirection */
-+                      cp++;
-+                      break;
-+              default:                /* illegal type */
-+                      return (-1);
-+              }
-+              break;
-+      }
-+      if (cp > eom)
-+              return (-1);
-+      return (cp - comp_dn);
-+}