Skip to content

Commit

Permalink
modules/ims_charging: update - added access-network-information data …
Browse files Browse the repository at this point in the history
…to CCR

    -change storage to dynamic str as opposed to fixed length field
    -send PANI in Ro interim and stop CCRs
  • Loading branch information
jaybeepee committed Mar 4, 2015
1 parent 71eadfa commit c7a148c
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
2 changes: 1 addition & 1 deletion modules/ims_charging/Ro_data.c
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions modules/ims_charging/ims_ro.c
Expand Up @@ -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");
Expand Down Expand Up @@ -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;
Expand Down
21 changes: 13 additions & 8 deletions modules/ims_charging/ro_session_hash.c
Expand Up @@ -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) {
Expand All @@ -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;
Expand Down Expand Up @@ -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");
Expand Down
2 changes: 1 addition & 1 deletion modules/ims_charging/ro_session_hash.h
Expand Up @@ -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;
Expand Down

0 comments on commit c7a148c

Please sign in to comment.