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
This commit is contained in:
Harald Welte 2018-01-28 17:40:49 +01:00 committed by Philipp Maier
parent c8b0e92230
commit 04cc5d64c6
1 changed files with 7 additions and 0 deletions

View File

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