This feature is a pre-credit-check, post-credit-check, or end-session feature.
Description
Feature name |
FlashSms |
---|---|
Applicable contexts |
|
Prerequisite features |
A feature to set the NotificationMessage and NotificationAddress session state variables |
The notification information will be accessed from the NotificationMessage session state variable which was set by a prior feature. The supported data coding schemes are GSM_7BIT and UCS2 — the message will be sent using the GSM_7BIT coding scheme if it can be represented in the 7-bit alphabet; otherwise, the UCS2 coding scheme will be used.
The notification message will be sent to (in order of precedence):
-
Address in NotificationAddress session state variable (if set)
-
Address in Subscriber session state variable.
If neither of these variables are set then the message will not be sent.
The feature checks the IMSI and MSCAddress session state fields. When both are set the feature will not perform an SendRoutingInformationForSM but use the MSCAddress session state field instead.
MTForwardSM will return success if the handset is available and message delivered. If it’s not, then a error response will be returned that the message was not deliverable (absent subscriber, and so on). As the call is either in progress or has just ended, the message will be deliverable in the vast majority of cases so no special behaviour is required in the error cases after sending MTForwardSM. Sentinel will not attempt to retry sending the message if there is an error delivering the message for any reason. |
Session state inputs and outputs
Inputs
Name | Type | Format | Description | Behaviour if null/invalid |
---|---|---|---|---|
SentinelSelectionKey |
com.opencloud.sentinel.common.SentinelSelectionKey |
selection key (for example, |
For selecting configuration data |
Increment SmsDeliveryFailures, return |
IMSI |
String |
IMSI |
The subscriber’s IMSI address, which may require an SRI lookup if null |
Perform an SRI lookup |
MSCAddress byte[] |
The subscriber’s current MSC address, which may require an SRI lookup if null |
Perform an SRI lookup |
NotificationMessage |
|
String |
Arbitrary text |
The textual content of the flash SMS |
Increment SmsDeliveryFailures, return |
NotificationAddress |
String |
MSISDN |
The flash SMS destination address |
Fall back to session state Subscriber address |
Subscriber |
Error scenarios
This table applies if an SRI is required:
Scenario | Handling |
---|---|
Null sessionstate selection key |
Increment SmsDeliveryFailures |
Missing entry in FlashSmsFeatureConfigProfileTable |
Increment SmsDeliveryFailures |
No notification address or subscriber address |
Increment SmsDeliveryFailures |
Null TemplateHlrSccpAddress in FlashSMS config |
Increment SmsDeliveryFailures |
Exception sending SRI |
Increment SmsDeliveryFailures |
OpenRefuse from HLR |
Increment HlrSS7ProviderErrors or HlrSS7UserErrors |
Abort from HLR |
Increment HlrProviderAborts or HlrUserAborts |
Timeout waiting for HLR response |
Increment HlrTimeouts |
Exception closing dialog in any HLR dialog failure scenario |
Increment SmsDeliveryFailures |
This table applies if the SRI succeeds or is not required:
Scenario | Handling |
---|---|
No notification address or subscriber address in sessionstate |
Increment SmsDeliveryFailures |
Null sessionstate MSCAddress |
Increment SmsDeliveryFailures |
Null sessionstate IMSI |
Increment SmsDeliveryFailures |
Null sessionstate NotificationMessage |
Increment SmsDeliveryFailures |
Exception sending mtForwardSM request |
Increment SmsDeliveryFailures |
MessageEncodingFailure sending mtForwardSM request |
Increment SmsDeliveryFailures |
OpenRefuse from MSC |
Increment MscSS7ProviderErrors |
Abort from MSC |
Increment MscProviderAborts or MscUserAborts |
Timeout waiting for MSC response |
Increment MscTimeouts |
Configuration
The Flash SMS Notification configuration includes:
Parameter | Type | Description |
---|---|---|
SccpOriginatingAddress |
Will be used as the TCAP Calling Party Address in dialogs initiated towards the HLR and MSC. May be null in which case the local SCCP address configured for the platform will be used. Example: |
|
InvokeTimeout |
Long |
SRIforSM and MTForwardSM invoke timeouts in milliseconds (for example, 5000). A 0 value results in CGIN RA defaults being used. |
TemplateHlrSccpAddress |
A template address that will be used to address the HLR. Global title digits in the template address will be replaced with the relevant notification address. The encoding scheme will also be updated, if relevant for the GT indicator type, to indicate BCD_ODD or BCD_EVEN, depending on the number of address digits. |
|
TemplateMscSccpAddress |
A template address that will be used to address the MSC. Global title digits in the template address will be replaced with the MSC address from session state. The encoding scheme will also be updated, if relevant for the GT indicator type, to indicate BCD_ODD or BCD_EVEN, depending on the number of address digits. |
|
SMSAddressOriginatingAddress |
Local SCCP address (for example, |
|
AddressStringServiceCentreAddress |
Service centre address (for example, |
|
ShortMsgMTApplicationContext |
The MAP application context to be used for the dialog towards the MSC. Must be one of:
|
Call flow
There are two MAP requests as party of the MTForwardSM process:
-
Obtaining the routing information from the HLR.
-
Sending the MT SMS.
The first step is performed by sending an SendRoutingInformationForSM request to the HLR to determine the routing information for the MT Forward SM. This step is not performed if the IMSI and MSCAddress session state fields are set.
The HLR SCCP Address will be based on the MSISDN of the subscriber. (See MAP SPEC Section 4 Requirements concerning the use of SCCP and TC/4.1.3.3 The Home Location Register (HLR) — refer to MAP SPEC footnote). The MSISDN will be retrieved from SessionState.NotificationAddress or SessionState.Subscriber.
hlrSccpAddress.address={SessionState.NotificationAddress or SessionState.Subscriber) hlrSccpAddress.nature=International hlrSccpAddress.numberingPlan=ISDN hlrSccpAddress.routingIndicator=(GT for extra/inter-PLMN, GT or SPC for intra-PLMN) default 0 (GT) hlrSccpAddress.GTI=0100 (Global title indicator = 0100 (Global title includes translation type, numbering plan, encoding scheme and nature of address indicator) hlrSccpAddress.type=C7 hlrSccpAddress.ssnIndicator=1 (MAP SSN always included) hrlSccpAddress.ssn=(configured per network) default 6 hrlSccpAddress.pc=(configured per network) default not set hlrSccpAddress.tt=0 (not used)
imsi = RoutingInfoForSM-Res.imsi msc-number = RoutingInfoForSM-Res.locationInfoWithLMSI.networkNode-Number IF RoutingInfoForSM-Res.locationInfoWithLMSI.gprsNodeIndicator not present OR (RoutingInfoForSM-Res.locationInfoWithLMSI.gprsNodeIndicator present AND RoutingInfoForSM-Res.LocationInfoWithLMSI.additional-Number is sgsn-Number) THEN mscAddress = RoutingInfoForSM-Res.LocationInfoWithLMSI.networkNode-Number else mscAddress = RoutingInfoForSM-Res.LocationInfoWithLMSI.additional-Number
RoutingInfoForSM-Res.locationInfoWithLMSI.networkNode-Number renamed from msc-Number between R96 and R97. The networkNode-number can also contain an sgsn-number or IP-SM-GW number or SMS Router number. |
The second step is to send the MTForwardSM:
Field | Value |
---|---|
destination SCCP address |
msc-number from the SRIforSM or MSCAddress session state field |
sm-RP-DA.imsi |
use the imsi from the SRIforSM or the IMSI session state field |
sm-RP-OA.serviceCentreAddress |
Sentinel address for response messages |
sm-RP-UI |
SMSDeliver as below |
moreMessagesToSend |
not set |
extensionContainer |
not set |
smDeliveryTimer |
not set |
smDeliveryStartTime |
not set |
SMSDeliver:
Field | Value |
---|---|
onlyHeader |
not set |
replyPath |
false |
userDataHeaderIndicator |
true |
statusReportIndication |
false |
moreMessagesToSend |
NONE |
loopPrevention |
false |
originatingAddress |
configurable address — probably some service number |
protocolId |
0 (TelematicDevice.IMPLICIT) |
dataCodingScheme |
{MessageClass=SPARE_0, MessageCoding determined by encoded text, supports GSM_7BIT or UCS2} |
serviceCentreTimeStamp |
current time |
userDataLength |
length of encoded text based on data coding scheme |
userData |
encoded text |
The SMS PDU of the message sent will be taken from the notification session state variables.
Configuration profile naming
Configuration Profile Table Name | Description | Profile Naming |
---|---|---|
FlashSmsFeatureConfigProfileTable |
Selection of database implementation and rating group for the feature. |
SentinelSelectionKey (for example, |
Provisioning interfaces
The feature is provisioned using the Sentinel Features REST API or web interface.
MAP SPEC |
Digital cellular telecommunications system (Phase 2+); Mobile Application Part (MAP) specification (3GPP TS 09.02 version 5.17.0 Release 1996) |
ETSI/3GPP |
2002-03 |
ETSI |