fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/38511?usp=email )
Change subject: csd_bs: do not hard-code GSM48_BCAP_ITCAP_UNR_DIG_INF ......................................................................
csd_bs: do not hard-code GSM48_BCAP_ITCAP_UNR_DIG_INF
We should respect the Information Transfer Capability indicated during the MO data call establishment. Hard-coding UDI breaks FAX calls for some FAX machines, such as Possia Greta.
Change-Id: Ibfb9f0097ca86092320cebed13a7a642080370f1 Related: OS#4394, OS#5730 --- M src/libmsc/csd_bs.c M src/libmsc/gsm_04_08_cc.c 2 files changed, 7 insertions(+), 7 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified
diff --git a/src/libmsc/csd_bs.c b/src/libmsc/csd_bs.c index c31b1f3..41747ce 100644 --- a/src/libmsc/csd_bs.c +++ b/src/libmsc/csd_bs.c @@ -426,13 +426,6 @@
int csd_bs_list_to_bearer_cap(struct gsm_mncc_bearer_cap *cap, const struct csd_bs_list *list) { - *cap = (struct gsm_mncc_bearer_cap){ - .transfer = GSM_MNCC_BCAP_UNR_DIG, - .mode = GSM48_BCAP_TMOD_CIRCUIT, - .coding = GSM48_BCAP_CODING_GSM_STD, - .radio = GSM48_BCAP_RRQ_FR_ONLY, - }; - for (unsigned int i = 0; i < list->count; i++) { const enum csd_bs bs = list->bs[i];
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index dafb41c..e144b47 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -961,6 +961,13 @@ case GSM48_BCAP_ITCAP_3k1_AUDIO: case GSM48_BCAP_ITCAP_FAX_G3: case GSM48_BCAP_ITCAP_UNR_DIG_INF: + bearer_cap = (struct gsm_mncc_bearer_cap){ + .transfer = trans->bearer_cap.transfer, + .mode = GSM48_BCAP_TMOD_CIRCUIT, + .coding = GSM48_BCAP_CODING_GSM_STD, + .radio = GSM48_BCAP_RRQ_FR_ONLY, + }; + if (csd_bs_list_to_bearer_cap(&bearer_cap, &trans->cc.local.bearer_services) == 0) { LOG_TRANS(trans, LOGL_ERROR, "Error composing Bearer Capability for CC Setup\n");