private SIPRequest GetUpdateRequest(SIPRequest inviteRequest, CRMHeaders crmHeaders)
{
SIPRequest updateRequest = new SIPRequest(SIPMethodsEnum.UPDATE, inviteRequest.URI);
updateRequest.LocalSIPEndPoint = inviteRequest.LocalSIPEndPoint;
SIPHeader inviteHeader = inviteRequest.Header;
SIPHeader updateHeader = new SIPHeader(inviteHeader.From, inviteHeader.To, inviteHeader.CSeq + 1, inviteHeader.CallId);
inviteRequest.Header.CSeq++;
updateRequest.Header = updateHeader;
updateHeader.CSeqMethod = SIPMethodsEnum.UPDATE;
updateHeader.Routes = inviteHeader.Routes;
updateHeader.ProxySendFrom = inviteHeader.ProxySendFrom;
SIPViaHeader viaHeader = new SIPViaHeader(inviteRequest.LocalSIPEndPoint, CallProperties.CreateBranchId());
updateHeader.Vias.PushViaHeader(viaHeader);
// Add custom CRM headers.
if (crmHeaders != null)
{
updateHeader.CRMPersonName = crmHeaders.PersonName;
updateHeader.CRMCompanyName = crmHeaders.CompanyName;
updateHeader.CRMPictureURL = crmHeaders.AvatarURL;
}
return updateRequest;
}