From 9ac9cb963dffec37771e0d51753fcfa862221254 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Wed, 26 Oct 2022 12:36:48 +0200 Subject: [PATCH] Improve logging on AMR OA<->BWE conversion failure Change-Id: I7c7dd10650c1d249c723d6781585b343004bd64d --- src/libosmo-mgcp/mgcp_network.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 72d97fdd3..d93e6954f 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -737,6 +737,7 @@ int amr_oa_bwe_convert(struct mgcp_endpoint *endp, struct msgb *msg, struct rtp_hdr *rtp_hdr; unsigned int payload_len; int rc; + bool orig_is_oa; if (msgb_length(msg) < sizeof(struct rtp_hdr)) { LOGPENDP(endp, DRTP, LOGL_ERROR, "AMR RTP packet too short (%d < %zu)\n", msgb_length(msg), sizeof(struct rtp_hdr)); @@ -744,10 +745,10 @@ int amr_oa_bwe_convert(struct mgcp_endpoint *endp, struct msgb *msg, } rtp_hdr = (struct rtp_hdr *)msgb_data(msg); - payload_len = msgb_length(msg) - sizeof(struct rtp_hdr); + orig_is_oa = osmo_amr_is_oa(rtp_hdr->data, payload_len); - if (osmo_amr_is_oa(rtp_hdr->data, payload_len)) { + if (orig_is_oa) { if (!target_is_oa) /* Input data is oa an target format is bwe * ==> convert */ @@ -769,7 +770,10 @@ int amr_oa_bwe_convert(struct mgcp_endpoint *endp, struct msgb *msg, } if (rc < 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, - "AMR RTP packet conversion failed\n"); + "RTP AMR packet conversion %s->%s failed: %s\n", + orig_is_oa ? "OA" : "BWE", + target_is_oa ? "OA" : "BWE", + osmo_hexdump(rtp_hdr->data, payload_len)); return -EINVAL; } @@ -1226,7 +1230,8 @@ int mgcp_send(struct mgcp_endpoint *endp, int is_rtp, struct osmo_sockaddr *addr conn_dst->end.codec->param.amr_octet_aligned); if (rc < 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, - "Error in AMR octet-aligned <-> bandwidth-efficient mode conversion\n"); + "Error in AMR octet-aligned <-> bandwidth-efficient mode conversion (target=%s)\n", + conn_dst->end.codec->param.amr_octet_aligned ? "octet-aligned" : "bandwidth-efficient"); break; } } else if (rtp_end->rfc5993_hr_convert &&