use new libosmo-mgcp-client sdp/fmtp.h where possible

Change-Id: I261679118e5fd669fa0f74e3d2220a82ba7d8835
This commit is contained in:
Neels Hofmeyr 2023-12-22 05:30:07 +01:00
parent 083cc7ddb9
commit 4a9ea4f311
2 changed files with 11 additions and 7 deletions

View File

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

View File

@ -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, ' ');