diff --git a/modules/ims_charging/ccr.c b/modules/ims_charging/ccr.c index 140d1c1d325..99ab727cf45 100644 --- a/modules/ims_charging/ccr.c +++ b/modules/ims_charging/ccr.c @@ -96,7 +96,7 @@ int Ro_write_ims_information_avps(AAA_AVP_LIST * avp_list, ims_information_t* x) if (!cdp_avp->epcapp.add_Called_Party_Address(&aList2, *(x->called_party_address), 0)) goto error; - if (x->incoming_trunk_id && x->outgoing_trunk_id) { + if (x->incoming_trunk_id && (x->incoming_trunk_id->len > 0) && x->outgoing_trunk_id && (x->outgoing_trunk_id->len > 0)) { if (!cdp_avp->epcapp.add_Outgoing_Trunk_Group_Id(&aList, *(x->outgoing_trunk_id), 0)) goto error; diff --git a/modules/ims_charging/ims_ro.c b/modules/ims_charging/ims_ro.c index 00a89ad07f9..d2ceb0203ad 100644 --- a/modules/ims_charging/ims_ro.c +++ b/modules/ims_charging/ims_ro.c @@ -210,8 +210,10 @@ inline int Ro_add_multiple_service_credit_Control_stop(AAAMessage *msg, int used set_4bytes(x, active_service_identifier); Ro_add_avp_list(&mscc_list, x, 4, AVP_Service_Identifier, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); - set_4bytes(x, active_rating_group); - Ro_add_avp_list(&mscc_list, x, 4, AVP_Rating_Group, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); + if (active_rating_group >= 0) { + set_4bytes(x, active_rating_group); + Ro_add_avp_list(&mscc_list, x, 4, AVP_Rating_Group, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); + } used_group = cdpb.AAAGroupAVPS(mscc_list); cdpb.AAAFreeAVPList(&mscc_list); @@ -245,8 +247,10 @@ inline int Ro_add_multiple_service_credit_Control(AAAMessage *msg, unsigned int set_4bytes(x, active_service_identifier); Ro_add_avp_list(&mscc_list, x, 4, AVP_Service_Identifier, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); - set_4bytes(x, active_rating_group); - Ro_add_avp_list(&mscc_list, x, 4, AVP_Rating_Group, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); + if (active_rating_group >= 0) { + set_4bytes(x, active_rating_group); + Ro_add_avp_list(&mscc_list, x, 4, AVP_Rating_Group, AAA_AVP_FLAG_MANDATORY, 0, AVP_DUPLICATE_DATA, __FUNCTION__); + } /* if we must Used-Service-Unit */ if (used_unit >= 0) {