<p>Keith Whyte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11185">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mncc: Move definitions to header file<br><br>This commit moves various gsm_mncc_* structs and<br>the MNCC_* defines from .c file to the header.<br>This paves the way to remove this duplicated code from the<br>osmo-sip-connector.<br><br>Change-Id: I62bc025369bd9ee9b134e064a8364aa4bd5de16e<br>---<br>M include/osmocom/gsm/mncc.h<br>M src/gsm/mncc.c<br>2 files changed, 150 insertions(+), 153 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/85/11185/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/gsm/mncc.h b/include/osmocom/gsm/mncc.h</span><br><span>index 7e7d12c..e314163 100644</span><br><span>--- a/include/osmocom/gsm/mncc.h</span><br><span>+++ b/include/osmocom/gsm/mncc.h</span><br><span>@@ -8,6 +8,83 @@</span><br><span> #define GSM_MAX_SSVERSION 128</span><br><span> #define GSM_MAX_USERUSER 128</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_REQ 0x0101</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_IND 0x0102</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_RSP 0x0103</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_CNF 0x0104</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_COMPL_REQ 0x0105</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SETUP_COMPL_IND 0x0106</span><br><span style="color: hsl(120, 100%, 40%);">+/* MNCC_REJ_* is perfomed via MNCC_REL_* */</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_CALL_CONF_IND 0x0107</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_CALL_PROC_REQ 0x0108</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_PROGRESS_REQ 0x0109</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_ALERT_REQ 0x010a</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_ALERT_IND 0x010b</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_NOTIFY_REQ 0x010c</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_NOTIFY_IND 0x010d</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_DISC_REQ 0x010e</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_DISC_IND 0x010f</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_REL_REQ 0x0110</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_REL_IND 0x0111</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_REL_CNF 0x0112</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_FACILITY_REQ 0x0113</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_FACILITY_IND 0x0114</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_START_DTMF_IND 0x0115</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_START_DTMF_RSP 0x0116</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_START_DTMF_REJ 0x0117</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_STOP_DTMF_IND 0x0118</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_STOP_DTMF_RSP 0x0119</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_MODIFY_REQ 0x011a</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_MODIFY_IND 0x011b</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_MODIFY_RSP 0x011c</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_MODIFY_CNF 0x011d</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_MODIFY_REJ 0x011e</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_HOLD_IND 0x011f</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_HOLD_CNF 0x0120</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_HOLD_REJ 0x0121</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RETRIEVE_IND 0x0122</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RETRIEVE_CNF 0x0123</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RETRIEVE_REJ 0x0124</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_USERINFO_REQ 0x0125</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_USERINFO_IND 0x0126</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_REJ_REQ 0x0127</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_REJ_IND 0x0128</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_BRIDGE 0x0200</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_FRAME_RECV 0x0201</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_FRAME_DROP 0x0202</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_LCHAN_MODIFY 0x0203</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RTP_CREATE 0x0204</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RTP_CONNECT 0x0205</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_RTP_FREE 0x0206</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_TCHF_FRAME 0x0300</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_TCHF_FRAME_EFR 0x0301</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_TCHH_FRAME 0x0302</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_TCH_FRAME_AMR 0x0303</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_BAD_FRAME 0x03ff</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SOCKET_HELLO 0x0400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_MAX_FACILITY 128</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_MAX_SSVERSION 128</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_MAX_USERUSER 128</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_BEARER_CAP 0x0001</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_CALLED 0x0002</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_CALLING 0x0004</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_REDIRECTING 0x0008</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_CONNECTED 0x0010</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_CAUSE 0x0020</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_USERUSER 0x0040</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_PROGRESS 0x0080</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_EMERGENCY 0x0100</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_FACILITY 0x0200</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_SSVERSION 0x0400</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_CCCAP 0x0800</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_KEYPAD 0x1000</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_F_SIGNAL 0x2000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Expanded fields from GSM TS 04.08, Table 10.5.102 */</span><br><span> struct gsm_mncc_bearer_cap {</span><br><span> int transfer; /* Information Transfer Capability */</span><br><span>@@ -74,6 +151,79 @@</span><br><span> int pcp;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_mncc {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* context based information */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t callref;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* which fields are present */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t fields;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* data derived informations (MNCC_F_ based) */</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_bearer_cap bearer_cap;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_number called;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_number calling;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_number redirecting;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_number connected;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_cause cause;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_progress progress;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_useruser useruser;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_facility facility;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_cccap cccap;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_mncc_ssversion ssversion;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct {</span><br><span style="color: hsl(120, 100%, 40%);">+ int sup;</span><br><span style="color: hsl(120, 100%, 40%);">+ int inv;</span><br><span style="color: hsl(120, 100%, 40%);">+ } clir;</span><br><span style="color: hsl(120, 100%, 40%);">+ int signal;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* data derived information, not MNCC_F based */</span><br><span style="color: hsl(120, 100%, 40%);">+ int keypad;</span><br><span style="color: hsl(120, 100%, 40%);">+ int more;</span><br><span style="color: hsl(120, 100%, 40%);">+ int notify; /* 0..127 */</span><br><span style="color: hsl(120, 100%, 40%);">+ int emergency;</span><br><span style="color: hsl(120, 100%, 40%);">+ char imsi[16];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned char lchan_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned char lchan_mode;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_data_frame {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t callref;</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned char data[0];</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SOCK_VERSION 5</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_mncc_hello {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t version;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* send the sizes of the structs */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t mncc_size;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t data_frame_size;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* send some offsets */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t called_offset;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t signal_offset;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t emergency_offset;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t lchan_type_offset;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_mncc_rtp {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t callref;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t ip;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint16_t port;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t payload_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t payload_msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_mncc_bridge {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t callref[2];</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> enum {</span><br><span> GSM_MNCC_BCAP_SPEECH = 0,</span><br><span> GSM_MNCC_BCAP_UNR_DIG = 1,</span><br><span>diff --git a/src/gsm/mncc.c b/src/gsm/mncc.c</span><br><span>index 938cf9a..a6c2f73 100644</span><br><span>--- a/src/gsm/mncc.c</span><br><span>+++ b/src/gsm/mncc.c</span><br><span>@@ -34,159 +34,6 @@</span><br><span> #include <osmocom/core/logging.h></span><br><span> #include <osmocom/gsm/mncc.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* FIXME FIXME FIXME FIXME FIXME START */</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_REQ 0x0101</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_IND 0x0102</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_RSP 0x0103</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_CNF 0x0104</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_COMPL_REQ 0x0105</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SETUP_COMPL_IND 0x0106</span><br><span style="color: hsl(0, 100%, 40%);">-/* MNCC_REJ_* is perfomed via MNCC_REL_* */</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_CALL_CONF_IND 0x0107</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_CALL_PROC_REQ 0x0108</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_PROGRESS_REQ 0x0109</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_ALERT_REQ 0x010a</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_ALERT_IND 0x010b</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_NOTIFY_REQ 0x010c</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_NOTIFY_IND 0x010d</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_DISC_REQ 0x010e</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_DISC_IND 0x010f</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_REL_REQ 0x0110</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_REL_IND 0x0111</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_REL_CNF 0x0112</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_FACILITY_REQ 0x0113</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_FACILITY_IND 0x0114</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_START_DTMF_IND 0x0115</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_START_DTMF_RSP 0x0116</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_START_DTMF_REJ 0x0117</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_STOP_DTMF_IND 0x0118</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_STOP_DTMF_RSP 0x0119</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_MODIFY_REQ 0x011a</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_MODIFY_IND 0x011b</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_MODIFY_RSP 0x011c</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_MODIFY_CNF 0x011d</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_MODIFY_REJ 0x011e</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_HOLD_IND 0x011f</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_HOLD_CNF 0x0120</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_HOLD_REJ 0x0121</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RETRIEVE_IND 0x0122</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RETRIEVE_CNF 0x0123</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RETRIEVE_REJ 0x0124</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_USERINFO_REQ 0x0125</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_USERINFO_IND 0x0126</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_REJ_REQ 0x0127</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_REJ_IND 0x0128</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_BRIDGE 0x0200</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_FRAME_RECV 0x0201</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_FRAME_DROP 0x0202</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_LCHAN_MODIFY 0x0203</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RTP_CREATE 0x0204</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RTP_CONNECT 0x0205</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_RTP_FREE 0x0206</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_TCHF_FRAME 0x0300</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_TCHF_FRAME_EFR 0x0301</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_TCHH_FRAME 0x0302</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_TCH_FRAME_AMR 0x0303</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_BAD_FRAME 0x03ff</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SOCKET_HELLO 0x0400</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_MAX_FACILITY 128</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_MAX_SSVERSION 128</span><br><span style="color: hsl(0, 100%, 40%);">-#define GSM_MAX_USERUSER 128</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_BEARER_CAP 0x0001</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_CALLED 0x0002</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_CALLING 0x0004</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_REDIRECTING 0x0008</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_CONNECTED 0x0010</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_CAUSE 0x0020</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_USERUSER 0x0040</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_PROGRESS 0x0080</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_EMERGENCY 0x0100</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_FACILITY 0x0200</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_SSVERSION 0x0400</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_CCCAP 0x0800</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_KEYPAD 0x1000</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_F_SIGNAL 0x2000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_mncc {</span><br><span style="color: hsl(0, 100%, 40%);">- /* context based information */</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t callref;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* which fields are present */</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t fields;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* data derived informations (MNCC_F_ based) */</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_bearer_cap bearer_cap;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_number called;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_number calling;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_number redirecting;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_number connected;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_cause cause;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_progress progress;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_useruser useruser;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_facility facility;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_cccap cccap;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_mncc_ssversion ssversion;</span><br><span style="color: hsl(0, 100%, 40%);">- struct {</span><br><span style="color: hsl(0, 100%, 40%);">- int sup;</span><br><span style="color: hsl(0, 100%, 40%);">- int inv;</span><br><span style="color: hsl(0, 100%, 40%);">- } clir;</span><br><span style="color: hsl(0, 100%, 40%);">- int signal;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* data derived information, not MNCC_F based */</span><br><span style="color: hsl(0, 100%, 40%);">- int keypad;</span><br><span style="color: hsl(0, 100%, 40%);">- int more;</span><br><span style="color: hsl(0, 100%, 40%);">- int notify; /* 0..127 */</span><br><span style="color: hsl(0, 100%, 40%);">- int emergency;</span><br><span style="color: hsl(0, 100%, 40%);">- char imsi[16];</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- unsigned char lchan_type;</span><br><span style="color: hsl(0, 100%, 40%);">- unsigned char lchan_mode;</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_data_frame {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t callref;</span><br><span style="color: hsl(0, 100%, 40%);">- unsigned char data[0];</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SOCK_VERSION 5</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_mncc_hello {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t version;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* send the sizes of the structs */</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t mncc_size;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t data_frame_size;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* send some offsets */</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t called_offset;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t signal_offset;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t emergency_offset;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t lchan_type_offset;</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_mncc_rtp {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t callref;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t ip;</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t port;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t payload_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t payload_msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_mncc_bridge {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t msg_type;</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t callref[2];</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* FIXME FIXME FIXME FIXME FIXME END */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> const struct value_string osmo_mncc_names[] = {</span><br><span> { MNCC_SETUP_REQ, "MNCC_SETUP_REQ" },</span><br><span> { MNCC_SETUP_IND, "MNCC_SETUP_IND" },</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11185">change 11185</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11185"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I62bc025369bd9ee9b134e064a8364aa4bd5de16e </div>
<div style="display:none"> Gerrit-Change-Number: 11185 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Keith Whyte <keith@rhizomatica.org> </div>