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;
            }
        }
Exemple #3
0
        [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("---------------------------------");
        }
Exemple #4
0
        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));
                }
            }
        }
Exemple #7
0
        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.");
        }
Exemple #8
0
        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);
            }
        }
Exemple #10
0
        [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);
        }
Exemple #13
0
        [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));
            }
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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));
            }
        }
Exemple #20
0
        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);
 }
Exemple #23
0
        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);
 }