diff options
author | Manawyrm <git@tbspace.de> | 2023-10-14 16:57:12 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2023-10-17 11:22:10 +0000 |
commit | 714843a455a00da74377f4636b73aa8b5a308a27 (patch) | |
tree | a002f03321a2d00ea9549ee2f57a45197e3a5f36 | |
parent | de776d7bc03673ec0d240ec1deec4a7b9eb4ee7a (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.c | 2 | ||||
-rw-r--r-- | tests/gsm0408/gsm0408_test.c | 2 |
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, |