Commit d3e1944c authored by rennoch's avatar rennoch
Browse files

add session termination for PCEF test (postambles)

parent 074f0e58
Loading
Loading
Loading
Loading
+65 −187
Original line number Diff line number Diff line
@@ -1223,6 +1223,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1253,6 +1255,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1284,6 +1288,8 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1316,6 +1322,8 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1348,6 +1356,8 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1378,6 +1388,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_defaultCharging(vc_sessionId, vc_originHost, vc_originRealm, m_online(DISABLE_ONLINE_E), m_offline(DISABLE_OFFLINE_E)));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1425,6 +1437,8 @@ module DiameterGx_Gx_TCFunctions {
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                
   				f_terminate_session(); // postamble

                f_postamble_PCRF();

            } // end function f_TC_PCEF_MSI_01
@@ -1464,6 +1478,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1508,6 +1524,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1552,6 +1570,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1596,6 +1616,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -1727,14 +1749,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -1773,14 +1788,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -1819,14 +1827,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -1863,14 +1864,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -1908,14 +1902,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -1953,14 +1940,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2000,14 +1980,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2045,14 +2018,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2093,14 +2059,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2148,14 +2107,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2192,14 +2144,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2237,14 +2182,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2282,14 +2220,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2342,14 +2273,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2399,14 +2323,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2445,14 +2362,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2491,14 +2401,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2539,14 +2442,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2584,14 +2480,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2629,14 +2518,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2677,11 +2559,14 @@ module DiameterGx_Gx_TCFunctions {
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
                
   				f_terminate_session(); // postamble

                f_postamble_PCRF();

            } // end function f_TC_PCEF_EMS_01
        
        }//end group TP_PCRERole_EMS
        
        group TP_PCEFRole_UMC {	//Usage monitoring control
        
                    /*
@@ -2714,14 +2599,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2764,14 +2642,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2820,14 +2691,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

@@ -2892,6 +2756,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -2956,6 +2822,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -3025,6 +2893,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -3082,6 +2952,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -3159,6 +3031,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -3221,6 +3095,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
@@ -3275,6 +3151,8 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
   				f_terminate_session(); // postamble
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();
+23 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
    import from DiameterGx_Gx_TCFunctions all;
    import from DiameterGx_TestConfiguration all;
    
    
    // GPRS tunneling protocol 
   // import from LibGtp_TypesAndValues all;
    import from LibGtp_Interface all;	
@@ -118,6 +119,28 @@
                        
        }
        
        function f_terminate_session() runs on DiameterComponent
        {
				f_send_RAR(m_RAR_SessionEnd
				   (vc_sessionId, vc_originHost, vc_originRealm,
					vc_destinationRealm, vc_destinationHost,
					m_sessReleaseCause
					(UNSPECIFIED_REASON_E)));
                    
                f_awaiting_RAA(mw_RAA_dummy); 

                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));    
        }    
        
        function f_ConfigRun_PCRF(DiameterComponent p_diameterComponent_pcrf, 
        						 GtpComponent p_gtpComponent1, GtpComponent p_gtpComponent2) runs on ServerSyncComp
        {
+11 −0
Original line number Diff line number Diff line
@@ -1556,6 +1556,17 @@ module DiameterGx_Templates {
                offline := m_offline(PX_OFFLINE_DATA)
            }
            
              template RAR_MSG m_RAR_SessionEnd(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,
                                           template Origin_Realm_AVP p_originRealm,
                                           template Destination_Realm_AVP p_destinationRealm,
                                           template Destination_Host_AVP p_destinationHost,
                                           template Session_Release_Cause_AVP p_sessionReleaseCause)
                  modifies m_RAR_dummy := 
              {
              	  session_Release_Cause := p_sessionReleaseCause
              } 
            
              template RAR_MSG m_RAR_CharRuleInst(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,
                                           template Origin_Realm_AVP p_originRealm,