aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/sgsn_cdr.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2015-05-18 10:00:03 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2015-05-24 12:32:23 +0800
commit8ee13e293739870364e83ea54d61818fb5e44381 (patch)
treece3115b6ade0d7ced838163efa5b9e9f2627378b /openbsc/src/gprs/sgsn_cdr.c
parent10c0f56a0e109054a480d4affcde73dc6affbb56 (diff)
sgsn: Extract the hlr Number into the mm context
Include the hlr-Number of the subscriber in the CDR. This is useful for debugging and understanding which equipment was used during the test. In contrast to the MSISDN the '+' is emitted as the number must be in international format already.
Diffstat (limited to 'openbsc/src/gprs/sgsn_cdr.c')
-rw-r--r--openbsc/src/gprs/sgsn_cdr.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/openbsc/src/gprs/sgsn_cdr.c b/openbsc/src/gprs/sgsn_cdr.c
index 04084f5b2..d0cb71235 100644
--- a/openbsc/src/gprs/sgsn_cdr.c
+++ b/openbsc/src/gprs/sgsn_cdr.c
@@ -64,7 +64,7 @@ static void maybe_print_header(FILE *cdr_file)
if (ftell(cdr_file) != 0)
return;
- fprintf(cdr_file, "timestamp,imsi,imei,msisdn,cell_id,lac,event,pdp_duration,ggsn_addr,sgsn_addr,apni,eua_addr,vol_in,vol_out,charging_id\n");
+ fprintf(cdr_file, "timestamp,imsi,imei,msisdn,cell_id,lac,hlr,event,pdp_duration,ggsn_addr,sgsn_addr,apni,eua_addr,vol_in,vol_out,charging_id\n");
}
static void cdr_log_mm(struct sgsn_instance *inst, const char *ev,
@@ -87,7 +87,7 @@ static void cdr_log_mm(struct sgsn_instance *inst, const char *ev,
maybe_print_header(cdr_file);
gettimeofday(&tv, NULL);
gmtime_r(&tv.tv_sec, &tm);
- fprintf(cdr_file, "%04d%02d%02d%02d%02d%02d%03d,%s,%s,%s,%d,%d,%s\n",
+ fprintf(cdr_file, "%04d%02d%02d%02d%02d%02d%03d,%s,%s,%s,%d,%d,%s,%s\n",
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec,
(int)(tv.tv_usec / 1000),
@@ -96,6 +96,7 @@ static void cdr_log_mm(struct sgsn_instance *inst, const char *ev,
mmctx->msisdn,
mmctx->cell_id,
mmctx->ra.lac,
+ mmctx->hlr,
ev);
fclose(cdr_file);
@@ -171,7 +172,7 @@ static void cdr_log_pdp(struct sgsn_instance *inst, const char *ev,
duration = tp.tv_sec - pdp->cdr_start.tv_sec;
fprintf(cdr_file,
- "%04d%02d%02d%02d%02d%02d%03d,%s,%s,%s,%d,%d,%s,%ld,%s,%s,%s,%s,%" PRIu64 ",%" PRIu64 ",%u\n",
+ "%04d%02d%02d%02d%02d%02d%03d,%s,%s,%s,%d,%d,%s,%s,%ld,%s,%s,%s,%s,%" PRIu64 ",%" PRIu64 ",%u\n",
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec,
(int)(tv.tv_usec / 1000),
@@ -180,6 +181,7 @@ static void cdr_log_pdp(struct sgsn_instance *inst, const char *ev,
pdp->mm ? pdp->mm->msisdn : "N/A",
pdp->mm ? pdp->mm->cell_id : -1,
pdp->mm ? pdp->mm->ra.lac : -1,
+ pdp->mm ? pdp->mm->hlr : "N/A",
ev,
(unsigned long ) duration,
ggsn_addr,