Loading LibIms_Steps.ttcn +33 −7 Original line number Diff line number Diff line Loading @@ -49,6 +49,24 @@ module LibIms_Steps }// end f_setHeadersBYE /* * * @desc sets CANCEL header fields (IMS addresses) * extension of general settings from LibSip basic function * @param p_cSeq_s current cSeq * @param p_to_user user_profile id of the user to send Cancel * @verdict */ function f_setHeadersCANCEL(inout CSeq p_cSeq_s, in integer p_to_user) 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 LibSip_Steps.f_setHeadersCANCEL(p_cSeq_s); }// end f_setHeadersCANCEL /** * * @desc sets headers for forward request from AS in case if AS acts as Proxy Loading Loading @@ -678,7 +696,10 @@ module LibIms_Steps } case (c_userProfile_SCSCFwithHomeUE) { p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit} p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT} // case (c_userProfile_SCSCFwithHomeUE) { // p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=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}; Loading Loading @@ -862,7 +883,7 @@ module LibIms_Steps */ function f_awaitingRegistration_IMS(inout CSeq p_cSeq_s) runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -874,12 +895,13 @@ module LibIms_Steps ); //Awaiting 2nd REGISTER with authorization header f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes)))); f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse((c_Integrity_protected_yes,c_Integrity_protected_ip_assoc_pending))))); // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}}; 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 := 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)); }//end function f_awaitingRegistration_IMS Loading Loading @@ -1039,6 +1061,7 @@ module LibIms_Steps function f_SIP_postamble_IMS1_awaitDeRegistration () runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -1055,13 +1078,15 @@ module LibIms_Steps // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}}; 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 := 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_terminate_component() }; function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -1078,7 +1103,8 @@ module LibIms_Steps // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}}; 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 := 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_terminate_component() }; Loading LibIms_Templates.ttcn +14 −6 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ group HeaderFieldTemplates{ minSeParam:=omit } template PathValue mw_pathvalue (SipUrl p_sipUrl):= template PathValue mw_pathvalue (template SipUrl p_sipUrl):= { nameAddr := {displayName := *, // optional charstring addrSpec := p_sipUrl // SipUrl Loading Loading @@ -103,7 +103,7 @@ group HeaderFieldTemplates{ * @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 */ template Path mw_path (SipUrl p_sipUrl):= template Path mw_path (template SipUrl p_sipUrl):= { fieldName := PATH_E, pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl Loading Loading @@ -379,6 +379,12 @@ group HeaderFieldTemplates{ substateParams := omit } //[3455/5.1] template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := { fieldName := P_ASSOCIATED_URI_E, nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}} } } // end group HeaderFieldTemplates group MessageBodyTemplates { Loading Loading @@ -2125,7 +2131,7 @@ group request_receive { modifies mw_REGISTER_Request_Base := { msgHeader := { authorization := omit msgHeader := { authorization := ? } } Loading Loading @@ -2609,14 +2615,16 @@ group response_send } template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url) From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url, SipUrl p_passociated_uri) modifies m_Response_Base:= { msgHeader := { contact := p_contact, serviceRoute := {fieldName:=SERVICE_ROUTE_E, routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}} routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}, pAssociatedURI := m_pAssociatedURI({displayName:=omit,addrSpec:=p_passociated_uri}) // PAssociatedURI RFC3455 } } Loading Loading
LibIms_Steps.ttcn +33 −7 Original line number Diff line number Diff line Loading @@ -49,6 +49,24 @@ module LibIms_Steps }// end f_setHeadersBYE /* * * @desc sets CANCEL header fields (IMS addresses) * extension of general settings from LibSip basic function * @param p_cSeq_s current cSeq * @param p_to_user user_profile id of the user to send Cancel * @verdict */ function f_setHeadersCANCEL(inout CSeq p_cSeq_s, in integer p_to_user) 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 LibSip_Steps.f_setHeadersCANCEL(p_cSeq_s); }// end f_setHeadersCANCEL /** * * @desc sets headers for forward request from AS in case if AS acts as Proxy Loading Loading @@ -678,7 +696,10 @@ module LibIms_Steps } case (c_userProfile_SCSCFwithHomeUE) { p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=omit}; p_sipUrl.hostPort := {host := PX_IMS_TS_IMS1UE_HOME_DOMAIN, portField :=omit} p_sipUrl.hostPort := {host := PX_IMS_TS_SCSCF_HOME_DOMAIN, portField :=PX_IMS_TS_SCSCF_PORT} // case (c_userProfile_SCSCFwithHomeUE) { // p_sipUrl.userInfo := {userOrTelephoneSubscriber:=PX_IMS_TS_IMS1UE_PUBLIC_USER, password:=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}; Loading Loading @@ -862,7 +883,7 @@ module LibIms_Steps */ function f_awaitingRegistration_IMS(inout CSeq p_cSeq_s) runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -874,12 +895,13 @@ module LibIms_Steps ); //Awaiting 2nd REGISTER with authorization header f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes)))); f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse((c_Integrity_protected_yes,c_Integrity_protected_ip_assoc_pending))))); // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}}; 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 := 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)); }//end function f_awaitingRegistration_IMS Loading Loading @@ -1039,6 +1061,7 @@ module LibIms_Steps function f_SIP_postamble_IMS1_awaitDeRegistration () runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -1055,13 +1078,15 @@ module LibIms_Steps // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}}; 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 := 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_terminate_component() }; function f_IMS_postamble_awaitDeRegistration () runs on ImsComponent { var SipUrl v_passociated_url; //Awaiting 1st REGISTER f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS); Loading @@ -1078,7 +1103,8 @@ module LibIms_Steps // 200OK to complete the request vc_contact := vc_request.msgHeader.contact; vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(0)}}; 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 := 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_terminate_component() }; Loading
LibIms_Templates.ttcn +14 −6 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ group HeaderFieldTemplates{ minSeParam:=omit } template PathValue mw_pathvalue (SipUrl p_sipUrl):= template PathValue mw_pathvalue (template SipUrl p_sipUrl):= { nameAddr := {displayName := *, // optional charstring addrSpec := p_sipUrl // SipUrl Loading Loading @@ -103,7 +103,7 @@ group HeaderFieldTemplates{ * @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 */ template Path mw_path (SipUrl p_sipUrl):= template Path mw_path (template SipUrl p_sipUrl):= { fieldName := PATH_E, pathValues := {mw_pathvalue(p_sipUrl)} // any number of SipUrl may occur before p_sipUrl Loading Loading @@ -379,6 +379,12 @@ group HeaderFieldTemplates{ substateParams := omit } //[3455/5.1] template PAssociatedURI m_pAssociatedURI (template NameAddr p_nameAddr) := { fieldName := P_ASSOCIATED_URI_E, nameAddrList := {{nameAddr:=p_nameAddr, genericParams:=omit}} } } // end group HeaderFieldTemplates group MessageBodyTemplates { Loading Loading @@ -2125,7 +2131,7 @@ group request_receive { modifies mw_REGISTER_Request_Base := { msgHeader := { authorization := omit msgHeader := { authorization := ? } } Loading Loading @@ -2609,14 +2615,16 @@ group response_send } template Response m_Response_2xxonREGISTER_IMS (StatusLine p_statusLine, CallId p_callId, CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url) From p_from, To p_to, Via p_via, Contact p_contact, SipUrl p_serviceroute_sip_url, SipUrl p_passociated_uri) modifies m_Response_Base:= { msgHeader := { contact := p_contact, serviceRoute := {fieldName:=SERVICE_ROUTE_E, routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}} routeBody:={{ nameAddr:= {displayName:=omit,addrSpec:=p_serviceroute_sip_url},rrParam:=omit}}}, pAssociatedURI := m_pAssociatedURI({displayName:=omit,addrSpec:=p_passociated_uri}) // PAssociatedURI RFC3455 } } Loading