Neels Hofmeyr | da026ab | 2018-08-26 23:14:21 +0200 | [diff] [blame] | 1 | == MGCP Extensions |
| 2 | |
| 3 | The MGCP protocol is extendable. The following non-standard extensions are |
| 4 | understood by OsmoMGW. |
| 5 | |
| 6 | === `X-Osmo-IGN` |
| 7 | |
| 8 | `X-Osmo-IGN` indicates to OsmoMGW that specific items of an endpoint should be |
| 9 | ignored, so that it is lenient on mismatching values that would normally |
| 10 | indicate collisions or configuration errors. |
| 11 | |
| 12 | ==== `X-Osmo-IGN` Format |
| 13 | |
Pau Espin Pedrol | 796a4a1 | 2019-07-05 15:22:33 +0200 | [diff] [blame] | 14 | The value part of `X-Osmo-IGN` must be one or more items separated by one or more |
Neels Hofmeyr | da026ab | 2018-08-26 23:14:21 +0200 | [diff] [blame] | 15 | spaces. 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 | ---- |
| 19 | X-Osmo-IGN: X abc 123 |
| 20 | ---- |
| 21 | |
Pau Espin Pedrol | 796a4a1 | 2019-07-05 15:22:33 +0200 | [diff] [blame] | 22 | `X-Osmo-IGN` must be issued in the MGCP header section (typically as its last item), |
Neels Hofmeyr | da026ab | 2018-08-26 23:14:21 +0200 | [diff] [blame] | 23 | before the SDP section starts. |
| 24 | |
| 25 | ==== Supported `X-Osmo-IGN` Items |
| 26 | |
| 27 | Currently, 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 |
| 34 | an endpoint name, e.g. ignoring a mismatch on "example.com" in |
| 35 | `rtpbridge/123abc@example.com`. Instead, you may globally configure OsmoMGW |
| 36 | with `mgcp` / `domain *` to permit all domain parts. |
| 37 | |
| 38 | ===== `X-Osmo-IGN: C` |
| 39 | |
| 40 | By default, OsmoMGW verifies that all CallIDs ("C" values) match for all |
| 41 | connections on any one given endpoint. To ignore CallID mismatches, pass a `C` |
| 42 | in the `X-Osmo-IGN` header, for the first or the second `CRCX` on an endpoint. |
| 43 | When the `X-Osmo-IGN: C` is sent for any one `CRCX` on an endpoint, CallID |
| 44 | mismatches will be ignored for that and all subsequent messages for that |
| 45 | endpoint. 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 | |
| 48 | This is particularly useful for a BSC that is connected to an A/SCCPlite MSC, |
| 49 | where the BSC and MSC each are expected to configure their respective own |
| 50 | connection on a shared endpoint. For A/SCCPlite, it is impossible for the BSC |
| 51 | to know the CallID that the MSC will use, so CallID mismatches are inevitable. |
| 52 | See also OsmoBSC, which will by default pass the `X-Osmo-IGN: C` header for |
| 53 | endpoints associated with an A/SCCPlite MSC. |
| 54 | |
| 55 | .Example: `CRCX` message that instructs OsmoMGW to ignore CallID mismatches |
| 56 | ---- |
| 57 | CRCX 2 rtpbridge/123abc@mgw MGCP 1.0 |
| 58 | M: recvonly |
| 59 | C: 2 |
| 60 | L: p:20 |
| 61 | X-Osmo-IGN: C |
| 62 | |
| 63 | v=0 |
| 64 | c=IN IP4 123.12.12.123 |
| 65 | m=audio 5904 RTP/AVP 97 |
| 66 | a=rtpmap:97 GSM-EFR/8000 |
| 67 | a=ptime:40 |
| 68 | ---- |
Pau Espin Pedrol | f7de9ae | 2019-07-05 15:22:53 +0200 | [diff] [blame] | 69 | |
| 70 | === `X-Osmux` |
| 71 | |
| 72 | See <<mgcp-extension-osmux>> |