diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2006-09-25 22:06:26 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2006-09-25 22:06:26 +0000 |
commit | 2f3eab049b36414b1a0aff4e83757ead5db9374b (patch) | |
tree | a506afed17f1ba6a0f1cf5413ddd48a7e611d9ff | |
parent | e505eceb25e47ebfb1a3b4e01a8f329c99f5e15c (diff) |
Merged revisions 43640 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r43640 | tilghman | 2006-09-25 17:04:47 -0500 (Mon, 25 Sep 2006) | 12 lines
Merged revisions 43634 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r43634 | tilghman | 2006-09-25 16:14:41 -0500 (Mon, 25 Sep 2006) | 4 lines
Two bugs when forwarding voicemail (Issue 7824):
1) delete=yes was ignored
2) maxmessages was ignored
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43641 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | apps/app_voicemail.c | 80 |
1 files changed, 1 insertions, 79 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index fd4a391f3..dc8f49c81 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -3784,19 +3784,8 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st BODY *body; char *header_content; char *temp; -#else - struct ast_config *mif; - char sys[256]; - char miffile[256]; - char callerid[512]; - char tmp[256]; - char ext_context[256]=""; #endif char username[70]=""; - char todir[256]; - int todircount=0; - int duration; - char fn[256]; int res = 0, cmd = 0; struct ast_vm_user *receiver = NULL, *vmtmp; AST_LIST_HEAD_NOLOCK_STATIC(extensions, ast_vm_user); @@ -3993,74 +3982,7 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st /* NULL category for IMAP storage */ sendmail(myserveremail, vmtmp, todircount, vmtmp->context, vmtmp->mailbox, chan->cid.cid_num, chan->cid.cid_name, fn, fmt, duration, attach_user_voicemail, chan, NULL); #else - - /* if (ast_play_and_wait(chan, "vm-savedto")) - break; - */ - snprintf(todir, sizeof(todir), "%s%s/%s/INBOX", VM_SPOOL_DIR, vmtmp->context, vmtmp->mailbox); - snprintf(sys, sizeof(sys), "mkdir -p %s\n", todir); - snprintf(ext_context, sizeof(ext_context), "%s@%s", vmtmp->mailbox, vmtmp->context); - ast_safe_system(sys); - - res = count_messages(receiver, todir); - - if ( (res == ERROR_LOCK_PATH) || (res < 0) ) { - if (res == ERROR_LOCK_PATH) - ast_log(LOG_WARNING, "Unable to lock the directory %s to forward the requested vmail msg!\n", todir); - else - ast_log(LOG_WARNING, "Unable to determine how many msgs are in the destination folder!\n"); - break; - } - todircount = res; - ast_copy_string(tmp, fmt, sizeof(tmp)); - stringp = tmp; - while ((s = strsep(&stringp, "|"))) { - /* XXX This is a hack -- we should use build_filename or similar XXX */ - if (!strcasecmp(s, "wav49")) - s = "WAV"; - snprintf(sys, sizeof(sys), "cp %s/msg%04d.%s %s/msg%04d.%s\n", dir, curmsg, s, todir, todircount, s); - ast_safe_system(sys); - } - snprintf(sys, sizeof(sys), "cp %s/msg%04d.txt %s/msg%04d.txt\n", dir, curmsg, todir, todircount); - ast_safe_system(sys); - snprintf(fn, sizeof(fn), "%s/msg%04d", todir,todircount); - - STORE(todir, vmtmp->mailbox, vmtmp->context, todircount); - - /* load the information on the source message so we can send an e-mail like a new message */ - snprintf(miffile, sizeof(miffile), "%s/msg%04d.txt", dir, curmsg); - if ((mif=ast_config_load(miffile))) { - const char *category = ast_variable_retrieve(mif, NULL, "category"); - - /* set callerid and duration variables */ - snprintf(callerid, sizeof(callerid), "FWD from: %s from %s", sender->fullname, ast_variable_retrieve(mif, NULL, "callerid")); - s = ast_variable_retrieve(mif, NULL, "duration"); - if (s) - duration = atoi(s); - else - duration = 0; - if (!ast_strlen_zero(vmtmp->email)) { - int attach_user_voicemail = ast_test_flag((&globalflags), VM_ATTACH); - char *myserveremail = serveremail; - attach_user_voicemail = ast_test_flag(vmtmp, VM_ATTACH); - if (!ast_strlen_zero(vmtmp->serveremail)) - myserveremail = vmtmp->serveremail; - /*XXX POSSIBLE ISSUE FOR IMAP STORAGE but no idea how its an else statement XXX*/ - sendmail(myserveremail, vmtmp, todircount, vmtmp->context, vmtmp->mailbox, chan->cid.cid_num, chan->cid.cid_name, fn, tmp, duration, attach_user_voicemail, chan, category); - } - - if (!ast_strlen_zero(vmtmp->pager)) { - char *myserveremail = serveremail; - if (!ast_strlen_zero(vmtmp->serveremail)) - myserveremail = vmtmp->serveremail; - sendpage(myserveremail, vmtmp->pager, todircount, vmtmp->context, vmtmp->mailbox, chan->cid.cid_num, chan->cid.cid_name, duration, vmtmp, category); - } - - ast_config_destroy(mif); /* or here */ - } - /* Leave voicemail for someone */ - manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s\r\nWaiting: %d\r\n", ext_context, has_voicemail(ext_context, NULL)); - run_externnotify(vmtmp->context, vmtmp->mailbox); + copy_message(chan, sender, 0, curmsg, 0, vmtmp, fmt); #endif saved_messages++; AST_LIST_REMOVE_CURRENT(&extensions, list); |