aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08_utils.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-09-06 09:41:50 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-09-06 09:41:50 +0800
commit76fc4a34b8a51a724cacdd01ef4581c6dc3d624b (patch)
treec02809a8ac6dac63277368511ccb6a0fd23e2aa2 /openbsc/src/gsm_04_08_utils.c
parent78891078fec12099122d474db6c974cd98cc11b5 (diff)
chan: Add configuration to handle paging any with TCH
It is possible that the MSC is not sending the channel type it needs for the operations it wants to do. Add a configuration option to assign a TCH in case of paging any requests. It can be a good idea to leave SDCCHs free for location updating requests and use the TCH for SMS-MT and CC-MT.
Diffstat (limited to 'openbsc/src/gsm_04_08_utils.c')
-rw-r--r--openbsc/src/gsm_04_08_utils.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/openbsc/src/gsm_04_08_utils.c b/openbsc/src/gsm_04_08_utils.c
index bb0174612..e8d54ac98 100644
--- a/openbsc/src/gsm_04_08_utils.c
+++ b/openbsc/src/gsm_04_08_utils.c
@@ -153,6 +153,16 @@ void gsm_net_update_ctype(struct gsm_network *network)
*/
if (network->neci)
network->ctype_by_chreq[CHREQ_T_EMERG_CALL] = GSM_LCHAN_TCH_H;
+
+ if (network->pag_any_tch) {
+ if (network->neci) {
+ network->ctype_by_chreq[CHREQ_T_PAG_R_ANY_NECI0] = GSM_LCHAN_TCH_H;
+ network->ctype_by_chreq[CHREQ_T_PAG_R_ANY_NECI1] = GSM_LCHAN_TCH_H;
+ } else {
+ network->ctype_by_chreq[CHREQ_T_PAG_R_ANY_NECI0] = GSM_LCHAN_TCH_F;
+ network->ctype_by_chreq[CHREQ_T_PAG_R_ANY_NECI1] = GSM_LCHAN_TCH_F;
+ }
+ }
}
enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, u_int8_t ra)