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
This commit is contained in:
Manawyrm 2023-10-14 16:57:12 +02:00 committed by laforge
parent de776d7bc0
commit 714843a455
2 changed files with 2 additions and 2 deletions

View File

@ -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);

View File

@ -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,