aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/gsm/protocol/gsm_08_08.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmocom/gsm/protocol/gsm_08_08.h')
-rw-r--r--include/osmocom/gsm/protocol/gsm_08_08.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h
index 69007b5c..cb9fe011 100644
--- a/include/osmocom/gsm/protocol/gsm_08_08.h
+++ b/include/osmocom/gsm/protocol/gsm_08_08.h
@@ -384,6 +384,18 @@ enum gsm0808_cause {
GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY = 0x62,
};
+/* 3GPP TS 08.08 ยง3.2.2.5 Cause Class */
+enum gsm0808_cause_class {
+ GSM0808_CAUSE_CLASS_NORM0 = 0,
+ GSM0808_CAUSE_CLASS_NORM1 = 1,
+ GSM0808_CAUSE_CLASS_RES_UNAVAIL = 2,
+ GSM0808_CAUSE_CLASS_SRV_OPT_NA = 3,
+ GSM0808_CAUSE_CLASS_SRV_OPT_NIMPL = 4,
+ GSM0808_CAUSE_CLASS_INVAL = 5,
+ GSM0808_CAUSE_CLASS_PERR = 6,
+ GSM0808_CAUSE_CLASS_INTW = 7,
+};
+
/* GSM 08.08 3.2.2.11 Channel Type */
enum gsm0808_chan_indicator {
GSM0808_CHAN_SPEECH = 1,
@@ -499,10 +511,24 @@ enum gsm0808_speech_codec_defaults {
GSM0808_SC_CFG_DEFAULT_HR_AMR = 0x073f,
GSM0808_SC_CFG_DEFAULT_OHR_AMR = 0x57ff,
GSM0808_SC_CFG_DEFAULT_FR_AMR_WB = 0x01,
- GSM0808_SC_CFG_DEFAULT_OFR_AMR_WB = 0x3f,
+ GSM0808_SC_CFG_DEFAULT_OFR_AMR_WB = 0x15,
GSM0808_SC_CFG_DEFAULT_OHR_AMR_WB = 0x01,
};
+/*! Default speech codec configurations broken down by reate.
+ * See also: 3GPP TS 28.062, Table 7.11.3.1.3-2: Preferred Configurations for
+ * the Adaptive Multi-Rate Codec Types. */
+enum gsm0808_speech_codec_rate_defaults {
+ GSM0808_SC_CFG_DEFAULT_AMR_4_75 = 0xff03,
+ GSM0808_SC_CFG_DEFAULT_AMR_5_15 = 0x0000,
+ GSM0808_SC_CFG_DEFAULT_AMR_5_90 = 0xff06,
+ GSM0808_SC_CFG_DEFAULT_AMR_6_70 = 0x3e08,
+ GSM0808_SC_CFG_DEFAULT_AMR_7_40 = 0x0c12,
+ GSM0808_SC_CFG_DEFAULT_AMR_7_95 = 0xc020,
+ GSM0808_SC_CFG_DEFAULT_AMR_10_2 = 0x3040,
+ GSM0808_SC_CFG_DEFAULT_AMR_12_2 = 0xc082
+};
+
/* 3GPP TS 48.008 3.2.2.103 Speech Codec List */
#define SPEECH_CODEC_MAXLEN 255
struct gsm0808_speech_codec_list {
@@ -550,6 +576,7 @@ enum gsm0808_lcls_config {
GSM0808_LCLS_CFG_BOTH_WAY_AND_SEND_DL_BLOCK_LOCAL_DL = 0x03,
GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL = 0x04,
GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL_BLOCK_LOCAL_DL = 0x05,
+ GSM0808_LCLS_CFG_NA = 0xFF
};
/* TS 48.008 3.2.2.117 */
@@ -559,6 +586,7 @@ enum gsm0808_lcls_control {
GSM0808_LCLS_CSC_RELEASE_LCLS = 0x02,
GSM0808_LCLS_CSC_BICAST_UL_AT_HANDOVER = 0x03,
GSM0808_LCLS_CSC_BICAST_UL_AND_RECV_DL_AT_HANDOVER = 0x04,
+ GSM0808_LCLS_CSC_NA = 0xFF
};
/* TS 48.008 3.2.2.119 */
@@ -568,4 +596,5 @@ enum gsm0808_lcls_status {
GSM0808_LCLS_STS_NO_LONGER_LS = 0x02,
GSM0808_LCLS_STS_REQ_LCLS_NOT_SUPP = 0x03,
GSM0808_LCLS_STS_LOCALLY_SWITCHED = 0x04,
+ GSM0808_LCLS_STS_NA = 0xFF
};