aboutsummaryrefslogtreecommitdiffstats
path: root/src/libbsc/bsc_api.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-01-28 17:40:49 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2018-02-19 11:43:07 +0100
commit04cc5d64c6c959b9dc4ed52f30b5378bea817c1d (patch)
tree9e06525e883476bc496a5b3bb066be0246790316 /src/libbsc/bsc_api.c
parentc8b0e922303b5e70f73d2f175d7c5b3f370df50f (diff)
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
Diffstat (limited to 'src/libbsc/bsc_api.c')
-rw-r--r--src/libbsc/bsc_api.c7
1 files changed, 7 insertions, 0 deletions
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: