private SIPRequest GetAuthenticatedRegistrationRequest(SIPRequest registerRequest, SIPResponse sipResponse)
{
try
{
SIPAuthorisationDigest authRequest = sipResponse.Header.AuthenticationHeader.SIPDigest;
m_lastServerNonce = authRequest.Nonce;
string username = (m_authUsername != null) ? m_authUsername : m_sipAccountAOR.User;
authRequest.SetCredentials(username, m_password, registerRequest.URI.ToString(), SIPMethodsEnum.REGISTER.ToString());
SIPRequest regRequest = registerRequest.Copy();
regRequest.LocalSIPEndPoint = registerRequest.LocalSIPEndPoint;
regRequest.Header.Vias.TopViaHeader.Branch = CallProperties.CreateBranchId();
regRequest.Header.From.FromTag = CallProperties.CreateNewTag();
regRequest.Header.To.ToTag = null;
regRequest.Header.CSeq = ++m_cseq;
regRequest.Header.AuthenticationHeader = new SIPAuthenticationHeader(authRequest);
regRequest.Header.AuthenticationHeader.SIPDigest.Response = authRequest.Digest;
//if (RequestSwitchboardToken)
//{
// regRequest.Header.SwitchboardTokenRequest = m_expiry;
//}
return regRequest;
}
catch (Exception excp)
{
logger.Error("Exception GetAuthenticatedRegistrationRequest. " + excp.Message);
throw excp;
}
}