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;
}
}