From 04cc5d64c6c959b9dc4ed52f30b5378bea817c1d Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 28 Jan 2018 17:40:49 +0100 Subject: chan_compat_with_mode: signalling works over all channel types chan_compat_with_mode() currently only considered the requirements of voice/csd services. It failed to realize that GSM48_CMODE_SIGN can also be performed over a SDCCH, resulting in unneeded channel allocation/assignment to TCH type channels, e.g. for SMS. This makes TC_assignment_sign pass. Change-Id: I85ffcbd32ccd2617c897edb3b904f56bacd0684f Closes: OS#2762 --- src/libbsc/bsc_api.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c index 908671935..5f452180e 100644 --- a/src/libbsc/bsc_api.c +++ b/src/libbsc/bsc_api.c @@ -419,6 +419,13 @@ static int chan_compat_with_mode(struct gsm_lchan *lchan, int chan_mode, int ful { switch (chan_mode) { case GSM48_CMODE_SIGN: + switch (lchan->type) { + case GSM_LCHAN_TCH_F: + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_SDCCH: + return 1; + } + break; case GSM48_CMODE_SPEECH_V1: case GSM48_CMODE_SPEECH_AMR: case GSM48_CMODE_DATA_3k6: -- cgit v1.2.3