Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
                }
            }
        }