annotate include/mncc.h @ 124:7e04d28fae8b

sip-in: default use-100rel to no BulkVS servers act badly when we send a reliable 180 Ringing response to an incoming call, even though they advertise 100rel support in the Supported header in the INVITE packet, and we probably won't be implementing 100rel for outbound because doing per-the-spec PRACK as a UAC is just too burdensome. Therefore, we need to consider 100rel extension as not-really-supported in themwi-system-sw.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 01 Oct 2022 15:54:50 -0800
parents 5b0f685fd2ed
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This header file defines the MNCC interface for passing call control
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * into and out of Osmocom GSM network. It has been put together by
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * assembling bits from several different Osmocom header files.
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #ifndef __MNCC_H
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #define __MNCC_H
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #define GSM_MAX_FACILITY 128
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #define GSM_MAX_SSVERSION 128
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #define GSM_MAX_USERUSER 128
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 /* GSM 04.08 Bearer Capability: Information Transfer Capability */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 enum gsm48_bcap_itcap {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 GSM48_BCAP_ITCAP_SPEECH = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 GSM48_BCAP_ITCAP_UNR_DIG_INF = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 GSM48_BCAP_ITCAP_3k1_AUDIO = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 GSM48_BCAP_ITCAP_FAX_G3 = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 GSM48_BCAP_ITCAP_OTHER = 5,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 GSM48_BCAP_ITCAP_RESERVED = 7,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 /* GSM 04.08 Bearer Capability: Transfer Mode */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 enum gsm48_bcap_tmod {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 GSM48_BCAP_TMOD_CIRCUIT = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 GSM48_BCAP_TMOD_PACKET = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 /* GSM 04.08 Bearer Capability: Coding Standard */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 enum gsm48_bcap_coding {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 GSM48_BCAP_CODING_GSM_STD = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 /* GSM 04.08 Bearer Capability: Radio Channel Requirements */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 enum gsm48_bcap_rrq {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 GSM48_BCAP_RRQ_FR_ONLY = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 GSM48_BCAP_RRQ_DUAL_HR = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 GSM48_BCAP_RRQ_DUAL_FR = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 /* GSM 04.08 Bearer Capability: Rate Adaption */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 enum gsm48_bcap_ra {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 GSM48_BCAP_RA_NONE = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 GSM48_BCAP_RA_V110_X30 = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 GSM48_BCAP_RA_X31 = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 GSM48_BCAP_RA_OTHER = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 /* GSM 04.08 Bearer Capability: Signalling access protocol */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 enum gsm48_bcap_sig_access {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 GSM48_BCAP_SA_I440_I450 = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 GSM48_BCAP_SA_X21 = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 GSM48_BCAP_SA_X28_DP_IN = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 GSM48_BCAP_SA_X28_DP_UN = 4,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 GSM48_BCAP_SA_X28_NDP = 5,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 GSM48_BCAP_SA_X32 = 6,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 /* GSM 04.08 Bearer Capability: User Rate */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 enum gsm48_bcap_user_rate {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 GSM48_BCAP_UR_300 = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 GSM48_BCAP_UR_1200 = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 GSM48_BCAP_UR_2400 = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 GSM48_BCAP_UR_4800 = 4,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 GSM48_BCAP_UR_9600 = 5,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 GSM48_BCAP_UR_12000 = 6,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 GSM48_BCAP_UR_1200_75 = 7,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 /* GSM 04.08 Bearer Capability: Parity */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 enum gsm48_bcap_parity {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 GSM48_BCAP_PAR_ODD = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 GSM48_BCAP_PAR_EVEN = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 GSM48_BCAP_PAR_NONE = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 GSM48_BCAP_PAR_ZERO = 4,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 GSM48_BCAP_PAR_ONE = 5,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 /* GSM 04.08 Bearer Capability: Intermediate Rate */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 enum gsm48_bcap_interm_rate {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 GSM48_BCAP_IR_8k = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 GSM48_BCAP_IR_16k = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 /* GSM 04.08 Bearer Capability: Transparency */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 enum gsm48_bcap_transp {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 GSM48_BCAP_TR_TRANSP = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 GSM48_BCAP_TR_RLP = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 GSM48_BCAP_TR_TR_PREF = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 GSM48_BCAP_TR_RLP_PREF = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 /* GSM 04.08 Bearer Capability: Modem Type */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 enum gsm48_bcap_modem_type {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 GSM48_BCAP_MT_NONE = 0,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 GSM48_BCAP_MT_V21 = 1,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 GSM48_BCAP_MT_V22 = 2,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 GSM48_BCAP_MT_V22bis = 3,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 GSM48_BCAP_MT_V23 = 4,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 GSM48_BCAP_MT_V26ter = 5,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 GSM48_BCAP_MT_V32 = 6,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 GSM48_BCAP_MT_UNDEF = 7,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 GSM48_BCAP_MT_AUTO_1 = 8,
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 /*! GSM 04.08 Bearer Capability: Speech Version Indication
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 * (See also 3GPP TS 24.008, Table 10.5.103) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 enum gsm48_bcap_speech_ver {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 GSM48_BCAP_SV_FR = 0, /*!< GSM FR V1 (GSM FR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 GSM48_BCAP_SV_HR = 1, /*!< GSM HR V1 (GSM HR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 GSM48_BCAP_SV_EFR = 2, /*!< GSM FR V2 (GSM EFR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 GSM48_BCAP_SV_AMR_F = 4, /*!< GSM FR V3 (FR AMR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 GSM48_BCAP_SV_AMR_H = 5, /*!< GSM HR V3 (HR_AMR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 GSM48_BCAP_SV_AMR_OFW = 6, /*!< GSM FR V4 (OFR AMR-WB) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 GSM48_BCAP_SV_AMR_OHW = 7, /*!< GSM HR V4 (OHR AMR-WB) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 GSM48_BCAP_SV_AMR_FW = 8, /*!< GSM FR V5 (FR AMR-WB) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 GSM48_BCAP_SV_AMR_OH = 11, /*!< GSM HR V6 (OHR AMR) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 /* Expanded fields from GSM TS 04.08, Table 10.5.102 */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 struct gsm_mncc_bearer_cap {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 int transfer; /* Information Transfer Capability, see enum gsm48_bcap_itcap. */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 int mode; /* Transfer Mode, see enum gsm48_bcap_tmod. */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 int coding; /* Coding Standard, see enum gsm48_bcap_coding.*/
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 int radio; /* Radio Channel Requirement, see enum gsm48_bcap_rrq. */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 int speech_ctm; /* CTM text telephony indication */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 int speech_ver[8]; /* Speech version indication, see enum gsm48_bcap_speech_ver; -1 marks end */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 struct {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 enum gsm48_bcap_ra rate_adaption;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 enum gsm48_bcap_sig_access sig_access;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 int async;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 int nr_stop_bits;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 int nr_data_bits;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 enum gsm48_bcap_user_rate user_rate;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 enum gsm48_bcap_parity parity;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 enum gsm48_bcap_interm_rate interm_rate;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 enum gsm48_bcap_transp transp;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 enum gsm48_bcap_modem_type modem_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 } data;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 struct gsm_mncc_number {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 int type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 int plan;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 int present;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 int screen;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 char number[33];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 struct gsm_mncc_cause {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 int location;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 int coding;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 int rec;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 int rec_val;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 int value;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 int diag_len;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 char diag[32];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 struct gsm_mncc_useruser {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 int proto;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 char info[GSM_MAX_USERUSER + 1]; /* + termination char */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 struct gsm_mncc_progress {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 int coding;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 int location;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 int descr;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 struct gsm_mncc_facility {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 int len;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 char info[GSM_MAX_FACILITY];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 struct gsm_mncc_ssversion {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 int len;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 char info[GSM_MAX_SSVERSION];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 struct gsm_mncc_cccap {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 int dtmf;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 int pcp;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 #define MNCC_SETUP_REQ 0x0101
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 #define MNCC_SETUP_IND 0x0102
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 #define MNCC_SETUP_RSP 0x0103
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 #define MNCC_SETUP_CNF 0x0104
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 #define MNCC_SETUP_COMPL_REQ 0x0105
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 #define MNCC_SETUP_COMPL_IND 0x0106
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 /* MNCC_REJ_* is performed via MNCC_REL_* */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 #define MNCC_CALL_CONF_IND 0x0107
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 #define MNCC_CALL_PROC_REQ 0x0108
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 #define MNCC_PROGRESS_REQ 0x0109
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 #define MNCC_ALERT_REQ 0x010a
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 #define MNCC_ALERT_IND 0x010b
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 #define MNCC_NOTIFY_REQ 0x010c
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 #define MNCC_NOTIFY_IND 0x010d
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 #define MNCC_DISC_REQ 0x010e
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 #define MNCC_DISC_IND 0x010f
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 #define MNCC_REL_REQ 0x0110
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 #define MNCC_REL_IND 0x0111
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 #define MNCC_REL_CNF 0x0112
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 #define MNCC_FACILITY_REQ 0x0113
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 #define MNCC_FACILITY_IND 0x0114
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 #define MNCC_START_DTMF_IND 0x0115
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 #define MNCC_START_DTMF_RSP 0x0116
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 #define MNCC_START_DTMF_REJ 0x0117
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 #define MNCC_STOP_DTMF_IND 0x0118
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 #define MNCC_STOP_DTMF_RSP 0x0119
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 #define MNCC_MODIFY_REQ 0x011a
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 #define MNCC_MODIFY_IND 0x011b
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 #define MNCC_MODIFY_RSP 0x011c
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 #define MNCC_MODIFY_CNF 0x011d
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 #define MNCC_MODIFY_REJ 0x011e
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 #define MNCC_HOLD_IND 0x011f
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 #define MNCC_HOLD_CNF 0x0120
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 #define MNCC_HOLD_REJ 0x0121
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 #define MNCC_RETRIEVE_IND 0x0122
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 #define MNCC_RETRIEVE_CNF 0x0123
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 #define MNCC_RETRIEVE_REJ 0x0124
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 #define MNCC_USERINFO_REQ 0x0125
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 #define MNCC_USERINFO_IND 0x0126
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 #define MNCC_REJ_REQ 0x0127
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 #define MNCC_REJ_IND 0x0128
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 #define MNCC_BRIDGE 0x0200
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 #define MNCC_FRAME_RECV 0x0201
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 #define MNCC_FRAME_DROP 0x0202
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 #define MNCC_LCHAN_MODIFY 0x0203
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 #define MNCC_RTP_CREATE 0x0204
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 #define MNCC_RTP_CONNECT 0x0205
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 #define MNCC_RTP_FREE 0x0206
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 #define GSM_TCHF_FRAME 0x0300
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 #define GSM_TCHF_FRAME_EFR 0x0301
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 #define GSM_TCHH_FRAME 0x0302
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 #define GSM_TCH_FRAME_AMR 0x0303
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 #define GSM_BAD_FRAME 0x03ff
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 #define MNCC_SOCKET_HELLO 0x0400
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 #define MNCC_F_BEARER_CAP 0x0001
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 #define MNCC_F_CALLED 0x0002
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 #define MNCC_F_CALLING 0x0004
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 #define MNCC_F_REDIRECTING 0x0008
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 #define MNCC_F_CONNECTED 0x0010
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 #define MNCC_F_CAUSE 0x0020
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 #define MNCC_F_USERUSER 0x0040
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 #define MNCC_F_PROGRESS 0x0080
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 #define MNCC_F_EMERGENCY 0x0100
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 #define MNCC_F_FACILITY 0x0200
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 #define MNCC_F_SSVERSION 0x0400
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 #define MNCC_F_CCCAP 0x0800
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 #define MNCC_F_KEYPAD 0x1000
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 #define MNCC_F_SIGNAL 0x2000
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 #define MNCC_F_GCR 0x4000
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 struct gsm_mncc {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 /* context based information */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 uint32_t callref;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 /* which fields are present */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 uint32_t fields;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 /* data derived information (MNCC_F_ based) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 struct gsm_mncc_bearer_cap bearer_cap;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 struct gsm_mncc_number called;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 struct gsm_mncc_number calling;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 struct gsm_mncc_number redirecting;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 struct gsm_mncc_number connected;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 struct gsm_mncc_cause cause;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 struct gsm_mncc_progress progress;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 struct gsm_mncc_useruser useruser;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 struct gsm_mncc_facility facility;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 struct gsm_mncc_cccap cccap;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280 struct gsm_mncc_ssversion ssversion;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 struct {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 int sup;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 int inv;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 } clir;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 int signal;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 /* data derived information, not MNCC_F based */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 int keypad;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 int more;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290 int notify; /* 0..127 */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 int emergency;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292 char imsi[16];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 unsigned char lchan_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 unsigned char lchan_mode;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 /* Global Call Reference (encoded as per 3GPP TS 29.205) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 uint8_t gcr[16];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 /* A buffer to contain SDP ('\0' terminated) */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 char sdp[1024];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 struct gsm_data_frame {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 uint32_t callref;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 unsigned char data[0];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 #define MNCC_SOCK_VERSION 8
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 struct gsm_mncc_hello {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 uint32_t version;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 /* send the sizes of the structs */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 uint32_t mncc_size;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 uint32_t data_frame_size;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 /* send some offsets */
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 uint32_t called_offset;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321 uint32_t signal_offset;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 uint32_t emergency_offset;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 uint32_t lchan_type_offset;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 struct gsm_mncc_rtp {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 uint32_t callref;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 struct sockaddr_storage addr;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330 uint32_t payload_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 uint32_t payload_msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 char sdp[1024];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 struct gsm_mncc_bridge {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 uint32_t callref[2];
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340 union mncc_msg {
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 uint32_t msg_type;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
342 struct gsm_mncc signal;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
343 struct gsm_mncc_hello hello;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
344 struct gsm_data_frame data_frame;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
345 struct gsm_mncc_rtp rtp;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
346 struct gsm_mncc_bridge bridge;
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
347 };
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348
0e907d59d815 include: import from ThemWi1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 #endif /* include guard */