public void QueueVoicemailEmail(WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, WOSI.CallButler.Data.CallButlerDataset.VoicemailsRow voicemail) { VoicemailData vmData = new VoicemailData(); vmData.Extension = extension; vmData.Voicemail = voicemail; vmMailQueue.Enqueue(vmData); }
public void QueueVoicemailEmail(WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, string subject, string message, string attachmentPath) { VoicemailData vmData = new VoicemailData(); vmData.Extension = extension; vmData.AttachmentPath = attachmentPath; vmData.Message = message; vmData.Subject = subject; vmMailQueue.Enqueue(vmData); }
public void QueueVoicemailEmail(WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, string subject, string message, string attachmentPath) { VoicemailData vmData = new VoicemailData(); vmData.Extension = extension; vmData.AttachmentPath = attachmentPath; vmData.Message = message; vmData.Subject = subject; vmMailQueue.Enqueue(vmData); }
public void QueueVoicemailEmail(WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, WOSI.CallButler.Data.CallButlerDataset.VoicemailsRow voicemail) { VoicemailData vmData = new VoicemailData(); vmData.Extension = extension; vmData.Voicemail = voicemail; vmMailQueue.Enqueue(vmData); }
private void VMQueueTimerProc(object state) { while (vmMailQueue.Count > 0) { try { VoicemailData vmData = vmMailQueue.Dequeue(); if (vmData.Extension != null && vmData.Extension.EmailNotification) { // Create our message stuff string subject = vmData.Subject; if (subject == null) { subject = "You have a voicemail message from "; if (vmData.Voicemail.CallerDisplayName.Length > 0) { subject += vmData.Voicemail.CallerDisplayName; } else if (vmData.Voicemail.CallerUsername.Length > 0) { subject += WOSI.Utilities.StringUtils.FormatPhoneNumber(vmData.Voicemail.CallerUsername); } else { subject += "an unknown caller"; } } string message = vmData.Message; if (message == null) { message = "Date:\t\t" + vmData.Voicemail.Timestamp.ToLongDateString() + "\r\n"; message += "Time:\t\t" + vmData.Voicemail.Timestamp.ToShortTimeString() + "\r\n"; if (vmData.Voicemail.CallerDisplayName.Length > 0) { message += "From:\t\t" + vmData.Voicemail.CallerDisplayName; } else { message += "From:\t\tUnknown Caller"; } message += " - " + WOSI.Utilities.StringUtils.FormatPhoneNumber(vmData.Voicemail.CallerUsername) + "\r\n"; message += "To:\t\t" + vmData.Extension.FirstName + " " + vmData.Extension.LastName; } try { string smtpPassword = ""; if (Properties.Settings.Default.SMTPPassword.Length > 0) { smtpPassword = WOSI.Utilities.CryptoUtils.Decrypt(Properties.Settings.Default.SMTPPassword, WOSI.CallButler.Data.Constants.EncryptionPassword); } string voicemailFilename = vmData.AttachmentPath; if (voicemailFilename == null) { voicemailFilename = WOSI.Utilities.FileUtils.GetApplicationRelativePath(Properties.Settings.Default.VoicemailRootDirectory) + "\\" + vmData.Voicemail.ExtensionID.ToString() + "\\" + vmData.Voicemail.VoicemailID + ".snd"; } if ((vmData.AttachmentPath != null || vmData.Extension.EmailAttachment) && File.Exists(voicemailFilename)) { // Make a copy of our voicemail file string tmpFilename = Path.GetTempPath() + "\\"; string attachmentName = "voicemail.wav"; if (vmData.AttachmentPath != null) { tmpFilename += Path.GetFileName(vmData.AttachmentPath); attachmentName = Path.GetFileName(vmData.AttachmentPath); } else { tmpFilename += vmData.Voicemail.VoicemailID + ".snd"; } File.Copy(voicemailFilename, tmpFilename, true); emailer.SendEmailAsync(Properties.Settings.Default.SMTPEmailFrom, vmData.Extension.EmailAddress, subject, message, Properties.Settings.Default.SMTPServer, Properties.Settings.Default.SMTPPort, Properties.Settings.Default.SMTPUseSSL, Properties.Settings.Default.SMTPUsername, smtpPassword, tmpFilename, attachmentName, tmpFilename); } else { emailer.SendEmailAsync(Properties.Settings.Default.SMTPEmailFrom, vmData.Extension.EmailAddress, subject, message, Properties.Settings.Default.SMTPServer, Properties.Settings.Default.SMTPPort, Properties.Settings.Default.SMTPUseSSL, Properties.Settings.Default.SMTPUsername, smtpPassword, null); } LoggingService.AddLogEntry(WOSI.CallButler.ManagementInterface.LogLevel.Extended, string.Format("Voicemail Email sent to: {0}", vmData.Extension.EmailAddress), false); } catch (Exception e) { throw e; } } } catch (Exception e) { LoggingService.AddLogEntry(WOSI.CallButler.ManagementInterface.LogLevel.ErrorsOnly, Utils.ErrorUtils.FormatErrorString(e), true); } } }