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