OCMC Balance Query Remaining Balance
(Doc ID 1949709.1)
Last updated on DECEMBER 12, 2022
Applies to:
Oracle Communications Online Mediation Controller - Version 6.1.0 and laterInformation in this document applies to any platform.
Symptoms
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:
2014-08-26T08:53:12.000-07:00
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.
Changes
Cause
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
Symptoms |
Changes |
Cause |
Solution |
References |