public void SetProviderFields(SIPProvider sipProvider)
{
m_providerId = sipProvider.Id;
m_owner = sipProvider.Owner;
AdminMemberId = sipProvider.AdminMemberId;
ProviderName = sipProvider.ProviderName;
ProviderAuthUsername = (!sipProvider.ProviderAuthUsername.IsNullOrBlank()) ? sipProvider.ProviderAuthUsername : sipProvider.ProviderUsername;
ProviderPassword = sipProvider.ProviderPassword;
RegistrarServer = sipProvider.Registrar.CopyOf();
RegistrarRealm = (!sipProvider.RegisterRealm.IsNullOrBlank()) ? sipProvider.RegisterRealm : RegistrarServer.Host;
ProviderOutboundProxy = sipProvider.ProviderOutboundProxy;
SendMWISubscribe = sipProvider.SendMWISubscribe;
if (sipProvider.RegisterEnabled)
{
BindingExpiry = sipProvider.RegisterExpiry;
}
else
{
BindingExpiry = 0;
}
string bindingId = null;
if (m_bindingURI != null && m_bindingURI.Parameters.Has(REGAGENT_CONTACT_ID_KEY))
{
bindingId = m_bindingURI.Parameters.Get(REGAGENT_CONTACT_ID_KEY);
}
if (!sipProvider.RegisterContact.IsNullOrBlank())
{
m_bindingURI = SIPURI.ParseSIPURI(sipProvider.RegisterContact);
if (!bindingId.IsNullOrBlank())
{
m_bindingURI.Parameters.Set(REGAGENT_CONTACT_ID_KEY, bindingId);
}
}
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;
}
}