diff options
Diffstat (limited to 'src/libmsc/gsm_04_08.c')
-rw-r--r-- | src/libmsc/gsm_04_08.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 463a09cae..d0509f9de 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -3143,6 +3143,8 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) /* If subscriber has no lchan */ if (!conn) { + uint8_t type; + /* find transaction with this subscriber already paging */ llist_for_each_entry(transt, &net->trans_list, entry) { /* Transaction of our lchan? */ @@ -3172,7 +3174,18 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) } *trans->paging_request = subscr->net; - subscr_get_channel(subscr, RSL_CHANNEED_TCH_F, setup_trig_pag_evt, trans->paging_request); + + switch (data->lchan_type) { + case GSM_LCHAN_TCH_F: + type = RSL_CHANNEED_TCH_F; + break; + case GSM_LCHAN_TCH_H: + type = RSL_CHANNEED_TCH_ForH; + break; + default: + type = RSL_CHANNEED_SDCCH; + } + subscr_get_channel(subscr, type, setup_trig_pag_evt, trans->paging_request); subscr_put(subscr); return 0; |