2.2 ZBA Logic Process
ZBA logic follows this process:
- The ZBA logic is triggered with the reception of a CCR-I/E message.
- The ZB reads the MSISDN from the Subscription-ID Grouped or the User-Name AVPs in the CCR-I/E message.
- ZBA checks if the MSISDN extracted from the AVP already has a record entry in the UDR.
- If no entry exists for that user, the application forwards the CCR-I/E to OCS using DRL and creates a new entry in the UDR. If a qualified ZB event has been received in the CCA-I/E, that subscriber is then monitored. If the OCS answer contains a result code, which does indicate zero balance, then the Zero Balance counter is incremented in the UDR and detection state is set to ON. ZBA forwards the CCA-I/E received from the OCS using DRL.
- If an entry for that user exists, the application reads the status of the blocking and detection timers from the UDR to determine whether the subscriber is blocked or being monitored.
- If the subscriber is not blocked, or blocked with expired blocking timer, ZBA forwards the CCR-I/E to OCS using DRL and resets the record to its initial state, for example, not monitored, not blocked.
- If a request is received when the subscriber is blocked and not expired (blocking timer is ON, but not expired), the request is not forwarded to OCS, and instead the ZBA sends an answer message with the configurable egress blocking result code to CTF using DRL (the OCS is not involved).
- ZBA continues to monitor the subscriber and answer on behalf of the OCS until the blocking timer expires.
- ZBA does not process the Diameter messages in the following cases:
- Missing MSISDN in the CCR-I/E
- ZBA UDR Database is unavailable
- Stack event errors have been generated during processing