Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payloa

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

dexter gerrit-no-reply at lists.osmocom.org
Wed Jun 3 14:10:15 UTC 2020


dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 )


Change subject: mgcp_trunk: remove audio_name and audio_payloa
......................................................................

mgcp_trunk: remove audio_name and audio_payloa

get rid of deprecated trunk parameters which seem to be leftovers
from the old osmo-bsc_mgcp implementation. This is in particular
audio_name and audio_payload in struct mgcp_trunk_config which
allowed the user to "hardcode" an andio name and payload type
via VTY configuration

The removal of the struct members above also require a change to
mgcp_codec.c. The code that is is never actively used and even
causes wrong behavior when activated (set the no-transcoding
flag in VTY). Since the code is removed also the unit tests
also require to be changed to match the new behavior.

Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354
Related: OS#2659
---
M include/osmocom/mgcp/mgcp_trunk.h
M src/libosmo-mgcp/mgcp_codec.c
M src/libosmo-mgcp/mgcp_vty.c
M tests/mgcp/mgcp_test.c
4 files changed, 9 insertions(+), 53 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18645/1

diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h
index 71d89ac..386e540 100644
--- a/include/osmocom/mgcp/mgcp_trunk.h
+++ b/include/osmocom/mgcp/mgcp_trunk.h
@@ -9,8 +9,6 @@
 	int trunk_type;
 
 	char *audio_fmtp_extra;
-	char *audio_name;
-	int audio_payload;
 	int audio_send_ptime;
 	int audio_send_name;
 	int audio_loop;
diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c
index c251317..9ac5fbb 100644
--- a/src/libosmo-mgcp/mgcp_codec.c
+++ b/src/libosmo-mgcp/mgcp_codec.c
@@ -280,36 +280,16 @@
  * Helper function for mgcp_codec_decide() */
 static bool is_codec_compatible(const struct mgcp_endpoint *endp, const struct mgcp_rtp_codec *codec)
 {
-	char codec_name[64];
-
 	/* A codec name must be set, if not, this might mean that the codec
 	 * (payload type) that was assigned is unknown to us so we must stop
 	 * here. */
 	if (!codec->subtype_name)
 		return false;
 
-	/* We now extract the codec_name (letters before the /, e.g. "GSM"
-	 * from the audio name that is stored in the trunk configuration.
-	 * We do not compare to the full audio_name because we expect that
-	 * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the
-	 * audio name of the codec is set to "GSM" */
-	if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1)
-		return false;
+	/* FIXME: implement meaningful checks to make sure that the given codec
+	 * is compatible with the given endpoint */
 
-	/* Finally we check if the subtype_name we have generated from the
-	 * audio_name in the trunc struct patches the codec_name of the
-	 * given codec */
-	if (strcasecmp(codec_name, codec->subtype_name) == 0)
-		return true;
-
-	/* FIXME: It is questinable that the method to pick a compatible
-	 * codec can work properly. Since this useses trunk->audio_name, as
-	 * a reference, which is set to "AMR/8000" permanently.
-	 * trunk->audio_name must be updated by the first connection that
-	 * has been made on an endpoint, so that the second connection
-	 * can make a meaningful decision here */
-
-	return false;
+	return true;
 }
 
 /*! Decide for one suitable codec
diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c
index d332d75..f10f326 100644
--- a/src/libosmo-mgcp/mgcp_vty.c
+++ b/src/libosmo-mgcp/mgcp_vty.c
@@ -114,12 +114,6 @@
 			VTY_NEWLINE);
 	} else
 		vty_out(vty, " no rtp-patch%s", VTY_NEWLINE);
-	if (trunk->audio_payload != -1)
-		vty_out(vty, " sdp audio-payload number %d%s",
-			trunk->audio_payload, VTY_NEWLINE);
-	if (trunk->audio_name)
-		vty_out(vty, " sdp audio-payload name %s%s",
-			trunk->audio_name, VTY_NEWLINE);
 	if (trunk->audio_fmtp_extra)
 		vty_out(vty, " sdp audio fmtp-extra %s%s",
 			trunk->audio_fmtp_extra, VTY_NEWLINE);
@@ -600,13 +594,11 @@
 
 #define SDP_STR "SDP File related options\n"
 #define AUDIO_STR "Audio payload options\n"
-DEFUN(cfg_mgcp_sdp_payload_number,
+DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_number,
       cfg_mgcp_sdp_payload_number_cmd,
       "sdp audio-payload number <0-255>",
       SDP_STR AUDIO_STR "Number\n" "Payload number\n")
 {
-	unsigned int payload = atoi(argv[0]);
-	g_cfg->virt_trunk->audio_payload = payload;
 	return CMD_SUCCESS;
 }
 
@@ -615,12 +607,11 @@
 		 "sdp audio payload number <0-255>",
 		 SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload number\n")
 
-DEFUN(cfg_mgcp_sdp_payload_name,
+DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_name,
       cfg_mgcp_sdp_payload_name_cmd,
       "sdp audio-payload name NAME",
       SDP_STR AUDIO_STR "Name\n" "Payload name\n")
 {
-	osmo_talloc_replace_string(g_cfg, &g_cfg->virt_trunk->audio_name, argv[0]);
 	return CMD_SUCCESS;
 }
 
@@ -845,10 +836,6 @@
 
 	llist_for_each_entry(trunk, &g_cfg->trunks, entry) {
 		vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE);
-		vty_out(vty, "  sdp audio-payload number %d%s",
-			trunk->audio_payload, VTY_NEWLINE);
-		vty_out(vty, "  sdp audio-payload name %s%s",
-			trunk->audio_name, VTY_NEWLINE);
 		vty_out(vty, "  %ssdp audio-payload send-ptime%s",
 			trunk->audio_send_ptime ? "" : "no ", VTY_NEWLINE);
 		vty_out(vty, "  %ssdp audio-payload send-name%s",
@@ -909,15 +896,11 @@
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_trunk_payload_number,
+DEFUN_DEPRECATED(cfg_trunk_payload_number,
       cfg_trunk_payload_number_cmd,
       "sdp audio-payload number <0-255>",
       SDP_STR AUDIO_STR "Number\n" "Payload Number\n")
 {
-	struct mgcp_trunk *trunk = vty->index;
-	unsigned int payload = atoi(argv[0]);
-
-	trunk->audio_payload = payload;
 	return CMD_SUCCESS;
 }
 
@@ -925,14 +908,11 @@
 		 "sdp audio payload number <0-255>",
 		 SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload Number\n")
 
-DEFUN(cfg_trunk_payload_name,
+DEFUN_DEPRECATED(cfg_trunk_payload_name,
       cfg_trunk_payload_name_cmd,
       "sdp audio-payload name NAME",
       SDP_STR AUDIO_STR "Payload\n" "Payload Name\n")
 {
-	struct mgcp_trunk *trunk = vty->index;
-
-	osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]);
 	return CMD_SUCCESS;
 }
 
diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c
index ed0fda0..d0da18b 100644
--- a/tests/mgcp/mgcp_test.c
+++ b/tests/mgcp/mgcp_test.c
@@ -1458,11 +1458,9 @@
 	OSMO_ASSERT(conn);
 	OSMO_ASSERT(conn->end.codec->payload_type == 18);
 
-	/* Allocate 5 at mgw at select GSM.. */
+	/* Allocate 5 at mgw and let osmo-mgw pick a codec from the list */
 	last_endpoint = -1;
 	inp = create_msg(CRCX_MULT_GSM_EXACT, NULL);
-	talloc_free(cfg->virt_trunk->audio_name);
-	cfg->virt_trunk->audio_name = "GSM/8000";
 	cfg->virt_trunk->no_audio_transcoding = 1;
 	resp = mgcp_handle_message(cfg, inp);
 	OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id,
@@ -1474,7 +1472,7 @@
 	endp = cfg->virt_trunk->endpoints[last_endpoint];
 	conn = mgcp_conn_get_rtp(endp, conn_id);
 	OSMO_ASSERT(conn);
-	OSMO_ASSERT(conn->end.codec->payload_type == 3);
+	OSMO_ASSERT(conn->end.codec->payload_type == 0);
 
 	inp = create_msg(MDCX_NAT_DUMMY, conn_id);
 	last_endpoint = -1;

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354
Gerrit-Change-Number: 18645
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200603/57b7e7ed/attachment.htm>


More information about the gerrit-log mailing list