My Oracle Support Banner

OCMC Balance Query Remaining Balance (Doc ID 1949709.1)

Last updated on DECEMBER 24, 2020

Applies to:

Oracle Communications Online Mediation Controller - Version 6.1.0 and later
Information in this document applies to any platform.


There are three main problems:

1) Oracle Communications Online Mediation Controller (OCMC) assumes diameter uses epoch time for time fields - which it does not.

2) OCMC makes comparisons using signed ints - any future dates will be well above the MAXINT in this case - diameter requires a 4-byte /unsigned/ integer value.

   Almost everywhere it is used, validEnd is passed around as a long and cast as an int, but any valid date will be above the MAXINT for a signed integer (Java has no unsigned integers that I am aware of)

Take this example date from a balance query response:


In epoch time, this is 1409068392 - that's OK, it's less than MAXINT (2147483647), but the diameter time field starts from 1900 rather than 1970 - so we need to add 70 years worth of seconds - I.E. 2208988800

2208988800 + 1409068392 = 3618057192

In a long data-type this is fine, but this looks like -676910104 when viewed as a signed integer (or 0xD7A72BE8 in hex). ng java int comparison.

In addition, OCMC does not support special handling/encoding is required for time dates beyond 2036.




To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.