Loading DiameterRfRo/ttcn/DiameterRfRo_PIXITS.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -315,6 +315,11 @@ module DiameterRfRo_PIXITS { */ modulepar UTF8String PX_REDIRECT_SERVER_ADDRESS := "10.1.1.1"; /** * @desc The The Time-Quota-Type AVP value, PIXIT item A-10/12 */ modulepar Time_Quota_Type PX_TIME_QUOTA_TYPE := DISCRETE_TIME_PERIOD_E; } // End of group ocfContext /** Loading DiameterRfRo/ttcn/DiameterRfRo_TCFunctions.ttcn +319 −5 Original line number Diff line number Diff line Loading @@ -3106,6 +3106,7 @@ module DiameterRfRo_TCFunctions { // containing a Multiple-Services-Credit-Control AVP mw_quota_Holding_Time_AVP( // containing a Quota-Holding-Time AVP complement(0) // indicating a non 0 value // FIXME Does not compile with TCT3 ) ) ) Loading Loading @@ -3916,7 +3917,7 @@ module DiameterRfRo_TCFunctions { // FIXME How to implement on service termination request ? f_awaiting_ASR( f_awaiting_ASR( // the IUT sends an AS-Request mdw_aSR( vc_sessionId, // containing a Session-ID AVP mdw_asrBodyAvps( Loading @@ -3929,7 +3930,7 @@ module DiameterRfRo_TCFunctions { ) ); f_send_ASA( f_send_ASA( // the IUT receives an AS-Answer md_aSA( vc_sessionId, // containing a Session-ID AVP md_asaBodyAvps( Loading @@ -3942,7 +3943,7 @@ module DiameterRfRo_TCFunctions { ) ); f_send_CCR( f_send_CCR( // the IUT receives an CC-Request md_cCR( vc_sessionId, // containing a Session-ID AVP md_ccrBodyAvps_TypeOfCharging( Loading @@ -3960,7 +3961,7 @@ module DiameterRfRo_TCFunctions { ) ); f_awaiting_CCA( f_awaiting_CCA( // the IUT sends an CC-Answer mdw_cCA( vc_sessionId, // containing a Session-ID AVP mdw_ccaBodyAvps( Loading @@ -3985,6 +3986,319 @@ module DiameterRfRo_TCFunctions { } // End of function f_TC_RO_OCF_OP_11 /** * @desc Verify that the IUT can successfully process Envelope AVP * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_12() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, m_multiple_Services_Credit_Control_AVP( // containing a Multiple-Services-Credit-Control AVP m_requested_Service_Unit_cC_Total_Octets_AVP( // containing a Requested-Service-Unit AVP m_cC_Total_Octets_AVP(32) // FIXME How to trigger Envelope-Reporting AVP/Volume ) ) ) ) ); f_awaiting_CCA( // the IUT sends a CC-Answer mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mdw_multiple_Services_Credit_Control_Envelope_Reporting_AVP( // containing a Multiple-Services-Credit-Control AVP mw_envelope_Reporting_AVP( // containing an Envelope-Reporting AVP REPORT_ENVELOPES_WITH_VOLUME_E // indicating REPORT_ENVELOPES_WITH_VOLUME ) ) ) ) ); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope( // containing a Multiple-Services-Credit-Control AVP m_granted_Service_Unit_Volume_AVP( // containing a Granted-Service-Unit AVP m_cC_Total_Octets_AVP(32) // indicating reserved units ), m_envelope_AVP( // containing an Envelope AVP m_envelope_Start_Time_AVP( // containing an Envelope-Start-Time AVP 0 // FIXME Set start time value ), -, // optionally containing an Envelope-Stop-Time AVP m_cC_Total_Octets_AVP(32), // containing a CC-Total-Octets AVP m_cC_Input_Octets_AVP(16), // containing a CC-Input-Octets AVP m_cC_Output_Octets_AVP(16) // containing a CC-Output-Octets AVP // optionally containing a CC-Service-Specific-Units AVP ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_12 /** * @desc Verify that the IUT can successfully process combinational quota * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_13() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, m_multiple_Services_Credit_Control_AVP( // containing a Multiple-Services-Credit-Control AVP m_requested_Service_Unit_cC_Total_Octets_AVP( // containing a Requested-Service-Unit AVP m_cC_Total_Octets_AVP(32) // FIXME How to trigger Envelope-Reporting AVP/Volume ) ) ) ) ); f_awaiting_CCA( // the IUT sends a CC-Answer mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mdw_multiple_Services_Credit_Control_Time_Quota_Mechanism_AVP( // containing a Multiple-Services-Credit-Control AVP mw_time_Quota_Mechanism_AVP( // containing a Time-Quota-Mechanism AVP m_time_Quota_Type_AVP( // containing a Time-Quota-Type AVP PX_TIME_QUOTA_TYPE // indicating a value Table 3 ), m_base_Time_Interval_AVP( // containing a Base-Time-Interval AVP 0 // indicating the length of the base time interval ) ) ) ) ) ); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope( // containing a Multiple-Services-Credit-Control AVP m_granted_Service_Unit_Volume_AVP( // containing a Granted-Service-Unit AVP m_cC_Total_Octets_AVP(32) // indicating reserved units ), m_envelope_AVP( // containing an Envelope AVP m_envelope_Start_Time_AVP( // containing an Envelope-Start-Time AVP 0 // FIXME Set start time value ), -, // optionally containing an Envelope-Stop-Time AVP m_cC_Total_Octets_AVP(32), // containing a CC-Total-Octets AVP m_cC_Input_Octets_AVP(16), // containing a CC-Input-Octets AVP m_cC_Output_Octets_AVP(16) // containing a CC-Output-Octets AVP // optionally containing a CC-Service-Specific-Units AVP ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_13 /** * @desc Verify that the IUT can successfully process control of offline charging information * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_14() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, -, -, m_multiple_Services_Credit_Control_AVP( m_requested_Service_Unit_cC_Time_AVP( m_cC_Time_AVP(PX_CC_TIME_VALUE) ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_service_Information( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER_SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mw_service_Information_PS_Information_AVP( // containing a Service-Information AVP mw_ps_Information_AVP( // containing a PS-Information AVP mw_offline_Charging_AVP // containing an Offline-Charging AVP // contaning a Quota-Consumption-Time AVP or, // contaning a Time-Quota-Mechanism AVP // FIXME optionally containing an Envelope-Reporting AVP // indicating REPORT_ENVELOPES_WITH_VOLUM ) ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_14 } // End of group TP_RO_OCF_OP } //End of group TP_RO_OCF_Role Loading Loading
DiameterRfRo/ttcn/DiameterRfRo_PIXITS.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -315,6 +315,11 @@ module DiameterRfRo_PIXITS { */ modulepar UTF8String PX_REDIRECT_SERVER_ADDRESS := "10.1.1.1"; /** * @desc The The Time-Quota-Type AVP value, PIXIT item A-10/12 */ modulepar Time_Quota_Type PX_TIME_QUOTA_TYPE := DISCRETE_TIME_PERIOD_E; } // End of group ocfContext /** Loading
DiameterRfRo/ttcn/DiameterRfRo_TCFunctions.ttcn +319 −5 Original line number Diff line number Diff line Loading @@ -3106,6 +3106,7 @@ module DiameterRfRo_TCFunctions { // containing a Multiple-Services-Credit-Control AVP mw_quota_Holding_Time_AVP( // containing a Quota-Holding-Time AVP complement(0) // indicating a non 0 value // FIXME Does not compile with TCT3 ) ) ) Loading Loading @@ -3916,7 +3917,7 @@ module DiameterRfRo_TCFunctions { // FIXME How to implement on service termination request ? f_awaiting_ASR( f_awaiting_ASR( // the IUT sends an AS-Request mdw_aSR( vc_sessionId, // containing a Session-ID AVP mdw_asrBodyAvps( Loading @@ -3929,7 +3930,7 @@ module DiameterRfRo_TCFunctions { ) ); f_send_ASA( f_send_ASA( // the IUT receives an AS-Answer md_aSA( vc_sessionId, // containing a Session-ID AVP md_asaBodyAvps( Loading @@ -3942,7 +3943,7 @@ module DiameterRfRo_TCFunctions { ) ); f_send_CCR( f_send_CCR( // the IUT receives an CC-Request md_cCR( vc_sessionId, // containing a Session-ID AVP md_ccrBodyAvps_TypeOfCharging( Loading @@ -3960,7 +3961,7 @@ module DiameterRfRo_TCFunctions { ) ); f_awaiting_CCA( f_awaiting_CCA( // the IUT sends an CC-Answer mdw_cCA( vc_sessionId, // containing a Session-ID AVP mdw_ccaBodyAvps( Loading @@ -3985,6 +3986,319 @@ module DiameterRfRo_TCFunctions { } // End of function f_TC_RO_OCF_OP_11 /** * @desc Verify that the IUT can successfully process Envelope AVP * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_12() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, m_multiple_Services_Credit_Control_AVP( // containing a Multiple-Services-Credit-Control AVP m_requested_Service_Unit_cC_Total_Octets_AVP( // containing a Requested-Service-Unit AVP m_cC_Total_Octets_AVP(32) // FIXME How to trigger Envelope-Reporting AVP/Volume ) ) ) ) ); f_awaiting_CCA( // the IUT sends a CC-Answer mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mdw_multiple_Services_Credit_Control_Envelope_Reporting_AVP( // containing a Multiple-Services-Credit-Control AVP mw_envelope_Reporting_AVP( // containing an Envelope-Reporting AVP REPORT_ENVELOPES_WITH_VOLUME_E // indicating REPORT_ENVELOPES_WITH_VOLUME ) ) ) ) ); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope( // containing a Multiple-Services-Credit-Control AVP m_granted_Service_Unit_Volume_AVP( // containing a Granted-Service-Unit AVP m_cC_Total_Octets_AVP(32) // indicating reserved units ), m_envelope_AVP( // containing an Envelope AVP m_envelope_Start_Time_AVP( // containing an Envelope-Start-Time AVP 0 // FIXME Set start time value ), -, // optionally containing an Envelope-Stop-Time AVP m_cC_Total_Octets_AVP(32), // containing a CC-Total-Octets AVP m_cC_Input_Octets_AVP(16), // containing a CC-Input-Octets AVP m_cC_Output_Octets_AVP(16) // containing a CC-Output-Octets AVP // optionally containing a CC-Service-Specific-Units AVP ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_12 /** * @desc Verify that the IUT can successfully process combinational quota * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_13() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, m_multiple_Services_Credit_Control_AVP( // containing a Multiple-Services-Credit-Control AVP m_requested_Service_Unit_cC_Total_Octets_AVP( // containing a Requested-Service-Unit AVP m_cC_Total_Octets_AVP(32) // FIXME How to trigger Envelope-Reporting AVP/Volume ) ) ) ) ); f_awaiting_CCA( // the IUT sends a CC-Answer mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mdw_multiple_Services_Credit_Control_Time_Quota_Mechanism_AVP( // containing a Multiple-Services-Credit-Control AVP mw_time_Quota_Mechanism_AVP( // containing a Time-Quota-Mechanism AVP m_time_Quota_Type_AVP( // containing a Time-Quota-Type AVP PX_TIME_QUOTA_TYPE // indicating a value Table 3 ), m_base_Time_Interval_AVP( // containing a Base-Time-Interval AVP 0 // indicating the length of the base time interval ) ) ) ) ) ); f_send_CCR( // the IUT receives a CC-Request md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ), m_cC_Request_Number_dummy, m_service_Context_Id(PX_SERVICE_CONTEXT_ID), -, md_multiple_Services_Credit_Control_granted_Service_Unit_Envelope( // containing a Multiple-Services-Credit-Control AVP m_granted_Service_Unit_Volume_AVP( // containing a Granted-Service-Unit AVP m_cC_Total_Octets_AVP(32) // indicating reserved units ), m_envelope_AVP( // containing an Envelope AVP m_envelope_Start_Time_AVP( // containing an Envelope-Start-Time AVP 0 // FIXME Set start time value ), -, // optionally containing an Envelope-Stop-Time AVP m_cC_Total_Octets_AVP(32), // containing a CC-Total-Octets AVP m_cC_Input_Octets_AVP(16), // containing a CC-Input-Octets AVP m_cC_Output_Octets_AVP(16) // containing a CC-Output-Octets AVP // optionally containing a CC-Service-Specific-Units AVP ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_multiple_Services_Credit_Control( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER-SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP UPDATE_REQUEST_E // indicating UPDATE_REQUEST ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_13 /** * @desc Verify that the IUT can successfully process control of offline charging information * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RO_OCF_OP_14() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_CCR( md_cCR( vc_sessionId, md_ccrBodyAvps_TypeOfCharging( vc_originHost, vc_originRealm, vc_destinationRealm, md_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), m_cC_Request_Number_dummy, -, -, m_multiple_Services_Credit_Control_AVP( m_requested_Service_Unit_cC_Time_AVP( m_cC_Time_AVP(PX_CC_TIME_VALUE) ) ) ) ) ); f_awaiting_CCA( mdw_cCA( vc_sessionId, mdw_ccaBodyAvps_service_Information( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER_SUCCESS ), vc_originHost, vc_originRealm, mw_cC_Request_Type_AVP( // containing a CC-Request-Type AVP INITIAL_REQUEST_E // indicating INITIAL_REQUEST ), mw_cC_Request_Number_AVP, mw_service_Information_PS_Information_AVP( // containing a Service-Information AVP mw_ps_Information_AVP( // containing a PS-Information AVP mw_offline_Charging_AVP // containing an Offline-Charging AVP // contaning a Quota-Consumption-Time AVP or, // contaning a Time-Quota-Mechanism AVP // FIXME optionally containing an Envelope-Reporting AVP // indicating REPORT_ENVELOPES_WITH_VOLUM ) ) ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_sendCCR_awaitCCA_( TERMINATION_REQUEST_E, 3 ); f_postamble_Ro_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RO_OCF_OP_14 } // End of group TP_RO_OCF_OP } //End of group TP_RO_OCF_Role Loading