app_voicemail.c: Build all three variants for app_voicemail at the same time

Changes made to apps/Makefile to optionally build all three app_voicemail
variations at the same time: 1) file (default), 2) odbc, and 3) imap.
This functionality was requested by users. modules.conf.sample warns the
user to make sure only one voicemail is loaded at a time.

Change-Id: Iba3cd8ffb4b7e8b1c64a11dd383e1eafcd3ed0e7
This commit is contained in:
Chris-Savinovich 2019-06-27 13:50:57 -05:00 committed by George Joseph
parent 2f29c375c1
commit 6b1f6ea2c4
7 changed files with 49 additions and 7 deletions

View File

@ -16,23 +16,45 @@ MENUSELECT_CATEGORY=APPS
MENUSELECT_DESCRIPTION=Applications
MENUSELECT_OPTS_app_directory:=$(MENUSELECT_OPTS_app_voicemail)
ifneq ($(findstring ODBC_STORAGE,$(MENUSELECT_OPTS_app_voicemail)),)
MENUSELECT_DEPENDS_app_voicemail+=$(MENUSELECT_DEPENDS_ODBC_STORAGE)
endif
ifneq ($(findstring IMAP_STORAGE,$(MENUSELECT_OPTS_app_voicemail)),)
MENUSELECT_DEPENDS_app_voicemail+=$(MENUSELECT_DEPENDS_IMAP_STORAGE)
endif
all: _all
include $(ASTTOPDIR)/Makefile.moddir_rules
.app_voicemail.moduleinfo: app_voicemail.c
@echo "<member name=\"app_voicemail\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.o $(SUBDIR)/$*.so\">" > $@
echo "<support_level>core</support_level>" >> $@
echo "<defaultenabled>yes</defaultenabled>" >> $@
echo "<use type=\"module\">res_adsi</use>" >> $@
echo "<use type=\"module\">res_smdi</use>" >> $@
echo "</member>" >> $@
.app_voicemail_imap.moduleinfo: app_voicemail_imap.c
@echo "<member name=\"app_voicemail_imap\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.o $(SUBDIR)/$*.so\">" > $@
echo "<support_level>core</support_level>" >> $@
echo "<defaultenabled>no</defaultenabled>" >> $@
echo "<depend>imap_tk</depend>" >> $@
echo "<use type=\"module\">res_adsi</use>" >> $@
echo "<use type=\"module\">res_smdi</use>" >> $@
echo "</member>" >> $@
.app_voicemail_odbc.moduleinfo: app_voicemail_odbc.c
@echo "<member name=\"app_voicemail_odbc\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.o $(SUBDIR)/$*.so\">" > $@
echo "<support_level>core</support_level>" >> $@
echo "<defaultenabled>no</defaultenabled>" >> $@
echo "<depend>generic_odbc</depend>" >> $@
echo "<use type=\"module\">res_adsi</use>" >> $@
echo "<use type=\"module\">res_smdi</use>" >> $@
echo "</member>" >> $@
$(call MOD_ADD_C,app_confbridge,$(wildcard confbridge/*.c))
app_confbridge.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
app_meetme.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
app_minivm.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
app_voicemail.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
app_voicemail.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION) -DFILE_STORAGE
app_voicemail_odbc.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION) -DODBC_STORAGE
app_voicemail_imap.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION) -DIMAP_STORAGE
app_while.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)

1
apps/app_voicemail_imap.c Symbolic link
View File

@ -0,0 +1 @@
app_voicemail.c

View File

@ -0,0 +1 @@
app_voicemail.exports.in

1
apps/app_voicemail_odbc.c Symbolic link
View File

@ -0,0 +1 @@
app_voicemail.c

View File

@ -0,0 +1 @@
app_voicemail.exports.in

View File

@ -44,3 +44,10 @@ noload => res_hep_rtcp.so
; Do not load chan_sip by default, it may conflict with res_pjsip.
noload => chan_sip.so
; The default voicemail module is app_voicemal. All voicemail modules
; are mutually exclusive. Therefore it is better to make sure they
; are not loaded at startup
;
noload => app_voicemail_odbc.so
noload => app_voicemail_imap.so

View File

@ -0,0 +1,9 @@
Subject: app_voicemail.c
The "Voicemail Build Options" section of menuselect has been removed along with
the FILE_STORAGE, ODBC_STORAGE and IMAP_STORAGE menuselect options. All 3 variants
of the voicemail app can now be built at the same by enabling app_voicemail,
app_voicemail_imap, and app_voicemail_odbc under the "Applications" section.
By default, only app_voicemail is enabled. Also, the modules.conf sample has
been updated to "noload" app_voicemail_imap and app_voicemail_odbc should they
all be built. Packagers must update their build scripts appropriately.