Proposal for a "channel request" interface...
Reuqests for a subscriber a stored within the gsm_subscriber
datastructure and it will keep track how many channels are
allocated for this user and of which type to decide on policy...
e.g. attempt to submit SMS during a phone call and not doing
paging but a simple (immediate) assignment of the channel...
diff --git a/openbsc/src/gsm_subscriber.c b/openbsc/src/gsm_subscriber.c
index 3f608ec..3a81793 100644
--- a/openbsc/src/gsm_subscriber.c
+++ b/openbsc/src/gsm_subscriber.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <openbsc/gsm_subscriber.h>
+#include <openbsc/paging.h>
#include <openbsc/debug.h>
#include <openbsc/db.h>
@@ -45,6 +46,8 @@
llist_add_tail(&s->entry, &active_subscribers);
s->use_count = 1;
+ INIT_LLIST_HEAD(&s->requests);
+
return s;
}
@@ -131,6 +134,13 @@
return NULL;
}
+void subscr_get_channel(struct gsm_subscriber *subscr,
+ struct gsm_network *network, int type,
+ gsm_cbfn *cbfn, void *param)
+{
+ paging_request(network, subscr, type, cbfn, param);
+}
+
void subscr_put_channel(struct gsm_lchan *lchan)
{
/*
@@ -141,3 +151,4 @@
*/
put_lchan(lchan);
}
+