public void SetProviderFields(SIPProvider sipProvider) { ProviderID = sipProvider.ID; Owner = sipProvider.Owner; AdminMemberID = sipProvider.AdminMemberID; ProviderName = sipProvider.ProviderName; ProviderAuthUsername = (!sipProvider.ProviderAuthUsername.IsNullOrBlank()) ? sipProvider.ProviderAuthUsername : sipProvider.ProviderUsername; ProviderPassword = sipProvider.ProviderPassword; RegistrarServer = sipProvider.GetRegistrar(); RegistrarRealm = (!sipProvider.RegisterRealm.IsNullOrBlank()) ? sipProvider.RegisterRealm : RegistrarServer.Host; ProviderOutboundProxy = sipProvider.ProviderOutboundProxy; if (sipProvider.RegisterEnabled) { BindingExpiry = (sipProvider.RegisterExpiry.HasValue) ? sipProvider.RegisterExpiry.Value : 0; } else { BindingExpiry = 0; } string bindingId = null; SIPURI binding = (!BindingURI.IsNullOrBlank()) ? SIPURI.ParseSIPURIRelaxed(BindingURI) : null; if (binding != null && binding.Parameters.Has(REGAGENT_CONTACT_ID_KEY)) { bindingId = binding.Parameters.Get(REGAGENT_CONTACT_ID_KEY); } if (!sipProvider.RegisterContact.IsNullOrBlank()) { binding = SIPURI.ParseSIPURI(sipProvider.RegisterContact); if (!bindingId.IsNullOrBlank()) { binding.Parameters.Set(REGAGENT_CONTACT_ID_KEY, bindingId); } if (binding != null) { BindingURI = binding.ToString(); } else { BindingURI = null; BindingExpiry = 0; } } else { // The register contact field on the SIP Provider is empty. // This condition needs to be trearted as the binding being disabled and it needs to be removed. BindingExpiry = 0; } }