Features in Sentinel SIP interact with EventManagers to control the behaviour of the system. Feature execution scripts can use conditions containing predicates which expose the internal state of the EventManagers.
Below are details of LegManager and ChargingManager predicates.
LegManager predicates
Predicate name | Supersedes | True when… |
---|---|---|
LegManager.endSession |
feature.endSession |
a feature has requested endSession in this execution point |
LegManager.currentLeg |
there is a leg active at the current execution point |
|
LegManager.currentLinkedLeg |
the current execution point has an active leg linked to a second leg |
|
LegManager.currentLeg.releaseLeg |
feature.releaseLeg |
there is a pending releaseLeg on the specified leg (currentLeg and currentLinkedLeg) |
LegManager.currentLeg.pendingMessage |
feature.sendMessage |
there is a pending message on the specified leg (currentLeg and currentLinkedLeg) |
LegManager.proxyAndDoNotRecordRoute |
feature.proxyAndDoNoRecordRoute |
there proxyAndDoNotRecordRoute instruction on the triggering leg |
LegManager.currentLeg.parallelFork |
feature.parallelFork |
there is a pending parallelFork on the specified leg (currentLeg and currentLinkedLeg) |
LegManager.detachAll |
feature.terminateProcessing |
detachAll has been requested |
LegManager.currentLeg.upstreamFork |
feature.upstreamFork |
there is a pending upstreamFork on the specified leg (currentLeg and currentLinkedLeg) |
LegManager.currentLeg.downstreamFork |
feature.downstreamFork |
there is a pending downstreamFork on the specified leg (currentLeg and currentLinkedLeg) |
LegManager.currentLeg.endInviteSession |
there is a pending endInviteSession on the specified leg (currentLeg and currentLinkedLeg) |
|
LegManager.currentLeg.endSubscription |
there is a pending endSubscription on the specified leg (currentLeg and currentLinkedLeg) |
|
LegManager.currentLeg.detachFromLeg |
there is a pending detachFromLeg on the specified leg (currentLeg and currentLinkedLeg) |
|
LegManager.currentLeg.hasEndingInstruction |
any of detachAll, detachFromLeg, proxyAndDoNotRecordRoute, endSession, or releaseLeg are true; used as a convenience method to simplify execution script logic |
ChargingManager predicates
Predicate name | Supersedes | What it indicates |
---|---|---|
ChargingManager.charging |
feature.doNotCharge |
a charging instance exists |
ChargingManager.sessionCharging |
a session charging instance exists |
|
ChargingManager.sessionCharging.reservation |
feature.doCreditCheck |
a feature has requested credit reservation |
ChargingManager.sessionCharging.finalisation |
a feature has requested credit finalisation |
|
ChargingManager.immediateCharging |
an immediate event charging instance exists |
|
ChargingManager.immediateCharging.directDebit |
a feature has requested a direct debit |
|
ChargingManager.immediateCharging.refund |
a feature has requested a refund |