Compare Revisions

The credentials to download the source code are:
 Username: svnusers
 Password: svnusers

Ignore whitespace Rev 72 → Rev 73

/trunk/ttcn/LibIms_PIXITS.ttcn
170,7 → 170,7
}
} // end group SUT_UE3
 
group SUT_UE4 {
group SUT_UE4 {//UE4 can be used as UE1Visited
modulepar {
/** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4
*/
/trunk/ttcn/LibIms_Steps.ttcn
437,18 → 437,18
vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR;
}
case (c_userProfile_UE1atSUTvisiting) { //variant c_userProfile_UE1atSUTvisiting
vc_userprofile.currPort := PX_IMS_TS_UE1_PORT;
vc_userprofile.currIpaddr := PX_IMS_TS_UE1_IPADDR;
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT;
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR;
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN;
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER;
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP;
vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME;
vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD;
vc_userprofile.registrarDomain := PX_IMS_TS_UE1_REGISTRAR;
case (c_userProfile_UE1atSUTvisiting) { //variant c_userProfile_UE1atSUTvisiting - UE4 parameters
vc_userprofile.currPort := PX_IMS_TS_UE4_PORT;
vc_userprofile.currIpaddr := PX_IMS_TS_UE4_IPADDR;
vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT;
vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR;
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN;
vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER;
vc_userprofile.qop := PX_IMS_SUT_UE4_QOP;
vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME;
vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD;
vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR;
}
// //temporary not used and it can be deleted during validation
471,6 → 471,7
vc_userprofile.currIpaddr := PX_IMS_TS_IBCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_IBCF_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_IBCF_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
484,7 → 485,7
vc_userprofile.currIpaddr := PX_IMS_TS_IBCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_IBCF_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_IBCF_IPADDR; // contact
//vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
496,14 → 497,15
case (c_userProfile_ICSCFwithHomeUE) { //variant c_userProfile_ICSCFwithHomeUE
vc_userprofile.currPort := PX_IMS_TS_ICSCF_PORT; // via (Mw interface of TS)
vc_userprofile.currIpaddr := PX_IMS_TS_ICSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE4_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME; // Authorization
vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD; // Authorization
vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR; // Authorization
}
case (c_userProfile_IBCFwithUnknownUE) { //variant
511,6 → 513,7
vc_userprofile.currIpaddr := PX_IMS_TS_ICSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_unknownUE_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
524,7 → 527,8
vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.homeDomain := PX_IMS_TS_IMS1UE_HOME_DOMAIN; // From, To (register)
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
537,7 → 541,8
vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_REGISTRAR; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
551,6 → 556,7
vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE2_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE2_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE2_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
565,6 → 571,7
vc_userprofile.currIpaddr := PX_IMS_TS_PCSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_unknownUE_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
576,14 → 583,15
case (c_userProfile_SCSCFwithHomeUE) { //variant c_userProfile_SCSCFwithHomeUE
vc_userprofile.currPort := PX_IMS_TS_SCSCF_PORT; // via (Mw interface of TS)
vc_userprofile.currIpaddr := PX_IMS_TS_SCSCF_IPADDR; // via
vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; // contact
vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; // Authorization
vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
vc_userprofile.contactPort := PX_IMS_TS_UE4_PORT; // contact (simulated UE)
vc_userprofile.contactIpaddr := PX_IMS_TS_UE4_IPADDR; // contact
vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE4_BEARER_IPADDR;
vc_userprofile.homeDomain := PX_IMS_SUT_UE4_HOME_DOMAIN; // From, To (register)
vc_userprofile.publUsername := PX_IMS_SUT_UE4_PUBLIC_USER; // From, To (register)
vc_userprofile.qop := PX_IMS_SUT_UE4_QOP; // Authorization
vc_userprofile.privUsername := PX_IMS_SUT_UE4_PRIVAT_USERNAME; // Authorization
vc_userprofile.passwd := PX_IMS_SUT_UE4_PRIVAT_PASSWD; // Authorization
vc_userprofile.registrarDomain := PX_IMS_SUT_UE4_REGISTRAR; // Authorization
}
case (c_userProfile_AS1) { //variant c_userProfile_AS1
670,7 → 678,7
}
case (c_userProfile_SCSCFwithHomeUE) {
p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit};
p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_IPADDR, portField :=omit}
p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit}
}
case (c_userProfile_ISUP) {
p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_ISUP_PUBLIC_USER, password:=omit};
875,6 → 883,63
 
}//end function f_awaitingRegistration_IMS
 
 
/**
*
* @desc remove registration
* @param p_cSeq_s cseq parameter
*/
function f_RemoveRegistration_IMS(inout CSeq p_cSeq) runs on SipComponent
{
var CommaParam_List v_challenge;
var Credentials v_credentials;
var template REGISTER_Request v_request;
if (PX_SIP_REGISTRATION)
{
f_setHeaders_deREGISTER(p_cSeq);
v_request := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg,
p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
v_request.msgHeader.route := f_route();
f_SendREGISTER(v_request);
if (PX_SIP_REGISTER_AUTHENTICATION_ENABLED)
{
// receiving 401 Unauthorized response.
// and Re-send REGISTER request with Authorization header
tc_ack.start(PX_SIP_TACK);
alt
{
[] SIPP.receive (mw_Response_Base(c_statusLine401, vc_callIdReg, p_cSeq)) -> value vc_response
{
tc_ack.stop;
// set headers via, cseq and authorization
f_setHeaders_2ndREGISTER(p_cSeq);
v_request := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg,
p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, "0");
v_request.msgHeader.route := f_route();
// Re-send protected REGISTER
f_SendREGISTER(v_request);//LibSip
// awaiting 200 OK REGISTER
f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
}
[] SIPP.receive (mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq))-> value vc_response
{
tc_ack.stop;
f_setHeadersOnReceiptOfResponse(vc_cSeq, vc_response);
log ("Authorization was not requested as expected");
}
}
}
else
{
f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq));
}
}
} // end f_RemoveRegistration_IMS
 
} // end group registration
group preambles {
908,7 → 973,7
//Preamble
f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
vc_sdp_local := valueof(m_SDP_bandwidth(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile));
 
vc_contact := valueof(m_Contact(m_SipUrl_contactIpaddr(vc_userprofile)));
}
 
/*
/trunk/ttcn/LibIms_Templates.ttcn
64,12 → 64,12
minSeParam:=omit
}
template PathValue m_pathvalue (SipUrl p_sipUrl):=
template PathValue mw_pathvalue (SipUrl p_sipUrl):=
{
nameAddr := {displayName := omit, // optional charstring
nameAddr := {displayName := *, // optional charstring
addrSpec := p_sipUrl // SipUrl
},
rrParam := omit
rrParam := *
}
 
template Path m_path (SipUrl p_sipUrl):=
83,7 → 83,22
rrParam := omit}
}
}
 
template Path m_path_TS :=
{
fieldName := PATH_E,
pathValues := {
{nameAddr := {
displayName := omit, // optional charstring
addrSpec := {
scheme := "sip",
userInfo := {userOrTelephoneSubscriber:="registrar"},
hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT},
urlParameters := omit,
headers := omit}},
rrParam := omit}
}
}
/*
* @desc Path header field expectation with at least one path value
* @param p_sipUrl value of the last element in the list of path values
91,7 → 106,7
template Path mw_path (SipUrl p_sipUrl):=
{
fieldName := PATH_E,
pathValues := {*,m_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl
}
template PAccessNetworkInfo m_pAccessNetworkInfo_IEEE_11a :=
110,23 → 125,36
template PChargingFunctionAddresses m_pChargingFunctionAddresses_fixedValue :=
{
fieldName := P_CHARGING_FUNCTION_ADDRESSES_E,
chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1"}, // value is fixed because it is deleted on proxy
chargeAddrParams := {{id:="ccf",paramValue :="192.1.1.1;"}, // value is fixed because it is deleted on proxy
{id:="ecf",paramValue :="192.1.1.2"}} // value is fixed because it is deleted on proxy
};
 
template PChargingVector m_pChargingVector(template SemicolonParam_List p_chargeParams) :=
{
fieldName := P_CHARGING_VECTOR_E,
chargeParams := p_chargeParams
};
template PChargingVector m_pChargingVector_icid_TS :=
{
fieldName := P_CHARGING_VECTOR_E,
chargeParams := {{id:="icid-value", paramValue :="012345"}}
};
template PChargingVector m_pChargingVector_fixedValue(charstring p_homeDomain) :=
{
fieldName := P_CHARGING_VECTOR_E,
chargeParams := {{id:="icid-value", paramValue :="123abc"},
{id:="icid-generated-at", paramValue :="192.1.1.10"},
chargeParams := {{id:="icid-value", paramValue :="123abc;"},
{id:="icid-generated-at", paramValue :="192.1.1.10;"},
{id:="orig-ioi", paramValue := p_homeDomain}}
};
template PChargingVector m_pChargingVector_fixedValue1(charstring p_homeDomain) :=
{
fieldName := P_CHARGING_VECTOR_E,
chargeParams := {
{id:="icid-generated-at", paramValue :="192.1.1.10"},
{id:="icid-generated-at", paramValue :="192.1.1.10;"},
{id:="orig-ioi", paramValue := p_homeDomain}}
};
153,6 → 181,13
optionsTags := {"sec-agree"}
};
template PVisitedNetworkID m_pVisitedNetworkID_TS :=
{
fieldName := P_VISITED_NETWORK_E,
vNetWorkSpec := {{vNetworkSpecToken := "Viseted ETSI 1",
genericParams := omit}}
}
template PVisitedNetworkID mw_pVisitedNetworkID :=
{
fieldName := P_VISITED_NETWORK_E,
1451,6 → 1486,26
userToUser := m_UserToUserData(valueof(p_U2UData))
}
}
template MESSAGE_Request m_MESSAGE_Request_MBody_UE
(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
Via p_via, template Require p_require,
template Route p_route, template Supported p_supported, template MessageBody p_messageBody)
modifies m_MESSAGE_Request_Base
:=
{
msgHeader :=
{
contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(m_MBody_longPlainText))},
contentType := {fieldName := CONTENT_TYPE_E, mediaType := c_plainText},
pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,
require := p_require,
route := p_route,
//securityVerify := p_securityVerify,//TODO check when information will be known regarding security assosiation
supported := p_supported
},
messageBody := p_messageBody
}
template MESSAGE_Request m_MESSAGE_Request_NoBody_UE
(SipUrl p_requestUri, CallId p_callId, CSeq p_cSeq, From p_from, To p_to,
1667,6 → 1722,10
contact := p_contact,
cSeq := p_cSeq,
fromField := p_from,
path := m_path_TS,
pChargingVector := m_pChargingVector_icid_TS,
pVisitedNetworkID := m_pVisitedNetworkID_TS,
require := {fieldName := REQUIRE_E,optionsTags := {"path"}},
toField := p_to,
via := p_via
 
2586,7 → 2645,6
template Response m_Response_onMESSAGE_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via, Contact p_contact) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
contact := p_contact
2596,7 → 2654,6
template Response m_Response_2xxonMESSAGE_PAccessNetwInfo_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a
2606,7 → 2663,6
template Response m_Response_2xxonMESSAGE_PCharging_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
2618,7 → 2674,6
template Response m_Response_2xxonMESSAGE_PCharging_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via, template PChargingVector p_pChargingVector) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
2629,7 → 2684,6
template Response m_Response_2xxonMESSAGE_PMediaAuth_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
pMediaAuthorization := m_pMediaAuthorization_fixedValue
2639,7 → 2693,6
template Response m_Response_2xxonMESSAGE_pPreferredID_UE(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via, template PPreferredID p_pPreferredID) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
pPreferredID := p_pPreferredID
2717,7 → 2770,6
template Response m_Response_WWWauthenticate_IMS(StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq,
From p_from, To p_to, Via p_via, template WwwAuthenticate p_wwwAuthenticate) modifies m_Response_Base:=
{
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader :=
{
wwwAuthenticate := p_wwwAuthenticate