Commit a5530dbe authored by pintar's avatar pintar
Browse files

week5/2010 validation on STF368/369

parent 31e7ce1a
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -945,6 +945,7 @@ module LibIms_Steps
		function f_awaitingRegistration_IMS(inout CSeq p_cSeq_s) runs on ImsComponent
		{
		var SipUrl v_passociated_url;
		var Authorization p_authorization;
		//Awaiting 1st REGISTER	
		f_awaitingREGISTER(mw_REGISTER_unauthorizedRequest_IMS);

@@ -966,6 +967,38 @@ module LibIms_Steps

		}//end function f_awaitingRegistration_IMS

		/**
		 * 
		 * @desc  awaiting UE1 registration (with authentication)
		 * @param p_cSeq_s		cseq parameter 
		 */
		function f_awaitingRegistration_IMS_gm(inout CSeq p_cSeq_s) runs on ImsComponent
		{
            vc_ignore_subscribe := true;//handle SUBSCRIBE during the call
    		var SipUrl v_passociated_url;
    		var Authorization p_authorization;
    		//Awaiting 1st REGISTER	
    		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,vc_authorization.body[0].digestResponse)))
    			);
    
    		//Awaiting 2nd REGISTER	with authorization header
            f_awaitingREGISTER(mw_REGISTER_authorizedRequest_wo_securityheaders_IMS);
    		//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)}};
    		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_gm


	/**
	 * 
+24 −3
Original line number Diff line number Diff line
@@ -1239,7 +1239,7 @@ group request_send {
	{
		msgHeader :=
		{
			reason := mw_Reason(p_cause),
			reason := m_Reason(p_cause),
			route := p_route
		}
	}
@@ -1975,6 +1975,7 @@ group request_send {
		{
			pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,	
			contact	:= p_contact,
        	contentLength := {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
			cSeq	:= {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
			event	:= m_Event_reg,
			expires	:= m_Expires_600000
@@ -1982,6 +1983,26 @@ group request_send {
		messageBody := p_mb
	}
	
    template SUBSCRIBE_Request m_SUBSCRIBE_Request_mb_event_UE (SipUrl p_requestUri, CallId p_callId, 
            CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact, template MessageBody p_mb, Event p_event, charstring p_contentType)  modifies m_SUBSCRIBE_Request_mb_UE :=
        {
            requestLine	:=
            {
                method := SUBSCRIBE_E,
                requestUri := p_requestUri
            },
            msgHeader :=
            {
                contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  p_contentType},
                pAccessNetworkInfo := m_pAccessNetworkInfo_IEEE_11a,	
                contact	:= p_contact,
                cSeq	:= {fieldName:=CSEQ_E, seqNumber:= p_cSeq.seqNumber, method:= "SUBSCRIBE"},
                event	:= p_event,
                expires	:= m_Expires_600000
            },
            messageBody := p_mb
        }	
	
	template SUBSCRIBE_Request m_SUBSCRIBE_Request_IMS (SipUrl p_requestUri, CallId p_callId, 
		CSeq p_cSeq, From p_from, To p_to, Via p_via, Contact p_contact)  modifies m_SUBSCRIBE_Request_Base :=
	{
@@ -2427,7 +2448,7 @@ group response_send
	{
		msgHeader :=
		{
			//contact		:= p_contact,
			contact		:= p_contact //mandatory field due to 24 229 rel 7.9
			//maxForwards := omit,
			//rSeq		:= {fieldName:=RSEQ_E, responseNum:= 9999}//Ref: ES 283 003 V2.5.1 ch:A.2.1.4.7
		}