Beruflich Dokumente
Kultur Dokumente
Contents
1 TCAP and MAP 3
2 Call Sequences 17
3 Formatting Rules of TCAP and MAP 45
4 Exercise 75
5 Solution 81
TM3101EU01TM_0001
1
Siemens TCAP and MAP
2 TM3101EU01TM_0001
TCAP and MAP Siemens
TM3101EU01TM_0001
3
Siemens TCAP and MAP
The SSS subunits (i.e. the Mobile Switching Center MSC, the Visitor Location
Register VLR, the Home Location Register HLR and the Equipment Identity Register
EIR - the Authentication Center AC is not considered here) are interconnected in
various ways. Whereas the MSCs are connected with each other via speech circuits
and in parts (Gateway-MSCs) have connections to other networks, there are only
signaling channels to the registers (HLR, VLR, EIR). The signaling on these channels
employs the Common Channel Signaling System No. 7 (CCS7) with Signaling
Connection Control Part (SCCP). Here, the connectionless SCCP services are used
exclusively (protocol class 0 and 1). As a consequence, all signaling messages
treated in this chapter are contained in the SCCP message UDT (Unitdata). If a UDT
cannot be delivered to the receiver, the possibility exist to return it to the sender with
UDTS (Unitdata Service). This is a basic SCCP function and will not be discussed
here.
The reason for the confinement to the connectionless SCCP services is that all
messages must be transmitted with a Global Title in order to enable the information
transfer between different networks (e.g. international). With connection oriented
SCCP services, a Global Title translation is possible only during the connection set
up; during the existence of the SCCP connection, the messages are transmitted
without a Global Title and are routed by the Destination Point Code (DPC) to the
receiving exchange.
Nevertheless, even with the signaling between SSS subunits, we cannot help
introducing signaling connections (logical connections). For example, it can happen
that several Mobile Stations of HLR x roam in the area of VLR y at the same time,
and that several proceedings for different Mobile Stations are going on between HLR
x and VLR y. In each signaling message, it must become clear to which proceeding it
is related. Therefore, signaling connections (transactions) must be set up between
HLR x and VLR y, and every signaling message is related to one transaction.
Because the SCCP is used connectionless only, the signaling connections are
controlled by the TCAP (Transaction Capabilities Application Part). The TCAP is
transmitted in the SCCP message UDT as contents of the mandatory parameter
"Data"; at the interfaces between SSS subunits, no other content of this parameter is
possible.
The TCAP has been specified by CCITT in the recommendations Q.771 to Q.775. It
has three tasks:
l Transaction control (Set up, clear down and identification of signaling connections)
l Control of dialogues ( = call sequences within a transaction)
l Control of operations within a dialogue.
Accordingly, the TCAP consists of three parts: the Transaction Portion, the
Dialogue Portion and the Component Portion.
4 TM3101EU01TM_0001
TCAP and MAP Siemens
Pointer to Data
Length Data
- TCAP message type Transaction
- Transaction Identities portion
- Dialogue PDU
Dialoge
- Application context portion
MAP
- MAP Dialogue PDU (optional)
Component 1:
- Type of Component
- Invoke Identifier
TCAP - Operation Type
MAP
- Parameter
Component
Component 2: portion
- Type of Component
- Invoke Identifier
- Operation Type
MAP
- Parameter
TM3101EU01TM_0001
5
Siemens TCAP and MAP
6 TM3101EU01TM_0001
TCAP and MAP Siemens
The TCAP begins with the Transaction portion. Here, we have a message type (e.g.
transaction set up - transaction clear down - information exchange over an existing
transaction) and - depending on the message type - one or two transaction
identifier(s). The TCAP transactions contain - similar to the SCCP transactions - two
identifiers (one for each connection side); they correspond to the local references of
the SCCP transactions. Whereas the messages for the transaction set up and clear
down need only one transaction identity, both transaction identities are sent with the
information exchange over an existing transaction.
The next portion is the Dialogue Portion, which is optional. It contains a Process
Data Unit (PDU) for establishment, confirmation and termination of a dialogue within
a transaction. It contains an identification of an application context (location update,
interrogation, Handover etc.) characteristic for the dialogue. Besides the TCAP-
specific PDU, a MAP-specific PDU is included as well.
After the Transaction portion, the Component portion ensues. This portion consists of
one or several component(s) in which either an operation (i.e. an action by the
partner side) is requested or else a previously received operation request from the
partner side is acknowledged (positively or negatively). As long as a transaction
exists, both parties have the right to request operations from the partner side and to
have them acknowledged. Each operation request or acknowledgment comprises a
component of its own, but one TCAP message can include several components.
TM3101EU01TM_0001
7
Siemens TCAP and MAP
Let us consider now the individual TCAP messages and message sequences. There
are four TCAP message types:
l Begin for the set up of a signaling connection (transaction)
l End for the regular clear down of a transaction
l Continue for the component transmission over an existing transaction
l Abort for the disruption of a transaction due to irregularities. We distinguish
between U-Abort (User-Abort, i.e. abort caused by the TCAP user, e.g. due to
supervision time expiry with class 1 operations, or due to illegal operation
requests) and P-Abort (Provider-Abort, i.e. abort caused by the TCAP transaction
layer). The message type, however, is the same.
8 TM3101EU01TM_0001
TCAP and MAP Siemens
A B
Begin (O-TRID)
Minimal sequence
A B
Begin (O-TRID)
TM3101EU01TM_0001
9
Siemens TCAP and MAP
All TCAP messages with the exception of Abort can contain components where
certain operations are requested from the partner side or where a reaction to a
received operation request is transmitted. There are four types of components:
l Invoke for the request of an operation from the partner side.
l Return Result (Last) for the transmission of the results of an executed operation
which had been requested by the partner side previously
l Return Error for the transmission of errors which have happened during the
execution of a requested operation
l Reject for the rejection of a received component.
A fifth type of component (Return Result (Not Last) for the transmission of
intermediate results) is defined by CCITT but not used with a GSM-PLMN.
As was already discussed, a TCAP message can contain several components (see
Fig. 1). It is perfectly clear that a Begin can contain Invoke components exclusively.
On the other hand, an End message can contain Invoke components only if the
requested operations belong to class 4 (see Fig. 4). In Continue operations, all types
of components are permitted.
For the distinction of different operations within the same transaction, each operation
obtains an invoke identifier which is selected by the requesting side and transmitted
to the partner side in the Invoke component. The partner side repeats the invoke
identifier in the reply components (Return Result (Last), Return Error or Reject).
It can happen that the reaction to an operation request consists of another request in
the opposite direction, i.e. that an Invoke is answered with Invoke (as, in the daily
conversation, a question is answered with a counter-question). In this case, the
second Invoke contains besides its own invoke identifier the so-called linked
identifier, i.e. the identifier of the previous Invoke. Thus, the second Invoke replaces
an explicit acknowledgment of the original request (with Return Result (Last) or
Return Error), and the linked identifier provides a relation between the two Invokes.
It should be pointed out that, with Reject, not only Invoke components can be
rejected (e.g. due to an unknown operation code) but Return Result (Last) or
Return Error components as well (e.g. due to an unknown invoke identifier).
A Reject component contains a problem code, which indicates the reason for the
rejection. This problem code is defined in the TCAP. The components Invoke,
Return Result (Last) and Return Error contain data of the TCAP user (i.e. MAP
data with a GSM-PLMN). These data are
l with Invoke: the code of the operation to be executed and further parameters
l with Return Result (Last): the code of the executed operation and the execution
results
l with Return Error: the sort of error the has happened.
These data are defined in the GSM guideline 09.02.
10 TM3101EU01TM_0001
TCAP and MAP Siemens
A B
Invoke (Invoke-Id=1)
A B
Invoke (Invoke-Id=2)
Invoke (Invoke-Id=4)
A B
Return Result(Last) (Invoke-Id=5)
Reject (Invoke-Id=5)
TM3101EU01TM_0001
11
Siemens TCAP and MAP
12 TM3101EU01TM_0001
TCAP and MAP Siemens
Class 1 Class 2
Request Request
Request Request
t
t
Timeout: Error! Timeout: positive acknowl.
Class 3 Class 4
Request Request
no time supervision,
t Acknowledgment (good)
no acknowledgment
Request
TM3101EU01TM_0001
13
Siemens TCAP and MAP
Let us consider now the interfaces where the TCAP with the user MAP is employed.
These are logical interfaces throughout. The affected SSS subunits can be
distributed in an arbitrary way over the network nodes. It can come to pass that both
SSS subunits lie in the same network node; in this case, there is no physical
interface. The other extreme occurs if the two SSS subunits lie in remote network
nodes; here, the physical interface consists of several signaling links.
The B-interface exists between the MSC and the assigned VLR. It is used whenever
the MSC requires or obtains data about a Mobile Station roaming in its area.
However, since this is - with the D900 realization - an internal interface, we shall not
discuss it from the TCAP / MAP point of view.
The C-interface lies between an MSC and an arbitrary HLR. The MSC uses this
interface for the interrogation during a mobile terminating call (MTC) in order to obtain
data from the HLR about the actual location of the called mobile subscriber.
Furthermore, the MSC can transmit this way call charge data to the HLR.
The D-interface is defined between a VLR and an arbitrary HLR for the purposes:
l Location update and cancellation
l Control of supplementary services
l during call set up: access to subscriber data which are not stored in the VLR
l Request for a roaming number (MSRN)
l Reconstruction of the location registers after recovery
l Transfer of authentication data (triples)
The E-interface is located between two MSCs. It is the only interface where, besides
SCCP, TCAP and MAP, user channel related User Parts can be employed, too, since
for a call set up and clear down, user channels must be seized and released. At this
interface, TCAP and MAP are used for Inter-MSC-Handovers exclusively.
The F-interface can be found between an MSC and an EIR. It is used during a call
set up so that the MSC can have the IMEI of the terminal in use checked.
The G-interface finally exists between two arbitrary VLRs. During a location update,
it enables the communication between the old and the new VLR. This way, the new
VLR obtains the IMSI of the mobile subscriber (who has registered using the TMSI)
as well as the unused authentication triples.
In the subsequent sections, the TCAP message sequences and MAP operations at
these interfaces will be described. All MAP operations under consideration belong to
class 1 if not explicitly stated otherwise.
Generally, we are going to confine ourselves to examples of positive cases since a
detailed discussion of all special and error cases would exceed the scope of this
training documentation considerably. For a complete treatment even of these cases,
we refer to the GSM guideline 09.02.
14 TM3101EU01TM_0001
TCAP and MAP Siemens
D G
HLR VLR VLR
(B)
D
TM3101EU01TM_0001
15
Siemens TCAP and MAP
16 TM3101EU01TM_0001
TCAP and MAP Siemens
2 Call Sequences
TM3101EU01TM_0001
17
Siemens TCAP and MAP
As soon as the Mobile Station notices that the conditions for a location update are
met (e.g. change of the location area without an existing call), it sends to the MSC
the message "Location Update Request" via the air interface and the A-interface. The
message contains the TMSI and the old and the new Location Area Identification
(LAI). Thereupon, the MSC/VLR checks whether the old LAI belongs to the own MSC
area. We suppose that this is not the case.
The VLR (= the new VLR) determines from its data base by means of the old LAI the
address (Global Title) of the old VLR and sets up a transaction to the old VLR with
the TCAP message Begin. The message contains an Invoke component for the
MAP operation "Send Identification" with the received TMSI.
The old VLR determines from the TMSI the IMSI and the unused authentication
triples; both is sent with the Return Result (Last) component for the "Send
Identification" operation to the new VLR. The component is contained in an End
message. This is an example for a short-term transaction where the Begin message
is answered with End immediately and where one transaction identity is sufficient.
Now, the MSC/VLR can perform an authentication for the Mobile Station. Afterwards,
the new VLR informs the HLR by determining the LMSI (= the index of the transient
subscriber data record) and setting up a transaction VLR-HLR with Begin; this
message contains an Invoke component for the MAP operation "Update Location".
With this, the VLR communicates to the HLR
l the IMSI (for the identification of the affected mobile subscriber)
l the LMSI (for the storage in the transient HLR subscriber data record)
l the VLR and MSC numbers (Global Titles; for the storage in the transient HLR
subscriber data record so that the HLR can later address the VLR and the MSC,
e.g. during the interrogation).
The VLR reaches the HLR over the IMSI, which operates as a Global Title. Thus, the
IMSI is contained twice in the integral message: once in the SCCP section (Global
Title for the determination of the HLR) and once as a MAP parameter in the Invoke
component (so that the HLR can identify the mobile subscriber).
18 TM3101EU01TM_0001
TCAP and MAP Siemens
D
VLR
G D HLR
new VLR old
Begin
Invoke (Send Identification)
(TMSI)
End
RRLast (Send Identification)
(IMSI, Auth.-Triples)
Begin
Invoke (Update Location)
(IMSI, LMSI, VLR number, MSC number)
Continue
Invoke (Insert Subscriber Data) ( Service Data)
Invoke (Insert Subscriber Data) ( Service Data)
Continue
RRLast (Insert Subscriber Data) ( Service Data)
RRLast (Insert Subscriber Data) ( Service Data)
End
RRLast (Update Location) (HLR number)
Begin
Invoke (Cancel Location)
(IMSI, old LMSI)
End
RRLast (Cancel Location)
TM3101EU01TM_0001
19
Siemens TCAP and MAP
On reception of the Invoke, the HLR determines from the IMSI the mobile subscriber
and stores the received data (IMSI and VLR address). Afterwards, the HLR
determines the data of the basic and supplementary services of the mobile
subscriber as far as they are relevant for the VLR.
The HLR communicates the service data are to the VLR with Invoke components for
the MAP operation "Insert Subscriber Data", sending each Basic Service (with its
MSISDN and all supplementary services) in a component of its own (with own invoke
identifier). The components are sent in Continue messages; the mobile subscriber is
determined by the transaction identities so that linked identifiers are not required.
Several of these Invoke components can be transmitted in a single Continue.
The VLR enters the service data into the transient subscriber data record and
confirms each single Invoke with Return Result (Last) in Continue messages.
Once again, one Continue can summarize several components.
As soon as the last Invoke for "Insert Subscriber Data" is acknowledged, the HLR
terminates the transaction with an End message containing the Return Result (Last)
component for the MAP operation "Update Location". Here, the HLR communicates
its number (= Global Title) to the VLR.
Thereupon, the MSC/VLR can encipher the air interface, assigns to the mobile
subscriber a new TMSI and send it to the MS.
The HLR, after cleardown of the transaction to the new VLR, performs the location
cancellation to the old VLR. For this purpose, the HLR sets up a transaction to the old
VLR with a Begin containing an Invoke for the MAP operation "Cancel Location" with
the IMSI and the old LMSI. The old VLR now cancels its subscriber data record,
releases TMSI and LMSI and sends the Return Result (Last) in an End message.
Again, this is a short-term transaction with a single transaction identity.
Now, the cancellation is completed, too, and the whole proceeding is finished.
The used application contexts are
l "Inter-VLR Info Retrieval Context - v2" between old and new VLR
l "Network Loc. Up. Context - v2" between the new VLR and the HLR
l "Location Cancellation - v2" between the old VLR and the HLR.
20 TM3101EU01TM_0001
TCAP and MAP Siemens
D
VLR HLR
Begin
Invoke (Purge MS) (IMSI, VLR number)
End
RRLast (Purge MS)
Fig. 7 MS purging
TM3101EU01TM_0001
21
Siemens TCAP and MAP
The MSC initiates the interrogation with a Begin to the HLR containing an Invoke
component for the MAP procedure "Send Routing Info". Further data in this Invoke
are
l the MSISDN
l membership of the calling subscriber in a Closed User Group, CUG (optional)
l how often the call has already been forwarded (optional)
l received signaling information (optional, e.g. identification of a Basic Service).
In the positive case (when no CUG membership or another obstacle prevents the call
set up), the HLR sends a Begin to the VLR containing an Invoke component for the
MAP procedure "Provide Roaming Number". There are delivered
l the IMSI
l the MSC number
l the MSISDN
l the LMSI (optional - for a faster addressing of the VLR data)
l the GSM-Bearer Capability belonging to the MSISDN
l and/or signaling information about the requested service as received from the
MSC.
The VLR allocates a MSRN and returns it with the Return Result (Last) for "Provide
Roaming Number" to the HLR. The component is contained in an End message.
The HLR forwards the MSRN, the IMSI and the result of the CUG-check with Return
Result (Last) for "Send Routing Information" in an End to the Gateway-MSC.
Both transactions are short-termed and need just one transaction identity each.
The application contexts are
l "Location Info Retrieval Context - v2" between Gateway-MSC and HLR
l "Roaming Number Enquiry Context - v2" between HLR and VLR.
22 TM3101EU01TM_0001
TCAP and MAP Siemens
C D
MSC HLR VLR
Begin
Invoke (Send Routing Info)
(MSISDN,
CUG Check Info,
Number of Forw.,
Network Signal Info)
Begin
Invoke (Provide Roaming No.)
(IMSI, MSC number,
MSISDN, LMSI,
GSM-Bearer Cap.,
Network Signal Info) Sel.
MSRN
End
RRLast (Provide Roaming No.)
(MSRN)
End
RRLast (Send Routing Info)
(IMSI, MSRN,
CUG Check Info)
Fig. 8 Interrogation
TM3101EU01TM_0001
23
Siemens TCAP and MAP
24 TM3101EU01TM_0001
TCAP and MAP Siemens
C D
MSC HLR VLR
Begin
Invoke (Send Routing Info)
(MSISDN,
CUG Check Info,
Number of Forw.,
Network Signal Info)
End
RRLast (Send Routing Info)
(IMSI, B2 number,
CUG Check Info)
C D
MSC HLR VLR
Begin
Invoke (Send Routing Info)
(MSISDN, Begin
CUG Check Info, Invoke (Provide Roaming No.)
Number of Forw., (IMSI, MSC number,
Network Signal Info) MSISDN, LMSI,
GSM-Bearer Cap.,
Network Signal Info)
End
End RetError (Provide Poaming No.)
RRLast (Send Routing Info) (Absent Subscriber)
(IMSI, B2-Number,
CUG Check Info)
TM3101EU01TM_0001
25
Siemens TCAP and MAP
If the VLR has lost the mobile subscribers data due to a recovery, the mobile
subscriber is still reachable for an MTC. It is during the interrogation (Invoke for
"Provide Roaming Number" with IMSI from the HLR) that the VLR first learns about
the subscribers existence. The VLR now assigns a MSRN in the usual manner and
returns it to the HLR with the Return Result (Last) for "Provide Roaming Number";
this component is contained, as always, in an End message. Furthermore, the VLR
reserves an idle data record for this subscriber; the index of this subscriber data
record is the LMSI.
Afterwards, the VLR retrieves authentication triples for this subscriber. To this end, it
sets up a new transaction (with Begin) to the HLR; this Begin message contains an
Invoke for the operation "Send Authentication Info" with the IMSI (from the previous
Invoke for "Provide Roaming Number") as parameter. The HLR replies with an End
message containing the Return Result (Last) for "Send Authentication Info" with five
authentication triples. This triples the VLR stores in the reserved subscriber data
record.
Next, the VLR sets up a third transaction to the HLR with a Begin message
containing an Invoke for the MAP operation "Restore Data". Parameters are IMSI
and LMSI of the subscriber. The HLR stores the new LMSI (the old one - prior to the
data loss in the VLR - could have been a different one) and, as with Location Update,
transmits the subscribers service data to the VLR by means of "Insert Subscriber
Data". Each Basic Service requires an own Invoke for "Insert Subscriber Data", and
the VLR must acknowledge each Invoke with Return Result (Last). The HLR can
combine several Invoke components within one Continue message, and the HLR
can do the same thing with several Return Result (Last) components. Finally, the
HLR terminates the transaction with an End, containing the Return Result (Last)
component for "Restore Data" with the HLR number as parameter.
Now, the VLR has reconstructed all the subscribers data as far as they come from
the HLR. When now the call from the gateway MSC with the assigned MSRN arrives,
the visited MSC performs searching (i.e. paging with the IMSI in each cell of the MSC
area). As soon as the subscriber replies, the VLR knows the location area of the
subscriber and can now assign a new TMSI as well, so that all the data are
successfully retrieved, and the call is set up.
The relevant application contexts are
l "Roaming Number Enquiry Context - v2" for the first transaction
l "Info Retrieval Context - v2" for the second transaction
l "Network Loc. Up Context - v2" for the third and last transaction.
When the mobile subscribers first call after the VLR data loss is a mobile originating
one, then it is not successful. In this case, the call fails due to the reason "Unknown
Subscriber" which causes the Mobile Station to do a Location Update, so that a
second MOC attempt will be successful.
26 TM3101EU01TM_0001
TCAP and MAP Siemens
D
HLR VLR
Begin
Invoke (Provide Roaming Number)
(IMSI, MSC number, MSISDN, LMSI,
GSM-Bearer Capability, Network Signal Info) Sel.
MSRN
End
RRLast (Provide Roaming Number) (MSRN)
Begin
Invoke (Send Authentication Info) (IMSI)
End
RRLast (Send Authentication Info) (5 Triples)
Begin
Invoke (Restore Data) (IMSI, LMSI)
Continue
Invoke (Insert Subscriber Data) (Service Data)
Invoke (Insert Subscriber Data) (Service Data)
Continue
RRLast (Insert Subscriber Data)
RRLast (Insert Subscriber Data)
End
RRLast (Restore Data) (HLR number)
TM3101EU01TM_0001
27
Siemens TCAP and MAP
The transient HLR subscriber data belong to a memory section, which is normally not
overwritten during a recovery (noload-segment). Furthermore, the HLR stores these
data at regular time intervals in a backup file on the disk. If, during a recovery, the
data are destroyed nevertheless (e.g. due to a memory formatting), the secured data
are reloaded from the backup file into the memory. Because the data are not secured
perpetually in the backup but only periodically, all changes are lost that have
occurred since the last backup transfer. Therefore, all affected VLRs must be
informed about the failure so that they can mark the affected subscriber records
correspondingly. These are
l all VLRs of the own PLMN
l those foreign VLRs in whose areas subscribers of the affected HLR roam.
Thus, the HLR maintains an address list of these VLRs in another disk file.
If an HLR recovery with loss of the transient data base occurs, the HLR reloads from
the disk the transient HLR data (which, as mentioned, might not contain the latest
changes) and the list of the addresses of the affected VLRs. To these VLRs, the HLR
sends an Invoke for the MAP operation "Reset". This is a MAP operation of class 4
(no direct confirmation), and the Invoke component contains the HLR number which
corresponds to the address given during location update and VLR data restoration
(Return Result (Last) of "Update Location" and "Restore Data", cf. Fig. 6 and Fig.
11). This Invoke is delivered in a Begin message.
This transaction does not contain any further message; rather, VLR and HLR clear
down the transaction locally afterwards.
A VLR, on reception of such an Invoke for "Reset", rummages through its subscriber
data records and compares for each subscriber the stored HLR number with the
received value. Whenever the addresses coincide, it is a subscriber from the affected
HLR, and the VLR sets a mark in this subscribers data record.
If a subscriber thus marked gives any sign of life (e.g. normal location update [even
within the same MSC area], periodic location update, IMSI attach, mobile originating
call), the VLR performs a location update with the HLR corresponding to Fig. 6 so
that the HLR gets an actualized data record again. Thereupon, the VLR deletes the
mark for the mobile subscriber in the data record.
The application context of the "Reset" operation is "Reset Context - v2".
The treatment of an HLR recovery is of the utmost importance since an HLR data
loss endangers the accessibility of the affected mobile subscribers.
28 TM3101EU01TM_0001
TCAP and MAP Siemens
D
VLR HLR
Begin
Invoke (Reset) (HLR number)
local local
transaction transaction
release release
TM3101EU01TM_0001
29
Siemens TCAP and MAP
And finally, it could be the case, that the mobile station arrives again in the area of
MSC A. This would lead to a clear down of the long-term TCAP-transaction (in our
example: MSC A to MSC C) and the mobile station is from now on connected to a
BSS of MSC A (for the speech and for the signaling channel) and MSC A has the call
control anyhow.
30 TM3101EU01TM_0001
TCAP and MAP Siemens
TCAP
MSCB
SCCP
RR
BSS
Remote
MSCA
party
BSS
RR
BSS
SCCP
TCAP
MSCC
Fig. 13 Inter-MSC-Handover
TM3101EU01TM_0001
31
Siemens TCAP and MAP
TCAP and MAP are concerned with Handover only if it is a Handover between
different MSCs (MSC-MSC-Handover or Inter-MSC-Handover). The concerned units
are
l the MSC which had set up the call originally (MSC A)
l the MSC into whose area the Handover leads (MSC B)
32 TM3101EU01TM_0001
TCAP and MAP Siemens
E
MSC MSC
A B
Begin
Invoke (Prepare Handover)
(Target cell, HON required?,
BSSMAP-message „Handover Request“)
HO Request
HO Request
Acknowledge
Continue
RRLast (Prepare Handover)
(Hon, BSSMAP-message
„Handover Request Acknowledge“)
Call Setup
to MSC B,
3-Conf.,
Command HO Detect
for MS
Continue
Invoke (Process Access Signalling)
(BSSMAP-message „Handover Detect“)
HO Complete
Continue
Invoke (Send End Signal)
(BSSMAP-message „Handover Complete“)
End
3-Conf.,
Release to
Base
Station
TM3101EU01TM_0001
33
Siemens TCAP and MAP
34 TM3101EU01TM_0001
TCAP and MAP Siemens
Now, MSC B selects an Handover Number and acknowledges to MSC A the MAP
operation "Prepare Handover" with Return Result (Last) in a Continue. The
component contains the allocated Handover Number (if applicable) and received
"Handover Request Acknowledge", containing the air interface message "Handover
Command" to the Mobile Station.
MSC A uses the Handover Number to set up a user connection to MSC B (with a
user channel related User Part, or with channel associated signaling) and to switch it
to a three-party conference with the former user connection. Thereupon, MSC A
requests the (old) Base Station to radiate "Handover Command" (as composed by
the new Base Station) to the Mobile Station.
With this message, the Mobile Station is asked to switch to the new cell and to the
new channel and to report there with the Handover reference number. As soon as
this has happened, the new Base Station sends the BSSMAP-message "Handover
Detect" which MSC B relays to MSC A in a Continue with the Invoke for the MAP
operation "Process Access Signaling". It is an operation of class 4, i.e. no
acknowledgment is required on the part of MSC A.
When the Mobile Station has sent "Handover Complete", the Base Station sends a
BSSMAP message of the same name to MSC B, and MSC B transmits this BSSMAP
message to MSC A Continue with the Invoke for the MAP operation "Send End
Signal".
Now, MSC B clears down the three-party conference, releases the user channel to
the old Base Station and requests the old Base Station to release the former channel
at the air interface. The Handover is completed.
The transaction between MSC A and MSC B remains stable until either the user
connection is cleared down or a second Handover to another MSC occurs.
With the call sequences discussed hitherto, transactions were set up for proceedings
within a restricted period of time (location registration or call set up) and were
released after the completion of the proceeding. The Handover between MSCs is the
only case were transactions are maintained beyond the actual proceeding over a
longer period of time. The reason is that MSC B and its VLR do not "know" which
Mobile Station is roaming in their area. If a subsequent Handover or other events
occur, MSC B can tell to MSC A by means of the transaction identities, which Mobile
Station is concerned.
The MAP procedure, which was initiated last ("Send End Signal" MSC B --> MSC A)
belongs to class 3, i.e. ultimately, it is acknowledged positively, but its supervision
time amounts to several hours (project and implementation dependent: up to 38
hours). The aim is to prevent that the user channels between MSCs remain blocked
for an incongruously long period of time. After expiry of the time supervision, the
transactions and user connections are cleared down.
The application context for Handover is "Handover Control Context - v2"
TM3101EU01TM_0001
35
Siemens TCAP and MAP
Let us investigate now the case of a subsequent Handover into the area of a third
MSC (=MSC C). The Base Station where the Mobile Station roams recognizes that a
Handover to another radio cell is necessary, and MSC B finds out that the new cell
does not belong to the own area. Therefore, MSC B sends to MSC A in a Continue
the Invoke for the MAP Procedure "Prepare Subsequent Handover" and informs
MSC A about the identity of the target cell as well as about the number (=Global
Title) of the new MSC. Furthermore, the Invoke contains the BSSMAP-message
"Handover Request".
When MSC A now finds out that the target cell doesn't belong to the own area either
but is administered by a third MSC (=MSC C), it performs a Handover procedure to
MSC C which corresponds exactly to the first Handover (cf. Fig. 14). Thus, MSC A
sends to MSC C an Invoke for "Prepare Handover" (with the "Handover Request"
message received from MSC B). MSC C has a channel of the air interface assigned
and a message of the air interface composed by the Base Station. Furthermore, MSC
C selects a Handover Number (if necessary). Now, MSC C sends the Handover
Number to MSC A in the Return Result (Last) for "Prepare Handover" (including the
BSSMAP message "Handover Request Acknowledge" containing the air interface
message "Handover Command").
MSC A employs the Handover Number to set up a user connection to MSC C and to
switch it to a three-party conference with the former user connection. Thereupon,
MSC A sends to MSC B in a Continue the Return Result (Last) component for the
MAP procedure "Prepare Subsequent Handover". Here, MSC A transmits to MSC B
the BSSMAP message "Handover Request Acknowledge" as received from MSC C.
MSC B forwards the air interface message "Handover Command" to the (old) Base
Station where it is radiated. The Mobile Station is requested to switch to the new cell
and to the new channel (in the area of MSC C). As soon as the Mobile Station has
found contact there, MSC C sends to MSC A the Invoke for "Process Access
Signaling" (with "Handover Detected"). When the new Base Station has sent
"Handover Complete", MSC C relays this BSSMAP message to MSC A with an
Invoke for the MAP operation "Send End Signal".
Now, MSC A clears down the three-party conference and releases the user
connection to MSC B. Afterwards, MSC A releases the transaction to MSC B with an
End containing the Return Result (Last) for the operation "Send End Signal".
Now, MSC B, in its turn, releases the user channel to the Base Station and requests
the Base Station to release the former channel of the air interface.
36 TM3101EU01TM_0001
TCAP and MAP Siemens
E
MSC MSC MSC
C A B
Continue
Continue
RRLast
(Prep. HO)
Call Setup,
to MSC B,
3-Conf. Continue
Continue
Invoke
(Send End
Sign.)
End
3-Conf.
Release
End
to MS´C B
Release
RRLast (Send End Signal)
to Base
Station
TM3101EU01TM_0001
37
Siemens TCAP and MAP
The case can happen, of course, that a subsequent Handover leads back into the
area of the original MSC. The sequence begins as in the former case. Again, the
Base Station recognizes the necessity of a Handover to another radio cell, and MSC
B (= the MSC in whose area the Mobile Station roams) finds out that the target cell
does not belong to the own area. Therefore, MSC B sends to MSC A in a Continue
the Invoke for the MAP procedure "Prepare Subsequent Handover" and informs
MSC A about the identity of the new cell as well as about the number (=Global Title)
of the new MSC, and the BSSMAP-message "Handover Request".
Now, MSC A recognizes - unlike the former case - that the target cell lies in the own
area. Thus, no communication with a third MSC is required, but MSC A directly
transmits "Handover Request" to the Base Station, which is responsible for the new
cell. (Before so doing, MSC A selects a user channel to this Base Station and
includes the CIC into "Handover Request".) The Base Station selects an air interface
channel and composes the air interface message "Handover Command" which it
communicates to MSC A in the BSSMAP message "Handover Request
Acknowledge".
No Handover Number is required; therefore, the VLR is not involved. Instead, MSC A
switches the user channel to the Base Station to a three-party conference with the
former user connection. Now, MSC A sends to MSC B in a Continue the Return
Result (Last) for the MAP procedure "Prepare Subsequent Handover". In the
component, MSC A transmits to MSC B the BSSMAP message "Handover Request
Acknowledge" including the air interface message "Handover Command" as
composed by the Base Station.
Next, MSC B has "Handover Command" radiated by its Base Station. The Mobile
Station is requested to switch to the new cell and to the new channel. When the
Mobile Station registers there, the MSC A is informed by its Base Station with
"Handover Detect" and later with "Handover Complete".
The further processing is as with a Handover to a third MSC: MSC A clears down the
three-party conference and releases the user connection to MSC B. Next, MSC A
also releases the transaction to MSC B with an End containing the Return Result
(Last) for the operation "Send End Signal".
Now, an MSC B release, in its turn, the user channel to the Base Station and
requests the Base Station to release the old air interface channel.
Again, the application content is "Handover Control Context - v2".
38 TM3101EU01TM_0001
TCAP and MAP Siemens
E
MSC MSC
A C
Continue
HO Request
Acknowledge
3-Conf.
Continue
HO Detect
HO Complete
End
3-Conf.
Release
to MSC C End
TM3101EU01TM_0001
39
Siemens TCAP and MAP
The Mobile Station changes with a Handover its RR connection only; MM and CM
connections (between Mobile Station and MSC) depending on it are not affected.
With RR connections, the Base Station is the partner of the Mobile Station, with MM
and CM connections, however, it is the MSC. With a Handover, MSC B sets up an
SCCP connection to the new BSC but does not evaluate any DTAP message
received over this SCCP connection; rather, DTAP messages are forwarded to MSC
A without any modification. For this, the MAP operation "Process Access Signaling"
exists whose Invoke is sent by MSC B in a Continue to MSC A. It contains the
received DTAP message. This MAP operation belongs to class 4; thus, there is no
acknowledgment to MSC B.
Vice-versa, if MSC A wants to send an MM or CM message to a Mobile Station which
has changed by Handover into the area of MSC B, it sends the DTAP data to MSC B
in an Invoke component for the operation "Forward Access Signaling"; the
component is contained in a Continue message. The MSC B forwards these DTAP
data over the existing SCCP connection to the BSC whence they are transmitted to
the Mobile Station. Again, the operation "Forward Access Signaling" belongs to class
4; thus, there is no reply from MSC B.
With each subsequent Handover within MSC B, MSC B sets up an SCCP connection
to the new BSC (and releases the SCCP connection to the former BSC) so that the
described proceedings for CM and MM messages are still operable.
Finally, lets consider the case of the call clear down of a Mobile Station which has set
up its call in the area of MSC A but which has changed later into the area of MSC B.
Whether the call clear down is initiated by the Mobile Station itself or by the partner
side: at any rate, the Mobile Station and the MSC exchange messages like
"Disconnect", "Release" and "Release Complete" in the DTAP. As discussed right
now, these messages are sent from the Mobile Station to MSC A and vice-versa;
MSC B just forwards the data transparently.
As soon as this message exchange with the Mobile Station is terminated, MSC A
releases the user connection with MSC B and clears down the transaction to MSC B
with an End containing the Return Result (Last) for the MAP operation "Send End
Signal". Now, MSC B releases the SCCP connection and the user connection to the
Base Station. This being done, all user connections and all transactions are cleared
down, and all MAP procedures are acknowledged - as far as required. Thus, all
physical and logical resources are idle again.
The application context is "Handover Control Context - v2" for everything.
40 TM3101EU01TM_0001
TCAP and MAP Siemens
MSC MSC
A B
Continue DTAP
Continue DTAP
E
MSC MSC
A B
Release
to MSC B
End
TM3101EU01TM_0001
41
Siemens TCAP and MAP
The last MAP operation we discuss concerns the check of the IMEI. This is the only
MAP operation, which involves the F interface.
The IMEI Check can be activated project and installation specifically in the MSC. If
this is the case, the MSC interrogates during the call set up the IMEI of the called or
calling equipment (BSSMAP procedure identification). Thereupon, the MSC sets up a
transaction at the F-interface to the responsible EIR with a Begin containing the
Invoke for the MAP operation "Check IMEI"; the IMEI is included. The EIR checks
the IMEI and answers with the Return Result (Last) for this MAP operation in an
End message. Here, the EIR informs the MSC whether the equipment was found on
the white, gray or black list.
42 TM3101EU01TM_0001
TCAP and MAP Siemens
MSC EIR
Begin
Continue
TM3101EU01TM_0001
43
Siemens TCAP and MAP
44 TM3101EU01TM_0001
TCAP and MAP Siemens
TM3101EU01TM_0001
45
Siemens TCAP and MAP
The formatting rules for TCAP and MAP correspond to the standard of the Abstract
Syntax Notation 1 (ASN.1) as defined in the CCITT / ITU recommendations X.208
and X.209. In this standard, the data to be transmitted consist of elements whose
layout is illustrated in Fig. 20. Such an element comprises
l a Tag in the length of one or several byte(s). The tag does not reflect the meaning
of the element but its syntactical structure. Thus, the tag should not be compared
with an identifier as it appeared in the formatting rules described thus far; rather,
the tag corresponds to an indication of the data type which is known from higher
programming languages. Only if two elements of the same data type must be
distinguished from each other (e.g. two optional parameters of the same
syntactical structure), the tag indicates which element is meant.
l a Length indicator comprising one or several byte(s).
l as many bytes of Contents as indicated by the length indicator.
The contents may consist, in their turn, of one or several element(s) with tag, length
indicator and contents; in this case, we speak of a Constructor element. The
members of a constructor element can be constructor elements again, etc.; the depth
of interlocking is not restricted. If an element is not a constructor element, i.e. if its
contents do not consist of other elements, we speak of a Primitive element.
46 TM3101EU01TM_0001
TCAP and MAP Siemens
Tag Tag
Contents Length
Contents Contents
Primitive Constructor
TM3101EU01TM_0001
47
Siemens TCAP and MAP
The entire TCAP part of a message (i.e. the contents of the SCCP parameter "Data",
cf. Fig. 1) is one element of this sort, obviously a constructor. The tag indicates the
message type (that is, Begin, Continue, End or Abort). The length indicator for the
entire TCAP message ensues. The contents of the element consist, in their turn, of
several elements (with tag, length indicator and contents), e.g. the transaction
identities. The penultimate element is the dialogue portion, and the last element is the
component portion; both are marked as such by their tags. Again, these elements
have a length indicator and contents.
The dialogue portion is a constructor element. For the sake of simplicity, we shall not
discuss in this training documentation the structure of the dialogue portion, which
contains many fields not relevant for a GSM-PLMN.
The component portion is a constructor element, too. Its contents consist of zero, one
or several component(s). Each component is an element in the contents of the
component portion.
Each component is a constructor element. Its tag indicates which type of component
it is (Invoke, Return Result (Last), Return Error or Reject). The contents of a
component consist of elements, which can be primitive or constructor. We mention
l the invoke identifier, possibly the linked identifier, too
l the (requested or acknowledged) MAP operation
l the delivered parameters, depending on the operation (e.g. IMSI, service data,
MSISDN etc.).
The ITU recommendation Q.773 defines for each message type and for each
component type which elements are mandatory or optional in the contents. Here, the
possible refusal causes of the Reject are declared, too. The GSM guideline 09.02,
however, defines the possible MAP application contexts and MAP operations and
describes which parameters are mandatory or optional for a given MAP operation in
Invoke, Return Result (Last) and Return Error.
48 TM3101EU01TM_0001
TCAP and MAP Siemens
Length
Transaction
Element of the transaction portion Portion
( e.g. transaction identity)
Length Dialogue
Portion
Elements of the Dialogue Portion
Length
Length
Component
Element of the Component
Portion
(e.g. invoke identifier, parameter
Component
TM3101EU01TM_0001
49
Siemens TCAP and MAP
The coding rules for the tag are given in Fig. 22. As you see, the first two bits indicate
the class of the tag. There are four tag classes defined:
l universal (code = 00): data types for all applications. These data types are defined
in the CCITT recommendation X.209; in this training documentation, they are
listed in fig. 24.
l application specific (code = 01): with GSM, this class applies for the TCAP tags
(e.g. the message type) as they appear in the CCITT recommendation Q.773.
l context specific (code = 10): these tags have a meaning only at a given position
within a given constructor element (e.g. within a given TCAP message type, a
component type, a MAP operation).
l private (code = 11): not used with a GSM-PLMN.
After the class, a bit for the determination of the form ensues, i.e. for the distinction
between primitive (P; code = 0) and constructor (C; code = 1).
Their now follows the tag value. If the value is less than 31, it is given in the 5 bits to
follow; thus, the tag as a whole has a length of one byte. If, however, the value is 31
or more, the five least significant bits of the first byte are set to 11111 as an escape
code. In this case, the tag value extends over the next bytes, but the most significant
bit of each byte does not count. Rather, the most significant bit indicates whether the
tag is completed with this byte (0) or extends to the following byte (1).
In this manner, arbitrarily large tag values can be coded.
50 TM3101EU01TM_0001
TCAP and MAP Siemens
Value 30:
Class PC Value =/ 11111
Value 31:
Class PC 1 1 1 1 1
1
= Value
Class Form
TM3101EU01TM_0001
51
Siemens TCAP and MAP
The coding of the length indicator is illustrated in Fig. 23. Mostly, the indicator does
not exceed the value 127; in this case, one byte is sufficient whose most significant
bit is set to 0 as a mark.
If the contents comprise 128 bytes or more, the length indicator must extend over
several bytes. In this case, the most significant bit of the first byte is set to 1 as a
mark, and the remaining 7 bits indicate how many length indicator bytes are going to
follow ("length indicator of the length indicator"). In the following bytes, the length
indicator value is coded. As this "length indicator of the length indicator" has a length
of 7 bits, its maximal value is 127. Therefore, the length indicator itself comprises up
to 127 bytes = 8*127 bits. Thus, the maximal value of length indicator itself is 28*127-
1, and the contents can comprise up to 28*127-1 bytes. This is much, much more
than the estimated amount of atoms in the universe, and the transmission of such an
element with 64 kbit/s would take much, much longer than the expected remaining
lifetime of the solar system. In other words: it will never happen that an element is too
long for its length indicator to be coded by this method.
Of course, the first byte of the length indicator cannot have the binary value 1000
0000, for this would mean that the length indicator value extends over the following 0
bytes, which is absurd.
Finally, with constructor elements, an indefinite length indicator is possible, namely if
the sender at the time of the length indicator generation cannot predict the total
length. The indefinite length indicator is always one byte long and has a binary value
of 1000 0000; this, as was explained right now, can never be the value of the first
byte of a definite length indicator, so that errors are excluded. Now there follow the
elements the constructor consists of (with their own tag, length indicator and
contents). At the end, a pseudo-element follows with the tag B’0000 0000 (universal
tag 0: undefined acc. to Fig. 24) and the length indicator 0000 0000 (length 0 byte) as
a mark of the end of the constructor element.
It is quite clear that no general rules can be given here for the coding of the element
contents, for this depends on the element type (i.e. on the tag).
52 TM3101EU01TM_0001
TCAP and MAP Siemens
Value 127:
0 Value
Value 127:
1 length of the length indicator = 0000000
Value
Indefinite
value: 1 0 0 0 0 0 0 0
(Constructor
only)
Element
Element
Tag 0 0 0 0 0 0 0 End of
Constructor
Length 0 0 0 0 0 0 0
TM3101EU01TM_0001
53
Siemens TCAP and MAP
Fig. 24 shows the universal tags. Not all of them are relevant for a GSM-PLMN. The
following tags apply for TCAP and MAP:
l Boolean (1): CONTENTS "TRUE" (1) OR "FALSE" (0); LENGTH 1 BYTE
l INTEGER (2): an integer number; the first bit indicates the sign
l BITSTRING (3) occurs in the dialogue portion
l OCTETSTRING (4): a string of bytes which are evaluated individually
Examples: IMSI, MSISDN
l NULL (5): a dummy; length 0 byte
l OBJECT IDENTIFIER (6) occurs in the dialogue portion
l EXTERNAL (8) occurs in the dialogue portion
l ENUMERATED (10): a list of possibilities, represented symbolically by numbers
Example (from the IMEI check, see Fig. 19):
Equipment Status ::= ENUMERATED (whiteListed (0),
greyListed (1),
blackListed (2))
l SEQUENCE (16): a sequence of elements in pre-defined order
Example: SEQUENCE (IMSI OCTETSTRING,
TMSI OCTETSTRING)
l SEQUENCE OF (16): a sequence of an amount of elements of the same type.
Example: the Component Portion is a SEQUENCE OF components.
54 TM3101EU01TM_0001
TCAP and MAP Siemens
Value Meaning
1 BOOLEAN
2 INTEGER
3 BITSTRING
4 OCTETSTRING
5 NULL
6 OBJECT IDENTIFIER
7 OBJECT DESCRIPTOR
8 EXTERNAL
9 REAL
10 ENUMERATED
16 SEQUENCE, SEQUENCE-OF
17 SET, SET-OF
23-24 TIME
TM3101EU01TM_0001
55
Siemens TCAP and MAP
In the TCAP, both application and context specific tags are used. The message types
are application specific tags; the values are listed in Fig. 25. As you see (cf. Fig. 22),
all of them are constructor tags (B'011... = application specific, constructor) which is
obvious according to Fig. 21.
Further application specific tags concern the transaction identities; the elements are
primitive. The length may be 1 to 4; thus, it is not fixed - unlike the local references of
the SCCP. In Abort messages, the abort cause is given and has an application
specific tag, and it is distinguished as to whether the abort was caused by the lower
layers (provider, i.e. transaction portion, SCCP or MTP) or by the upper layers (user,
i.e. MAP). The elements are primitive. Finally, there is an application specific
constructor tag for the dialogue portion as a whole, and another one for the
component portion (cf. Fig. 21).
Within the component portion, context specific tags are defined, e.g. the component
types (B'011... = context specific, constructor). The "linked identifier" in the Invoke
has a context specific primitive tag whilst the invoke identifier has the universal tag
B'0000 0010 = H'02 = Integer.
Further context specific primitive tags exist in Reject components only. They indicate
whether the reject was due to a general problem (e.g. a component of an unknown
type was received) or whether an Invoke, a Return Result or a Return Error was
pinpointed as erroneous.
56 TM3101EU01TM_0001
TCAP and MAP Siemens
TM3101EU01TM_0001
57
Siemens TCAP and MAP
Frequently, the tags described hitherto are insufficient for a clear identification.
1st example: SEQUENCE (IMSI OCTETSTRING,
TMSI OCTETSTRING OPTIONAL,
LAI OCTETSTRING OPTIONAL).
On reception of two elements with the tag "OCTETSTRING", the receiver cannot
identify whether it is IMSI and TMSI or IMSI and LAI.
2nd example: CHOICE (IMSI OCTETSTRING,
MSISDN OCTETSTRING).
The tag "OCTETSTRING" does not tell whether it is the IMSI or the MSISDN.
In such cases, so-called Tagged Types are introduced, i.e. the elements get a new
(as a rule context specific) tag to ensure uniqueness. Here, the tag really assumes
the role of an identifier and not just of a type indication. In the definition, the new tag
is given in square brackets.
There are two kinds of Tagged Types: explicit and implicit. With the implicit
representation (keyword IMPLICIT), the new tag replaces the old one completely.
The form of the new tag is constructor or primitive, depending on whether the old tag
was constructor or primitive.
With this, the above examples are modified as follows:
1st example: SEQUENCE (IMSI OCTETSTRING,
TMSI [1] IMPLICIT OCTETSTRING OPTIONAL,
LAI [2] IMPLICIT OCTETSTRING OPTIONAL).
Still, the IMSI has the universal primitive tag 4, but the TMSI gets the context specific
tag 1 and the LAI the context specific tag 2. Both tags have the form primitive
because OCTETSTRING is primitive.
2nd example: CHOICE (IMSI [1] IMPLICIT OCTETSTRING,
MSISDN [2] IMPLICIT OCTETSTRING).
The receiver recognizes from the context specific tag 1 or 2 (primitive) whether he
has received an IMSI or an MSISDN.
With the explicit representation (keyword EXPLICIT, or no keyword at all [default]),
the new tag is added to the old one, and the new type surrounds the old one as a
frame. The new tag has the form constructor, and the only member of the constructor
element is the element to be represented with its (former) tag.
Example: IMSI [1] OCTETSTRING (or IMSI [1] EXPLICIT OCTETSTRING).
A constructor element with the context specific tag 1 whose only member is a
primitive element with the universal tag 4 (= OCTETSTRING).
58 TM3101EU01TM_0001
TCAP and MAP Siemens
[1] INTEGER
Context, Constr., 1
1 0 1 0 0 0 0 1
Length 3 0 0 0 0 0 0 1 1
Universal, Prim., 2 (= INTEGER) 0 0 0 0 0 0 1 0
Length 1 0 0 0 0 0 0 0 1
Integer Value
[1] IMPLICIT
INTEGER
Context, Prim., 1 1 0 0 0 0 0 0 1
Length 1 0 0 0 0 0 0 0 1
Integer Value
[1] SEQUENCE
Context, Constr., 1 1 0 1 0 0 0 0 1
Length 17 0 0 0 1 0 0 0 1
Length 15 0 0 0 0 1 1 1 1
15 bytes contents
[1] IMPLICIT
SEQUENCE
Context, Constr., 1 1 0 1 0 0 0 0 1
Length 15 0 0 0 0 1 1 1 1
15 bytes contents
TM3101EU01TM_0001
59
Siemens TCAP and MAP
60 TM3101EU01TM_0001
TCAP and MAP Siemens
Operation Value
Cancel Location 3
Check IMEI 43
Prepare Handover 68
Purge MS 67
Reset 37
Restore Data 57
Send Identification 9
Update Location 2
TM3101EU01TM_0001
61
Siemens TCAP and MAP
As an example, we study the MAP operation "Update Location" whose Invoke is sent
from the VLR to the HLR when a mobile station registers in a new MSC area (cf. Fig.
6). Fig. 29 shows the excerpts from the GSM guideline 09.02, which are relevant for
this MAP operation.
UpdateLocation is defined as an OPERATION. The keyword ARGUMENT is related
to the Invoke of this operation and indicates what must be transmitted besides the
operation code. This is always one ASN.1 element; if several data must be sent, the
element is a SEQUENCE consisting of mandatory and optional members. Each
member has a name and a type (e.g. name = vlrNumber, type = ISDN-
AddressString); if it is a Tagged Type, the tag is given in square brackets (e.g. for the
LMSI). If the keyword ARGUMENT is amiss in the definition of an OPERATION, it
means that, in the Invoke, nothing must be transmitted after the operation code.
RESULT is related to the Return Result (Last) and indicates what must be
transmitted in this component beyond the invoke identifier and (possibly) the
operation code. Again, this is one ASN.1-Element, maybe a Sequence. If the
keyword RESULT is written alone, no further data must be transmitted in the Return
Result (Last); in this case the operation code is omitted, too. If, however, further data
are required in the Return Result (Last), the operation code will be included in this
component, too.
ERRORS is related to the Return Error and indicates the possible error codes of this
component. The error codes are - similar to the operation codes - integer numbers
with the tag B'0000 0010 (Universal Primitive 2 = INTEGER) and the length 1.
The class a given operation belongs to can be deducted from the keywords RESULT
and ERRORS. If both RESULT and ERRORS are present, there are both positive
and negative acknowledgments, and the operation belongs to class 1. If there is only
ERRORS but no RESULT, there are no positive acknowledgments and it is an
operation of class 2. If RESULT is present but ERRORS is not, the class is 3. If both
RESULT and ERRORS are amiss, we have an operation of class 4.
62 TM3101EU01TM_0001
TCAP and MAP Siemens
TM3101EU01TM_0001
63
Siemens TCAP and MAP
At another place of the guideline 09.02, the definition of the data types in use is found
with an reduction to the standard types of Fig. 24. According to Fig. 29, the type
"TBCD-String" is defined as an OCTETSTRING (universal, tag value = 4) whose
bytes consist of decimal digits coded in half bytes. The explanations say that the
distribution of the digits to the bytes is done as follows:
1st byte: less significant 4 bits = first digit, more significant 4 bits = second digit
2nd byte: less significant 4 bits = third digit, more significant 4 bits = fourth digit
and so on. If the amount of digits is odd, the more significant four bits of the last byte
are filled with 1111.
The type TBCD-STRING is applied to the IMSI and the length lies between 3 and 8
(i.e. 5 to 16 digits). The digits comprise MCC, MNC and MSIN.
A second application of the OCTETSTRING is the type "AddressString" with a length
between 1 and 20. The explanations say that the first byte gives information about
the type of the transmitted number. The most significant bit is 1; the three following
bits contain the Nature of Address as follows:
Nature of Address Value
international 001
national 010
network specific 011
dedicated PAD access 100
The subsequent bytes contain the digits in the same coding as with a TBCD-
STRING. Since the length is at most 20 bytes, and since one byte is spent for the
Nature of Address and for the Numbering Plan, 19 bytes remain for the digits so that
up to 38 digits can be transmitted.
A special case of the type "AddressString" is the "ISDN-AddressString"; here, the
length is restricted to 9 (= at most 16 digits). This type applies for the VLR address (in
the Invoke) and for the HLR address (in the Return Result (Last)). The Location
Info is another such ISDN-AddressString but as a Tagged Type with the context
specific tag 0 or 1, depending on whether it is a roaming number or an MSC number.
64 TM3101EU01TM_0001
TCAP and MAP Siemens
LocationInfo :: = CHOICE {
roamingNumber [0] IMPLICIT ISDN-AddressString,
-- roamingNumber must not be used in version greater 1
mscNumber [1] IMPLICIT ISDN-AddressString}
TM3101EU01TM_0001
65
Siemens TCAP and MAP
Lets consider now a special "Update Location". The Invoke is sent from the VLR to
the HLR, and its argument is a SEQUENCE according to Fig. 29; thus, it has the
universal constructor tag 16. The total length is given (in the example) with 30 bytes.
An alternative is the length indication B'1000 0000 (= indefinite); in this case, after the
last element (= after the LMSI), a pseudo element with the tag B'0000 0000 and the
length 0 would have to be added (cf. Fig. 23).
According to Fig. 30, the IMSI ensues. Indeed, the next element has the universal
primitive tag 4; thus, it is an OCTETSTRING. The length is 8 and the digits (as a
TBCD-String) are 262017708154711, which is combined from the MCC (262), the
MNC (01) and the MSIN (7708154711). The last half byte is filled with B'1111.
The example illustrates that the tag only indicates the type (in our case:
OCTETSTRING) but not the meaning. The facts that the OCTETSTRING is the IMSI,
must be read as a TBCD-String and comprises MCC, MNC and MSIN results from
the study of the guideline (here: GSM 09.02) only.
As it can be seen from Fig. 30, the Location Info ensues. The Location Info is a
CHOICE type; the context specific primitive tag 1 reveals that it is the MSC number.
The length is 5. The following bytes identify the number as an international number
according to the ISDN Number Plan E.163 / 164. The digits are 35112345 (this is a
number in Portugal because of the country code 351).
66 TM3101EU01TM_0001
TCAP and MAP Siemens
Length 30 0 0 0 1 1 1 1 0
IMSI Length 8 0 0 0 0 1 0 0 0
MCC 262 0 1 1 0 0 0 1 0
MNC 01 0 0 0 0 0 0 1 0
MSIN 7708154711 0 1 1 1 0 0 0 1
0 0 0 0 0 1 1 1
0 0 0 1 1 0 0 0
0 1 0 0 0 1 0 1
0 0 0 1 0 1 1 1
Filler 1 1 1 1 0 0 0 1
Length 5 0 0 0 0 0 1 0 1
Number 35112345 0 1 0 1 0 0 1 1
Location Info 0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 0
TM3101EU01TM_0001
67
Siemens TCAP and MAP
Next, the VLR number (an ISDN-Address-String) ensues according to Fig. 30. The
tag is universal, primitive, and its value is 4; thus, it is again an OCTETSTRING. The
length is 5 bytes. Once again, it is an international ISDN number. This time, the digit
sequence is 35112345 (Portugal again).
The last member of the Sequence is the optional member "LMSI". As a mark for its
presence, we find the context specific primitive tag 10. The length is 4. In the
subsequent 4 bytes, the value of the LMSI is contained.
With this, the SEQUENCE is terminated. It can be seen that the four members (IMSI,
Location Info, VLR-Address and LMSI) have a total length (including tags and length
indicators) of 30 bytes, as was indicated initially.
68 TM3101EU01TM_0001
TCAP and MAP Siemens
Lenght 5 0 0 0 0 0 1 0 1
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 0
0 1 0 1 0 1 0 0
Length 4 0 0 0 0 0 1 0 0
LMSI
Value
of the
LMSI
TM3101EU01TM_0001
69
Siemens TCAP and MAP
The entire Invoke component for "Update Location" is displayed on Fig. 33; the
layout meets the demands of the ITU recommendation Q.773. The component has a
context specific constructor tag according Fig. 26, which marks it as an Invoke. In
our example (Fig. 31and Fig. 32), a component length of 38 bytes results. Again, it is
possible to use an indefinite length indicator.
The component is constructed like a Sequence and has the following members:
l Mandatory member Invoke Identifier with universal primitive tag 2 (= INTEGER);
length 1 byte
l Optional member Linked Identifier with context specific primitive tag 0; length 1
byte
l Mandatory member Operation Code with universal primitive tag 2 (= INTEGER);
length 1 byte
l Optional member Argument; Tag according to the parameter type (here:
SEQUENCE).
In Fig. 33, after the length indicator, the invoke identifier of one byte length can be
seen. No linked identifier is required; thus, the following element has not the context
specific tag 0 but the universal primitive tag 2 (INTEGER, here: Operation Code). The
value is 2, which identifies the operation "Update Location" (see Fig. 28).
Finally, the argument according to Fig. 31and Fig. 32 ensues with its tag (universal,
constructor, 16, i.e. SEQUENCE), its length indicator (30) and its members.
70 TM3101EU01TM_0001
TCAP and MAP Siemens
Lenght 38 0 0 1 0 0 1 1 0
TM3101EU01TM_0001
71
Siemens TCAP and MAP
Let us consider, at long last, the entire message Begin from the HLR to the VLR
containing the Invoke for "Update Location". The tag, which characterizes the
message as a Begin is an application specific one; its value corresponds to Fig. 25.
This time, for the sake of variation, we employ a representation with indefinite length,
i.e. the length indicator is B'1000 0000.
The Begin is structured like a Sequence, too. It has two members: the mandatory
member Origination Transaction Identity (application specific primitive tag 8, cf. Fig.
25) and the optional member Component Portion (application specific constructor tag
12, cf. Fig. 25).
The transaction identities have a length between 1 and 4 bytes. We take an
origination transaction identity of two bytes.
Their now follows the component portion with a length indicator of 40 bytes (again, an
indefinite length indicator would be possible). The element contains the Invoke
component from Fig. 33 with its tag, its length indicator (38) and its contents.
Finally, the Begin is terminated with "End of Constructor" because an indefinite
length indicator was used.
This Begin message is built as "Data" parameter of 50 bytes total length into an
SCCP message "Unitdata" (UDT).
72 TM3101EU01TM_0001
TCAP and MAP Siemens
indefinite length 1 0 0 0 0 0 0 0
Length 2 0 0 0 0 0 0 1 0
Length 40 0 0 1 0 1 0 0 0
Invoke compoenent
Component with tag, length, indicator,
Portion invoke identifier,
operation code
and argument
(see fig. 33)
Fig. 34 Begin message with Invoke component for "Update Location" (Example without Dialogue Portion)
TM3101EU01TM_0001
73
Siemens TCAP and MAP
74 TM3101EU01TM_0001
TCAP and MAP Siemens
4 Exercise
TM3101EU01TM_0001
75
Siemens TCAP and MAP
76 TM3101EU01TM_0001
TCAP and MAP Siemens
Exercise
1. What is the difference between transaction identity and invoke identifier?
3. Mark which components can exist for the four classes of operation!
class 1 2 3 4
component
Invoke
Return Result (Last)
Return Error
Reject
4. For a mobile station, a Handover from MSC A to MSC B has been executed.
How can MSC A still exchange MM and CM messages with the mobile
station?
TM3101EU01TM_0001
77
Siemens TCAP and MAP
6. A given type gets a new tag as a "Tagged Type" (explicit or implicit). Is the
new type formed in this manner constructor or primitive?
78 TM3101EU01TM_0001
TCAP and MAP Siemens
65 5F 48 04 A3 20 00 1C 49 04
B7 69 35 0F 6C 51 A1 35 02 01
02 02 01 07 30 2D 30 2B 81 07
91 94 71 92 78 56 34 A6 06 04
01 11 04 01 62 A7 18 A0 16 04
01 2B 30 11 30 0F 83 01 11 85
07 91 94 98 27 42 31 71 86 01
80 A1 18 02 01 03 02 01 07 30
10 30 0E A7 0C A1 0A 04 01 93
30 05 30 03 83 01 62
TM3101EU01TM_0001
79
Siemens TCAP and MAP
80 TM3101EU01TM_0001
TCAP and MAP Siemens
5 Solution
TM3101EU01TM_0001
81
Siemens TCAP and MAP
82 TM3101EU01TM_0001
TCAP and MAP Siemens
Solution
1. What is the difference between transaction identity and invoke identifier?
Transaction Identity:
(up to) two per transaction; valid for the whole duration of the
transaction; length 1 to 4 bytes
Invoke Identifier:
one per invoke; valid only for the invoke and its response; length 1 byte
3. Mark which components can exist for the four classes of operation!
class 1 2 3 4
component
Invoke X X X X
Return Result X X
(Last)
Return Error X X
Reject X X X X
4. For a mobile station, a Handover from MSC A to MSC B has been executed.
How can MSC A still exchange MM and CM messages with the mobile
station?
MSC A sends MM and CM messages with Invoke "Forward Access
Signaling" to MSC B; MSC B forwards the messages to the mobile
station.
MSC B uses Invoke "Process Access Signaling" to forward to MSC A all
MM and CM messages received from the mobile station.
TM3101EU01TM_0001
83
Siemens TCAP and MAP
6. A given type gets a new tag as a "Tagged Type" (explicit or implicit). Is the
new type formed in this manner constructor or primitive?
Explicit: constructor always
Implicit: depends on whether the original type was constructor or
primitive
84 TM3101EU01TM_0001