7 SMS Control

29.0783GPPCAMEL Application Part (CAP) specificationCustomised Applications for Mobile network Enhanced Logic (CAMEL) Phase XRelease 17TS

This clause defines the protocol used for CAMEL control of MO SMS and MT SMS. CAMEL control of MO SMS uses version 3 of the application context, and CAMEL control of MT SMS uses version 4 of the application context.

7.1 SMS operations and arguments

CAP-SMS-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-SMS-ops-args(105) version8(7)}

— The module CAP-SMS-ops-args is updated to version8(7) for Rel-6. The OPERATION definitions

— are not modified.

DEFINITIONS IMPLICIT TAGS::= BEGIN

— This module contains the operations and operation arguments used for the

— smsSSF– gsmSCF interface, for the control of MO-SMS and MT-SMS.

— The table in subclause 2.1 lists the specifications that contain the modules

— that are used by CAP.

IMPORTS

errortypes,

datatypes,

operationcodes,

classes,

ros-InformationObjects,

tc-Messages

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)

umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

OPERATION

FROM Remote-Operations-Information-Objects ros-InformationObjects

ServiceKey

FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)

modules(0) cs1-datatypes(2) version1(0)}

MiscCallInfo

FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)

cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}

IMEI,

IMSI,

ISDN-AddressString

FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)

gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}

GPRSMSClass,

LocationInformation,

MS-Classmark2

FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)

gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}

PARAMETERS-BOUND

FROM CAP-classes classes

opcode-connectSMS,

opcode-continueSMS,

opcode-eventReportSMS,

opcode-furnishChargingInformationSMS,

opcode-initialDPSMS,

opcode-releaseSMS,

opcode-requestReportSMSEvent,

opcode-resetTimerSMS

FROM CAP-operationcodes operationcodes

— The CAP Operation identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as in Rel-5.

CalledPartyBCDNumber {},

EventSpecificInformationSMS,

EventTypeSMS,

Extensions {},

FCISMSBillingChargingCharacteristics,

LocationInformationGPRS,

RPCause,

SMS-AddressString,

SMSEvent,

TimeAndTimezone {},

TimerID,

TimerValue,

TPDataCodingScheme,

TPProtocolIdentifier,

TPShortMessageSpecificInfo,

TPValidityPeriod

FROM CAP-datatypes datatypes

— For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier ‘datatypes’

— is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.

missingCustomerRecord,

missingParameter,

parameterOutOfRange,

systemFailure,

taskRefused,

unexpectedComponentSequence,

unexpectedDataValue,

unexpectedParameter

FROM CAP-errortypes errortypes

— For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier

— ‘errortypes’ is also updated to version8(7). As a result, the present module uses Rel-6

— error type definitions.

CallReferenceNumber

FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)

gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}

;

connectSMS {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT ConnectSMSArg {bound}

RETURN RESULT FALSE

ERRORS {missingParameter |

parameterOutOfRange |

systemFailure |

taskRefused |

unexpectedComponentSequence |

unexpectedDataValue |

unexpectedParameter}

CODE opcode-connectSMS}

— Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Tconsms

— This operation is used to request the smsSSF to perform the SMS processing

— actions to route or forward a short message to a specified destination.

ConnectSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {

callingPartysNumber [0] SMS-AddressString OPTIONAL,

destinationSubscriberNumber [1] CalledPartyBCDNumber {bound} OPTIONAL,

sMSCAddress [2] ISDN-AddressString OPTIONAL,

extensions [10] Extensions {bound} OPTIONAL,

}

continueSMS OPERATION ::= {

RETURN RESULT FALSE

ALWAYS RESPONDS FALSE

CODE opcode-continueSMS}

— Direction: gsmSCF -> smsSSF, Timer: Tcuesms

— This operation is used to request the smsSSF to proceed with
— Short Message processing at the DP at which it previously suspended
— Short Message processing to await gsmSCF instructions (i.e. proceed
— to the next Point in Association in the SMS FSM). The smsSSF
— continues SMS processing without substituting new data from the gsmSCF.

eventReportSMS {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT EventReportSMSArg {bound}

RETURN RESULT FALSE

ALWAYS RESPONDS FALSE

CODE opcode-eventReportSMS}

— Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Terbsms

— This operation is used to notify the gsmSCF of a Short Message related event (FSM events

— such as submission, delivery or failure) previously requested by the gsmSCF in a

— RequestReportSMSEvent operation.

EventReportSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {

eventTypeSMS [0] EventTypeSMS,

eventSpecificInformationSMS [1] EventSpecificInformationSMS OPTIONAL,

miscCallInfo [2] MiscCallInfo DEFAULT {messageType request},

extensions [10] Extensions {bound} OPTIONAL,

}

furnishChargingInformationSMS {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT FurnishChargingInformationSMSArg {bound}

RETURN RESULT FALSE

ERRORS {missingParameter |

taskRefused |

unexpectedComponentSequence |

unexpectedDataValue |

unexpectedParameter}

CODE opcode-furnishChargingInformationSMS}

— Direction: gsmSCF  gsmSSF or gprsSSF, Timer: Tfcisms

— This operation is used to request the smsSSF to generate, register a charging record

— or to include some information in the default SM record. The registered charging record is

— intended for off line charging of the Short Message.

FurnishChargingInformationSMSArg {PARAMETERS-BOUND : bound} ::=

FCISMSBillingChargingCharacteristics {bound}

initialDPSMS {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT InitialDPSMSArg {bound}

RETURN RESULT FALSE

ERRORS {missingCustomerRecord |

missingParameter |

parameterOutOfRange |

systemFailure |

taskRefused |

unexpectedComponentSequence |

unexpectedDataValue |

unexpectedParameter}

CODE opcode-initialDPSMS}

— Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Tidpsms

— This operation is used after a TDP to indicate request for service.

InitialDPSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {

serviceKey [0] ServiceKey,

destinationSubscriberNumber [1] CalledPartyBCDNumber {bound} OPTIONAL,

callingPartyNumber [2] SMS-AddressString OPTIONAL,

eventTypeSMS [3] EventTypeSMS OPTIONAL,

iMSI [4] IMSI OPTIONAL,

locationInformationMSC [5] LocationInformation OPTIONAL,

locationInformationGPRS [6] LocationInformationGPRS OPTIONAL,

sMSCAddress [7] ISDN-AddressString OPTIONAL,

timeAndTimezone [8] TimeAndTimezone {bound} OPTIONAL,

tPShortMessageSpecificInfo [9] TPShortMessageSpecificInfo OPTIONAL,

tPProtocolIdentifier [10] TPProtocolIdentifier OPTIONAL,

tPDataCodingScheme [11] TPDataCodingScheme OPTIONAL,

tPValidityPeriod [12] TPValidityPeriod OPTIONAL,

extensions [13] Extensions {bound} OPTIONAL,

…,

smsReferenceNumber [14] CallReferenceNumber OPTIONAL,

mscAddress [15] ISDN-AddressString OPTIONAL,

sgsn-Number [16] ISDN-AddressString OPTIONAL,

ms-Classmark2 [17] MS-Classmark2 OPTIONAL,

gPRSMSClass [18] GPRSMSClass OPTIONAL,

iMEI [19] IMEI OPTIONAL,

calledPartyNumber [20] ISDN-AddressString OPTIONAL

}

— The UserCSGInformation is conveyed in the LocationInformation for CS and LocationInformationGPRS

— for GPRS. The encoding of the parameter is as defined in 3GPP TS 29.002 [11].

releaseSMS OPERATION ::= {

ARGUMENT ReleaseSMSArg

RETURN RESULT FALSE

ALWAYS RESPONDS FALSE

CODE opcode-releaseSMS}

— Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trelsms

— This operation is used to prevent an attempt to submit or deliver a short message.

ReleaseSMSArg ::= RPCause

requestReportSMSEvent {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT RequestReportSMSEventArg {bound}

RETURN RESULT FALSE

ERRORS {missingParameter |

parameterOutOfRange |

systemFailure |

taskRefused |

unexpectedComponentSequence |

unexpectedDataValue |

unexpectedParameter}

CODE opcode-requestReportSMSEvent}

— Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trrbsms

— This operation is used to request the gsmSSF or gprsSSF to monitor for a

— Short Message related event (FSM events such as submission, delivery or failure)

— and to send a notification to the gsmSCF when the event is detected.

RequestReportSMSEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {

sMSEvents [0] SEQUENCE SIZE (1..bound.&numOfSMSEvents) OF SMSEvent,

extensions [10] Extensions {bound} OPTIONAL,

}

— Indicates the Short Message related events(s) for notification.

resetTimerSMS {PARAMETERS-BOUND : bound} OPERATION ::= {

ARGUMENT ResetTimerSMSArg {bound}

RETURN RESULT FALSE

ERRORS {missingParameter |

parameterOutOfRange |

taskRefused |

unexpectedComponentSequence |

unexpectedDataValue |

unexpectedParameter}

CODE opcode-resetTimerSMS}

— Direction: gsmSCF -> smsSSF, Timer: Trtsms

— This operation is used to request the smsSSF to refresh an application

— timer in the smsSSF.

ResetTimerSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {

timerID [0] TimerID DEFAULT tssf,

timervalue [1] TimerValue,

extensions [2] Extensions {bound} OPTIONAL,

}

END

7.1.1 Operation timers

The following value ranges apply for operation specific timers in CAP:

short: 1 to 20 seconds;

medium: 1 to 60 seconds;

long: 1 second to 30 minutes.

Table 7-1 lists all operation timers and the value range for each timer. The definitive value for each operation timer may be network specific and has to be defined by the network operator.

Table 7‑1: Operation timers and their value range

Operation Name

Timer

Value range

ConnectSMS

Tconsms

Short

ContinueSMS

Tcuesms

Short

EventReportSMS

Terbsms

Short

FurnishChargingInformationSMS

Tfcisms

Short

InitialDPSMS

Tidpsms

Short

ReleaseSMS

Trelsms

Short

RequestReportSMSEvent

Trrbsms

Short

ResetTimerSMS

Trtsms

Short

7.2 SMS contracts, packages and ACs

7.2.1 smsSSF/gsmSCF ASN.1 module

CAP-smsSSF-gsmSCF-pkgs-contracts-acs {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-smsSSF-gsmSCF-pkgs-contracts-acs(106) version8(7)}

DEFINITIONS ::= BEGIN

— This module specifies the Operation Packages, Contracts, Application Contexts

— and Abstract Syntaxes used for the smsSSF – gsmSCF interface, for the

— control of MO-SMS and MT-SMS.

— The table in subclause 2.1 lists the specifications that contain the modules

— that are used by CAP.

IMPORTS

PARAMETERS-BOUND,

cAPSpecificBoundSet

FROM CAP-classes classes

— Elements that exist in cAPSpecificBoundSet in Rel-5 are not changed in Rel-6. As a

— result, the value range of data type definitions in Rel-5 are not changed in Rel-6.

CONTRACT,

OPERATION-PACKAGE,

OPERATION

FROM Remote-Operations-Information-Objects ros-InformationObjects

TCMessage {}

FROM TCAPMessages tc-Messages

APPLICATION-CONTEXT,

dialogue-abstract-syntax

FROM TC-Notation-Extensions tc-NotationExtensions

connectSMS{},

continueSMS,

eventReportSMS{},

furnishChargingInformationSMS{},

initialDPSMS{},

releaseSMS,

requestReportSMSEvent{},

resetTimerSMS{}

FROM CAP-SMS-ops-args sms-Operations

— Object Identifier ‘sms-Operations’ is updated to version8(7) in Rel-6. As a result,

— the present module, ‘CAP-smsSSF-gsmSCF-pkgs-contracts-acs’, IMPORTS CAP Operation

— definitions from CAP-SMS-ops-args version8(7). Operation definitions are used in the

— ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE definitions.

id-ac-cap3-sms-AC,

id-ac-cap4-sms-AC,

— The APPLICATION-CONTEXT Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as

— in Rel-5.

id-cap3SmsSsfTogsmScf,

id-cap4SmsSsfTogsmScf,

— The CONTRACT Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as in Rel-5.

id-package-smsActivation,

id-package-smsConnect,

id-package-smsContinue,

id-package-smsRelease,

id-package-smsEventHandling,

id-package-smsBilling,

id-package-smsTimer,

— The OPERATION-PACKAGE Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as

— in Rel-5.

sms-Operations,

— Object Identifier sms-Operations is updated to version8(7) in Rel-6. As a result, the present

— module, ‘CAP-smsSSF-gsmSCF-pkgs-contracts-acs’, IMPORTS Rel-6 versions of the CAP Operation

— definitions.

tc-NotationExtensions,

tc-Messages,

ros-InformationObjects,

classes,

id-as-smsSSF-gsmSCF-AS

— The ABSTRACT-SYNTAX Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as

— in Rel-5.

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)

umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

;

— Application Contexts

— Rel-6 uses the same Application Context versions for SMS as Rel-5. The CONTRACT and ABSTRACT

— SYNTAXES for SMS are defined in Rel-6.

— Refer to ITU-T Recommendation Q.775 for the formal definition of APPLICATION-CONTEXT.

— The structured DIALOGUE MODE is defined in ITU-T Recommendation Q.771; the

— dialogue-abstract-syntax ABSTRACT SYNTAX is defined in ITU-T Recommendation Q.775.

cap3-sms-AC APPLICATION-CONTEXT ::= {

CONTRACT cap3SMS

DIALOGUE MODE structured

ABSTRACT SYNTAXES {dialogue-abstract-syntax |

sms-AbstractSyntax}

APPLICATION CONTEXT NAME id-ac-cap3-sms-AC}

— This application context shall be used for CAMEL support of MO-SMS.

— ‘cap3SMS’ and ‘sms-AbstractSyntax’ are defined in the present module.

cap4-sms-AC APPLICATION-CONTEXT ::= {

CONTRACT cap4SMS

DIALOGUE MODE structured

ABSTRACT SYNTAXES {dialogue-abstract-syntax |

sms-AbstractSyntax}

APPLICATION CONTEXT NAME id-ac-cap4-sms-AC}

— This application context shall be used for CAMEL support of MT-SMS.

— ‘cap4SMS’ and ‘sms-AbstractSyntax’ are defined in the present module.

— Contracts

— The CONTRACT definitions for SMS in Rel-6 use OPERATION-PACKAGE definitions which are

— defined in Rel-6.

cap3SMS CONTRACT ::= {

— dialogue initiated by gprsSSF or gsmSSF with InitialDPSMS Operation

INITIATOR CONSUMER OF {smsActivationPackage {cAPSpecificBoundSet}}

RESPONDER CONSUMER OF {smsConnectPackage {cAPSpecificBoundSet} |

smsReleasePackage |

smsEventHandlingPackage {cAPSpecificBoundSet} |

smsTimerPackage {cAPSpecificBoundSet} |

smsBillingPackage {cAPSpecificBoundSet} |

smsProcessingPackage}

ID id-cap3SmsSsfTogsmScf}

— The OPERATION-PACKAGEs are defined in the present module.

cap4SMS CONTRACT ::= {

— dialogue initiated by gprsSSF or gsmSSF with InitialDPSMS Operation

INITIATOR CONSUMER OF {smsActivationPackage {cAPSpecificBoundSet}}

RESPONDER CONSUMER OF {smsConnectPackage {cAPSpecificBoundSet} |

smsReleasePackage |

smsEventHandlingPackage {cAPSpecificBoundSet} |

smsTimerPackage {cAPSpecificBoundSet} |

smsBillingPackage {cAPSpecificBoundSet} |

smsProcessingPackage }

ID id-cap4SmsSsfTogsmScf}

— The OPERATION-PACKAGEs are defined in the present module.

— Operation Packages

— The OPERATION-PACKAGE definitions for SMS in Rel-6 use Operation definitions from Rel-6. The

— OPERATION definitions are IMPORTED from CAP-SMS-ops-args.

smsActivationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {

CONSUMER INVOKES {initialDPSMS {bound}}

ID id-package-smsActivation}

smsConnectPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {

CONSUMER INVOKES {connectSMS {bound}}

ID id-package-smsConnect}

smsProcessingPackage OPERATION-PACKAGE ::= {

CONSUMER INVOKES {continueSMS}

ID id-package-smsContinue}

smsReleasePackage OPERATION-PACKAGE ::= {

CONSUMER INVOKES {releaseSMS}

ID id-package-smsRelease}

smsEventHandlingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {

CONSUMER INVOKES {requestReportSMSEvent {bound}}

SUPPLIER INVOKES {eventReportSMS {bound}}

ID id-package-smsEventHandling}

smsBillingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {

CONSUMER INVOKES {furnishChargingInformationSMS {bound}}

ID id-package-smsBilling}

smsTimerPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {

CONSUMER INVOKES {resetTimerSMS {bound}}

ID id-package-smsTimer}

— Abstract Syntaxes

— SmsInvokable and SmsReturnable use OPERATION definitions with version8(7). As a result,

— Generic-sms-PDUs uses version8(7) OPERATION definitions. As a subsequent result,

— sms-AbstractSyntax uses version8(7) OPERATION definitions. That ABSTRACT-SYNTAX is used

— in the cap3-sms-AC APPLICATION-CONTEXT definition and in the and cap4-sms-AC APPLICATION-

— CONTEXT definition (CAP from smsSSF to gsmSCF).

sms-AbstractSyntax ABSTRACT-SYNTAX ::= {

Generic-sms-PDUs

IDENTIFIED BY id-as-smsSSF-gsmSCF-AS }

— ‘Generic-sms-PDUs’ is defined in the present module.

Generic-sms-PDUs ::= TCMessage {{SmsInvokable},

{SmsReturnable}}

— ‘SmsInvokable’ and ‘SmsReturnable’ are defined in the present module.

SmsInvokable OPERATION ::= {

connectSMS {cAPSpecificBoundSet} |

eventReportSMS {cAPSpecificBoundSet} |

furnishChargingInformationSMS {cAPSpecificBoundSet} |

initialDPSMS {cAPSpecificBoundSet} |

requestReportSMSEvent {cAPSpecificBoundSet} |

resetTimerSMS {cAPSpecificBoundSet}}

— The OPERATION definitions are IMPORTED from CAP-SMS-ops-args version8(7).

SmsReturnable OPERATION ::= {

connectSMS {cAPSpecificBoundSet} |

continueSMS |

furnishChargingInformationSMS {cAPSpecificBoundSet} |

initialDPSMS {cAPSpecificBoundSet} |

releaseSMS |

requestReportSMSEvent {cAPSpecificBoundSet} |

resetTimerSMS {cAPSpecificBoundSet}}

— The OPERATION definitions are IMPORTED from CAP-SMS-ops-args version8(7).

END