aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-03-22 19:26:52 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-04-20 11:22:59 +0200
commit6d1df9ad960e3359b97bb915907af93c1b4f15fc (patch)
tree6f6a5100c940d9927d5d46e20f428852a3adedd8 /openbsc/src/libmsc
parent9bc1ddc849714bd4f38ce9d40965793ff400606b (diff)
Add Iu paging
Add iu_page_cs() and iu_page_ps() API, also add to libiudummy for linking in tests. Implement msc_paging_request() by calling iu_page_cs().
Diffstat (limited to 'openbsc/src/libmsc')
-rw-r--r--openbsc/src/libmsc/gsm_subscriber.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/openbsc/src/libmsc/gsm_subscriber.c b/openbsc/src/libmsc/gsm_subscriber.c
index b08e27fbc..39b544b90 100644
--- a/openbsc/src/libmsc/gsm_subscriber.c
+++ b/openbsc/src/libmsc/gsm_subscriber.c
@@ -38,6 +38,7 @@
#include <openbsc/signal.h>
#include <openbsc/db.h>
#include <openbsc/chan_alloc.h>
+#include <openbsc/iu.h>
void *tall_sub_req_ctx;
@@ -168,9 +169,15 @@ static int subscr_paging_cb(unsigned int hooknum, unsigned int event,
int msc_paging_request(struct gsm_network *network, struct gsm_subscriber *subscr,
int type, gsm_cbfn *cbfn, void *data)
{
- LOGP(DMM, LOGL_ERROR, "MSC paging not implemented! want to page %s\n",
- subscr_name(subscr));
- return -1;
+ /* The subscriber was last seen in subscr->lac. Find out which
+ * BSCs/RNCs are responsible and send them a paging request via open
+ * SCCP connections (if any). */
+ /* TODO Implementing only RNC paging, since this is code on the iu branch.
+ * Need to add BSC paging at some point. */
+ return iu_page_cs(subscr->imsi,
+ subscr->tmsi == GSM_RESERVED_TMSI?
+ NULL : &subscr->tmsi,
+ subscr->lac);
}
struct subscr_request *subscr_request_channel(struct gsm_subscriber *subscr,