<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/14596">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mgw: Support receiving lowercase LCO codec<br><br>Change-Id: I51dc1cdcbe2a5587769335fbecb5039ef22cae5d<br>---<br>M src/libosmo-mgcp/mgcp_codec.c<br>M src/libosmo-mgcp/mgcp_protocol.c<br>M tests/mgcp/mgcp_test.c<br>M tests/mgcp/mgcp_test.ok<br>4 files changed, 10 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/96/14596/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>index 8bf0564..8be4c3c 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_codec.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>@@ -99,7 +99,7 @@</span><br><span>  conn->end.codec = NULL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Set members of struct mgcp_rtp_codec, extrapolate in missing information */</span><br><span style="color: hsl(120, 100%, 40%);">+/* Set members of struct mgcp_rtp_codec, extrapolate in missing information. Param audio_name is expected in uppercase. */</span><br><span> static int codec_set(void *ctx, struct mgcp_rtp_codec *codec, int payload_type, const char *audio_name,</span><br><span>                  unsigned int pt_offset, struct mgcp_codec_param *param)</span><br><span> {</span><br><span>@@ -239,7 +239,7 @@</span><br><span>  *  \param[out] codec configuration (caller provided memory).</span><br><span>  *  \param[out] conn related rtp-connection.</span><br><span>  *  \param[in] payload_type codec type id (e.g. 3 for GSM, -1 when undefined).</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] audio_name audio codec name (e.g. "GSM/8000/1").</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] audio_name audio codec name, in uppercase (e.g. "GSM/8000/1").</span><br><span>  *  \param[in] param optional codec parameters (set to NULL when unused).</span><br><span>  *  \returns 0 on success, -EINVAL on failure. */</span><br><span> int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name, struct mgcp_codec_param *param)</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>index 6473394..460bb7b 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -592,6 +592,7 @@</span><br><span> {</span><br><span>   char *lco_id;</span><br><span>        char codec[17];</span><br><span style="color: hsl(120, 100%, 40%);">+       int len;</span><br><span> </span><br><span>         if (!options)</span><br><span>                return 0;</span><br><span>@@ -622,7 +623,11 @@</span><br><span>                      * codec only. */</span><br><span>                    if (sscanf(lco_id + 1, ":%16[^,]", codec) == 1) {</span><br><span>                          talloc_free(lco->codec);</span><br><span style="color: hsl(0, 100%, 40%);">-                             lco->codec = talloc_strdup(ctx, codec);</span><br><span style="color: hsl(120, 100%, 40%);">+                            /* MGCP header is case insensive, and we'll need</span><br><span style="color: hsl(120, 100%, 40%);">+                             codec in uppercase when using it later: */</span><br><span style="color: hsl(120, 100%, 40%);">+                         len = strlen(codec);</span><br><span style="color: hsl(120, 100%, 40%);">+                          lco->codec = talloc_size(ctx, len + 1);</span><br><span style="color: hsl(120, 100%, 40%);">+                            osmo_str_toupper_buf(lco->codec, len + 1, codec);</span><br><span>                         }</span><br><span>                    break;</span><br><span>               default:</span><br><span>diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c</span><br><span>index 5a14bdf..39fe5d0 100644</span><br><span>--- a/tests/mgcp/mgcp_test.c</span><br><span>+++ b/tests/mgcp/mgcp_test.c</span><br><span>@@ -214,7 +214,7 @@</span><br><span>  "m: sendrecv\r" \</span><br><span>  "c: 2\r\n" \</span><br><span>       "i: %s\r\n" \</span><br><span style="color: hsl(0, 100%, 40%);">- "l: A:AMR, NT:IN\r\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+     "l: A:amr, NT:IN\r\n" \</span><br><span>    "\n" \</span><br><span>     "v=0\r\n" \</span><br><span>        "o=- %s 23 IN IP4 0.0.0.0\r\n" \</span><br><span>diff --git a/tests/mgcp/mgcp_test.ok b/tests/mgcp/mgcp_test.ok</span><br><span>index 358a85c..6f4da10 100644</span><br><span>--- a/tests/mgcp/mgcp_test.ok</span><br><span>+++ b/tests/mgcp/mgcp_test.ok</span><br><span>@@ -199,7 +199,7 @@</span><br><span> MDCX 18983220 1@mgw MGCP 1.0 </span><br><span> m: sendrecv c: 2 </span><br><span> i: %s </span><br><span style="color: hsl(0, 100%, 40%);">-l: A:AMR, NT:IN </span><br><span style="color: hsl(120, 100%, 40%);">+l: A:amr, NT:IN </span><br><span> </span><br><span> v=0 </span><br><span> o=- %s 23 IN IP4 0.0.0.0 </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/14596">change 14596</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-mgw/+/14596"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-mgw </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I51dc1cdcbe2a5587769335fbecb5039ef22cae5d </div>
<div style="display:none"> Gerrit-Change-Number: 14596 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>