-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0)
  gsm-Network(1) modules(3) map-SS-DataTypes(14) version8(8)} DEFINITIONS
IMPLICIT TAGS ::=
BEGIN

EXPORTS
  RegisterSS-Arg, SS-Info, SS-Status, SS-SubscriptionOption, SS-ForBS-Code,
    InterrogateSS-Res, USSD-Arg, USSD-Res, USSD-DataCodingScheme, USSD-String,
    Password, GuidanceInfo, SS-List, SS-InfoList, OverrideCategory,
    CliRestrictionOption, NoReplyConditionTime, ForwardingOptions, maxNumOfSS,
    SS-Data, SS-InvocationNotificationArg, SS-InvocationNotificationRes,
    CCBS-Feature, RegisterCC-EntryArg, RegisterCC-EntryRes, EraseCC-EntryArg,
    EraseCC-EntryRes;

IMPORTS
  AddressString, ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString,
    IMSI, BasicServiceCode, AlertingPattern, EMLPP-Priority, MaxMC-Bearers,
    MC-Bearers, ExternalSignalInfo
    FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0)
      mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18)
      version8(8)}
  ExtensionContainer
    FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0)
      mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21)
      version8(8)}
  SS-Code
    FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0)
      gsm-Network(1) modules(3) map-SS-Code(15) version8(8)};

RegisterSS-Arg ::= SEQUENCE {
  ss-Code                SS-Code,
  basicService           BasicServiceCode OPTIONAL,
  forwardedToNumber      [4]  AddressString OPTIONAL,
  forwardedToSubaddress  [6]  ISDN-SubaddressString OPTIONAL,
  noReplyConditionTime   [5]  NoReplyConditionTime OPTIONAL,
  ...,
  defaultPriority        [7]  EMLPP-Priority OPTIONAL,
  nbrUser                [8]  MC-Bearers OPTIONAL,
  longFTN-Supported      [9]  NULL OPTIONAL}

NoReplyConditionTime ::= INTEGER(5..30)

SS-Info ::= CHOICE {
  forwardingInfo   [0]  ForwardingInfo,
  callBarringInfo  [1]  CallBarringInfo,
  ss-Data          [3]  SS-Data}

ForwardingInfo ::= SEQUENCE {
  ss-Code                SS-Code OPTIONAL,
  forwardingFeatureList  ForwardingFeatureList,
  ...}

ForwardingFeatureList ::=
  SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF ForwardingFeature

ForwardingFeature ::= SEQUENCE {
  basicService              BasicServiceCode OPTIONAL,
  ss-Status                 [4]  SS-Status OPTIONAL,
  forwardedToNumber         [5]  ISDN-AddressString OPTIONAL,
  forwardedToSubaddress     [8]  ISDN-SubaddressString OPTIONAL,
  forwardingOptions         [6]  ForwardingOptions OPTIONAL,
  noReplyConditionTime      [7]  NoReplyConditionTime OPTIONAL,
  ...,
  longForwardedToNumber     [9]  FTN-AddressString OPTIONAL}

SS-Status ::= OCTET STRING(SIZE (1))

-- bits 8765: 0000 (unused)
-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",
-- representing supplementary service state information
-- as defined in TS 3GPP TS 23.011 [22]
-- bit 4: "Q bit"
-- bit 3: "P bit"
-- bit 2: "R bit"
-- bit 1: "A bit"
ForwardingOptions ::= OCTET STRING(SIZE (1))

-- bit 8: notification to forwarding party
-- 0 no notification
-- 1 notification
-- bit 7: redirecting presentation
-- 0 no presentation
-- 1 presentation
-- bit 6: notification to calling party
-- 0 no notification
-- 1 notification
-- bit 5: 0 (unused)
-- bits 43: forwarding reason
-- 00 ms not reachable
-- 01 ms busy
-- 10 no reply
-- 11 unconditional when used in a SRI Result,
-- or call deflection when used in a RCH Argument
-- bits 21: 00 (unused)
CallBarringInfo ::= SEQUENCE {
  ss-Code                 SS-Code OPTIONAL,
  callBarringFeatureList  CallBarringFeatureList,
  ...}

CallBarringFeatureList ::=
  SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF CallBarringFeature

CallBarringFeature ::= SEQUENCE {
  basicService  BasicServiceCode OPTIONAL,
  ss-Status     [4]  SS-Status OPTIONAL,
  ...}

SS-Data ::= SEQUENCE {
  ss-Code                SS-Code OPTIONAL,
  ss-Status              [4]  SS-Status OPTIONAL,
  ss-SubscriptionOption  SS-SubscriptionOption OPTIONAL,
  basicServiceGroupList  BasicServiceGroupList OPTIONAL,
  ...,
  defaultPriority        EMLPP-Priority OPTIONAL,
  nbrUser                [5]  MC-Bearers OPTIONAL}

SS-SubscriptionOption ::= CHOICE {
  cliRestrictionOption  [2]  CliRestrictionOption,
  overrideCategory      [1]  OverrideCategory}

CliRestrictionOption ::= ENUMERATED {
  permanent(0), temporaryDefaultRestricted(1), temporaryDefaultAllowed(2)
}

OverrideCategory ::= ENUMERATED {overrideEnabled(0), overrideDisabled(1)}

SS-ForBS-Code ::= SEQUENCE {
  ss-Code               SS-Code,
  basicService          BasicServiceCode OPTIONAL,
  ...,
  longFTN-Supported     [4]  NULL OPTIONAL}

GenericServiceInfo ::= SEQUENCE {
  ss-Status                   SS-Status,
  cliRestrictionOption        CliRestrictionOption OPTIONAL,
  ...,
  maximumEntitledPriority     [0]  EMLPP-Priority OPTIONAL,
  defaultPriority             [1]  EMLPP-Priority OPTIONAL,
  ccbs-FeatureList            [2]  CCBS-FeatureList OPTIONAL,
  nbrSB                       [3]  MaxMC-Bearers OPTIONAL,
  nbrUser                     [4]  MC-Bearers OPTIONAL,
  nbrSN                       [5]  MC-Bearers OPTIONAL}

CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF CCBS-Feature

maxNumOfCCBS-Requests INTEGER ::= 5

CCBS-Feature ::= SEQUENCE {
  ccbs-Index              [0]  CCBS-Index OPTIONAL,
  b-subscriberNumber      [1]  ISDN-AddressString OPTIONAL,
  b-subscriberSubaddress  [2]  ISDN-SubaddressString OPTIONAL,
  basicServiceGroup       [3]  BasicServiceCode OPTIONAL,
  ...}

CCBS-Index ::= INTEGER(1..maxNumOfCCBS-Requests)

InterrogateSS-Res ::= CHOICE {
  ss-Status              [0]  SS-Status,
  basicServiceGroupList  [2]  BasicServiceGroupList,
  forwardingFeatureList  [3]  ForwardingFeatureList,
  genericServiceInfo     [4]  GenericServiceInfo}

USSD-Arg ::= SEQUENCE {
  ussd-DataCodingScheme  USSD-DataCodingScheme,
  ussd-String            USSD-String,
  ...,
  alertingPattern        AlertingPattern OPTIONAL,
  msisdn                 [0]  ISDN-AddressString OPTIONAL}

USSD-Res ::= SEQUENCE {
  ussd-DataCodingScheme  USSD-DataCodingScheme,
  ussd-String            USSD-String,
  ...}

USSD-DataCodingScheme ::= OCTET STRING(SIZE (1))

-- The structure of the USSD-DataCodingScheme is defined by
-- the Cell Broadcast Data Coding Scheme as described in
-- TS 3GPP TS 23.038 [25]
USSD-String ::= OCTET STRING(SIZE (1..maxUSSD-StringLength))

-- The structure of the contents of the USSD-String is dependent
-- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].
maxUSSD-StringLength INTEGER ::=
  160

Password ::=
  NumericString
    (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))
    (SIZE (4))

GuidanceInfo ::= ENUMERATED {enterPW(0), enterNewPW(1), enterNewPW-Again(2)}

-- How this information is really delivered to the subscriber
-- (display, announcement, ...) is not part of this
-- specification.
SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Code

maxNumOfSS INTEGER ::= 30

SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Info

BasicServiceGroupList ::=
  SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF BasicServiceCode

maxNumOfBasicServiceGroups INTEGER ::= 13

SS-InvocationNotificationArg ::= SEQUENCE {
  imsi                   [0]  IMSI,
  msisdn                 [1]  ISDN-AddressString,
  ss-Event               [2]  SS-Code,
  -- The following SS-Code values are allowed :
  -- ect SS-Code ::= '00110001'B
  -- multiPTY SS-Code ::= '01010001'B
  -- cd SS-Code ::= '00100100'B
  -- ccbs SS-Code ::= '01000100'B
  ss-EventSpecification  [3]  SS-EventSpecification OPTIONAL,
  extensionContainer     [4]  ExtensionContainer OPTIONAL,
  ...,
  b-subscriberNumber     [5]  ISDN-AddressString OPTIONAL,
  ccbs-RequestState      [6]  CCBS-RequestState OPTIONAL}

CCBS-RequestState ::= ENUMERATED {
  request(0), recall(1), active(2), completed(3), suspended(4), frozen(5),
  deleted(6)}

SS-InvocationNotificationRes ::= SEQUENCE {
  extensionContainer  ExtensionContainer OPTIONAL,
  ...}

SS-EventSpecification ::=
  SEQUENCE SIZE (1..maxEventSpecification) OF AddressString

maxEventSpecification INTEGER ::= 2

RegisterCC-EntryArg ::= SEQUENCE {
  ss-Code    [0]  SS-Code,
  ccbs-Data  [1]  CCBS-Data OPTIONAL,
  ...}

CCBS-Data ::= SEQUENCE {
  ccbs-Feature        [0]  CCBS-Feature,
  translatedB-Number  [1]  ISDN-AddressString,
  serviceIndicator    [2]  ServiceIndicator OPTIONAL,
  callInfo            [3]  ExternalSignalInfo,
  networkSignalInfo   [4]  ExternalSignalInfo,
  ...}

ServiceIndicator ::= BIT STRING {clir-invoked(0), camel-invoked(1)
}(SIZE (2..32))

-- exception handling:
-- bits 2 to 31 shall be ignored if received and not understood
RegisterCC-EntryRes ::= SEQUENCE {
  ccbs-Feature  [0]  CCBS-Feature OPTIONAL,
  ...}

EraseCC-EntryArg ::= SEQUENCE {
  ss-Code     [0]  SS-Code,
  ccbs-Index  [1]  CCBS-Index OPTIONAL,
  ...}

EraseCC-EntryRes ::= SEQUENCE {
  ss-Code    [0]  SS-Code,
  ss-Status  [1]  SS-Status OPTIONAL,
  ...}

END

