freeswitch-stable: bump to 1.10.5

Includes some backports from master.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit is contained in:
Sebastian Kemper 2020-09-11 14:01:34 +02:00
parent 671b95efac
commit f7e7543393
7 changed files with 74 additions and 138 deletions

View file

@ -9,29 +9,25 @@ include $(TOPDIR)/rules.mk
PRG_NAME:=freeswitch
PKG_NAME:=$(PRG_NAME)-stable
PKG_VERSION:=1.10.3
PKG_RELEASE:=2
PKG_VERSION:=1.10.5
PKG_RELEASE:=1
PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
PKG_SOURCE:=$(PRG_NAME)-$(PKG_VERSION).-release.tar.xz
PKG_SOURCE_URL:=https://files.$(PRG_NAME).org/releases/$(PRG_NAME)
PKG_HASH:=2d7db07a64ee2f19f9b6e3a4ce76fa42e0fe46c29d95edf1b690a3df3729f307
PKG_HASH:=3e26600767a82946eca94af2c8f14712783aa83db5fb1cc57585f544aecce327
PKG_CPE_ID:=cpe:/a:freeswitch:freeswitch
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PRG_NAME)-$(PKG_VERSION).-release
# configure in libs/spandsp fails without libjpeg and tiff
PKG_BUILD_DEPENDS:= \
libjpeg \
tiff \
perl/host \
python/host
PKG_FIXUP:=autoreconf
# With mod_ssml and mod_rayo enabled the parallel compiles always failed
PKG_BUILD_PARALLEL:=0
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_LICENSE:= \
@ -281,6 +277,10 @@ endef
$$(eval $$(call Download,$(1)))
endef
define Package/$(PKG_NAME)/enable/plugin
$(SED) '/$(1)$$$$/s/^#//' $(PKG_BUILD_DIR)/modules.conf
endef
define Package/$(PKG_NAME)/install/bin
$(INSTALL_DIR) $(1)$(FS_STABLE_BIN_DIR)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)$(FS_STABLE_BIN_DIR)/$(2) \
@ -347,7 +347,7 @@ endef
define Package/$(PKG_LIBFTDM)/FTModule
define Package/$(PKG_LIBFTDM)-ftmod-$(subst _,-,$(1))
$(call Package/$(PKG_LIBFTDM)/Default)
DEPENDS:=PACKAGE_$(PKG_LIBFTDM)-ftmod-$(subst _,-,$(1)):$(PKG_LIBFTDM) \
DEPENDS:=$(PKG_LIBFTDM) \
$(patsubst +%,+PACKAGE_$(PKG_LIBFTDM)-ftmod-$(subst _,-,$(1)):%,$(4))
TITLE:=$(2) FreeTDM module
endef
@ -384,10 +384,12 @@ $(call Package/$(PKG_NAME)/Default)
+libpcre \
+libpthread \
+librt \
+libspandsp3 \
+libspeex \
+libspeexdsp \
+libsqlite3 \
+libuuid \
+sofia-sip \
+zlib
CONFLICTS:=$(PRG_NAME)
endef
@ -659,13 +661,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
@ -811,27 +806,36 @@ define Build/Configure
$(SED) '/^#/!s/^/#/' $(PKG_BUILD_DIR)/modules.conf
$(foreach m,$(FS_STABLE_MOD_AVAILABLE),
$(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-$(subst _,-,$(m))),
$(SED) '/mod_$(m)$$$$/s/^#//' $(PKG_BUILD_DIR)/modules.conf))
$(call Package/$(PKG_NAME)/enable/plugin,mod_$(m))))
# Some of the dependencies that necessitate below hacks are documented in
# src/mod/Makefile.am.
# Hack for misc-grammar - needs mod_pocketsphinx to provide grammar files
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-misc-grammar),)
ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-pocketsphinx),)
$(SED) '/mod_pocketsphinx$$$$/s/^#//' $(PKG_BUILD_DIR)/modules.conf
endif
$(call Package/$(PKG_NAME)/enable/plugin,mod_pocketsphinx)
endif
# Hack for mod_gsmopen - it has a build-time dep on mod_spandsp
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-gsmopen),)
ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp),)
$(SED) '/mod_spandsp$$$$/s/^#//' $(PKG_BUILD_DIR)/modules.conf
$(call Package/$(PKG_NAME)/enable/plugin,mod_spandsp)
endif
# Hack for mod_rayo - it has a build-time dep on mod_dingaling
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-rayo),)
$(call Package/$(PKG_NAME)/enable/plugin,mod_dingaling)
endif
# Hack for mod_ssml - it has a build-time dep on mod_rayo. And mod_rayo needs
# mod_dingaling :)
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-ssml),)
$(call Package/$(PKG_NAME)/enable/plugin,mod_rayo)
$(call Package/$(PKG_NAME)/enable/plugin,mod_dingaling)
endif
# Hack for mod_unimrcp - it has a build-time dep on mod_sofia
ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-unimrcp),)
ifeq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-sofia),)
$(SED) '/mod_sofia$$$$/s/^#//' $(PKG_BUILD_DIR)/modules.conf
endif
$(call Package/$(PKG_NAME)/enable/plugin,mod_sofia)
endif
$(call Build/Configure/Default)

View file

@ -82,42 +82,6 @@
#Set default language
AC_LANG_C
--- a/libs/sofia-sip/configure.ac
+++ b/libs/sofia-sip/configure.ac
@@ -13,9 +13,12 @@ dnl ---------------------------
dnl update both the version for AC_INIT and the LIBSOFIA_SIP_UA_MAJOR_MINOR
AC_INIT([sofia-sip], [1.12.10devel])
-CFLAGS="$CFLAGS $CONFIGURE_CFLAGS"
-CXXFLAGS="$CXXFLAGS $CONFIGURE_CXXFLAGS"
-LDFLAGS="$LDFLAGS $CONFIGURE_LDFLAGS"
+m4_include(../apr/build/apr_common.m4)
+
+APR_ADDTO(CFLAGS, [$CONFIGURE_CFLAGS])
+APR_ADDTO(CPPFLAGS, [$CONFIGURE_CPPFLAGS])
+APR_ADDTO(CXXFLAGS, [$CONFIGURE_CXXFLAGS])
+APR_ADDTO(LDFLAGS, [$CONFIGURE_LDFLAGS])
AC_CONFIG_SRCDIR([libsofia-sip-ua/sip/sofia-sip/sip.h])
AC_CONFIG_MACRO_DIR([m4])
--- a/libs/spandsp/configure.ac
+++ b/libs/spandsp/configure.ac
@@ -21,9 +21,12 @@
AC_PREREQ([2.59])
AC_INIT([spandsp], [1.99.0])
-CFLAGS="$CFLAGS $CONFIGURE_CFLAGS"
-CXXFLAGS="$CXXFLAGS $CONFIGURE_CXXFLAGS"
-LDFLAGS="$LDFLAGS $CONFIGURE_LDFLAGS"
+m4_include(../apr/build/apr_common.m4)
+
+APR_ADDTO(CFLAGS, [$CONFIGURE_CFLAGS])
+APR_ADDTO(CPPFLAGS, [$CONFIGURE_CPPFLAGS])
+APR_ADDTO(CXXFLAGS, [$CONFIGURE_CXXFLAGS])
+APR_ADDTO(LDFLAGS, [$CONFIGURE_LDFLAGS])
SPANDSP_LT_CURRENT=3
SPANDSP_LT_REVISION=0
--- a/libs/srtp/configure.ac
+++ b/libs/srtp/configure.ac
@@ -3,9 +3,12 @@ AC_INIT(srtp, 1.4.2, mcgrew@cisco.com)

View file

@ -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

View file

@ -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)

View file

@ -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])
])

View file

@ -1,66 +0,0 @@
commit 167294ea2649afd0ffedf4520b0f308979c3ca2a
Author: Sebastian Kemper <sebastian_ml@gmx.net>
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 <sebastian_ml@gmx.net>
--- a/src/mod/endpoints/mod_sofia/sofia.c
+++ b/src/mod/endpoints/mod_sofia/sofia.c
@@ -6512,6 +6512,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);
}

View file

@ -1,11 +0,0 @@
--- a/libs/sofia-sip/configure.ac
+++ b/libs/sofia-sip/configure.ac
@@ -250,7 +250,7 @@ SAC_OPENSSL
SAC_TPORT
dnl Check is used for testing
-PKG_CHECK_MODULES(CHECK, check >= 0.9.4, have_check="yes", have_check="no")
+PKG_CHECK_MODULES(CHECK, we_do_not_want_check >= 0.9.4, have_check="yes", have_check="no")
AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
if test x"$have_check" = "xyes"; then
AC_DEFINE([HAVE_CHECK], 1, [Define to 1 if check library is available])