aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_voicemail.c5
-rw-r--r--configure.ac69
-rw-r--r--doc/imapstorage.txt4
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