OCMC Balance Query Remaining Balance
Last updated on OCTOBER 10, 2016
Applies to:Oracle Communications Online Mediation Controller - Version 6.1.0 and later
Information in this document applies to any platform.
There are issues with the results of unpublished ER (Enhancement requirement) 18240058 delivered with RP6. In short: it doesn't work.
There are three main problems:
1) It assumes diameter uses epoch time for time fields - which it does not.
2) It 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 supports does not support special handling/encoding is required for time dates beyond 2036.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms