]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Mon, 25 Sep 2006 22:00:50 +0000 (22:00 +0000)
committerAutomerge script <automerge@asterisk.org>
Mon, 25 Sep 2006 22:00:50 +0000 (22:00 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@43639 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 1bd79709cee9513b9cfd90d1e1ffd1eecdcea419..b73887f7f256c97089f28aff7c9629fb0050d21e 100644 (file)
@@ -3377,18 +3377,8 @@ static int forward_message(struct ast_channel *chan, char *context, char *dir, i
                           char *fmt, int flag, signed char record_gain)
 {
        char username[70]="";
-       char sys[256];
-       char todir[256];
-       int todircount=0;
-       int duration;
-       struct ast_config *mif;
-       char miffile[256];
-       char fn[256];
-       char callerid[512];
-       char ext_context[256]="";
        int res = 0, cmd = 0;
        struct ast_vm_user *receiver = NULL, *extensions = NULL, *vmtmp = NULL, *vmfree;
-       char tmp[256];
        char *stringp, *s;
        int saved_messages = 0, found = 0;
        int valid_extensions = 0;
@@ -3523,74 +3513,7 @@ static int forward_message(struct ast_channel *chan, char *context, char *dir, i
                cmd = vm_forwardoptions(chan, sender, dir, curmsg, vmfmts, context, record_gain);
                if (!cmd) {
                        while (!res && vmtmp) {
-                               /* 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_log(LOG_DEBUG, "%s", sys);
-                               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_log(LOG_DEBUG, "%s", sys);
-                                       ast_safe_system(sys);
-                               }
-                               snprintf(sys, sizeof(sys), "cp %s/msg%04d.txt %s/msg%04d.txt\n", dir, curmsg, todir, todircount);
-                               ast_log(LOG_DEBUG, "%s", sys);
-                               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))) {
-       
-                                       /* 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;
-                                               sendmail(myserveremail, vmtmp, todircount, vmtmp->context, vmtmp->mailbox, chan->cid.cid_num, chan->cid.cid_name, fn, tmp, duration, attach_user_voicemail);
-                                       }
-
-                                       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);
-                                       }
-                                 
-                                       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);
        
                                saved_messages++;
                                vmfree = vmtmp;