diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-09-06 09:41:50 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-09-06 09:41:50 +0800 |
commit | 76fc4a34b8a51a724cacdd01ef4581c6dc3d624b (patch) | |
tree | c02809a8ac6dac63277368511ccb6a0fd23e2aa2 /openbsc/src/gsm_04_08_utils.c | |
parent | 78891078fec12099122d474db6c974cd98cc11b5 (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.c | 10 |
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) |