diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-01-28 17:40:49 +0100 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2018-02-19 11:43:07 +0100 |
commit | 04cc5d64c6c959b9dc4ed52f30b5378bea817c1d (patch) | |
tree | 9e06525e883476bc496a5b3bb066be0246790316 /src/libbsc/bsc_api.c | |
parent | c8b0e922303b5e70f73d2f175d7c5b3f370df50f (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.c | 7 |
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: |