76e660c1e272cb51d4fc5ffff6c7b8051bbc27c6
[packages.git] / net / freeswitch / Makefile
1 #
2 # Copyright (C) 2009-2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 #
8 include $(TOPDIR)/rules.mk
9
10
11 PKG_NAME:=freeswitch
12 PKG_DISTNAME:=$(PKG_NAME)_git
13 PKG_VERSION:=1.3.13b
14
15
16 #
17 # The latest FS git hash in PKG_SOURCE_VERSION can be obtained from http://fisheye.freeswitch.org
18 #
19 PKG_SOURCE_PROTO:=git
20 PKG_SOURCE_URL:=git://git.$(PKG_NAME).org/$(PKG_NAME).git
21 FS_DEFAULT_HEAD:=f5f8e90f0117287fdc1ad39482115ca0d8db3c46
22 FS_LATEST_HEAD:=$(shell git ls-remote $(PKG_SOURCE_URL) HEAD | cut -f1)
23 PKG_SOURCE_VERSION:=$(if $(CONFIG_FS_SOFIA_WITH_PULL_CURRENT),$(FS_LATEST_HEAD),$(FS_DEFAULT_HEAD))
24 PKG_SOURCE_VERSION_SHORT:=$(shell echo $(PKG_SOURCE_VERSION)|cut -b -7)
25 PKG_RELEASE:=$(PKG_SOURCE_VERSION_SHORT)
26 PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)
27 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_SOURCE_VERSION_SHORT).tar.bz2
28 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
29
30
31 PKG_FIXUP:=autoreconf
32 PKG_BUILD_PARALLEL:=1
33
34
35 FS_MOD_AVAILABLE:= \
36         abstraction \
37         alsa \
38         amr \
39         amrwb \
40         avmd \
41         blacklist \
42         bv \
43         callcenter \
44         cdr-csv \
45         cdr-pg-csv \
46         cdr-sqlite \
47         celt \
48         cepstral \
49         cidlookup \
50         cluechoo \
51         codec2 \
52         commands \
53         conference \
54         console \
55         curl \
56         dahdi-codec \
57         db \
58         dialplan-asterisk \
59         dialplan-directory \
60         dialplan-xml \
61         dingaling \
62         directory \
63         distributor \
64         dptools \
65         easyroute \
66         enum \
67         erlang-event \
68         esf \
69         event-multicast \
70         event-socket \
71         event-zmq \
72         expr \
73         fifo \
74         file-string \
75         flite \
76         fsk \
77         fsv \
78         g723-1 \
79         g729 \
80         gsmopen \
81         h26x \
82         h323 \
83         hash \
84         html5 \
85         httapi \
86         http-cache \
87         ilbc \
88         isac \
89         java \
90         json-cdr \
91         lcr \
92         local-stream \
93         logfile \
94         loopback \
95         lua \
96         managed \
97         mp4 \
98         mp4v \
99         native-file \
100         nibblebill \
101         openzap \
102         opus \
103         oreka \
104         portaudio \
105         portaudio-stream \
106         posix-timer \
107         radius-cdr \
108         redis \
109         rss \
110         rtmp \
111         sangoma-codec \
112         say-de \
113         say-en \
114         say-es \
115         say-fa \
116         say-fr \
117         say-hu \
118         say-it \
119         say-nl \
120         say-pt \
121         say-ru \
122         say-th \
123         say-zh \
124         shell-stream \
125         silk \
126         siren \
127         skel \
128         skinny \
129         skypopen \
130         sms \
131         snapshot \
132         snipe-hunt \
133         sndfile \
134         snmp \
135         snom \
136         sofia \
137         sonar \
138         spandsp \
139         speex \
140         spidermonkey \
141         spidermonkey-core-db \
142         spidermonkey-curl \
143         spidermonkey-odbc \
144         spidermonkey-socket \
145         spidermonkey-teletone \
146         spy \
147         stress \
148         syslog \
149         timerfd \
150         tone-stream \
151         tts-commandline \
152         unimrcp \
153         valet-parking \
154         vmd \
155         voicemail \
156         voicemail-ivr \
157         xml-cdr \
158         xml-curl \
159         xml-rpc \
160         xml-scgi \
161         yaml \
162
163
164 PKG_CONFIG_DEPENDS:= \
165         CONFIG_FS_SOFIA_WITH_BUILTIN_ZRTP \
166         CONFIG_FS_SOFIA_WITH_IPV6 \
167         CONFIG_FS_SOFIA_WITH_MYSQL \
168         CONFIG_FS_SOFIA_WITH_ODBC \
169         CONFIG_FS_SOFIA_WITH_OPT \
170         CONFIG_FS_SOFIA_WITH_PULL_CURRENT \
171         CONFIG_FS_SOFIA_WITH_SCTP \
172         $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-mod-%,$(FS_MOD_AVAILABLE)) \
173
174
175 include $(INCLUDE_DIR)/package.mk
176 include $(INCLUDE_DIR)/nls.mk
177
178
179 TAR_OPTIONS+= --strip-components=1 -C $(PKG_BUILD_DIR)
180
181
182 define Package/$(PKG_NAME)/Default
183   SECTION:=net
184   CATEGORY:=Network
185   SUBMENU:=Telephony
186   URL:=http://www.$(PKG_NAME).org/
187   MAINTAINER:=Mazilo <OpenWRT@slickdeals.endjunk.com>
188 endef
189
190
191 define Package/$(PKG_NAME)
192 $(call Package/$(PKG_NAME)/Default)
193   TITLE:=FreeSWITCH open source telephony platform ($(PKG_SOURCE_VERSION_SHORT))
194   DEPENDS:=+libcurl +libjpeg +libncurses +libpq +libpthread +librt +libstdcpp
195   MENU:=1
196 endef
197
198
199 define Package/$(PKG_NAME)/description
200   FreeSWITCH is an open source telephony platform designed to
201   facilitate the creation of voice and chat driven products scaling
202   from a soft-phone up to a soft-switch.  See http://wiki.$(PKG_NAME).org
203 endef
204
205
206 define Package/$(PKG_NAME)/config
207     config FS_SOFIA_WITH_PULL_CURRENT
208     depends on DEVEL
209     depends on PACKAGE_$(PKG_NAME)
210     bool "Pull the latest git HEAD - $(PKG_SOURCE_VERSION_SHORT) (Press < Help > for more information)"
211     default n
212     help
213         This existing git HEAD ($(FS_DEFAULT_HEAD)) is probably outdated. 
214         Enable this option for the latest git HEAD ($(FS_LATEST_HEAD)). 
215         Enable this option ONLY if you know what you are doing. It may and/or may not be cleanly 
216         compiled and may require some intervension to create new patches. If you take this route
217         and come up with some patches, please contemplate to contribute or send in your patches.
218
219     config FS_SOFIA_WITH_IPV6
220     depends on PACKAGE_$(PKG_NAME)
221     bool "Compile with IPV6 support"
222     default y
223     help
224         Compile $(PKG_NAME) with IPV6 Support.
225
226     config FS_SOFIA_WITH_OPT
227     depends on PACKAGE_$(PKG_NAME)
228     bool "Compile with optimization"
229     default y
230     help
231         Compile $(PKG_NAME) with optimization enabled.
232
233     config FS_SOFIA_WITH_BUILTIN_ZRTP
234     depends on PACKAGE_$(PKG_NAME)
235     bool "Compile with built-in ZRTP support"
236     default y
237     help
238         Compile $(PKG_NAME)-mod-sofia with ZRTP Support.
239 endef
240
241
242 define Package/$(PKG_NAME)-mod-sofia/config
243     config FS_SOFIA_WITH_MYSQL
244     depends on PACKAGE_$(PKG_NAME)-mod-sofia
245     bool "Compile with MySQL"
246     default n
247     select PACKAGE_libmysqlclient
248     help
249         Compile $(PKG_NAME) with MySQL.
250
251     config FS_SOFIA_WITH_ODBC
252     depends on PACKAGE_$(PKG_NAME)-mod-sofia
253     depends on PACKAGE_sqliteodbc
254     depends on PACKAGE_unixodbc_svn
255     bool "Compile with ODBC support (Requires unixodbc_svn NOT YET AVAILABLE)"
256     default n
257     help
258         Compile $(PKG_NAME)-mod-sofia with ODBC Support. Since both sqliteodbc and unixodbc_svn packages are not yet available on OpenWRT, $(PKG_NAME)-mod-sofia CAN NOT be compiled with ODBC support.
259
260     config FS_SOFIA_WITH_SCTP
261     depends on PACKAGE_$(PKG_NAME)-mod-sofia
262     depends on PACKAGE_sctp
263     bool "Compile with SCTP (Stream Control Transfer Protocol) support"
264     default y
265     help
266         Compile $(PKG_NAME)-mod-sofia with SCTP support.
267 endef
268
269
270 define Package/$(PKG_NAME)-example-config
271 $(call Package/$(PKG_NAME)/Default)
272   TITLE:=FreeSWITCH example config (commented)
273   DEPENDS:= $(PKG_NAME)
274 endef
275
276
277 define Package/$(PKG_NAME)-example-config/description
278   The default configuration included with FreeSWITCH. It is not intended to be
279   a final product, and is thus moved to /usr/share/$(PKG_NAME)/examples/conf to
280   be an example of how FreeSWITCH can be configured.
281 endef
282
283
284 define Package/$(PKG_NAME)-config-upstream-defaults
285 $(call Package/$(PKG_NAME)/Default)
286   TITLE:=FreeSWITCH upstream config
287   DEPENDS:= $(PKG_NAME)
288 endef
289
290
291 define Package/$(PKG_NAME)-config-upstream-defaults/description
292   The default configuration included with FreeSWITCH. It is not intended to be
293   a final product, and but is included for those who don't want to use the
294   OpenWRT configuration and/or want to try things as prepared by upstream.
295 endef
296
297
298 define Package/$(PKG_NAME)-config-minimal
299 $(call Package/$(PKG_NAME)/Default)
300   TITLE:=FreeSWITCH minimal config
301   DEPENDS:= $(PKG_NAME)
302 endef
303
304
305 define Package/$(PKG_NAME)-config-minimal/description
306   A minimal configuration of FreeSWITCH for OpenWRT devices.  Is what the UCI
307   configuration began with.
308 endef
309
310
311 define Package/$(PKG_NAME)-collection-upstream-defaults
312 $(call Package/$(PKG_NAME)/Default)
313   TITLE:=FS upstream def sample conf
314   DEPENDS:= $(PKG_NAME) \
315                 +$(PKG_NAME)-config-upstream-defaults \
316                 +$(PKG_NAME)-mod-callcenter \
317                 +$(PKG_NAME)-mod-codec2 \
318                 +$(PKG_NAME)-mod-commands \
319                 +$(PKG_NAME)-mod-conference \
320                 +$(PKG_NAME)-mod-curl \
321                 +$(PKG_NAME)-mod-dialplan-xml \
322                 +$(PKG_NAME)-mod-dingaling \
323                 +$(PKG_NAME)-mod-dptools \
324                 +$(PKG_NAME)-mod-event-socket \
325                 +$(PKG_NAME)-mod-g723-1 \
326                 +$(PKG_NAME)-mod-g729 \
327                 +$(PKG_NAME)-mod-hash \
328                 +$(PKG_NAME)-mod-http-cache \
329                 +$(PKG_NAME)-mod-ilbc \
330                 +$(PKG_NAME)-mod-local-stream \
331                 +$(PKG_NAME)-mod-lua \
332                 +$(PKG_NAME)-mod-native-file \
333                 +$(PKG_NAME)-mod-sndfile \
334                 +$(PKG_NAME)-mod-sofia \
335                 +$(PKG_NAME)-mod-spandsp \
336                 +$(PKG_NAME)-mod-speex \
337                 +$(PKG_NAME)-mod-syslog \
338                 +$(PKG_NAME)-mod-tone-stream \
339                 +$(PKG_NAME)-mod-xml-curl \
340                 +$(PKG_NAME)-mod-xml-rpc \
341                 +$(PKG_NAME)-tools
342 endef
343
344
345 define Package/$(PKG_NAME)-collection-minimal
346 $(call Package/$(PKG_NAME)/Default)
347   TITLE:=FreeSWITCH minimal package collection
348   DEFAULT:=y
349   DEPENDS:= $(PKG_NAME) \
350                 +$(PKG_NAME)-config-minimal \
351                 +$(PKG_NAME)-mod-codec2 \
352                 +$(PKG_NAME)-mod-commands \
353                 +$(PKG_NAME)-mod-dialplan-xml \
354                 +$(PKG_NAME)-mod-dptools \
355                 +$(PKG_NAME)-mod-event-socket \
356                 +$(PKG_NAME)-mod-hash \
357                 +$(PKG_NAME)-mod-local-stream \
358                 +$(PKG_NAME)-mod-sndfile \
359                 +$(PKG_NAME)-mod-sofia \
360                 +$(PKG_NAME)-mod-syslog \
361                 +$(PKG_NAME)-mod-tone-stream \
362                 +$(PKG_NAME)-tools
363 endef
364
365
366 define Package/$(PKG_NAME)-sounds-en
367 $(call Package/$(PKG_NAME)/Default)
368   TITLE:=FreeSWITCH english sounds
369   DEPENDS:= $(PKG_NAME)
370 endef
371
372
373 define Package/$(PKG_NAME)-sounds-moh
374 $(call Package/$(PKG_NAME)/Default)
375   TITLE:=FreeSWITCH music-on-hold sounds
376   DEPENDS:= $(PKG_NAME)
377 endef
378
379
380 define Package/$(PKG_NAME)-tools
381 $(call Package/$(PKG_NAME)/Default)
382   TITLE:=FreeSWITCH control tools
383   DEPENDS:= $(PKG_NAME)
384 endef
385
386
387 define Download/files
388  define Download/$(1)
389   FILE:=$(2)
390   URL:=$(if $(4),$(4),http://files.$(PKG_NAME).org)/$(5)
391   MD5SUM:=$(3)
392  endef
393  define Prepare/$(1)
394   $(LN) $(DL_DIR)/$(2) $(PKG_BUILD_DIR)/$(6)
395  endef
396  $$(eval $$(call Download,$(1)))
397 endef
398
399
400 MAKE_INSTALL_TARGETS:=install
401
402
403 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),)
404  $(eval $(call Download/files,celt,celt-0.10.0.tar.gz,a656f6176e9be84027c0e51ceedd710f,,downloads/libs/,libs/))
405 endif
406
407
408 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-curl),)
409  $(eval $(call Download/files,json-cdr,json-c-0.9.tar.gz,4653b3b9c568bb9c782178abfaac128d,,downloads/libs/,libs/))
410 endif
411
412
413 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-event-zmq),)
414  $(eval $(call Download/files,event-zmq,zeromq-2.1.9.tar.gz,94c5e0262a79c5f82bc0b178c1f8a33d,http://download.zeromq.org http://download.zeromq.org/historic,,libs/))
415 endif
416
417
418 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-flite),)
419  $(eval $(call Download/files,flite,flite-1.5.4-current.tar.bz2,f3a2d88b1059f6f4ff3c20a8169bc0f4,,downloads/libs/,libs/))
420 endif
421
422
423 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-mod-opus),)
424  $(eval $(call Download/files,opus,opus-1.0.2.tar.gz,c503ad05a59ddb44deab96204401be03,,downloads/libs/,libs/))
425 endif
426
427
428 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-en),)
429  $(eval $(call Download/files,sounds-en,$(PKG_NAME)-sounds-en-us-callie-8000-1.0.22.tar.gz,cff509d878708ce5e6e7fedac7f683ef,,,))
430         MAKE_INSTALL_TARGETS+= sounds-install
431 endif
432
433
434 ifneq ($(CONFIG_PACKAGE_$(PKG_NAME)-sounds-moh),)
435  $(eval $(call Download/files,sounds-moh,$(PKG_NAME)-sounds-music-8000-1.0.8.tar.gz,f63ef3cc3507af079ae5c7b8b8a01e42,,,))
436         MAKE_INSTALL_TARGETS+= moh-install
437 endif
438
439
440 #
441 # XXX: -fgnu89-inline is not supported on all compiler versions, so only enable it on avr32 where it solves build issues
442 #
443 ifneq ($(CONFIG_avr32),)
444   TARGET_CFLAGS += -fgnu89-inline
445   TARGET_CXXFLAGS += -fgnu89-inline
446 endif
447
448
449 ifneq ($(CONFIG_USE_EGLIBC),)
450   ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),)
451     TARGET_CFLAGS += -DNO_GETLOGIN
452   endif
453 endif
454
455
456 FS_TARGET_CFLAGS:= ${TARGET_CFLAGS} -DLUA_USE_LINUX $(FPIC) -std=gnu99 -Wno-format
457 FS_TARGET_CXXFLAGS:= ${TARGET_CXXFLAGS} -DLUA_USE_LINUX $(FPIC) -Wno-format
458 FS_TARGET_CPPFLAGS:= -I. -I./lua $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-erlang-event),-I$(STAGING_DIR_HOST)/lib/erlang/lib/erl_interface-3.6/include) $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-json-cdr),-Wno-error) ${TARGET_CPPFLAGS}
459
460
461 CONFIGURE_ARGS+= \
462         --host=$(GNU_TARGET_NAME) \
463         --build=$(GNU_HOST_NAME) \
464         --prefix="/usr/share/$(PKG_NAME)" \
465         --bindir="/usr/bin" \
466         --libdir="/usr/lib" \
467         --srcdir="$(PKG_BUILD_DIR)" \
468         --sysconfdir="/etc/$(PKG_NAME)" \
469         --with-modinstdir="/usr/lib/$(PKG_NAME)" \
470         --with-random="/dev/urandom" \
471         $(if $(CONFIG_FS_SOFIA_WITH_MYSQL),--with-mysql,--without-mysql) \
472         $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_IPV6,ipv6) \
473         $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_OPT,optimization) \
474         $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-celt),--with-ogg="$(STAGING_DIR)/usr",--without-iogg) \
475         $(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) \
476         $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-java),--with-java="$(STAGING_DIR)/usr",--without-java) \
477         $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-spandsp,builtin-tiff) \
478         $(call autoconf_bool,CONFIG_PACKAGE_$(PKG_NAME)-mod-timerfd,timerfd-wrapper) \
479         $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_BUILTIN_ZRTP,zrtp) \
480         $(call autoconf_bool,CONFIG_FS_SOFIA_WITH_ODBC,core-odbc-support) \
481         $(if $(CONFIG_FS_SOFIA_WITH_ODBC),--with-odbc="$(STAGING_DIR)/usr") \
482         $(if $(CONFIG_FS_SOFIA_WITH_ODBC),--with-odbc-lib="$(STAGING_DIR)/usr/lib") \
483
484
485 CONFIGURE_VARS+= \
486         config_TARGET_CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
487         config_TARGET_CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
488         config_TARGET_CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
489         config_TARGET_CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
490         config_TARGET_CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
491         config_TARGET_READLINE_INC="${FS_TARGET_CPPFLAGS}" \
492         config_TARGET_READLINE_LIBS="${TARGET_LDFLAGS} -lreadline -lncurses" \
493         config_TARGET_LIBS="${TARGET_LDFLAGS} -lpthread -ldl" \
494         config_BUILD_CC="${HOSTCC}" \
495         config_BUILD_CFLAGS="${HOST_CFLAGS}" \
496         CC_FOR_BUILD="${HOSTCC}" \
497         BUILDTOOL_CC="${HOSTCC}" \
498         BUILDTOOL_CCLD="${HOSTCC}" \
499         LDFLAGS="$$$$LDFLAGS" \
500         LDFLAGS_FOR_BUILD="${HOST_LDFLAGS}" \
501         CC="$(TOOLCHAIN_DIR)/bin/${TARGET_CC}" \
502         CXX="$(TOOLCHAIN_DIR)/bin/${TARGET_CXX}" \
503         AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
504         RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
505         CFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CFLAGS}" \
506         CXXFLAGS="${FS_TARGET_CPPFLAGS} ${FS_TARGET_CXXFLAGS}" \
507         CPPFLAGS="${FS_TARGET_CPPFLAGS}" \
508         LDFLAGS="${TARGET_LDFLAGS} -Wl,-rpath-link=\"${STAGING_DIR}/usr/lib\"" \
509         PATH="${PATH}:${STAGING_DIR}" \
510         HOST_CC="/usr/bin/cc" \
511         HOST_CXX="/usr/bin/g++" \
512         CROSS_COMPILE="1" \
513         PKG_CONFIG="$(STAGING_DIR_HOST)/bin/pkg-config" \
514         PKG_CONFIG_PATH="$(STAGING_DIR_HOST)/lib/pkgconfig" \
515         ax_cv_c_compiler_vendor="gnu" \
516         ac_cv_dev_urandom="yes" \
517         ac_cv_file_dbd_apr_dbd_mysql_c="no" \
518         ac_cv_file__dev_random="no" \
519         ac_cv_file__dev_urandom="yes" \
520         ac_cv_file___dev_urandom_="yes" \
521         ac_cv_func_mmap_fixed_mapped="yes" \
522         ac_cv_func_pthread_rwlock_init="yes" \
523         ac_cv_struct_rlimit="yes" \
524         apr_cv_mutex_recursive="yes" \
525         apr_cv_process_shared_works="no" \
526         apr_cv_tcp_nodelay_with_cork="yes" \
527         apr_cv_type_rwlock_t="yes" \
528         $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-perl),ac_cv_path_PERL="yes",) \
529         libzmq_cv_cxx_werror_flag="" \
530
531
532 define Build/Prepare
533         $(call Build/Prepare/Default)
534         $(call Prepare/celt)
535         $(call Prepare/event-zmq)
536         $(call Prepare/flite)
537         $(call Prepare/json-cdr)
538         $(call Prepare/opus)
539         $(call Prepare/sounds-en)
540         $(call Prepare/sounds-moh)
541 endef
542
543
544 define Build/Configure
545         if [ -d $(PKG_BUILD_DIR)/libs/libcodec2/src ]; then \
546                 (cd $(PKG_BUILD_DIR)/libs/libcodec2/src; $(HOSTCC) -c generate_codebook.c; $(HOSTCC) -o generate_codebook generate_codebook.o -lm) \
547         fi
548         (cd $(PKG_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap.sh)
549         $(call Build/Configure/Default,)
550         $(foreach m,$(FS_MOD_AVAILABLE),
551                 $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mod-$(m)),
552                         $(SED) 's|^[ #]*\([^#]*/mod_$(subst -,_,$(m))\)$$$$|\1|g' $(PKG_BUILD_DIR)/modules.conf
553                 ,
554                         $(SED) 's|^\([^#]*/mod_$(subst -,_,$(m))\)$$$$|#\1|g' $(PKG_BUILD_DIR)/modules.conf
555                 )
556         )
557 endef
558
559
560 define Build/Compile
561         $(MAKE) -C $(PKG_BUILD_DIR) \
562                 AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
563                 RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
564                 CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
565                 CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CXX)" \
566                 DESTDIR="$(PKG_INSTALL_DIR)" \
567                 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
568                 all $(MAKE_INSTALL_TARGETS)
569         $(SED) 's|^\([ \t]*\)\(.*\)"mod_console"\(.*\)$$$$|\1<!-- \2"mod_console"\3 -->|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
570         $(SED) 's|^\([ \t]*\)<!-- *\(.*\)"mod_syslog"\(.*\) *-->\(.*\)$$$$|\1\2"mod_syslog"\3\4|' $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
571 endef
572
573
574 define Build/InstallDev
575         $(INSTALL_DIR) $(1)/usr/include/$(PKG_NAME)
576         $(INSTALL_DIR) $(1)/usr/lib
577         $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/include/* $(1)/usr/include/$(PKG_NAME)/
578         $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME).{a,so*} $(1)/usr/lib/
579 endef
580
581
582 define Package/$(PKG_NAME)/install
583         $(INSTALL_DIR) $(1)/etc/config
584         $(INSTALL_DIR) $(1)/etc/default
585         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
586         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/scripts
587         $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
588         $(INSTALL_DIR) $(1)/etc/init.d
589         $(INSTALL_DIR) $(1)/usr/bin
590         $(INSTALL_DIR) $(1)/usr/lib
591         $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
592         $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
593         $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
594         $(INSTALL_DATA) ./files/$(PKG_NAME).default $(1)/etc/default/$(PKG_NAME)
595         $(INSTALL_DATA) ./files/$(PKG_NAME).hotplug $(1)/etc/hotplug.d/iface/90-$(PKG_NAME)
596         $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
597         $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib$(PKG_NAME)* $(1)/usr/lib/
598         $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(PKG_NAME).pc $(1)/usr/lib/pkgconfig/
599 endef
600
601
602 define Package/$(PKG_NAME)-collection-upstream-defaults/install
603         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
604 endef
605
606
607 define Package/$(PKG_NAME)-example-config/install
608         $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/examples/conf
609         $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/usr/share/$(PKG_NAME)/examples/conf/
610 endef
611
612
613 define Package/$(PKG_NAME)-config-upstream-defaults/install
614         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
615         $(CP) $(PKG_INSTALL_DIR)/etc/$(PKG_NAME)/* $(1)/etc/$(PKG_NAME)/
616 endef
617
618
619 define Package/$(PKG_NAME)-collection-minimal/install
620         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
621 endef
622
623
624 define Package/$(PKG_NAME)-collection-uci-minimal/install
625         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)
626 endef
627
628
629 define Package/$(PKG_NAME)-config-minimal/install
630         $(INSTALL_DIR) $(1)/etc/$(PKG_NAME)/autoload_configs
631
632         #
633         # Copying dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml fur_elise.ttml mime.types tetris.ttml tones.conf vars.xml
634         #
635         $(foreach ff,dialplan directory jingle_profiles sip_profiles $(PKG_NAME).xml fur_elise.ttml mime.types tetris.ttml tones.conf vars.xml,$(if ${PKG_BUILD_DIR}/conf/vanilla/$(ff),$(CP) ${PKG_BUILD_DIR}/conf/vanilla/$(ff) $(1)/etc/$(PKG_NAME);))
636
637         #
638         # Copying acl ivr modules post_load_modules switch timezones
639         #
640         $(foreach ff,acl ivr modules post_load_modules switch timezones,$(if ${PKG_BUILD_DIR}/conf/vanilla/autoload_configs/$(ff).conf.xml,$(CP) ${PKG_BUILD_DIR}/conf/vanilla/autoload_configs/$(ff).conf.xml $(1)/etc/$(PKG_NAME)/autoload_configs;))
641 endef
642
643
644 define Package/$(PKG_NAME)-sounds-en/install
645         $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds
646         $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/en $(1)/usr/share/$(PKG_NAME)/sounds/
647 endef
648
649
650 define Package/$(PKG_NAME)-sounds-moh/install
651         $(INSTALL_DIR) $(1)/usr/share/$(PKG_NAME)/sounds
652         $(CP) $(PKG_INSTALL_DIR)/usr/share/$(PKG_NAME)/sounds/music $(1)/usr/share/$(PKG_NAME)/sounds/
653 endef
654
655
656 define Package/$(PKG_NAME)-tools/install
657         $(INSTALL_DIR) $(1)/usr/bin
658         $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_cli $(1)/usr/bin/
659         $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_encode $(1)/usr/bin/
660         $(CP) $(PKG_INSTALL_DIR)/usr/bin/fs_ivrd $(1)/usr/bin/
661         $(CP) $(PKG_INSTALL_DIR)/usr/bin/fsxs $(1)/usr/bin/
662         $(CP) $(PKG_INSTALL_DIR)/usr/bin/gentls_cert $(1)/usr/bin/
663         $(CP) $(PKG_INSTALL_DIR)/usr/bin/tone2wav $(1)/usr/bin/
664 endef
665
666
667 #
668 # 1. Name
669 # 2. Title
670 # 3. Package configuration files
671 # 4. Inter module depends
672 # 5. Extra depends
673 #
674 define BuildLib
675   define Package/$(PKG_NAME)-$(1)
676     $$(call Package/$(PKG_NAME)/Default)
677     TITLE:= FS $(2) library and pkgconfig files
678     DEPENDS:= $(PKG_NAME) $(foreach l,$(4),+$(PKG_NAME)-$(l)) $(5)
679   endef
680
681   define Package/$(PKG_NAME)-$(1)/install
682         [ -d "$$(1)/usr/lib/pkgconfig" ] || $(INSTALL_DIR) $$(1)/usr/lib/pkgconfig
683
684         $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/$(patsubst lib%,%,${3}).pc $$(1)/usr/lib/pkgconfig
685         $(CP) $(PKG_INSTALL_DIR)/usr/lib/${1}* $$(1)/usr/lib/
686   endef
687
688   $$(eval $$(call BuildPackage,$(PKG_NAME)-$(1)))
689 endef
690
691
692 #
693 # 1. Name
694 # 2. Title
695 # 3. Selection on module configuration file
696 # 4. Files (module files include different names)
697 # 5. Files (supporting files include different names)
698 # 6. Inter module depends
699 # 7. Extra depends
700 #
701 define BuildPlugin
702   define Package/$(PKG_NAME)-mod-$(1)
703     $$(call Package/$(PKG_NAME)/Default)
704     TITLE:= FS $(2) module
705     DEPENDS:= $(PKG_NAME) $(foreach m,$(6),+$(PKG_NAME)-mod-$(m)) $(7)
706   endef
707
708   define Package/$(PKG_NAME)-mod-$(1)/install
709         [ -z "mod_$(subst -,_,$(1))" ] || $(INSTALL_DIR) $$(1)/usr/lib/$(PKG_NAME)
710
711         for f in $$$$(realpath $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/mod_$(subst -,_,$(1)).*)) $$$$(wildcard $(PKG_INSTALL_DIR)/usr/lib/$(PKG_NAME)/$(4)_*); \
712         do \
713                 $(CP) $$$$$$$${f} $$(1)/usr/lib/$(PKG_NAME)/; \
714         done
715
716         for f in $(5); \
717         do \
718                 [ -d "$(dirname $$(1)/usr/${f})" ] || $(INSTALL_DIR) $(dirname $$(1)/usr/${f}); \
719                 $(CP) $(PKG_INSTALL_DIR)/usr/${f} $$(1)/usr/${f}; \
720         done
721
722         #
723         # 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)))
724         #
725         $$$$(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)
726
727         #
728         # 2. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst ${PKG_BUILD_DIR}/%,%,$$$$(firstword $$$$(wildcard ${PKG_BUILD_DIR}/$(3)/$(1)/*/$(subst -,_,$(1)).conf.xml)))
729         #
730         $$$$(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)
731
732         #
733         # 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)))
734         #
735         $$$$(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)
736
737         #
738         # 4. mod_$(subst -,_,$(1)) XML configuration files from: $$$$(patsubst ${PKG_BUILD_DIR}/%,%,$$$$(firstword $$$$(wildcard ${PKG_BUILD_DIR}/src/$(3)/*/mod_$(subst -,_,$(1))/configs/$(subst -,_,$(1)).conf.xml)))
739         #
740         $$$$(if $$$$(firstword $$$$(wildcard ${PKG_BUILD_DIR}/src/$(3)/*/mod_$(subst -,_,$(1))/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))/configs/$(subst -,_,$(1)).conf.xml)) $$(1)/etc/$(PKG_NAME)/autoload_configs)
741
742         #
743         # 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)))
744         #
745         $$$$(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)
746
747         #
748         # 6. Additional configuration files for mod_$(subst -,_,$(1)) from: $$$$(patsubst ${PKG_BUILD_DIR}/%,%,$$$$(firstword $$$$(wildcard ${PKG_BUILD_DIR}/conf/$(3)/$(1)/*.$(1))))
749         #
750         $$$$(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))
751   endef
752
753   define Package/$(PKG_NAME)-mod-$(1)/postinst
754 #!/bin/sh
755 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
756   endef
757
758   define Package/$(PKG_NAME)-mod-$(1)/postrm
759 #!/bin/sh
760 sed -i -e 's|^\([ \t]*\)\(.*\)"mod_$(subst -,_,$(1))"\(.*\)$$$$|\1<!-- \2"mod_$(subst -,_,$(1))"\3 -->|' $$$${IPKG_INSTROOT}/etc/$(PKG_NAME)/autoload_configs/modules.conf.xml
761   endef
762
763   $$(eval $$(call BuildPackage,$(PKG_NAME)-mod-$(1)))
764 endef
765
766
767 $(eval $(call BuildPackage,$(PKG_NAME)))
768 $(eval $(call BuildPackage,$(PKG_NAME)-collection-upstream-defaults))
769 $(eval $(call BuildPackage,$(PKG_NAME)-collection-minimal))
770 $(eval $(call BuildPackage,$(PKG_NAME)-sounds-en))
771 $(eval $(call BuildPackage,$(PKG_NAME)-sounds-moh))
772 $(eval $(call BuildPackage,$(PKG_NAME)-tools))
773 $(eval $(call BuildPackage,$(PKG_NAME)-example-config))
774 $(eval $(call BuildPackage,$(PKG_NAME)-config-upstream-defaults))
775 $(eval $(call BuildPackage,$(PKG_NAME)-config-minimal))
776
777
778 #
779 # $(eval $(call BuildLib,Name,Title,Package Configuration Files,Inter Depends,Extra Depends))
780 #
781 $(eval $(call BuildLib,libopenzap,OpenZAP,openzap,,))
782
783
784 #
785 # $(eval $(call BuildPlugin,Name,Title,Selection on module Conf File,Files,Inter Depends,Extra Depends))
786 #
787 $(eval $(call BuildPlugin,abstraction,An Abstraction To API Call,vanilla,,,,))
788 $(eval $(call BuildPlugin,alsa,Alsa Endpoint,vanilla,,,,+alsa-lib))
789 $(eval $(call BuildPlugin,amr,Adaptive Multi-Rate On Bandwidth Codec,vanilla,,,,))
790 $(eval $(call BuildPlugin,amrwb,Wide Band AMR,vanilla,,,,))
791 $(eval $(call BuildPlugin,avmd,Advanced Voice Mail Detection,vanilla,,,,))
792 $(eval $(call BuildPlugin,blacklist,Blacklist,vanilla,,,,))
793 $(eval $(call BuildPlugin,bv,BroadVoice16 and BroadVoice32 Audio Codec,vanilla,,,,))
794 $(eval $(call BuildPlugin,callcenter,Call Center,vanilla,,,,))
795 $(eval $(call BuildPlugin,cdr-csv,CSV-CDR Handler,mod,,,,)) # ~/conf
796 $(eval $(call BuildPlugin,cdr-pg-csv,Postgress CDR Handler,vanilla,,,,+coreutils +libpq +postresql))
797 $(eval $(call BuildPlugin,cdr-sqlite,SQLite3 CDR Handler,vanilla,,,,+libsqlite3))
798 $(eval $(call BuildPlugin,celt,CELT Ultra-Low Delay Codec,vanilla,,,,+libogg))
799 $(eval $(call BuildPlugin,cepstral,Cepstral Interface,vanilla,,,,@BROKEN)) # needs <swift.h>
800 $(eval $(call BuildPlugin,cidlookup,Data Query For CID->NAME Services,mod,,,,+libcurl)) # ~/conf
801 $(eval $(call BuildPlugin,cluechoo,Framework Demo,vanilla,,,,))
802 $(eval $(call BuildPlugin,codec2,CoDec 2,,,,,))
803 $(eval $(call BuildPlugin,commands,API Commands,vanilla,,,,))
804 $(eval $(call BuildPlugin,conference,Conference Room,vanilla,,,,))
805 $(eval $(call BuildPlugin,console,Console Logger,vanilla,,,,))
806 $(eval $(call BuildPlugin,curl,HTTP Request,vanilla,,,,+libcurl))
807 $(eval $(call BuildPlugin,dahdi-codec,DAHDI Codecs,vanilla,,,,))
808 $(eval $(call BuildPlugin,db,Database Backend,vanilla,,,,))
809 $(eval $(call BuildPlugin,dialplan-asterisk,Asterisk Dialplan Parser,vanilla,,,,))
810 $(eval $(call BuildPlugin,dialplan-directory,Dialplan Directory,vanilla,,,,))
811 $(eval $(call BuildPlugin,dialplan-xml,Dialplan-XML Interface,vanilla,,,,))
812 $(eval $(call BuildPlugin,dingaling,Jabber Interface,vanilla,,,,+libgnutls +libgcrypt +libopenssl))
813 $(eval $(call BuildPlugin,directory,Search By Name Directory IVR,vanilla,,,,))
814 $(eval $(call BuildPlugin,distributor,Simple Robin-Round Load to Gateway,vanilla,,,,))
815 $(eval $(call BuildPlugin,dptools,Dialplan Tools,vanilla,,,,))
816 $(eval $(call BuildPlugin,easyroute,Simple DID Routing,vanilla,,,,))
817 $(eval $(call BuildPlugin,enum,ENUM Routing,,,,,))
818 $(eval $(call BuildPlugin,erlang-event,Erlang Event Handler,vanilla,,,,+erlang))
819 $(eval $(call BuildPlugin,esf,Extra SIP Functionality,vanilla,,,,))
820 $(eval $(call BuildPlugin,event-multicast,Multicast Event Handler,vanilla,,,,))
821 $(eval $(call BuildPlugin,event-socket,Socket Event Handler,vanilla,,,,))
822 $(eval $(call BuildPlugin,event-zmq,Socket Event Handler By Zero MQ,vanilla,,,,+libuuid))
823 $(eval $(call BuildPlugin,expr,Expression Evaluation,vanilla,,,,))
824 $(eval $(call BuildPlugin,fifo,FIFO,vanilla,,,,))
825 $(eval $(call BuildPlugin,file-string,Streaming Multiple Sound Files Sequentially,vanilla,,,,@OBSOLETE)) # merged into dptools
826 $(eval $(call BuildPlugin,flite,Festival TTS,vanilla,,,,@(!(armeb||avr32)||BROKEN)))
827 $(eval $(call BuildPlugin,fsk,Bell-202 1200-Baud FSK Decoder,vanilla,,,,))
828 $(eval $(call BuildPlugin,fsv,Video Player / Recorder,vanilla,,,,))
829 $(eval $(call BuildPlugin,g723-1,G.723.1 Codec,vanilla,,,,))
830 $(eval $(call BuildPlugin,g729,G.729 Codec,vanilla,,,,))
831 $(eval $(call BuildPlugin,gsmopen,GSM Modem compatible Endpoint,mod,,,,+alsa-lib @BROKEN)) # needs gsmlib
832 $(eval $(call BuildPlugin,h26x,H26X Linear Codec,vanilla,,,,))
833 $(eval $(call BuildPlugin,h323,H323 Endpoint,mod,,,,@BROKEN)) # Req. H323Plus v1.24.x or newer
834 $(eval $(call BuildPlugin,hash,API For Manipulating A Hash Table,vanilla,,,,))
835 $(eval $(call BuildPlugin,html5,HTML5 Endpoint Module,vanilla,,,,))
836 $(eval $(call BuildPlugin,httapi,HT Telephony API and HTTP Caching,mod,,,,)) # ~/conf
837 $(eval $(call BuildPlugin,http-cache,HTTP GET With Caching,mod,,,,+libcurl)) # ~/conf
838 $(eval $(call BuildPlugin,ilbc,ILBC Codec,vanilla,,,,))
839 $(eval $(call BuildPlugin,isac,iSAC Codec,vanilla,,,,))
840 $(eval $(call BuildPlugin,java,Java Language Interface,vanilla,,,,@BROKEN)) # needs java
841 $(eval $(call BuildPlugin,json-cdr,JSon-CDR Interface,mod,,,,+libcurl))
842 $(eval $(call BuildPlugin,lcr,Least Cost Routing,vanilla,,,,))
843 $(eval $(call BuildPlugin,local-stream,Multi-Channel On Same Stream,vanilla,,,,))
844 $(eval $(call BuildPlugin,logfile,File Logger,vanilla,,,,))
845 $(eval $(call BuildPlugin,loopback,Loopback to Dialplan Endpoint,vanilla,,,,))
846 $(eval $(call BuildPlugin,lua,LUA Language Interface,vanilla,,,,))
847 $(eval $(call BuildPlugin,managed,Media Switching Software Library,vanilla,,,,+glib2 @BROKEN)) # needs Mono
848 $(eval $(call BuildPlugin,mp4,MP4 File Format Support For Video,vanilla,,,,@BROKEN)) # needs libmp4v2
849 $(eval $(call BuildPlugin,mp4v,MP4 CoDec Support For Video,vanilla,,,,))
850 $(eval $(call BuildPlugin,native-file,WAV Format Sound Player,vanilla,,,,))
851 $(eval $(call BuildPlugin,nibblebill,Credit / Debit Billing,vanilla,,,,))
852 $(eval $(call BuildPlugin,oreka,Media Recording with Oreka,vanilla,,,,))
853 $(eval $(call BuildPlugin,openzap,Zaptel (Superseded by FreeTDM),libs,ozmod,,,+$(PKG_NAME)-libopenzap +libpcap))
854 $(eval $(call BuildPlugin,opus,Opus CoDec,vanilla,,,,))
855 $(eval $(call BuildPlugin,portaudio,Portaudio To Sound Card Interface,vanilla,,,,+alsa-lib))
856 $(eval $(call BuildPlugin,portaudio-stream,Portaudio Streaming Interface,vanilla,,,,+alsa-lib))
857 $(eval $(call BuildPlugin,posix-timer,POSIX Compliant Soft Timer,vanilla,,,,))
858 $(eval $(call BuildPlugin,radius-cdr,Radius-CDR interface,vanilla,,,,+freeradius2 @BROKEN)) # fails in freeradius-client
859 $(eval $(call BuildPlugin,redis,Redis Limited Backend,vanilla,,,,))
860 $(eval $(call BuildPlugin,rss,RRS Feeds via TTS,vanilla,,,,))
861 $(eval $(call BuildPlugin,rtmp,RTMP Protocol Handler,vanilla,,,,))
862 $(eval $(call BuildPlugin,sangoma-codec,Sangoma Codec,vanilla,,,,@BROKEN)) # Req. Sangoma CoDec source
863 $(eval $(call BuildPlugin,say-de,German Say,vanilla,,,,))
864 $(eval $(call BuildPlugin,say-en,English Say,vanilla,,,,))
865 $(eval $(call BuildPlugin,say-es,Spanish Say,vanilla,,,,))
866 $(eval $(call BuildPlugin,say-fa,Persian Say,vanilla,,,,))
867 $(eval $(call BuildPlugin,say-fr,French Say,vanilla,,,,))
868 $(eval $(call BuildPlugin,say-hu,Hungarian Say,vanilla,,,,))
869 $(eval $(call BuildPlugin,say-it,Italian Say,vanilla,,,,))
870 $(eval $(call BuildPlugin,say-nl,Dutch Say,vanilla,,,,))
871 $(eval $(call BuildPlugin,say-pt,Portugeese Say,vanilla,,,,))
872 $(eval $(call BuildPlugin,say-ru,Russian Say,vanilla,,,,))
873 $(eval $(call BuildPlugin,say-th,Thai Say,vanilla,,,,))
874 $(eval $(call BuildPlugin,say-zh,Chineese Say,vanilla,,,,))
875 $(eval $(call BuildPlugin,shell-stream,Streaming Audio Through CLI,vanilla,,,,))
876 $(eval $(call BuildPlugin,silk,Skype(TM) SILK Codec Module,vanilla,,,,))
877 $(eval $(call BuildPlugin,siren,G.722.1 Codec,vanilla,,,,))
878 $(eval $(call BuildPlugin,skel,Template For New Module,vanilla,,,,))
879 $(eval $(call BuildPlugin,skinny,Skinny Call Control Protocol (SCCP),vanilla,,,,))
880 $(eval $(call BuildPlugin,skypopen,Skype Compatible Endpoint,mod,,,,@FEATURE_drawing-backend_libX11))
881 $(eval $(call BuildPlugin,sms,SMS,vanilla,,,,))
882 $(eval $(call BuildPlugin,snapshot,Record Audio Snapshot to File,vanilla,,,,))
883 $(eval $(call BuildPlugin,sndfile,Multi-Format Sound File,vanilla,,,,))
884 $(eval $(call BuildPlugin,snipe-hunt,Snipe Hunt (Simple Example Module),vanilla,,,,))
885 $(eval $(call BuildPlugin,snmp,SNMP AgentX Subagent,vanilla,,,,+libnetsnmp))
886 $(eval $(call BuildPlugin,snom,SNOM specific features,vanilla,,,,))
887 $(eval $(call BuildPlugin,sofia,SOFIA SIP,mod,,,,)) # ~/conf
888 $(eval $(call BuildPlugin,sonar,Sonar Ping Timer,vanilla,,,,))
889 $(eval $(call BuildPlugin,spandsp,Span DSP,mod,,,,+libjpeg)) # ~/conf
890 $(eval $(call BuildPlugin,speex,Speex codec,mod,,,,))
891 $(eval $(call BuildPlugin,spidermonkey,JavaScript,vanilla,,,,@BROKEN)) # fails in js
892 $(eval $(call BuildPlugin,spidermonkey-core_db,JavaScript DB,vanilla,,,,@BROKEN))
893 $(eval $(call BuildPlugin,spidermonkey-curl,JavaScript Curl,vanilla,,,,@BROKEN))
894 $(eval $(call BuildPlugin,spidermonkey-odbc,JavaScript ODBC,vanilla,,,,@BROKEN))
895 $(eval $(call BuildPlugin,spidermonkey-socket,JavaScript Socket,vanilla,,,,@BROKEN))
896 $(eval $(call BuildPlugin,spidermonkey-teletone,JavaScript Teletone,vanilla,,,,@BROKEN))
897 $(eval $(call BuildPlugin,spy,User Spy,vanilla,,,,))
898 $(eval $(call BuildPlugin,stress,Voice Stress Detection,vanilla,,,,))
899 $(eval $(call BuildPlugin,syslog,SysLog logger,vanilla,,,,))
900 $(eval $(call BuildPlugin,timerfd,Linux Kernel timerfd API,vanilla,,,,))
901 $(eval $(call BuildPlugin,tone-stream,Tone Generation Stream,vanilla,,,,))
902 $(eval $(call BuildPlugin,tts-commandline,ASR TTS Command Interface,vanilla,,,,))
903 $(eval $(call BuildPlugin,unimrcp,UniMRCP (MRCP Client),vanilla,,,,@BROKEN))
904 $(eval $(call BuildPlugin,valet-parking,Valet Parking Application,vanilla,,,,))
905 $(eval $(call BuildPlugin,vmd,VoiceMail Beep Detection,vanilla,,,,))
906 $(eval $(call BuildPlugin,voicemail,VoiceMail,vanilla,,,,))
907 $(eval $(call BuildPlugin,voicemail-ivr,VoiceMail IVR,vanilla,,,,))
908 $(eval $(call BuildPlugin,xml-cdr,XML-CDR Handler,vanilla,,,,+libcurl))
909 $(eval $(call BuildPlugin,xml-curl,XML-Curl Gateway,vanilla,,,,+libcurl))
910 $(eval $(call BuildPlugin,xml-rpc,XML-RPC Interface,vanilla,,,,))
911 $(eval $(call BuildPlugin,xml-scgi,SCGI XML Gateway,vanilla,,,,))
912 $(eval $(call BuildPlugin,yaml,YAML langunage,vanilla,,,,))