aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManawyrm <git@tbspace.de>2023-10-14 16:57:12 +0200
committerlaforge <laforge@osmocom.org>2023-10-17 11:22:10 +0000
commit714843a455a00da74377f4636b73aa8b5a308a27 (patch)
treea002f03321a2d00ea9549ee2f57a45197e3a5f36
parentde776d7bc03673ec0d240ec1deec4a7b9eb4ee7a (diff)
gsm48_ie.c: change bearer cap structure in outgoing CSD calls
Outgoing CSD calls were previously encoded with the Bearer Capability 1 - Octet 4 "Structure" field set to 3 - Unstructured. Many Nokia, Sony Ericsson and Huawei devices won't accept incoming CSD calls with these bits set. Set them to 0 - Service data unit integrity for now, which seems to work and make all tested devices happy. Change-Id: Ieb5bca3d3578abd28e18808752e1c312ce7c4ce0
-rw-r--r--src/gsm/gsm48_ie.c2
-rw-r--r--tests/gsm0408/gsm0408_test.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gsm/gsm48_ie.c b/src/gsm/gsm48_ie.c
index 7de1f981..bb86cf42 100644
--- a/src/gsm/gsm48_ie.c
+++ b/src/gsm/gsm48_ie.c
@@ -339,7 +339,7 @@ int gsm48_encode_bearer_cap(struct msgb *msg, int lv_only,
case GSM48_BCAP_ITCAP_FAX_G3:
lv[i++] |= 0x80; /* last IE of octet 3 etc */
/* octet 4 */
- lv[i++] = 0xb8;
+ lv[i++] = 0x88;
/* octet 5 */
lv[i++] = 0x80 | ((bcap->data.rate_adaption & 3) << 3)
| (bcap->data.sig_access & 7);
diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c
index 5b3f5cde..e82178d4 100644
--- a/tests/gsm0408/gsm0408_test.c
+++ b/tests/gsm0408/gsm0408_test.c
@@ -31,7 +31,7 @@
#include <osmocom/core/msgb.h>
-static const uint8_t csd_9600_v110_lv[] = { 0x07, 0xa1, 0xb8, 0x89, 0x21, 0x15, 0x63, 0x80 };
+static const uint8_t csd_9600_v110_lv[] = { 0x07, 0xa1, 0x88, 0x89, 0x21, 0x15, 0x63, 0x80 };
static const struct gsm_mncc_bearer_cap bcap_csd_9600_v110 = {
.transfer = GSM48_BCAP_ITCAP_UNR_DIG_INF,