コード例 #1
0
        public void LoadData(WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions, CallButlerDataset.ExtensionsRow extension, CallButlerDataset.ExtensionContactNumbersDataTable extensionContactTable)
        {
            this.extensions = extensions;
            this.extension = extension;
            ExtensionContactTable = extensionContactTable;

            pnlFlow.Controls.Clear();

            // Create our voicemail shape
            VoicemailDiagramShape vds = new VoicemailDiagramShape();
            vds.Dock = DockStyle.Top;
            pnlFlow.Controls.Add(vds);

            WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow[] contactRows = (WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow[])ExtensionContactTable.Select("ExtensionID = '" + extension.ExtensionID + "'", "Priority ASC");

            foreach (WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow contactRow in contactRows)
            {
                AddContactControl(extensions, contactRow, false);
            }

            cbCallBlast.Checked = extension.UseCallBlast;

            UpdateCallBlast();
        }
コード例 #2
0
        public void PersistVoicemail(CallButlerAuthInfo authInfo, CallButlerDataset.VoicemailsDataTable voicemail)
        {
            if (Authenticate(authInfo) && IsDataValid(authInfo, voicemail))
            {
                List<Guid> extensions = new List<Guid>();

                foreach (CallButlerDataset.VoicemailsRow vRow in voicemail)
                {
                    if (vRow.RowState != DataRowState.Deleted)
                    {
                        dataProvider.PersistVoicemail(vRow);
                        extensions.Add(vRow.ExtensionID);
                    }
                }

                // Send a message waiting notification to our PBX phone
                if (registrarService != null)
                {
                    foreach (Guid extensionID in extensions)
                    {
                        registrarService.SendMessageWaitingNotification(extensionID);
                    }
                }
            }
        }
コード例 #3
0
        public void PersistVoicemailSound(CallButlerAuthInfo authInfo, Guid extensionID, CallButlerDataset.ExtensionsDataTable extensions, byte[] soundBytes)
        {
            if (Authenticate(authInfo))
            {
                CallButlerDataset.ExtensionsDataTable extensionTable = GetExtension(authInfo, extensionID);

                if (extensionTable.Rows.Count > 0)
                {
                    CallButlerDataset.ExtensionsRow extensionRow = (CallButlerDataset.ExtensionsRow)extensionTable.Rows[0];
                    string username = extensionRow.FirstName + " " + extensionRow.LastName;
                    string vmDirectory = WOSI.Utilities.FileUtils.GetApplicationRelativePath(Properties.Settings.Default.VoicemailRootDirectory);

                    if (!Directory.Exists(vmDirectory))
                        Directory.CreateDirectory(vmDirectory);

                    string fmt = "{0}\\{1}\\{2}.snd";

                    CallButlerDataset.VoicemailsDataTable voicemailTable = new CallButlerDataset.VoicemailsDataTable();

                    foreach (CallButlerDataset.ExtensionsRow extRow in extensions.Rows)
                    {
                        Guid voicemailID = Guid.NewGuid();
                        string vmFileName = String.Format(fmt, vmDirectory, extRow.ExtensionID, voicemailID);
                        WOSI.Utilities.FileUtils.SaveBytesToFile(vmFileName, soundBytes);

                        CallButlerDataset.VoicemailsRow row = voicemailTable.NewVoicemailsRow();

                        row.CallerDisplayName = username;
                        row.CallerHost = Services.PrivateLabelService.ReplaceProductName("CallButler");
                        row.CallerUsername = extensionRow.ExtensionNumber.ToString();
                        row.ExtensionID = extRow.ExtensionID;
                        row.IsNew = true;
                        row.Timestamp = System.DateTime.Now;
                        row.VoicemailID = voicemailID;

                        voicemailTable.Rows.Add(row);
                    }

                    PersistVoicemail(authInfo, voicemailTable);
                }
            }
        }
コード例 #4
0
        public void PersistProviders(CallButlerAuthInfo authInfo, CallButlerDataset.ProvidersDataTable providers)
        {
            if (Authenticate(authInfo) && IsDataValid(authInfo, providers))
            {
                foreach (CallButlerDataset.ProvidersRow row in providers)
                {
                    if (row.RowState != DataRowState.Deleted)
                    {
                        dataProvider.PersistProvider(row);

                        // Register our provider
                        telecomProvider.Register(row.ProviderID, row);
                    }
                }
            }
        }
コード例 #5
0
 public void PersistScriptSchedule(CallButlerAuthInfo authInfo, CallButlerDataset.ScriptSchedulesDataTable scriptSchedules)
 {
     if (Authenticate(authInfo) && IsDataValid(authInfo, scriptSchedules))
     {
         foreach (WOSI.CallButler.Data.CallButlerDataset.ScriptSchedulesRow sRow in scriptSchedules)
         {
             if (sRow.RowState != DataRowState.Deleted)
             {
                 dataProvider.PersistScriptSchedule(authInfo.CustomerID, sRow);
             }
         }
     }
 }
コード例 #6
0
 public void PersistPersonalizedGreeting(CallButlerAuthInfo authInfo, CallButlerDataset.PersonalizedGreetingsDataTable personalizedGreeting)
 {
     if (Authenticate(authInfo) && IsDataValid(authInfo, personalizedGreeting))
     {
         foreach (CallButlerDataset.PersonalizedGreetingsRow row in personalizedGreeting)
         {
             if (row.RowState != DataRowState.Deleted)
             {
                 dataProvider.PersistPersonalizedGreeting(row);
             }
         }
     }
 }
コード例 #7
0
        public void PersistDepartment(CallButlerAuthInfo authInfo, CallButlerDataset.DepartmentsDataTable department)
        {
            if (Authenticate(authInfo) && IsDataValid(authInfo, department))
            {
                foreach (WOSI.CallButler.Data.CallButlerDataset.DepartmentsRow departmentRow in department)
                {
                    if (departmentRow.RowState != DataRowState.Deleted)
                    {
                        bool added = dataProvider.PersistDepartment(departmentRow);

                        if (!added)
                        {
                            // If this department is not a greeting department, make sure we delete any greetings that may have been associated with it
                            if (departmentRow.Type != (short)WOSI.CallButler.Data.DepartmentTypes.Greeting)
                                DeleteGreeting(authInfo, departmentRow.DepartmentID);
                        }
                    }
                }
            }
        }
コード例 #8
0
ファイル: ProvidersView.cs プロジェクト: hostitherepc/Fork-1
 private void SaveProviderRow( CallButlerDataset.ProvidersRow row )
 {
     CallButlerDataset.ProvidersDataTable providerDataTable = Utils.TableUtils<CallButlerDataset.ProvidersDataTable>.CreateTableFromRow(row);
      ManagementInterfaceClient.ManagementInterface.PersistProviders(ManagementInterfaceClient.AuthInfo, providerDataTable);
 }
コード例 #9
0
ファイル: ProvidersView.cs プロジェクト: hostitherepc/Fork-1
        private void EditProvider(CallButlerDataset.ProvidersRow provider)
        {
            // Get the provider editor plugin
            CallButler.Manager.Plugin.CallButlerManagementProviderPlugin providerPlugin = (CallButler.Manager.Plugin.CallButlerManagementProviderPlugin)PluginManager.GetPluginFromID(new Guid(Properties.Settings.Default.DefaultVoIPProviderPluginID));

            /*try
            {
                // Check to see if this provider uses a different plugin
                if(provider.PluginID != null && provider.PluginID.Length > 0)
                    providerPlugin = (CallButler.Manager.Plugin.CallButlerManagementProviderPlugin)PluginManager.GetPluginFromID(new Guid(provider.PluginID));
            }
            catch
            {
            }*/

            if (providerPlugin != null)
            {
                // Copy our provider row into our provider data
                CallButler.Manager.Plugin.ProviderData providerData = new CallButler.Manager.Plugin.ProviderData();

                if (provider.AuthPassword != null && provider.AuthPassword.Length > 0)
                    providerData.AuthPassword = WOSI.Utilities.CryptoUtils.Decrypt(provider.AuthPassword, WOSI.CallButler.Data.Constants.EncryptionPassword);

                providerData.AuthUsername = provider.AuthUsername;
                providerData.DisplayName = provider.DisplayName;
                providerData.Domain = provider.Domain;
                providerData.EnableRegistration = provider.EnableRegistration;
                providerData.Expires = provider.Expires;
                providerData.ExtraData = provider.ExtraData;
                providerData.IsEnabled = provider.IsEnabled;
                providerData.Name = provider.Name;
                providerData.SIPProxy = provider.SIPProxy;
                providerData.SIPRegistrar = provider.SIPRegistrar;
                providerData.Username = provider.Username;
                providerData.SupressOutboundUsername = provider.SupressOutboundUsername;
                providerData.OutboundUsernamePrefix = provider.OutboundUsernamePrefix;

                // Edit the data
                providerData = providerPlugin.EditProvider(providerData);

                if (providerData != null)
                {
                    // Copy the data back into our provider row
                    if (providerData.AuthPassword != null && providerData.AuthPassword.Length > 0)
                        provider.AuthPassword = WOSI.Utilities.CryptoUtils.Encrypt(providerData.AuthPassword, WOSI.CallButler.Data.Constants.EncryptionPassword);

                    provider.AuthUsername = providerData.AuthUsername;
                    provider.DisplayName = providerData.DisplayName;
                    provider.Domain = providerData.Domain;
                    provider.EnableRegistration = providerData.EnableRegistration;
                    provider.Expires = providerData.Expires;
                    provider.ExtraData = providerData.ExtraData;
                    provider.IsEnabled = providerData.IsEnabled;
                    provider.Name = providerData.Name;
                    provider.SIPProxy = providerData.SIPProxy;
                    provider.SIPRegistrar = providerData.SIPRegistrar;
                    provider.Username = providerData.Username;
                    provider.SupressOutboundUsername = providerData.SupressOutboundUsername;
                    provider.OutboundUsernamePrefix = providerData.OutboundUsernamePrefix;

                    SaveProviderRow(provider);
                    LoadData();
                }
            }
        }
コード例 #10
0
ファイル: ProvidersView.cs プロジェクト: hostitherepc/Fork-1
 private void DeleteProvider(CallButlerDataset.ProvidersRow provider)
 {
     Guid providerID = provider.ProviderID;
     callButlerDataset.Providers.RemoveProvidersRow(provider);
     ManagementInterfaceClient.ManagementInterface.DeleteProvider(ManagementInterfaceClient.AuthInfo, providerID);
 }