<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10618">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">OsmoMGW: document the 'X-Osmo-IGN' MGCP extension<br><br>Change-Id: If15a88c3b5b40fd1d24ad0f94f3231f678669ab1<br>---<br>A OsmoMGW/chapters/mgcp_extensions.adoc<br>M OsmoMGW/osmomgw-usermanual.adoc<br>2 files changed, 70 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/18/10618/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/OsmoMGW/chapters/mgcp_extensions.adoc b/OsmoMGW/chapters/mgcp_extensions.adoc</span><br><span>new file mode 100644</span><br><span>index 0000000..86ff643</span><br><span>--- /dev/null</span><br><span>+++ b/OsmoMGW/chapters/mgcp_extensions.adoc</span><br><span>@@ -0,0 +1,68 @@</span><br><span style="color: hsl(120, 100%, 40%);">+== MGCP Extensions</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The MGCP protocol is extendable. The following non-standard extensions are</span><br><span style="color: hsl(120, 100%, 40%);">+understood by OsmoMGW.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+=== `X-Osmo-IGN`</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+`X-Osmo-IGN` indicates to OsmoMGW that specific items of an endpoint should be</span><br><span style="color: hsl(120, 100%, 40%);">+ignored, so that it is lenient on mismatching values that would normally</span><br><span style="color: hsl(120, 100%, 40%);">+indicate collisions or configuration errors.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== `X-Osmo-IGN` Format</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The value part of X-Osmo-IGN must be one or more items separated by one or more</span><br><span style="color: hsl(120, 100%, 40%);">+spaces. Each item consists of one or more non-whitespace characters.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: `X-Osmo-IGN` format with three ficticious items "X", "abc" and "123".</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+X-Osmo-IGN: X abc 123</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+`X-Osmo-IGN` must be issued in the MGCP section (typically as its last item),</span><br><span style="color: hsl(120, 100%, 40%);">+before the SDP section starts.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+==== Supported `X-Osmo-IGN` Items</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Currently, the following `X-Osmo-IGN` items are supported:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* `C`: ignore CallID mismatches, i.e. differing "C" values between connections</span><br><span style="color: hsl(120, 100%, 40%);">+  on the same endpoint.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Note:</span><br><span style="color: hsl(120, 100%, 40%);">+`X-Osmo-IGN` does not support ignoring mismatches on the domain part of</span><br><span style="color: hsl(120, 100%, 40%);">+an endpoint name, e.g. ignoring a mismatch on "example.com" in</span><br><span style="color: hsl(120, 100%, 40%);">+`rtpbridge/123abc@example.com`. Instead, you may globally configure OsmoMGW</span><br><span style="color: hsl(120, 100%, 40%);">+with `mgcp` / `domain *` to permit all domain parts.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+===== `X-Osmo-IGN: C`</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+By default, OsmoMGW verifies that all CallIDs ("C" values) match for all</span><br><span style="color: hsl(120, 100%, 40%);">+connections on any one given endpoint. To ignore CallID mismatches, pass a `C`</span><br><span style="color: hsl(120, 100%, 40%);">+in the `X-Osmo-IGN` header, for the first or the second `CRCX` on an endpoint.</span><br><span style="color: hsl(120, 100%, 40%);">+When the `X-Osmo-IGN: C` is sent for any one `CRCX` on an endpoint, CallID</span><br><span style="color: hsl(120, 100%, 40%);">+mismatches will be ignored for that and all subsequent messages for that</span><br><span style="color: hsl(120, 100%, 40%);">+endpoint. Hence this header only needs to be included once per endpoint, in any</span><br><span style="color: hsl(120, 100%, 40%);">+`CRCX` message that precedes or coincides with a CallID mismatch.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This is particularly useful for a BSC that is connected to an A/SCCPlite MSC,</span><br><span style="color: hsl(120, 100%, 40%);">+where the BSC and MSC each are expected to configure their respective own</span><br><span style="color: hsl(120, 100%, 40%);">+connection on a shared endpoint. For A/SCCPlite, it is impossible for the BSC</span><br><span style="color: hsl(120, 100%, 40%);">+to know the CallID that the MSC will use, so CallID mismatches are inevitable.</span><br><span style="color: hsl(120, 100%, 40%);">+See also OsmoBSC, which will by default pass the `X-Osmo-IGN: C` header for</span><br><span style="color: hsl(120, 100%, 40%);">+endpoints associated with an A/SCCPlite MSC.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+.Example: `CRCX` message that instructs OsmoMGW to ignore CallID mismatches</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span style="color: hsl(120, 100%, 40%);">+CRCX 2 rtpbridge/123abc@mgw MGCP 1.0</span><br><span style="color: hsl(120, 100%, 40%);">+M: recvonly</span><br><span style="color: hsl(120, 100%, 40%);">+C: 2</span><br><span style="color: hsl(120, 100%, 40%);">+L: p:20</span><br><span style="color: hsl(120, 100%, 40%);">+X-Osmo-IGN: C</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+v=0</span><br><span style="color: hsl(120, 100%, 40%);">+c=IN IP4 123.12.12.123</span><br><span style="color: hsl(120, 100%, 40%);">+m=audio 5904 RTP/AVP 97</span><br><span style="color: hsl(120, 100%, 40%);">+a=rtpmap:97 GSM-EFR/8000</span><br><span style="color: hsl(120, 100%, 40%);">+a=ptime:40</span><br><span style="color: hsl(120, 100%, 40%);">+----</span><br><span>diff --git a/OsmoMGW/osmomgw-usermanual.adoc b/OsmoMGW/osmomgw-usermanual.adoc</span><br><span>index 69dc005..6030023 100644</span><br><span>--- a/OsmoMGW/osmomgw-usermanual.adoc</span><br><span>+++ b/OsmoMGW/osmomgw-usermanual.adoc</span><br><span>@@ -18,6 +18,8 @@</span><br><span> </span><br><span> include::chapters/configuration.adoc[]</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+include::chapters/mgcp_extensions.adoc[]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> //include::chapters/counters.adoc[]</span><br><span> </span><br><span> include::../common/chapters/port_numbers.adoc[]</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10618">change 10618</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/10618"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: If15a88c3b5b40fd1d24ad0f94f3231f678669ab1 </div>
<div style="display:none"> Gerrit-Change-Number: 10618 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>