csd_bs: force rate adaptation mode for CSD calls to V.110

Certain calls (seen on very old Nokias) won't have the rate adaptation flag
set on "analog" CSD calls. The field for the intermediate rate (after RA) is
still filled correctly.
Workaround this by setting the RA to V.110 whenever the RA is unset but an
intermediate rate is specified.

Change-Id: I5b3e5649fe071636f1becddfbfee06f9175a5f17
This commit is contained in:
Manawyrm 2023-10-15 14:37:22 +02:00 committed by laforge
parent 1ed12eac93
commit 2984235454
1 changed files with 5 additions and 0 deletions

View File

@ -236,6 +236,11 @@ enum csd_bs csd_bs_from_bearer_cap(const struct gsm_mncc_bearer_cap *cap, bool t
enum gsm48_bcap_user_rate rate = cap->data.user_rate;
bool async = cap->data.async;
/* 3.1kHz CSD calls won't have the rate adaptation field set
but do require rate adaptation. */
if (cap->data.interm_rate && !ra)
ra = GSM48_BCAP_RA_V110_X30;
if (ra == GSM48_BCAP_RA_V110_X30 && async && transp) {
switch (rate) {
case GSM48_BCAP_UR_300: