<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>