diff --git a/net/freeswitch/Makefile b/net/freeswitch/Makefile index 7960eb4..37d26a0 100644 --- a/net/freeswitch/Makefile +++ b/net/freeswitch/Makefile @@ -8,23 +8,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=freeswitch -PKG_VERSION:=1.10.4 +PKG_VERSION:=1.10.5 PKG_RELEASE:=1 PKG_MAINTAINER:=Sebastian Kemper PKG_SOURCE:=freeswitch-$(PKG_VERSION).-release.tar.xz PKG_SOURCE_URL:=https://files.freeswitch.org/releases/freeswitch -PKG_HASH:=492d8faae813dc21bda691f8d0c3bead1f541d6df69dba760c9d7bacbed717fc +PKG_HASH:=3e26600767a82946eca94af2c8f14712783aa83db5fb1cc57585f544aecce327 PKG_CPE_ID:=cpe:/a:freeswitch:freeswitch PKG_BUILD_DIR:=$(BUILD_DIR)/freeswitch-$(PKG_VERSION).-release -# configure in libs/spandsp fails without libjpeg-turbo and tiff -PKG_BUILD_DEPENDS:= \ - libjpeg-turbo \ - tiff \ - perl/host +PKG_BUILD_DEPENDS:=perl/host PKG_FIXUP:=autoreconf @@ -383,6 +379,7 @@ $(call Package/freeswitch/Default) +libpcre \ +libpthread \ +librt \ + +libspandsp3 \ +libspeex \ +libspeexdsp \ +libsqlite3 \ @@ -624,13 +621,6 @@ CONFIGURE_ARGS+= \ --with-erlang=no endif -# Make mod_spandsp use fixed point math when soft float support is -# enabled on target devices. -ifeq ($(CONFIG_SOFT_FLOAT),y) -CONFIGURE_ARGS+= \ - --enable-fixed-point -endif - # FreeSWITCH dropped postgresql support from the core. postgresql # support is now available via mod_pgsql. We still need to pass # '--without-pgsql', otherwise apr-util links to libpq and we still @@ -732,12 +722,6 @@ FS_SPHINXMODEL_HASH:=dbb5e9fb85000a7cb97d6958a3ef8d77532dc55fc730ac6979705e8645c FS_FREERADIUS_CLIENT_FILE:=freeradius-client-1.1.7.tar.gz FS_FREERADIUS_CLIENT_HASH:=eada2861b8f4928e3ac6b5bbfe11e92cd6cdcacfce40cae1085e77c1b6add0e9 -# spandsp -FS_SPANDSP_VERSION:=a6266f22591ee6ed1be9282babe4bfdbc50d4b82 -FS_SPANDSP_FILE:=fs-spandsp-$(FS_SPANDSP_VERSION).tar.xz -FS_SPANDSP_URL:=https://github.com/freeswitch/spandsp.git -FS_SPANDSP_MIRROR_HASH:=4aa38003c07c05d9030eab93ec3b0b974be03013f9e898b1f053f7306bcfa5c8 - ifneq ($(CONFIG_PACKAGE_freeswitch-mod-event-zmq),) $(eval $(call Download/files,zmq,$(FS_ZEROMQ_FILE),$(FS_ZEROMQ_URL),$(FS_ZEROMQ_HASH))) endif @@ -752,8 +736,6 @@ ifneq ($(CONFIG_PACKAGE_freeswitch-mod-radius-cdr),) $(eval $(call Download/files,freeradius-client,$(FS_FREERADIUS_CLIENT_FILE),$(FS_LIBS_URL),$(FS_FREERADIUS_CLIENT_HASH))) endif -$(eval $(call Download/files,fs-spandsp,$(FS_SPANDSP_FILE),$(FS_SPANDSP_URL),,$(FS_SPANDSP_VERSION),spandsp,$(FS_SPANDSP_MIRROR_HASH),git)) - # Need to update LDFLAGS for libs/unimrcp, otherwise it will try to link to a # different apr/apr-util if found. # FS_ANCHOR: string in build/acmacros/apr.m4 that will be replaced @@ -763,10 +745,6 @@ FS_APR_LIBS:=-L$(PKG_BUILD_DIR)/libs/apr -L$(PKG_BUILD_DIR)/libs/apr-util define Build/Prepare $(call Build/Prepare/Default) - xzcat $(DL_DIR)/$(FS_SPANDSP_FILE) | tar -C $(PKG_BUILD_DIR)/libs $(TAR_OPTIONS) - $(CP) ./files/spandsp-flags.patch $(PKG_BUILD_DIR)/libs/spandsp - cd $(PKG_BUILD_DIR) && $(PATCH) -p1 < libs/spandsp/spandsp-flags.patch - echo '#applications/mod_random' >> $(PKG_BUILD_DIR)/modules.conf echo '#codecs/mod_yuv' >> $(PKG_BUILD_DIR)/modules.conf echo '#event_handlers/mod_event_test' >> $(PKG_BUILD_DIR)/modules.conf diff --git a/net/freeswitch/patches/340-mod-spandsp-fix-typo.patch b/net/freeswitch/patches/340-mod-spandsp-fix-typo.patch new file mode 100644 index 0000000..bc4f852 --- /dev/null +++ b/net/freeswitch/patches/340-mod-spandsp-fix-typo.patch @@ -0,0 +1,10 @@ +--- a/src/mod/applications/mod_spandsp/Makefile.am ++++ b/src/mod/applications/mod_spandsp/Makefile.am +@@ -4,6 +4,6 @@ MODNAME=mod_spandsp + mod_LTLIBRARIES = mod_spandsp.la + mod_spandsp_la_SOURCES = mod_spandsp.c udptl.c mod_spandsp_fax.c mod_spandsp_dsp.c mod_spandsp_codecs.c mod_spandsp_modem.c + mod_spandsp_la_CFLAGS = $(AM_CFLAGS) +-mod_spandsp_la_CPPFLAGS = $(SPANDSL_CFLAGS) -I. ++mod_spandsp_la_CPPFLAGS = $(SPANDSP_CFLAGS) -I. + mod_spandsp_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SPANDSP_LIBS) -ljpeg -lz -ltiff + mod_spandsp_la_LDFLAGS = -avoid-version -module -no-undefined -shared diff --git a/net/freeswitch/patches/350-gsmopen-spandsp-fixup.patch b/net/freeswitch/patches/350-gsmopen-spandsp-fixup.patch new file mode 100644 index 0000000..dccd8bf --- /dev/null +++ b/net/freeswitch/patches/350-gsmopen-spandsp-fixup.patch @@ -0,0 +1,24 @@ +--- a/src/mod/endpoints/mod_gsmopen/Makefile.am ++++ b/src/mod/endpoints/mod_gsmopen/Makefile.am +@@ -1,19 +1,9 @@ + include $(top_srcdir)/build/modmake.rulesam + MODNAME=mod_gsmopen + +-SPANDSP_DIR=$(switch_srcdir)/libs/spandsp +-SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp +-SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la +- + mod_LTLIBRARIES = mod_gsmopen.la + mod_gsmopen_la_SOURCES = mod_gsmopen.cpp gsmopen_protocol.cpp + mod_gsmopen_la_CXXFLAGS = $(SWITCH_AM_CXXFLAGS) +-mod_gsmopen_la_CPPFLAGS = -I$(SPANDSP_DIR)/src -I$(SPANDSP_BUILDDIR)/src -I. +-mod_gsmopen_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SPANDSP_LA) ++mod_gsmopen_la_CPPFLAGS = $(SPANDSP_CFLAGS) -I. ++mod_gsmopen_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SPANDSP_LIBS) + mod_gsmopen_la_LDFLAGS = -avoid-version -module -no-undefined -lctb-0.16 -lgsmme +- +-BUILT_SOURCES = $(SPANDSP_LA) +- +-$(SPANDSP_LA): $(SPANDSP_DIR) $(SPANDSP_DIR)/.update +- cd $(SPANDSP_BUILDDIR) && $(MAKE) CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" +- $(TOUCH_TARGET) diff --git a/net/freeswitch/patches/390-spandsp3-pkg-config.patch b/net/freeswitch/patches/390-spandsp3-pkg-config.patch new file mode 100644 index 0000000..7fe82c6 --- /dev/null +++ b/net/freeswitch/patches/390-spandsp3-pkg-config.patch @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -703,7 +703,7 @@ PKG_CHECK_MODULES([MARIADB], [libmariadb + ]) + ]) + +-PKG_CHECK_MODULES([SPANDSP], [spandsp >= 3.0],[ ++PKG_CHECK_MODULES([SPANDSP], [spandsp3 >= 3.0],[ + AM_CONDITIONAL([HAVE_SPANDSP],[true])],[ + AC_MSG_ERROR([no usable spandsp; please install spandsp3 devel package or equivalent]) + ]) diff --git a/net/freeswitch/patches/390-t38-reinvite-488-fix.patch b/net/freeswitch/patches/390-t38-reinvite-488-fix.patch deleted file mode 100644 index 3492936..0000000 --- a/net/freeswitch/patches/390-t38-reinvite-488-fix.patch +++ /dev/null @@ -1,66 +0,0 @@ -commit 167294ea2649afd0ffedf4520b0f308979c3ca2a -Author: Sebastian Kemper -Date: Fri Oct 18 18:28:07 2019 +0200 - - [mod-sofia] Fix reINVITE after T38 is rejected - - From FS-11833. - - After FS sends a reINVITE to T38 which gets rejected by peer it is no - longer in a state where it can properly answer a reINVITE which requests - a change of the media setup. - - 1. FS sends INVITE (destination is a fax machine) - 2. Call connects with "8 101" - 3. FS sends reINVITE to T38 - 4. T38 rejected (488) - 5. FS receives INVITE to "8" - 6. FS replies with 200 OK without SDP - 7. Call fails - - The bug is related to TFLAG_SDP. This flag is set when a media session - is established. And when there's a reINVITE sofia_glue_do_invite() from - sofia_glue.c is called and clears the flag again: - - sofia_clear_flag_locked(tech_pvt, TFLAG_SDP); - - So when FS sends a reINVITE to T38 the flag gets cleared. But when the - reINVITE is rejected with 488 the flag is not set again. It stays - cleared. So the call continues with the previously negotiated media, fax - passthrough (8 101 in this case), but TFLAG_SDP is not set. - - So when FS receives a reINVITE at this point it doesn't see the need to - renegotiate anything, even though it realizes that 2833 DTMF is now off: - - 2019-04-30 16:42:12.478025 [DEBUG] switch_core_media.c:5478 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1] - 2019-04-30 16:42:12.478025 [DEBUG] switch_core_media.c:5533 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match - 2019-04-30 16:42:12.478025 [DEBUG] switch_core_media.c:5802 No 2833 in SDP. Disable 2833 dtmf and switch to INFO - - When FS doesn't send a reINVITE (fax_enable_t38_request=false) and the - reINVITE to "8" is received, TFLAG_SDP is still set and then FS - understands that it needs to renegotiate and replies with a 200 OK that - includes SDP: - - 2019-04-30 16:41:19.358028 [DEBUG] switch_core_media.c:5478 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1] - 2019-04-30 16:41:19.358028 [DEBUG] switch_core_media.c:5533 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match - 2019-04-30 16:41:19.358028 [DEBUG] switch_core_media.c:5802 No 2833 in SDP. Disable 2833 dtmf and switch to INFO - 2019-04-30 16:41:19.358028 [DEBUG] sofia.c:8237 skemper was here in line 8232 - 2019-04-30 16:41:19.358028 [DEBUG] switch_core_media.c:8390 skemper was here in line 8390. - 2019-04-30 16:41:19.358028 [DEBUG] switch_core_media.c:8496 Audio params are unchanged for sofia/external/+called_number. - 2019-04-30 16:41:19.358028 [DEBUG] sofia.c:8243 Processing updated SDP - - This fixes the state problem after a rejected T38 reINVITE by setting - TFLAG_SDP. - - Signed-off-by: Sebastian Kemper - ---- a/src/mod/endpoints/mod_sofia/sofia.c -+++ b/src/mod/endpoints/mod_sofia/sofia.c -@@ -6536,6 +6536,7 @@ static void sofia_handle_sip_r_invite(sw - switch_channel_clear_app_flag_key("T38", tech_pvt->channel, CF_APP_T38_REQ); - switch_channel_set_app_flag_key("T38", tech_pvt->channel, CF_APP_T38_FAIL); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s T38 invite failed\n", switch_channel_get_name(tech_pvt->channel)); -+ sofia_set_flag(tech_pvt, TFLAG_SDP); - } - - diff --git a/net/freeswitch/patches/420-build-spandsp-intree.patch b/net/freeswitch/patches/420-build-spandsp-intree.patch deleted file mode 100644 index 47b1af5..0000000 --- a/net/freeswitch/patches/420-build-spandsp-intree.patch +++ /dev/null @@ -1,162 +0,0 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -130,7 +130,7 @@ CORE_CFLAGS += -I$(switch_srcdir)/libs/l - CORE_CFLAGS += -DSWITCH_HAVE_YUV - endif - CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/crypto/include -Ilibs/srtp/crypto/include --CORE_CFLAGS += $(SPANDSP_CFLAGS) -+CORE_CFLAGS += -I$(switch_builddir)/libs/spandsp/src -I$(switch_srcdir)/libs/spandsp/src - if ENABLE_LIBVPX - CORE_CFLAGS += -DSWITCH_HAVE_VPX - endif -@@ -184,10 +184,13 @@ endif - ## - ## libfreeswitch - ## --noinst_LTLIBRARIES = -+noinst_LTLIBRARIES = libfreeswitch_spandsp.la - if ENABLE_LIBYUV - noinst_LTLIBRARIES += libfreeswitch_libyuv.la - endif -+libfreeswitch_spandsp_la_SOURCES = libs/spandsp/src/plc.c libs/spandsp/src/alloc.c libs/spandsp/src/bit_operations.c -+libfreeswitch_spandsp_la_CFLAGS = -Ilibs/spandsp/src $(CORE_CFLAGS) $(AM_CFLAGS) -+CORE_LIBS+=libfreeswitch_spandsp.la - - if ENABLE_LIBYUV - libfreeswitch_libyuv_la_SOURCES = \ -@@ -248,7 +251,7 @@ endif - lib_LTLIBRARIES = libfreeswitch.la - libfreeswitch_la_CFLAGS = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS) - libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS) -no-undefined --libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) -+libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) - libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES) - - if HAVE_PNG -@@ -717,7 +720,9 @@ core-install: core_install - - clean_core: clean-libLTLIBRARIES - rm -f $(libfreeswitch_la_OBJECTS) -+ rm -f $(libfreeswitch_spandsp_la_OBJECTS) - rm -f `echo $(libfreeswitch_la_OBJECTS) | sed -e's|.lo|.o|g'` -+ rm -f `echo $(libfreeswitch_spandsp_la_OBJECTS) | sed -e's|.lo|.o|g'` - - install_core: install-libLTLIBRARIES - -@@ -782,6 +787,12 @@ iks-reconf: - cd libs/iksemel && sh ./configure.gnu $(MY_DEFAULT_ARGS) - $(MAKE) mod_dingaling-clean - -+spandsp-reconf: -+ cd libs/spandsp && $(MAKE) clean || echo -+ cd libs/spandsp && autoreconf -fi -+ cd libs/spandsp && sh ./configure.gnu $(MY_DEFAULT_ARGS) -+ cd libs/spandsp && $(MAKE) -+ - cluecon: - @clear - @echo Thank you for updating. This is going to take a while so relax. ---- a/configure.ac -+++ b/configure.ac -@@ -703,11 +703,6 @@ PKG_CHECK_MODULES([MARIADB], [libmariadb - ]) - ]) - --PKG_CHECK_MODULES([SPANDSP], [spandsp >= 1.99],[ -- AM_CONDITIONAL([HAVE_SPANDSP],[true])],[ -- AC_MSG_ERROR([no usable spandsp; please install spandsp devel package or equivalent]) --]) -- - PKG_CHECK_MODULES([SOFIA_SIP], [sofia-sip-ua >= 1.12.12],[ - AM_CONDITIONAL([HAVE_SOFIA_SIP],[true])],[ - AC_MSG_ERROR([no usable sofia-sip; please install sofia-sip-ua devel package or equivalent]) -@@ -2104,6 +2099,7 @@ AC_CONFIG_SUBDIRS([libs/iksemel]) - AC_CONFIG_SUBDIRS([libs/libdingaling]) - AC_CONFIG_SUBDIRS([libs/freetdm]) - AC_CONFIG_SUBDIRS([libs/unimrcp]) -+AC_CONFIG_SUBDIRS([libs/spandsp]) - if test "x${enable_zrtp}" = "xyes"; then - AC_CONFIG_SUBDIRS([libs/libzrtp]) - fi ---- a/debian/copyright -+++ b/debian/copyright -@@ -1310,6 +1310,45 @@ Files: libs/js/nsprpub/pr/tests/tmocon.c - Copyright: 1998-2004 Netscape Communications Corporation - License: MPL-1.1 or GPL-2+ - -+Files: libs/spandsp/* -+Copyright: 2001-2012, Steve Underwood -+ 2006 Michael Jerris -+ 1991-1997 Silicon Graphics, Inc. -+ 1990-1997 Sam Leffler -+ 1993 CMU -+ 2004, Horizon Wimba, Inc. -+ 1990, 1995 Frank D. Cringle. -+License: LGPL-2.1 -+ -+Files: libs/spandsp/tests/* -+ libs/spandsp/spandsp-sim/g1050.c -+ libs/spandsp/spandsp-sim/line_model.c -+ libs/spandsp/spandsp-sim/make_line_models.c -+ libs/spandsp/spandsp-sim/spandsp-sim.h -+ libs/spandsp/spandsp-sim/test_utils.c -+ libs/spandsp/src/image_translate.c -+ libs/spandsp/src/make_at_dictionary.c -+ libs/spandsp/src/make_cielab_luts.c -+ libs/spandsp/src/make_math_fixed_tables.c -+ libs/spandsp/src/make_modem_filter.c -+ libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c -+ libs/spandsp/test-data/itu/fax/generate_dithered_tif.c -+ libs/spandsp/test-data/itu/fax/generate_sized_pages.c -+ libs/spandsp/test-data/itu/fax/generate_striped_pages.c -+Copyright: 2001-2012, Steve Underwood -+License: GPL-2 -+ -+Files: libs/spandsp/tests/ademco_contactid_tests.c -+ libs/spandsp/tests/regression_tests.sh -+ libs/spandsp/tests/timezone_tests.c -+ libs/spandsp/tests/tsb85_extra_tests.sh -+ libs/spandsp/tests/tsb85_tests.c -+ libs/spandsp/tests/tsb85_tests.sh -+ libs/spandsp/tests/v42bis_tests.sh -+ libs/spandsp/tests/fax_tests.sh -+Copyright: 2001-2012, Steve Underwood -+License: LGPL-2.1 -+ - Files: src/mod/applications/mod_cluechoo/sl.h - Copyright: 1993 Toyoda Masashi - License: FIXME -@@ -1402,6 +1441,11 @@ Files: libs/libsndfile/src/G72x/* - Copyright: Abandoned, Sun Microsystems, Inc. - License: public-domain - -+Files: libs/spandsp/src/spandsp/fast_convert.h -+Copyright: 2001-2004 Erik de Castro Lopo -+ 2009 Steve Underwood -+License: LGPL-2.1 -+ - Files: libs/libsndfile/* - libs/win32/libsndfile/* - Copyright: 1999-2009 Erik de Castro Lopo ---- a/src/mod/applications/mod_spandsp/Makefile.am -+++ b/src/mod/applications/mod_spandsp/Makefile.am -@@ -1,9 +1,17 @@ - include $(top_srcdir)/build/modmake.rulesam - MODNAME=mod_spandsp - -+SPANDSP_DIR=$(switch_srcdir)/libs/spandsp -+SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp -+SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la -+ - mod_LTLIBRARIES = mod_spandsp.la - mod_spandsp_la_SOURCES = mod_spandsp.c udptl.c mod_spandsp_fax.c mod_spandsp_dsp.c mod_spandsp_codecs.c mod_spandsp_modem.c - mod_spandsp_la_CFLAGS = $(AM_CFLAGS) --mod_spandsp_la_CPPFLAGS = $(SPANDSL_CFLAGS) -I. --mod_spandsp_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SPANDSP_LIBS) -ljpeg -lz -ltiff -+mod_spandsp_la_CPPFLAGS = -I$(SPANDSP_DIR)/src -I$(SPANDSP_BUILDDIR)/src -I. -+mod_spandsp_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SPANDSP_LA) $(SPANDSP_LA_JBIG) $(SPANDSP_LA_LZMA) -ljpeg -lz -ltiff - mod_spandsp_la_LDFLAGS = -avoid-version -module -no-undefined -shared -+ -+$(SPANDSP_LA): $(SPANDSP_DIR) $(SPANDSP_DIR)/.update -+ cd $(SPANDSP_BUILDDIR) && $(MAKE) CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" -+ $(TOUCH_TARGET)