2 # Copyright (C) 2017 - 2018 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
11 PKG_NAME
:=$(PRG_NAME
)-stable
14 PKG_MAINTAINER
:=Sebastian Kemper
<sebastian_ml@gmx.net
>
16 PKG_SOURCE
:=$(PRG_NAME
)-$(PKG_VERSION
).
tar.xz
17 PKG_SOURCE_URL
:=https
://files.
$(PRG_NAME
).org
/releases
/$(PRG_NAME
)
18 PKG_HASH
:=dbb0f73109171bd381772b247b8ef581f6a176964619082a1fe031b004086f6b
20 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PRG_NAME
)-$(PKG_VERSION
)
22 # configure fails without libjpeg, but it's only needed for mod_spandsp
30 # With mod_ssml and mod_rayo enabled the parallel compiles always failed
31 #PKG_BUILD_PARALLEL:=1
56 PKG_LICENSE_FILES
:=debian
/copyright
58 FS_STABLE_DATA_DIR
:=/usr
/share
/$(PRG_NAME
)
60 FS_STABLE_BIN_DIR
:=/usr
/bin
61 FS_STABLE_EXAMPLES_DIR
:=$(FS_STABLE_DATA_DIR
)/examples
62 FS_STABLE_FONTS_DIR
:=$(FS_STABLE_DATA_DIR
)/fonts
63 FS_STABLE_GRAMMAR_DIR
:=$(FS_STABLE_DATA_DIR
)/grammar
64 FS_STABLE_HTDOCS_DIR
:=$(FS_STABLE_DATA_DIR
)/htdocs
65 FS_STABLE_IMAGES_DIR
:=$(FS_STABLE_DATA_DIR
)/images
66 FS_STABLE_INCLUDES_DIR
:=/usr
/include/$(PRG_NAME
)
67 FS_STABLE_LANG_DIR
:=$(FS_STABLE_DATA_DIR
)/lang
68 FS_STABLE_LIB_DIR
:=/usr
/lib
69 FS_STABLE_MOD_DIR
:=$(FS_STABLE_LIB_DIR
)/$(PRG_NAME
)/mod
70 FS_STABLE_PKGCONFIG_DIR
:=$(FS_STABLE_LIB_DIR
)/pkgconfig
71 FS_STABLE_SCRIPTS_DIR
:=$(FS_STABLE_DATA_DIR
)/scripts
72 FS_STABLE_SOUNDS_DIR
:=$(FS_STABLE_DATA_DIR
)/sounds
73 FS_STABLE_SYSCONF_DIR
:=/etc
74 FS_STABLE_TLS_DIR
:=$(FS_STABLE_SYSCONF_DIR
)/$(PRG_NAME
)/tls
75 FS_STABLE_TZ_DIR
:=$(FS_STABLE_DATA_DIR
)/tz
77 FS_STABLE_FTMOD_AVAILABLE
:= \
85 # Maintain a list of all non-module packages so they can be added to
87 FS_STABLE_MISC_AVAILABLE
:= \
117 FS_STABLE_MOD_AVAILABLE
:= \
258 PKG_CONFIG_DEPENDS
:= \
259 $(patsubst %,CONFIG_PACKAGE_
$(PKG_NAME
)-%,$(FS_STABLE_MISC_AVAILABLE
)) \
260 $(patsubst %,CONFIG_PACKAGE_
$(PKG_NAME
)-ftmod-
%,$(FS_STABLE_FTMOD_AVAILABLE
)) \
261 $(patsubst %,CONFIG_PACKAGE_
$(PKG_NAME
)-mod-
%,$(FS_STABLE_MOD_AVAILABLE
)) \
262 CONFIG_FS_STABLE_WITH_DEBUG \
263 CONFIG_FS_STABLE_WITH_FREETYPE \
264 CONFIG_FS_STABLE_WITH_LIBYUV \
265 CONFIG_FS_STABLE_WITH_MODCONF \
266 CONFIG_FS_STABLE_WITH_ODBC \
267 CONFIG_FS_STABLE_WITH_PGSQL \
268 CONFIG_FS_STABLE_WITH_PNG \
269 CONFIG_FS_STABLE_WITH_SRTP \
270 CONFIG_FS_STABLE_WITH_V8 \
271 CONFIG_FS_STABLE_WITH_V8_SNAPSHOT \
272 CONFIG_FS_STABLE_WITH_VPX \
273 CONFIG_FS_STABLE_WITH_ZRTP \
275 CONFIG_PACKAGE_
$(LIBFTDM
) \
278 include $(INCLUDE_DIR
)/package.mk
280 FS_STABLE_PERL_FEED
:=$(TOPDIR
)/feeds
/packages
/lang
/perl
282 include $(TOPDIR
)/feeds
/packages
/lang
/python
/python-host.mk
283 include $(FS_STABLE_PERL_FEED
)/perlmod.mk
285 FS_STABLE_PERL_LIBS
:=$(shell grep
"^libs=" \
286 $(FS_STABLE_PERL_FEED
)/files
/base.config | \
287 sed
"s/^libs=//;s/'//g")
289 FS_STABLE_PYTHON_SITE_DIR
:=$(FS_STABLE_LIB_DIR
)/python
$(PYTHON_VERSION
)/site-packages
291 # musl and glibc include their own iconv, but uclibc does not
292 ifneq ($(CONFIG_USE_UCLIBC
),)
294 -I
$(STAGING_DIR
)/usr
/lib
/libiconv-full
/include
296 -L
$(STAGING_DIR
)/usr
/lib
/libiconv-full
/lib
299 define Download
/files
305 $$(eval
$$(call Download
,$(1)))
308 define Package
/$(PKG_NAME
)/install/bin
309 $(INSTALL_DIR
) $(1)$(FS_STABLE_BIN_DIR
)
310 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)$(FS_STABLE_BIN_DIR
)/$(2) \
311 $(1)$(FS_STABLE_BIN_DIR
)
314 define Package
/$(PKG_NAME
)/install/dir
315 if
[ -d
$(2) ]; then
$(INSTALL_DIR
) $(1); fi
316 for
dir in
$$$$(shell [ -d
$(2) ] && cd
$(2) && $(FIND
) -type d
-print | sed
's|^./\?||'); \
318 $(INSTALL_DIR
) $(1)/$$$$$$$$dir; \
320 for file in
$$$$(shell [ -d
$(2) ] && cd
$(2) && $(FIND
) -type f
-print | sed
's|^./||'); \
322 $(INSTALL_DATA
) $(2)/$$$$$$$$file $(1)/$$$$$$$$file; \
326 define Package
/$(PKG_NAME
)/install/ftmod
327 $(INSTALL_DIR
) $(1)$(FS_STABLE_MOD_DIR
)
328 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)$(FS_STABLE_MOD_DIR
)/ftmod_
$(2).so \
329 $(1)$(FS_STABLE_MOD_DIR
)
332 define Package
/$(PKG_NAME
)/install/lib
333 $(INSTALL_DIR
) $(1)$(FS_STABLE_LIB_DIR
)
334 $(CP
) $(PKG_INSTALL_DIR
)$(FS_STABLE_LIB_DIR
)/$(2).so
* \
335 $(1)$(FS_STABLE_LIB_DIR
)
338 define Package
/$(PKG_NAME
)/install/mod
339 $(INSTALL_DIR
) $(1)$(FS_STABLE_MOD_DIR
)
340 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)$(FS_STABLE_MOD_DIR
)/mod_
$(2).so \
341 $(1)$(FS_STABLE_MOD_DIR
)
344 define Package
/$(LIBFTDM
)
349 TITLE
:=TDM signaling and media API
350 URL
:=https
://www.
$(PRG_NAME
).org
353 define Package
/$(LIBFTDM
)/description
354 Provides a unified interface to hardware TDM cards and ss7 stacks for
358 define Package
/$(LIBFTDM
)/install
359 $(call Package
/$(PKG_NAME
)/install/lib
,$(1),$(LIBFTDM
))
362 define Package
/$(PKG_NAME
)/config
363 source
"$(SOURCE)/Config.in"
366 define Package
/$(PKG_NAME
)/Default
370 URL
:=https
://www.
$(PRG_NAME
).org
373 define Package
/$(PKG_NAME
)
374 $(call Package
/$(PKG_NAME
)/Default
)
375 TITLE
:=Open source telephony platform
, v
$(PKG_VERSION
)
377 USERID
:=$(PRG_NAME
)=372:$(PRG_NAME
)=372
379 +FS_STABLE_WITH_FREETYPE
:libfreetype \
380 +FS_STABLE_WITH_ODBC
:unixodbc \
381 +FS_STABLE_WITH_PGSQL
:libpq \
382 +FS_STABLE_WITH_PNG
:libpng \
383 +USE_UCLIBC
:libiconv-full \
396 CONFLICTS
:=$(PRG_NAME
)
399 define Package
/$(PKG_NAME
)/description
400 FreeSWITCH is a scalable open source cross-platform telephony platform
401 designed to route and interconnect popular communication protocols
402 using audio
, video
, text or any other form of media.
405 define Package
/$(PKG_NAME
)/conffiles
406 $(FS_STABLE_SYSCONF_DIR
)/$(PRG_NAME
)
407 $(FS_STABLE_SYSCONF_DIR
)/default
/$(PRG_NAME
)
408 $(FS_STABLE_SYSCONF_DIR
)/init.d
/$(PRG_NAME
)
411 define Package
/$(PKG_NAME
)/install
412 $(call Package
/$(PKG_NAME
)/install/bin
,$(1),$(PRG_NAME
))
413 $(call Package
/$(PKG_NAME
)/install/lib
,$(1),lib
$(PRG_NAME
))
414 $(INSTALL_DIR
) $(1)$(FS_STABLE_FONTS_DIR
)
415 $(INSTALL_DIR
) $(1)$(FS_STABLE_GRAMMAR_DIR
)
416 $(INSTALL_DIR
) $(1)$(FS_STABLE_HTDOCS_DIR
)
417 $(INSTALL_DIR
) $(1)$(FS_STABLE_IMAGES_DIR
)
418 $(INSTALL_DIR
) $(1)$(FS_STABLE_SCRIPTS_DIR
)
419 $(INSTALL_DIR
) $(1)$(FS_STABLE_SOUNDS_DIR
)
420 $(INSTALL_DIR
) $(1)$(FS_STABLE_SYSCONF_DIR
)/default
421 $(INSTALL_DIR
) $(1)$(FS_STABLE_SYSCONF_DIR
)/init.d
422 $(INSTALL_DIR
) $(1)$(FS_STABLE_TLS_DIR
)
423 $(INSTALL_BIN
) .
/files
/$(PRG_NAME
).init \
424 $(1)$(FS_STABLE_SYSCONF_DIR
)/init.d
/$(PRG_NAME
)
425 $(INSTALL_CONF
) .
/files
/$(PRG_NAME
).default \
426 $(1)$(FS_STABLE_SYSCONF_DIR
)/default
/$(PRG_NAME
)
429 define Package
/$(PKG_NAME
)/postinst
431 if
[ -z
"$${IPKG_INSTROOT}" ]; then
432 # Prevent $(PRG_NAME) from auto-starting after an upgrade. The modules may
433 # not be upgraded yet and the user configuration may need a revision.
434 sed
-i
'/^ENABLE_FREESWITCH="yes"/s/^/#/' \
435 $(FS_STABLE_SYSCONF_DIR
)/default
/$(PRG_NAME
)
438 echo
"o-------------------------------------------------------------------o"
439 echo
"| FreeSWITCH note |"
440 echo
"o-------------------------------------------------------------------o"
441 echo
"| Edit /etc/default/freeswitch to change basic init configuration. |"
442 echo
"o-------------------------------------------------------------=^_^=-o"
448 define Package
/$(PKG_NAME
)-misc-hotplug
449 $(call Package
/$(PKG_NAME
)/Default
)
450 TITLE
:=Hotplug script
455 define Package
/$(PKG_NAME
)-misc-hotplug
/description
456 This package includes a hotplug script for FreeSWITCH.
459 define Package
/$(PKG_NAME
)-misc-hotplug
/install
460 $(INSTALL_DIR
) $(1)$(FS_STABLE_SYSCONF_DIR
)/hotplug.d
/iface
461 $(INSTALL_BIN
) .
/files
/$(PRG_NAME
).hotplug \
462 $(1)$(FS_STABLE_SYSCONF_DIR
)/hotplug.d
/iface
/99-$(PRG_NAME
)
465 define Package
/$(PKG_NAME
)-misc-hotplug
/postinst
467 if
[ -z
"$${IPKG_INSTROOT}" ]; then
469 echo
"o-------------------------------------------------------------------o"
470 echo
"| FreeSWITCH hotplug note |"
471 echo
"o-------------------------------------------------------------------o"
472 echo
"| See /etc/default/freeswitch for hotplug hints. |"
473 echo
"o-------------------------------------------------------------=^_^=-o"
479 define Package
/$(PKG_NAME
)-misc-perl-esl
480 $(call Package
/$(PKG_NAME
)/Default
)
482 DEPENDS
:=$(PKG_NAME
) \
483 +PACKAGE_
$(PKG_NAME
)-misc-perl-esl
:perlbase-autoloader \
484 +PACKAGE_
$(PKG_NAME
)-misc-perl-esl
:perlbase-data \
485 +PACKAGE_
$(PKG_NAME
)-misc-perl-esl
:perlbase-dynaloader \
489 define Package
/$(PKG_NAME
)-misc-perl-esl
/description
490 This package contains the Perl binding for FreeSWITCH
's Event Socket
494 define Package/$(PKG_NAME)-misc-perl-esl/install
495 $(INSTALL_DIR) $(1)$(PERL_SITELIB)/ESL
496 $(INSTALL_DIR) $(1)$(PERL_SITELIB)/auto/ESL
498 $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL.so \
499 $(1)$(PERL_SITELIB)/auto/ESL
501 $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL.pm \
504 $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL/Dispatch.pm \
505 $(1)$(PERL_SITELIB)/ESL
507 $(PKG_INSTALL_DIR)$(PERL_SITELIB)/ESL/IVR.pm \
508 $(1)$(PERL_SITELIB)/ESL
511 define Package/$(PKG_NAME)-misc-python-esl
512 $(call Package/$(PKG_NAME)/Default)
514 DEPENDS:=$(PKG_NAME) +PACKAGE_$(PKG_NAME)-misc-python-esl:python-light
517 define Package/$(PKG_NAME)-misc-python-esl/description
518 This package contains the Python binding for FreeSWITCH's Event Socket
522 define Package
/$(PKG_NAME
)-misc-python-esl
/install
523 $(INSTALL_DIR
) $(1)$(FS_STABLE_PYTHON_SITE_DIR
)
525 $(PKG_INSTALL_DIR
)$(FS_STABLE_PYTHON_SITE_DIR
)/_ESL.so \
526 $(1)$(FS_STABLE_PYTHON_SITE_DIR
)
528 $(PKG_INSTALL_DIR
)$(FS_STABLE_PYTHON_SITE_DIR
)/ESL.py \
529 $(1)$(FS_STABLE_PYTHON_SITE_DIR
)
532 define Package
/$(PKG_NAME
)-misc-timezones
533 $(call Package
/$(PKG_NAME
)/Default
)
534 TITLE
:=Timezones file
539 define Package
/$(PKG_NAME
)-misc-timezones
/description
540 This package includes a timezones file for FreeSWITCH.
543 define Package
/$(PKG_NAME
)-misc-timezones
/install
544 $(INSTALL_DIR
) $(1)$(FS_STABLE_TZ_DIR
)
546 $(PKG_BUILD_DIR
)/conf
/vanilla
/autoload_configs
/timezones.conf.xml \
547 $(1)$(FS_STABLE_TZ_DIR
)
550 define Package
/$(PKG_NAME
)/Example
551 define Package
/$(PKG_NAME
)-example-
$(1)
552 $(call Package
/$(PKG_NAME
)/Default
)
553 TITLE
:=Example configuration
557 define Package
/$(PKG_NAME
)-example-
$(1)/description
558 This package does not
install any configuration for FreeSWITCH into
559 /etc
/freeswitch. The system administrator is completely responsible
560 for that directory. If you
install one of the example configuration
561 packages
, it will
install the corresponding sample configuration to
562 /usr
/share
/freeswitch
/examples where you can take a look at it.
564 define Package
/$(PKG_NAME
)-example-
$(1)/install
565 $(call Package
/$(PKG_NAME
)/install/dir,$$(1)$(FS_STABLE_EXAMPLES_DIR
)/$(1),$(PKG_BUILD_DIR
)/conf
/$(1))
567 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-example-
$(1)))
570 define Package
/$(PKG_NAME
)/FTModule
571 define Package
/$(PKG_NAME
)-ftmod-
$(1)
572 $(call Package
/$(PKG_NAME
)/Default
)
575 $(patsubst +%,+PACKAGE_
$(PKG_NAME
)-ftmod-
$(1):%,$(4)) \
576 +PACKAGE_
$(PKG_NAME
)-ftmod-
$(1):$(LIBFTDM
)
577 TITLE
:=$(2) FreeTDM module
579 define Package
/$(PKG_NAME
)-ftmod-
$(1)/description
580 $(subst \n,$(newline
),$(3))
582 define Package
/$(PKG_NAME
)-ftmod-
$(1)/install
583 $(call Package
/$(PKG_NAME
)/install/ftmod
,$$(1),$(1))
585 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-ftmod-
$(1)))
588 define Package
/$(PKG_NAME
)/Language
589 define Package
/$(PKG_NAME
)-lang-
$(1)
590 $(call Package
/$(PKG_NAME
)/Default
)
591 TITLE
:=$(2) language files
595 define Package
/$(PKG_NAME
)-lang-
$(1)/description
596 This package includes the
$(2) language files for FreeSWITCH.
598 define Package
/$(PKG_NAME
)-lang-
$(1)/install
599 $(call Package
/$(PKG_NAME
)/install/dir,$$(1)$(FS_STABLE_LANG_DIR
)/$(1),$(PKG_BUILD_DIR
)/conf
/vanilla
/lang
/$(1))
601 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-lang-
$(1)))
604 # The next package generator is for miscellaneous files that only
605 # require being copied from PKG_INSTALL_DIR to the ipkg.
606 define Package
/$(PKG_NAME
)/Misc
607 define Package
/$(PKG_NAME
)-$(1)
608 $(call Package
/$(PKG_NAME
)/Default
)
615 define Package
/$(PKG_NAME
)-$(1)/description
616 $(subst \n,$(newline
),$(3))
618 define Package
/$(PKG_NAME
)-$(1)/install
619 $(call Package
/$(PKG_NAME
)/install/dir,$$(1)$(5),$(PKG_INSTALL_DIR
)$(4))
621 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-$(1)))
624 define Package
/$(PKG_NAME
)/Module
625 define Package
/$(PKG_NAME
)-mod-
$(1)
626 $(call Package
/$(PKG_NAME
)/Default
)
628 DEPENDS
:=$(PKG_NAME
) $(patsubst +%,+PACKAGE_
$(PKG_NAME
)-mod-
$(1):%,$(4))
630 define Package
/$(PKG_NAME
)-mod-
$(1)/description
631 $(subst \n,$(newline
),$(3))
633 define Package
/$(PKG_NAME
)-mod-
$(1)/install
634 $(call Package
/$(PKG_NAME
)/install/mod
,$$(1),$(1))
635 ifeq ($(CONFIG_FS_STABLE_WITH_MODCONF
),y
)
636 $(call Package
/$(PKG_NAME
)/install/dir,$$(1)$(FS_STABLE_EXAMPLES_DIR
)/mod_
$(1),$(PKG_BUILD_DIR
)/src
/mod
/*/mod_
$(1)/conf
)
639 $(INSTALL_DIR
) $$(1)$(PERL_SITELIB
)/auto
/$(PRG_NAME
)
641 $(PKG_INSTALL_DIR
)/usr
/perl
/$(PRG_NAME
).so \
642 $$(1)$(PERL_SITELIB
)/auto
/$(PRG_NAME
)
644 $(PKG_INSTALL_DIR
)/usr
/perl
/$(PRG_NAME
).pm \
648 $(INSTALL_DIR
) $$(1)$(FS_STABLE_PYTHON_SITE_DIR
)
650 $(PKG_INSTALL_DIR
)$(FS_STABLE_PYTHON_SITE_DIR
)/$(PRG_NAME
).py \
651 $$(1)$(FS_STABLE_PYTHON_SITE_DIR
)
654 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-mod-
$(1)))
657 define Package
/$(PKG_NAME
)/Util
658 define Package
/$(PKG_NAME
)-util-
$(1)
659 $(call Package
/$(PKG_NAME
)/Default
)
661 DEPENDS
:=$(PKG_NAME
) $(patsubst +%,+PACKAGE_
$(PKG_NAME
)-util-
$(1):%,$(4))
666 define Package
/$(PKG_NAME
)-util-
$(1)/description
667 $(subst \n,$(newline
),$(3))
669 define Package
/$(PKG_NAME
)-util-
$(1)/install
670 $(call Package
/$(PKG_NAME
)/install/bin
,$$(1),$(1))
672 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-util-
$(1)))
676 --srcdir=$(PKG_BUILD_DIR
) \
677 --disable-dependency-tracking \
678 --disable-silent-rules \
680 --disable-system-xmlrpc-c \
681 --enable-core-libedit-support \
683 --with-cachedir
=/tmp
/$(PRG_NAME
)/cache \
684 --with-dbdir
=/tmp
/$(PRG_NAME
)/db \
685 --with-imagesdir
=$(FS_STABLE_IMAGES_DIR
) \
686 --with-logfiledir
=/tmp
/$(PRG_NAME
)/log \
687 --with-recordingsdir
=/tmp
/$(PRG_NAME
)/recordings \
688 --with-storagedir
=/tmp
/$(PRG_NAME
)/storage \
689 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_DEBUG
,debug
) \
690 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_LIBYUV
,libyuv
) \
691 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_ODBC
,core-odbc-support
) \
692 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_PGSQL
,core-pgsql-support
) \
693 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_SRTP
,srtp
) \
694 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_VPX
,libvpx
) \
695 $(call autoconf_bool
,CONFIG_FS_STABLE_WITH_ZRTP
,zrtp
) \
696 $(if
$(CONFIG_FS_STABLE_WITH_FREETYPE
),,--without-freetype
) \
697 $(if
$(CONFIG_FS_STABLE_WITH_ODBC
),--with-odbc-lib
="$(STAGING_DIR)$(FS_STABLE_LIB_DIR)") \
698 $(if
$(CONFIG_FS_STABLE_WITH_ODBC
),--with-odbc
="$(STAGING_DIR)/usr") \
699 $(if
$(CONFIG_FS_STABLE_WITH_PGSQL
),,--without-pgsql
) \
700 $(if
$(CONFIG_FS_STABLE_WITH_PNG
),,--without-png
) \
701 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-ftmod-libpri
),--with-libpri
="$(STAGING_DIR)/usr",--without-libpri
) \
702 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-ftmod-pritap
),--with-pritap
,--without-pritap
)
704 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-python-esl
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-python
),)
706 --with-python
=$(STAGING_DIR_HOSTPKG
)/bin
/python
$(PYTHON_VERSION
)
712 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-erlang_event
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-kazoo
),)
717 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-v8
),)
720 $(if
$(CONFIG_FS_STABLE_WITH_V8_SNAPSHOT
),,--disable-snapshot-v8
)
723 # Make mod_spandsp use fixed point math when soft float support is
724 # enabled on target devices.
725 ifeq ($(CONFIG_SOFT_FLOAT
),y
)
730 # Don't want host-php
733 ac_cv_have_php_config
=no \
734 ac_cv_prog_PHP
=false \
735 ac_cv_prog_PHP_CONFIG
=false
737 # The autoconf variables in this block are OK for both musl and glibc
739 ac_cv_dev_urandom
=yes \
740 ac_cv_file__dev_ptmx
=yes \
741 ac_cv_file__dev_urandom
=yes \
742 ac_cv_file_dbd_apr_dbd_mysql_c
=no \
743 ac_cv_free_null
=yes \
744 ac_cv_func_mmap_fixed_mapped
=yes \
745 ac_cv_func_pthread_rwlock_init
=yes \
746 ac_cv_func_sem_open
=yes \
747 ac_cv_have_working_memmove
=yes \
748 ac_cv_negative_eai
=yes \
749 ac_cv_o_nonblock_inherited
=no \
750 ac_cv_struct_rlimit
=yes \
752 apr_cv_gai_addrconfig
=yes \
753 apr_cv_mutex_recursive
=yes \
754 apr_cv_process_shared_works
=yes \
755 apr_cv_pthreads_lib
=-lpthread \
756 apr_cv_tcp_nodelay_with_cork
=yes \
757 apr_cv_type_rwlock_t
=yes
763 # Regarding apr_cv_mutex_robust_shared=no see
764 # http://www.openwall.com/lists/musl/2016/11/26/1
765 # _Don't_ remove quotes below!
766 ifeq ($(CONFIG_LIBC
),"musl")
768 apr_cv_mutex_robust_shared
=no \
769 ac_cv_strerror_r_rc_int
=yes
772 apr_cv_mutex_robust_shared
=yes
775 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-perl-esl
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-perl
),)
778 PERL_CFLAGS
="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_GNU_SOURCE -I$(STAGING_DIR)$(PERL_SITELIB)/CORE" \
779 PERL_INC
="-I$(STAGING_DIR)$(PERL_SITELIB)/CORE" \
780 PERL_LDFLAGS
="$(FPIC) -Wl,-rpath,$(PERL_SITELIB)/CORE -L$(STAGING_DIR)$(PERL_SITELIB)/CORE -lperl" \
781 PERL_LIBDIR
="-L$(PERL_SITELIB)/CORE" \
782 PERL_LIBS
="-lpthread $(FS_STABLE_PERL_LIBS) $(EXTRA_LIBDIRS:%=-L%) $(EXTRA_LIBS:%=-l%)" \
783 PERL_SITEDIR
="$(PERL_SITELIB)"
787 ac_cv_prog_PERL
=false
790 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-python-esl
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-python
),)
792 PYTHON_CFLAGS
="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION)" \
793 PYTHON_LDFLAGS
="-lpython$(PYTHON_VERSION) -ldl -lpthread -lm -Xlinker -export-dynamic" \
794 PYTHON_LIB
="python$(PYTHON_VERSION)" \
795 PYTHON_LIBDIR
="$(FS_STABLE_LIB_DIR)" \
796 PYTHON_SITE_DIR
="$(FS_STABLE_PYTHON_SITE_DIR)"
799 # mod_radius_cdr runs configure in libs/freeradius-client. Let
800 # freeradius-client know /dev/urandom is available on target devices.
802 ac_cv_dev_urandom
=yes
804 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-v8
),)
807 ifeq ($(CONFIG_arm
),y
)
808 FS_STABLE_MYARCH
:=arm
809 FS_STABLE_MYDEFINES
:=v8_target_arch
=arm
810 ifeq ($(CONFIG_arm_v6
),y
)
811 FS_STABLE_MYDEFINES
+=arm_version
=6
813 ifeq ($(CONFIG_arm_v7
),y
)
814 FS_STABLE_MYDEFINES
+=arm_version
=7
816 FS_STABLE_MYDEFINES
+=arm_version
=default
819 ifeq ($(CONFIG_VFP
),y
)
820 ifeq ($(CONFIG_VFPv3
),y
)
821 ifeq ($(CONFIG_NEON
),y
)
822 FS_STABLE_MYDEFINES
+=arm_fpu
=neon
824 FS_STABLE_MYDEFINES
+=arm_fpu
=vfpv3
827 FS_STABLE_MYDEFINES
+=arm_fpu
=vfp
830 FS_STABLE_MYDEFINES
+=arm_fpu
=default
832 ifeq ($(CONFIG_SOFT_FLOAT
),y
)
833 FS_STABLE_MYDEFINES
+=arm_float_abi
=softfp
835 FS_STABLE_MYDEFINES
+=arm_float_abi
=hard
840 ifeq ($(CONFIG_i386
),y
)
841 FS_STABLE_MYARCH
:=ia32
842 FS_STABLE_MYDEFINES
:=v8_target_arch
=ia32
846 ifeq ($(CONFIG_mipsel
),y
)
847 FS_STABLE_MYARCH
:=mipsel
848 FS_STABLE_MYDEFINES
:=v8_target_arch
=mipsel
849 ifeq ($(CONFIG_CPU_MIPS32
),y
)
850 ifeq ($(CONFIG_CPU_MIPS32_R2
),y
)
851 FS_STABLE_MYDEFINES
+=mips_arch_variant
=mips32r2
853 ifeq ($(CONFIG_CPU_MIPS32_R1
),y
)
854 FS_STABLE_MYDEFINES
+=mips_arch_variant
=mips32r1
858 ifeq ($(CONFIG_SOFT_FLOAT
),y
)
859 FS_STABLE_MYDEFINES
+=v8_use_mips_abi_hardfloat
=false
861 FS_STABLE_MYDEFINES
+=v8_use_mips_abi_hardfloat
=true
866 ifeq ($(CONFIG_x86_64
),y
)
867 FS_STABLE_MYARCH
:=x64
868 FS_STABLE_MYDEFINES
:=v8_target_arch
=x64
872 FS_STABLE_HOSTCC
="$(HOSTCC)" \
873 FS_STABLE_HOSTCXX
="$(HOSTCXX)" \
874 FS_STABLE_HOST_CFLAGS
="$(HOST_CFLAGS)" \
875 FS_STABLE_HOST_LDFLAGS
="$(HOST_LDFLAGS)" \
876 FS_STABLE_HOST_PYTHONPATH
="$(HOST_PYTHONPATH)" \
877 FS_STABLE_MYARCH
="$(FS_STABLE_MYARCH)" \
878 FS_STABLE_MYDEFINES
="$(FS_STABLE_MYDEFINES)"
882 # Make sphinxbase use fixed point math when soft float support is
883 # enabled on target devices.
884 ifeq ($(CONFIG_SOFT_FLOAT
),y
)
886 FS_STABLE_USE_FIXED_POINT
="--enable-fixed"
890 FS_STABLE_LIBS_URL
:=https
://files.
$(PRG_NAME
).org
/downloads
/libs
891 FS_STABLE_SPHINX_URL
:=@SF
/cmusphinx
894 FS_STABLE_ZEROMQ_FILE
:=zeromq-2.1
.9.
tar.gz
895 FS_STABLE_ZEROMQ_HASH
:=f3542f756687e622beef3a75c8e027fe2d95d4654350cbca4c070ffc58d9ace0
896 FS_STABLE_ZEROMQ_URL
:=http
://download.zeromq.org
899 FS_STABLE_POCKETSPHINX_FILE
:=pocketsphinx-0.8.
tar.gz
900 FS_STABLE_POCKETSPHINX_HASH
:=874c4c083d91c8ff26a2aec250b689e537912ff728923c141c4dac48662cce7a
902 FS_STABLE_SPHINXBASE_FILE
:=sphinxbase-0.8.
tar.gz
903 FS_STABLE_SPHINXBASE_HASH
:=55708944872bab1015b8ae07b379bf463764f469163a8fd114cbb16c5e486ca8
905 FS_STABLE_SPHINXMODEL_FILE
:=communicator_semi_6000_20080321.
tar.gz
906 FS_STABLE_SPHINXMODEL_HASH
:=dbb5e9fb85000a7cb97d6958a3ef8d77532dc55fc730ac6979705e8645cb0c18
909 FS_STABLE_FREERADIUS_CLIENT_FILE
:=freeradius-client-1.1
.6.
tar.gz
910 FS_STABLE_FREERADIUS_CLIENT_HASH
:=3fc609af328258e00345389d5478b099fe4ea3ad694d0472525ef3adab9cf053
913 FS_STABLE_V8_FILE
:=v8-3.24
.14.
tar.bz2
914 FS_STABLE_V8_HASH
:=395f4eaf5580b973b1e33fe0aa27f8d013ddf1b163ad76992c50dd91ff182828
916 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-event_zmq
),)
917 $(eval
$(call Download
/files
,zmq
,$(FS_STABLE_ZEROMQ_FILE
),$(FS_STABLE_ZEROMQ_URL
),$(FS_STABLE_ZEROMQ_HASH
)))
920 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pocketsphinx
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-grammar
),)
921 $(eval
$(call Download
/files
,pocketsphinx
,$(FS_STABLE_POCKETSPHINX_FILE
),$(FS_STABLE_SPHINX_URL
),$(FS_STABLE_POCKETSPHINX_HASH
)))
922 $(eval
$(call Download
/files
,sphinxbase
,$(FS_STABLE_SPHINXBASE_FILE
),$(FS_STABLE_SPHINX_URL
),$(FS_STABLE_SPHINXBASE_HASH
)))
923 $(eval
$(call Download
/files
,communicator
,$(FS_STABLE_SPHINXMODEL_FILE
),$(FS_STABLE_LIBS_URL
),$(FS_STABLE_SPHINXMODEL_HASH
)))
926 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-radius_cdr
),)
927 $(eval
$(call Download
/files
,freeradius-client
,$(FS_STABLE_FREERADIUS_CLIENT_FILE
),$(FS_STABLE_LIBS_URL
),$(FS_STABLE_FREERADIUS_CLIENT_HASH
)))
930 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-v8
),)
931 $(eval
$(call Download
/files
,v8
,$(FS_STABLE_V8_FILE
),$(FS_STABLE_LIBS_URL
),$(FS_STABLE_V8_HASH
)))
934 # Need to update LDFLAGS for libs/unimrcp, otherwise it will try to link to a
935 # different apr/apr-util if found.
936 # FS_STABLE_ANCHOR: string in build/acmacros/apr.m4 that will be replaced
937 FS_STABLE_ANCHOR
:=dnl Get build information from APR
938 FS_STABLE_APR_LIBS
:=-L
$(PKG_BUILD_DIR
)/libs
/apr
-L
$(PKG_BUILD_DIR
)/libs
/apr-util
941 $(call Build
/Prepare
/Default
)
943 $(RM
) -r
$(PKG_BUILD_DIR
)/libs
/tiff-
*
945 echo
'#applications/mod_random' >> $(PKG_BUILD_DIR
)/modules.conf
946 echo
'#codecs/mod_yuv' >> $(PKG_BUILD_DIR
)/modules.conf
947 echo
'#event_handlers/mod_event_test' >> $(PKG_BUILD_DIR
)/modules.conf
948 $(SED
) '/^#/!s/^/#/' $(PKG_BUILD_DIR
)/modules.conf
949 $(foreach m
,$(FS_STABLE_MOD_AVAILABLE
),
950 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-
$(m
)),
951 $(SED
) '/mod_$(m)$$$$/s/^#//' $(PKG_BUILD_DIR
)/modules.conf
))
953 $(SED
) 's|$(FS_STABLE_ANCHOR)|APR_SETVAR(LDFLAGS,$(FS_STABLE_APR_LIBS) $(TARGET_LDFLAGS))|' \
954 $(PKG_BUILD_DIR
)/libs
/unimrcp
/build
/acmacros
/apr.m4
956 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-event_zmq
),)
957 $(CP
) $(DL_DIR
)/$(FS_STABLE_ZEROMQ_FILE
) $(PKG_BUILD_DIR
)/libs
960 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pocketsphinx
)$(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-grammar
),)
961 $(CP
) $(DL_DIR
)/$(FS_STABLE_POCKETSPHINX_FILE
) $(PKG_BUILD_DIR
)/libs
962 $(CP
) $(DL_DIR
)/$(FS_STABLE_SPHINXBASE_FILE
) $(PKG_BUILD_DIR
)/libs
963 $(CP
) $(DL_DIR
)/$(FS_STABLE_SPHINXMODEL_FILE
) $(PKG_BUILD_DIR
)/libs
966 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-radius_cdr
),)
967 $(CP
) $(DL_DIR
)/$(FS_STABLE_FREERADIUS_CLIENT_FILE
) $(PKG_BUILD_DIR
)/libs
970 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-v8
),)
971 $(CP
) $(DL_DIR
)/$(FS_STABLE_V8_FILE
) $(PKG_BUILD_DIR
)/libs
974 # Hack for misc-grammar - needs mod_pocketsphinx to provide grammar files
975 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-grammar
),)
976 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pocketsphinx
),)
977 $(SED
) '/mod_pocketsphinx$$$$/s/^#//' $(PKG_BUILD_DIR
)/modules.conf
981 # Hack for mod_gsmopen - it has a build-time dep on mod_spandsp
982 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-gsmopen
),)
983 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-spandsp
),)
984 $(SED
) '/mod_spandsp$$$$/s/^#//' $(PKG_BUILD_DIR
)/modules.conf
988 # Hack for mod_unimrcp - it has a build-time dep on mod_sofia
989 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-unimrcp
),)
990 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-sofia
),)
991 $(SED
) '/mod_sofia$$$$/s/^#//' $(PKG_BUILD_DIR
)/modules.conf
997 $(call Build
/Compile
/Default
)
998 # FreeTDM is only compiled/installed automatically if mod_freetdm is selected
999 ifneq ($(CONFIG_PACKAGE_
$(LIBFTDM
)),)
1000 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-freetdm
),)
1001 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/freetdm
)
1004 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-perl-esl
),)
1005 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/esl perlmod
)
1007 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-python-esl
),)
1008 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/esl pymod
)
1012 define Build
/Install
1013 $(call Build
/Install
/Default
)
1014 ifneq ($(CONFIG_PACKAGE_
$(LIBFTDM
)),)
1015 ifeq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-freetdm
),)
1016 $(call Build
/Install
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/freetdm
install)
1019 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-perl-esl
),)
1020 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/esl DESTDIR
=$(PKG_INSTALL_DIR
) perlmod-install
)
1022 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-misc-python-esl
),)
1023 $(call Build
/Install
/Default
,-C
$(PKG_BUILD_DIR
)/libs
/esl pymod-install
)
1027 define Build
/InstallDev
1028 $(INSTALL_DIR
) $(1)$(FS_STABLE_INCLUDES_DIR
)
1029 $(INSTALL_DIR
) $(1)$(FS_STABLE_PKGCONFIG_DIR
)
1030 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)$(FS_STABLE_INCLUDES_DIR
)/*.h \
1031 $(1)$(FS_STABLE_INCLUDES_DIR
)
1033 $(PKG_INSTALL_DIR
)$(FS_STABLE_PKGCONFIG_DIR
)/$(PRG_NAME
).
pc \
1034 $(1)$(FS_STABLE_PKGCONFIG_DIR
)
1035 ifneq ($(CONFIG_PACKAGE_
$(LIBFTDM
)),)
1037 $(PKG_INSTALL_DIR
)$(FS_STABLE_PKGCONFIG_DIR
)/freetdm.
pc \
1038 $(1)$(FS_STABLE_PKGCONFIG_DIR
)
1039 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/include/*.h
$(1)/usr
/include
1043 $(eval
$(call BuildPackage
,$(LIBFTDM
)))
1044 $(eval
$(call BuildPackage
,$(PKG_NAME
)))
1045 $(eval
$(call BuildPackage
,$(PKG_NAME
)-misc-hotplug
))
1046 $(eval
$(call BuildPackage
,$(PKG_NAME
)-misc-perl-esl
))
1047 $(eval
$(call BuildPackage
,$(PKG_NAME
)-misc-python-esl
))
1048 $(eval
$(call BuildPackage
,$(PKG_NAME
)-misc-timezones
))
1050 ################################
1051 # FreeSWITCH example configs
1053 # 1 - Package subname
1054 ################################
1056 $(eval
$(call Package
/$(PKG_NAME
)/Example
,curl
))
1057 $(eval
$(call Package
/$(PKG_NAME
)/Example
,insideout
))
1058 $(eval
$(call Package
/$(PKG_NAME
)/Example
,minimal
))
1059 $(eval
$(call Package
/$(PKG_NAME
)/Example
,rayo
))
1060 $(eval
$(call Package
/$(PKG_NAME
)/Example
,sbc
))
1061 $(eval
$(call Package
/$(PKG_NAME
)/Example
,softphone
))
1062 $(eval
$(call Package
/$(PKG_NAME
)/Example
,testing
))
1063 $(eval
$(call Package
/$(PKG_NAME
)/Example
,vanilla
))
1065 ################################
1068 # 1 - Package subname
1070 # 3 - Module description
1071 # 4 - Module dependencies
1072 ################################
1074 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,analog
,Analog
,Offers generic FXO
/FXS support for any type of card supported by FreeTDM.
,))
1075 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,analog_em
,Analog EM
,Offers generic E
&M signaling for any type of card supported by FreeTDM.
,))
1076 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,libpri
,LibPRI
,Offers support for PRI lines using the open source libpri stack for any
\ntype of card supported by FreeTDM. Supports both PRI and BRI signalling.
,+libpri @
!aarch64
))
1077 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,pritap
,PRI tapping
,This module is used to tap PRI lines.
,+$(PKG_NAME
)-ftmod-libpri
))
1078 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,skel
,Skeleton
,ftmod_skel is an example module.
,))
1079 $(eval
$(call Package
/$(PKG_NAME
)/FTModule
,zt
,DAHDI I
/O
,This module supports the DAHDI interface. The DAHDI interface is used by
\nseveral hardware vendors.
,))
1081 ################################
1082 # FreeSWITCH language files
1086 ################################
1088 $(eval
$(call Package
/$(PKG_NAME
)/Language
,de
,German
))
1089 $(eval
$(call Package
/$(PKG_NAME
)/Language
,en
,English
))
1090 $(eval
$(call Package
/$(PKG_NAME
)/Language
,es
,Spanish
))
1091 $(eval
$(call Package
/$(PKG_NAME
)/Language
,fr
,French
))
1092 $(eval
$(call Package
/$(PKG_NAME
)/Language
,he
,Hebrew
))
1093 $(eval
$(call Package
/$(PKG_NAME
)/Language
,pt
,Portuguese
))
1094 $(eval
$(call Package
/$(PKG_NAME
)/Language
,ru
,Russian
))
1095 $(eval
$(call Package
/$(PKG_NAME
)/Language
,sv
,Swedish
))
1097 ################################
1098 # FreeSWITCH misc packages
1100 # 1 - Package subname
1102 # 3 - Package description
1103 # 4 - Source dir relative to
1105 # 5 - Dest dir relative to ipkg
1106 # 6 - Arch independent files
1107 ################################
1109 $(eval
$(call Package
/$(PKG_NAME
)/Misc
,misc-fonts
,Fonts
,This package includes the fonts bundled with FreeSWITCH.
,$(FS_STABLE_FONTS_DIR
),$(FS_STABLE_FONTS_DIR
),y
))
1110 $(eval
$(call Package
/$(PKG_NAME
)/Misc
,misc-grammar
,Grammar
,This package contains grammar files. mod_pocketsphinx would be a
\npotential user.
,$(FS_STABLE_GRAMMAR_DIR
),$(FS_STABLE_GRAMMAR_DIR
),y
))
1111 $(eval
$(call Package
/$(PKG_NAME
)/Misc
,misc-images
,Images
,This package includes the images bundled with FreeSWITCH.
,$(FS_STABLE_IMAGES_DIR
),$(FS_STABLE_IMAGES_DIR
),y
))
1113 ################################
1114 # FreeSWITCH modules
1116 # 1 - Package subname
1118 # 3 - Module description
1119 # 4 - Module dependencies
1120 ################################
1122 $(eval
$(call Package
/$(PKG_NAME
)/Module
,abstraction
,API abstraction
,This module provides a way to create new API functions via regex
\nrewriting.
,))
1123 $(eval
$(call Package
/$(PKG_NAME
)/Module
,alsa
,ALSA endpoint
,ALSA endpoint module.
,+alsa-lib
))
1124 $(eval
$(call Package
/$(PKG_NAME
)/Module
,amr
,AMR passthrough
,Passthrough AMR codec support.
,))
1125 $(eval
$(call Package
/$(PKG_NAME
)/Module
,amrwb
,AMR wideband passthrough
,Passthrough AMR wideband codec support.
,))
1126 $(eval
$(call Package
/$(PKG_NAME
)/Module
,av
,AV
,Video codec and format support via FFmpeg.
,+libffmpeg-full @i386||x86_64
))
1127 $(eval
$(call Package
/$(PKG_NAME
)/Module
,avmd
,Voicemail detection
,This module attempts to determine when a voicemail system has answered
\nthe call.
,))
1128 $(eval
$(call Package
/$(PKG_NAME
)/Module
,b64
,Base64
,Transfers data Base64 encoded.
,))
1129 $(eval
$(call Package
/$(PKG_NAME
)/Module
,basic
,BASIC
,BASIC module for FreeSWITCH.
,))
1130 $(eval
$(call Package
/$(PKG_NAME
)/Module
,bert
,BERT
,Line testing tool.
,))
1131 $(eval
$(call Package
/$(PKG_NAME
)/Module
,blacklist
,Blacklist helper
,This module provides tools to blacklist callers.
,))
1132 $(eval
$(call Package
/$(PKG_NAME
)/Module
,callcenter
,Call center
,This module implements Automated Call Distribution queues.
,))
1133 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cdr_csv
,CSV CDR
,CSV Call Detail Record handler.
,))
1134 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cdr_mongodb
,MongoDB CDR
,MongoDB Call Detail Record handler.
,))
1135 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cdr_pg_csv
,PostgreSQL CDR
,PostgreSQL Call Detail Record handler.
,@FS_STABLE_WITH_PGSQL
))
1136 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cdr_sqlite
,SQLite CDR
,SQLite Call Detail Record handler.
,))
1137 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cidlookup
,Caller ID lookup
,This module provides an API for querying caller ID name and location
\ndata.
,))
1138 $(eval
$(call Package
/$(PKG_NAME
)/Module
,clearmode
,Clearmode
,Clearmode codec passthrough support.
,))
1139 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cluechoo
,Clue Choo
,This demo module renders a Clue Choo train on the FreeSWITCH console.
,+libncurses
))
1140 $(eval
$(call Package
/$(PKG_NAME
)/Module
,commands
,Commands
,This module provides miscellaneous API commands.
,))
1141 $(eval
$(call Package
/$(PKG_NAME
)/Module
,conference
,Conference
,This module provides multi-party conferencing.
,))
1142 $(eval
$(call Package
/$(PKG_NAME
)/Module
,console
,Console logger
,Allows control over what messages
get logged to the console.
,))
1143 $(eval
$(call Package
/$(PKG_NAME
)/Module
,curl
,cURL
,This module provides an API for making HTTP requests with cURL.
,))
1144 $(eval
$(call Package
/$(PKG_NAME
)/Module
,cv
,OpenCV
,This module exposes opencv actions to enable computer vision actions.
,+opencv @BROKEN
)) # opencv package too stripped-down
1145 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dahdi_codec
,DAHDI codec
,DAHDI codec module.
,))
1146 $(eval
$(call Package
/$(PKG_NAME
)/Module
,db
,DB
,This module implements a simple db API with group support. Also can be
\nused
as a limit db backend.
,))
1147 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dialplan_asterisk
,Asterisk dialplan
,Asterisk extensions.conf style dialplan parser.
,))
1148 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dialplan_directory
,Directory dialplan
,Directory dialplan support.
,))
1149 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dialplan_xml
,XML dialplan
,Standard FreeSWITCH XML dialplan support.
,))
1150 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dingaling
,Generic XMPP
,Allows FreeSWITCH to be used
as a client for XMPP Servers.
,))
1151 $(eval
$(call Package
/$(PKG_NAME
)/Module
,directory
,Dial-by-name directory
,This module implements a dial-by-name directory IVR.
,))
1152 $(eval
$(call Package
/$(PKG_NAME
)/Module
,distributor
,Load distributor
,This module implements a mechanism for performing load balancing.
,))
1153 $(eval
$(call Package
/$(PKG_NAME
)/Module
,dptools
,Dialplan tools
,This module implements basic dialplan tools.
,))
1154 $(eval
$(call Package
/$(PKG_NAME
)/Module
,easyroute
,DID routing
,This module does destination lookup based on DID.
,))
1155 $(eval
$(call Package
/$(PKG_NAME
)/Module
,enum
,ENUM routing
,This module implements ENUM support.
,+libldns
))
1156 $(eval
$(call Package
/$(PKG_NAME
)/Module
,erlang_event
,Erlang event
,Erlang event module.
,+erlang
))
1157 $(eval
$(call Package
/$(PKG_NAME
)/Module
,esf
,Multicast
,This module adds multi-cast support.
,))
1158 $(eval
$(call Package
/$(PKG_NAME
)/Module
,esl
,Single ESL
,This module adds an API for generating one-off ESL requests.
,))
1159 $(eval
$(call Package
/$(PKG_NAME
)/Module
,event_multicast
,Multicast Event
,Multicast Event System for FreeSWITCH.
,))
1160 $(eval
$(call Package
/$(PKG_NAME
)/Module
,event_socket
,Event socket
,Sends events via a single socket. Needed for fs_cli.
,))
1161 $(eval
$(call Package
/$(PKG_NAME
)/Module
,event_test
,Event
test,Event demo module.
,))
1162 $(eval
$(call Package
/$(PKG_NAME
)/Module
,event_zmq
,ZMQ event
,ZMQ event module.
,))
1163 $(eval
$(call Package
/$(PKG_NAME
)/Module
,expr
,Expr
,This module adds expr support for expression evaluation.
,))
1164 $(eval
$(call Package
/$(PKG_NAME
)/Module
,fifo
,FIFO
,This module adds a first-in first-out queue system.
,))
1165 $(eval
$(call Package
/$(PKG_NAME
)/Module
,format_cdr
,Multiformat CDR
,A superset of mod_json_cdr and mod_xml_cdr.
,))
1166 $(eval
$(call Package
/$(PKG_NAME
)/Module
,freetdm
,FreeTDM endpoint
,This module is the glue between FreeSWITCH and FreeTDM.
,+$(LIBFTDM
)))
1167 $(eval
$(call Package
/$(PKG_NAME
)/Module
,fsk
,FSK
,This module adds frequency-shift keying support which can be used to
\nsend and receive caller ID.
,))
1168 $(eval
$(call Package
/$(PKG_NAME
)/Module
,fsv
,FSV
,This module provides dialplan applications for recording and playing
\nvideos.
,))
1169 $(eval
$(call Package
/$(PKG_NAME
)/Module
,g723_1
,G
.723.1 passthrough
,G
.723.1 codec passthrough.
,))
1170 $(eval
$(call Package
/$(PKG_NAME
)/Module
,g729
,G
.729 passthrough
,G
.729 codec passthrough.
,))
1171 $(eval
$(call Package
/$(PKG_NAME
)/Module
,graylog2
,Graylog2 logger
,GELF logger for Graylog2 and Logstash.
,))
1172 $(eval
$(call Package
/$(PKG_NAME
)/Module
,gsmopen
,GSM endpoint
,GSMopen is a channel driver that allows an SMS to be sent to and from
\nFreeSWITCH
as well
as incoming and outgoing GSM voice calls.
,+gsmlib
+libctb
+libjpeg
+liblzma
+libtiff
))
1173 $(eval
$(call Package
/$(PKG_NAME
)/Module
,h26x
,H
.26x passthrough
,H
.26x video codec passthrough.
,))
1174 $(eval
$(call Package
/$(PKG_NAME
)/Module
,hash
,Hash
,This module provides a key-value in-memory datastore. Usable
as a
\nlimit backend.
,))
1175 $(eval
$(call Package
/$(PKG_NAME
)/Module
,hiredis
,Redis client
,This module provides a mechanism to use Redis
as a datastore.
,+libhiredis
))
1176 $(eval
$(call Package
/$(PKG_NAME
)/Module
,httapi
,HT-TAPI
,This module provides an API for controlling the switch by responding
\nto HTTP requests.
,))
1177 $(eval
$(call Package
/$(PKG_NAME
)/Module
,http_cache
,HTTP GET with caching
,This module provides an API for making HTTP GET requests where the
\nresult is cached.
,))
1178 $(eval
$(call Package
/$(PKG_NAME
)/Module
,isac
,iSAC
,iSAC codec support.
,@arm||i386||mips||mips64||mips64el||mipsel||x86_64
))
1179 $(eval
$(call Package
/$(PKG_NAME
)/Module
,json_cdr
,JSON CDR
,JSON-based Call Detail Record handler.
,))
1180 $(eval
$(call Package
/$(PKG_NAME
)/Module
,kazoo
,Kazoo
,Kazoo module for FreeSWITCH.
,+erlang
))
1181 $(eval
$(call Package
/$(PKG_NAME
)/Module
,lcr
,LCR
,This module adds a facility for least-cost routing.
,))
1182 $(eval
$(call Package
/$(PKG_NAME
)/Module
,ldap
,LDAP
,LDAP module for FreeSWITCH.
,+libopenldap
))
1183 $(eval
$(call Package
/$(PKG_NAME
)/Module
,local_stream
,Local stream
,Connects multiple channels to a looped stream.
,))
1184 $(eval
$(call Package
/$(PKG_NAME
)/Module
,logfile
,File logger
,Logs FreeSWITCH output to a file.
,))
1185 $(eval
$(call Package
/$(PKG_NAME
)/Module
,loopback
,Loopback
,A loopback channel driver.
,))
1186 $(eval
$(call Package
/$(PKG_NAME
)/Module
,lua
,Lua
,Lua language interface for FreeSWITCH.
,+liblua
))
1187 $(eval
$(call Package
/$(PKG_NAME
)/Module
,mp4v
,MP4 video passthrough
,MP4 video passthrough..
,))
1188 $(eval
$(call Package
/$(PKG_NAME
)/Module
,native_file
,Native file
,Plays files that are already encoded in the right format.
,))
1189 $(eval
$(call Package
/$(PKG_NAME
)/Module
,nibblebill
,Nibblebill
,This module allows for real-time accounting of a cash balance and
\nusing that information for call routing.
,))
1190 $(eval
$(call Package
/$(PKG_NAME
)/Module
,odbc_cdr
,ODBC CDR
,ODBC Call Detail Record handler.
,))
1191 $(eval
$(call Package
/$(PKG_NAME
)/Module
,opus
,Opus
,Opus codec support.
,+libopus
))
1192 $(eval
$(call Package
/$(PKG_NAME
)/Module
,oreka
,Oreka
,This module provides media recording with the Oreka cross-platform
\naudio stream recording and retrieval system.
,))
1193 $(eval
$(call Package
/$(PKG_NAME
)/Module
,perl
,Perl
,This package contains mod_perl for FreeSWITCH.
,+libdb47
+libgdbm
+perlbase-essential @PERL_THREADS
))
1194 $(eval
$(call Package
/$(PKG_NAME
)/Module
,png
,PNG
,Allows playback of video using PNG files.
,@FS_STABLE_WITH_PNG
))
1195 $(eval
$(call Package
/$(PKG_NAME
)/Module
,pocketsphinx
,Pocketsphinx
,This module allows speech recognition. You might want to
install\n$(PKG_NAME
)-misc-grammar
as well.
,+libsamplerate
)) # When libsamplerate is found it'll be linked against, there is no switch to turn it off
1196 $(eval
$(call Package
/$(PKG_NAME
)/Module
,portaudio
,Portaudio
,Voice through a local soundcard.
,+portaudio
))
1197 $(eval
$(call Package
/$(PKG_NAME
)/Module
,portaudio_stream
,Portaudio streaming
,Stream from an external audio source for Music on Hold.
,+portaudio
))
1198 $(eval
$(call Package
/$(PKG_NAME
)/Module
,posix_timer
,POSIX timer
,Add POSIX timer support.
,))
1199 $(eval
$(call Package
/$(PKG_NAME
)/Module
,prefix,Prefix match
,This module provides a data store with fast lookups by the longest
\nprefix match rule.
,))
1200 $(eval
$(call Package
/$(PKG_NAME
)/Module
,python
,Python
,Python support module.
,+python-light
))
1201 $(eval
$(call Package
/$(PKG_NAME
)/Module
,radius_cdr
,Radius CDR
,Radius Call Detail Record handler.
,))
1202 $(eval
$(call Package
/$(PKG_NAME
)/Module
,random
,Entropy
,This module extracts entropy from FreeSWITCH and feeds it into
\n/dev
/random.
,))
1203 $(eval
$(call Package
/$(PKG_NAME
)/Module
,rayo
,Rayo
,Rayo
/XMPP
3PCC server for FreeSWITCH.
,+$(PKG_NAME
)-mod-ssml
))
1204 $(eval
$(call Package
/$(PKG_NAME
)/Module
,redis
,Redis limit backend
,This module provides a mechanism to use Redis
as a limit backend data
\nstore.
,))
1205 $(eval
$(call Package
/$(PKG_NAME
)/Module
,rss
,RSS
,Parses and reads XML based RSS feeds and reads the entries aloud via a TTS engine.
,))
1206 $(eval
$(call Package
/$(PKG_NAME
)/Module
,rtc
,Media streaming
,Media streaming
as used by WebRTC and mod_verto.
,))
1207 $(eval
$(call Package
/$(PKG_NAME
)/Module
,rtmp
,RTMP endpoint
,RTMP endpoint support. Allows FreeSWITCH to be used from RTMP clients.
,))
1208 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_de
,German Say
,Uses prerecorded sounds to read or say various things.
,))
1209 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_en
,English Say
,Uses prerecorded sounds to read or say various things.
,))
1210 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_es
,Spanish Say
,Uses prerecorded sounds to read or say various things.
,))
1211 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_es_ar
,Argentinian Spanish Say
,Uses prerecorded sounds to read or say various things.
,))
1212 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_fa
,Persian Say
,Uses prerecorded sounds to read or say various things.
,))
1213 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_fr
,French Say
,Uses prerecorded sounds to read or say various things.
,))
1214 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_he
,Hebrew Say
,Uses prerecorded sounds to read or say various things.
,))
1215 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_hr
,Croatian Say
,Uses prerecorded sounds to read or say various things.
,))
1216 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_hu
,Hungarian Say
,Uses prerecorded sounds to read or say various things.
,))
1217 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_it
,Italian Say
,Uses prerecorded sounds to read or say various things.
,))
1218 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_ja
,Japanese Say
,Uses prerecorded sounds to read or say various things.
,))
1219 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_nl
,Dutch Say
,Uses prerecorded sounds to read or say various things.
,))
1220 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_pl
,Polish Say
,Uses prerecorded sounds to read or say various things.
,))
1221 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_pt
,Portuguese Say
,Uses prerecorded sounds to read or say various things.
,))
1222 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_ru
,Russian Say
,Uses prerecorded sounds to read or say various things.
,))
1223 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_sv
,Swedish Say
,Uses prerecorded sounds to read or say various things.
,))
1224 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_th
,Thai Say
,Uses prerecorded sounds to read or say various things.
,))
1225 $(eval
$(call Package
/$(PKG_NAME
)/Module
,say_zh
,Chinese Say
,Uses prerecorded sounds to read or say various things.
,))
1226 $(eval
$(call Package
/$(PKG_NAME
)/Module
,shell_stream
,Shell stream
,Allows to stream audio from an arbitrary
shell command.
,))
1227 $(eval
$(call Package
/$(PKG_NAME
)/Module
,shout
,Shout
,Allows to stream audio from MP3s or Shoutcast streams.
,+lame-lib
+libmpg123
+libshout
))
1228 $(eval
$(call Package
/$(PKG_NAME
)/Module
,skinny
,Skinny
,Skinny Call Control Protocol endpoint support.
,))
1229 $(eval
$(call Package
/$(PKG_NAME
)/Module
,sms
,SMS
,This module provides an abstract facility for interfacing with SMS
\nsystems.
,))
1230 $(eval
$(call Package
/$(PKG_NAME
)/Module
,snapshot
,Snapshot
,This module can record a sliding window of audio and take snapshots
\nto disk.
,))
1231 $(eval
$(call Package
/$(PKG_NAME
)/Module
,sndfile
,Soundfile
,Adds sound format support via libsndfile.
,+libsndfile
))
1232 $(eval
$(call Package
/$(PKG_NAME
)/Module
,snmp
,SNMP
,An SNMP stats reporter.
,+libnetsnmp
))
1233 $(eval
$(call Package
/$(PKG_NAME
)/Module
,snom
,SNOM
,This module implements features specific to SNOM phones.
,))
1234 $(eval
$(call Package
/$(PKG_NAME
)/Module
,sofia
,Sofia SIP
,SIP module.
,))
1235 $(eval
$(call Package
/$(PKG_NAME
)/Module
,sonar
,Sonar
,This module measures the latency on an audio link by sending audible
\naudio sonar pings.
,))
1236 $(eval
$(call Package
/$(PKG_NAME
)/Module
,spandsp
,SpanDSP
,This module implements SpanDSP fax. It includes DSP and codec
\nfunctionality.
,+libjpeg
+liblzma
+libtiff
))
1237 $(eval
$(call Package
/$(PKG_NAME
)/Module
,spy
,User Spy
,This module adds the ability to monitor the audio of a channel.
,))
1238 $(eval
$(call Package
/$(PKG_NAME
)/Module
,ssml
,SSML
,mod_ssml is a FreeSWITCH module that renders SSML into audio. This
\nmodule requires a text-to-speech module for speech synthesis.
,))
1239 $(eval
$(call Package
/$(PKG_NAME
)/Module
,stress
,Stress
,This module attempts to detect voice stress on an audio channel.
,))
1240 $(eval
$(call Package
/$(PKG_NAME
)/Module
,syslog
,Syslog logger
,Logs FreeSWITCH output to the syslog.
,))
1241 $(eval
$(call Package
/$(PKG_NAME
)/Module
,theora
,Theora passthrough
,Theora video codec passthrough.
,))
1242 $(eval
$(call Package
/$(PKG_NAME
)/Module
,tone_stream
,Tone stream
,Tone generation stream.
,))
1243 $(eval
$(call Package
/$(PKG_NAME
)/Module
,translate
,Number translation
,This module implements number translation.
,))
1244 $(eval
$(call Package
/$(PKG_NAME
)/Module
,tts_commandline
,TTS command-line
,Run a command-line and play the output file.
,))
1245 $(eval
$(call Package
/$(PKG_NAME
)/Module
,unimrcp
,UniMRCP
,Allows communication with Media Resource Control Protocol servers.
,))
1246 $(eval
$(call Package
/$(PKG_NAME
)/Module
,v8
,V8
,This package contains mod_v8 for FreeSWITCH.
,@FS_STABLE_WITH_V8 @arm||i386||mipsel||x86_64
))
1247 $(eval
$(call Package
/$(PKG_NAME
)/Module
,valet_parking
,Valet parking
,This module implements the valet call parking strategy.
,))
1248 $(eval
$(call Package
/$(PKG_NAME
)/Module
,verto
,Verto
,Verto signaling protocol.
,))
1249 $(eval
$(call Package
/$(PKG_NAME
)/Module
,vmd
,Voicemail detection
,This module detects voicemail beeps.
,))
1250 $(eval
$(call Package
/$(PKG_NAME
)/Module
,voicemail
,Voicemail
,This module provides a voicemail system.
,))
1251 $(eval
$(call Package
/$(PKG_NAME
)/Module
,voicemail_ivr
,Voicemail IVR
,This module provides an extensible voicemail IVR system.
,))
1252 $(eval
$(call Package
/$(PKG_NAME
)/Module
,xml_cdr
,XML CDR
,XML Call Detail Record handler.
,))
1253 $(eval
$(call Package
/$(PKG_NAME
)/Module
,xml_curl
,XML cURL
,Provides an XML cURL interfaces to pull dynamic XML configuration for
\nFreeSWITCH over HTTP.
,))
1254 $(eval
$(call Package
/$(PKG_NAME
)/Module
,xml_ldap
,XML LDAP
,LDAP XML gateway.
,+libopenldap
))
1255 $(eval
$(call Package
/$(PKG_NAME
)/Module
,xml_rpc
,XML RPC
,Allows using the webapi to control FreeSWITCH.
,))
1256 $(eval
$(call Package
/$(PKG_NAME
)/Module
,xml_scgi
,XML SCGI
,SCGI XML Gateway.
,))
1257 $(eval
$(call Package
/$(PKG_NAME
)/Module
,yaml
,YAML
,YAML language module.
,+libyaml
))
1258 $(eval
$(call Package
/$(PKG_NAME
)/Module
,yuv
,Raw YUV
,Raw YUV I420 video codec support.
,@FS_STABLE_WITH_LIBYUV
))
1260 ################################
1261 # FreeSWITCH utilities
1263 # 1 - Package subname
1265 # 3 - Utility description
1266 # 4 - Utility dependencies
1267 # 5 - Utility is a script (y/n)
1268 ################################
1270 $(eval
$(call Package
/$(PKG_NAME
)/Util
,fs_cli
,CLI
,The fs_cli program is a Command-Line Interface that allows a user to
\nconnect to a FreeSWITCH instance running on the local or a remote
\nsystem.
,,n
))
1271 $(eval
$(call Package
/$(PKG_NAME
)/Util
,fs_encode
,Sound file conversion
,Format conversion of sound files so the result can be used by
\nmod_native_file.
,+$(PKG_NAME
)-mod-native_file
+$(PKG_NAME
)-mod-sndfile
+$(PKG_NAME
)-mod-spandsp
,n
))
1272 $(eval
$(call Package
/$(PKG_NAME
)/Util
,fs_ivrd
,IVR daemon
,The FreeSWITCH IVR daemon is an abstraction layer that sits on top of
\nthe ESL. The basic idea is that the ivrd will allow the user to have
\na STDIN
/STDOUT interface for simple call control.
,,n
))
1273 $(eval
$(call Package
/$(PKG_NAME
)/Util
,gentls_cert
,TLS certificate
,Can be used to create TLS certificates and setup CAs.
,+openssl-util
,y
))
1274 $(eval
$(call Package
/$(PKG_NAME
)/Util
,tone2wav
,Sound file generation
,Generates a sound file from a teletone script. The output can be in
\nany format that is supported by libsndfile.
,+$(PKG_NAME
)-mod-sndfile
,n
))