Import code to generate RRLP ephemeris data from u-blox GPS receiver

taken from http://www.246tnt.com/files/rrlp-20091101.tar.bz2
master
Sylvain Munaut 13 years ago committed by Harald Welte
commit 341542b9d3
  1. 2
      COPYING
  2. 44
      Makefile
  3. 131
      asn1/MAP-BS-Code.asn
  4. 633
      asn1/MAP-CommonDataTypes.asn
  5. 415
      asn1/MAP-ER-DataTypes.asn
  6. 74
      asn1/MAP-ExtensionDataTypes.asn
  7. 657
      asn1/MAP-LCS-DataTypes.asn
  8. 2780
      asn1/MAP-MS-DataTypes.asn
  9. 216
      asn1/MAP-OM-DataTypes.asn
  10. 270
      asn1/MAP-SM-DataTypes.asn
  11. 190
      asn1/MAP-SS-Code.asn
  12. 342
      asn1/MAP-SS-DataTypes.asn
  13. 92
      asn1/MAP-TS-Code.asn
  14. 1488
      asn1/RRLP-Components.asn
  15. 38
      asn1/RRLP-Messages.asn
  16. 36
      asn1/patch-rrlp-components.diff
  17. BIN
      data.ubx
  18. 339
      gpl-2.0.txt
  19. 674
      gpl-3.0.txt
  20. 126
      gps.c
  21. 171
      gps.h
  22. 99
      main.c
  23. 599
      rrlp.c
  24. 64
      rrlp.h
  25. 165
      ubx-parse.c
  26. 45
      ubx-parse.h
  27. 81
      ubx.c
  28. 232
      ubx.h

@ -0,0 +1,2 @@
See the included gpl-2.0.txt or gpl-3.0.txt depending on your
preferences.

@ -0,0 +1,44 @@
ASN1C=../../../tmp/rrlp/asn1c/asn1c/asn1c
ASN1_INCLUDE=/home/tnt/tmp/rrlp/asn1c/skeletons
CC=gcc
CFLAGS=-I$(ASN1_INCLUDE) -Iasn1_gen -O3 -Wall
ASN1_FILES=$(wildcard asn1/*.asn)
all: rrlp-test
rrlp-test: libgsm-asn1.a gps.o ubx.o ubx-parse.o rrlp.o main.o
$(CC) -o $@ gps.o ubx.o ubx-parse.o rrlp.o main.o -L. -lgsm-asn1
#
# ASN1 file autogeneration (need recursive makefile call)
#
ASN1_SOURCES = $(wildcard asn1_gen/*.c)
ASN1_OBJECTS = $(ASN1_SOURCES:.c=.o)
libgsm-asn1.a: $(ASN1_FILES)
mkdir -p asn1_gen && \
cd asn1_gen && \
$(ASN1C) -fskeletons-copy -fnative-types -gen-PER $(addprefix ../,$^)
@rm asn1_gen/converter-sample.c asn1_gen/Makefile.am.sample
@$(MAKE) libgsm-asn1.a.submake
libgsm-asn1.a.submake: $(ASN1_OBJECTS)
$(AR) rcs libgsm-asn1.a $^
.PHONY: libgsm-asn1.a.submake
#
# Clean
#
clean:
rm -Rf asn1_gen
rm -f libgsm-asn1.a *.o rrlp-test

@ -0,0 +1,131 @@
-- $Id: MAP-BS-Code.asn 28149 2009-04-25 17:45:34Z etxrab $
-- 3GPP TS 29.002 V8.9.0 (2009-04)
-- 17.7.10 Bearer Service Codes
MAP-BS-Code {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-BS-Code (20) version11 (11)}
DEFINITIONS
::=
BEGIN
BearerServiceCode ::= OCTET STRING (SIZE (1))
-- This type is used to represent the code identifying a single
-- bearer service, a group of bearer services, or all bearer
-- services. The services are defined in TS 3GPP TS 22.002 [3].
-- The internal structure is defined as follows:
--
-- plmn-specific bearer services:
-- bits 87654321: defined by the HPLMN operator
-- rest of bearer services:
-- bit 8: 0 (unused)
-- bits 7654321: group (bits 7654), and rate, if applicable
-- (bits 321)
Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))
-- This type is used to represent the code identifying a single
-- bearer service, a group of bearer services, or all bearer
-- services. The services are defined in TS 3GPP TS 22.002 [3].
-- The internal structure is defined as follows:
--
-- OCTET 1:
-- plmn-specific bearer services:
-- bits 87654321: defined by the HPLMN operator
--
-- rest of bearer services:
-- bit 8: 0 (unused)
-- bits 7654321: group (bits 7654), and rate, if applicable
-- (bits 321)
-- OCTETS 2-5: reserved for future use. If received the
-- Ext-TeleserviceCode shall be
-- treated according to the exception handling defined for the
-- operation that uses this type.
-- Ext-BearerServiceCode includes all values defined for BearerServiceCode.
allBearerServices BearerServiceCode ::= '00000000'B
allDataCDA-Services BearerServiceCode ::= '00010000'B
dataCDA-300bps BearerServiceCode ::= '00010001'B
dataCDA-1200bps BearerServiceCode ::= '00010010'B
dataCDA-1200-75bps BearerServiceCode ::= '00010011'B
dataCDA-2400bps BearerServiceCode ::= '00010100'B
dataCDA-4800bps BearerServiceCode ::= '00010101'B
dataCDA-9600bps BearerServiceCode ::= '00010110'B
general-dataCDA BearerServiceCode ::= '00010111'B
allDataCDS-Services BearerServiceCode ::= '00011000'B
dataCDS-1200bps BearerServiceCode ::= '00011010'B
dataCDS-2400bps BearerServiceCode ::= '00011100'B
dataCDS-4800bps BearerServiceCode ::= '00011101'B
dataCDS-9600bps BearerServiceCode ::= '00011110'B
general-dataCDS BearerServiceCode ::= '00011111'B
allPadAccessCA-Services BearerServiceCode ::= '00100000'B
padAccessCA-300bps BearerServiceCode ::= '00100001'B
padAccessCA-1200bps BearerServiceCode ::= '00100010'B
padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B
padAccessCA-2400bps BearerServiceCode ::= '00100100'B
padAccessCA-4800bps BearerServiceCode ::= '00100101'B
padAccessCA-9600bps BearerServiceCode ::= '00100110'B
general-padAccessCA BearerServiceCode ::= '00100111'B
allDataPDS-Services BearerServiceCode ::= '00101000'B
dataPDS-2400bps BearerServiceCode ::= '00101100'B
dataPDS-4800bps BearerServiceCode ::= '00101101'B
dataPDS-9600bps BearerServiceCode ::= '00101110'B
general-dataPDS BearerServiceCode ::= '00101111'B
allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B
allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B
allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B
allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B
-- The following non-hierarchical Compound Bearer Service
-- Groups are defined in TS 3GPP TS 22.030:
allDataCircuitAsynchronous BearerServiceCode ::= '01010000'B
-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and
-- "allSpeechFollowedByDataCDA"
allAsynchronousServices BearerServiceCode ::= '01100000'B
-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",
-- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"
allDataCircuitSynchronous BearerServiceCode ::= '01011000'B
-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and
-- "allSpeechFollowedByDataCDS"
allSynchronousServices BearerServiceCode ::= '01101000'B
-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",
-- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"
--
-- Compound Bearer Service Group Codes are only used in call
-- independent supplementary service operations, i.e. they
-- are not used in InsertSubscriberData or in
-- DeleteSubscriberData messages.
allPLMN-specificBS BearerServiceCode ::= '11010000'B
plmn-specificBS-1 BearerServiceCode ::= '11010001'B
plmn-specificBS-2 BearerServiceCode ::= '11010010'B
plmn-specificBS-3 BearerServiceCode ::= '11010011'B
plmn-specificBS-4 BearerServiceCode ::= '11010100'B
plmn-specificBS-5 BearerServiceCode ::= '11010101'B
plmn-specificBS-6 BearerServiceCode ::= '11010110'B
plmn-specificBS-7 BearerServiceCode ::= '11010111'B
plmn-specificBS-8 BearerServiceCode ::= '11011000'B
plmn-specificBS-9 BearerServiceCode ::= '11011001'B
plmn-specificBS-A BearerServiceCode ::= '11011010'B
plmn-specificBS-B BearerServiceCode ::= '11011011'B
plmn-specificBS-C BearerServiceCode ::= '11011100'B
plmn-specificBS-D BearerServiceCode ::= '11011101'B
plmn-specificBS-E BearerServiceCode ::= '11011110'B
plmn-specificBS-F BearerServiceCode ::= '11011111'B
END

@ -0,0 +1,633 @@
-- $Id: MAP-CommonDataTypes.asn 30470 2009-10-10 12:37:56Z krj $
-- 3GPP TS 29.002 V8.9.0 (2009-04)
-- 17.7.8 Common data types
MAP-CommonDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
DEFINITIONS
IMPLICIT TAGS
::=
BEGIN
EXPORTS
-- general data types and values
AddressString,
ISDN-AddressString,
maxISDN-AddressLength,
FTN-AddressString,
ISDN-SubaddressString,
ExternalSignalInfo,
Ext-ExternalSignalInfo,
AccessNetworkSignalInfo,
SignalInfo,
maxSignalInfoLength,
AlertingPattern,
TBCD-STRING,
-- data types for numbering and identification
IMSI,
TMSI,
Identity,
SubscriberId,
IMEI,
HLR-List,
LMSI,
GlobalCellId,
NetworkResource,
AdditionalNetworkResource,
NAEA-PreferredCI,
NAEA-CIC,
ASCI-CallReference,
SubscriberIdentity,
PLMN-Id,
-- data types for CAMEL
CellGlobalIdOrServiceAreaIdOrLAI,
CellGlobalIdOrServiceAreaIdFixedLength,
LAIFixedLength,
-- data types for subscriber management
BasicServiceCode,
Ext-BasicServiceCode,
EMLPP-Info,
EMLPP-Priority,
MC-SS-Info,
MaxMC-Bearers,
MC-Bearers,
Ext-SS-Status,
-- data types for geographic location
AgeOfLocationInformation,
LCSClientExternalID,
LCSClientInternalID,
LCSServiceTypeID,
--- WS added exports needed by gsm_map.asn (extra asn1 file to handle older prot. ver.)
ProtocolId,
LCSServiceTypeID
;
IMPORTS
TeleserviceCode,
Ext-TeleserviceCode
FROM MAP-TS-Code {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-TS-Code (19) version11 (11)}
BearerServiceCode,
Ext-BearerServiceCode
FROM MAP-BS-Code {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-BS-Code (20) version11 (11)}
SS-Code
FROM MAP-SS-Code {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-SS-Code (15) version11 (11)}
ExtensionContainer
FROM MAP-ExtensionDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
;
-- general data types
TBCD-STRING ::= OCTET STRING
-- This type (Telephony Binary Coded Decimal String) is used to
-- represent several digits from 0 through 9, *, #, a, b, c, two
-- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
-- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
-- as filler when there is an odd number of digits.
-- bits 8765 of octet n encoding digit 2n
-- bits 4321 of octet n encoding digit 2(n-1) +1
AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
-- This type is used to represent a number for addressing
-- purposes. It is composed of
-- a) one octet for nature of address, and numbering plan
-- indicator.
-- b) digits of an address encoded as TBCD-String.
-- a) The first octet includes a one bit extension indicator, a
-- 3 bits nature of address indicator and a 4 bits numbering
-- plan indicator, encoded as follows:
-- bit 8: 1 (no extension)
-- bits 765: nature of address indicator
-- 000 unknown
-- 001 international number
-- 010 national significant number
-- 011 network specific number
-- 100 subscriber number
-- 101 reserved
-- 110 abbreviated number
-- 111 reserved for extension
-- bits 4321: numbering plan indicator
-- 0000 unknown
-- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164)
-- 0010 spare
-- 0011 data numbering plan (ITU-T Rec X.121)
-- 0100 telex numbering plan (ITU-T Rec F.69)
-- 0101 spare
-- 0110 land mobile numbering plan (ITU-T Rec E.212)
-- 0111 spare
-- 1000 national numbering plan
-- 1001 private numbering plan
-- 1111 reserved for extension
-- all other values are reserved.
-- b) The following octets representing digits of an address
-- encoded as a TBCD-STRING.
maxAddressLength INTEGER ::= 20
ISDN-AddressString ::=
AddressString (SIZE (1..maxISDN-AddressLength))
-- This type is used to represent ISDN numbers.
maxISDN-AddressLength INTEGER ::= 9
FTN-AddressString ::=
AddressString (SIZE (1..maxFTN-AddressLength))
-- This type is used to represent forwarded-to numbers.
-- If NAI = international the first digits represent the country code (CC)
-- and the network destination code (NDC) as for E.164.
maxFTN-AddressLength INTEGER ::= 15
ISDN-SubaddressString ::=
OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
-- This type is used to represent ISDN subaddresses.
-- It is composed of
-- a) one octet for type of subaddress and odd/even indicator.
-- b) 20 octets for subaddress information.
-- a) The first octet includes a one bit extension indicator, a
-- 3 bits type of subaddress and a one bit odd/even indicator,
-- encoded as follows:
-- bit 8: 1 (no extension)
-- bits 765: type of subaddress
-- 000 NSAP (X.213/ISO 8348 AD2)
-- 010 User Specified
-- All other values are reserved
-- bit 4: odd/even indicator
-- 0 even number of address signals
-- 1 odd number of address signals
-- The odd/even indicator is used when the type of subaddress
-- is "user specified" and the coding is BCD.
-- bits 321: 000 (unused)
-- b) Subaddress information.
-- The NSAP X.213/ISO8348AD2 address shall be formatted as specified
-- by octet 4 which contains the Authority and Format Identifier
-- (AFI). The encoding is made according to the "preferred binary
-- encoding" as defined in X.213/ISO834AD2. For the definition
-- of this type of subaddress, see ITU-T Rec I.334.
-- For User-specific subaddress, this field is encoded according
-- to the user specification, subject to a maximum length of 20
-- octets. When interworking with X.25 networks BCD coding should
-- be applied.
maxISDN-SubaddressLength INTEGER ::= 21
ExternalSignalInfo ::= SEQUENCE {
protocolId ProtocolId,
signalInfo SignalInfo,
-- Information about the internal structure is given in
-- clause 7.6.9.
extensionContainer ExtensionContainer OPTIONAL,
-- extensionContainer must not be used in version 2
...}
SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))
maxSignalInfoLength INTEGER ::= 200
-- This NamedValue represents the theoretical maximum number of octets which is
-- available to carry a single instance of the SignalInfo data type,
-- without requiring segmentation to cope with the network layer service.
-- However, the actual maximum size available for an instance of the data
-- type may be lower, especially when other information elements
-- have to be included in the same component.
ProtocolId ::= ENUMERATED {
gsm-0408 (1),
gsm-0806 (2),
gsm-BSSMAP (3),
-- Value 3 is reserved and must not be used
ets-300102-1 (4)}
Ext-ExternalSignalInfo ::= SEQUENCE {
ext-ProtocolId Ext-ProtocolId,
signalInfo SignalInfo,
-- Information about the internal structure is given in
-- clause 7.6.9.10
extensionContainer ExtensionContainer OPTIONAL,
...}
Ext-ProtocolId ::= ENUMERATED {
ets-300356 (1),
...
}
-- exception handling:
-- For Ext-ExternalSignalInfo sequences containing this parameter with any
-- other value than the ones listed the receiver shall ignore the whole
-- Ext-ExternalSignalInfo sequence.
AccessNetworkSignalInfo ::= SEQUENCE {
accessNetworkProtocolId AccessNetworkProtocolId,
signalInfo LongSignalInfo,
-- Information about the internal structure is given in clause 7.6.9.1
extensionContainer ExtensionContainer OPTIONAL,
...}
LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))
maxLongSignalInfoLength INTEGER ::= 2560
-- This Named Value represents the maximum number of octets which is available
-- to carry a single instance of the LongSignalInfo data type using
-- White Book SCCP with the maximum number of segments.
-- It takes account of the octets used by the lower layers of the protocol, and
-- other information elements which may be included in the same component.
AccessNetworkProtocolId ::= ENUMERATED {
ts3G-48006 (1),
ts3G-25413 (2),
...}
-- exception handling:
-- For AccessNetworkSignalInfo sequences containing this parameter with any
-- other value than the ones listed the receiver shall ignore the whole
-- AccessNetworkSignalInfo sequence.
AlertingPattern ::= OCTET STRING (SIZE (1) )
-- This type is used to represent Alerting Pattern
-- bits 8765 : 0000 (unused)
-- bits 43 : type of Pattern
-- 00 level
-- 01 category
-- 10 category
-- all other values are reserved.
-- bits 21 : type of alerting
alertingLevel-0 AlertingPattern ::= '00000000'B
alertingLevel-1 AlertingPattern ::= '00000001'B
alertingLevel-2 AlertingPattern ::= '00000010'B
-- all other values of Alerting level are reserved
-- Alerting Levels are defined in GSM 02.07
alertingCategory-1 AlertingPattern ::= '00000100'B
alertingCategory-2 AlertingPattern ::= '00000101'B
alertingCategory-3 AlertingPattern ::= '00000110'B
alertingCategory-4 AlertingPattern ::= '00000111'B
alertingCategory-5 AlertingPattern ::= '00001000'B
-- all other values of Alerting Category are reserved
-- Alerting categories are defined in GSM 02.07
-- data types for numbering and identification
IMSI ::= TBCD-STRING (SIZE (3..8))
-- digits of MCC, MNC, MSIN are concatenated in this order.
Identity ::= CHOICE {
imsi IMSI,
imsi-WithLMSI IMSI-WithLMSI}
IMSI-WithLMSI ::= SEQUENCE {
imsi IMSI,
lmsi LMSI,
-- a special value 00000000 indicates that the LMSI is not in use
...}
ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))
-- digits of VGCS/VBS-area,Group-ID are concatenated in this order if there is a
-- VGCS/VBS-area.
TMSI ::= OCTET STRING (SIZE (1..4))
SubscriberId ::= CHOICE {
imsi [0] IMSI,
tmsi [1] TMSI}
IMEI ::= TBCD-STRING (SIZE (8))
-- Refers to International Mobile Station Equipment Identity
-- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].
-- If the SVN is not present the last octet shall contain the
-- digit 0 and a filler.
-- If present the SVN shall be included in the last octet.
HLR-Id ::= IMSI
-- leading digits of IMSI, i.e. (MCC, MNC, leading digits of
-- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].
HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF
HLR-Id
maxNumOfHLR-Id INTEGER ::= 50
LMSI ::= OCTET STRING (SIZE (4))
GlobalCellId ::= OCTET STRING (SIZE (5..7))
-- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].
-- The internal structure is defined as follows:
-- octet 1 bits 4321 Mobile Country Code 1st digit
-- bits 8765 Mobile Country Code 2nd digit
-- octet 2 bits 4321 Mobile Country Code 3rd digit
-- bits 8765 Mobile Network Code 3rd digit
-- or filler (1111) for 2 digit MNCs
-- octet 3 bits 4321 Mobile Network Code 1st digit
-- bits 8765 Mobile Network Code 2nd digit
-- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35]
-- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35]
NetworkResource ::= ENUMERATED {
plmn (0),
hlr (1),
vlr (2),
pvlr (3),
controllingMSC (4),
vmsc (5),
eir (6),
rss (7)}
AdditionalNetworkResource ::= ENUMERATED {
sgsn (0),
ggsn (1),
gmlc (2),
gsmSCF (3),
nplr (4),
auc (5),
... ,
ue (6),
mme (7)}
-- if unknown value is received in AdditionalNetworkResource
-- it shall be ignored.
NAEA-PreferredCI ::= SEQUENCE {
naea-PreferredCIC [0] NAEA-CIC,
extensionContainer [1] ExtensionContainer OPTIONAL,
...}
NAEA-CIC ::= OCTET STRING (SIZE (3))
-- The internal structure is defined by the Carrier Identification
-- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
-- be encoded as 3 digits using "000" to "999" or as 4 digits using
-- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
-- using 4 digits.
SubscriberIdentity ::= CHOICE {
imsi [0] IMSI,
msisdn [1] ISDN-AddressString
}
LCSClientExternalID ::= SEQUENCE {
externalAddress [0] ISDN-AddressString OPTIONAL,
extensionContainer [1] ExtensionContainer OPTIONAL,
... }
LCSClientInternalID ::= ENUMERATED {
broadcastService (0),
o-andM-HPLMN (1),
o-andM-VPLMN (2),
anonymousLocation (3),
targetMSsubscribedService (4),
... }
-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used
LCSServiceTypeID ::= INTEGER (0..127)
-- the integer values 0-63 are reserved for Standard LCS service types
-- the integer values 64-127 are reserved for Non Standard LCS service types
-- Standard LCS Service Types
emergencyServices LCSServiceTypeID ::= 0
emergencyAlertServices LCSServiceTypeID ::= 1
personTracking LCSServiceTypeID ::= 2
fleetManagement LCSServiceTypeID ::= 3
assetManagement LCSServiceTypeID ::= 4
trafficCongestionReporting LCSServiceTypeID ::= 5
roadsideAssistance LCSServiceTypeID ::= 6
routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7
navigation LCSServiceTypeID ::= 8
--this service type is reserved for use in previous releases
citySightseeing LCSServiceTypeID ::= 9
localizedAdvertising LCSServiceTypeID ::= 10
mobileYellowPages LCSServiceTypeID ::= 11
trafficAndPublicTransportationInfo LCSServiceTypeID ::= 12
weather LCSServiceTypeID ::= 13
assetAndServiceFinding LCSServiceTypeID ::= 14
gaming LCSServiceTypeID ::= 15
findYourFriend LCSServiceTypeID ::= 16
dating LCSServiceTypeID ::= 17
chatting LCSServiceTypeID ::= 18
routeFinding LCSServiceTypeID ::= 19
whereAmI LCSServiceTypeID ::= 20
-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.
-- Non Standard LCS Service Types
serv64 LCSServiceTypeID ::= 64
serv65 LCSServiceTypeID ::= 65
serv66 LCSServiceTypeID ::= 66
serv67 LCSServiceTypeID ::= 67
serv68 LCSServiceTypeID ::= 68
serv69 LCSServiceTypeID ::= 69
serv70 LCSServiceTypeID ::= 70
serv71 LCSServiceTypeID ::= 71
serv72 LCSServiceTypeID ::= 72
serv73 LCSServiceTypeID ::= 73
serv74 LCSServiceTypeID ::= 74
serv75 LCSServiceTypeID ::= 75
serv76 LCSServiceTypeID ::= 76
serv77 LCSServiceTypeID ::= 77
serv78 LCSServiceTypeID ::= 78
serv79 LCSServiceTypeID ::= 79
serv80 LCSServiceTypeID ::= 80
serv81 LCSServiceTypeID ::= 81
serv82 LCSServiceTypeID ::= 82
serv83 LCSServiceTypeID ::= 83
serv84 LCSServiceTypeID ::= 84
serv85 LCSServiceTypeID ::= 85
serv86 LCSServiceTypeID ::= 86
serv87 LCSServiceTypeID ::= 87
serv88 LCSServiceTypeID ::= 88
serv89 LCSServiceTypeID ::= 89
serv90 LCSServiceTypeID ::= 90
serv91 LCSServiceTypeID ::= 91
serv92 LCSServiceTypeID ::= 92
serv93 LCSServiceTypeID ::= 93
serv94 LCSServiceTypeID ::= 94
serv95 LCSServiceTypeID ::= 95
serv96 LCSServiceTypeID ::= 96
serv97 LCSServiceTypeID ::= 97
serv98 LCSServiceTypeID ::= 98
serv99 LCSServiceTypeID ::= 99
serv100 LCSServiceTypeID ::= 100
serv101 LCSServiceTypeID ::= 101
serv102 LCSServiceTypeID ::= 102
serv103 LCSServiceTypeID ::= 103
serv104 LCSServiceTypeID ::= 104
serv105 LCSServiceTypeID ::= 105
serv106 LCSServiceTypeID ::= 106
serv107 LCSServiceTypeID ::= 107
serv108 LCSServiceTypeID ::= 108
serv109 LCSServiceTypeID ::= 109
serv110 LCSServiceTypeID ::= 110
serv111 LCSServiceTypeID ::= 111
serv112 LCSServiceTypeID ::= 112
serv113 LCSServiceTypeID ::= 113
serv114 LCSServiceTypeID ::= 114
serv115 LCSServiceTypeID ::= 115
serv116 LCSServiceTypeID ::= 116
serv117 LCSServiceTypeID ::= 117
serv118 LCSServiceTypeID ::= 118
serv119 LCSServiceTypeID ::= 119
serv120 LCSServiceTypeID ::= 120
serv121 LCSServiceTypeID ::= 121
serv122 LCSServiceTypeID ::= 122
serv123 LCSServiceTypeID ::= 123
serv124 LCSServiceTypeID ::= 124
serv125 LCSServiceTypeID ::= 125
serv126 LCSServiceTypeID ::= 126
serv127 LCSServiceTypeID ::= 127
PLMN-Id ::= OCTET STRING (SIZE (3))
-- The internal structure is defined as follows:
-- octet 1 bits 4321 Mobile Country Code 1st digit
-- bits 8765 Mobile Country Code 2nd digit
-- octet 2 bits 4321 Mobile Country Code 3rd digit
-- bits 8765 Mobile Network Code 3rd digit
-- or filler (1111) for 2 digit MNCs
-- octet 3 bits 4321 Mobile Network Code 1st digit
-- bits 8765 Mobile Network Code 2nd digit
-- data types for CAMEL
CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {
cellGlobalIdOrServiceAreaIdFixedLength [0] CellGlobalIdOrServiceAreaIdFixedLength,
laiFixedLength [1] LAIFixedLength}
CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))
-- Refers to Cell Global Identification or Service Are Identification
-- defined in 3GPP TS 23.003.
-- The internal structure is defined as follows:
-- octet 1 bits 4321 Mobile Country Code 1st digit
-- bits 8765 Mobile Country Code 2nd digit
-- octet 2 bits 4321 Mobile Country Code 3rd digit
-- bits 8765 Mobile Network Code 3rd digit
-- or filler (1111) for 2 digit MNCs
-- octet 3 bits 4321 Mobile Network Code 1st digit
-- bits 8765 Mobile Network Code 2nd digit
-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008
-- octets 6 and 7 Cell Identity (CI) value or
-- Service Area Code (SAC) value
-- according to 3GPP TS 23.003
LAIFixedLength ::= OCTET STRING (SIZE (5))
-- Refers to Location Area Identification defined in 3GPP TS 23.003 [17].
-- The internal structure is defined as follows:
-- octet 1 bits 4321 Mobile Country Code 1st digit
-- bits 8765 Mobile Country Code 2nd digit
-- octet 2 bits 4321 Mobile Country Code 3rd digit
-- bits 8765 Mobile Network Code 3rd digit
-- or filler (1111) for 2 digit MNCs
-- octet 3 bits 4321 Mobile Network Code 1st digit
-- bits 8765 Mobile Network Code 2nd digit
-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008 [35]
-- data types for subscriber management
BasicServiceCode ::= CHOICE {
bearerService [2] BearerServiceCode,
teleservice [3] TeleserviceCode}
Ext-BasicServiceCode ::= CHOICE {
ext-BearerService [2] Ext-BearerServiceCode,
ext-Teleservice [3] Ext-TeleserviceCode}
EMLPP-Info ::= SEQUENCE {
maximumentitledPriority EMLPP-Priority,
defaultPriority EMLPP-Priority,
extensionContainer ExtensionContainer OPTIONAL,
...}
EMLPP-Priority ::= INTEGER (0..15)
-- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
-- specified as follows where A is the highest and 4 is the lowest
-- priority level
-- the integer values 7-15 are spare and shall be mapped to value 4
priorityLevelA EMLPP-Priority ::= 6
priorityLevelB EMLPP-Priority ::= 5
priorityLevel0 EMLPP-Priority ::= 0
priorityLevel1 EMLPP-Priority ::= 1
priorityLevel2 EMLPP-Priority ::= 2
priorityLevel3 EMLPP-Priority ::= 3
priorityLevel4 EMLPP-Priority ::= 4
MC-SS-Info ::= SEQUENCE {
ss-Code [0] SS-Code,
ss-Status [1] Ext-SS-Status,
nbrSB [2] MaxMC-Bearers,
nbrUser [3] MC-Bearers,
extensionContainer [4] ExtensionContainer OPTIONAL,
...}
MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)
MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)
maxNumOfMC-Bearers INTEGER ::= 7
Ext-SS-Status ::= OCTET STRING (SIZE (1..5))
-- OCTET 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"
-- OCTETS 2-5: reserved for future use. They shall be discarded if
-- received and not understood.
-- data types for geographic location
AgeOfLocationInformation ::= INTEGER (0..32767)
-- the value represents the elapsed time in minutes since the last
-- network contact of the mobile station (i.e. the actuality of the
-- location information).
-- value "0" indicates that the MS is currently in contact with the
-- network
-- value "32767" indicates that the location information is at least
-- 32767 minutes old
END

@ -0,0 +1,415 @@
-- $Id: MAP-ER-DataTypes.asn 28149 2009-04-25 17:45:34Z etxrab $
-- 3GPP TS 29.002 V8.9.0 (2009-04)
-- 17.7.7 Error data types
MAP-ER-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ER-DataTypes (17) version11 (11)}
DEFINITIONS
IMPLICIT TAGS
::=
BEGIN
EXPORTS
RoamingNotAllowedParam,
CallBarredParam,
CUG-RejectParam,
SS-IncompatibilityCause,
PW-RegistrationFailureCause,
SM-DeliveryFailureCause,
SystemFailureParam,
DataMissingParam,
UnexpectedDataParam,
FacilityNotSupParam,
OR-NotAllowedParam,
UnknownSubscriberParam,
NumberChangedParam,
UnidentifiedSubParam,
IllegalSubscriberParam,
IllegalEquipmentParam,
BearerServNotProvParam,
TeleservNotProvParam,
TracingBufferFullParam,
NoRoamingNbParam,
AbsentSubscriberParam,
BusySubscriberParam,
NoSubscriberReplyParam,
ForwardingViolationParam,
ForwardingFailedParam,
ATI-NotAllowedParam,
SubBusyForMT-SMS-Param,
MessageWaitListFullParam,
AbsentSubscriberSM-Param,
AbsentSubscriberDiagnosticSM,
ResourceLimitationParam,
NoGroupCallNbParam,
IncompatibleTerminalParam,
ShortTermDenialParam,
LongTermDenialParam,
UnauthorizedRequestingNetwork-Param,
UnauthorizedLCSClient-Param,
PositionMethodFailure-Param,
UnknownOrUnreachableLCSClient-Param,
MM-EventNotSupported-Param,
ATSI-NotAllowedParam,
ATM-NotAllowedParam,
IllegalSS-OperationParam,
SS-NotAvailableParam,
SS-SubscriptionViolationParam,
InformationNotAvailableParam,
TargetCellOutsideGCA-Param,
OngoingGroupCallParam
;
IMPORTS
SS-Status
FROM MAP-SS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-SS-DataTypes (14) version11 (11)}
SignalInfo,
BasicServiceCode,
NetworkResource,
AdditionalNetworkResource
FROM MAP-CommonDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
SS-Code
FROM MAP-SS-Code {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-SS-Code (15) version11 (11)}
ExtensionContainer
FROM MAP-ExtensionDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
;
RoamingNotAllowedParam ::= SEQUENCE {
roamingNotAllowedCause RoamingNotAllowedCause,
extensionContainer ExtensionContainer OPTIONAL,
...,
additionalRoamingNotAllowedCause [0] AdditionalRoamingNotAllowedCause OPTIONAL }
-- if the additionalRoamingNotallowedCause is received by the MSC/VLR or SGSN then the
-- roamingNotAllowedCause shall be discarded.
AdditionalRoamingNotAllowedCause ::= ENUMERATED {
supportedRAT-TypesNotAllowed (0),
...}
RoamingNotAllowedCause ::= ENUMERATED {
plmnRoamingNotAllowed (0),
operatorDeterminedBarring (3)}
CallBarredParam ::= CHOICE {
callBarringCause CallBarringCause,
-- call BarringCause must not be used in version 3 and higher
extensibleCallBarredParam ExtensibleCallBarredParam
-- extensibleCallBarredParam must not be used in version <3
}
CallBarringCause ::= ENUMERATED {
barringServiceActive (0),
operatorBarring (1)}
ExtensibleCallBarredParam ::= SEQUENCE {
callBarringCause CallBarringCause OPTIONAL,
extensionContainer ExtensionContainer OPTIONAL,
... ,
unauthorisedMessageOriginator [1] NULL OPTIONAL }
CUG-RejectParam ::= SEQUENCE {
cug-RejectCause CUG-RejectCause OPTIONAL,
extensionContainer ExtensionContainer OPTIONAL,
...}
CUG-RejectCause ::= ENUMERATED {
incomingCallsBarredWithinCUG (0),
subscriberNotMemberOfCUG (1),
requestedBasicServiceViolatesCUG-Constraints (5),
calledPartySS-InteractionViolation (7)}
SS-IncompatibilityCause ::= SEQUENCE {
ss-Code [1] SS-Code OPTIONAL,
basicService BasicServiceCode OPTIONAL,
ss-Status [4] SS-Status OPTIONAL,
...}
PW-RegistrationFailureCause ::= ENUMERATED {
undetermined (0),
invalidFormat (1),
newPasswordsMismatch (2)}
SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {
memoryCapacityExceeded (0),
equipmentProtocolError (1),
equipmentNotSM-Equipped (2),
unknownServiceCentre (3),
sc-Congestion (4),
invalidSME-Address (5),
subscriberNotSC-Subscriber (6)}
SM-DeliveryFailureCause ::= SEQUENCE {
sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause,
diagnosticInfo SignalInfo OPTIONAL,
extensionContainer ExtensionContainer OPTIONAL,
...}
AbsentSubscriberSM-Param ::= SEQUENCE {
absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL,
-- AbsentSubscriberDiagnosticSM can be either for non-GPRS
-- or for GPRS
extensionContainer ExtensionContainer OPTIONAL,
...,
additionalAbsentSubscriberDiagnosticSM [0] AbsentSubscriberDiagnosticSM OPTIONAL }
-- if received, additionalAbsentSubscriberDiagnosticSM
-- is for GPRS and absentSubscriberDiagnosticSM is
-- for non-GPRS
AbsentSubscriberDiagnosticSM ::= INTEGER (0..255)
-- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040
SystemFailureParam ::= CHOICE {
networkResource NetworkResource,
-- networkResource must not be used in version 3
extensibleSystemFailureParam ExtensibleSystemFailureParam
-- extensibleSystemFailureParam must not be used in version <3
}
ExtensibleSystemFailureParam ::= SEQUENCE {
networkResource NetworkResource OPTIONAL,
extensionContainer ExtensionContainer OPTIONAL,
...,
additionalNetworkResource [0] AdditionalNetworkResource OPTIONAL,
failureCauseParam [1] FailureCauseParam OPTIONAL }
FailureCauseParam ::= ENUMERATED {
limitReachedOnNumberOfConcurrentLocationRequests (0),
... }
-- if unknown value is received in FailureCauseParam it shall be ignored
DataMissingParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
UnexpectedDataParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
FacilityNotSupParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...,
shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL,
neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL }
OR-NotAllowedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
UnknownSubscriberParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...,
unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL}
UnknownSubscriberDiagnostic ::= ENUMERATED {
imsiUnknown (0),
gprs-eps-SubscriptionUnknown (1),
...,
npdbMismatch (2)}
-- if unknown values are received in
-- UnknownSubscriberDiagnostic they shall be discarded
NumberChangedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
UnidentifiedSubParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
IllegalSubscriberParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
IllegalEquipmentParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
BearerServNotProvParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
TeleservNotProvParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
TracingBufferFullParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
NoRoamingNbParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
AbsentSubscriberParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...,
absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL}
AbsentSubscriberReason ::= ENUMERATED {
imsiDetach (0),
restrictedArea (1),
noPageResponse (2),
... ,
purgedMS (3)}
-- exception handling: at reception of other values than the ones listed the
-- AbsentSubscriberReason shall be ignored.
-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature
-- (see TS 23.116). If this value is received in a Provide Roaming Number response
-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing
-- Information response
BusySubscriberParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...,
ccbs-Possible [0] NULL OPTIONAL,
ccbs-Busy [1] NULL OPTIONAL}
NoSubscriberReplyParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ForwardingViolationParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ForwardingFailedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ATI-NotAllowedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ATSI-NotAllowedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ATM-NotAllowedParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
IllegalSS-OperationParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
SS-NotAvailableParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
SS-SubscriptionViolationParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
InformationNotAvailableParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
SubBusyForMT-SMS-Param ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
... ,
gprsConnectionSuspended NULL OPTIONAL }
-- If GprsConnectionSuspended is not understood it shall
-- be discarded
MessageWaitListFullParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ResourceLimitationParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
NoGroupCallNbParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
IncompatibleTerminalParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
ShortTermDenialParam ::= SEQUENCE {
...}
LongTermDenialParam ::= SEQUENCE {
...}
UnauthorizedRequestingNetwork-Param ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
UnauthorizedLCSClient-Param ::= SEQUENCE {
unauthorizedLCSClient-Diagnostic [0] UnauthorizedLCSClient-Diagnostic OPTIONAL,
extensionContainer [1] ExtensionContainer OPTIONAL,
... }
UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {
noAdditionalInformation (0),
clientNotInMSPrivacyExceptionList (1),
callToClientNotSetup (2),
privacyOverrideNotApplicable (3),
disallowedByLocalRegulatoryRequirements (4),
...,
unauthorizedPrivacyClass (5),
unauthorizedCallSessionUnrelatedExternalClient (6),
unauthorizedCallSessionRelatedExternalClient (7) }
-- exception handling:
-- any unrecognized value shall be ignored
PositionMethodFailure-Param ::= SEQUENCE {
positionMethodFailure-Diagnostic [0] PositionMethodFailure-Diagnostic OPTIONAL,
extensionContainer [1] ExtensionContainer OPTIONAL,
... }
PositionMethodFailure-Diagnostic ::= ENUMERATED {
congestion (0),
insufficientResources (1),
insufficientMeasurementData (2),
inconsistentMeasurementData (3),
locationProcedureNotCompleted (4),
locationProcedureNotSupportedByTargetMS (5),
qoSNotAttainable (6),
positionMethodNotAvailableInNetwork (7),
positionMethodNotAvailableInLocationArea (8),
... }
-- exception handling:
-- any unrecognized value shall be ignored
UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
MM-EventNotSupported-Param ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
TargetCellOutsideGCA-Param ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
OngoingGroupCallParam ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
END

@ -0,0 +1,74 @@
-- $Id: MAP-ExtensionDataTypes.asn 28149 2009-04-25 17:45:34Z etxrab $
-- MAP-ExtensionDataTypes.asn
--
-- Taken from 3GPP TS 29.002 V8.9.0 (2009-04)
--
-- 17.7.11 Extension data types
--
MAP-ExtensionDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
DEFINITIONS
IMPLICIT TAGS
::=
BEGIN
EXPORTS
PrivateExtension,
ExtensionContainer,
SLR-ArgExtensionContainer;
-- IOC for private MAP extensions
MAP-EXTENSION ::= CLASS {
&ExtensionType OPTIONAL,
&extensionId OBJECT IDENTIFIER }
-- The length of the Object Identifier shall not exceed 16 octets and the
-- number of components of the Object Identifier shall not exceed 16
-- data types
ExtensionContainer ::= SEQUENCE {
privateExtensionList [0]PrivateExtensionList OPTIONAL,
pcs-Extensions [1]PCS-Extensions OPTIONAL,
...}
SLR-ArgExtensionContainer ::= SEQUENCE {
privateExtensionList [0]PrivateExtensionList OPTIONAL,
slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
...}
PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
PrivateExtension
PrivateExtension ::= SEQUENCE {
extId MAP-EXTENSION.&extensionId
({ExtensionSet}),
extType MAP-EXTENSION.&ExtensionType
({ExtensionSet}{@extId}) OPTIONAL}
maxNumOfPrivateExtensions INTEGER ::= 10
ExtensionSet MAP-EXTENSION ::=
{...
-- ExtensionSet is the set of all defined private extensions
}
-- Unsupported private extensions shall be discarded if received.
PCS-Extensions ::= SEQUENCE {
...}
SLR-Arg-PCS-Extensions ::= SEQUENCE {
...,
na-ESRK-Request [0] NULL OPTIONAL }
END

@ -0,0 +1,657 @@
-- $Id: MAP-LCS-DataTypes.asn 28149 2009-04-25 17:45:34Z etxrab $
-- MAP-LCS-DataTypes.asn
--
-- Taken from 3GPP TS 29.002 V8.9.0 (2009-04)
--
-- 17.7.13 Location service data types
--
MAP-LCS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-LCS-DataTypes (25) version11 (11)}
DEFINITIONS
IMPLICIT TAGS
::=
BEGIN
EXPORTS
RoutingInfoForLCS-Arg,
RoutingInfoForLCS-Res,
ProvideSubscriberLocation-Arg,
ProvideSubscriberLocation-Res,
SubscriberLocationReport-Arg,
SubscriberLocationReport-Res,
LocationType,
DeferredLocationEventType,
LCSClientName,
LCS-QoS,
Horizontal-Accuracy,
ResponseTime,
Ext-GeographicalInformation,
VelocityEstimate,
SupportedGADShapes,
Add-GeographicalInformation,
LCSRequestorID,
LCS-ReferenceNumber,
LCSCodeword,
AreaEventInfo,
ReportingPLMNList,
PeriodicLDRInfo,
SequenceNumber
;
IMPORTS
AddressString,
ISDN-AddressString,
IMEI,
IMSI,
LMSI,
SubscriberIdentity,
AgeOfLocationInformation,
LCSClientExternalID,
LCSClientInternalID,
LCSServiceTypeID,
CellGlobalIdOrServiceAreaIdOrLAI,
PLMN-Id
FROM MAP-CommonDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
ExtensionContainer,
SLR-ArgExtensionContainer
FROM MAP-ExtensionDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
USSD-DataCodingScheme,
USSD-String
FROM MAP-SS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
map-SS-DataTypes (14) version11 (11)}
APN,
GSN-Address,
SupportedLCS-CapabilitySets
FROM MAP-MS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-MS-DataTypes (11) version11 (11)}
Additional-Number
FROM MAP-SM-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-SM-DataTypes (16) version11 (11)}
;
RoutingInfoForLCS-Arg ::= SEQUENCE {
mlcNumber [0] ISDN-AddressString,
targetMS [1] SubscriberIdentity,
extensionContainer [2] ExtensionContainer OPTIONAL,
...}
RoutingInfoForLCS-Res ::= SEQUENCE {
targetMS [0] SubscriberIdentity,
lcsLocationInfo [1] LCSLocationInfo,
extensionContainer [2] ExtensionContainer OPTIONAL,
...,
v-gmlc-Address [3] GSN-Address OPTIONAL,
h-gmlc-Address [4] GSN-Address OPTIONAL,
ppr-Address [5] GSN-Address OPTIONAL,
additional-v-gmlc-Address [6] GSN-Address OPTIONAL }
LCSLocationInfo ::= SEQUENCE {
networkNode-Number ISDN-AddressString,
-- NetworkNode-number can be either msc-number or sgsn-number
lmsi [0] LMSI OPTIONAL,
extensionContainer [1] ExtensionContainer OPTIONAL,
... ,
gprsNodeIndicator [2] NULL OPTIONAL,
-- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
additional-Number [3] Additional-Number OPTIONAL,
supportedLCS-CapabilitySets [4] SupportedLCS-CapabilitySets OPTIONAL,
additional-LCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL
}
ProvideSubscriberLocation-Arg ::= SEQUENCE {
locationType LocationType,
mlc-Number ISDN-AddressString,
lcs-ClientID [0] LCS-ClientID OPTIONAL,
privacyOverride [1] NULL OPTIONAL,
imsi [2] IMSI OPTIONAL,
msisdn [3] ISDN-AddressString OPTIONAL,
lmsi [4] LMSI OPTIONAL,
imei [5] IMEI OPTIONAL,
lcs-Priority [6] LCS-Priority OPTIONAL,
lcs-QoS [7] LCS-QoS OPTIONAL,
extensionContainer [8] ExtensionContainer OPTIONAL,
... ,
supportedGADShapes [9] SupportedGADShapes OPTIONAL,
lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
lcsCodeword [12] LCSCodeword OPTIONAL,
lcs-PrivacyCheck [13] LCS-PrivacyCheck OPTIONAL,
areaEventInfo [14] AreaEventInfo OPTIONAL,
h-gmlc-Address [15] GSN-Address OPTIONAL,
mo-lrShortCircuitIndicator [16] NULL OPTIONAL,
periodicLDRInfo [17] PeriodicLDRInfo OPTIONAL,
reportingPLMNList [18] ReportingPLMNList OPTIONAL }
-- one of imsi or msisdn is mandatory
-- If a location estimate type indicates activate deferred location or cancel deferred
-- location, a lcs-Reference number shall be included.
LocationType ::= SEQUENCE {
locationEstimateType [0] LocationEstimateType,
...,
deferredLocationEventType [1] DeferredLocationEventType OPTIONAL }
LocationEstimateType ::= ENUMERATED {
currentLocation (0),
currentOrLastKnownLocation (1),
initialLocation (2),
...,
activateDeferredLocation (3),
cancelDeferredLocation (4) ,
notificationVerificationOnly (5) }
-- exception handling:
-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
-- shall be rejected by the receiver with a return error cause of unexpected data value
DeferredLocationEventType ::= BIT STRING {
msAvailable (0) ,
enteringIntoArea (1),
leavingFromArea (2),
beingInsideArea (3) ,
periodicLDR (4) } (SIZE (1..16))
-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value
-- of occurrenceInfo inside areaEventInfo.
-- exception handling:
-- a ProvideSubscriberLocation-Arg containing other values than listed above in
-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
-- unexpected data value.
LCS-ClientID ::= SEQUENCE {
lcsClientType [0] LCSClientType,
lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
lcsClientDialedByMS [2] AddressString OPTIONAL,
lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
lcsClientName [4] LCSClientName OPTIONAL,
...,
lcsAPN [5] APN OPTIONAL,
lcsRequestorID [6] LCSRequestorID OPTIONAL }
LCSClientType ::= ENUMERATED {
emergencyServices (0),
valueAddedServices (1),
plmnOperatorServices (2),
lawfulInterceptServices (3),
... }
-- exception handling:
-- unrecognized values may be ignored if the LCS client uses the privacy override
-- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
-- a return error shall then be returned if received in a MAP invoke
LCSClientName ::= SEQUENCE {
dataCodingScheme [0] USSD-DataCodingScheme,
nameString [2] NameString,
...,
lcs-FormatIndicator [3] LCS-FormatIndicator OPTIONAL }
-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
-- following encoding
-- bit 7 6 5 4 3 2 1 0
-- 0 0 0 0 1 1 1 1
NameString ::= USSD-String (SIZE (1..maxNameStringLength))
maxNameStringLength INTEGER ::= 63
LCSRequestorID ::= SEQUENCE {
dataCodingScheme [0] USSD-DataCodingScheme,
requestorIDString [1] RequestorIDString,
...,
lcs-FormatIndicator [2] LCS-FormatIndicator OPTIONAL }
RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))
maxRequestorIDStringLength INTEGER ::= 63
LCS-FormatIndicator ::= ENUMERATED {
logicalName (0),
e-mailAddress (1),
msisdn (2),
url (3),
sipUrl (4),
... }
LCS-Priority ::= OCTET STRING (SIZE (1))
-- 0 = highest priority
-- 1 = normal priority
-- all other values treated as 1
LCS-QoS ::= SEQUENCE {
horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
verticalCoordinateRequest [1] NULL OPTIONAL,
vertical-accuracy [2] Vertical-Accuracy OPTIONAL, responseTime [3] ResponseTime OPTIONAL,
extensionContainer [4] ExtensionContainer OPTIONAL,
...,
velocityRequest [5] NULL OPTIONAL
}
Horizontal-Accuracy ::= OCTET STRING (SIZE (1))
-- bit 8 = 0
-- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
-- error should be less than the error indicated by the uncertainty code with 67%
-- confidence.
Vertical-Accuracy ::= OCTET STRING (SIZE (1))
-- bit 8 = 0
-- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
-- The vertical location error should be less than the error indicated
-- by the uncertainty code with 67% confidence.
ResponseTime ::= SEQUENCE {
responseTimeCategory ResponseTimeCategory,
...}
-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
ResponseTimeCategory ::= ENUMERATED {
lowdelay (0),
delaytolerant (1),
... }
-- exception handling:
-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
SupportedGADShapes ::= BIT STRING {
ellipsoidPoint (0),
ellipsoidPointWithUncertaintyCircle (1),
ellipsoidPointWithUncertaintyEllipse (2),
polygon (3),
ellipsoidPointWithAltitude (4),
ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),
ellipsoidArc (6) } (SIZE (7..16))
-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
-- exception handling: bits 7 to 15 shall be ignored if received.
LCS-ReferenceNumber::= OCTET STRING (SIZE(1))
LCSCodeword ::= SEQUENCE {
dataCodingScheme [0] USSD-DataCodingScheme,
lcsCodewordString [1] LCSCodewordString,
...}
LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))
maxLCSCodewordStringLength INTEGER ::= 20
LCS-PrivacyCheck ::= SEQUENCE {
callSessionUnrelated [0] PrivacyCheckRelatedAction,
callSessionRelated [1] PrivacyCheckRelatedAction OPTIONAL,
...}
PrivacyCheckRelatedAction ::= ENUMERATED {
allowedWithoutNotification (0),
allowedWithNotification (1),
allowedIfNoResponse (2),
restrictedIfNoResponse (3),
notAllowed (4),
...}
-- exception handling:
-- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction
-- shall be rejected by the receiver with a return error cause of unexpected data value
AreaEventInfo ::= SEQUENCE {
areaDefinition [0] AreaDefinition,
occurrenceInfo [1] OccurrenceInfo OPTIONAL,
intervalTime [2] IntervalTime OPTIONAL,
...}
AreaDefinition ::= SEQUENCE {
areaList [0] AreaList,
...}
AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area
maxNumOfAreas INTEGER ::= 10
Area ::= SEQUENCE {
areaType [0] AreaType,
areaIdentification [1] AreaIdentification,
...}
AreaType ::= ENUMERATED {
countryCode (0),
plmnId (1),
locationAreaId (2),
routingAreaId (3),
cellGlobalId (4),
...,
utranCellId (5) }
AreaIdentification ::= OCTET STRING (SIZE (2..7))
-- The internal structure is defined as follows:
-- octet 1 bits 4321 Mobile Country Code 1st digit
-- bits 8765 Mobile Country Code 2nd digit
-- octet 2 bits 4321 Mobile Country Code 3rd digit
-- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included
-- or filler (1111)
-- octet 3 bits 4321 Mobile Network Code 1st digit
-- bits 8765 Mobile Network Code 2nd digit
-- octets 4 and 5 Location Area Code (LAC) for Local Area Id,
-- Routing Area Id and Cell Global Id
-- octet 6 Routing Area Code (RAC) for Routing Area Id
-- octets 6 and 7 Cell Identity (CI) for Cell Global Id
-- octets 4 until 7 Utran Cell Identity (UC-Id) for Utran Cell Id
OccurrenceInfo ::= ENUMERATED {
oneTimeEvent (0),
multipleTimeEvent (1),
...}
IntervalTime ::= INTEGER (1..32767)
-- minimum interval time between area reports in seconds
PeriodicLDRInfo ::= SEQUENCE {
reportingAmount ReportingAmount,
reportingInterval ReportingInterval,
...}
-- reportingInterval x reportingAmount shall not exceed 8639999 (99 days, 23 hours,
-- 59 minutes and 59 seconds) for compatibility with OMA MLP and RLP
ReportingAmount ::= INTEGER (1..maxReportingAmount)
maxReportingAmount INTEGER ::= 8639999
ReportingInterval ::= INTEGER (1..maxReportingInterval)
-- ReportingInterval is in seconds
maxReportingInterval INTEGER ::= 8639999
ReportingPLMNList::= SEQUENCE {
plmn-ListPrioritized [0] NULL OPTIONAL,
plmn-List [1] PLMNList,
...}
PLMNList::= SEQUENCE SIZE (1..maxNumOfReportingPLMN) OF
ReportingPLMN
maxNumOfReportingPLMN INTEGER ::= 20
ReportingPLMN::= SEQUENCE {
plmn-Id [0] PLMN-Id,
ran-Technology [1] RAN-Technology OPTIONAL,
ran-PeriodicLocationSupport [2] NULL OPTIONAL,
...}
RAN-Technology ::= ENUMERATED {