Commit 7ccb13fc authored by rennoch's avatar rennoch
Browse files

backup

parent b6dd59c6
Loading
Loading
Loading
Loading
+141 −0
Original line number Original line Diff line number Diff line
@@ -400,6 +400,100 @@ module CONF_Steps {
       ));
       ));
    }
    }
    
    
    function f_referConferenceReplaceCall(
        in integer p_to_user, 
        in SipUrl p_conferenceUri,
        inout SessionDialog p_org_Session, 
        inout SessionDialog p_term_Session,
        inout SessionDialog p_existing_Session
    ) runs on ImsComponent {
       var charstring v_callId := p_existing_Session.callId.callid;
       var charstring v_toTag := p_existing_Session.calleeTo.toParams[0].paramValue;
       var charstring v_fromTag := p_existing_Session.callerFrom.fromParams[0].paramValue;
	   
	   var charstring v_string := "INVITE?Replaces=" & v_callId & ";to-tag=" & v_toTag & ";from-tag=" & v_fromTag;
	           
       f_loadSession(p_org_Session);
       
       LibIms_Steps.f_setHeadersREFER(vc_cSeq, c_conferenceProfile_factoryURI);
       vc_to.addressField.addrSpecUnion := p_conferenceUri;
       f_SendREFER(m_REFER_Request_Base(
           p_conferenceUri, 
           vc_callId, 
           vc_cSeq, 
           vc_contact,
           vc_from, 
           vc_to, 
           vc_via, 
           m_ReferTo_SipUrl(f_initSipUrl(p_to_user), v_string),
           m_ReferredBy_SipUrl(f_initSipUrl(vc_userprofile.id))
       ));
        
       p_org_Session := f_saveSession();
        
       //receive 202 
       f_awaitingResponse(mw_Response_Base(
           c_statusLine202, 
           vc_callId, 
           vc_cSeq
       ));
        
        
       f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
           vc_callId,
           "active",
           *,
           m_Event_refer,
           *
       ));
        
        
       // ----  UE#2 get INVITE ----->
       f_awaitingINVITE(mw_INVITE_Request_CONF(
           f_initSipUrl(p_to_user),
           mw_PAssertedID(mw_PAssertedIDValue(mw_SipUrl_custom(p_conferenceUri.userInfo.userOrTelephoneSubscriber, *))),
           mw_Contact_conference
       ));
       
       f_sendResponse(m_Response_18XonINVITE(
           c_statusLine180,
           vc_callId, 
           vc_cSeq,
           vc_caller_From, 
           vc_caller_To, 
           vc_via,
           vc_contact
       )); 
        
       f_sendResponse(m_Response_2xxonINVITE(
           c_statusLine200,
           vc_callId, 
           vc_cSeq,
           vc_caller_From, 
           vc_caller_To, 
           vc_via,
           vc_contact,
           f_route(),
           valueof(m_MBody_SDP(vc_sdp_local))
       ));
       
       f_awaitingACK(mw_ACK_Request_Base(vc_callId));
       
       vc_caller_From := vc_callee_From; 
       vc_caller_To := vc_callee_To;
        
       p_term_Session := f_saveSession();
       f_loadSession(p_org_Session);
        
       f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request(
           vc_callId,
           "terminated",
           *,
           m_Event_refer,
           *
       ));
    }
    
        
        
    /**
    /**
     * 
     * 
@@ -728,6 +822,42 @@ module CONF_Steps {
        ));
        ));
    }
    }
    
    
    function f_terminateSessionCallee(inout SessionDialog p_org_Session, inout SessionDialog p_term_Session) runs on ImsComponent {
        f_loadSession(p_org_Session);
        // UE#1 sends BYE
        LibSip_Steps.f_setHeadersBYE(vc_cSeq);
        vc_to := {fieldName := TO_E,
          addressField := vc_caller_From.addressField,
          toParams := vc_caller_From.fromParams};
  
        vc_from := {fieldName := FROM_E,
          addressField := vc_caller_To.addressField,
          fromParams := vc_caller_To.toParams};
          
        f_SendBYE(m_BYE_Request_Base(
            vc_requestUri, 
            vc_callId, 
            vc_cSeq, 
        	vc_from, 
        	vc_to, 
            vc_via
         ));
         
        p_org_Session := f_saveSession();
        f_loadSession(p_term_Session);
         
        f_awaitingBYE_sendReply(mw_BYE_Request_Base(?));
        
        p_term_Session := f_saveSession();
        f_loadSession(p_org_Session);
        
        f_awaitingResponse(mw_Response_Base(
            c_statusLine200, 
            vc_callId, 
            vc_cSeq
        ));
    }
    
    function f_initSession(inout SessionDialog p_session,in integer p_profile) runs on ImsComponent {
    function f_initSession(inout SessionDialog p_session,in integer p_profile) runs on ImsComponent {
        LibIms_Steps.f_init_userprofile(p_profile);
        LibIms_Steps.f_init_userprofile(p_profile);
        
        
@@ -742,6 +872,17 @@ module CONF_Steps {
        p_session := f_saveSession();
        p_session := f_saveSession();
    }
    }
    
    
    function f_prepareUri(SipUrl p_user, CallId p_callid, To p_to, From p_from) return SipUrl {
        var charstring v_string := "Callid=" & p_callid.callid & "&From+" & p_from.addressField.nameAddr.addrSpec.userInfo.userOrTelephoneSubscriber & "@" & p_from.addressField.nameAddr.addrSpec.hostPort.host & "%3bTag%3D" & p_from.fromParams[0].paramValue &
        "&To=" & p_to.addressField.nameAddr.addrSpec.userInfo.userOrTelephoneSubscriber & "@" & p_to.addressField.nameAddr.addrSpec.hostPort.host & "%3bTag%3D" & p_to.toParams[0].paramValue;
        
        p_user.headers := {
         	{id := v_string}   
        }
        
        return p_user;
    }
    
    
    
    
    
    
    
+514 −171

File changed.

Preview size limit exceeded, changes collapsed.

+23 −0
Original line number Original line Diff line number Diff line
@@ -298,6 +298,29 @@ template Resource_lists mw_Resource_lists(
        messageBody := p_mb
        messageBody := p_mb
    }
    }
    
    
    template INVITE_Request m_INVITE_Request_CONF_RL_IMS (
        SipUrl p_requestUri, 
        CallId p_callId, 
        CSeq p_cSeq, 
        From p_from, 
        To p_to,
        Via p_via, 
        Contact p_contact, 
        template Require p_require,
        template Route p_route, 
        template RecordRoute p_recordRoute, 
        template PAssertedID p_pAssertedID, 
        template Supported p_supported, 
        template PChargingVector p_pChargingVector, 
        template MessageBody p_mb 
    ) modifies m_INVITE_Request_CONF_IMS := {
        msgHeader :=
        {
            contentLength	:= {fieldName := CONTENT_LENGTH_E, len:= f_MessageBodyLength(valueof(p_mb))},
            contentType := {fieldName := CONTENT_TYPE_E, mediaType :=  c_mimeMultipart}
        }
    }
    
    template Route m_route_interface_CONF (in ImsInterfaceProfile p_interfaceprofile,in SipUserProfile p_userprofile, charstring p_destination):= {   
    template Route m_route_interface_CONF (in ImsInterfaceProfile p_interfaceprofile,in SipUserProfile p_userprofile, charstring p_destination):= {   
        fieldName := ROUTE_E,
        fieldName := ROUTE_E,
        routeBody := {
        routeBody := {
+2 −2
Original line number Original line Diff line number Diff line
@@ -379,7 +379,7 @@ module CONF_TestCases {
            v_scscf.start(f_TC_CONF_N03_007(p_cSeq));
            v_scscf.start(f_TC_CONF_N03_007(p_cSeq));
        
        
            // synchronize component
            // synchronize component
            f_serverSync1Client({c_prDone, c_tbDone});
            f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
        
        
            // tear down test configuration
            // tear down test configuration
            f_cf_as_down(v_scscf);
            f_cf_as_down(v_scscf);
@@ -401,7 +401,7 @@ module CONF_TestCases {
            v_scscf.start(f_TC_CONF_N03_008(p_cSeq));
            v_scscf.start(f_TC_CONF_N03_008(p_cSeq));
        
        
            // synchronize component
            // synchronize component
            f_serverSync1Client({c_prDone, c_tbDone});
            f_serverSync1Client({c_prDone, c_tbDone, c_poDone});
        
        
            // tear down test configuration
            // tear down test configuration
            f_cf_as_down(v_scscf);
            f_cf_as_down(v_scscf);