diff --git a/modules/ims_charging/Ro_data.c b/modules/ims_charging/Ro_data.c index 88e4755546c..c15ba9f42a4 100644 --- a/modules/ims_charging/Ro_data.c +++ b/modules/ims_charging/Ro_data.c @@ -125,7 +125,7 @@ ims_information_t * new_ims_information(event_type_t * event_type, time_stamps_t str_dup_ptr(x->outgoing_trunk_id, *outgoing_trunk_id, pkg); if (pani && pani->s) { - str_dup_ptr(x->access_network_info, *pani, pkg); + str_dup_ptr(x->access_network_info, *pani, pkg); } //WL_FREE_ALL(&(x->called_asserted_identity),str_list_t,pkg); diff --git a/modules/ims_charging/ims_ro.c b/modules/ims_charging/ims_ro.c index b2d46cfe9d2..eb3516573ab 100644 --- a/modules/ims_charging/ims_ro.c +++ b/modules/ims_charging/ims_ro.c @@ -526,7 +526,7 @@ void send_ccr_interim(struct ro_session* ro_session, unsigned int used, unsigned goto error; if (!(ims_info = new_ims_information(event_type, time_stamps, &ro_session->callid, &ro_session->callid, &ro_session->asserted_identity, - &ro_session->called_asserted_identity, 0, 0, 0, ro_session->direction, &ro_session->incoming_trunk_id, &ro_session->outgoing_trunk_id, 0))) + &ro_session->called_asserted_identity, 0, 0, 0, ro_session->direction, &ro_session->incoming_trunk_id, &ro_session->outgoing_trunk_id, &ro_session->pani))) goto error; LM_DBG("Created IMS information\n"); @@ -760,7 +760,7 @@ void send_ccr_stop(struct ro_session *ro_session) { goto error0; if (!(ims_info = new_ims_information(event_type, time_stamps, &ro_session->callid, &ro_session->callid, &ro_session->asserted_identity, - &ro_session->called_asserted_identity, 0, 0, 0, ro_session->direction, &ro_session->incoming_trunk_id, &ro_session->outgoing_trunk_id, 0))) + &ro_session->called_asserted_identity, 0, 0, 0, ro_session->direction, &ro_session->incoming_trunk_id, &ro_session->outgoing_trunk_id, &ro_session->pani))) goto error0; event_type = 0; diff --git a/modules/ims_charging/ro_session_hash.c b/modules/ims_charging/ro_session_hash.c index f2e6ab6c4c7..b78d827f58a 100644 --- a/modules/ims_charging/ro_session_hash.c +++ b/modules/ims_charging/ro_session_hash.c @@ -180,7 +180,8 @@ struct ro_session* build_new_ro_session(int direction, int auth_appid, int auth_ int active_rating_group, int active_service_identifier, str *incoming_trunk_id, str *outgoing_trunk_id, str *pani){ LM_DBG("Building Ro Session **********"); char *p; - unsigned int len = session_id->len + callid->len + asserted_identity->len + called_asserted_identity->len + mac->len + incoming_trunk_id->len + outgoing_trunk_id->len + sizeof (struct ro_session); + unsigned int len = session_id->len + callid->len + asserted_identity->len + called_asserted_identity->len + mac->len + + incoming_trunk_id->len + outgoing_trunk_id->len + pani->len + sizeof (struct ro_session); struct ro_session *new_ro_session = (struct ro_session*) shm_malloc(len); if (!new_ro_session) { @@ -193,10 +194,10 @@ struct ro_session* build_new_ro_session(int direction, int auth_appid, int auth_ memset(new_ro_session, 0, len); - if (pani->len < MAX_PANI_LEN) { - p = new_ro_session->pani; - memcpy(p, pani->s, pani->len); - } +// if (pani->len < MAX_PANI_LEN) { +// p = new_ro_session->pani; +// memcpy(p, pani->s, pani->len); +// } new_ro_session->direction = direction; new_ro_session->auth_appid = auth_appid; @@ -251,11 +252,15 @@ struct ro_session* build_new_ro_session(int direction, int auth_appid, int auth_ memcpy(p, outgoing_trunk_id->s, outgoing_trunk_id->len); p += outgoing_trunk_id->len; - new_ro_session->avp_value.mac.s = p; - new_ro_session->avp_value.mac.len = mac->len; + new_ro_session->avp_value.mac.s = p; + new_ro_session->avp_value.mac.len = mac->len; memcpy(p, mac->s, mac->len); - p += mac->len; + + new_ro_session->pani.s = p; + memcpy(p, pani->s, pani->len); + new_ro_session->pani.len = pani->len; + p += pani->len; if (p != (((char*) new_ro_session) + len)) { LM_ERR("buffer overflow\n"); diff --git a/modules/ims_charging/ro_session_hash.h b/modules/ims_charging/ro_session_hash.h index 83aa7a32747..4e7c9fe900f 100644 --- a/modules/ims_charging/ro_session_hash.h +++ b/modules/ims_charging/ro_session_hash.h @@ -52,7 +52,7 @@ struct ro_session { str called_asserted_identity; str incoming_trunk_id; str outgoing_trunk_id; - char pani[MAX_PANI_LEN]; + str pani; unsigned int hop_by_hop; struct ro_tl ro_tl; unsigned int reserved_secs;