From e303eb6130a9cedf7fb54800c4065d42b0e0bc71 Mon Sep 17 00:00:00 2001 From: Grzegorz Sluja Date: Tue, 15 Feb 2022 17:02:31 +0100 Subject: [PATCH] Voice: Add support for AverageFarEndInterarrivalJitter CallLog parameter --- dmtree/tr104/common.c | 7 +++++++ dmtree/tr104/common.h | 1 + dmtree/tr104/servicesvoiceservicecalllog.c | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/dmtree/tr104/common.c b/dmtree/tr104/common.c index 7ecdf86e..56040490 100644 --- a/dmtree/tr104/common.c +++ b/dmtree/tr104/common.c @@ -465,6 +465,13 @@ int init_call_log(void) end = DM_STRSTR(token, ","); CHECK_RESULT(end); DM_STRNCPY(cdr.averageRoundTripDelay, token, end - token + 1); + + token = DM_STRSTR(token, ","); + CHECK_RESULT(token); + token += 1; + end = DM_STRSTR(token, ","); + CHECK_RESULT(end); + DM_STRNCPY(cdr.averageFarEndInterarrivalJitter, token, end - token + 1); } // Skip invalid call logs if (cdr.calling_num[0] == '\0' || cdr.called_num[0] == '\0' || diff --git a/dmtree/tr104/common.h b/dmtree/tr104/common.h index e8d02226..c03d7f44 100644 --- a/dmtree/tr104/common.h +++ b/dmtree/tr104/common.h @@ -61,6 +61,7 @@ struct call_log_entry { char jitter[20]; char maxJitter[20]; char averageRoundTripDelay[20]; + char averageFarEndInterarrivalJitter[20]; }; #define MAX_SUPPORTED_CODECS 8 diff --git a/dmtree/tr104/servicesvoiceservicecalllog.c b/dmtree/tr104/servicesvoiceservicecalllog.c index f5da38d9..bbf3ea97 100644 --- a/dmtree/tr104/servicesvoiceservicecalllog.c +++ b/dmtree/tr104/servicesvoiceservicecalllog.c @@ -200,6 +200,13 @@ static int get_ServicesVoiceServiceCallLog_Src_AverageRoundTripDelay(char *refpa return 0; } +static int get_ServicesVoiceServiceCallLog_Src_AverageFarEndInterarrivalJitter(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + struct call_log_entry *entry = (struct call_log_entry *)data; + *value = (entry) ? dmstrdup(entry->averageFarEndInterarrivalJitter) : "0"; + return 0; +} + /* Get Alias - Device.Services.VoiceService.{i}.CallLog.{i}. */ static int get_ServicesVoiceServiceCallLog_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { @@ -311,5 +318,6 @@ DMLEAF tServicesVoiceServiceCallLogSessionSourceRTPParams[] = { {"FarEndPacketLossRate", &DMREAD, DMT_UNINT, get_ServicesVoiceServiceCallLog_Src_FarEndPacketLossRate, NULL, BBFDM_BOTH}, {"MaxJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_MaxJitter, NULL, BBFDM_BOTH}, {"AverageRoundTripDelay", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_AverageRoundTripDelay, NULL, BBFDM_BOTH}, +{"AverageFarEndInterarrivalJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_AverageFarEndInterarrivalJitter, NULL, BBFDM_BOTH}, {0} };