gsm0808: add function to convert amr gsm0408 setings to gsm0808

Add a function to convert struct gsm48_multi_rate_conf, which holds the
codec settings for AMR, to S0-S15 bit representation as defined in
3GPP TS 48.008 3.2.2.49

This resurrects change-id I4e656731b16621736c7a2f4e64d9ce63b1064e98
which was reverted in I9e0d405e303ed86d23703ca6362e958dddb2f861
due to gsm0808_test failing.

The test failure is fixed by properly clearing the struct
gsm48_multirate_cfg prior to running tests (add memset(0)).

Change-Id: Ia782e21c206c15e840226d79b4209d13658ee916
Related: OS#3548
diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h
index 9433817..8431ace 100644
--- a/include/osmocom/gsm/protocol/gsm_08_08.h
+++ b/include/osmocom/gsm/protocol/gsm_08_08.h
@@ -503,6 +503,20 @@
 	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 {