aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-12 20:58:20 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-12 20:58:20 +0100
commit210c850a3663eaf333ad44270415220aa1fe9d70 (patch)
tree5c00620295e94b825cb4b650c58765557836725c /openbsc
parent9385c1172791e2bd1cdd4081648ad55ffa4b6f28 (diff)
If we're trying to allocate TCH/H but don't have it, fallback to TCH/F
The rationale is as following: If we have NECI=1, then the phone will request a channel with CHREQ "0100xxxx Originating speech call from dual-rate mobile station when TCH/H is sufficient and supported by the MS for speech calls", then we will try to allocate a TCH/H [as it is sufficient]. However, if there are no free TCH/H slots on the BTS, we abandon and can't handle the MO call at all :(
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/chan_alloc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/openbsc/src/chan_alloc.c b/openbsc/src/chan_alloc.c
index 7ba679c87..6bf65f325 100644
--- a/openbsc/src/chan_alloc.c
+++ b/openbsc/src/chan_alloc.c
@@ -203,6 +203,9 @@ struct gsm_lchan *lchan_alloc(struct gsm_bts *bts, enum gsm_chan_t type)
break;
case GSM_LCHAN_TCH_H:
lchan =_lc_find_bts(bts, GSM_PCHAN_TCH_H);
+ /* If we don't have TCH/H available, fall-back to TCH/F */
+ if (!lchan)
+ lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F);
break;
default:
fprintf(stderr, "Unknown gsm_chan_t %u\n", type);