public SIPProvider AddSIPProvider(SIPProvider sipProvider) { Customer customer = AuthoriseRequest(); if (!customer.ServiceLevel.IsNullOrBlank() && customer.ServiceLevel.ToLower() == "free") { // Check the number of SIP Provider is within limits. if (GetSIPProvidersCount(null) >= 1) { throw new ApplicationException("The SIP Provider cannot be added as your existing SIP Provider count has reached the allowed limit for your service level."); } } sipProvider.Owner = customer.CustomerUsername; string validationError = SIPProvider.ValidateAndClean(sipProvider); if (validationError != null) { logger.Warn("Validation error in AddSIPProvider for customer " + customer.CustomerUsername + ". " + validationError); throw new ApplicationException(validationError); } else { return(SIPProviderPersistor.Add(sipProvider)); } }
private void SIPProvidersDataGrid_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { try { if (m_riaContext.SIPProviders.Count() > 0) { DataGrid dataGrid = (DataGrid)sender; if (dataGrid.CurrentColumn.Header as string != "Delete") { SIPProvider sipProvider = (SIPProvider)m_sipProvidersDataGrid.SelectedItem; if (m_selectedSIPProvider == null || m_selectedSIPProvider != sipProvider) { m_selectedSIPProvider = sipProvider; m_editControl = new SIPProviderDetailsControl(DetailsControlModesEnum.Edit, m_selectedSIPProvider, m_owner, null, UpdateSIPProvider, DetailsControlClosed); m_sipProvidersPanel.SetDetailsElement(m_editControl); } } } } catch (Exception excp) { string excpMessage = (excp.InnerException != null) ? excp.InnerException.Message : excp.Message; LogActivityMessage_External(MessageLevelsEnum.Error, "Exception showing SIP Provider details. " + excpMessage); m_selectedSIPProvider = null; } }
[Ignore] // Broken after NEtStandard migration. public void SingleProviderLegUnitTest() { Console.WriteLine("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name); SIPRequest inviteRequest = new SIPRequest(SIPMethodsEnum.INVITE, SIPURI.ParseSIPURI("sip:1234@localhost")); SIPHeader inviteHeader = new SIPHeader(SIPFromHeader.ParseFromHeader("<sip:joe@localhost>"), SIPToHeader.ParseToHeader("<sip:jane@localhost>"), 23, CallProperties.CreateNewCallId()); SIPViaHeader viaHeader = new SIPViaHeader("127.0.0.1", 5060, CallProperties.CreateBranchId()); inviteHeader.Vias.PushViaHeader(viaHeader); inviteRequest.Header = inviteHeader; List <SIPProvider> providers = new List <SIPProvider>(); SIPProvider provider = new SIPProvider(ProviderTypes.SIP, "test", "blueface", "test", "password", SIPURI.ParseSIPURIRelaxed("sip.blueface.ie"), null, null, null, null, 3600, null, null, null, false, false, null, null, null); providers.Add(provider); DialStringParser dialStringParser = new DialStringParser(null, "test", null, providers, delegate { return(null); }, delegate { return(null); }, (host, wildcard) => { return(null); }, null, "test"); Queue <List <SIPCallDescriptor> > callQueue = dialStringParser.ParseDialString(DialPlanContextsEnum.Script, inviteRequest, "blueface", null, null, null, null, null, null, null, null, CustomerServiceLevels.Free); Assert.IsNotNull(callQueue, "The call list should have contained a call."); Assert.IsTrue(callQueue.Count == 1, "The call queue list should have contained one leg."); List <SIPCallDescriptor> firstLeg = callQueue.Dequeue(); Assert.IsNotNull(firstLeg, "The first call leg should exist."); Assert.IsTrue(firstLeg.Count == 1, "The first call leg should have had one switch call."); Assert.IsTrue(firstLeg[0].Username == "test", "The username for the first call leg was not correct."); Assert.IsTrue(firstLeg[0].Uri.ToString() == "sip:[email protected]", "The destination URI for the first call leg was not correct."); Console.WriteLine("---------------------------------"); }
public void UpdateSIPProvider(SIPProvider sipProvider) { //if (sipProvider.Owner != this.ServiceContext.User.Identity.Name) //{ // throw new ApplicationException("You are not authorised to update this record."); //} //else //{ // string validationError = SIPProvider.Validate(sipProvider); // if (validationError != null) // { // throw new ApplicationException(validationError); // } // //else if (m_providerRegDisabled && sipProvider.RegisterEnabled) // //{ // // throw new ApplicationException("SIP provider registrations are disabled."); // //} // this.ObjectContext.SIPProviders.AttachAsModified(sipProvider, this.ChangeSet.GetOriginal(sipProvider)); // SIPProviderBindingSynchroniser.SIPProviderUpdated(sipProvider); //} m_service.UpdateSIPProvider(this.ServiceContext.User.Identity.Name, sipProvider); }
private void SIPProviderAddComplete(SubmitOperation so) { if (so.HasError) { if (m_addControl != null) { m_addControl.WriteStatusMessage(MessageLevelsEnum.Error, so.Error.Message); } else { LogActivityMessage_External(MessageLevelsEnum.Error, "There was an error adding a SIP Provider. " + so.Error.Message); } m_riaContext.SIPProviders.Remove((SIPProvider)so.UserState); so.MarkErrorAsHandled(); } else { if (m_addControl != null) { SIPProvider sipProvider = (SIPProvider)so.UserState; SIPProvidersPanel_Add(); m_addControl.WriteStatusMessage(MessageLevelsEnum.Info, "SIP Provider was successfully created for " + sipProvider.ProviderName + "."); } m_sipProvidersPanel.AssetAdded(); } }
public SIPProvider UpdateSIPProvider(SIPProvider sipProvider) { Customer customer = AuthoriseRequest(); if (customer.AdminId != Customer.TOPLEVEL_ADMIN_ID && sipProvider.Owner != customer.CustomerUsername) { throw new ApplicationException("You are not authorised to update the SIP Provider."); } string validationError = SIPProvider.ValidateAndClean(sipProvider); if (validationError != null) { logger.Warn("Validation error in UpdateSIPProvider for customer " + customer.CustomerUsername + ". " + validationError); throw new ApplicationException(validationError); } else { if (m_providerRegDisabled && sipProvider.RegisterEnabled) { logger.Warn("A SIP provider for customer " + customer.CustomerUsername + " had registrations enabled on a disabled registrations service."); throw new ApplicationException("SIP provider registrations are disabled on this system."); } else { return(SIPProviderPersistor.Update(sipProvider)); } } }
public void UpdateSIPProviderTest() { SIPEntitiesDomainService target = new SIPEntitiesDomainService(); // TODO: Initialize to an appropriate value SIPProvider currentSIPProvider = null; // TODO: Initialize to an appropriate value target.UpdateSIPProvider(currentSIPProvider); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
public void SIPProviderNoNameValidationTest() { SIPProvider target = new SIPProvider() { Owner = "owner" }; string validationResult = SIPProvider.Validate(target); Assert.AreEqual("A provider name must be specified.", validationResult); }
private void DeleteSIPProvider(object sender, System.Windows.Input.MouseButtonEventArgs e) { SIPProvider sipProvider = m_sipProvidersDataGrid.SelectedItem as SIPProvider; MessageBoxResult confirmDelete = MessageBox.Show("Press Ok to delete " + sipProvider.ProviderName + ".", "Confirm Delete", MessageBoxButton.OKCancel); if (confirmDelete == MessageBoxResult.OK) { //LogActivityMessage_External(MessageLevelsEnum.Info, "Sending delete request for SIP Provider " + sipProvider.ProviderName + "."); m_riaContext.SIPProviders.Remove(sipProvider); m_riaContext.SubmitChanges(DeleteSIPProviderComplete, sipProvider); } }
[Ignore] // "Haven't been able to get the regex validation to work as yet." public void SIPProviderInvalidusernameValidationTest() { SIPProvider target = new SIPProvider() { Owner = "owner", ProviderUsername = "******", ProviderName = "my.provider" }; string validationResult = SIPProvider.Validate(target); Assert.AreEqual("Provider names cannot contain a full stop '.' in order to avoid ambiguity with DNS host names, please remove the '.'.", validationResult); }
private void DeleteSIPProviderComplete(SubmitOperation so) { if (so.HasError) { LogActivityMessage_External(MessageLevelsEnum.Error, "There was an error deleting the SIP provider. " + so.Error.Message); so.MarkErrorAsHandled(); } else { SIPProvider sipProvider = (SIPProvider)so.UserState; //LogActivityMessage_External(MessageLevelsEnum.Info, "Delete completed successfully for " + sipProvider.ProviderName + "."); m_sipProvidersPanel.AssetDeleted(); } }
public SIPProvider DeleteSIPProvider(SIPProvider sipProvider) { Customer customer = AuthoriseRequest(); if (customer.AdminId != Customer.TOPLEVEL_ADMIN_ID && sipProvider.Owner != customer.CustomerUsername) { throw new ApplicationException("You are not authorised to delete the SIP Provider."); } //logger.Debug("DeleteSIPProvider, owner=" + sipProvider.Owner + ", providername=" + sipProvider.ProviderName + "."); SIPProviderPersistor.Delete(sipProvider); // Enables the caller to see which SIP Provider has been deleted. return(sipProvider); }
[Ignore] // "Haven't been able to get the regex validation to work as yet." public void SIPProviderInvalidServerValidationTest() { SIPProvider target = new SIPProvider() { Owner = "owner", ProviderName = "test", ProviderUsername = "******", ProviderType = "SIP", ProviderServer = "somehost" }; string validationResult = SIPProvider.Validate(target); Assert.AreEqual("The SIP provider server should contain at least one '.' to be recognised as a valid hostname or IP address.", validationResult); }
private void UpdateSIPProviderComplete(SubmitOperation so) { if (so.HasError) { LogActivityMessage_External(MessageLevelsEnum.Error, "There was an error updating the SIP provider. " + so.Error.Message); so.MarkErrorAsHandled(); m_riaContext.RejectChanges(); } else { if (m_editControl != null) { SIPProvider sipProvider = (SIPProvider)so.UserState; m_editControl.WriteStatusMessage(MessageLevelsEnum.Info, "Update completed successfully for SIP provider " + sipProvider.ProviderName + "."); } } }
public SIPProvider AddSIPProvider(SIPProvider sipProvider) { Customer customer = AuthoriseRequest(); sipProvider.Owner = customer.CustomerUsername; string validationError = SIPProvider.ValidateAndClean(sipProvider); if (validationError != null) { logger.Warn("Validation error in AddSIPProvider for customer " + customer.CustomerUsername + ". " + validationError); throw new ApplicationException(validationError); } else { return(SIPProviderPersistor.Add(sipProvider)); } }
public void DeleteSIPProvider(SIPProvider sipProvider) { //if (sipProvider.Owner != this.ServiceContext.User.Identity.Name) //{ // throw new ApplicationException("You are not authorised to delete this record."); //} //else //{ // if ((sipProvider.EntityState == EntityState.Detached)) // { // this.ObjectContext.SIPProviders.Attach(sipProvider); // } // this.ObjectContext.SIPProviders.DeleteObject(sipProvider); // SIPProviderBindingSynchroniser.SIPProviderDeleted(sipProvider); //} m_service.DeleteSIPProvider(this.ServiceContext.User.Identity.Name, sipProvider); }
public void InsertSIPProvider(SIPProvider sipProvider) { //string serviceLevel = (from cust in this.ObjectContext.Customers where cust.Name == this.ServiceContext.User.Identity.Name select cust.ServiceLevel).FirstOrDefault(); //if (!serviceLevel.IsNullOrBlank() && serviceLevel.ToLower() == CustomerServiceLevels.Free.ToString().ToLower()) //{ // // Check the number of SIP providers is within limits. // if ((from provider in this.ObjectContext.SIPProviders where provider.Owner == this.ServiceContext.User.Identity.Name select provider).Count() >= PROVIDER_COUNT_FREE_SERVICE) // { // throw new ApplicationException("The SIP provider cannot be added as your existing SIP provider count has reached the allowed limit for your service level."); // } //} //string validationError = SIPProvider.Validate(sipProvider); //if (validationError != null) //{ // throw new ApplicationException(validationError); //} ////else if (m_providerRegDisabled && sipProvider.RegisterEnabled) ////{ //// throw new ApplicationException("SIP provider registrations are disabled."); ////} //sipProvider.Owner = this.ServiceContext.User.Identity.Name; //sipProvider.Inserted = DateTimeOffset.UtcNow.ToString("o"); //if ((sipProvider.EntityState != EntityState.Detached)) //{ // this.ObjectContext.ObjectStateManager.ChangeObjectState(sipProvider, EntityState.Added); //} //else //{ // this.ObjectContext.SIPProviders.AddObject(sipProvider); //} //this.ObjectContext.SaveChanges(); //SIPProviderBindingSynchroniser.SIPProviderAdded(sipProvider); m_service.InsertSIPProvider(this.ServiceContext.User.Identity.Name, sipProvider); }
public SIPProviderDetailsControl( DetailsControlModesEnum mode, SIPProvider sipProvider, string owner, SIPProviderUpdateDelegate sipProviderAdd, SIPProviderUpdateDelegate sipProviderUpdate, ControlClosedDelegate closed) { InitializeComponent(); m_advancedProviderSettings.Visibility = Visibility.Collapsed; m_detailsMode = mode; m_sipProvider = sipProvider; m_owner = owner; SIPProviderAdd_External = sipProviderAdd; SIPProviderUpdate_External = sipProviderUpdate; ControlClosed_External = closed; //if (m_disableProviderRegistrations) //{ // m_providerRegister.IsEnabled = false; // m_providerRegisterContact.IsEnabled = false; // m_providerRegisterExpiry.IsEnabled = false; // m_providerRegisterServer.IsEnabled = false; //} if (mode == DetailsControlModesEnum.Edit) { m_providerTypeCanvas.Visibility = Visibility.Collapsed; m_gvSettingsPanel.Visibility = System.Windows.Visibility.Collapsed; m_applyButton.Content = "Update"; PopulateDataFields(m_sipProvider); } else { m_providerIdCanvas.Visibility = Visibility.Collapsed; m_providerTypeNameCanvas.Visibility = Visibility.Collapsed; m_gvSettingsPanel.Visibility = System.Windows.Visibility.Collapsed; m_applyButton.Content = "Add"; } }
public SIPProvider UpdateSIPProvider(SIPProvider sipProvider) { Customer customer = AuthoriseRequest(); if (customer.AdminId != Customer.TOPLEVEL_ADMIN_ID && sipProvider.Owner != customer.CustomerUsername) { throw new ApplicationException("You are not authorised to update the SIP Provider."); } string validationError = SIPProvider.ValidateAndClean(sipProvider); if (validationError != null) { logger.Warn("Validation error in UpdateSIPProvider for customer " + customer.CustomerUsername + ". " + validationError); throw new ApplicationException(validationError); } else { return(SIPProviderPersistor.Update(sipProvider)); } }
public JSONResult <string> UpdateSIPProvider(SIPProviderJSON sipProvider) { try { var customer = AuthoriseRequest(); SIPProvider entitySIPProvider = sipProvider.ToSIPProvider(); m_service.UpdateSIPProvider(customer.Name, entitySIPProvider); return(new JSONResult <string>() { Success = true, Result = entitySIPProvider.ID }); } catch (Exception excp) { return(new JSONResult <string>() { Success = false, Error = excp.Message }); } }
private void DetailsControlClosed() { m_sipProvidersPanel.CloseDetailsPane(); m_selectedSIPProvider = null; }
private void SIPProvidersPanel_Add() { m_selectedSIPProvider = null; m_addControl = new SIPProviderDetailsControl(DetailsControlModesEnum.Add, m_selectedSIPProvider, m_owner, SIPProviderAdd, null, DetailsControlClosed); m_sipProvidersPanel.SetDetailsElement(m_addControl); }
public void SIPAccountConstructorTest() { SIPProvider target = new SIPProvider(); Assert.IsNotNull(target); }
private void Add() { try { SIPProvider sipProvider = null; ProviderTypes providerType = (m_providerTypeSIPRadio.IsChecked != null && m_providerTypeSIPRadio.IsChecked.Value) ? ProviderTypes.SIP : ProviderTypes.GoogleVoice; string providerName = m_providerName.Text.Trim(); string providerUsername = m_providerUsername.Text.Trim(); string providerPassword = m_providerPassword.Text.Trim(); if (providerType == ProviderTypes.SIP) { SIPURI providerServer = (!m_providerServer.Text.IsNullOrBlank()) ? SIPURI.ParseSIPURIRelaxed(m_providerServer.Text.Trim()) : null; bool registerEnabled = m_providerRegister.IsChecked.Value; bool sendMWISubscribe = m_providerSendMWISubscribe.IsChecked.Value; SIPURI registerContact = (!m_providerRegisterContact.Text.IsNullOrBlank()) ? SIPURI.ParseSIPURIRelaxed(m_providerRegisterContact.Text.Trim()) : null; string authUsername = m_providerAuthUsername.Text.Trim(); string providerFrom = m_providerFromHeader.Text.Trim(); string registerRealm = m_providerRegisterRealm.Text.Trim(); SIPURI registerServer = (!m_providerRegisterServer.Text.IsNullOrBlank()) ? SIPURI.ParseSIPURIRelaxed(m_providerRegisterServer.Text.Trim()) : null; int registerExpiry = m_defaultRegisterExpiry; Int32.TryParse(m_providerRegisterExpiry.Text, out registerExpiry); string customHeaders = null; if (m_providerCustomHeaders.Items.Count > 0) { foreach (string customHeader in m_providerCustomHeaders.Items) { customHeaders += (m_sipProvider.CustomHeaders != null && m_sipProvider.CustomHeaders.Trim().Length > 0) ? m_customHeadersSeparator.ToString() : null; customHeaders += customHeader; } } sipProvider = new SIPProvider() { ID = Guid.NewGuid().ToString(), ProviderType = ProviderTypes.SIP.ToString(), Owner = m_owner, ProviderName = providerName, ProviderUsername = providerUsername, ProviderPassword = providerPassword, ProviderServer = (providerServer != null) ? providerServer.ToString() : null, ProviderFrom = providerFrom, CustomHeaders = customHeaders, RegisterContact = (registerContact != null) ? registerContact.ToString() : null, RegisterExpiry = registerExpiry, RegisterServer = (registerServer != null) ? registerServer.ToString() : null, ProviderAuthUsername = authUsername, RegisterRealm = registerRealm, RegisterEnabled = registerEnabled, SendMWISubscribe = sendMWISubscribe, RegisterAdminEnabled = true, Inserted = DateTime.Now.ToString("o"), LastUpdate = DateTime.Now.ToString("o") }; } else { //string gvCallbackNumber = m_gvCallbackNumber.Text; //string gvCallbackPattern = m_gvCallbackNumber.Text; //GoogleVoiceCallbackTypes callbackType = (GoogleVoiceCallbackTypes)Enum.Parse(typeof(GoogleVoiceCallbackTypes), ((TextBlock)m_gvCallbackType.SelectedValue).Text, true); //sipProvider = new SIPProvider(ProviderTypes.GoogleVoice, m_owner, providerName, providerUsername, providerPassword, null, null, null, null, // null, 0, null, null, null, false, true, gvCallbackNumber, gvCallbackPattern, callbackType); sipProvider = new SIPProvider() { ID = Guid.NewGuid().ToString(), ProviderType = ProviderTypes.GoogleVoice.ToString(), Owner = m_owner, ProviderName = providerName, ProviderUsername = providerUsername, ProviderPassword = providerPassword, GVCallbackNumber = m_gvCallbackNumber.Text, GVCallbackPattern = m_gvCallbackPattern.Text, GVCallbackType = ((TextBlock)m_gvCallbackType.SelectedValue).Text, Inserted = DateTime.Now.ToString("o"), LastUpdate = DateTime.Now.ToString("o") }; } if (sipProvider.HasValidationErrors) { WriteStatusMessage(MessageLevelsEnum.Warn, sipProvider.ValidationErrors.First().ErrorMessage); } else { WriteStatusMessage(MessageLevelsEnum.Info, "Adding SIP Provider please wait..."); SIPProviderAdd_External(sipProvider); } } catch (Exception excp) { WriteStatusMessage(MessageLevelsEnum.Error, "Add SIPProvider Exception. " + excp.Message); } }
private void PopulateDataFields(SIPProvider sipProvider) { m_providerId.Text = sipProvider.ID.ToString(); m_providerTypeName.Text = sipProvider.ProviderType.ToString(); m_providerName.Text = sipProvider.ProviderName; m_providerUsername.Text = sipProvider.ProviderUsername; m_providerPassword.Text = sipProvider.ProviderPassword; if (String.Equals(sipProvider.ProviderType, ProviderTypes.SIP.ToString(), StringComparison.OrdinalIgnoreCase)) { m_providerServer.Text = sipProvider.ProviderServer.ToString(); m_providerAuthUsername.Text = (sipProvider.ProviderAuthUsername != null) ? sipProvider.ProviderAuthUsername : String.Empty; m_providerFromHeader.Text = (sipProvider.ProviderFrom != null) ? sipProvider.ProviderFrom : String.Empty; m_providerRegisterRealm.Text = (sipProvider.RegisterRealm != null) ? sipProvider.RegisterRealm : String.Empty; //if (!m_disableProviderRegistrations) //{ m_providerRegister.IsChecked = sipProvider.RegisterEnabled; m_providerSendMWISubscribe.IsChecked = sipProvider.SendMWISubscribe; m_providerRegisterContact.Text = (sipProvider.RegisterContact != null) ? sipProvider.RegisterContact.ToString() : String.Empty; m_providerRegisterExpiry.Text = sipProvider.RegisterExpiry.ToString(); m_providerRegisterServer.Text = (sipProvider.RegisterServer != null) ? sipProvider.RegisterServer.ToString() : String.Empty; m_providerRegisterContact.IsEnabled = m_providerRegister.IsChecked.Value; m_providerRegisterExpiry.IsEnabled = m_providerRegister.IsChecked.Value; m_providerRegisterServer.IsEnabled = m_providerRegister.IsChecked.Value; //} if (sipProvider.CustomHeaders != null && sipProvider.CustomHeaders.Trim().Length > 0) { string[] customHeaders = sipProvider.CustomHeaders.Split(m_customHeadersSeparator); if (customHeaders != null && customHeaders.Length > 0) { foreach (string customHeader in customHeaders) { if (customHeader != null && customHeader.Trim().Length > 0) { m_providerCustomHeaders.Items.Add(customHeader.Trim()); } } } } } else { GoogleVoiceTypeClicked(null, null); m_gvCallbackNumber.Text = sipProvider.GVCallbackNumber; m_gvCallbackPattern.Text = sipProvider.GVCallbackPattern; if (sipProvider.GVCallbackType != null) { for (int index = 0; index < m_gvCallbackType.Items.Count; index++) { if (((TextBlock)m_gvCallbackType.Items[index]).Text == sipProvider.GVCallbackType) { m_gvCallbackType.SelectedIndex = index; break; } } } } }
private void SIPProviderAdd(SIPProvider sipProvider) { m_riaContext.SIPProviders.Add(sipProvider); m_riaContext.SubmitChanges(SIPProviderAddComplete, sipProvider); }
private void UpdateSIPProvider(SIPProvider sipProvider) { m_riaContext.SubmitChanges(UpdateSIPProviderComplete, sipProvider); }