private SIPRequest GetNewTransactionACKRequest(SIPResponse sipResponse, SIPURI ackURI, SIPEndPoint localSIPEndPoint)
{
SIPRequest ackRequest = new SIPRequest(SIPMethodsEnum.ACK, ackURI.ToString());
ackRequest.LocalSIPEndPoint = localSIPEndPoint;
SIPHeader header = new SIPHeader(TransactionRequest.Header.From, sipResponse.Header.To, sipResponse.Header.CSeq, sipResponse.Header.CallId);
header.CSeqMethod = SIPMethodsEnum.ACK;
header.AuthenticationHeader = TransactionRequest.Header.AuthenticationHeader;
header.ProxySendFrom = base.TransactionRequest.Header.ProxySendFrom;
if (sipResponse.Header.RecordRoutes != null)
{
header.Routes = sipResponse.Header.RecordRoutes.Reversed();
}
ackRequest.Header = header;
SIPViaHeader viaHeader = new SIPViaHeader(localSIPEndPoint, CallProperties.CreateBranchId());
ackRequest.Header.Vias.PushViaHeader(viaHeader);
return ackRequest;
}