mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2026-03-14 21:20:28 +01:00
Voice: Fixes for some rtp statistics exposed to tr104
This commit is contained in:
parent
51aa3d5ce4
commit
f76afba750
3 changed files with 57 additions and 9 deletions
|
|
@ -472,7 +472,14 @@ int init_call_log(void)
|
|||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.uLossRate, token, end - token + 1);
|
||||
DM_STRNCPY(cdr.localLossRate, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.remoteLossRate, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
|
|
@ -523,12 +530,33 @@ int init_call_log(void)
|
|||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.averageRoundTripDelay, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.farEndInterarrivalJitter, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.averageFarEndInterarrivalJitter, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.receiveInterarrivalJitter, token, end - token + 1);
|
||||
|
||||
token = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(token);
|
||||
token += 1;
|
||||
end = DM_LSTRSTR(token, ",");
|
||||
CHECK_RESULT(end);
|
||||
DM_STRNCPY(cdr.averageReceiveInterarrivalJitter, token, end - token + 1);
|
||||
}
|
||||
// Skip invalid call logs
|
||||
if (cdr.calling_num[0] == '\0' || cdr.called_num[0] == '\0' ||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@ struct call_log_entry {
|
|||
char localJbAbsMax[20];
|
||||
char remoteJbAbsMax[20];
|
||||
char jbAvg[20];
|
||||
char uLossRate[20];
|
||||
char localLossRate[20];
|
||||
char remoteLossRate[20];
|
||||
char discarded[20];
|
||||
char lost[20];
|
||||
char rxpkts[20];
|
||||
|
|
@ -62,7 +63,10 @@ struct call_log_entry {
|
|||
char jitter[20];
|
||||
char maxJitter[20];
|
||||
char averageRoundTripDelay[20];
|
||||
char farEndInterarrivalJitter[20];
|
||||
char averageFarEndInterarrivalJitter[20];
|
||||
char receiveInterarrivalJitter[20];
|
||||
char averageReceiveInterarrivalJitter[20];
|
||||
};
|
||||
|
||||
#define MAX_SUPPORTED_CODECS 8
|
||||
|
|
|
|||
|
|
@ -187,24 +187,31 @@ static int get_ServicesVoiceServiceCallLog_Src_PacketsSent(char *refparam, struc
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_ServicesVoiceServiceCallLog_Src_ReceiveInterarrivalJitter(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->receiveInterarrivalJitter) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_ServicesVoiceServiceCallLog_Src_AverageReceiveInterarrivalJitter(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->jbAvg) : "0";
|
||||
*value = (entry) ? dmstrdup(entry->averageReceiveInterarrivalJitter) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_ServicesVoiceServiceCallLog_Src_FarEndInterarrivalJitter(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->jitter) : "0";
|
||||
*value = (entry) ? dmstrdup(entry->farEndInterarrivalJitter) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_ServicesVoiceServiceCallLog_Src_FarEndPacketLossRate(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
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->uLossRate) : "0";
|
||||
*value = (entry) ? dmstrdup(entry->averageFarEndInterarrivalJitter) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -222,10 +229,17 @@ 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)
|
||||
static int get_ServicesVoiceServiceCallLog_Src__ReceivePacketLossRate(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";
|
||||
*value = (entry) ? dmstrdup(entry->localLossRate) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_ServicesVoiceServiceCallLog_Src_FarEndPacketLossRate(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->remoteLossRate) : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -337,11 +351,13 @@ DMLEAF tServicesVoiceServiceCallLogSessionSourceRTPParams[] = {
|
|||
{"PacketsLost", &DMREAD, DMT_UNINT, get_ServicesVoiceServiceCallLog_Src_PacketsLost, NULL, BBFDM_BOTH},
|
||||
{"PacketsReceived", &DMREAD, DMT_UNLONG, get_ServicesVoiceServiceCallLog_Src_PacketsReceived, NULL, BBFDM_BOTH},
|
||||
{"PacketsSent", &DMREAD, DMT_UNLONG, get_ServicesVoiceServiceCallLog_Src_PacketsSent, NULL, BBFDM_BOTH},
|
||||
{"ReceiveInterarrivalJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_ReceiveInterarrivalJitter, NULL, BBFDM_BOTH},
|
||||
{"AverageReceiveInterarrivalJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_AverageReceiveInterarrivalJitter, NULL, BBFDM_BOTH},
|
||||
{"FarEndInterarrivalJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_FarEndInterarrivalJitter, NULL, BBFDM_BOTH},
|
||||
{"AverageFarEndInterarrivalJitter", &DMREAD, DMT_INT, get_ServicesVoiceServiceCallLog_Src_AverageFarEndInterarrivalJitter, NULL, BBFDM_BOTH},
|
||||
{"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},
|
||||
{"ReceivePacketLossRate", &DMREAD, DMT_UNINT, get_ServicesVoiceServiceCallLog_Src__ReceivePacketLossRate, NULL, BBFDM_BOTH},
|
||||
{0}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue