\doxysection{gsm\+\_\+44\+\_\+068.\+h}
\label{gsm__44__068_8h_source}\index{include/osmocom/gsm/protocol/gsm\_44\_068.h@{include/osmocom/gsm/protocol/gsm\_44\_068.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{3 \textcolor{preprocessor}{\#include <osmocom/core/utils.h>}}
\DoxyCodeLine{4 }
\DoxyCodeLine{5 \textcolor{comment}{/* Group Call Control (GCC) is an ETSI/3GPP standard protocol used between}}
\DoxyCodeLine{6 \textcolor{comment}{ * MS (Mobile Station) and MSC (Mobile Switchting Center) in 2G/GSM-\/R network.}}
\DoxyCodeLine{7 \textcolor{comment}{ * It is specified in 3GPP TS 44.068.}}
\DoxyCodeLine{8 \textcolor{comment}{ *}}
\DoxyCodeLine{9 \textcolor{comment}{ * (C) 2023 by Sysmocom s.f.m.c. GmbH}}
\DoxyCodeLine{10 \textcolor{comment}{ * All Rights Reserved}}
\DoxyCodeLine{11 \textcolor{comment}{ *}}
\DoxyCodeLine{12 \textcolor{comment}{ * Author: Andreas Eversberg}}
\DoxyCodeLine{13 \textcolor{comment}{ *}}
\DoxyCodeLine{14 \textcolor{comment}{ * This program is free software; you can redistribute it and/or modify}}
\DoxyCodeLine{15 \textcolor{comment}{ * it under the terms of the GNU General Public License as published by}}
\DoxyCodeLine{16 \textcolor{comment}{ * the Free Software Foundation; either version 2 of the License, or}}
\DoxyCodeLine{17 \textcolor{comment}{ * (at your option) any later version.}}
\DoxyCodeLine{18 \textcolor{comment}{ *}}
\DoxyCodeLine{19 \textcolor{comment}{ * This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{20 \textcolor{comment}{ * but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{21 \textcolor{comment}{ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{22 \textcolor{comment}{ * GNU General Public License for more details.}}
\DoxyCodeLine{23 \textcolor{comment}{ *}}
\DoxyCodeLine{24 \textcolor{comment}{ * You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{25 \textcolor{comment}{ * along with this program.  If not, see <http://www.gnu.org/licenses/>.}}
\DoxyCodeLine{26 \textcolor{comment}{ *}}
\DoxyCodeLine{27 \textcolor{comment}{ * SPDX-\/License-\/Identifier: GPL-\/2.0+}}
\DoxyCodeLine{28 \textcolor{comment}{ */}}
\DoxyCodeLine{29 }
\DoxyCodeLine{30 \textcolor{comment}{/* 9 Information Element Identifiers */}}
\DoxyCodeLine{31 \textcolor{keyword}{enum} osmo\_gsm44068\_iei \{}
\DoxyCodeLine{32         OSMO\_GSM44068\_IEI\_MOBILE\_IDENTITY              = 0x17,}
\DoxyCodeLine{33         OSMO\_GSM44068\_IEI\_USER\_USER                  = 0x7E,}
\DoxyCodeLine{34         OSMO\_GSM44068\_IEI\_CALL\_STATE                        = 0xA0,}
\DoxyCodeLine{35         OSMO\_GSM44068\_IEI\_STATE\_ATTRIBUTES            = 0xB0,}
\DoxyCodeLine{36         OSMO\_GSM44068\_IEI\_TALKER\_PRIORITY              = 0xC0,}
\DoxyCodeLine{37         OSMO\_GSM44068\_IEI\_SMS\_INDICATIONS              = 0xD0,}
\DoxyCodeLine{38 \};}
\DoxyCodeLine{39 }
\DoxyCodeLine{40 \textcolor{comment}{/* 9.3 Message Type */}}
\DoxyCodeLine{41 \textcolor{keyword}{enum} osmo\_gsm44068\_msg\_type \{}
\DoxyCodeLine{42         OSMO\_GSM44068\_MSGT\_IMMEDIATE\_SETUP            = 0x31,}
\DoxyCodeLine{43         OSMO\_GSM44068\_MSGT\_SETUP                        = 0x32,}
\DoxyCodeLine{44         OSMO\_GSM44068\_MSGT\_CONNECT                    = 0x33,}
\DoxyCodeLine{45         OSMO\_GSM44068\_MSGT\_TERMINATION                    = 0x34,}
\DoxyCodeLine{46         OSMO\_GSM44068\_MSGT\_TERMINATION\_REQUEST            = 0x35,}
\DoxyCodeLine{47         OSMO\_GSM44068\_MSGT\_TERMINATION\_REJECT              = 0x36,}
\DoxyCodeLine{48         OSMO\_GSM44068\_MSGT\_STATUS                      = 0x38,}
\DoxyCodeLine{49         OSMO\_GSM44068\_MSGT\_GET\_STATUS                      = 0x39,}
\DoxyCodeLine{50         OSMO\_GSM44068\_MSGT\_SET\_PARAMETER                = 0x3a,}
\DoxyCodeLine{51         OSMO\_GSM44068\_MSGT\_IMMEDIATE\_SETUP\_2                = 0x3b,}
\DoxyCodeLine{52 \};}
\DoxyCodeLine{53 }
\DoxyCodeLine{54 \textcolor{comment}{/* Table 9.2 priority */}}
\DoxyCodeLine{55 \textcolor{keyword}{enum} osmo\_gsm44068\_priority\_level \{}
\DoxyCodeLine{56         OSMO\_GSM44068\_PRIO\_LEVEL\_4                    = 0x1,}
\DoxyCodeLine{57         OSMO\_GSM44068\_PRIO\_LEVEL\_3                    = 0x2,}
\DoxyCodeLine{58         OSMO\_GSM44068\_PRIO\_LEVEL\_2                    = 0x3,}
\DoxyCodeLine{59         OSMO\_GSM44068\_PRIO\_LEVEL\_1                    = 0x4,}
\DoxyCodeLine{60         OSMO\_GSM44068\_PRIO\_LEVEL\_0                    = 0x5,}
\DoxyCodeLine{61         OSMO\_GSM44068\_PRIO\_LEVEL\_B                    = 0x6,}
\DoxyCodeLine{62         OSMO\_GSM44068\_PRIO\_LEVEL\_A                    = 0x7,}
\DoxyCodeLine{63 \};}
\DoxyCodeLine{64 }
\DoxyCodeLine{65 \textcolor{comment}{/* 9.4.2 Call State */}}
\DoxyCodeLine{66 \textcolor{keyword}{enum} osmo\_gsm44068\_call\_state \{}
\DoxyCodeLine{67         OSMO\_GSM44068\_CSTATE\_U0                          = 0x0,}
\DoxyCodeLine{68         OSMO\_GSM44068\_CSTATE\_U1                          = 0x1,}
\DoxyCodeLine{69         OSMO\_GSM44068\_CSTATE\_U2sl\_U2                        = 0x2,}
\DoxyCodeLine{70         OSMO\_GSM44068\_CSTATE\_U3                          = 0x3,}
\DoxyCodeLine{71         OSMO\_GSM44068\_CSTATE\_U4                          = 0x4,}
\DoxyCodeLine{72         OSMO\_GSM44068\_CSTATE\_U5                          = 0x5,}
\DoxyCodeLine{73         OSMO\_GSM44068\_CSTATE\_U0p                        = 0x6,}
\DoxyCodeLine{74         OSMO\_GSM44068\_CSTATE\_U2wr\_U6                        = 0x7,}
\DoxyCodeLine{75         OSMO\_GSM44068\_CSTATE\_U2r                        = 0x8,}
\DoxyCodeLine{76         OSMO\_GSM44068\_CSTATE\_U2ws                      = 0x9,}
\DoxyCodeLine{77         OSMO\_GSM44068\_CSTATE\_U2sr                      = 0xa,}
\DoxyCodeLine{78         OSMO\_GSM44068\_CSTATE\_U2nc                      = 0xb,}
\DoxyCodeLine{79 \};}
\DoxyCodeLine{80 }
\DoxyCodeLine{81 \textcolor{comment}{/* 9.4.3 Cause */}}
\DoxyCodeLine{82 \textcolor{keyword}{enum} osmo\_gsm44068\_cause \{}
\DoxyCodeLine{83         OSMO\_GSM44068\_CAUSE\_ILLEGAL\_MS                    = 0x03,}
\DoxyCodeLine{84         OSMO\_GSM44068\_CAUSE\_IMEI\_NOT\_ACCEPTED              = 0x05,}
\DoxyCodeLine{85         OSMO\_GSM44068\_CAUSE\_ILLEGAL\_ME                    = 0x06,}
\DoxyCodeLine{86         OSMO\_GSM44068\_CAUSE\_SERVICE\_NOT\_AUTHORIZED    = 0x08,}
\DoxyCodeLine{87         OSMO\_GSM44068\_CAUSE\_APP\_NOT\_SUPPORTED\_ON\_PROTO    = 0x09,}
\DoxyCodeLine{88         OSMO\_GSM44068\_CAUSE\_RR\_CONNECTION\_ABORTED      = 0x0a,}
\DoxyCodeLine{89         OSMO\_GSM44068\_CAUSE\_NORMAL\_CALL\_CLEARING        = 0x10,}
\DoxyCodeLine{90         OSMO\_GSM44068\_CAUSE\_NETWORK\_FAILURE          = 0x11,}
\DoxyCodeLine{91         OSMO\_GSM44068\_CAUSE\_BUSY                        = 0x14,}
\DoxyCodeLine{92         OSMO\_GSM44068\_CAUSE\_CONGESTION                    = 0x16,}
\DoxyCodeLine{93         OSMO\_GSM44068\_CAUSE\_USER\_NOT\_ORIGINATOR          = 0x17,}
\DoxyCodeLine{94         OSMO\_GSM44068\_CAUSE\_NET\_WANTS\_TO\_MAINTAIN\_CALL    = 0x18,}
\DoxyCodeLine{95         OSMO\_GSM44068\_CAUSE\_RESPONSE\_TO\_GET\_STATUS    = 0x1e,}
\DoxyCodeLine{96         OSMO\_GSM44068\_CAUSE\_SERVICE\_OPTION\_NOT\_SUBSCR      = 0x20,}
\DoxyCodeLine{97         OSMO\_GSM44068\_CAUSE\_REQUESTED\_SERVICE\_NOT\_SUB      = 0x21,}
\DoxyCodeLine{98         OSMO\_GSM44068\_CAUSE\_SERVICE\_OPTION\_OOO            = 0x22,}
\DoxyCodeLine{99         OSMO\_GSM44068\_CAUSE\_CALL\_CANNOT\_BE\_IDENTIFIED      = 0x26,}
\DoxyCodeLine{100         OSMO\_GSM44068\_CAUSE\_RETRY\_UPON\_ENTRY\_NEW\_CALL      = 0x30, \textcolor{comment}{/* up to 0x3f */}}
\DoxyCodeLine{101         OSMO\_GSM44068\_CAUSE\_INVALID\_TRANSACTION\_ID    = 0x51,}
\DoxyCodeLine{102         OSMO\_GSM44068\_CAUSE\_SEMANTICALLY\_INCORRECT\_MSG    = 0x5f,}
\DoxyCodeLine{103         OSMO\_GSM44068\_CAUSE\_INVALID\_MANDATORY\_INFO    = 0x60,}
\DoxyCodeLine{104         OSMO\_GSM44068\_CAUSE\_MESSAGE\_TYPE\_NON\_EXISTENT      = 0x61,}
\DoxyCodeLine{105         OSMO\_GSM44068\_CAUSE\_MESSAGE\_TYPE\_NOT\_COMPAT  = 0x62,}
\DoxyCodeLine{106         OSMO\_GSM44068\_CAUSE\_IE\_NON\_EXISTENT          = 0x63,}
\DoxyCodeLine{107         OSMO\_GSM44068\_CAUSE\_IE\_NOT\_COMPAT              = 0x64,}
\DoxyCodeLine{108         OSMO\_GSM44068\_CAUSE\_PROTOCOL\_ERROR            = 0x70,}
\DoxyCodeLine{109 \};}
\DoxyCodeLine{110 }
\DoxyCodeLine{111 \textcolor{comment}{/* 9.4.4 Originator Indication */}}
\DoxyCodeLine{112 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_OI\_MS\_IS\_ORIGINATOR               0x01}}
\DoxyCodeLine{113 }
\DoxyCodeLine{114 \textcolor{comment}{/* 9.4.7 State Attributes */}}
\DoxyCodeLine{115 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_DA\_DOWNLINK\_ATTACHED              0x08}}
\DoxyCodeLine{116 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_UA\_UPLINK\_ATTACHED                0x04}}
\DoxyCodeLine{117 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_COMM\_T                            0x02}}
\DoxyCodeLine{118 }
\DoxyCodeLine{119 \textcolor{comment}{/* 9.4.9 Talker Priority */}}
\DoxyCodeLine{120 \textcolor{keyword}{enum} osmo\_gsm44068\_talker\_priority \{}
\DoxyCodeLine{121         OSMO\_GSM44068\_PRIO\_NORMAL                      = 0x0,}
\DoxyCodeLine{122         OSMO\_GSM44068\_PRIO\_PRIVILEGED                      = 0x1,}
\DoxyCodeLine{123         OSMO\_GSM44068\_PRIO\_EMERGENCY                        = 0x2,}
\DoxyCodeLine{124 \};}
\DoxyCodeLine{125 }
\DoxyCodeLine{126 \textcolor{comment}{/* 9.4.10 SMS Indications */}}
\DoxyCodeLine{127 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_DC\_DATA\_CONFIDENTALLY\_RQD         0x02}}
\DoxyCodeLine{128 \textcolor{preprocessor}{\#define OSMO\_GSM44068\_GP\_GUARANTEED\_PRIVACY\_RQD         0x01}}
\DoxyCodeLine{129 }
\DoxyCodeLine{130 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_gsm44068\_msg\_type\_names[];}
\DoxyCodeLine{131 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_gsm44068\_priority\_level\_names[];}
\DoxyCodeLine{132 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_gsm44068\_cause\_names[];}
\DoxyCodeLine{133 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_gsm44068\_call\_state\_names[];}
\DoxyCodeLine{134 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_gsm44068\_talker\_priority\_names[];}
\DoxyCodeLine{135 }
\DoxyCodeLine{136 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }tlv\_definition osmo\_gsm44068\_att\_tlvdef;}

\end{DoxyCode}
