smInapCA sends a CONTINUE instead of a RELEASE when a Long Call Ends (Doc ID 2025953.1)

Last updated on AUGUST 05, 2015

Applies to:

Oracle Communications Network Charging and Control - Version 5.0.2 and later
Information in this document applies to any platform.

Symptoms

In all version of Oracle Communications Network Charging and Control (NCC) that ship the smInapCA (a CAMEL Application Part version 1 (CAP1) to CAMEL Application Part version 3 (CAP3) gateway), a problem can occur for long calls (at least one SubsequentReservation request) where once the call ends and the Mobile Switching Centre (MSC) sends an ApplyChargingReport (ACR)/EventReportBasicCallStateModel (ERBCSM), the smInapCA on the Service Logic Controller (SLC) will reply with a continue instead of a releaseCall.

This results in an incorrectly rated call since the total call duration sent to the Billing Engine will only be the length of the initial reserved amount.

By enabling DEBUG on smInapCA and slee_acs, it is possible to see that slee_acs is returning an ApplyCharging (ACH) and CONTINUE to smInapCA when the Universal Attempt Termination with Billing (UATB) node is in State 11 (processUATBSubsequentBEResponse_Camel):

2015/06/17 08:09:19            ccsUATBNode.cc  3346 [16316]        ccsMacroNodes    ----------------------------------------------------------------------------
2015/06/17 08:09:19            ccsUATBNode.cc  3346 [16316]        ccsMacroNodes    UATB : State 11 - processUATBSubsequentBEResponse_Camel()
2015/06/17 08:09:19            ccsUATBNode.cc  3346 [16316]        ccsMacroNodes    ----------------------------------------------------------------------------
2015/06/17 08:09:19            ccsUATBNode.cc  3418 [16316]        ccsMacroNodes    UATB State 11: Received extend time reservation response
2015/06/17 08:09:19            ccsUATBNode.cc  3547 [16316]        ccsMacroNodes    UATB State 11: Successfully extended time reservation on the BE

We have ACH (Storing TCAP component invokeID 3, type 14, opErrId 35) and CONT (Storing TCAP component invokeID 4, type 14, opErrId 31)
  
2015/06/17 08:09:19             acsChassis.cc  2167 [16316]       acsChassisSLEE  Checking for TCAP messages to send
2015/06/17 08:09:19             acsChassis.cc  2171 [16316]       acsChassisSLEE  Sending 2 components in TCAP dialog
2015/06/17 08:09:19             acsChassis.cc  2174 [16316]       acsChassisSLEE  Sending TCAP components now - NOT END
2015/06/17 08:09:19    acsChassisTelephony.cc   366 [16316]       acsChassisSLEE  storeInvokeIds: Entered (sent = 1)
2015/06/17 08:09:19    acsChassisTelephony.cc   367 [16316]       acsChassisSLEE  storeInvokeIds: Storing for dialog c003e7e8
2015/06/17 08:09:19    acsChassisTelephony.cc   391 [16316]       acsChassisSLEE  Storing TCAP component invokeID 3, type 14, opErrId 35 for dialog c003e7e8
2015/06/17 08:09:19    acsChassisTelephony.cc   391 [16316]       acsChassisSLEE  Storing TCAP component invokeID 4, type 14, opErrId 31 for dialog c003e7e8

Sending ACH and CONT to smInapCA (from smInapCA log file):
  
2015/06/17 08:09:19          smCallContext.cc   335 [16363]             smInapCA   (0x1fdd78) processTcapPrim: received invoke ID 3
2015/06/17 08:09:19          smCallContext.cc  4930 [16363]             smInapCA   (0x1fdd78) recordStat: SM_NUM_AC
2015/06/17 08:09:19            smsStatsHash.c   137 [16363]                 misc   htFindEntryPos: No match for entry (possible searched chain)
2015/06/17 08:09:19            smsStatsHash.c   410 [16363]                 misc   smsStatsHashDelta: Entry not found
2015/06/17 08:09:19          smCallContext.cc   344 [16363]             smInapCA   Here TCAP Invoke received
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail   (0x1fdd78) handleApplyCharging: Cs1ApplyCharging
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     aChBillingChargingCharacteristics=A0 04 80 02 03 84
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     CAP{
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     maxCallPeriodDuration=900
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     releaseIfDurationExceeded=FALSE (default)
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     tone=FALSE (default)
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     }
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail     sendCalculationToSCPIndication=FALSE (default)
2015/06/17 08:09:19          smCallContext.cc  1644 [16363]      smInapCA_Detail   
2015/06/17 08:09:19          smCallContext.cc  1654 [16363]             smInapCA    (0x1fdd78) handleApplyCharging: Release when duration exceeded: false
2015/06/17 08:09:19          smCallContext.cc  1655 [16363]             smInapCA    (0x1fdd78) handleApplyCharging: Requested call duration: 900 deci-seconds
2015/06/17 08:09:19          smCallContext.cc  1657 [16363]             smInapCA    (0x1fdd78) handleApplyCharging: Previous total required call duration: 900 deci-seconds
2015/06/17 08:09:19          smCallContext.cc  1686 [16363]             smInapCA    (0x1fdd78) handleApplyCharging: New total required call duration: 1800 deci-seconds
2015/06/17 08:09:19          smCallContext.cc  1687 [16363]             smInapCA    (0x1fdd78) handleApplyCharging: New call timer duration: 900 deci-seconds
2015/06/17 08:09:19          smCallContext.cc   335 [16363]             smInapCA   (0x1fdd78) processTcapPrim: received invoke ID 4
2015/06/17 08:09:19          smCallContext.cc  4930 [16363]             smInapCA   (0x1fdd78) recordStat: SM_NUM_CONT
2015/06/17 08:09:19            smsStatsHash.c   137 [16363]                 misc   htFindEntryPos: No match for entry (possible searched chain)
2015/06/17 08:09:19            smsStatsHash.c   410 [16363]                 misc   smsStatsHashDelta: Entry not found
2015/06/17 08:09:19          smCallContext.cc   344 [16363]             smInapCA   Here TCAP Invoke received
2015/06/17 08:09:19          smCallContext.cc  1581 [16363]      smInapCA_Detail   (0x1fdd78) handleContinue: Cs1Continue
2015/06/17 08:09:19          smCallContext.cc  1581 [16363]      smInapCA_Detail   
2015/06/17 08:09:19          smCallContext.cc  1586 [16363]             smInapCA    (0x1fdd78) handleContinue: invokeId = 4
2015/06/17 08:09:19          smCallContext.cc  1591 [16363]             smInapCA    (0x1fdd78) handleContinue: connect to 39<MSISDN>
2015/06/17 08:09:19          smCallContext.cc  1082 [16363]             smInapCA    (0x1fdd78) addComponent
2015/06/17 08:09:19          smCallContext.cc   666 [16363]             smInapCA   (0x1fdd78) processTcapPrim: Finished processing primitive

This unexpected Intelligent Network Application Part (INAP) CONTINUE coming from slee_acs when it successfully extends the reservation is causing problems with smInapCA.

The smInapCA is retaining the CONTINUE component inside the call context Transaction Capabilities Application Part (TCAP) event primitive.  This TCAP event does not get reset when the next TCAP_CONTINUE comes from the switch (containing a component ERBCSM).  The smInapCA bundles a new ACR with the ERBCSM and adds it to the existing TCAP event primitive in context in preparation for onwards relay.

All of which means that the pre-existing CONTINUE is sent alongside the ACR/ERBCSM pair to slee_acs, which fails to process it:

2015/06/17 08:09:30             acsChassis.cc  1251 [16316]       acsChassisSLEE  TCAP Primitive Received
2015/06/17 08:09:30             acsChassis.cc  1258 [16316]       acsChassisSLEE  Recevied TCAP Primiitive: TCAP Primitive:TCAP_CONTINUE
2015/06/17 08:09:30    acsChassisTelephony.cc   366 [16316]       acsChassisSLEE  storeInvokeIds: Entered (sent = 0)
2015/06/17 08:09:30    acsChassisTelephony.cc   367 [16316]       acsChassisSLEE  storeInvokeIds: Storing for dialog c003e7e8
2015/06/17 08:09:30    acsChassisTelephony.cc   391 [16316]       acsChassisSLEE  Storing TCAP component invokeID 4, type 14, opErrId 31 for dialog c003e7e8
2015/06/17 08:09:30    acsChassisTelephony.cc   391 [16316]       acsChassisSLEE  Storing TCAP component invokeID 254, type 14, opErrId 36 for dialog c003e7e8
2015/06/17 08:09:30    acsChassisTelephony.cc   391 [16316]       acsChassisSLEE  Storing TCAP component invokeID 2, type 14, opErrId 24 for dialog c003e7e8

... and we get the ERROR:
  
2015/06/17 08:09:30             acsChassis.cc  2302 [16316]       acsChassisSLEE  Process INAP Component (Type 14)
2015/06/17 08:09:30        acsChassisEvent.cc   278 [16316]       acsChassisSLEE  acsChassisEventProcess
2015/06/17 08:09:30        acsChassisEvent.cc   347 [16316]       acsChassisSLEE   Complete: event remains undigested
2015/06/17 08:09:30    acsChassisTelephony.cc   685 [16316]       acsChassisSLEE  acsSLEEChassis_t::handleINAPComponent()
2015/06/17 08:09:30    acsChassisTelephony.cc   687 [16316]       acsChassisSLEE   INAP component's componentType is 14
2015/06/17 08:09:30    acsChassisTelephony.cc   688 [16316]       acsChassisSLEE   INAP component's operationErrorId is 31
2015/06/17 08:09:30    acsChassisTelephony.cc   695 [16316]       acsChassisSLEE   Invoke received
2015/06/17 08:09:30    acsChassisTelephony.cc   756 [16316]       acsChassisSLEE   handleINAPComponent: TCAP_INVOKE with operationErrorId 31 unhandled!
Jun 17 10:09:30.837752 slee_acs(16316) ERROR: acsChassisMain: Unhandled INAP Component (type 14, opErrId 31, call 96070)
2015/06/17 08:09:30             acsChassis.cc  2541 [16316]       acsChassisSLEE  acsSLEEChassis_t::handleInternalError()

Cause

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