diff options
-rw-r--r-- | apps/app_voicemail.c | 5 | ||||
-rw-r--r-- | configure.ac | 69 | ||||
-rw-r--r-- | doc/imapstorage.txt | 4 |
3 files changed, 70 insertions, 8 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index e3c67f743..9952d4094 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -6470,10 +6470,13 @@ out: /* expunge message - use UID Expunge if supported on IMAP server*/ ast_log(LOG_DEBUG, "*** Checking if we can expunge, deleted set to %d, expungeonhangup set to %d\n",deleted,expungeonhangup); if (vmu && deleted == 1 && expungeonhangup == 1) { +#ifdef HAVE_IMAP_TK2006 if (LEVELUIDPLUS (vms.mailstream)) { ast_log(LOG_DEBUG, "*** About to expunge messages using UID\n"); mail_expunge_full(vms.mailstream,NIL,EX_UID); - } else { + } else +#endif + { ast_log(LOG_DEBUG, "*** About to expunge messages\n"); mail_expunge(vms.mailstream); } diff --git a/configure.ac b/configure.ac index 83cf0242a..d4559cdc4 100644 --- a/configure.ac +++ b/configure.ac @@ -348,8 +348,7 @@ if test "${USE_IMAP_TK}" != "no"; then LIBS="${LIBS} ${IMAP_TK_DIR}/c-client/c-client.a "`echo ${imap_ldflags}` AC_LINK_IFELSE( AC_LANG_PROGRAM( - [#include "c-client.h"], - [ + [#include "c-client.h" void mm_searched (MAILSTREAM *stream,unsigned long number) { } @@ -394,16 +393,71 @@ if test "${USE_IMAP_TK}" != "no"; then } void mm_fatal (char *string) { - } - int main() - { + }], + [ MAILSTREAM *foo = mail_open(NULL, "", 0); - } ] ), [ac_cv_imap_tk="yes"], [ac_cv_imap_tk="no"] ) + if test "${ac_cv_imap_tk}" = "yes"; then + AC_LINK_IFELSE( + AC_LANG_PROGRAM( + [#include "c-client.h" + void mm_searched (MAILSTREAM *stream,unsigned long number) + { + } + void mm_exists (MAILSTREAM *stream,unsigned long number) + { + } + void mm_expunged (MAILSTREAM *stream,unsigned long number) + { + } + void mm_flags (MAILSTREAM *stream,unsigned long number) + { + } + void mm_notify (MAILSTREAM *stream,char *string,long errflg) + { + } + void mm_list (MAILSTREAM *stream,int delimiter,char *mailbox,long attributes) + { + } + void mm_lsub (MAILSTREAM *stream,int delimiter,char *mailbox,long attributes) + { + } + void mm_status (MAILSTREAM *stream,char *mailbox,MAILSTATUS *status) + { + } + void mm_log (char *string,long errflg) + { + } + void mm_dlog (char *string) + { + } + void mm_login (NETMBX *mb,char *user,char *pwd,long trial) + { + } + void mm_critical (MAILSTREAM *stream) + { + } + void mm_nocritical (MAILSTREAM *stream) + { + } + long mm_diskerror (MAILSTREAM *stream,long errcode,long serious) + { + } + void mm_fatal (char *string) + { + }], + [ + long check = mail_expunge_full(NULL, "", 0); + ] + ), + [ac_cv_imap_tk2006="yes"], + [ac_cv_imap_tk2006="no"] + ) + fi CPPFLAGS="${saved_cppflags}" LIBS="${saved_libs}" if test "${ac_cv_imap_tk}" = "yes"; then @@ -412,6 +466,9 @@ if test "${USE_IMAP_TK}" != "no"; then IMAP_TK_INCLUDE="-I${IMAP_TK_DIR}/c-client" PBX_IMAP_TK=1 AC_DEFINE([HAVE_IMAP_TK], 1, [Define if your system has the UW IMAP Toolkit c-client library.]) + if test "${ac_cv_imap_tk2006}" = "yes"; then + AC_DEFINE([HAVE_IMAP_TK2006], 1, [Define if your system has the UW IMAP Toolkit c-client library version 2006 or greater.]) + fi elif test ! -z "${IMAP_TK_MANDATORY}"; then AC_MSG_RESULT(no) AC_MSG_NOTICE(***) diff --git a/doc/imapstorage.txt b/doc/imapstorage.txt index b71659b91..f1c1fea5d 100644 --- a/doc/imapstorage.txt +++ b/doc/imapstorage.txt @@ -58,7 +58,9 @@ Configure with ./configure --with-imap=/usr/src/imap or where ever you built the University of Washington IMAP C-Client. Then make menuselect go to voicemail options and check the imap box then make, make install and asterisk will have imap storage support for -voicemail. +voicemail. If you are using there 2004 version you will not have access to +their mail_expunge_full function if you install the 2006 dev branch it will +configure will detect and enable this for you. --------------------- Modify voicemail.conf |