Commit f558ba36 authored by rennoch's avatar rennoch
Browse files

default for IMS user tests

parent 58fd55a3
Loading
Loading
Loading
Loading
+166 −1
Original line number Diff line number Diff line
@@ -1036,7 +1036,7 @@ module LibIms_Steps
    		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));

            vc_DeregDone := false; 
		}//end function f_awaitingRegistration_IMS_gm


@@ -1349,5 +1349,170 @@ module LibIms_Steps
		
		}
	group defaults {
	    
        altstep a_clearRegistration_IMSuser() runs on SipComponent
        {
            var Response v_response;
            var Request v_request;
		 
            [] any timer.timeout 
            {
                setverdict(fail); 
                all timer.stop; 
                //TODO check how to solve release of call 
                //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_componentStop(); 
            }
            // allow repeated INVITEs
            [vc_ignore_invite] SIPP.receive(mw_INVITE_Request_Base)
            {
              repeat
            }
		
            // allow repeated BYEs after ack of the first BYE
            [vc_ignore_bye] SIPP.receive (mw_BYE_Request_Base(?))
            {
              repeat
            }
            [] SIPP.receive (mw_ACK_Request_Base(?))
            {
                repeat
            }
            // allow 100 replies
            [] SIPP.receive(mw_Response_Base(c_statusLine100,?, ?))
              {
                repeat
              }
			  
            //	ignore 181 if flag is set (following TS 183004 §4.5.2.1)		  
            [vc_ignore181] SIPP.receive(mw_Response_Base(c_statusLine181,vc_callId, vc_cSeq))-> value v_response sender vc_sent_label
              { 
                f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response); 
                repeat;
              } 
	  
            // according to SIP chap.8.1.3.2
            [] SIPP.receive(mw_Response_Base(c_statusLine183,vc_callId, vc_cSeq))
              { 
                repeat;
              } 

            // ignore 484 if flag is set
            [vc_ignore484] SIPP.receive(mw_Response_Base(c_statusLine484,vc_callId, vc_cSeq))
                {
                  repeat
                }
		
            [vc_ignore4xx] SIPP.receive(mw_Response_Base(mw_statusLine4xx,vc_callId, ?))-> value v_response sender vc_sent_label
              { 
                f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response); 
                f_SendACK(m_ACK_Request_route(vc_requestUri, vc_callId, v_response.msgHeader.cSeq, vc_from, vc_to, vc_via, vc_route));
                repeat
              }			
		
            [vc_ignore200OKinv] SIPP.receive(mw_Response_Base(c_statusLine200, vc_callId, ?))
              { 
                repeat
              }
	
            [] SIPP.receive(mw_INFO_Request_Base(vc_callId))->value v_request sender vc_sent_label
              { 
                f_setHeadersOnReceiptOfRequest(v_request); 
                f_send200OK();
                repeat
              }
		  
            // awaiting of Notify
            [] SIPP.receive(mw_NOTIFY_Request_Base(vc_callId))->value v_request sender vc_sent_label
              { 
                f_setHeadersOnReceiptOfRequest(v_request); 
                f_send200OK();
                repeat
              }
            // awaiting of subscribe from UE
            [vc_ignore_subscribe] SIPP.receive(mw_SUBSCRIBE_Request_Base)-> value v_request sender vc_sent_label
              {
                f_setHeadersOnReceiptOfSUBSCRIBE(v_request);
                f_send200OK();
                repeat;
              }
		  
            //awaiting of subscribe on proxy
            [] SIPP.receive(mw_SUBSCRIBE_Request_Base)->value v_request sender vc_sent_label
              { 
                f_setHeadersOnReceiptOfRequest(v_request); 
                f_sendResponse(m_Response_Contact(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact));
                //f_setHeadersGeneral(vc_cSeq, "NOTIFY"); // cseq, contact, branch, via
                //f_SendNOTIFY(m_NOTIFY_Request_contact(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact));
                log(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec);
                f_SendNOTIFY(m_NOTIFY_Request_contact(v_request.msgHeader.contact.contactBody.contactAddresses[0].addressField.nameAddr.addrSpec, vc_callId, vc_cSeq, vc_callee_From, vc_callee_To, vc_via, vc_contact));		
                f_awaitingOkResponse(vc_cSeq);
                repeat
              }            
            // unexpected BYE is acknowledged to avoid retransmissions
            [] SIPP.receive(mw_BYE_Request_Base(?))-> value v_request sender vc_sent_label
              {
                setverdict(fail);
                f_setHeadersOnReceiptOfRequest(v_request); 
                f_send200OK();
                action("Please de-register");          
                f_IMS_awaitDeRegistration();
                f_componentStop(); 
                }			  
			  
            // unexpected CANCEL is acknowledged to avoid retransmissions
            [] SIPP.receive(mw_CANCEL_Request_Base(?))-> value v_request sender vc_sent_label
              {
                setverdict(fail);
                f_setHeadersOnReceiptOfRequest(v_request);
                //Answer to the CANCEL
                f_send200OK();
                action("Please de-register");          
                f_IMS_awaitDeRegistration();
                f_componentStop(); 
                }
            // catch 4xx response
            [] SIPP.receive(mw_Response_Base(mw_statusLine4xx, vc_callId, ?))-> value v_response sender vc_sent_label
            { 
                setverdict(fail);
                f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response); 
                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_componentStop(); 
            }
            // catch 5xx response
            [] SIPP.receive(mw_Response_Base(mw_statusLine5xx, vc_callId, ?))-> value v_response sender vc_sent_label
            { 
                setverdict(fail);
                f_setHeadersOnReceiptOfResponse(v_response.msgHeader.cSeq, v_response); 
                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_componentStop(); 
            }	
            // catch invalid REGISTER	  
            [] SIPP.receive(mw_REGISTER_Request_Base)-> value v_request sender vc_sent_label
            {
                setverdict(fail); 
                f_componentStop(); 
            }
            // any	  
            [] SIPP.receive
            {
                setverdict(fail); 
                all timer.stop; 
//              f_setHeadersCANCEL(vc_cSeq);
//              f_SendCANCEL(m_CANCEL_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_cancel_To, vc_via )); // difference between registration state or transaction state
                action("Please de-register");          
                f_IMS_awaitDeRegistration();
                f_componentStop(); 
            }
        }
	}
} // module LibIms_Steps