mechanism for enabling/disabling GPRS on per-user basis

We need a way how GPRS services can be enabled/disabled on a per-subscriber basis.

Most likely the application-side interface will be towards the upcoming external HLR, which then would need to communicate this to OsmoSGSN, who in turn would have (in case of disabling the user) would have to release any PDP contexts that may exist, both towards subscriber as well as towards GGSN.

In 3GPP spec language, this is the 'network access mode (nam) gprs' flag of each subscriber, which is stored in the HLR.

Our new osmo-gsup-hlr database contains nam_cs / nam_ps columns for each subscriber, and if nam_ps is not set for a LU from a SGSN, then it is rejected with GMM_CAUSE_GPRS_NOTALLOWED.

What we still need though is

a method to change this flag in the HLR itself (see external interface to change the HLR #1592)

a method to propagate if a change is made after a subscriber is already attached. I.e. the LU proceeds, as at LU time nam_ps == true. But then the flag is changed. We need to cancel (remove) the record from the SGSN, and the SGSN needs to handle that cancellation in a reasonable way.

How should external interface interact with hlr? Shall we add ctrlinterface to hlr? Or shall external interface write to db directly?

this is not clear yet at this point. I see the osmo-gsup-hlr more as aproof-of-concept implementation at this point, more or less expectingpeople with specific requirements to implement GSUP themselves or usinga GSUP-to-MAP translator.

For the context of this ticket it is important to make sure that theSGSN supports this from the GSUP side, and that somehow it can betriggered/tested somehow. Control Interface might be a sufficientapproach for now.

The latter causes "gprs" symbols to disappear from the phone. The former can be used to allow phone back when it tries again. Although there seems to be no obvious way to tell phone "come back and try gprs again - now it's allowed". The only sure way is to use flight mode to reconnect.

The latter causes "gprs" symbols to disappear from the phone. Theformer can be used to allow phone back when it tries again. Althoughthere seems to be no obvious way to tell phone "come back and try gprsagain - now it's allowed".

Well, there's nothing you can do about that, this is normal as there isno such feature in the GSM/GPRS specifications. We cannot implementwhat is not possible :)