diff options
Diffstat (limited to 'src/osmo-bsc/osmo_bsc_api.c')
-rw-r--r-- | src/osmo-bsc/osmo_bsc_api.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index 1caaeee7c..679ecd112 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -19,6 +19,7 @@ #include <osmocom/bsc/osmo_bsc.h> #include <osmocom/bsc/bsc_msc_data.h> +#include <osmocom/bsc/bsc_subscriber.h> #include <osmocom/bsc/debug.h> #include <osmocom/bsc/gsm_04_80.h> @@ -265,6 +266,12 @@ static int complete_layer3(struct gsm_subscriber_connection *conn, return BSC_API_CONN_POL_REJECT; } + /* TODO: also extract TMSI. We get an IMSI is only because the filtering functions extract the + * IMSI to filter by IMSI. A TMSI identity is never returned here, see e.g. _cr_check_loc_upd() + * and other similar functions called from bsc_msg_filter_initial(). */ + if (imsi) + conn->bsub = bsc_subscr_find_or_create_by_imsi(msc->network->bsc_subscribers, imsi); + /* allocate resource for a new connection */ //ret = bsc_create_new_connection(conn, msc, send_ping); ret = osmo_bsc_sigtran_new_conn(conn, msc); |