libosmogsm  1.9.0.158-3938d.202402282026
Osmocom GSM library
gsm_44_068.h
Go to the documentation of this file.
1 #pragma once
2 #include <stdint.h>
3 #include <osmocom/core/utils.h>
4 
5 /* Group Call Control (GCC) is an ETSI/3GPP standard protocol used between
6  * MS (Mobile Station) and MSC (Mobile Switchting Center) in 2G/GSM-R network.
7  * It is specified in 3GPP TS 44.068.
8  *
9  * (C) 2023 by Sysmocom s.f.m.c. GmbH
10  * All Rights Reserved
11  *
12  * Author: Andreas Eversberg
13  *
14  * This program is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 2 of the License, or
17  * (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program. If not, see <http://www.gnu.org/licenses/>.
26  *
27  * SPDX-License-Identifier: GPL-2.0+
28  */
29 
30 /* 9 Information Element Identifiers */
38 };
39 
40 /* 9.3 Message Type */
52 };
53 
54 /* Table 9.2 priority */
63 };
64 
65 /* 9.4.2 Call State */
79 };
80 
81 /* 9.4.3 Cause */
109 };
110 
111 /* 9.4.4 Originator Indication */
112 #define OSMO_GSM44068_OI_MS_IS_ORIGINATOR 0x01
113 
114 /* 9.4.7 State Attributes */
115 #define OSMO_GSM44068_DA_DOWNLINK_ATTACHED 0x08
116 #define OSMO_GSM44068_UA_UPLINK_ATTACHED 0x04
117 #define OSMO_GSM44068_COMM_T 0x02
118 
119 /* 9.4.9 Talker Priority */
124 };
125 
126 /* 9.4.10 SMS Indications */
127 #define OSMO_GSM44068_DC_DATA_CONFIDENTALLY_RQD 0x02
128 #define OSMO_GSM44068_GP_GUARANTEED_PRIVACY_RQD 0x01
129 
130 extern const struct value_string osmo_gsm44068_msg_type_names[];
132 extern const struct value_string osmo_gsm44068_cause_names[];
133 extern const struct value_string osmo_gsm44068_call_state_names[];
135 
136 extern const struct tlv_definition osmo_gsm44068_att_tlvdef;
const struct value_string osmo_gsm44068_priority_level_names[]
Definition: gsm44068.c:48
const struct value_string osmo_gsm44068_call_state_names[]
Definition: gsm44068.c:89
const struct tlv_definition osmo_gsm44068_att_tlvdef
Definition: gsm44068.c:112
const struct value_string osmo_gsm44068_talker_priority_names[]
Definition: gsm44068.c:105
osmo_gsm44068_cause
Definition: gsm_44_068.h:82
@ OSMO_GSM44068_CAUSE_IE_NON_EXISTENT
Definition: gsm_44_068.h:106
@ OSMO_GSM44068_CAUSE_SERVICE_OPTION_OOO
Definition: gsm_44_068.h:98
@ OSMO_GSM44068_CAUSE_IMEI_NOT_ACCEPTED
Definition: gsm_44_068.h:84
@ OSMO_GSM44068_CAUSE_INVALID_TRANSACTION_ID
Definition: gsm_44_068.h:101
@ OSMO_GSM44068_CAUSE_NET_WANTS_TO_MAINTAIN_CALL
Definition: gsm_44_068.h:94
@ OSMO_GSM44068_CAUSE_RESPONSE_TO_GET_STATUS
Definition: gsm_44_068.h:95
@ OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NOT_COMPAT
Definition: gsm_44_068.h:105
@ OSMO_GSM44068_CAUSE_CONGESTION
Definition: gsm_44_068.h:92
@ OSMO_GSM44068_CAUSE_SERVICE_OPTION_NOT_SUBSCR
Definition: gsm_44_068.h:96
@ OSMO_GSM44068_CAUSE_ILLEGAL_ME
Definition: gsm_44_068.h:85
@ OSMO_GSM44068_CAUSE_NORMAL_CALL_CLEARING
Definition: gsm_44_068.h:89
@ OSMO_GSM44068_CAUSE_PROTOCOL_ERROR
Definition: gsm_44_068.h:108
@ OSMO_GSM44068_CAUSE_BUSY
Definition: gsm_44_068.h:91
@ OSMO_GSM44068_CAUSE_APP_NOT_SUPPORTED_ON_PROTO
Definition: gsm_44_068.h:87
@ OSMO_GSM44068_CAUSE_CALL_CANNOT_BE_IDENTIFIED
Definition: gsm_44_068.h:99
@ OSMO_GSM44068_CAUSE_SEMANTICALLY_INCORRECT_MSG
Definition: gsm_44_068.h:102
@ OSMO_GSM44068_CAUSE_RR_CONNECTION_ABORTED
Definition: gsm_44_068.h:88
@ OSMO_GSM44068_CAUSE_USER_NOT_ORIGINATOR
Definition: gsm_44_068.h:93
@ OSMO_GSM44068_CAUSE_INVALID_MANDATORY_INFO
Definition: gsm_44_068.h:103
@ OSMO_GSM44068_CAUSE_REQUESTED_SERVICE_NOT_SUB
Definition: gsm_44_068.h:97
@ OSMO_GSM44068_CAUSE_ILLEGAL_MS
Definition: gsm_44_068.h:83
@ OSMO_GSM44068_CAUSE_NETWORK_FAILURE
Definition: gsm_44_068.h:90
@ OSMO_GSM44068_CAUSE_RETRY_UPON_ENTRY_NEW_CALL
Definition: gsm_44_068.h:100
@ OSMO_GSM44068_CAUSE_MESSAGE_TYPE_NON_EXISTENT
Definition: gsm_44_068.h:104
@ OSMO_GSM44068_CAUSE_IE_NOT_COMPAT
Definition: gsm_44_068.h:107
@ OSMO_GSM44068_CAUSE_SERVICE_NOT_AUTHORIZED
Definition: gsm_44_068.h:86
osmo_gsm44068_call_state
Definition: gsm_44_068.h:66
@ OSMO_GSM44068_CSTATE_U0
Definition: gsm_44_068.h:67
@ OSMO_GSM44068_CSTATE_U5
Definition: gsm_44_068.h:72
@ OSMO_GSM44068_CSTATE_U2wr_U6
Definition: gsm_44_068.h:74
@ OSMO_GSM44068_CSTATE_U2sl_U2
Definition: gsm_44_068.h:69
@ OSMO_GSM44068_CSTATE_U2nc
Definition: gsm_44_068.h:78
@ OSMO_GSM44068_CSTATE_U2ws
Definition: gsm_44_068.h:76
@ OSMO_GSM44068_CSTATE_U2r
Definition: gsm_44_068.h:75
@ OSMO_GSM44068_CSTATE_U4
Definition: gsm_44_068.h:71
@ OSMO_GSM44068_CSTATE_U0p
Definition: gsm_44_068.h:73
@ OSMO_GSM44068_CSTATE_U3
Definition: gsm_44_068.h:70
@ OSMO_GSM44068_CSTATE_U1
Definition: gsm_44_068.h:68
@ OSMO_GSM44068_CSTATE_U2sr
Definition: gsm_44_068.h:77
const struct value_string osmo_gsm44068_cause_names[]
Definition: gsm44068.c:59
osmo_gsm44068_msg_type
Definition: gsm_44_068.h:41
@ OSMO_GSM44068_MSGT_TERMINATION_REQUEST
Definition: gsm_44_068.h:46
@ OSMO_GSM44068_MSGT_CONNECT
Definition: gsm_44_068.h:44
@ OSMO_GSM44068_MSGT_STATUS
Definition: gsm_44_068.h:48
@ OSMO_GSM44068_MSGT_GET_STATUS
Definition: gsm_44_068.h:49
@ OSMO_GSM44068_MSGT_IMMEDIATE_SETUP_2
Definition: gsm_44_068.h:51
@ OSMO_GSM44068_MSGT_SETUP
Definition: gsm_44_068.h:43
@ OSMO_GSM44068_MSGT_SET_PARAMETER
Definition: gsm_44_068.h:50
@ OSMO_GSM44068_MSGT_IMMEDIATE_SETUP
Definition: gsm_44_068.h:42
@ OSMO_GSM44068_MSGT_TERMINATION
Definition: gsm_44_068.h:45
@ OSMO_GSM44068_MSGT_TERMINATION_REJECT
Definition: gsm_44_068.h:47
osmo_gsm44068_priority_level
Definition: gsm_44_068.h:55
@ OSMO_GSM44068_PRIO_LEVEL_A
Definition: gsm_44_068.h:62
@ OSMO_GSM44068_PRIO_LEVEL_1
Definition: gsm_44_068.h:59
@ OSMO_GSM44068_PRIO_LEVEL_4
Definition: gsm_44_068.h:56
@ OSMO_GSM44068_PRIO_LEVEL_B
Definition: gsm_44_068.h:61
@ OSMO_GSM44068_PRIO_LEVEL_0
Definition: gsm_44_068.h:60
@ OSMO_GSM44068_PRIO_LEVEL_3
Definition: gsm_44_068.h:57
@ OSMO_GSM44068_PRIO_LEVEL_2
Definition: gsm_44_068.h:58
osmo_gsm44068_talker_priority
Definition: gsm_44_068.h:120
@ OSMO_GSM44068_PRIO_NORMAL
Definition: gsm_44_068.h:121
@ OSMO_GSM44068_PRIO_EMERGENCY
Definition: gsm_44_068.h:123
@ OSMO_GSM44068_PRIO_PRIVILEGED
Definition: gsm_44_068.h:122
osmo_gsm44068_iei
Definition: gsm_44_068.h:31
@ OSMO_GSM44068_IEI_TALKER_PRIORITY
Definition: gsm_44_068.h:36
@ OSMO_GSM44068_IEI_SMS_INDICATIONS
Definition: gsm_44_068.h:37
@ OSMO_GSM44068_IEI_CALL_STATE
Definition: gsm_44_068.h:34
@ OSMO_GSM44068_IEI_MOBILE_IDENTITY
Definition: gsm_44_068.h:32
@ OSMO_GSM44068_IEI_USER_USER
Definition: gsm_44_068.h:33
@ OSMO_GSM44068_IEI_STATE_ATTRIBUTES
Definition: gsm_44_068.h:35
const struct value_string osmo_gsm44068_msg_type_names[]
Definition: gsm44068.c:34
Definition of All 256 IE / TLV.
Definition: tlv.h:527