aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/paging.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2009-08-21 14:55:57 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2009-09-28 05:14:25 +0200
commitb28285d8e78acb1041c2f60fcc1ecb133a731adc (patch)
treebc39cf036af824e9ee45ea974fb7fa223df0309a /openbsc/src/paging.c
parent2223025e218263af6e1157ef1eeca1686cefe4b9 (diff)
[paging] Implement paging by IMSI.
Try to page by IMSI when the TMSI is not set. This will be required to properly support the MSC/BSSMAP.
Diffstat (limited to 'openbsc/src/paging.c')
-rw-r--r--openbsc/src/paging.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/openbsc/src/paging.c b/openbsc/src/paging.c
index b8552133e..ae46186e8 100644
--- a/openbsc/src/paging.c
+++ b/openbsc/src/paging.c
@@ -93,11 +93,15 @@ static void page_ms(struct gsm_paging_request *request)
unsigned int mi_len;
unsigned int page_group;
- DEBUGP(DPAG, "Going to send paging commands: '%s'\n",
- request->subscr->imsi);
+ DEBUGP(DPAG, "Going to send paging commands: imsi: '%s' tmsi: '0x%x'\n",
+ request->subscr->imsi, request->subscr->tmsi);
+
+ if (request->subscr->tmsi == GSM_RESERVED_TMSI)
+ mi_len = gsm48_generate_mid_from_imsi(mi, request->subscr->imsi);
+ else
+ mi_len = gsm48_generate_mid_from_tmsi(mi, request->subscr->tmsi);
page_group = calculate_group(request->bts, request->subscr);
- mi_len = gsm48_generate_mid_from_tmsi(mi, request->subscr->tmsi);
rsl_paging_cmd(request->bts, page_group, mi_len, mi,
request->chan_type);
}