1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
GSUP messages on the E-interface (MSC<->MSC)
============================================
Draft blueprint of requried IEs.
Interesting specs
-----------------
- 3GPP TS 29.010
- 3GPP TS 29.002
Message sequences
-----------------
MSC-A=MSC-I MSC-B=MSC-T (MSC-T: transitional MSC, with a potential RAN connection)
------------------> request prepareHandover (an_apdu == Handover Request)
<------------------ response prepareHandover (an_apdu == Handover Request Ack)
<------------------ request processAccessSignalling (an_apdu == Handover Detect)
<------------------ request sendEndSignal (an_apdu == Handover Complete)
MSC-B=MSC-I (MSC-I: internal MSC, the one with the active RAN connection)
MSC-A MSC-B=MSC-I MSC-B'=MSC-T
<------------------ request prepareSubsequentHandover (an_apdu == Handover Required)
------------------------------------------> request prepareHandover (an_apdu == Handover Request)
<------------------------------------------ response prepareHandover (an_apdu == Handover Request Ack)
------------------> response prepareSubsequentHandover (an_apdu == Handover Request Ack)
<------------------------------------------ request processAccessSignalling (an_apdu == Handover Detect)
<------------------------------------------ request processAccessSignalling (an_apdu == Handover Complete)
------------------> request close
MSC-B clears MSC-B'=MSC-I
MSC-A MSC-B=MSC-I
------------------> request forwardAccessSignalling (an_apdu == DTAP, e.g. CC, SMS, ...)
<------------------ request processAccessSignalling (an_apdu == DTAP, e.g. CC, SMS, ...)
------------------> source_name=MSC-A; destination_name=MSC-B
<------------------ source_name=MSC-B; destination_name=MSC-A
GSUP Message Contents
---------------------
Prefix these messages to mark them as part of the E-interface; e.g.
OSMO_GSUP_MSGT_E_PREPARE_HANDOVER.
message_type:
[prepareHandover|prepareSubsequentHandover|sendEndSignal]x{Request,Error,Result}
[processAccessSignalling|forwardAccessSignalling|close|abort] (x{Request})
imsi: BCD (handle to associate with subscriber connection)
source_name: blob (string: osmo-msc: sender's gsmnet->msc_ipa_name, to route messages)
destination_name: blob (string: osmo-msc: IPA_NAME as in https://gerrit.osmocom.org/c/osmo-msc/+/12446, or received from previous source_name IE)
session_state: osmo_gsup_session_state
session_id: uint32_t
handover_number: (MSC-A <-- MSC-B, Handover Request Ack)
extension: [Extension=0|NoExtension=1] (1 bit; should currently always be == 1)
nature_of_nr: [GSM340_TYPE_NATIONAL|GSM340_TYPE_INTERNATIONAL|...] (3 bit)
number_plan: GSM340_PLAN_ISDN (4 bit)
msisdn: BCD
an_apdu:
access_network_proto: [ts3G-48006=1|ts3G-25413=2] (i.e. BSSAP or RANAP; 1 byte value; 3GPP 29.002 AccessNetworkProtocolId)
data: blob up to 2560 bytes (complete BSSAP or RANAP message; 3GPP 29.002 LongSignalInfo)
cause_rr: enum gsm48_rr_cause (3GPP TS 44.018 10.5.2.31) (for 'abort' message type or 'Error' responses)
cause_bssap: enum gsm0808_cause (3GPP TS 48.008 3.2.2.5) (for 'abort' message type or 'Error' responses)
cause_sm: enum gsm48_gsm_cause (3GPP TS 24.008 10.5.6.6 / Table 10.5.157) (for 'abort' message type or 'Error' responses)
Of which are newly added message IEs:
- source_name
- target_name
- handover_number
- an_apdu
- cause_*
GSUP Message Contents, maybe added at a later stage
---------------------------------------------------
So far this information is only in-band in the BSSAP/RANAP messages.
There is currently no need to copy them to the GSUP message structures.
target_cell_id: osmo_cell_global_id (MSC-A --> MSC-B, Handover Request)
encryption_info: gsm0808_encrypt_info
integrity_protection_info: gsm0808_encrypt_info
aoip_supported_codecs: gsm0808_speech_codec_list
...
|