Attention is currently required from: falconia.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/36967?usp=email )
Change subject: gsm48_ie: add helper function for speech bearer cap on GSM MS side
......................................................................
Patch Set 1: Code-Review+1
(1 comment)
Patchset:
PS1:
LGTM. I'm not entirely sure if this should go into the library or into osmocom-bb, though. But I have no strong opinion either way. Let's see what others think.
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36967?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Iaf41687da1d377e98f26e6a16d991ab7d95be0fc
Gerrit-Change-Number: 36967
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Comment-Date: Fri, 31 May 2024 21:31:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: fixeria, laforge, neels, nt2mku.
falconia has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/36784?usp=email )
Change subject: gsm48_encode_bearer_cap(): omit octet 3a if only GSM-FR/GSM-HR v1 is supported
......................................................................
Patch Set 10:
(1 comment)
Patchset:
PS10:
> I'm happy to go with what falcoina proposes, especially as she is offering to do the actual work. […]
Here it is:
https://gerrit.osmocom.org/c/libosmocore/+/36967
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36784?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ia09abb32a8458384151a6ae28744835ea440fc5b
Gerrit-Change-Number: 36784
Gerrit-PatchSet: 10
Gerrit-Owner: nt2mku <degrunert.web(a)googlemail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: falconia <falcon(a)freecalypso.org>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: nt2mku <degrunert.web(a)googlemail.com>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 31 May 2024 21:09:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: comment
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/36967?usp=email )
Change subject: gsm48_ie: add helper function for speech bearer cap on GSM MS side
......................................................................
gsm48_ie: add helper function for speech bearer cap on GSM MS side
The speech version list part of TS 24.008 section 10.5.4.5 bearer
capability IE is valid only in the MS->network direction, and will
thus only need to be set by GSM MS implementations. The "natural"
input to the construction of this IE is the list of supported speech
codecs in the order of preference, but spec-compliant output requires
additional quirks:
* Radio channel requirement bits need to be set based on the v1-only
subset of the full speech version list;
* There is a curious requirement (commonly ignored by other implementors)
that the full form of the speech version list shall be elided from
the final output if only v1 codecs are supported.
Provide a helper function that finishes filling out the full
struct gsm_mncc_bearer_cap after the caller has set only the speech
version list and the CTM support flag.
Change-Id: Iaf41687da1d377e98f26e6a16d991ab7d95be0fc
---
M include/osmocom/gsm/gsm48_ie.h
M src/gsm/gsm48_ie.c
2 files changed, 92 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/36967/1
diff --git a/include/osmocom/gsm/gsm48_ie.h b/include/osmocom/gsm/gsm48_ie.h
index 4768283..c6b3a07 100644
--- a/include/osmocom/gsm/gsm48_ie.h
+++ b/include/osmocom/gsm/gsm48_ie.h
@@ -29,6 +29,8 @@
/* encode 'bearer capability' */
int gsm48_encode_bearer_cap(struct msgb *msg, int lv_only,
const struct gsm_mncc_bearer_cap *bcap);
+/* prepare speech bearer cap on GSM MS side */
+int gsm48_ms_prepare_speech_bearer_cap(struct gsm_mncc_bearer_cap *bcap);
/* decode 'call control cap' */
int gsm48_decode_cccap(struct gsm_mncc_cccap *ccap, const uint8_t *lv);
/* encode 'call control cap' */
diff --git a/src/gsm/gsm48_ie.c b/src/gsm/gsm48_ie.c
index b95609f..b410ce4 100644
--- a/src/gsm/gsm48_ie.c
+++ b/src/gsm/gsm48_ie.c
@@ -371,6 +371,69 @@
return 0;
}
+/*! This function is meant to be called only by GSM MS implementations
+ * (not network side), and only for speech calls. The caller needs to
+ * fill in speech_ver[] and speech_ctm members of struct gsm_mncc_bearer_cap,
+ * then this function fills in the rest, producing a struct that is
+ * good to pass to gsm48_encode_bearer_cap().
+ * \param[in/out] bcap partially filled on input, completely filled on output
+ * \returns 0 on success; negative on error */
+int gsm48_ms_prepare_speech_bearer_cap(struct gsm_mncc_bearer_cap *bcap)
+{
+ int s;
+ int fr_pos = -1, hr_pos = -1;
+ bool newer_codecs = false;
+
+ bcap->transfer = GSM48_BCAP_ITCAP_SPEECH;
+ bcap->mode = GSM48_BCAP_TMOD_CIRCUIT;
+ bcap->coding = GSM48_BCAP_CODING_GSM_STD;
+
+ /* find FRv1 and HRv1 in the caller-filled speech_ver[] list */
+ for (s = 0; bcap->speech_ver[s] >= 0; s++) {
+ switch (bcap->speech_ver[s]) {
+ case GSM48_BCAP_SV_FR:
+ if (fr_pos >= 0) /* duplicates invalid */
+ return -EINVAL;
+ fr_pos = s;
+ break;
+ case GSM48_BCAP_SV_HR:
+ if (hr_pos >= 0) /* duplicates invalid */
+ return -EINVAL;
+ hr_pos = s;
+ break;
+ default:
+ newer_codecs = true;
+ break;
+ }
+ }
+ /* FRv1 support is mandatory */
+ if (fr_pos < 0)
+ return -EINVAL;
+
+ /* Radio channel req bits are for ancient GSM networks that predate
+ * the addition of octets 3a etc: they indicate the v1-only subset
+ * of the full speech version list. */
+ if (hr_pos < 0)
+ bcap->radio = GSM48_BCAP_RRQ_FR_ONLY;
+ else if (fr_pos < hr_pos)
+ bcap->radio = GSM48_BCAP_RRQ_DUAL_FR;
+ else
+ bcap->radio = GSM48_BCAP_RRQ_DUAL_HR;
+
+ /* TS 24.008 section 10.5.4.5.1 says that octets 3a etc "shall"
+ * be included only if the MS supports either CTM text telephony
+ * or at least one newer-than-v1 speech codec. Other GSM MS
+ * implementations with available source code don't follow this
+ * stipulation, probably on the reasoning that if the code
+ * implementation is new enough to know about octets 3a etc,
+ * then the product it goes into will support at least EFR
+ * if not AMR - but let's honor the word of the spec
+ * for brownie points. */
+ if (!newer_codecs && !bcap->speech_ctm)
+ bcap->speech_ver[0] = -1; /* empty list => no octet 3a */
+ return 0;
+}
+
/*! Decode TS 04.08 Call Control Capabilities IE (10.5.4.5a)
* \param[out] ccap Caller-provided memory for decoded CC capabilities
* \param[in] lv Length-Value of IE
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36967?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Iaf41687da1d377e98f26e6a16d991ab7d95be0fc
Gerrit-Change-Number: 36967
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-MessageType: newchange
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/36966?usp=email )
Change subject: ipaccess-config: fix crash when doing test procedures
......................................................................
Patch Set 1:
This change is ready for review.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/36966?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I69812847d802e1893a138860fb18055ffd666698
Gerrit-Change-Number: 36966
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Fri, 31 May 2024 17:10:58 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/36964?usp=email )
Change subject: ipaccess-config: rename build_physconf to build_physconf_arfcn_by_rxlev
......................................................................
Patch Set 2:
This change is ready for review.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/36964?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I6e2d27c10dc9075f06070bb784369bbd1d75f88e
Gerrit-Change-Number: 36964
Gerrit-PatchSet: 2
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Comment-Date: Fri, 31 May 2024 17:10:54 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
falconia has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/36895?usp=email )
Change subject: include/osmocom/gsm: add rtp_extensions.h
......................................................................
include/osmocom/gsm: add rtp_extensions.h
Previous patches add definitions of GSM0808_IE_THEMWI_RTP_EXTENSIONS
and RSL_IE_OSMO_RTP_EXTENSIONS to BSSMAP and RSL; this new header file
provides definitions for individual bits in the single value octet
of the new IE.
Related: OS#6448
Change-Id: I0eccfe5ddcf44f8f20440acb01e2d4870ec0cd91
---
M include/osmocom/gsm/Makefile.am
A include/osmocom/gsm/rtp_extensions.h
2 files changed, 39 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
pespin: Looks good to me, but someone else must approve
diff --git a/include/osmocom/gsm/Makefile.am b/include/osmocom/gsm/Makefile.am
index 5678a51..e42ffec 100644
--- a/include/osmocom/gsm/Makefile.am
+++ b/include/osmocom/gsm/Makefile.am
@@ -50,6 +50,7 @@
oap_client.h \
rlp.h \
rsl.h \
+ rtp_extensions.h \
rxlev_stat.h \
sysinfo.h \
tlv.h \
diff --git a/include/osmocom/gsm/rtp_extensions.h b/include/osmocom/gsm/rtp_extensions.h
new file mode 100644
index 0000000..edea431
--- /dev/null
+++ b/include/osmocom/gsm/rtp_extensions.h
@@ -0,0 +1,23 @@
+/*
+ * Themyscira Wireless Technical Specification TW-TS-003 defines a BSSMAP
+ * extension whereby a CN implementation and a BSS implementation can
+ * negotiate the use of non-3GPP-standard extensions to RTP user plane,
+ * extensions that modify RTP formats counter to the stipulations of
+ * 3GPP TS 48.103. There is also a private Osmocom-defined IE in Abis RSL
+ * that communicates the same RTP extensions from OsmoBSC to OsmoBTS.
+ *
+ * This header file defines the meaning of the bits in the first (and currently
+ * only) value octet of the TLV IE added to BSSMAP and RSL interfaces,
+ * namely, GSM0808_IE_THEMWI_RTP_EXTENSIONS and RSL_IE_OSMO_RTP_EXTENSIONS.
+ * It is based on this authoritative definition:
+ *
+ * https://www.freecalypso.org/specs/tw-ts-003-v010002.txt
+ *
+ * Section 5.3 in the above specification defines the assignment of
+ * individual bits in the single value octet.
+ */
+
+#pragma once
+
+#define OSMO_RTP_EXT_TWTS001 0x01
+#define OSMO_RTP_EXT_TWTS002 0x02
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36895?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I0eccfe5ddcf44f8f20440acb01e2d4870ec0cd91
Gerrit-Change-Number: 36895
Gerrit-PatchSet: 3
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
falconia has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/36704?usp=email )
Change subject: bts_features: add feature flags for TWTS001 and TWTS002
......................................................................
bts_features: add feature flags for TWTS001 and TWTS002
TW-TS-001 and TW-TS-002 (Themyscira Wireless Technical Specifications)
are enhanced RTP payload formats that replicate the functionality and
semantics of 3GPP TS 48.060 and 48.061 (respectively) over IP transport.
Companion spec TW-TS-003 defines a BSSMAP extension whereby the CN
tells the BSS that it wishes to use these otherwise non-standard RTP
formats - but these RTP extensions need to originate at the BTS, as
their main purpose is to pass along information that is otherwise lost
in RTP transport with standard payload formats.
Define feature flags whereby OsmoBTS can tell OsmoBSC that it supports
these RTP extensions.
Related: OS#6448
Change-Id: Ia2cd1d5fa37e9d10927ca5d6cad79ec538fd0a11
---
M include/osmocom/gsm/bts_features.h
M src/gsm/bts_features.c
2 files changed, 28 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, approved
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h
index cf1db4a..8da08d8 100644
--- a/include/osmocom/gsm/bts_features.h
+++ b/include/osmocom/gsm/bts_features.h
@@ -36,6 +36,8 @@
BTS_FEAT_OSMUX, /* Osmux (Osmocom RTP muxing) support */
BTS_FEAT_VBS, /* Voice Broadcast Service support, 3GPP TS 43.069 */
BTS_FEAT_VGCS, /* Voice Group Call Service support, 3GPP TS 44.068 */
+ BTS_FEAT_TWTS001, /* TW-TS-001: enhanced RTP transport for FR & EFR */
+ BTS_FEAT_TWTS002, /* TW-TS-002: enhanced RTP transport for HRv1 */
_NUM_BTS_FEAT
};
diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c
index b6cd82e..158937a 100644
--- a/src/gsm/bts_features.c
+++ b/src/gsm/bts_features.c
@@ -47,6 +47,8 @@
{ BTS_FEAT_OSMUX, "Osmux (Osmocom RTP multiplexing)" },
{ BTS_FEAT_VBS, "Voice Broadcast Service" },
{ BTS_FEAT_VGCS, "Voice Group Call Service" },
+ { BTS_FEAT_TWTS001, "TW-TS-001 RTP format" },
+ { BTS_FEAT_TWTS002, "TW-TS-002 RTP format" },
{ 0, NULL }
};
@@ -88,6 +90,8 @@
{ BTS_FEAT_OSMUX, "OSMUX" },
{ BTS_FEAT_VBS, "VBS" },
{ BTS_FEAT_VGCS, "VGCS" },
+ { BTS_FEAT_TWTS001, "TWTS001" },
+ { BTS_FEAT_TWTS002, "TWTS002" },
{}
};
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/36704?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ia2cd1d5fa37e9d10927ca5d6cad79ec538fd0a11
Gerrit-Change-Number: 36704
Gerrit-PatchSet: 3
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged