Add initial CSD support with external MNCC

Implement and use CSD bearer service logic (with similar audio codec code):
* csd_filter (codec_filter)
* csd_bs (sdp_audio_codec)
* csd_bs_list (sdp_audio_codecs)

Related: OS#4394
Change-Id: Ide8b8321e0401dcbe35da2ec9cee0abca821d99a
diff --git a/include/osmocom/msc/sdp_msg.h b/include/osmocom/msc/sdp_msg.h
index 1b905b7..e62f22b 100644
--- a/include/osmocom/msc/sdp_msg.h
+++ b/include/osmocom/msc/sdp_msg.h
@@ -4,6 +4,8 @@
 #include <osmocom/core/utils.h>
 #include <osmocom/core/sockaddr_str.h>
 
+#include <osmocom/msc/csd_bs.h>
+
 extern const struct value_string sdp_msg_payload_type_names[];
 static inline const char *sdp_msg_payload_type_name(unsigned int payload_type)
 { return get_value_string(sdp_msg_payload_type_names, payload_type); }
@@ -36,6 +38,7 @@
 	unsigned int ptime;
 	enum sdp_mode_e mode;
 	struct sdp_audio_codecs audio_codecs;
+	struct csd_bs_list bearer_services;
 };
 
 #define foreach_sdp_audio_codec(/* struct sdp_audio_codec* */ CODEC, \
@@ -80,3 +83,5 @@
 int sdp_msg_to_str_buf(char *buf, size_t buflen, const struct sdp_msg *sdp);
 char *sdp_msg_to_str_c(void *ctx, const struct sdp_msg *sdp);
 const char *sdp_msg_to_str(const struct sdp_msg *sdp);
+
+void sdp_audio_codecs_set_csd(struct sdp_audio_codecs *ac);