falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/41529?usp=email )
Change subject: mgcp_client: add support for VND.THEMWI.CCSD codec ......................................................................
mgcp_client: add support for VND.THEMWI.CCSD codec
TW-TS-007 defines a compressed RTP payload format for GSM CSD, reducing the payload size from 160 bytes of mostly constant filler bits to 16, 32 or 37 bytes depending on specific CSD mode:
https://www.freecalypso.org/specs/tw-ts-007-v010001.txt
Clause 9 specifies payload type number 127 when this pseudo-codec is used on AoIP interface, while Annex A gives it the name VND.THEMWI.CCSD for SDP.
Add support for this codec to libosmo-mgcp-client, to make it possible for OsmoBSC and OsmoMSC to request this codec from MGWs.
Beyond the present client library addition, desired support for compressed CSD per TW-TS-007 in Osmocom components is as follows:
* Equip osmo-mgw rtpbridge with ability to convert between CCSD and CLEARMODE on the fly, using already merged libosmotrau functions for the actual conversion;
* Add CCSD support to tw-e1abis-mgw while regular osmo-mgw has no CSD support at all in E1 mode; possibly bring tw-e1abis-mgw into Osmocom at some point;
* Have OsmoBSC direct its MGW to emit CCSD when the CN requested it via TW-TS-003 BSSMAP extension;
* Possibly add compressed CSD support to OsmoMSC.
Change-Id: I6e4e15b5b3d20036aae8472bd94bc878b718ddd4 --- M include/osmocom/mgcp_client/mgcp_client.h M src/libosmo-mgcp-client/mgcp_client.c 2 files changed, 2 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/41529/1
diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 1d33690..d53f442 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -58,6 +58,7 @@ CODEC_AMRWB_16000_1 = 113, /* 3GPP TS 48.103 table 5.4.2.2.1 */ CODEC_IUFP = 96, CODEC_CLEARMODE = 120, /* 3GPP TS 48.103 table 5.4.2.2.1 */ + CODEC_COMPR_CSD = 127, /* compressed CSD per TW-TS-007 */ }; /* Note: when new codec types are added, the corresponding value strings * in mgcp_client.c (codec_table) must be updated as well. Enumerations diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 63d03f9..4924be4 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -61,6 +61,7 @@ { CODEC_AMRWB_16000_1, "AMR-WB/16000/1" }, { CODEC_IUFP, "VND.3GPP.IUFP/16000" }, { CODEC_CLEARMODE, "CLEARMODE/8000" }, + { CODEC_COMPR_CSD, "VND.THEMWI.CCSD/8000" }, { 0, NULL }, };