aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-12-22 05:30:07 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2024-02-25 03:42:46 +0100
commit4a9ea4f311827c81f94862459c374be5ca9939b8 (patch)
treed683bc1cffd6f295ee5aa2a0117fd519e1c27a33
parent083cc7ddb93535147a8dfad4a0331bf5643a83fc (diff)
use new libosmo-mgcp-client sdp/fmtp.h where possible
-rw-r--r--src/libmsc/codec_mapping.c9
-rw-r--r--src/libmsc/sdp_msg.c9
2 files changed, 11 insertions, 7 deletions
diff --git a/src/libmsc/codec_mapping.c b/src/libmsc/codec_mapping.c
index 55efd8de4..c2afc9cee 100644
--- a/src/libmsc/codec_mapping.c
+++ b/src/libmsc/codec_mapping.c
@@ -24,6 +24,9 @@
#include <osmocom/gsm/mncc.h>
+#include <osmocom/sdp/fmtp.h>
+#include <osmocom/sdp/sdp_strings.h>
+
#include <osmocom/msc/sdp_msg.h>
#include <osmocom/msc/codec_mapping.h>
#include <osmocom/msc/mncc.h>
@@ -118,7 +121,7 @@ const struct codec_mapping codec_map[] = {
/* AMR is always octet-aligned in 2G and 3G RAN, so this fmtp is signalled to remote call legs.
* So far, fmtp is ignored in incoming SIP SDP, so an incoming SDP without 'octet-align=1' will
* match with this entry; we will still reply with 'octet-align=1', which often works out. */
- .fmtp = "octet-align=1",
+ .fmtp = OSMO_SDP_VAL_AMR_OCTET_ALIGN_1,
},
.mgcp = CODEC_AMR_8000_1,
.speech_ver_count = 1,
@@ -139,7 +142,7 @@ const struct codec_mapping codec_map[] = {
.payload_type = 112,
.subtype_name = "AMR",
.rate = 8000,
- .fmtp = "octet-align=1",
+ .fmtp = OSMO_SDP_VAL_AMR_OCTET_ALIGN_1,
},
.mgcp = CODEC_AMR_8000_1,
.speech_ver_count = 1,
@@ -159,7 +162,7 @@ const struct codec_mapping codec_map[] = {
.payload_type = 113,
.subtype_name = "AMR-WB",
.rate = 16000,
- .fmtp = "octet-align=1",
+ .fmtp = OSMO_SDP_STR_AMR_OCTET_ALIGN_1,
},
.mgcp = CODEC_AMRWB_16000_1,
.speech_ver_count = 2,
diff --git a/src/libmsc/sdp_msg.c b/src/libmsc/sdp_msg.c
index 9b4cd988c..a70752e0b 100644
--- a/src/libmsc/sdp_msg.c
+++ b/src/libmsc/sdp_msg.c
@@ -27,6 +27,8 @@
#include <osmocom/core/utils.h>
#include <osmocom/core/logging.h>
+#include <osmocom/mgcp_client/fmtp.h>
+
#include <osmocom/msc/debug.h>
#include <osmocom/msc/sdp_msg.h>
@@ -272,7 +274,7 @@ int sdp_msg_to_sdp_str_buf(char *dst, size_t dst_size, const struct sdp_msg *sdp
OSMO_STRBUF_PRINTF(sb, "a=rtpmap:%d %s/%d\r\n", codec->payload_type, codec->subtype_name,
codec->rate > 0 ? codec->rate : 8000);
if (codec->fmtp[0])
- OSMO_STRBUF_PRINTF(sb, "a=fmtp:%d %s\r\n", codec->payload_type, codec->fmtp);
+ OSMO_STRBUF_PRINTF(sb, OSMO_SDP_PREFIX_A_FMTP "%d %s\r\n", codec->payload_type, codec->fmtp);
}
OSMO_STRBUF_PRINTF(sb, "a=ptime:%d\r\n", sdp->ptime > 0? sdp->ptime : 20);
@@ -302,7 +304,6 @@ int sdp_parse_attrib(struct sdp_msg *sdp, const char *src)
unsigned int payload_type;
struct sdp_audio_codec *codec;
#define A_RTPMAP "rtpmap:"
-#define A_FMTP "fmtp:"
#define A_PTIME "ptime:"
#define A_RTCP "rtcp:"
@@ -328,11 +329,11 @@ int sdp_parse_attrib(struct sdp_msg *sdp, const char *src)
return -ENOTSUP;
}
- else if (osmo_str_startswith(src, A_FMTP)) {
+ else if (osmo_str_startswith(src, OSMO_SDP_PREFIX_FMTP)) {
/* "a=fmtp:112 octet-align=1;mode-set=0,1,2,3" */
char *fmtp_str;
const char *line_end = sdp_msg_line_end(src);
- if (sscanf(src, A_FMTP "%u", &payload_type) != 1)
+ if (sscanf(src, OSMO_SDP_PREFIX_FMTP "%u", &payload_type) != 1)
return -EINVAL;
fmtp_str = strchr(src, ' ');