aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-01 21:09:30 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-01 21:09:30 +0000
commitaf473c3e1f3b8553b2bd7b778e03491bc076dba7 (patch)
treed0e80778fe4127ff461cf7512d9b54abd2a884fb /apps
parentcf785efa8ba6945030675abc016f9d559feacc7d (diff)
Submitting a fix for voicemail with IMAP storage. Attachments with format specified as gsm were duplicated (i.e. two attachments) were left.
Thank you very much to xmarksthespot for submitting the patch that fixed this. (Issues 9787 and 8873, Reported by xmarksthespot and jerjer, patched by xmarksthespot) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@66897 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 476e1a3e4..3f74c724e 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -565,6 +565,7 @@ static void populate_defaults(struct ast_vm_user *vmu)
static void apply_option(struct ast_vm_user *vmu, const char *var, const char *value)
{
+ ast_log (LOG_DEBUG, "I'm applying option %s with value %s\n", var, value);
int x;
if (!strcasecmp(var, "attach")) {
ast_set2_flag(vmu, ast_true(value), VM_ATTACH);
@@ -579,6 +580,7 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
#ifdef IMAP_STORAGE
} else if (!strcasecmp(var, "imapuser")) {
ast_copy_string(vmu->imapuser, value, sizeof(vmu->imapuser));
+ ast_log (LOG_DEBUG, "vmu->imapuser = %s\n", vmu->imapuser);
} else if (!strcasecmp(var, "imappassword")) {
ast_copy_string(vmu->imappassword, value, sizeof(vmu->imappassword));
#endif
@@ -664,6 +666,7 @@ static void apply_options_full(struct ast_vm_user *retval, struct ast_variable *
{
struct ast_variable *tmp;
tmp = var;
+ ast_log (LOG_DEBUG, "I'm applying the value %s somewhere...\n", tmp->name);
while (tmp) {
if (!strcasecmp(tmp->name, "vmsecret")) {
ast_copy_string(retval->password, tmp->value, sizeof(retval->password));
@@ -682,6 +685,7 @@ static void apply_options_full(struct ast_vm_user *retval, struct ast_variable *
ast_copy_string(retval->context, tmp->value, sizeof(retval->context));
#ifdef IMAP_STORAGE
} else if (!strcasecmp(tmp->name, "imapuser")) {
+ ast_log (LOG_DEBUG, "I'm setting the imapuser field to %s\n", tmp->name);
ast_copy_string(retval->imapuser, tmp->value, sizeof(retval->imapuser));
} else if (!strcasecmp(tmp->name, "imappassword")) {
ast_copy_string(retval->imappassword, tmp->value, sizeof(retval->imappassword));
@@ -1985,16 +1989,6 @@ static void make_email_file(FILE *p, char *srcemail, struct ast_vm_user *vmu, in
fprintf(p, "Content-Disposition: attachment; filename=\"msg%04d.%s\"" ENDL ENDL, msgnum + 1, format);
snprintf(fname, sizeof(fname), "%s.%s", attach, format);
base_encode(fname, p);
- /* only attach if necessary */
- if (imap && !strcmp(format, "gsm")) {
- fprintf(p, "--%s" ENDL, bound);
- fprintf(p, "Content-Type: audio/x-gsm; name=\"msg%04d.%s\"" ENDL, msgnum + 1, format);
- fprintf(p, "Content-Transfer-Encoding: base64" ENDL);
- fprintf(p, "Content-Description: Voicemail sound attachment." ENDL);
- fprintf(p, "Content-Disposition: attachment; filename=\"msg%04d.gsm\"" ENDL ENDL, msgnum + 1);
- snprintf(fname, sizeof(fname), "%s.gsm", attach);
- base_encode(fname, p);
- }
fprintf(p, ENDL ENDL "--%s--" ENDL "." ENDL, bound);
if (tmpfd > -1)
close(tmpfd);
@@ -2490,7 +2484,7 @@ static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
}
/* We have to get the user before we can open the stream! */
- /*ast_log (LOG_DEBUG,"Before find_user, context is %s and mailbox is %s\n",context,mailbox); */
+ /* ast_log (LOG_DEBUG,"Before find_user, context is %s and mailbox is %s\n",context,mailbox); */
vmu = find_user(NULL, context, mailboxnc);
if (!vmu) {
ast_log (LOG_ERROR,"Couldn't find mailbox %s in context %s\n",mailboxnc,context);
@@ -3004,7 +2998,7 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
newmsgs = vms->newmessages++;
oldmsgs = vms->oldmessages;
} else {
- res = inboxcount(ext, &newmsgs, &oldmsgs);
+ res = inboxcount(ext_context, &newmsgs, &oldmsgs);
if(res < 0) {
ast_log(LOG_NOTICE,"Can not leave voicemail, unable to count messages\n");
return -1;