From 38df9e58a81b24ec898107e23513ae1401345bfd Mon Sep 17 00:00:00 2001 From: Henning Westerholt Date: Thu, 2 Jul 2020 08:54:20 +0000 Subject: [PATCH] ims_charging: bugfix for destination_host parameter, implementation was incomplete (cherry picked from commit f5e44252c39c7695cb66893035a0581a65a72f91) --- src/modules/ims_charging/Ro_data.c | 4 ++++ src/modules/ims_charging/Ro_data.h | 1 + src/modules/ims_charging/config.h | 1 + src/modules/ims_charging/doc/ims_charging_admin.xml | 2 +- src/modules/ims_charging/ims_charging_mod.c | 4 ++-- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/ims_charging/Ro_data.c b/src/modules/ims_charging/Ro_data.c index 69e0f1408b4..f3ce0bead81 100644 --- a/src/modules/ims_charging/Ro_data.c +++ b/src/modules/ims_charging/Ro_data.c @@ -185,6 +185,9 @@ Ro_CCR_t * new_Ro_CCR(int32_t acc_record_type, str * user_name, ims_information_ if (cfg.origin_realm.s && cfg.origin_realm.len >0) str_dup(x->origin_realm, cfg.origin_realm, pkg); + + if (cfg.destination_host.s && cfg.destination_host.len > 0) + str_dup(x->destination_host, cfg.destination_host, pkg); if (cfg.destination_realm.s && cfg.destination_realm.len > 0) str_dup(x->destination_realm, cfg.destination_realm, pkg); @@ -281,6 +284,7 @@ void Ro_free_CCR(Ro_CCR_t *x) { str_free(x->origin_host, pkg); str_free(x->origin_realm, pkg); + str_free(x->destination_host, pkg); str_free(x->destination_realm, pkg); str_free_ptr(x->user_name, pkg); diff --git a/src/modules/ims_charging/Ro_data.h b/src/modules/ims_charging/Ro_data.h index 5ac3efab057..5a47b58fb77 100644 --- a/src/modules/ims_charging/Ro_data.h +++ b/src/modules/ims_charging/Ro_data.h @@ -340,6 +340,7 @@ typedef struct { typedef struct { str origin_host; str origin_realm; + str destination_host; str destination_realm; int32_t acct_record_type; diff --git a/src/modules/ims_charging/config.h b/src/modules/ims_charging/config.h index 8ceabd44288..1ac03f24ca1 100644 --- a/src/modules/ims_charging/config.h +++ b/src/modules/ims_charging/config.h @@ -4,6 +4,7 @@ typedef struct { str origin_host; str origin_realm; + str destination_host; str destination_realm; str * service_context_id; } client_ro_cfg; diff --git a/src/modules/ims_charging/doc/ims_charging_admin.xml b/src/modules/ims_charging/doc/ims_charging_admin.xml index 92bf0e000bf..c14937e06ff 100644 --- a/src/modules/ims_charging/doc/ims_charging_admin.xml +++ b/src/modules/ims_charging/doc/ims_charging_admin.xml @@ -530,7 +530,7 @@ modparam("ims_charging", "origin_realm", "kamailio-ims.org") Destination host to be used in Diameter messages to charging-server. - Default value is "hss.ims.smilecoms.com". + Default value is "". <varname>destination_host</varname>parameter usage diff --git a/src/modules/ims_charging/ims_charging_mod.c b/src/modules/ims_charging/ims_charging_mod.c index 150a5258848..efb933c3d35 100644 --- a/src/modules/ims_charging/ims_charging_mod.c +++ b/src/modules/ims_charging/ims_charging_mod.c @@ -28,7 +28,6 @@ MODULE_VERSION struct dlg_binds* dlgb_p; /* parameters */ -char* ro_destination_host_s = "hss.ims.smilecoms.com"; char* ro_service_context_id_root_s = "32260@3gpp.org"; char* ro_service_context_id_ext_s = "ext"; char* ro_service_context_id_mnc_s = "01"; @@ -60,6 +59,7 @@ int ro_db_mode = DB_MODE_NONE; char *domain = "location"; client_ro_cfg cfg = { str_init(""), + str_init(""), str_init(""), str_init(""), 0 @@ -122,7 +122,7 @@ static param_export_t params[] = { { "origin_host", PARAM_STR, &cfg.origin_host }, { "origin_realm", PARAM_STR, &cfg.origin_realm }, { "destination_realm", PARAM_STR, &cfg.destination_realm }, - { "destination_host", PARAM_STRING, &ro_destination_host_s }, /* Unused parameter? */ + { "destination_host", PARAM_STR, &cfg.destination_host }, { "service_context_id_root",PARAM_STRING, &ro_service_context_id_root_s }, { "service_context_id_ext", PARAM_STRING, &ro_service_context_id_ext_s }, { "service_context_id_mnc", PARAM_STRING, &ro_service_context_id_mnc_s },