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(); }
private void btnHeadStart_Click(object sender, EventArgs e) { Forms.PrebuiltConfigForm pbForm = new CallButler.Manager.Forms.PrebuiltConfigForm(); if (pbForm.ShowDialog(this) == DialogResult.OK) { WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions = new WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable(); extensions.Merge(pbForm.ConfigurationData.Extensions); ManagementInterfaceClient.ManagementInterface.PersistExtension(ManagementInterfaceClient.AuthInfo, extensions); WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable contactNumbers = new WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable(); contactNumbers.Merge(pbForm.ConfigurationData.ExtensionContactNumbers); ManagementInterfaceClient.ManagementInterface.PersistExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, contactNumbers); ManagementInterfaceClient.ManagementInterface.PersistDepartment(ManagementInterfaceClient.AuthInfo, pbForm.ConfigurationData.Departments); WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsDataTable lgTable = new WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsDataTable(); // Persist our greeting sounds foreach (WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsRow lgRow in pbForm.ConfigurationData.LocalizedGreetings) { lgTable.Clear(); lgTable.ImportRow(lgRow); ManagementInterfaceClient.ManagementInterface.PersistLocalizedGreeting(ManagementInterfaceClient.AuthInfo, lgTable); Utils.GreetingUtils.PersistLocalizedGreetingSound(lgRow); } ManagementInterfaceClient.ManagementInterface.PersistPersonalizedGreeting(ManagementInterfaceClient.AuthInfo, pbForm.ConfigurationData.PersonalizedGreetings); ManagementInterfaceClient.ManagementInterface.PersistProviders(ManagementInterfaceClient.AuthInfo, pbForm.ConfigurationData.Providers); ManagementInterfaceClient.ManagementInterface.PersistScriptSchedule(ManagementInterfaceClient.AuthInfo, pbForm.ConfigurationData.ScriptSchedules); // Send us back to the try it now page Wizard.NextTo(pgTest); } }
private void AddContactControl(WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions, WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow contactRow, bool scrollIntoView) { // Create our contact number shape FindMeNumberDiagramShape fmd = new FindMeNumberDiagramShape(extensions, contactRow); fmd.Dock = DockStyle.Top; fmd.NumberType = numberType; fmd.UsingCallBlast = cbCallBlast.Checked; fmd.EnableCallIPPhone = enableCallIPPhone; fmd.Visible = false; fmd.DeletePressed += new EventHandler(fmd_DeletePressed); fmd.MoveDownPressed += new EventHandler(fmd_MoveDownPressed); fmd.MoveUpPressed += new EventHandler(fmd_MoveUpPressed); fmd.SizeChanged += new EventHandler(fmd_SizeChanged); pnlFlow.Controls.Add(fmd); pnlFlow.Controls.SetChildIndex(fmd, 1); fmd.Visible = true; if (scrollIntoView) { fmd.Expanded = true; //pnlFlow.ScrollControlIntoView(fmd); //pnlFlow.AutoScrollPosition = new Point(pnlFlow.AutoScrollPosition.X, fmd.Top); } }
private void EditExtension(WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension) { short currentExt = extension.ExtensionNumber; // Get our extension contact numbers WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable contactNumbersTable = ManagementInterfaceClient.ManagementInterface.GetExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, extension.ExtensionID); // Get our extension greeting WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsDataTable voicemailGreetings = ManagementInterfaceClient.ManagementInterface.GetLocalizedGreeting(ManagementInterfaceClient.AuthInfo, extension.ExtensionID, ManagementInterfaceClient.ManagementInterface.GetDefaultLanguage(ManagementInterfaceClient.AuthInfo)); WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsRow voicemailGreeting = null; if (voicemailGreetings.Count > 0) { voicemailGreeting = voicemailGreetings[0]; // Download our greeting sound if it exists Utils.GreetingUtils.GetLocalizedGreetingSound(voicemailGreeting); } else { // If the greeting doesn't exist, create a new one voicemailGreeting = voicemailGreetings.NewLocalizedGreetingsRow(); voicemailGreeting.GreetingID = extension.ExtensionID; voicemailGreeting.LocalizedGreetingID = Guid.NewGuid(); voicemailGreeting.LanguageID = ManagementInterfaceClient.ManagementInterface.GetDefaultLanguage(ManagementInterfaceClient.AuthInfo); voicemailGreeting.Type = (short)WOSI.CallButler.Data.GreetingType.SoundGreeting; voicemailGreetings.AddLocalizedGreetingsRow(voicemailGreeting); } WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable origExt = (WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable)callButlerDataset.Extensions.Copy(); // Show our extension editor form Forms.ExtensionEditorForm extensionForm = new CallButler.Manager.Forms.ExtensionEditorForm(callButlerDataset.Extensions, extension, contactNumbersTable, voicemailGreeting); if (extensionForm.ShowDialog(this) == DialogResult.OK) { // Check to make sure the extension isn't already taken if (currentExt != extension.ExtensionNumber && origExt.Select("ExtensionNumber = " + extension.ExtensionNumber).Length > 0) { MessageBox.Show(this, String.Format(CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.ExtensionView_ExtTaken), extension.ExtensionNumber, currentExt), CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.ExtensionView_ExtConflict), MessageBoxButtons.OK, MessageBoxIcon.Warning); extension.ExtensionNumber = currentExt; } // Edit our remote extension WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensionDataTable = Utils.TableUtils <WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable> .CreateTableFromRow(extension); ManagementInterfaceClient.ManagementInterface.PersistExtension(ManagementInterfaceClient.AuthInfo, extensionDataTable); // Edit our remote greeting ManagementInterfaceClient.ManagementInterface.PersistLocalizedGreeting(ManagementInterfaceClient.AuthInfo, voicemailGreetings); // Send our voicemail greeting sound file Utils.GreetingUtils.PersistLocalizedGreetingSound(voicemailGreeting); ManagementInterfaceClient.ManagementInterface.PersistExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, contactNumbersTable); } }
public WOSI.CallButler.Data.CallButlerPhoneStatusDataset GetPhoneStatus() { WOSI.CallButler.Data.CallButlerPhoneStatusDataset psData = new WOSI.CallButler.Data.CallButlerPhoneStatusDataset(); WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions = dataProvider.GetExtensions(Properties.Settings.Default.CustomerID); // Loop through each extension and get a status for it foreach (WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension in extensions) { WOSI.CallButler.Data.CallButlerPhoneStatusDataset.PhoneStatusRow statusRow = psData.PhoneStatus.NewPhoneStatusRow(); PBXPresenceInfo[] presenceInfo = GetPresenceInfoForExtension(extension.ExtensionNumber); statusRow.ExtensionID = extension.ExtensionID; statusRow.ExtensionNumber = extension.ExtensionNumber; statusRow.FirstName = extension.FirstName; statusRow.LastName = extension.LastName; statusRow.StatusCode = (int)WOSI.CallButler.Data.PhoneExtensionStatus.Offline; if (presenceInfo != null && presenceInfo.Length > 0) { foreach (PBXPresenceInfo tmpPInfo in presenceInfo) { if (tmpPInfo.Status != PBXPresenceStatus.Offline) { statusRow.StatusCode = (int)WOSI.CallButler.Data.PhoneExtensionStatus.Online; statusRow.RemoteAddress += tmpPInfo.RemoteAddress + " "; break; } } statusRow.RemoteAddress = statusRow.RemoteAddress.Trim(); } psData.PhoneStatus.AddPhoneStatusRow(statusRow); } return(psData); }
protected override void OnExternalCommand(string command, string commandData, string eventToken, TelecomScriptInterface tsInterface, CallButler.Telecom.TelecomProviderBase telecomProvider, WOSI.CallButler.Data.DataProviders.CallButlerDataProviderBase dataProvider) { // Parse out our external event action if (Enum.IsDefined(typeof(StandardExternalCommands), command)) { StandardExternalCommands externalCommand = WOSI.Utilities.EnumUtils <StandardExternalCommands> .Parse(command); switch (externalCommand) { case StandardExternalCommands.CALLBUTLERINTERNAL_ChooseLanguage: { if (!Properties.Settings.Default.Multilingual) { tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_NotMultilingual.ToString()); } else { tsInterface.IMLInterpreter.SignalEventCallback(eventToken); } break; } case StandardExternalCommands.CALLBUTLERINTERNAL_SetLanguageID: { List <string> languages = new List <string>(); languages.Add(Properties.Settings.Default.DefaultLanguage); languages.AddRange(Properties.Settings.Default.Languages.Split(';')); int languageNumber = Convert.ToInt32(commandData); if (languageNumber > 0 && languageNumber <= languages.Count) { // Set our language ID variable tsInterface.IMLInterpreter.SetLocalVariable("LanguageID", languages[languageNumber - 1]); tsInterface.IMLInterpreter.SignalEventCallback(eventToken); } else { tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_InvalidLanguage.ToString()); } break; } case StandardExternalCommands.CALLBUTLERINTERNAL_ProcessMainMenuOption: { WOSI.CallButler.Data.CallButlerDataset.DepartmentsDataTable departments = dataProvider.GetDepartments(Properties.Settings.Default.CustomerID); WOSI.CallButler.Data.CallButlerDataset.DepartmentsRow[] choosenDepartments = (WOSI.CallButler.Data.CallButlerDataset.DepartmentsRow[])departments.Select("OptionNumber = " + commandData); if (choosenDepartments.Length > 0) { WOSI.CallButler.Data.CallButlerDataset.DepartmentsRow choosenDepartment = choosenDepartments[0]; switch (choosenDepartment.Type) { case (short)WOSI.CallButler.Data.DepartmentTypes.Greeting: tsInterface.IMLInterpreter.SetLocalVariable("MainMenuOptionGreetingID", choosenDepartment.DepartmentID.ToString()); tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_GreetingMenuOption.ToString()); break; case (short)WOSI.CallButler.Data.DepartmentTypes.Extension: // Find our extension number try { WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = dataProvider.GetExtension(Properties.Settings.Default.CustomerID, new Guid(choosenDepartment.Data1)); if (extension != null) { tsInterface.IMLInterpreter.SetLocalVariable("Extension", extension.ExtensionNumber.ToString()); } } catch { } tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_ExtensionMenuOption.ToString()); break; case (short)WOSI.CallButler.Data.DepartmentTypes.Script: tsInterface.IMLInterpreter.SetLocalVariable("CustomScriptPath", choosenDepartment.Data1); tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_ScriptMenuOption.ToString()); break; case (short)WOSI.CallButler.Data.DepartmentTypes.Number: tsInterface.IMLInterpreter.SetLocalVariable("TransferToNumber", choosenDepartment.Data1); tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_NumberTransferMenuOption.ToString()); break; case (short)WOSI.CallButler.Data.DepartmentTypes.Module: tsInterface.IMLInterpreter.SetLocalVariable("AddonModuleID", choosenDepartment.Data1); tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_AddonModuleMenuOption.ToString()); break; } } else { tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_InvalidMenuOption.ToString()); } break; } case StandardExternalCommands.CALLBUTLERINTERNAL_DialByNameSearch: // Find our extensions for this search string WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions = dataProvider.GetExtensions(Properties.Settings.Default.CustomerID); WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow[] matchingExtensions = (WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow[])extensions.Select("SearchNumber LIKE '" + commandData + "*' AND EnableSearch = True"); // Get our extension search index int searchIndex = Convert.ToInt32(tsInterface.IMLInterpreter.GetLocalVariable("ExtensionSearchIndex")); searchIndex++; if (matchingExtensions.Length > 0 && searchIndex < matchingExtensions.Length) { tsInterface.IMLInterpreter.SetLocalVariable("Extension", matchingExtensions[searchIndex].ExtensionNumber.ToString()); tsInterface.IMLInterpreter.SetLocalVariable("ExtensionName", matchingExtensions[searchIndex].FirstName + " " + matchingExtensions[searchIndex].LastName); tsInterface.IMLInterpreter.SetLocalVariable("ExtensionSearchIndex", searchIndex.ToString()); } else { tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_ExtensionNotFound.ToString()); } tsInterface.IMLInterpreter.SignalEventCallback(eventToken); break; case StandardExternalCommands.CALLBUTLERINTERNAL_VoicemailManagement: { try { WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = dataProvider.GetExtensionNumber(Properties.Settings.Default.CustomerID, Convert.ToInt32(tsInterface.IMLInterpreter.GetLocalVariable("Extension"))); if (extension != null) { tsInterface.ScriptProcessor = new VoicemailManagementScriptProcessor(extension, pbxRegistrar); tsInterface.ScriptProcessor.StartProcessing(tsInterface, telecomProvider, dataProvider); break; } } catch { } tsInterface.IMLInterpreter.SignalTransferFailure(); break; } /*case StandardExternalCommands.CALLBUTLERINTERNAL_StartAddonModule: * { * CallButler.Service.Plugin.CallButlerAddonModulePlugin[] addonModules = pluginManager.GetAllPluginsOfType<CallButler.Service.Plugin.CallButlerAddonModulePlugin>(); * * foreach (CallButler.Service.Plugin.CallButlerAddonModulePlugin addonModule in addonModules) * { * if (addonModule.PluginID.ToString() == commandData) * { * try * { * // Make sure the module is licensed * if (!addonModule.IsLicensed) * break; * * // We found our module and we should load the script it uses * tsInterface.ScriptProcessor = new AddonModuleScriptProcessor(addonModule); * tsInterface.ScriptProcessor.StartProcessing(tsInterface, telecomProvider, dataProvider); * return; * * } * catch (Exception e) * { * LoggingService.AddLogEntry(WOSI.CallButler.ManagementInterface.LogLevel.ErrorsOnly, "Failed to load Addon-Module '" + addonModule.PluginName + "'\r\n\r\n" + e.Message + "\r\n\r\n" + e.StackTrace, true); * } * } * } * * tsInterface.ScriptProcessor = this; * tsInterface.IMLInterpreter.SignalExternalEvent(StandardExternalEvents.CALLBUTLERINTERNAL_AddonModuleFailed.ToString()); * * break; * }*/ } } }
internal void AddNewExtension() { // Check to make sure we can add a new extension int maxExtensions = 100; if (maxExtensions > 0 && maxExtensions <= callButlerDataset.Extensions.Count) { MessageBox.Show(this, String.Format(CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.ExtensionsView_ExtLimit), maxExtensions), CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_PermissionDenied), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // Create a new Extension row WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = callButlerDataset.Extensions.NewExtensionsRow(); extension.CustomerID = Properties.Settings.Default.CustomerID; extension.ExtensionID = Guid.NewGuid(); short extensionNum = 0; // Find us an unused extension number for (short index = Properties.Settings.Default.MinExtensionNumber; index < short.MaxValue; index++) { if (callButlerDataset.Extensions.Select("ExtensionNumber = " + index).Length == 0) { extensionNum = index; extension.ExtensionNumber = index; break; } } // Create a new voicemail greeting WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsDataTable voicemailGreetingTable = new WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsDataTable(); WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsRow voicemailGreeting = voicemailGreetingTable.NewLocalizedGreetingsRow(); voicemailGreeting.GreetingID = extension.ExtensionID; voicemailGreeting.LocalizedGreetingID = Guid.NewGuid(); voicemailGreeting.LanguageID = ManagementInterfaceClient.ManagementInterface.GetDefaultLanguage(ManagementInterfaceClient.AuthInfo); voicemailGreeting.Type = (short)WOSI.CallButler.Data.GreetingType.SoundGreeting; voicemailGreetingTable.AddLocalizedGreetingsRow(voicemailGreeting); // Create a new extension contact numbers table WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable extensionContactNumbers = new WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable(); // Show our extension editor form Forms.ExtensionEditorForm extensionForm = new CallButler.Manager.Forms.ExtensionEditorForm(callButlerDataset.Extensions, extension, extensionContactNumbers, voicemailGreeting); WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable origExt = (WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable)callButlerDataset.Extensions.Copy(); if (extensionForm.ShowDialog(this) == DialogResult.OK) { // Check to make sure the extension isn't already taken if (origExt.Select("ExtensionNumber = " + extension.ExtensionNumber).Length > 0) { MessageBox.Show(this, String.Format(CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.ExtensionView_ExtTaken), extension.ExtensionNumber, extensionNum), CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.ExtensionView_ExtConflict), MessageBoxButtons.OK, MessageBoxIcon.Warning); extension.ExtensionNumber = extensionNum; } // Add our local extension callButlerDataset.Extensions.AddExtensionsRow(extension); // Add our remote extension WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensionDataTable = Utils.TableUtils <WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable> .CreateTableFromRow(extension); ManagementInterfaceClient.ManagementInterface.PersistExtension(ManagementInterfaceClient.AuthInfo, extensionDataTable); // Add our voicemail greeting ManagementInterfaceClient.ManagementInterface.PersistLocalizedGreeting(ManagementInterfaceClient.AuthInfo, voicemailGreetingTable); // Send our voicemail greeting sound file Utils.GreetingUtils.PersistLocalizedGreetingSound(voicemailGreeting); // Persist our contact numbers ManagementInterfaceClient.ManagementInterface.PersistExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, extensionContactNumbers); } }
public ExtensionEditorForm(WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions, WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable extensionContacts, WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsRow voicemailGreeting) { InitializeComponent(); this.extensions = extensions; this.extension = extension; this.extensionContacts = extensionContacts; CallButler.Manager.Plugin.CallButlerManagementPlugin plugin = PluginManager.GetPluginFromID(new Guid(Properties.Settings.Default.DefaultFindMePluginID)); if (plugin != null) { CallButler.Manager.Plugin.CallButlerManagementPluginViewControl c = plugin.GetNewViewControl(); c.Load(new object[] { extension, extensionContacts, ManagementInterfaceClient.ManagementInterface.TelephoneNumberDescription, true, true, extensions }); c.Dock = DockStyle.Fill; pnlFindMe.Controls.Add(c); } else { NoPluginFoundView c = new NoPluginFoundView(); c.PluginType = "Find me/Follow me plugin"; c.Dock = DockStyle.Fill; pnlFindMe.Controls.Add(c); } wizard.PageIndex = 0; // Update our UI numExtNum.Value = extension.ExtensionNumber; txtFirstName.Text = extension.FirstName; txtLastName.Text = extension.LastName; cbEnableSearch.Checked = extension.EnableSearch; cbEnableManagement.Checked = extension.EnableManagement; cbEmailNotification.Checked = extension.EmailNotification; cbAttach.Checked = extension.EmailAttachment; txtEmailAddress.Text = extension.EmailAddress; cbCallScreening.Checked = extension.EnableCallScreening; cbEnableOutbound.Checked = extension.EnableOutboundCalls; if (!extension.IsUseConferenceTransferNull()) cbHandOff.Checked = !extension.UseConferenceTransfer; else cbHandOff.Checked = true; greetingControl.LoadGreeting(voicemailGreeting, WOSI.Utilities.FileUtils.GetApplicationRelativePath(Properties.Settings.Default.GreetingsSoundCache)); if (!extension.IsPasswordNull() && extension.Password.Length > 0) { txtPassword.Text = blankPassword; txtConfirmPassword.Text = blankPassword; } if (!extension.IsPBXPasswordNull() && extension.PBXPassword.Length > 0) { txtPBXPassword.Text = blankPassword; txtConfirmPBXPassword.Text = blankPassword; } txtFirstName.Select(); btnImportOutlook.Enabled = Utilities.ContactManagement.ContactManagerFactory.CreateContactManager(Utilities.ContactManagement.ContactType.Outlook).IsInstalled; loading = false; greetingControl.LoadVoices(ManagementInterfaceClient.ManagementInterface.GetTTSVoices()); pgFindme.Enabled = true; pnlHandoff.Visible = true; pnlPBXPassword.Visible = true; Utils.PrivateLabelUtils.ReplaceProductNameControl(this); }
public ExtensionEditorForm(WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions, WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension, WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable extensionContacts, WOSI.CallButler.Data.CallButlerDataset.LocalizedGreetingsRow voicemailGreeting) { InitializeComponent(); this.extensions = extensions; this.extension = extension; this.extensionContacts = extensionContacts; CallButler.Manager.Plugin.CallButlerManagementPlugin plugin = PluginManager.GetPluginFromID(new Guid(Properties.Settings.Default.DefaultFindMePluginID)); if (plugin != null) { CallButler.Manager.Plugin.CallButlerManagementPluginViewControl c = plugin.GetNewViewControl(); c.Load(new object[] { extension, extensionContacts, ManagementInterfaceClient.ManagementInterface.TelephoneNumberDescription, true, true, extensions }); c.Dock = DockStyle.Fill; pnlFindMe.Controls.Add(c); } else { NoPluginFoundView c = new NoPluginFoundView(); c.PluginType = "Find me/Follow me plugin"; c.Dock = DockStyle.Fill; pnlFindMe.Controls.Add(c); } wizard.PageIndex = 0; // Update our UI numExtNum.Value = extension.ExtensionNumber; txtFirstName.Text = extension.FirstName; txtLastName.Text = extension.LastName; cbEnableSearch.Checked = extension.EnableSearch; cbEnableManagement.Checked = extension.EnableManagement; cbEmailNotification.Checked = extension.EmailNotification; cbAttach.Checked = extension.EmailAttachment; txtEmailAddress.Text = extension.EmailAddress; cbCallScreening.Checked = extension.EnableCallScreening; cbEnableOutbound.Checked = extension.EnableOutboundCalls; if (!extension.IsUseConferenceTransferNull()) { cbHandOff.Checked = !extension.UseConferenceTransfer; } else { cbHandOff.Checked = true; } greetingControl.LoadGreeting(voicemailGreeting, WOSI.Utilities.FileUtils.GetApplicationRelativePath(Properties.Settings.Default.GreetingsSoundCache)); if (!extension.IsPasswordNull() && extension.Password.Length > 0) { txtPassword.Text = blankPassword; txtConfirmPassword.Text = blankPassword; } if (!extension.IsPBXPasswordNull() && extension.PBXPassword.Length > 0) { txtPBXPassword.Text = blankPassword; txtConfirmPBXPassword.Text = blankPassword; } txtFirstName.Select(); btnImportOutlook.Enabled = Utilities.ContactManagement.ContactManagerFactory.CreateContactManager(Utilities.ContactManagement.ContactType.Outlook).IsInstalled; loading = false; greetingControl.LoadVoices(ManagementInterfaceClient.ManagementInterface.GetTTSVoices()); pgFindme.Enabled = true; pnlHandoff.Visible = true; pnlPBXPassword.Visible = true; Utils.PrivateLabelUtils.ReplaceProductNameControl(this); }
public FindMeNumberDiagramShape(WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions, WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow contactRow) { this.contactRow = contactRow; this.extensions = extensions; InitializeComponent(); Expanded = false; WOSI.Utilities.TimeUtils timeUtils = new WOSI.Utilities.TimeUtils(); cboTimeZone.DataSource = timeUtils.TimeZones; cboTimeZone.SelectedIndex = timeUtils.CurrentTimeZoneIndex; numTimeout.Value = contactRow.Timeout; cbExtensionHours.Checked = contactRow.HasHoursOfOperation; scheduleControl.DeserializeSelection(contactRow.HoursOfOperation); // For compatibility with old data model if (contactRow.CallPBXPhone) { contactRow.CallPBXPhone = false; SelectIPPhone(); } else { switch ((WOSI.CallButler.Data.ExtensionContactNumberType)contactRow.Type) { case WOSI.CallButler.Data.ExtensionContactNumberType.TelephoneNumber: SelectTelephone(); txtContactNumber.Text = contactRow.ContactNumber; break; case WOSI.CallButler.Data.ExtensionContactNumberType.Extension: SelectExtension(); // Select the proper extension try { Guid extensionID = new Guid(contactRow.ContactNumber); foreach (global::Controls.ListBoxExItem item in cboExtension.Items) { WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = (WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow)item.Tag; if (extension.ExtensionID == extensionID) { cboExtension.SelectedItem = item; } } } catch { } break; case WOSI.CallButler.Data.ExtensionContactNumberType.IPPhone: SelectIPPhone(); txtContactNumber.Text = ""; break; } } // Select the proper time zone if (!contactRow.IsHoursOfOperationUTCOffsetNull()) { int tzIndex = timeUtils.GetTimeZoneIndexFromStandardOffset(contactRow.HoursOfOperationUTCOffset); if (tzIndex >= 0) { cboTimeZone.SelectedIndex = tzIndex; } } loading = false; }
private void Wizard_BeforePageChanged(object sender, global::Controls.Wizard.PageChangedEventArgs e) { switch (Wizard.PageIndex) { case 0: // Validate our Email address if (!System.Text.RegularExpressions.Regex.IsMatch(txtEmail.Text, @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_EnterValidEmail), CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_InvalidEmail), MessageBoxButtons.OK, MessageBoxIcon.Warning); txtEmail.Clear(); txtEmail.Select(); e.Cancel = true; return; } // Validate the user name if (txtName.Text.Length == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_NameRequired), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtName.Select(); e.Cancel = true; return; } // Validate the user name if (txtPhone.Text.Length == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_PhoneNumberRequired), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPhone.Select(); e.Cancel = true; return; } // Validate the country if (cboCountry.SelectedIndex == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_SelectCountry), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; return; } /*if (txtEmail.Text != "*****@*****.**") * { * // Send the registration to our webservice * RegistrationServices.RegistrationService regService = new CallButler.Manager.RegistrationServices.RegistrationService(); * * //Controls.LoadingDialog.ShowDialog(this, Properties.LocalizedStrings.Common_SendingData, Properties.Resources.loading, false, 2000); * * try * { * regService.Register2(txtName.Text, txtEmail.Text, txtCompanyName.Text, ManagementInterfaceClient.ManagementInterface.ProductID, true, cboCountry.Text, txtPhone.Text); * } * catch(Exception exp) * { * } * * //Controls.LoadingDialog.HideDialog(); * }*/ ManagementInterfaceClient.ManagementInterface.IsDownloadRegistered = true; // Create a new default extension if one doesn't exist WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensionDataTable = ManagementInterfaceClient.ManagementInterface.GetExtensionNumber(ManagementInterfaceClient.AuthInfo, 100); if (extensionDataTable == null || extensionDataTable.Count == 0) { // Create a new Extension row extensionDataTable = new WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable(); WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = extensionDataTable.NewExtensionsRow(); extension.CustomerID = Properties.Settings.Default.CustomerID; extension.ExtensionID = Guid.NewGuid(); extension.EmailAddress = txtEmail.Text; extension.EmailAttachment = true; extension.EmailNotification = true; extension.EnableSearch = true; extension.ExtensionNumber = 100; string[] name = txtName.Text.Split(' '); extension.FirstName = name[0]; if (name.Length > 1) { for (int index = 1; index < name.Length; index++) { extension.LastName += name[index] + " "; } } extensionDataTable.AddExtensionsRow(extension); // Persist our extension ManagementInterfaceClient.ManagementInterface.PersistExtension(ManagementInterfaceClient.AuthInfo, extensionDataTable); // Create a new extension contact numbers table WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable extensionContactNumbers = new WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable(); WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow contactNumber = extensionContactNumbers.NewExtensionContactNumbersRow(); contactNumber.ContactNumber = txtPhone.Text; contactNumber.ExtensionContactNumberID = Guid.NewGuid(); contactNumber.ExtensionID = extension.ExtensionID; contactNumber.Timeout = 20; extensionContactNumbers.AddExtensionContactNumbersRow(contactNumber); // Persist our contact numbers ManagementInterfaceClient.ManagementInterface.PersistExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, extensionContactNumbers); } break; } }
private void Wizard_BeforePageChanged(object sender, global::Controls.Wizard.PageChangedEventArgs e) { switch (Wizard.PageIndex) { case 0: // Validate our Email address if (!System.Text.RegularExpressions.Regex.IsMatch(txtEmail.Text, @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_EnterValidEmail), CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_InvalidEmail), MessageBoxButtons.OK, MessageBoxIcon.Warning); txtEmail.Clear(); txtEmail.Select(); e.Cancel = true; return; } // Validate the user name if (txtName.Text.Length == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_NameRequired), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtName.Select(); e.Cancel = true; return; } // Validate the user name if (txtPhone.Text.Length == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_PhoneNumberRequired), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPhone.Select(); e.Cancel = true; return; } // Validate the country if (cboCountry.SelectedIndex == 0) { MessageBox.Show(this, CallButler.Manager.Utils.PrivateLabelUtils.ReplaceProductName(Properties.LocalizedStrings.Common_SelectCountry), "", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; return; } /*if (txtEmail.Text != "*****@*****.**") { // Send the registration to our webservice RegistrationServices.RegistrationService regService = new CallButler.Manager.RegistrationServices.RegistrationService(); //Controls.LoadingDialog.ShowDialog(this, Properties.LocalizedStrings.Common_SendingData, Properties.Resources.loading, false, 2000); try { regService.Register2(txtName.Text, txtEmail.Text, txtCompanyName.Text, ManagementInterfaceClient.ManagementInterface.ProductID, true, cboCountry.Text, txtPhone.Text); } catch(Exception exp) { } //Controls.LoadingDialog.HideDialog(); }*/ ManagementInterfaceClient.ManagementInterface.IsDownloadRegistered = true; // Create a new default extension if one doesn't exist WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensionDataTable = ManagementInterfaceClient.ManagementInterface.GetExtensionNumber(ManagementInterfaceClient.AuthInfo, 100); if (extensionDataTable == null || extensionDataTable.Count == 0) { // Create a new Extension row extensionDataTable = new WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable(); WOSI.CallButler.Data.CallButlerDataset.ExtensionsRow extension = extensionDataTable.NewExtensionsRow(); extension.CustomerID = Properties.Settings.Default.CustomerID; extension.ExtensionID = Guid.NewGuid(); extension.EmailAddress = txtEmail.Text; extension.EmailAttachment = true; extension.EmailNotification = true; extension.EnableSearch = true; extension.ExtensionNumber = 100; string[] name = txtName.Text.Split(' '); extension.FirstName = name[0]; if(name.Length > 1) { for (int index = 1; index < name.Length; index++) extension.LastName += name[index] + " "; } extensionDataTable.AddExtensionsRow(extension); // Persist our extension ManagementInterfaceClient.ManagementInterface.PersistExtension(ManagementInterfaceClient.AuthInfo, extensionDataTable); // Create a new extension contact numbers table WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable extensionContactNumbers = new WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersDataTable(); WOSI.CallButler.Data.CallButlerDataset.ExtensionContactNumbersRow contactNumber = extensionContactNumbers.NewExtensionContactNumbersRow(); contactNumber.ContactNumber = txtPhone.Text; contactNumber.ExtensionContactNumberID = Guid.NewGuid(); contactNumber.ExtensionID = extension.ExtensionID; contactNumber.Timeout = 20; extensionContactNumbers.AddExtensionContactNumbersRow(contactNumber); // Persist our contact numbers ManagementInterfaceClient.ManagementInterface.PersistExtensionContactNumbers(ManagementInterfaceClient.AuthInfo, extensionContactNumbers); } break; } }
public PersonalizedGreetingForm(WOSI.CallButler.Data.CallButlerDataset.PersonalizedGreetingsRow personalizedGreeting, WOSI.CallButler.Data.CallButlerDataset.ExtensionsDataTable extensions) { InitializeComponent(); this.personalizedGreeting = personalizedGreeting; LoadData(); wizard.PageIndex = 0; txtCallerID.Select(); rbScript.Visible = true; lblScript.Visible = true; btnImportOutlook.Enabled = Utilities.ContactManagement.ContactManagerFactory.CreateContactManager(Utilities.ContactManagement.ContactType.Outlook).IsInstalled; Utils.PrivateLabelUtils.ReplaceProductNameControl(this); }