|
|
|
@ -89,8 +89,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef IMAP_STORAGE
|
|
|
|
|
char *curhst = NIL; /* currently connected host */
|
|
|
|
|
char *curusr = NIL; /* current login user */
|
|
|
|
|
char *curhst = NIL;/* currently connected host */
|
|
|
|
|
char *curusr = NIL;/* current login user */
|
|
|
|
|
|
|
|
|
|
char temp[1024];
|
|
|
|
|
|
|
|
|
@ -1997,7 +1997,6 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *c
|
|
|
|
|
fprintf(p, "Content-Transfer-Encoding: base64\n");
|
|
|
|
|
fprintf(p, "Content-Description: Voicemail sound attachment.\n");
|
|
|
|
|
fprintf(p, "Content-Disposition: attachment; filename=\"msg%04d.gsm\"\n\n", msgnum);
|
|
|
|
|
|
|
|
|
|
snprintf(fname, sizeof(fname), "%s.gsm", attach);
|
|
|
|
|
base_encode(fname, p);
|
|
|
|
|
}
|
|
|
|
@ -4349,19 +4348,43 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
|
|
|
|
|
|
|
|
|
|
/* Get info from headers!! */
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Caller-ID-Num:");
|
|
|
|
|
if (temp != NULL) strcpy(cid,temp); else cid[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(cid,temp);
|
|
|
|
|
else
|
|
|
|
|
cid[0] = '\0';
|
|
|
|
|
|
|
|
|
|
ast_log (LOG_DEBUG,"Caller id was set to: %s\n",cid);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Context:");
|
|
|
|
|
if (temp != NULL) strcpy(context,temp); else context[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(context,temp);
|
|
|
|
|
else
|
|
|
|
|
context[0] = '\0';
|
|
|
|
|
|
|
|
|
|
ast_log (LOG_DEBUG,"Context was set to: %s\n",context);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Orig-time:");
|
|
|
|
|
if (temp != NULL) strcpy(origtime,temp); else origtime[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(origtime,temp);
|
|
|
|
|
else
|
|
|
|
|
origtime[0] = '\0';
|
|
|
|
|
|
|
|
|
|
ast_log (LOG_DEBUG,"Orig time was set to: %s\n",origtime);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Duration:");
|
|
|
|
|
if (temp != NULL) strcpy(duration,temp); else duration[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(duration,temp);
|
|
|
|
|
else
|
|
|
|
|
duration[0] = '\0';
|
|
|
|
|
|
|
|
|
|
ast_log (LOG_DEBUG,"Duration was set to: %s\n",duration);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Category:");
|
|
|
|
|
if (temp != NULL) strcpy(category,temp); else category[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(category,temp);
|
|
|
|
|
else
|
|
|
|
|
category[0] = '\0';
|
|
|
|
|
ast_log (LOG_DEBUG,"Category was set to: %s\n",category);
|
|
|
|
|
|
|
|
|
|
/*if (!strncasecmp("macro",context,5)) Macro names in contexts are useless for our needs */
|
|
|
|
@ -6482,7 +6505,7 @@ out:
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/* before we delete the state, we should copy pertainent info
|
|
|
|
|
back to the persistent model */
|
|
|
|
|
* back to the persistent model */
|
|
|
|
|
vmstate_delete(&vms);
|
|
|
|
|
#endif
|
|
|
|
|
if (vmu)
|
|
|
|
@ -7472,15 +7495,30 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s
|
|
|
|
|
|
|
|
|
|
/* Get info from headers!! */
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Caller-ID-Num:");
|
|
|
|
|
if (temp != NULL) strcpy(cidS,temp); else cidS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(cidS,temp);
|
|
|
|
|
else
|
|
|
|
|
cidS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
cid = &cidS[0];
|
|
|
|
|
ast_log (LOG_DEBUG,"Caller id was set to: %s\n",cid);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Context:");
|
|
|
|
|
if (temp != NULL) strcpy(contextS,temp); else contextS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(contextS,temp);
|
|
|
|
|
else
|
|
|
|
|
contextS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
context = &contextS[0];
|
|
|
|
|
ast_log (LOG_DEBUG,"Context was set to: %s\n",context);
|
|
|
|
|
temp = get_header_by_tag(header_content, "X-Asterisk-VM-Orig-time:");
|
|
|
|
|
if (temp != NULL) strcpy(origtimeS,temp); else origtimeS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
if (temp != NULL)
|
|
|
|
|
strcpy(origtimeS,temp);
|
|
|
|
|
else
|
|
|
|
|
origtimeS[0] = '\0';
|
|
|
|
|
|
|
|
|
|
origtime = &origtimeS[0];
|
|
|
|
|
ast_log (LOG_DEBUG,"Orig time was set to: %s\n",origtime);
|
|
|
|
|
|
|
|
|
@ -8490,7 +8528,6 @@ static void set_update(MAILSTREAM * stream)
|
|
|
|
|
|
|
|
|
|
mailbox = stream->mailbox;
|
|
|
|
|
user = get_user_by_mailbox(mailbox);
|
|
|
|
|
|
|
|
|
|
vms = get_vm_state_by_imapuser(user, 0);
|
|
|
|
|
if (vms != NULL) {
|
|
|
|
|
ast_log (LOG_DEBUG, "User %s mailbox set for update.\n",user);
|
|
|
|
|