4 Testing Messaging with the SMSC Test Tool
This chapter describes how to configure and use the Oracle Communications Convergent Charging Controller smsc test tool.
About the smsc Test Tool
The smsc test tool emulates various parts of the short message service (SMS) messaging environment, including a Short Message Service Center (SMSC), Visitor Mobile Switching Center (VMSC), and Home Location register (HLR). You use the utility to test the sending and receiving of SMS messages. See "Overview of the smsc Test Tool" for an overview of smsc.
The smsc test tool attaches to the SLEE as a TCAP interface and handles both MAP and IS-41 incoming short message requests. It can simulate an SMSC by sending an MO ForwardSM operation, an HLR by sending an SendRoutingInfoForSM operation, or an MSC by sending an MT ForwardSM operation at MAP levels 1-3. The responses to each method are defined in a configuration file. Selection of functionality is automatic, depending on which type of operation the test tool receives.
Running the smsc Test Tool
The smsc test tool is located in the following directory:
/IN/service_packages/TEST_TOOLS/bin/smsc
The smsc test tool runs as a SLEE interface when you start the SLEE; therefore, starting the SLEE starts smsc. You must have configured the smsc test tool and configured the SLEE for smsc before smsc will run. See "Configuring SLEE for smsc" for information about configuring the SLEE.
The smsc test tool redirects its output to a log file. The log file is written to the /IN/service_packages/TEST_TOOLS/tmp/smsc.log file.
Before starting the SLEE, set the following environment variables for smsc:
-
ESERV_CONFIG_FILE
Optional. Set to the location of the eserv.config file, which contains the XMS configuration. Defaults to /IN/service_packages/etc/eserv.config.
-
SMSC_CONFIG_FILE
Set to the location of the smsc.cfg file, which defines the SMSC responses to incoming messages. The following example illustrates a setting of the SMSC_CONFIG_FILE environment variable:
SMSC_CONFIG_FILE=/IN/service_packages/TEST_TOOLS/etc/smsc.cfg export SMSC_CONFIG_FILE
-
DEBUG
Set to
fred_smscto obtain useful information about what smsc is doing.Note:
If this variable is set to
all, every SLEE program writes out debugging information, which is usually not desirable due to the volume of information, most of which is not meaningful for smsc.
Configuring SLEE for smsc
To configure the Service Logic Execution Environment (SLEE) for SMSC, you must include the following parameters in the slee.cfg file:
-
SERVICEKEY=INTEGER 42 SMSCINT
-
INTERFACE=Timer timerIF /IN/service_packages/SLEE/bin EVENT
-
INTERFACE=SMSCINT smsc </path/to/the_smsc> EVENT
The following example highlights these parameters in an excerpt from the slee.cfg file.
# Standard SLEE definitions... # (MAXAPPLICATIONS, MAXDIALOGS, etc) WATCHDOG=/IN/service_packages/SLEE/bin/ watchdog WATCHDOGCYCLETIME=3000 SERVICEKEY=INTEGER 101 xmsIf SERVICEKEY=INTEGER 42 SMSCINT SERVICE=ACS 1 slee_acs ACS INTERFACE=Timer timerIF /IN/service_packages/SLEE/bin EVENT INTERFACE=SMSCINT smsc </path/to/the_smsc> EVENT INTERFACE=xmsIf xmsTrigger.sh /IN/service_packages/XMS/bin EVENT APPLICATION=slee_acs slee_acs /IN/service_packages/ACS/bin 1 1
Other parameters listed here, which are important to running SLEE, are described in Service Logic Execution Environment Technical Guide.
Configuring the smsc Test Tool
Configuring the smsc test tool consists of adding configuration parameters to the smsc.cfg file, which is in the /IN/service_packages/TEST_TOOLS/etc directory by default. You can specify a different location for the file by setting the SMSC_CONFIG environment variable.
You add parameters to the smsc.cfg file based on the testing that you want to do. Configuring the smsc test tool can include the following tasks:
Configuring General Parameters
The following parameters apply to the smsc test tool rather than a particular protocol.
Set the following parameters in the smsc.cfg file to specify a sleep time and a request delay range.
Protocol
Deprecated.
Note:
The Protocol parameter formerly specified the protocol ("map" or "is41") to be used. However, the smsc test tool currently determines the protocol based on the incoming message.
requestDelayRangeStart
The requestDelayRangeStart and requestDelayRangeEnd parameters specify a range in seconds by which responses are delayed. The delay is randomly selected from within the specified range.
Specifies the start of the delay range.
|
Allowed Values |
Zero or a positive integer |
|
Units: |
Seconds |
|
Default: |
0 |
|
Example: |
requestDelayRangeStart = 0 |
requestDelayRangeEnd
Specifies the end of the delay range.
|
Allowed Values: |
Zero or a positive integer |
|
Units: |
Seconds |
|
Default: |
0 |
|
Example: |
requestDelayRangeEnd = 0 |
sleepTime
Specifies the sleep time between event polls when idle.
|
Allowed Values: |
Zero or a positive integer |
|
Units: |
milliseconds |
|
Default: |
200 |
|
Example: |
sleepTime = 200 |
Configuring for CAP3 GPRS
You can use the SMSC test tool to perform one CAP3 GPRS operation, ActivityTestGPRS.
Use the following parameters in the smsc.cfg file to perform an ActivityTestGPRS operation for the CAP3 GPRS protocol. This operation tests whether a relationship exists between the gsmSCF and gprsSSF. If so, the gprsSSF replies.
CAP3DestinationReferenceRange
Optional. Specifies an array of Destination Reference patterns and associated behaviors.
CAP3DestinationReferenceRange = [
{
pattern = ""
responses = [
{
reply = true | false
delay = <seconds>
}
...
]
}
...
]
You set the following values in the CAP3DestinationReferenceRange parameter.
-
delay
Mandatory for an entry in the responses array of CAP3DestinationReferenceRange. Specifies in seconds the length of time to delay the response.
Allowed Values:
Zero or a positive integer
Unit:
seconds
Default:
30
Example
delay = 30
-
pattern
Mandatory for entry in the CAP3DestinationReferenceRange array. Specifies a regular expression as understood by the UNIX grep command.
Allowed Values:
A string that specifies a pattern as understood by the UNIX grep command.
Default:
""
Example:
pattern = 95.* (matches any destination reference beginning with a 95. pattern. The * specifies a match for any value following the 95. value.)
-
reply
Mandatory for entry in the CAP3DestinationReferenceRange array. Specifies whether to reply to an ActivityTestGPRS operation sent by the gsmSCF.
Allowed Values:
true or false
Default:
true
Example:
reply = true
-
responses
Mandatory for an entry in the CAP3DestinationReferenceRange array. Specifies an array of responses, each of which specifies a reply of true or false and a delay in seconds.
Allowed Values:
An array in which each entry consists of a boolean value and a number of seconds.
Default:
[true, 30]
Example:
response = [{true, 30}, {false, 20}];
Configuring for MAP
To use the MAP protocol, set the appropriate parameters in the smsc.cfg file.
AbortRequest
Deprecated. Setting AbortRequest to true is equivalent to Action = ABORT.
| Allowed Values: | true or false |
| Default: | false |
| Example: | AbortRequest = false |
Action
Specifies the action to take when a message is received. These values override IgnoreRequest, AbortRequest, or FailResponse.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
Action = "NACK" |
altAction
Used instead of Action for the percentage of time specified by altPercentage.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
altAction = "ACKNOWLEDGE_REQUEST" |
altPercentage
Specifies the percentage of time to use altAction instead of Action
|
Allowed Values: |
An integer between 0 and 255 |
|
Default: |
0 |
|
Example: |
altPercentage = 0 |
FailOpid
The error code to put in a TCAP ReturnError.
|
Allowed Values: |
Zero or a positive integer. |
|
Default: |
32 (sm-DeliveryFailure)) |
|
Example: |
FailOpid= 32 |
FailCause
The value that specifies the cause in a ReturnError message when the error code is 32 (sm-DeliveryFailure).
|
Allowed Values |
Zero or a positive integer. Sensible values: 0 (memoryCapacityExceeded) 1 (equipmentProtocolError) 2 (equipmentNotSM-Equipped) 3 (unknownServiceCenter) 4 (sc-Congestion) 5 (invalidSME-Address) 6 (subscriberNotSC-Subscriber) |
|
Default: |
32 (which is not meaningful) |
|
Example: |
FailCause = 0 |
FailResponse
Deprecated. Setting FailResponse to true is equivalent to
Action = "NACK".
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
FailResponse = false |
fallbackVersion
Specifies the value when Action is MAP_FALLBACK. This is the MAP version to put in the TCAP ABORT message when MAP fallback is requested.
|
Allowed Values: |
1, 2, or 3 |
|
Default: |
1 |
|
Example: |
fallbackVersion = 1 |
Note:
While this chapter and the smsc.cfg file refer to MAP version 3, its official name is MAP phase 2+.
IgnoreRequest
Deprecated. Setting IgnoreRequest to true is equivalent to Action = "IGNORE".
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
IgnoreRequest = false |
MapVersion
Specifies the MAP version to support. SMC or SMSC requests that use a higher version are aborted (TCAP_ABORT) and smsc requests a fallback to this version, regardless of the value of the Action parameter.
Note:
While this chapter and the smsc.cfg file refer to MAP version 3, its official name is MAP phase 2+.
|
Allowed Values: |
1, 2, or 3 |
|
Default: |
1 |
|
Example: |
MapVersion = 3 |
moreMessages
If true, the smsc test tool sends the MAP result in a TCAP_CONTINUE message, leaving the TCAP dialog open. If false, the smsc test tool sends the MAP result in a TCAP_END message, ending the TCAP dialog.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
RECEIVED_SMS_STATUS_REPORT
Specifies the Action and FailOpid to use when processing messages that contain an SMS Status Report.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
SEND_USSD_MAP_ERROR_VALUE
The error code to put in a TCAP ReturnError message for a MAP UNSTRUCTURED_SS_NOTIFY or PROCESS_UNSTRUCTURED_SS operation.
|
Allowed Values: |
Zero or a positive integer |
|
Default: |
1 |
|
Example: |
SEND_USSD_MAP_ERROR_VALUE = 1 |
SEND_USSD_PROCESS_UNSTRUCTURED_SS_RESPONSE
Specifies the action to take on receipt of a MAP_PROCESS_UNSTRUCTURED_SS operation.
|
Allowed Values: |
0 Send a TCAP ReturnError 1 Send a TCAP ReturnResult 2 Do nothing |
|
Default: |
1 |
|
Example: |
SEND_USSD_PROCESS_UNSTRUCTURED_SS_RESPONSE = 1 |
SEND_USSD_SS_NOTIFY_RESPONSE
Specifies the action to take on receipt of a MAP UNSTRUCTURED_SS_NOTIFY operation.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
TCAP_ABORT_cause
Specifies the cause (p-abortCause) to put in a TCAP ABORT message.
|
Allowed Values: |
An integer between 0 and 255. Meanings for commonly used values include:
|
|
Default: |
0 |
|
Example: |
TCAP_ABORT_cause = 0 |
Example MAP Configuration
The following example illustrates the smsc configuration parameters for MAP in the smsc.cfg file:
# smsc.cfg
SMSC = { ... MAP = { moreMessages = False MapVersion = 3 IgnoreRequest = False AbortRequest = False FailResponse = False Action = "ACKNOWLEDGE_REQUEST" TCAP_ABORT_cause = 0 altAction = "ACKNOWLEDGE_REQUEST" altPercentage = 0 FailOpid = 32 FailCause = 32 fallbackVersion = 1 SEND_USSD_SS_NOTIFY_RESPONSE = 1 SEND_USSD_PROCESS_UNSTRUCTURED_SS_RESPONSE = 1 SEND_USSD_MAP_ERROR_VALUE = 1 RECEIVED_SMS_STATUS_REPORT = { Action = "ACKNOWLEDGE_REQUEST" altAction = "ACKNOWLEDGE_REQUEST" altPercentage = 0 FailOpid = 32 FailCause = 32 }
}Configuring for MAP as HLR
When Protocol is set to MAP, you can also configure SMSC to respond as an HLR when it receives a SendRoutingInfoForSM message.
Note:
You can enable both SMS and HLR capabilities at the same time.
Use the following parameters to configure SMSC as an HLR.
Action
Specifies the action to take upon receipt of a lookup request. This action supersede the IgnoreRequest, AbortRequest, and FailResponse parameters.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
Action = "ACKNOWLEDGE_REQUEST" |
Address
These are the digits of the MSC number to put in SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
A string of digits |
|
Default: |
empty (do not return an address |
|
Example: |
Address = 12345678 |
AddressNature
This is the nature address of the MSC number to put in SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
An integer between 0 and 7 Meanings: 0 unknown 1 international number 2 national significant number 3 network specific number 4 subscriber number 5 reserved 6 abbreviated number 7 reserved for extension |
|
Default: |
0 |
|
Example: |
AddressNature = 1 |
AddressPlan
This is the indicator of the numbering plan for the MSC number to put in SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
An integer between 0 and 15 Meanings: 0 unknown 1 ISDN/Telephony Numbering plan (Rec CCITT E.164) 2 spare 3 data numbering plan (CCITT rec X.121) 4 Telex numbering plan (CCITT rec F.69) 5 spare 6 land mobile numbering plan (CCITT Rec E.212) 7 spare 8 national numbering plan 9 private numbering plan 15 reserved for extension |
|
Default: |
0 |
|
Example: |
AddressPlan = 1 |
canSendEmptyImsi
Controls what happens if the value of the IMSI parameter is an empty string (" "). If the value of canSendEmptyImsi is true, the IMSI is sent as an empty string. If the value of canSendEmptyImsi is false, the IMSI is constructed of the imsiPrefix value followed by the MSISDN.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
canSendEmptyImsi = false |
Denied
Deprecated. A value of true is equivalent to Action = "NACK".
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
Denied = false |
Enabled
Deprecated. When true, enables the HLR functions and smsc responds to those messages. A value of false is equivalent to Action = "IGNORE".
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
Enabled = true |
Error
Deprecated. When true, smsc responds to HLR messages
with an error code.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
ErrorCause
The cause of failure to include in the NACK response, if appropriate to the operation ID.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
ErrorOpid
Deprecated. The error code to put in a TCAP ReturnError message.
|
Allowed Values: |
0 or a positive integer |
|
Default: |
0, which is undefined and not meaningful. |
|
Example: |
ErrorOpid = 1 (unknownSubscriber) |
FailOpid
The error code to put in a TCAP ReturnError message.
Note:
FailOpid overrides the deprecated ErrorOpid parameter.
|
Allowed Values: |
0 or a positive integer |
|
Default: |
0, which is undefined and not meaningful. |
|
Example: |
FailOpid = 1 (unknownSubscriber) |
fallbackVersion
If the action is FALLBACK_REQUEST, this value is the version specified in TCAP_ABORT, assuming that the logic for MapVersion does not apply.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
GPRSNodeIndicator
The LocationInfoWithLMSI.gprsNodeIndicator value to put in a MAP2 SEND_ROUTING _INFORMATION_FOR_SM result.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
GPRSNodeIndicator = true |
hlrAltAction
Specifies the alternative action to take upon receipt of a lookup request. The hlrAltAction parameter is used instead of the Action parameter for the percentage of time specified by hlrAltPercentage.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
hlrAltAction = "ACKNOWLEDGE_REQUEST" |
hlrAltPercentage
Specifies as a percentage the number of times that smsc uses hlrAltAction instead of Action.
|
Allowed Values: |
An integer between 0 and 255 |
|
Default: |
0 |
|
Example: |
hlrAltPercentage = 0 |
HLRSequence
Optional. This parameter is an array that enables you to configure a different responses for the MAP plugin when using HLR functionality for Status Reports and Submit messages. See "SMSC Sequence for MAP as HLR" for more information.
IMSI
The International Mobile Subscriber Identifier (IMSI) to put in the SEND_ROUTING_INFORMATION result or SEND_ROUTING_INFORMATION_FOR_SM result.
|
Allowed Values: |
A string of exactly 16 hex digits |
|
Default: |
"" (empty string) See "canSendEmptyImsi" for related information on sending an empty string. |
|
Example: |
IMSI = "0123456789ABCDEF" |
imsiPrefix
Specifies the prefix to turn the MSISDN into an IMSI, when the IMSI parameter is empty.
|
Allowed Values: |
A string of between 0 and 15 hex digits |
|
Default: |
"" (empty) |
|
Example: |
imsiPrefix = "123" |
ISC
MAP 3 only. Specifies whether to follow every ReturnError or ReturnResult message with an INFORM_SERVICE_CENTER operation.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
ISC = false |
ISCMwStatus
If non-zero, ISCMwStatus is included as the mw-Status field of the MAP INFORM_SERVICE_CENTER operation. Only the following six least-significant bits are valid:
|
Allowed Values: |
An integer between 0 and 63. Only the following six least-significant bits are valid: 0x20 AddressNotIncluded 0x10 mnrf-Set (Mobile Not Reachable Flag) 0x08 mcef-Set (Memory Capacity Exceeded Flag) 0x04 mnrg-Set (Memory Not Reachable for GPRS) |
|
Default: |
0. |
|
Example: |
ISCMwStatus = 4 |
Note:
You can apply the logical OR operation to these bits. For example, applying a logical OR operation to 0x20 (01 0000) and 0x04 (00 0100) results in 0x24 (01 0100), which means address not included and memory not reachable for GPRS.
ISCSeparate
Specifies whether to send the INFORM_SERVICE_CENTER in a separate TCAP message from the TCAP ReturnError message.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
ISCSeparate= false |
ISCStoredMsisdnNoa, ISCStoredMsisdnNpi, ISCStoredMsisdn
If present, is included as the storedMSISDN field of the ISC operation.
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
moreMessages = false |
LMSI
Specifies the LMSI to put in the SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
A string of exactly 8 hex digits |
|
Default: |
empty (do not return an LMSI) |
|
Example: |
LMSI = "12345678" |
MapVersion
Specifies the MAP version to use. If the incoming MAP version is higher, SMSC sends a TCAP ABORT message to fall back to this version, regardless of the version specified.
Note:
While this chapter and the smsc.cfg file refer to MAP version 3, its official name is MAP phase 2+.
|
Allowed Values: |
1, 2, or 3 |
|
Default: |
1 |
|
Example: |
MapVersion = 1 |
SGSN
Specifies the digits of the SGSN number to put in SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
A string of digits |
|
Default: |
empty (do not return an address) |
|
Example: |
SGSN= "12345678" |
SGSNNature
Specifies the nature address of the Service GPRS Support Node (SGSN) number to put in SEND_ROUTING_INFORMATION_FOR_SM results.On behalf of mobile subscribers, SGSN manages access to network resources and enacts the packet scheduling policy. It also initiates the Packet Data Protocol (PDP) context with the gateway GPRS support node (GGSN).
|
Allowed Values: |
An integer between 0 and 7 Meanings: 0 unknown 1 international number 2 national significant number 3 network specific number 4 subscriber number 5 reserved 6 abbreviated number 7 reserved for extension |
|
Default: |
0 |
|
Example: |
SGSNNature = 1 |
SGSNPlan
Specifies the indicator of the numbering plan of the SGSN number to put in SEND_ROUTING_INFORMATION_FOR_SM results.
|
Allowed Values: |
An integer between 0 and 15 Meanings: 0 unknown 1 ISDN/Telephony Numbering Plan (Rec CCITT E.164) 2 spare 3 data numbering plan (CCITT Rec x.121) 4 telex numbering plan (CCITT Rec F.69 5 spare 6 land mobile numbering plan (CCITT Rec E.212) 7 spare 8 national numbering plan 9 private numbering plan 15 reserved for extension |
|
Default: |
0 |
|
Example: |
SGSNPlan = 1 |
Example MAP as HLR Configuration
The following example illustrates the smsc configuration parameters for MAP when smsc acts as an HLR:
# smsc.cfg
SMSC = {
...
MAP = {
...
RECEIVED_SMS_STATUS_REPORT = {
...
}
# This section describes how the SMSC handles SEND-ROUTING-INFORMATION
# and SEND_ROUTING-INFORMATION-FOR-SM requests.
HLR = {
Enabled = True
Denied = False
Action = "ACKNOWLEDGE_REQUEST"
MapVersion = 1
ErrorOpid = 1 # unknownSubscriber
FailOpid = 1 # unknownSubscriber
ISC = False
ISCSeparate = False
TCAP_ABORT_cause = 0
ISCStoredMsisdnNoa = 1
ISCStoredMsisdnNpi = 1
ISCStoredMsisdn = "12345678"
ISCMwStatus
IMSI = "0123456789ABCDEF"
canSendEmptyImsi = False
GPRSNodeIndicator
imsiPrefix = "123"
AddressNature = 1
AddressPlan = 1
Address = "12345678"
SGSNNature = 1
SGSNPlan = 1
SGSN = "12345678"
LMSI = "12345678"
}
}
}SMSC Sequence for MAP as HLR
When Protocol is set to MAP, you can add an HLRSequence parameter to configure different responses for the MAP plugin when using HLR functionality for Status Reports and Submit messages. HLRSequence is an array where each array element represents a response to a SEND_ROUTING_INFORMATION or SEND_ROUTING_INFORMATION_FOR_SM request.
Each parameter available for HLR configuration is also available for HLRSequence.
The following rules apply to use of the HLRSequence parameter:
-
If HLRSequence has one response, it is used for all responses.
-
If HLRSequence has more than one response, the first request will be handled according to the first array element, the second request will be handled according to the second array element, and so on. When the smsc test tool reaches the end of the array, it loops back to the beginning of the array.
-
If HLRSequence is absent or is present but has no responses, HLR is used for all responses.
The following example illustrates the use of the HLRSequence parameter:
SMSC = {
...
MAP = {
...
RECEIVED_SMS_STATUS_REPORT = {
...
}
# This section describes how the SMSC should handle
# SEND-ROUTING-INFORMATION and SEND_ROUTING-INFORMATION-FOR-SM requests.
HLR = {
...
}
hlrAltAction = "ACKNOWLEDGE_REQUEST"
hlrAltPercentage = 0
HLRSequence = [
{
# Each of these sections has the same format as the SMSC.MAP.HLR
# section above.
}
...
{
}
]
...
}
...
}Map SendUSSDNotification
The SEND_USSD_SS_NOTIFY_RESPONSE and SEND_USSD_MAP_ERROR_VALUE parameters configure the response to the Advanced Control Services (ACS) for a MAP-UNSTRUCURED-SS-NOTIFY message.
To send a valid response, which is the default, set SEND_USSD_SS__NOTIFY_RESPONSE to 1:
SEND_USSD_SS_NOTIFY_RESPONSE=1
To send a MAP ERROR response, set SEND_USSD_SS_NOTIFY_RESPONSE to 0:
SEND_USSD_SS_NOTIFY_RESPONSE=0
Note:
Use SEND_USSD_MAP_ERROR_VALUE=value to set the error code value (1 - 44) as defined in Map2Types.h.
Set SEND_USSD_SS_NOTIFY_RESPONSE to 2 to indicate that no response is returned:
SEND_USSD_SS_NOTIFY_RESPONSE=2
The following example illustrates the SEND_USSD_SS_NOTIFY_RESPONSE and SEND_USSD_MAP_ERROR_VALUE parameters:
AP = {
...
SEND_USSD_SS_NOTIFY_RESPONSE=0
SEND_USSD_MAP_ERROR_VALUE=1
}XMS tcapInterfaceName
The tcapInterfaceName parameter specifies the name of the interface that XMS uses to communicate with the SMSC. The parameter value is the same name that is specified as the SMSC interface by the INTERFACE parameter in the SLEE.cfg file.
The following example illustrates the tcapInterfaceName parameter in the smsc.cfg file:
XMS = {
xmsTrigger = {
plugins = [
# MAP plugin
{
lib = "xmsiMap.so"
SSN = 8
prefix = "485"
pluginId = 1
config = {
contextKey = 1234
tcapInterfaceName = "SMSCINT"
GT = "5114406267"
PC = 55
SSN = 8
}
}
}
}Configuring for IS-41
When the Protocol parameter in the smsc.cfg file is set to IS-41, smsc accepts SMSDeliveryPointToPoint requests and responds to them based on the following IS-41 parameters.
Use the following parameters to configure smsc for the IS-41 protocol.
ACK
Deprecated in favor of Action.
If the value is true, respond with a positive value for
SMSDeliveryPointToPointResult, but one without an SMS_CauseCode value.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
ACK = false |
Action
Specifies the action to take upon receipt of a message, which supersedes the ACK, NACK, TCAP_ABORT, and Ignore items. You can also use the strings "ack", "nack", "abort", and "ignore".
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
Action = "ACKNOWLEDGE_REQUEST" |
altAction
Specifies the action to take upon receipt of a message, which supersedes the ACK, NACK, TCAP_ABORT, and Ignore items. You can also use the strings "ack", "nack", "abort", and "ignore".
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
altAction = "ACKNOWLEDGE_REQUEST" |
altPercentage
Specifies the percentage of time to use altAction instead of Action.
|
Allowed Values: |
An integer between 0 and 255 |
|
Default: |
0 |
|
Example: |
altPercentage = 0 |
defaultDestPC
The point code to put in the SCCP Called Party Address of TCAP messages containing IS-41 operations.
|
Allowed Values: |
An integer between 0 and 16383 |
|
Default: |
3 |
|
Example: |
defaultDestPC = 2001 |
defaultDestSSN
The subsystem number to put in the SCCP Called Party Address of TCAP messages containing IS-41 operations.
|
Allowed Values: |
An integer between 0 and 255 |
|
Default: |
3 |
|
Example: |
defaultDestSSN = 8 |
Ignore
Deprecated in favor of Action. You can also use the string "ignore".
If the value is true, ignore the request as if it was not received.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
Ignore = false |
NACK
Deprecated in favor of Action.
If the value is true, respond with a negative value for
SMSDeliveryPointToPointResult by including an SMS_CauseCode value.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
NACK = false |
NACK_StatusCode
The action to put in the status code when the action is FAIL_REQUEST.
|
Allowed Values: |
Zero or a positive integer. Meaningful values: 0 AddressVacant 1 AddressTranslationFailure 2 NetworkResourceShortage 3 NetworkFailure 4 InvalidTeleserviceID 5 OtherNetworkProblem (6 - 31 are reserved, treated as OtherNetworkProblem) 32 NoPageResponse 33 DestinationBusy 34 NoAcknowledgement 35 DestinationResourceShortage 36 SMSDeliveryPostponed 37 DestinationOutOfService 38 DestinationNoLongerAtThisAddress 39 OtherTerminalProblem (40 - 47 are reserved, treated as OtherTerminalProblem) (48 - 63 are reserved, treated as SMSDeliveryPostponed) 64 RadioInterfaceResourceShortage 65 RadioInterfaceIncompatibility 66 OtherRadioInterfaceProblem (67 - 95 are reserved, treated as OtherRadioInterfaceProblem) 96 EncodingProblem 97 SMSOriginationDenied 98 SMSTerminationDenied 99 SupplementaryServiceNotSupported 100 SMSNotSupported 101 (reserved) 102 MissingExpectedParameter 103 MissingMandatoryParameter 104 UnrecognizedParameterValue 105 UnexpectedParameterValue 106 UserDataSizeError 107 OtherGeneralProblems |
|
Default: |
3 |
|
Example: |
NACK_StatusCode = 3 |
RECEIVED_SMS_STATUS_REPORT
The parameters in this section have the same meaning as their counterparts in the IS41 section. They apply, however, only to the action that the smsc test tool takes upon receiving a RECEIVED_SMS_STATUS_REPORT message. You can include the following parameters in the RECEIVED_SMS_STATUS_REPORT section:
-
Action
-
altAction
-
altPercentage
-
NackStatusCode
-
TCAP_ABORT
-
TCAP_Notice_cause
-
TCAP_U_ERROR_code
Note:
If any of these parameters is not present, the value from its counterpart IS-41 parameter is used instead.
For example:
IS41 = {
...
RECEIVED_SMS_STATUS_REPORT = {
Action = "ACKNOWLEDGE_REQUEST"
altAction = "ACKNOWLEDGE_REQUEST
altPercentage = 0
TCAP_ABORT_cause = 0
TCAP_NOTICE_cause = 0
TCAP_U_ERROR_code = 0
NACK_StatusCode = 3
}
...
}TCAP_ABORT
Deprecated in favor of Action. You can also use the string "abort".
If the value is true, respond by sending a TCAP_ABORT and
closing the dialog.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
TCAP_ABORT = false |
TCAP_ABORT_cause
If TCAP_ABORT is true, the value of TCAP_ABORT_cause is the
numeric code for the cause of the abort.
|
Allowed Values: |
An integer between 0 and 255 Meaningful Values: 0 Unrecognized Packet Type 1 Unrecognized Trans ID 2 Badly Structured Trans Portion 3 Incorrect Trans Portion 4 Resource Unavailable 5 Permission To Release Problem 6 Unrecognized dialogue portion ID 7 Badly structured dialogue portion 8 Missing dialogue portion 9 Inconsistent dialogue portion |
|
Default: |
0 |
|
Example: |
TCAP_ABORT_cause = 0 |
TCAP_NOTICE_cause
The cause to put in a TCAP_NOTICE message.
|
Allowed Values: |
Zero or a positive integer. Meaningful values: 0 no translation for an address of such nature 1 no translation for this specific address 2 subsystem congestion 3 subsystem failure 4 unequipped user 5 MTP failure 6 network congestion 7 unqualified 8 error in message transport (Note) 9 error in local processing (Note) 10 destination cannot perform reassembly (Note) 11 SCCP failure 12 hop counter violation 13 segmentation not supported 14 segmentation failure |
|
Default: |
0 |
|
Example: |
TCAP_NOTICE_cause = 0 |
TCAP_U_ERROR
Deprecated in favor of Action.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
TCAP_U_ERROR = false |
TCAP_U_ERROR_code
The error code to put in a TCAP ReturnError
|
Allowed Values: |
Zero or a positive integer. |
|
Default: |
0 |
|
Example: |
TCAP_U_ERROR_code = 0 |
Configuring for IS-41 as HLR
When Protocol is set to IS41, you can configure smsc to respond when it is sent an SMSRequest.
Note:
SMS and HLR functionality is independent of each other.
The smsc response is based on the following parameters:
AccessDenied
Deprecated. When true, this parameter is equivalent to Action = "NACK". which responds to the request with a ReturnResult and a cause value that indicates failure.
|
Allowed Values: |
true or false |
|
Default: |
False |
|
Example: |
AccessDenied = False |
AccessDeniedReason
Specifies the reason access was denied when the action is FAIL_REQUEST.
|
Allowed Values: |
0 NotUsed1 Denied2 Postponed3 Unavailable4 Invalid |
|
Default: |
0 |
|
Example: |
AccessDeniedReason = 0 |
Action
Specifies the action to take upon receipt of a message. The Action parameter supersedes the Enabled and AccessDenied items.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
Action = "ACKNOWLEDGE_REQUEST" |
Enabled
Deprecated. Enables HLR capabilities when true. When false,
is equivalent to Action = "IGNORE".
|
Allowed Values: |
true or false |
|
Default: |
true |
|
Example: |
Enabled= true |
esnManufacturerCode
The manufacturer code of the mobile device's Electronic Serial Number (ESN). This is returned in the SMSRequestResult message if an ESN was not present in the SMSRequest message.
|
Allowed Values: |
An integer between 0 and 255 |
|
Default: |
0 |
|
Example: |
esnManufacturerCode = 123 |
esnSerialNumber
The mobile device's Electronic Serial Number (ESN), which is returned in the SMSRequestResult message if an ESN was not present in the SMSRequest message.
|
Allowed Values: |
An integer between 0 and 16777215 |
|
Default: |
0 |
|
Example: |
esnSerialNumber = 12345678 |
hlrAltAction
Specifies the alternative action to take upon receipt of a lookup request. The hlrAltAction parameter is used instead of the Action parameter the percentage of time specified by hlrAltPercentage.
|
Allowed Values: |
|
|
Default: |
"ACKNOWLEDGE_REQUEST" |
|
Example: |
hlrAltAction = "ACKNOWLEDGE_REQUEST" |
hlrPercentage
Specifies the percentage of time to use the hlrAltAction parameter instead of the Action parameter.
|
Allowed Values: |
An integer between 0 and 255. |
|
Default: |
0 |
|
Example: |
hlrAltPercentage |
HLRSequence
Optional. This parameter is an array that enables you to configure a different responses for the MAP plugin when using HLR functionality for Status Reports and Submit messages. See "SMSC Sequence for MAP as IS-41" for more information.
mobileIdentificationNumber
The mobile identification number (MIN), which is returned in the SMSRequestResult message if the MDN was present in the SMSRequest message.
|
Allowed Values: |
A string of exactly ten digits |
|
Default: |
"1234567890" |
|
Example: |
mobileIdentificationNumber = "1234567890" |
NatureOfNumber
Specifies whether the routing address is national or international.
|
Allowed Values: |
"national" or "international" (case sensitive). |
|
Default: |
"national" |
|
Example: |
NatureOfNumber = "national" |
NumberPlan
Specifies the number plan portion of the routing address, which is the address of the MSC at which the mobile device currently can be reached.
|
Allowed Values: |
An integer between 0 and 255 Meaning (from standard IS-41D): 0 Unknown or not applicable. 1 ISDN Numbering (not used in this Standard). 2 Telephony Numbering (ITU-T Rec. E.164, E.163). 3 Data Numbering (ITU-T Rec. X.121) (not used in this Standard). 4 Telex Numbering (ITU-T Rec. F.69) (not used in this Standard). 5 Maritime Mobile Numbering (not used in this Standard). 6 Land Mobile Numbering (ITU-T Rec. E.212) 7 Private Numbering Plan (service provider defined). 13 ANSI SS7 Point Code (PC) and SubsystemNumber (SSN). 14 Internet Protocol (IP) Address. 15 Reserved for extension. X Other values are reserved. |
|
Default: |
2 (Telephony Numbering) |
|
Example: |
NumberPlan = 2 |
returnMIN
Specifies whether to include the MIN in the SMSRequestResult message.
|
Allowed Values: |
true or false |
|
Default: |
false |
|
Example: |
returnMIN = false |
RoutingAddress
The global address of the MSC at which the mobile device currently can be reached.
|
Allowed Values: |
A string of digits. |
|
Default: |
0 |
|
Example: |
RoutingAddress = "12345678" |
TCAP_ABORT_cause
If TCAP_ABORT is true, the value of TCAP_ABORT_cause is the
numeric code for the cause of the abort.
|
Allowed Values: |
An integer between 0 and 255 Meaningful Values: 0 Unrecognized Packet Type 1 Unrecognized Trans ID 2 Badly Structured Trans Portion 3 Incorrect Trans Portion 4 Resource Unavailable 5 Permission To Release Problem 6 Unrecognized dialogue portion ID 7 Badly structured dialogue portion 8 Missing dialogue portion 9 Inconsistent dialogue portion |
|
Default: |
0 |
|
Example: |
TCAP_ABORT_cause = 0 |
TCAP_NOTICE_cause
The cause to put in a TCAP_NOTICE message.
|
Allowed Values: |
An integer between 0 and 255. Meaningful values: 0 no translation for an address of such nature 1 no translation for this specific address 2 subsystem congestion 3 subsystem failure 4 unequipped user 5 MTP failure 6 network congestion 7 unqualified 8 error in message transport (Note) 9 error in local processing (Note) 10 destination cannot perform reassembly (Note) 11 SCCP failure 12 hop counter violation 13 segmentation not supported 14 segmentation failure |
|
Default: |
0 |
|
Example: |
TCAP_NOTICE_cause = 0 |
SMSC Sequence for MAP as IS-41
When Protocol is set to IS41, you can add an HLRSequence parameter to configure different responses for the MAP plugin when using HLR functionality for Status Reports and Submit messages. HLRSequence is an array where each array element represents a response.
Each parameter available for HLR configuration is also available for HLRSequence.
The following rules apply to use of the HLRSequence parameter:
-
If HLRSequence has one response, it is used for all responses.
-
If HLRSequence has more than one response, the first request will be handled according to the first array element, the second request will be handled according to the second array element, and so on. When the smsc test tool reaches the end of the array, it loops back to the beginning of the array..
-
If HLRSequence is absent or is present but has no responses, HLR is used for all responses.
The following example illustrates the use of the HLRSequence parameter for MAP as IS-41:
# smsc.cfg
SMSC = {
Protocol = "IS41"
IS41 = {
Action = "ACK"
HLRSequence = [
{
Action = 0
NatureOfNumber = "international"
RoutingAddress = "6449393400"
}
{
Action = "NACK"
AccessDeniedReason = 2
NatureOfNumber = "international"
RoutingAddress = "6449393400"
}
]
}
}Specifying AccessDeniedReason Values
Use the values in Table 4-1 to specify values for the AccessDeniedReason parameter.
Table 4-1 AccessDeniedReason Values
| Value | Meaning |
|---|---|
|
0 |
NotUsed |
|
1 |
Denied |
|
2 |
Postponed |
|
3 |
Unavailable |
|
4 |
Invalid |
tcapInterfaceServiceKey for XMS
The tcapInterfaceServiceKey parameter specifies the service key that XMS uses to communicate with the smsc test tool. This service key must match the SERVICEKEY parameter for the SMSC interface in the SLEE.cfg file.
The following example shows the tcapInterfaceServiceKey parameter in the smsc.cfg file:
# eserv.config
XMS = {
xmsTrigger = {
plugins = [
# IS41 plugin
{
lib = "libxmsiIS41.so"
pluginId = 1
config = {
# ....
TDMA = {
xmsPointCode = 200
tcapInterfaceServiceKey = 42
# ....
}
CDMA = {
xmsPointCode = 201
tcapInterfaceServiceKey = 42
}
}
} ] } }SMS CauseCode Mapping
Use the values in Table 4-2 to specify the SMS CauseCode values.
Table 4-2 SMS CauseCode Values
| Numeric Value | String Value |
|---|---|
|
0 |
AddressVacant |
|
1 |
AddressTranslationFailure |
|
2 |
NetworkResourceShortage |
|
3 |
NetworkFailure |
|
4 |
InvalidTeleserviceID |
|
5 |
OtherNetworkProblem |
|
6-31 |
Reserved, treated as OtherNetworkProblem |
|
32 |
NoPageResponse |
|
33 |
DestinationBusy |
|
34 |
NoAcknowledgement |
|
35 |
DestinationResourceShortage |
|
36 |
SMSDeliveryPostponed |
|
37 |
DestinationOutOfService |
|
38 |
DestinationNoLongerAtThisAddress |
|
39 |
OtherTerminalProblem |
|
40-47 |
Reserved, treated as OtherTerminalProblem |
|
48-63 |
Reserved, treated as SMSDeliveryPostponed |
|
64 |
RadioInterfaceResourceShortage |
|
65 |
RadioInterfaceIncompatibility |
|
66 |
OtherRadioInterfaceProblem |
|
67-95 |
Reserved, treated as OtherRadioInterfaceProblem |
|
96 |
EncodingProblem |
|
97 |
SMSOriginationDenied |
|
98 |
SMSTerminationDenied |
|
99 |
SupplementaryServiceNotSupported |
|
100 |
SMSNotSupported |
|
101 |
Reserved |
|
102 |
MissingExpectedParameter |
|
103 |
MissingMandatoryParameter |
|
104 |
UnrecognizedParameterValue |
|
105 |
UnexpectedParameter Value |
|
106 |
UserDataSizeError |
|
107 |
OtherGeneralProblems |