<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13160">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MGCP_Test: allow setting of fmtp parameters<br><br>When creating an RTP flow, there is currently no way to set SDP fmtp<br>parameters. Lets add a template and a parameter in order to be able to<br>set those parameters.<br><br>Change-Id: Ic1840d5023cb3888a17980f4ed08c19175864896<br>Related: SYS#4470<br>---<br>M library/MGCP_Templates.ttcn<br>M mgw/MGCP_Test.ttcn<br>2 files changed, 22 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/13160/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn</span><br><span>index afdc33d..f720553 100644</span><br><span>--- a/library/MGCP_Templates.ttcn</span><br><span>+++ b/library/MGCP_Templates.ttcn</span><br><span>@@ -280,6 +280,11 @@</span><br><span>                      attr_value := int2str(p)</span><br><span>             }</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template SDP_attribute ts_SDP_fmtp(integer fmt, charstring val) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          fmtp := {</span><br><span style="color: hsl(120, 100%, 40%);">+                     attr_value := int2str(fmt) & " " & val</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        function f_mgcp_extract_par(MgcpMessage msg, MgcpInfoCode code) return charstring {</span><br><span>          var MgcpParameterList pars;</span><br><span>diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn</span><br><span>index 4969a3f..a0a836b 100644</span><br><span>--- a/mgw/MGCP_Test.ttcn</span><br><span>+++ b/mgw/MGCP_Test.ttcn</span><br><span>@@ -268,7 +268,8 @@</span><br><span>               uint7_t pt,</span><br><span>          charstring codec,</span><br><span>            MgcpConnectionId mgcp_conn_id optional,</span><br><span style="color: hsl(0, 100%, 40%);">-         RtpemConfig rtp_cfg optional</span><br><span style="color: hsl(120, 100%, 40%);">+          RtpemConfig rtp_cfg optional,</span><br><span style="color: hsl(120, 100%, 40%);">+         charstring fmtp optional</span><br><span>     }</span><br><span> </span><br><span>        /* Create an RTP flow (bidirectional, or receive-only) */</span><br><span>@@ -277,6 +278,12 @@</span><br><span>     runs on dummy_CT {</span><br><span>           var template MgcpCommand cmd;</span><br><span>                var MgcpResponse resp;</span><br><span style="color: hsl(120, 100%, 40%);">+                var SDP_attribute_list attributes;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          attributes := { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), valueof(ts_SDP_ptime(20)) };</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(flow.fmtp)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     attributes := attributes & { valueof(ts_SDP_fmtp(flow.pt, flow.fmtp)) };</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span> </span><br><span>                /* bind local RTP emulation socket */</span><br><span>                f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr);</span><br><span>@@ -298,9 +305,8 @@</span><br><span> </span><br><span>                        cmd := ts_CRCX(get_next_trans_id(), ep, mode, call_id);</span><br><span>                      cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42",</span><br><span style="color: hsl(0, 100%, 40%);">-                                     flow.em.portnr, { int2str(flow.pt) },</span><br><span style="color: hsl(0, 100%, 40%);">-                                   { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)),</span><br><span style="color: hsl(0, 100%, 40%);">-                                            valueof(ts_SDP_ptime(20)) });</span><br><span style="color: hsl(120, 100%, 40%);">+                                       flow.em.portnr, { int2str(flow.pt) }, attributes);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>                       resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK);</span><br><span>                       flow.mgcp_conn_id := extract_conn_id(resp);</span><br><span>                  /* extract port number from response */</span><br><span>@@ -329,6 +335,12 @@</span><br><span>       runs on dummy_CT {</span><br><span>           var template MgcpCommand cmd;</span><br><span>                var MgcpResponse resp;</span><br><span style="color: hsl(120, 100%, 40%);">+                var SDP_attribute_list attributes;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          attributes := { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), valueof(ts_SDP_ptime(20)) };</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(flow.fmtp)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     attributes := attributes & { valueof(ts_SDP_fmtp(flow.pt, flow.fmtp)) };</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span> </span><br><span>                /* rebind local RTP emulation socket to the new address */</span><br><span>           f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr);</span><br><span>@@ -345,9 +357,7 @@</span><br><span>            /* connect MGW side RTP socket to the emulation-side RTP socket using SDP */</span><br><span>                 cmd := ts_MDCX(get_next_trans_id(), ep, mode, call_id, flow.mgcp_conn_id);</span><br><span>           cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42",</span><br><span style="color: hsl(0, 100%, 40%);">-                             flow.em.portnr, { int2str(flow.pt) },</span><br><span style="color: hsl(0, 100%, 40%);">-                           { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)),</span><br><span style="color: hsl(0, 100%, 40%);">-                                    valueof(ts_SDP_ptime(20)) });</span><br><span style="color: hsl(120, 100%, 40%);">+                               flow.em.portnr, { int2str(flow.pt) }, attributes);</span><br><span>                 resp := mgcp_transceive_mgw(cmd, tr_MDCX_ACK);</span><br><span> </span><br><span>           /* extract MGW-side port number from response. (usually this</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13160">change 13160</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/13160"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ic1840d5023cb3888a17980f4ed08c19175864896 </div>
<div style="display:none"> Gerrit-Change-Number: 13160 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>