This feature delivers a Short Message towards the MSC or SGSN, performing TCAP application context negotiation as necessary

Feature cheat sheet

Feature Name Network Operator Data Used in PlanId(s) Stateful or Stateless POJO Feature or SBB Feature

IPSMGWCSDelivery

No

MTFSM_CS,MTFSM_CS_PS,MTFSM_PS_CS

Stateful

POJO

MAP Phases and Application Contexts

The feature can be triggered by MAP Forward Short Message on the terminating path, for MAP Phases 1, 2 and 2+. This is referred to as MT Forward Short Message or MT-FSM for short.

The MAP Phases 1, 2 and 2+ are sometimes referred to as "v1, v2 and v3" however such language is not strictly correct.

From a TCAP Application Context perspective:

  1. MAP Phase 2 defines shortMsgMT_RelayContext_v2_ac - this is sometimes referred to as "v2"

  2. MAP Phase 2+ defines shortMsgMT_RelayContext_v3_ac - this is sometimes referred to as "v3"

  3. and MAP Phase 1 does not use a TCAP Application Context. In the software this case is represented by a synthetic application context shortMsgMT_RelayContext_v1_ac. It is synthetic because it does not exist on the wire. This case is sometimes referred to as MAP "v1".

Statistics

IPSMGWCSDelivery statistics are tracked by the sentinel.ipsmgw SBB and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.ipsmgw service → sentinel.ipsmgw SBB → feature → IPSMGWCSDelivery
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.ipsmgw,vendor=OpenCloud,version=4.0.0].SbbID[name=sentinel.ipsmgw,vendor=OpenCloud,version=4.0.0].feature.IPSMGWCSDelivery"

Name Description
AttemptedV1Open

Incremented when the feature has sent an OpenRequestV1. This corresponds to receipt of a TCAP TC_BEGIN without an Application Context.

AttemptedV2Open

Incremented when the feature has sent an OpenRequestV2. This corresponds to a TCAP TC_BEGIN with an Application Context from MAP Phase 2.

AttemptedV3Open

Incremented when the feature has sent an OpenRequestV3. This corresponds to receipt of a TCAP TC_BEGIN with an Application Context from MAP Phase 2+.

FallbackToV1

Incremented when the feature has received an U-Abort instructing fallback to MAP Phase 1.

FallbackToV2

Incremented when the feature has received an U-Abort instructing fallback to MAP Phase 2.

FallbackToPS

Incremented when the CS delivery fails. It attempts to fall back to PS.

SuccessfullyDeliveredV1

Incremented when the MSC responds to a v1 MTFSM with an error-less dialog close.

SuccessfullyDeliveredV2

Incremented when the MSC responds to a v2 MTFSM with an error-less dialog close.

SuccessfullyDeliveredV3

Incremented when the MSC responds to a v3 MTFSM with an error-less dialog close, optionally with an MTFSM-res.

CSDeliverySuccessful

Incremented when the delivery through v1, v2, or v3 is successful.

ErrorDeliveringV1

Incremented when the MSC responds to a v1 MTFSM with an error.

ErrorDeliveringV2

Incremented when the MSC responds to a v2 MTFSM with an error, or when the MSC responds to a v2 dialog open with a refuse that does not indicate negotiation is possible.

ErrorDeliveringV3

Incremented when the MSC responds to a v3 MTFSM with an error, or when the MSC responds to a v3 dialog open with a refuse that does not indicate negotiation is possible.

CSDeliveryFailed

Incremented when a dialogue open request or an MTFSM cannot be created, or the delivery through v1, v2, or v3 has failed.

FailedToSendOpen

Incremented when the feature has failed to send any version of OpenRequest.

FailedToSendMTFSM

Incremented when the MTFSM cannot be sent after the dialog has been accepted.

SentReportSMDeliveryStatus

Incremented when the feature has sent ReportSMDeliveryStatus request to HLR.

FailedToSendReportSMDeliveryStatus

Incremented when the feature has failed to generate ReportSMDeliveryStatus request

ReportSMSucceeded

Incremented when the HLR responds to a ReportSMDeliveryStatus request with an error-less dialog close.

ReportSMFailed

Incremented when the HLR responds to a ReportSMDeliveryStatus request with an error.

SystemError

Incremented when the feature sends a generated SystemError as a response to the SMSC.

Configuration

The feature is configured with configuration scoped according to a Sentinel Selection Key. Two Profile Tables are used for configuration. The first profile Table used to hold feature configuration is Shared Configuration Profile. The following attributes are used:

Attributes Type Meaning
SentinelOriginatingAddress

String

The OriginatingAddress used to represent Sentinel when sending the forwardSM on to the destination MSC

InvokeTimeout

Long

Timeout in ms when invoking MAP operations, for example 5000ms.

DeliveryOrder

Enum

If PS Delivery will run after CS Delivery, there is no need to send error report to SMSC on CS delivery failure

UseMsisdnAsHlrAddress

Boolean

Controls whether to address the outbound HLR leg using a GT address formed from the subscriber MSISDN, instead of using the configured HlrAddress

TemplateSmscAddress

String

Contains a Template SMSC SCCP Address, where the digits are replaced by the received SMSC address

The second Profile Table used to hold feature configuration is IPSMGWCSDeliveryConfigProfileTable. The following attributes are used:

Attributes Type Meaning
DeliveryFallbackAvoidanceCodes

int[]

A list of error codes that if matched from the SM-DeliveryFailure will stop a PS fallback

Behaviour

This feature is responsible for Circuit Switched delivery of a Short Message.

CS delivery is triggered in two ways:

  1. Upon receipt of a ForwardSM message from the SMSC if a CS_ONLY or CS_THEN_PS DeliveryOrder is specified in Shared Configuration Profile

  2. A failed PS Delivery attempt where DeliveryOrder is PS_THEN_CS

After validating configuration and session state inputs, the CS Delivery feature takes the received ForwardSM (regardless of whether or not PS Delivery was attempted) and begins the TCAP Application Context Negotiation Flows.

ForwardSM

The feature uses the negotiated dialog for delivery of the ForwardSM, as described below:

CS_ONLY or PS_THEN_CS

When the DeliveryOrder specified in Shared Configuration Profile is CS_ONLY or PS_THEN_CS, for a ForwardSM sent to MSC:

If Then

Charging is performed and returns a failure

Error returned to SMSC in MT-FSM response

Context negotiation fails

System Error or OpenRefuse sent to SMSC

MSC replies with Success

ForwardSM Success sent to SMSC

PS_THEN_CS delivery HLR replies with SendRoutingInfo Error

ForwardSM AbsentSubscriber Error sent to SMSC and ReportSMDeliveryStatus sent to HLR with SM-DeliveryOutcome=absentSubscriber

MSC replies with Error

ForwardSM Error sent to SMSC

If Then

The error with out of memory capacity error reason

ReportSMDeliveryStatus sent to HLR with SM-DeliveryOutcome=memoryCapacityExceeded.

The error with AbsentSubscriber(ph1) or AbsentSubscriberSM(ph2 and 3).

ReportSMDeliveryStatus sent to HLR with SM-DeliveryOutcome=absentSubscriber, and copy across the absentSubscriberDiagnostic (if present) and additionalAbsentSubscriberDiagnostic(if present) into the ReportSMDeliveryStatus

Other errors for CS_ONLY delivery

Do not send ReportSMDeliveryStatus to HLR

Other errors for PS_THEN_CS delivery

ReportSMDeliveryStatus sent to HLR with SM-DeliveryOutcome=absentSubscriber

CS_THEN_PS

When the DeliveryOrder specified in Shared Configuration Profile is CS_THEN_PS, for a ForwardSM sent to MSC:

If Then

Charging is performed and returns a failure

Error returned to SMSC in MT-FSM response

Context negotiation fails

PS-Delivery is initiated

MSC replies with Success

ForwardSM Success sent to SMSC

MSC replies with Error other than a SM-DeliveryFailure

PS-Delivery is initiated

if then

The error is AbsentSubscriber(ph1) or AbsentSubscriberSM(ph2 and 3)

ReportSMDeliveryStatus created with SM-DeliveryOutcome=absentSubscriber

Other errors

Do not send ReportSMDeliveryStatus to HLR.

MSC replies with a SM-DeliveryFailure

If Then

The Delivery Failure Case matches a configured DeliveryFallbackAvoidanceCodes

ForwardSM Failure sent to SMSC, ReportSMDeliveryStatus with SM-DeliveryOutcome=memoryCapacityExceeded sent to HLR only when failure with out of memory capacity error reason.

The Delivery Failure Case does not match a configured DeliveryFallbackAvoidanceCodes

PS-Delivery is initiated, ReportSMDeliveryStatus logic will refer to PS-Only Delivery.

Session state inputs and outputs

Inputs

Name Type Format Description Behaviour if null/invalid

SentinelSelectionKey

com.opencloud.sentinel.common.SentinelSelectionKey

selection key (for example, <platform>::::)

For selecting configuration data

Report featureCannotStart, featureHasFinished

MSISDN

String

The MSISDN to use in the ReportSMDeliveryStatus operation, and to use for GT routing if configured

Unable to send ReportSMDeliveryStatus messages, and to route on GT if configured

SRI4SMResAppContext

String

One of the following values shortMsgGatewayContext_v1_ac, shortMsgGatewayContext_v2_ac, shortMsgGatewayContext_v3_ac

This identifies the version of the saved SRI4SM to extract the MSC address from.

NoRoutingInfoException: "Unable to fetch SRI from session state"

SRI4SMResV1

MAPSendRoutingInfoForSMRes

The full SRI4SMResV1 message

Used to extract the MSC address from

NoRoutingInfoException: "Unable to fetch SRI from session state"

SRI4SMResV2

MAPSendRoutingInfoForSMRes

The full SRI4SMResV2 message

Used to extract the MSC address from

NoRoutingInfoException: "Unable to fetch SRI from session state"

SRI4SMResV3

MAPRoutingInfoForSM_Res

The full SRI4SMResV3 message

Used to extract the MSC address from

NoRoutingInfoException: "Unable to fetch SRI from session state"

MTFSMDeliveryOrder

com.opencloud.sentinel.ipsmgw.shared.config.profile.DeliveryOrder

One of CS_ONLY, PS_ONLY, CS_THEN_PS, PS_THEN_CS

Current DeliveryOrder based on configuration and available routing info, correpsonding to current selection key plan Id.

Schedule MTFSM error response assuming that PS Delivery will not be attempted

Note Only one of SRI4SMResV1, SRI4SMResV2, or SRI4SMResV3 will ever have any data in it.

Outputs

Name Type Description

CSDeliveryAttempted

boolean

True if an OpenRequest was sent out in a delivery attempt

CSDeliveryFailed

boolean

True if the feature failed to do a successful delivery for any reason

FallbackAllowed

boolean

True if no SM-DeliveryFailure was received, or if the error cause in the SMDeliveryFailure was not a configured 'DeliveryFallbackAvoidanceCodes' value

SM Delivery Failure Cause Mappings

These are the SM-EnumeratedDeliveryFailureCause values that may used in the feature’s DeliveryFallbackAvoidanceCodes configuration. Other values may be configured but are unlikely to appear in a SM-DeliveryFailure message.

Cause Value

memoryCapacityExceeded

0

equipmentProtocolError

1

equipmentNotSM_Equipped

2

unknownServiceCentre

3

sc_Congestion

4

invalidSME_Address

5

subscriberNotSC_Subscriber

6

Previous page Next page
Sentinel IP-SM-GW Version 4.0.0