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