Compare Revisions

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

Ignore whitespace Rev 191 → Rev 192

/branches/v3/ttcn/LibIms_PIXITS.ttcn
File deleted
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: v3/ttcn/LibIms_Steps.ttcn
===================================================================
--- v3/ttcn/LibIms_Steps.ttcn (revision 191)
+++ v3/ttcn/LibIms_Steps.ttcn (revision 192)
@@ -16,7 +16,6 @@
// LibIms
import from LibIms_Templates all;
import from LibIms_Interface all;
- import from LibIms_PIXITS all;
import from LibIms_SIPTypesAndValues all;
group externalfunctions {
@@ -138,13 +137,13 @@
/**
* @desc Sets BYE header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to send Bye
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersBYE(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
vc_route := f_route(); // update the route header field depending on vc_boo_route
vc_recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
LibSip_Steps.f_setHeadersBYE(p_cSeq_s);
@@ -153,11 +152,9 @@
/**
* @desc Sets CANCEL header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to send Cancel
*/
function f_setHeadersCANCEL(
- inout CSeq p_cSeq_s,
- in integer p_to_user
+ inout CSeq p_cSeq_s
) runs on ImsComponent {
vc_route := f_route(); // update the route header field depending on vc_boo_route
vc_recordRoute := f_recordroute(); // update the route header field depending on vc_boo_route
@@ -216,15 +213,15 @@
/**
* @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersINVITE(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
if (vc_boo_route) {
vc_route := m_route_interface(vc_interfaceprofile);
}
@@ -238,15 +235,15 @@
/**
* @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersUPDATE(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
if (vc_boo_route) {
vc_route := m_route_interface(vc_interfaceprofile);
}
@@ -260,15 +257,15 @@
/**
* @desc Sets Message header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersMESSAGE(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
LibSip_Steps.f_setHeadersMESSAGE(p_cSeq_s);
} // end f_setHeadersMESSAGE
@@ -275,11 +272,11 @@
/**
* @desc Sets Notify header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersNOTIFY(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
LibSip_Steps.f_setHeadersNOTIFY(p_cSeq_s);
@@ -290,8 +287,8 @@
};
vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
// contact header initialization for sending of NOTIFY from CSCF component
vc_contact := m_Contact(m_SipUrl_currIpaddr_CSCF(vc_userprofile));
} // end f_setHeadersNOTIFY
@@ -299,11 +296,11 @@
/**
* @desc Sets Publish header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersPUBLISH(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
LibSip_Steps.f_setHeadersPUBLISH(p_cSeq_s);
@@ -314,8 +311,8 @@
};
vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
if (vc_boo_route) {
vc_route := m_route_interface(vc_interfaceprofile);
}
@@ -330,7 +327,7 @@
/**
* @desc Sets Subscribe header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersSUBSCRIBE(
inout CSeq p_cSeq_s,
@@ -346,7 +343,7 @@
}, // end addressField
toParams := omit
};
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_from := f_initFromHeader(p_to_user, f_getRndTag()); // init of vc_from using userProfile identifier
vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
LibSip_Steps.f_setHeadersSUBSCRIBE(p_cSeq_s);
} // end f_setHeadersSUBSCRIBE
@@ -355,12 +352,12 @@
* @desc Sets headers for ReINVITE method
* @param p_cSeq_s The current cSeq
* @param p_orginatingSide true in case of Re-INVITE is send from the orgination endpoint otherwise false.
- * @param p_to_user The user_profile id of the user to be re-invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersReINVITE(
inout CSeq p_cSeq_s,
in boolean p_orginatingSide,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
var integer v_tmp, v_i, v_j, v_nbroute;
var Request v_request;
@@ -369,7 +366,7 @@
f_setHeadersGeneral(p_cSeq_s, "INVITE"); // cseq, contact, branch, via
vc_reqHostPort := vc_requestUri.components.sip.hostPort;
- vc_requestUri := f_initSipUrl(p_to_user);
+ vc_requestUri := p_to_user;
if (p_orginatingSide) {
vc_to := vc_caller_To;
@@ -501,15 +498,13 @@
/**
* @desc Sets REFER header fields (IMS addresses) extension of general settings from LibSip basic function
* @param p_cSeq_s The current cSeq
- * @param p_to_user The user_profile id of the user to be invited
+ * @param p_to_user The selected user's SIP URL
*/
function f_setHeadersREFER(
inout CSeq p_cSeq_s,
- in integer p_to_user
+ in SipUrl p_to_user
) runs on ImsComponent {
- // vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
- // vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
- vc_requestUri := f_initSipUrl(p_to_user); // Request URI of Invite is identical with To header
+ vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
if (vc_boo_route) {
vc_route := m_route_interface(vc_interfaceprofile);
}
@@ -540,7 +535,7 @@
toParams := omit
};
- vc_from := f_initFromHeader(vc_userprofile.id, f_getRndTag()); // init of vc_from using userProfile identifier
+ vc_from := f_initFromHeader(p_uri, f_getRndTag()); // init of vc_from using userProfile identifier
vc_requestUri := p_uri; // Request URI of Invite is identical with To header
if (vc_boo_route) {
vc_route := m_route_interface(vc_interfaceprofile);
@@ -590,252 +585,15 @@
}
group globalSteps {
- /**
- * @desc Sets user parameters with PIXIT values
- * @param p_user Identifies the selected user configuration and location
- */
- function f_init_userprofile(
- in integer p_user
- ) runs on ImsComponent {
- LibSip_Steps.f_init_userprofile(p_user);
+ //NOTE STF471: removed function f_init_userprofile, have to move up to specific ATS
- select (p_user) {
- case (c_userProfile_UE1atSUThome) { // variant c_userProfile_UE1atSUThome
- 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_SUT_UE1_REGISTRAR;
- }
- case (c_userProfile_UE2atSUThome) { // variant c_userProfile_UE2atSUThome
- vc_userprofile.currPort := PX_IMS_TS_UE2_PORT;
- vc_userprofile.currIpaddr := PX_IMS_TS_UE2_IPADDR;
- vc_userprofile.contactPort := PX_IMS_TS_UE2_PORT;
- vc_userprofile.contactIpaddr := PX_IMS_TS_UE2_IPADDR;
- vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE2_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_IMS_SUT_UE2_HOME_DOMAIN;
- vc_userprofile.publUsername := PX_IMS_SUT_UE2_PUBLIC_USER;
- vc_userprofile.qop := PX_IMS_SUT_UE2_QOP;
- vc_userprofile.privUsername := PX_IMS_SUT_UE2_PRIVAT_USERNAME;
- vc_userprofile.passwd := PX_IMS_SUT_UE2_PRIVAT_PASSWD;
- vc_userprofile.registrarDomain := PX_IMS_SUT_UE2_REGISTRAR;
- }
- case (c_userProfile_UE3atSUThome) { // variant c_userProfile_UE3atSUThome
- vc_userprofile.currPort := PX_IMS_TS_UE3_PORT;
- vc_userprofile.currIpaddr := PX_IMS_TS_UE3_IPADDR;
- vc_userprofile.contactPort := PX_IMS_TS_UE3_PORT;
- vc_userprofile.contactIpaddr := PX_IMS_TS_UE3_IPADDR;
- vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE3_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_IMS_SUT_UE3_HOME_DOMAIN;
- vc_userprofile.publUsername := PX_IMS_SUT_UE3_PUBLIC_USER;
- vc_userprofile.qop := PX_IMS_SUT_UE3_QOP;
- vc_userprofile.privUsername := PX_IMS_SUT_UE3_PRIVAT_USERNAME;
- vc_userprofile.passwd := PX_IMS_SUT_UE3_PRIVAT_PASSWD;
- vc_userprofile.registrarDomain := PX_IMS_SUT_UE3_REGISTRAR;
- }
- case (c_userProfile_UE4atSUThome) { // variant c_userProfile_UE4atSUThome
- 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;
- }
- case (c_userProfile_UE1atSUTvisiting) { // variant c_userProfile_UE1atSUTvisiting - UE3 parameters
- 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_UE3_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_IMS_SUT_UE3_HOME_DOMAIN;
- vc_userprofile.publUsername := PX_IMS_SUT_UE3_PUBLIC_USER;
- vc_userprofile.qop := PX_IMS_SUT_UE3_QOP;
- vc_userprofile.privUsername := PX_IMS_SUT_UE3_PRIVAT_USERNAME;
- vc_userprofile.passwd := PX_IMS_SUT_UE3_PRIVAT_PASSWD;
- vc_userprofile.registrarDomain := PX_IMS_SUT_UE3_REGISTRAR;
- }
- case (c_userProfile_IBCFwithHomeUE) { // variant c_userProfile_IBCFwithHomeUE
- vc_userprofile.currPort := PX_IMS_TS_IBCF_PORT; // via (Ic interface of TS)
- 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
- 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
- }
- case (c_userProfile_IBCFwithVisitingUE) { // variant c_userProfile_IBCFwithVisitingUE
- vc_userprofile.currPort := PX_IMS_TS_IBCF_PORT; // via (Ic interface of TS)
- 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
- 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
- }
- case (c_userProfile_ICSCFwithHomeUE) { // variant c_userProfile_ICSCFwithHomeUE - UE4 parameters
- 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_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 c_userProfile_IBCFwithUnknownUE
- 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.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
- 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
- }
- case (c_userProfile_PCSCFwithHomeUE) { // variant c_userProfile_PCSCFwithHomeUE
- vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
- 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_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
- }
- case (c_userProfile_PCSCFwithVisitingUE) { // variant c_userProfile_PCSCFwithVisitingUE
- vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
- 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_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
- vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; // Authorization
- vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; // Authorization
- }
- case (c_userProfile_PCSCFwithVisitingUE2) { // variant c_userProfile_PCSCFwithVisitingUE2
- vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
- 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
- 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
- }
- case (c_userProfile_PCSCFwithUnknownVisitingUE) { // variant c_userProfile_PCSCFwithUnknownVisitingUE
- vc_userprofile.currPort := PX_IMS_TS_PCSCF_PORT; // via (Mw interface of TS)
- 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
- 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
- }
- case (c_userProfile_SCSCFwithHomeUE) { // variant c_userProfile_SCSCFwithHomeUE - UE4 parameters
- 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_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_SCSCFwithHomeUE_domain) { // variant c_userProfile_SCSCFwithHomeUE - UE4 parameters
- 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_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
- vc_userprofile.currPort := PX_IMS_TS_AS1_PORT; // via, route(Isc interface of TS)
- vc_userprofile.currIpaddr := PX_IMS_TS_AS1_IPADDR; // via, route
- vc_userprofile.contactPort := PX_IMS_TS_AS1_PORT; // contact (simulated UE)
- vc_userprofile.contactIpaddr := PX_IMS_TS_AS1_IPADDR; // contact
- vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR;
- vc_userprofile.homeDomain := PX_IMS_TS_AS1_HOME_DOMAIN; // via, route
- vc_userprofile.publUsername := "as1";
- vc_userprofile.qop := ""; // Authorization
- vc_userprofile.privUsername := ""; // Authorization
- vc_userprofile.passwd := ""; // Authorization
- vc_userprofile.registrarDomain := ""; // Authorization
- }
- case (c_userProfile_AS2) { // variant c_userProfile_AS2
- vc_userprofile.currPort := PX_IMS_TS_AS2_PORT; // via, route(Isc interface of TS)
- vc_userprofile.currIpaddr := PX_IMS_TS_AS2_IPADDR; // via, route
- vc_userprofile.homeDomain := PX_IMS_TS_AS2_HOME_DOMAIN; // via, route
- }
- case (c_userProfile_ECSCFwithHomeUE) { // variant c_userProfile_PCSCFwithHomeUE
- vc_userprofile.currPort := PX_IMS_TS_ECSCF_PORT; // via (Mw interface of TS)
- vc_userprofile.currIpaddr := PX_IMS_TS_ECSCF_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_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
- }
- }
- }
-
/**
* @desc Initializes the To header
- * @param p_user Identifies the selected user configuration and location
+ * @param p_user Identifies the selected user's SIP URL
* @return The To header
*/
function f_initToHeader(
- in integer p_user
+ in SipUrl p_user
) runs on ImsComponent
return To {
var To p_to := c_empty_To;
@@ -844,7 +602,7 @@
addressField := {
nameAddr := {
displayName := omit, // optional charstring
- addrSpec := f_initSipUrl(p_user) // SipUrl
+ addrSpec := p_user // SipUrl
}
}, // end addressField
toParams := omit
@@ -854,12 +612,12 @@
/**
* @desc Initializes the From header
- * @param p_user Identifies the selected user configuration and location
+ * @param p_user Identifies the selected user' SIP URL
* @param p_tag_str The string value of the tag id
* @return The From header
*/
function f_initFromHeader(
- in integer p_user,
+ in SipUrl p_user,
charstring p_tag_str
) runs on ImsComponent
return From {
@@ -869,7 +627,7 @@
addressField := {
nameAddr := {
displayName := omit, // optional charstring
- addrSpec := f_initSipUrl(p_user) // SipUrl
+ addrSpec := p_user // SipUrl
}
}, // end addressField
fromParams := {
@@ -882,294 +640,11 @@
return v_from;
}
- /**
- * @desc Initializes the SIP URL
- * @param p_user Identifies the selected user configuration and location
- * @return The SIP URL
- */
- function f_initSipUrl(
- in integer p_user
- ) runs on ImsComponent
- return SipUrl {
- var SipUrl v_sipUrl := {
- scheme := c_sipScheme, // contains "sip"
- components := {
- sip := {
- userInfo := omit,
- hostPort := {omit, omit}
- }
- },
- urlParameters := omit,
- headers := omit
- };
+ //NOTE STF471: removed function f_initSipUrl, have to move up to specific ATS
- var SipUrl v_urnUrl := {
- scheme := c_urnScheme, // contains "urn"
- components := {
- urn := {
- namespaceId := "service",
- namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString
- }
- },
- urlParameters := omit,
- headers := omit
- };
+ //NOTE STF471: removed function f_init_interfaceprofile, have to move up to specific ATS
- select (p_user) {
- case (c_userProfile_UE1atSUThome) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE1_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_UE1_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_UE2atSUThome) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE2_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_UE2_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_UE3atSUThome) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE3_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_UE3_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_UE4atSUThome) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE4_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_UE4_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_IBCFwithHomeUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_IMS1UE_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_ICSCFwithHomeUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_IMS1UE_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_PCSCFwithHomeUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_PCSCF_IPADDR,
- portField := omit
- };
- }
- case (c_userProfile_PCSCFwithVisitingUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_PCSCF_IPADDR,
- portField := omit
- };
- }
- case (c_userProfile_SCSCFwithHomeUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE4_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_SCSCF_HOME_DOMAIN,
- portField := PX_IMS_TS_SCSCF_PORT
- };
- }
- case (c_userProfile_SCSCFwithHomeUE_domain) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_UE4_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_SCSCF_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_userProfile_AS1) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_AS1_IPADDR,
- portField := omit
- };
- }
- case (c_userProfile_ECSCFwithHomeUE) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_IMS1UE_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_ECSCF_IPADDR,
- portField := omit
- };
- }
- case (c_userProfile_ISUP) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_TS_ISUP_PUBLIC_USER,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_ISUP_HOME_DOMAIN,
- portField := omit
- };
- }
- case (c_serviceProfile_EMERGENCY) {
- v_urnUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceId;
- v_urnUrl.components.urn.namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_namespaceSpecificString;
- }
- case (c_serviceProfile_EMERGENCY_INVALID) {
- v_urnUrl.components.urn.namespaceId := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceId;
- v_urnUrl.components.urn.namespaceSpecificString := PX_IMS_SUT_EMERGENCY_SERVICE_INVALID_namespaceSpecificString;
- }
- case (c_interfaceProfile_IMS_SUT_PCSCF1) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := "",
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN,
- portField := PX_IMS_SUT_PCSCF1_PORT
- };
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_domain) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := "",
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_PCSCF1_HOME_DOMAIN,
- portField := PX_IMS_SUT_PCSCF1_PORT
- };
- }
- case (c_interfaceSIPURL_IMS_SUT_PCSCF1_ip) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := "",
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_PCSCF1_IPADDR,
- portField := PX_IMS_TS_SCSCF_PORT
- };
- }
- case (c_interfaceProfile_IMS_SUT_SCSCF) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := "",
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_TS_SCSCF_HOME_DOMAIN,
- portField := PX_IMS_SUT_PCSCF1_PORT
- };
- }
- case (c_conferenceProfile_factoryURI) {
- v_sipUrl.components.sip.userInfo := {
- userOrTelephoneSubscriber := PX_IMS_SUT_CONF_FACTORY_NAME,
- password := omit
- };
- v_sipUrl.components.sip.hostPort := {
- host := PX_IMS_SUT_CONF_HOME_DOMAIN,
- portField := omit
- };
- }
- }
- if (p_user == c_serviceProfile_EMERGENCY or p_user == c_serviceProfile_EMERGENCY_INVALID) {
- return v_urnUrl;
- }
- else {
- return v_sipUrl;
- }
- }
-
/**
- * @desc Initializes interface profile parameters with PIXIT values
- * @param p_interface Identifies the selected interface
- */
- function f_init_interfaceprofile(
- in integer p_interface
- ) runs on ImsComponent {
- select (p_interface) {
- case (c_interfaceProfile_IMS_SUT_IBCF1) { // variant c_interfaceProfile_IMS_SUT_IBCF1
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF1_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF1_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF1_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_IBCF2) { // variant c_interfaceProfile_IMS_SUT_IBCF2
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF2_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF2_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF2_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_PCSCF1) { // variant c_interfaceProfile_IMS_SUT_PCSCF1
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF1_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF1_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF1_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_PCSCF2) { // variant c_interfaceProfile_IMS_SUT_PCSCF2
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF2_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF2_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF2_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_PCSCF) { // variant c_interfaceProfile_IMS_SUT_PCSCF
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_SCSCF) { // variant c_interfaceProfile_IMS_SUT_SCSCF
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_SCSCF_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_SCSCF_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_SCSCF_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_ICSCF) { // variant c_interfaceProfile_IMS_SUT_ICSCF
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_ICSCF_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_ICSCF_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_ICSCF_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_MGCF) { // variant c_interfaceProfile_IMS_SUT_MGCF
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_IMGCF_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IMGCF_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IMGCF_HOME_DOMAIN;
- }
- case (c_interfaceProfile_IMS_SUT_AS) { // variant c_interfaceProfile_IMS_SUT_AS
- vc_interfaceprofile.SUTPort := PX_IMS_SUT_AS_PORT;
- vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_AS_IPADDR;
- vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_AS_HOME_DOMAIN;
- }
- }
- }
-
- /**
* @desc Retrieves user DomainPort value of the user profile
* @param p_userProfile Identifies the selected user profile
* @return The Domain HostPort
@@ -1237,13 +712,17 @@
* @desc Registration and authentication
* @param p_cSeq_s The current cseq
* @param p_auth flag indicating if authentication is needed
+ * @param p_host TODO formerly PX_IMS_TS_PCSCF_HOME_DOMAIN
+ * @param p_port TODO formerly PX_IMS_TS_PCSCF_PORT
*/
function f_Registration_IMS(
inout CSeq p_cSeq_s,
- in boolean p_auth
+ in boolean p_auth,
+ template(value) charstring p_host,
+ template(value) integer p_port
) runs on SipComponent {
f_setHeaders_REGISTER(p_cSeq_s);
- f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization, {c_Integrity_protected_no}))); // LibSip
+ f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization, {c_Integrity_protected_no}), p_host, p_port)); // LibSip
// awaiting of 401 and sending 2nd REGISTER and awaiting 200 OK REGISTER
if (p_auth) {
// receiving 401 Unauthorized response.
@@ -1254,7 +733,7 @@
tc_ack.stop;
// set headers via, cseq and authorization
f_setHeaders_2ndREGISTER(p_cSeq_s);
- f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization, {c_Integrity_protected_yes}))); // LibSip
+ f_SendREGISTER(m_REGISTER_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact, m_add_Authorization_digest(vc_authorization, {c_Integrity_protected_yes}), p_host, p_port)); // LibSip
// awaiting 200 OK REGISTER
f_awaitingOkResponse(p_cSeq_s);
f_getServiceRouteMapIntoRouteInRegistration(p_cSeq_s, vc_response);
@@ -1275,10 +754,14 @@
/**
* @desc awaiting UE1 registration (with authentication)
* @param p_cSeq_s The current cseq
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
* @param p_register The expected REGISTER_Request - default: mw_REGISTER_authorizedRequest_IMS
*/
function f_awaitingRegistration_IMS(
inout CSeq p_cSeq_s,
+ in SipUrl p_to_user,
+ in charstring p_qop,
in template(present) REGISTER_Request p_register :=
mw_REGISTER_authorizedRequest_IMS(
mw_Authorization_digest(
@@ -1304,7 +787,7 @@
vc_via,
m_wwwAuthenticate(
f_calculatecChallenge_forWWWAuthorization(
- PX_IMS_SUT_UE1_QOP,
+ p_qop,
valueof(vc_authorization.body[0].digestResponse)
)
)
@@ -1325,19 +808,23 @@
};
}
v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
- f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, f_initSipUrl(c_userProfile_SCSCFwithHomeUE), v_passociated_url));
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, p_to_user, v_passociated_url));
} // end function f_awaitingRegistration_IMS
/**
* @desc Awaiting UE1 registration (with authentication, without security headers)
* @param p_cSeq_s The current cseq
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
*/
function f_awaitingRegistration_IMS_gm(
- inout CSeq p_cSeq_s
+ inout CSeq p_cSeq_s,
+ in SipUrl p_to_user,
+ in charstring p_qop
) runs on ImsComponent {
vc_ignore_subscribe := true; // handle SUBSCRIBE during the call
- f_awaitingRegistration_IMS(p_cSeq_s, mw_REGISTER_authorizedRequest_wo_securityheaders_IMS);
+ f_awaitingRegistration_IMS(p_cSeq_s, p_to_user, p_qop, mw_REGISTER_authorizedRequest_wo_securityheaders_IMS);
vc_DeregDone := false;
} // end function f_awaitingRegistration_IMS_gm
@@ -1345,9 +832,13 @@
/**
* @desc Remove registration
* @param p_cSeq_s The current cseq
+ * @param p_host TODO formerly PX_IMS_TS_PCSCF_HOME_DOMAIN
+ * @param p_port TODO formerly PX_IMS_TS_PCSCF_PORT
*/
function f_RemoveRegistration_IMS(
- inout CSeq p_cSeq
+ inout CSeq p_cSeq,
+ template(value) charstring p_host,
+ template(value) integer p_port
) runs on SipComponent {
var CommaParam_List v_challenge;
var Credentials v_credentials;
@@ -1355,7 +846,7 @@
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 := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg, p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, p_host, p_port, "0");
v_request.msgHeader.route := f_route();
f_SendREGISTER(v_request);
@@ -1368,7 +859,7 @@
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 := m_REGISTER_Request_expires_IMS(vc_requestUri, vc_callIdReg, p_cSeq, vc_from, vc_to, vc_via, vc_contact, vc_authorization, p_host, p_port, "0");
v_request.msgHeader.route := f_route();
// Re-send protected REGISTER
f_SendREGISTER(v_request); // LibSip
@@ -1398,23 +889,20 @@
* @param p_cSeq_s The current cseq
*/
function f_IMS_preamble_MGCF(
- in integer p_userprofile,
inout CSeq p_cSeq_s
) runs on ImsComponent {
vc_boo_recordRoute := true;
vc_boo_route := true;
- f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_MGCF);
+ //NOTE STF471: removed f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_MGCF);
- f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ f_IMS_preamble_woRegistration(p_cSeq_s);
}
/**
* @desc Sets variables and default initialization for user profile
- * @param p_userprofile User profile of call
* @param p_cSeq_s The current cseq
*/
function f_IMS_preamble_woRegistration(
- in integer p_userprofile,
inout CSeq p_cSeq_s
) runs on ImsComponent {
// avoid deregistration in default behavior
@@ -1426,7 +914,7 @@
LibSip_Steps.f_init_component(p_cSeq_s);
// Preamble
- f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
+ //NOTE STF471: removed f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
vc_sdp_local := valueof(m_SDP_bandwidth(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding), vc_userprofile));
vc_contact := m_Contact(m_SipUrl_contactIpaddr(vc_userprofile));
}
@@ -1434,11 +922,9 @@
//NOTE STF471 added
/**
* @desc Sets variables and default initialization for user profile
- * @param p_userprofile User profile of call
* @param p_cSeq_s The current cseq
*/
function f_IMS_preamble_woRegistration_as(
- in integer p_userprofile,
inout CSeq p_cSeq_s
) runs on ImsComponent {
// avoid deregistration in default behavior
@@ -1450,27 +936,23 @@
LibSip_Steps.f_init_component(p_cSeq_s);
// Preamble
- f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
+ //NOTE STF471: removed f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
vc_sdp_local := valueof(m_SDP_bandwidth(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding), vc_userprofile));
}
/**
* @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
- * @param p_userprofile User profile of call
- * @param p_interface Identifies the selected interface
* @param p_cSeq_s The current cseq
* @param p_register Register template
*/
function f_IMS_preamble_withEmergencyRegistration(
- in integer p_userprofile,
- in integer p_interface,
inout CSeq p_cSeq_s,
template REGISTER_Request p_register
) runs on ImsComponent {
- f_init_interfaceprofile(p_interface);
+ //NOTE STF471: removed f_init_interfaceprofile(p_interface);
// Variables & defaults initialization
- f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ f_IMS_preamble_woRegistration(p_cSeq_s);
// Preamble
f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED, true);
@@ -1480,21 +962,17 @@
/**
* @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
- * @param p_userprofile User profile of call
- * @param p_interface Identifies the selected interface
* @param p_cSeq_s The current cseq
* @param p_register Register template
*/
function f_IMS_preamble_withRegistration(
- in integer p_userprofile,
- in integer p_interface,
inout CSeq p_cSeq_s,
out template REGISTER_Request p_register
) runs on ImsComponent {
- f_init_interfaceprofile(p_interface);
+ //NOTE STF471: removed f_init_interfaceprofile(p_interface);
// Variables & defaults initialization
- f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ f_IMS_preamble_woRegistration(p_cSeq_s);
// Preamble
f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
@@ -1509,21 +987,17 @@
//NOTE STF471 added
/**
* @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5
- * @param p_userprofile User profile of call
- * @param p_interface Identifies the selected interface
* @param p_cSeq_s The current cseq
* @param p_register Register template
*/
function f_IMS_preamble_withRegistrationWoSubscription(
- in integer p_userprofile,
- in integer p_interface,
inout CSeq p_cSeq_s,
out template REGISTER_Request p_register
) runs on ImsComponent {
- f_init_interfaceprofile(p_interface);
+ //NOTE STF471: removed f_init_interfaceprofile(p_interface);
// Variables & defaults initialization
- f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ f_IMS_preamble_woRegistration(p_cSeq_s);
// Preamble
f_Registration(p_cSeq_s, p_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
@@ -1534,21 +1008,21 @@
/**
* @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5 (basic registration template)
- * @param p_userprofile User profile of call
- * @param p_interface Identifies the selected interface
* @param p_cSeq_s The current cseq
+ * @param p_host TODO formerly PX_IMS_TS_PCSCF_HOME_DOMAIN
+ * @param p_port TODO formerly PX_IMS_TS_PCSCF_PORT
*/
function f_IMS_preamble_withRegistrationBasic(
- in integer p_userprofile,
- in integer p_interface,
- inout CSeq p_cSeq_s
+ inout CSeq p_cSeq_s,
+ template(value) charstring p_host,
+ template(value) integer p_port
) runs on ImsComponent {
- f_init_interfaceprofile(p_interface);
+ //NOTE STF471: removed f_init_interfaceprofile(p_interface);
// Variables & defaults initialization
- f_IMS_preamble_woRegistration(p_userprofile, p_cSeq_s);
+ f_IMS_preamble_woRegistration(p_cSeq_s);
// Preamble
- f_Registration_IMS(p_cSeq_s, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
+ f_Registration_IMS(p_cSeq_s, PX_SIP_REGISTER_AUTHENTICATION_ENABLED, p_host, p_port);
f_setHeaders_SUBSCRIBE(p_cSeq_s);
f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG));
}
@@ -1555,13 +1029,9 @@
/**
* @desc Sets variables and default initialization for user profile and handle registration and authentication with MD5 (basic registration template)
- * @param p_userprofile User profile of call
- * @param p_interface Identifies the selected interface
* @param p_cSeq_s The current cseq
*/
function f_IMS_preamble_AS(
- in integer p_userprofile,
- in integer p_interface,
inout CSeq p_cSeq_s
) runs on ImsComponent {
// avoid deregistration in default behavior
@@ -1575,8 +1045,8 @@
vc_default := activate(a_altstep_AS());
// Preamble
- f_init_interfaceprofile(p_interface);
- f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
+ //NOTE STF471: removed f_init_interfaceprofile(p_interface);
+ //NOTE STF471: removed f_init_userprofile(p_userprofile); // assignment of PIXIT values to component variable
vc_sdp_local := valueof(m_SDP_bandwidth(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding), vc_userprofile));
vc_contact := m_Contact(m_SipUrl_contactIpaddr(vc_userprofile));
}
@@ -1628,8 +1098,12 @@
/**
* @desc Terminates component with de-registration
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
*/
function f_SIP_postamble_IMS1_awaitDeRegistration(
+ in SipUrl p_to_user,
+ in charstring p_qop
) runs on ImsComponent {
var SipUrl v_passociated_url;
// Awaiting 1st REGISTER
@@ -1636,7 +1110,7 @@
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
// 401 response
- f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(PX_IMS_SUT_UE1_QOP, valueof(vc_authorization.body[0].digestResponse)))));
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(p_qop, valueof(vc_authorization.body[0].digestResponse)))));
// Awaiting 2nd REGISTER with authorization header
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
@@ -1643,7 +1117,7 @@
// 200OK to complete the request
v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
- f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, f_initSipUrl(c_userProfile_SCSCFwithHomeUE), v_passociated_url));
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, p_to_user, v_passociated_url));
f_terminate_component();
}
@@ -1650,8 +1124,12 @@
/**
* @desc Terminates component with de-registration
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
*/
function f_IMS_postamble_awaitDeRegistration(
+ in SipUrl p_to_user,
+ in charstring p_qop
) runs on ImsComponent {
var SipUrl v_passociated_url;
// Awaiting 1st REGISTER
@@ -1658,7 +1136,7 @@
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
// 401 response
- f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(PX_IMS_SUT_UE1_QOP, valueof(vc_authorization.body[0].digestResponse)))));
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(p_qop, valueof(vc_authorization.body[0].digestResponse)))));
// Awaiting 2nd REGISTER with authorization header
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
@@ -1665,7 +1143,7 @@
// 200OK to complete the request
v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
- f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, f_initSipUrl(c_userProfile_SCSCFwithHomeUE), v_passociated_url));
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, p_to_user, v_passociated_url));
f_terminate_component();
}
@@ -1673,8 +1151,12 @@
/**
* @desc Awaits de-registration
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
*/
function f_IMS_awaitDeRegistration(
+ in SipUrl p_to_user,
+ in charstring p_qop
) runs on ImsComponent {
var SipUrl v_passociated_url;
// Awaiting 1st REGISTER
@@ -1681,7 +1163,7 @@
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
// 401 response
- f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(PX_IMS_SUT_UE1_QOP, valueof(vc_authorization.body[0].digestResponse)))));
+ f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization(p_qop, valueof(vc_authorization.body[0].digestResponse)))));
// Awaiting 2nd REGISTER with authorization header
f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);
@@ -1688,7 +1170,7 @@
// 200OK to complete the request
v_passociated_url := vc_caller_From.addressField.nameAddr.addrSpec;
- f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, f_initSipUrl(c_userProfile_SCSCFwithHomeUE), v_passociated_url));
+ f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact, p_to_user, v_passociated_url));
}
/**
@@ -1784,6 +1266,7 @@
* @param p_cSeq CSeq parameter for outgoing BYE
* @param p_from From parameter for outgoing BYE
* @param p_to To parameter for outgoing BYE
+ * @param p_qop of the peer UE (alternatively)
*/
function f_terminateCall_UE_withDeReg(
SipUrl p_requestUri,
@@ -1790,7 +1273,8 @@
CallId p_CallId,
inout CSeq p_cSeq,
From p_from,
- template(value) To p_to
+ template(value) To p_to,
+ in charstring p_qop
) runs on ImsComponent {
LibSip_Steps.f_setHeadersBYE(p_cSeq);
// Sending of a BYE request to release the call and expect a final response
@@ -1807,7 +1291,7 @@
// timeout should be handled in default_alt_step
}
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_requestUri, p_qop);
} // end function f_terminateCall_UE_withDeReg
}
@@ -1814,10 +1298,14 @@
group defaults {
/**
- * @desc Altstep for clearing registration (IMS user)
+ * @desc Altstep for clearing registration (IMS user)
+ * @param p_to_user The selected user's SIP URL
+ * @param p_qop of the peer UE (alternatively)
* @verdict fail for all unexpected branches
*/
altstep a_clearRegistration_IMSuser(
+ in SipUrl p_to_user,
+ in charstring p_qop
) runs on ImsComponent {
var Response v_response;
var Request v_request;
@@ -1829,7 +1317,7 @@
// f_SendCANCEL(m_CANCEL_Request(vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_reqHostPort, vc_via )); // difference between registration state or transaction state
vc_callId := vc_callIdReg;
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
// allow repeated INVITEs
@@ -1902,7 +1390,7 @@
f_setHeadersOnReceiptOfRequest(v_request);
f_send200OK();
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
// unexpected CANCEL is acknowledged to avoid retransmissions
@@ -1912,7 +1400,7 @@
// Answer to the CANCEL
f_send200OK();
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
// catch 4xx response
@@ -1923,7 +1411,7 @@
LibSip_Steps.f_setHeadersACK();
f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
// catch 5xx response
@@ -1934,7 +1422,7 @@
LibSip_Steps.f_setHeadersACK();
f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
// catch invalid REGISTER
@@ -1947,7 +1435,7 @@
setverdict(fail);
all timer.stop;
action("Please de-register");
- f_IMS_awaitDeRegistration();
+ f_IMS_awaitDeRegistration(p_to_user, p_qop);
f_componentStop();
}
}
/branches/v3/ttcn/LibIms_Templates.ttcn
19,8 → 19,6
// LibIms
import from LibIms_SIPTypesAndValues all;
 
import from LibIms_PIXITS all;
 
// LibXMLTypes
import from XSD all;
 
94,9 → 92,11
}
}
 
template(present) Addr_Union mw_UE1_Addr_display := {
template(present) Addr_Union mw_UE1_Addr_display(
template(present) charstring p_displayName
) := {
nameAddr := {
displayName := PX_IMS_SUT_UE1_DISPLAY,
displayName := p_displayName,
addrSpec := ?
}
}
196,6 → 196,8
}
 
template(value) Path m_path(
template(value) charstring p_host,
template(value) integer p_port,
template(value) SipUrl p_sipUrl
) modifies m_path_TS := {
pathValues := {
209,7 → 211,10
}
}
 
template(value) Path m_path_TS := {
template(value) Path m_path_TS(
template(value) charstring p_host,
template(value) integer p_port
) := {
fieldName := PATH_E,
pathValues := {
{
223,7 → 228,7
userOrTelephoneSubscriber := "registrar",
password := omit
},
hostPort := {PX_IMS_TS_PCSCF_HOME_DOMAIN, PX_IMS_TS_PCSCF_PORT}
hostPort := {p_host, p_port}
}
},
urlParameters := {
386,11 → 391,12
}
}
 
template(present) PVisitedNetworkID mw_pVisitedNetworkID
modifies m_pVisitedNetworkID_TS := {
template(present) PVisitedNetworkID mw_pVisitedNetworkID(
template(present) charstring p_vNetworkSpecToken
) modifies m_pVisitedNetworkID_TS := {
vNetWorkSpec := {
{
vNetworkSpecToken := PX_IMS_SUT_PCSCF_VisitedNetworkID,
vNetworkSpecToken := p_vNetworkSpecToken,
genericParams := *
}
}
2460,11 → 2466,12
template(value) Via p_via,
template(omit) Require p_require := omit,
template(omit) Route p_route := omit,
template(omit) Supported p_supported := omit
template(omit) Supported p_supported := omit,
template(value) charstring p_homeDomain
) modifies m_MESSAGE_Request_NoBody_UE := {
msgHeader := {
pChargingFunctionAddresses := m_pChargingFunctionAddresses_fixedValue,
pChargingVector := m_pChargingVector_origIoi_fixedValue(PX_IMS_SUT_UE1_HOME_DOMAIN)
pChargingVector := m_pChargingVector_origIoi_fixedValue(p_homeDomain)
}
}
 
2752,7 → 2759,9
template(value) To p_to,
template(value) Via p_via,
template(omit) Contact p_contact := omit,
template(omit) Authorization p_authorization := omit
template(omit) Authorization p_authorization := omit,
template(value) charstring p_host,
template(value) integer p_port
) modifies m_REGISTER_Request_Base := {
requestLine := {
method := REGISTER_E,
2764,7 → 2773,7
contact := p_contact,
cSeq := p_cSeq,
fromField := p_from,
path := m_path_TS,
path := m_path_TS(p_host, p_port),
pChargingVector := m_pChargingVector_icid_TS,
pVisitedNetworkID := m_pVisitedNetworkID_TS,
require := {
2785,6 → 2794,8
template(value) Via p_via,
template(omit) Contact p_contact := omit,
template(omit) Authorization p_authorization := omit,
template(value) charstring p_host,
template(value) integer p_port,
template(omit) Path p_path := omit
) modifies m_REGISTER_Request_IMS := {
msgHeader := {path := p_path}
2799,6 → 2810,8
template(value) Via p_via,
template(omit) Contact p_contact := omit,
template(omit) Authorization p_authorization := omit,
template(value) charstring p_host,
template(value) integer p_port,
template(value) DeltaSec p_deltaSec
) modifies m_REGISTER_Request_IMS := {
msgHeader := {