diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-03-22 19:26:52 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-04-20 11:22:59 +0200 |
commit | 6d1df9ad960e3359b97bb915907af93c1b4f15fc (patch) | |
tree | 6f6a5100c940d9927d5d46e20f428852a3adedd8 /openbsc/src/libmsc | |
parent | 9bc1ddc849714bd4f38ce9d40965793ff400606b (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.c | 13 |
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, |