blob: 86ff6433ceddcc829a7a40e4c2aa8e8e3d139579 [file] [log] [blame]
Neels Hofmeyrda026ab2018-08-26 23:14:21 +02001== MGCP Extensions
2
3The MGCP protocol is extendable. The following non-standard extensions are
4understood by OsmoMGW.
5
6=== `X-Osmo-IGN`
7
8`X-Osmo-IGN` indicates to OsmoMGW that specific items of an endpoint should be
9ignored, so that it is lenient on mismatching values that would normally
10indicate collisions or configuration errors.
11
12==== `X-Osmo-IGN` Format
13
14The value part of X-Osmo-IGN must be one or more items separated by one or more
15spaces. Each item consists of one or more non-whitespace characters.
16
17.Example: `X-Osmo-IGN` format with three ficticious items "X", "abc" and "123".
18----
19X-Osmo-IGN: X abc 123
20----
21
22`X-Osmo-IGN` must be issued in the MGCP section (typically as its last item),
23before the SDP section starts.
24
25==== Supported `X-Osmo-IGN` Items
26
27Currently, the following `X-Osmo-IGN` items are supported:
28
29* `C`: ignore CallID mismatches, i.e. differing "C" values between connections
30 on the same endpoint.
31
32.Note:
33`X-Osmo-IGN` does not support ignoring mismatches on the domain part of
34an endpoint name, e.g. ignoring a mismatch on "example.com" in
35`rtpbridge/123abc@example.com`. Instead, you may globally configure OsmoMGW
36with `mgcp` / `domain *` to permit all domain parts.
37
38===== `X-Osmo-IGN: C`
39
40By default, OsmoMGW verifies that all CallIDs ("C" values) match for all
41connections on any one given endpoint. To ignore CallID mismatches, pass a `C`
42in the `X-Osmo-IGN` header, for the first or the second `CRCX` on an endpoint.
43When the `X-Osmo-IGN: C` is sent for any one `CRCX` on an endpoint, CallID
44mismatches will be ignored for that and all subsequent messages for that
45endpoint. Hence this header only needs to be included once per endpoint, in any
46`CRCX` message that precedes or coincides with a CallID mismatch.
47
48This is particularly useful for a BSC that is connected to an A/SCCPlite MSC,
49where the BSC and MSC each are expected to configure their respective own
50connection on a shared endpoint. For A/SCCPlite, it is impossible for the BSC
51to know the CallID that the MSC will use, so CallID mismatches are inevitable.
52See also OsmoBSC, which will by default pass the `X-Osmo-IGN: C` header for
53endpoints associated with an A/SCCPlite MSC.
54
55.Example: `CRCX` message that instructs OsmoMGW to ignore CallID mismatches
56----
57CRCX 2 rtpbridge/123abc@mgw MGCP 1.0
58M: recvonly
59C: 2
60L: p:20
61X-Osmo-IGN: C
62
63v=0
64c=IN IP4 123.12.12.123
65m=audio 5904 RTP/AVP 97
66a=rtpmap:97 GSM-EFR/8000
67a=ptime:40
68----