<div dir="ltr">A few thoughts:<div><br></div><div>I agree with Aleksander that MMModemCdmaActivationState is tied to Activate() and ActivateManual() so I'm not sure if we want to merge this property with SubscriptionState.  SubscriptionState, as proposed, is specific to 3GPP.  Looking forward, we can have a generic subscription state in the modem interface but that should come where there is a uniform activation/top off mechanism (eg. a walled garden portal that each carrier implements to allow for activation/topping off).</div>
<div><br></div><div>There are two ways the subscription state is calculated.  The first is by examining the registration reject code.  This approach can only determine if an account has been provisioned, it cannot be used to determine data quota availability.  Because we only examine registration reject code, this approach works across various modems.  The patch will be coming shortly.  The second way we determine subscription state is via PCO.  There was a PCO patch previously submitted by Altair.  We've asked Altair to rework that patch to use this new SubscriptionState property.  As it stands today, the possible values that PCO can tell us is if the account has been provisioned and whether it has any data left.  The PCO approach is new and not supported by all modems.</div>
<div><div><br class="">As far as the use case is concerned, users on Verizon can purchase pre-paid SIMs today that comes unactivated.  The user has to activate it through Verizon's portal.  We currently direct users to this portal if we detect that the SIM is not provisioned.</div>
</div><div><br></div><div>If you're okay with keeping SubscriptionState in 3GPP, we'll address the code review comments in the next patch.</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Sep 30, 2013 at 9:47 AM, Aleksander Morgado <span dir="ltr"><<a href="mailto:aleksander@lanedo.com" target="_blank">aleksander@lanedo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 09/30/2013 06:14 PM, Dan Williams wrote:<br>
>>>> This patch adds a new property, SubscriptionState, to<br>
>>>>> > >> > org.freedesktop.ModemManager1.Modem.Modem3gpp.  The subscription state<br>
>>>>> > >> > is used to indicate whether an account has been provisioned, and if so,<br>
>>>>> > >> > whether the account has any data left.<br>
>>>>> > >> ><br>
>>>>> > >> > There will be two subsequent patches that will make use of this new property.<br>
>>> > > There seems to be some conceptual overlap with the 3gpp2<br>
>>> > > MMModemCdmaActivationState, perhaps this property could instead be a<br>
>>> > > generic Modem interface property instead, and the 3GPP2 stuff could<br>
>>> > > update both ActivateState and the generic SubscriptionStatus property<br>
>>> > > from the same data?<br>
>>> > ><br>
>>> > > Or are there potentially more 3GPP states for the subscription than what<br>
>>> > > you've defined here?<br>
>> ><br>
>> > Do you really think it's a good idea to merge these? If the 3GPP ones<br>
>> > are 'unprovisioned', 'provisioned-with-data' and<br>
>> > 'provisioned-data-exhausted'; they really have not much to do with the<br>
>> > 3GPP2 ones. Also, I understand that not-yet-activated accounts in 3GPP2<br>
>> > may be normal (e.g. when you buy a new device); but I don't think that's<br>
>> > the case in 3GPP.<br>
> You may certainly be correct here; I'm just trying to generate some<br>
> discussion around generic activation/provisioning states.  I see quite a<br>
> few parallels in the *behavior* between 3GPP provisioning and 3GPP2<br>
> activation and was wondering if there was a more generic means we could<br>
> use to represent this, such that clients don't have to care whether it's<br>
> 3GPP2 or 3GPP.<br>
><br>
> Some clients wouldn't necessarily know how to start<br>
> provisioning/activating, but they would certainly want to know if the<br>
> device was provisioned or not, so they could indicate to the user that<br>
> they have to go to some website to provision the device instead of the<br>
> user expecting they can use it immediately after inserting the SIM.<br>
> Which might be useful as a generic property, what do you think?<br>
<br>
</div></div>I still wonder whether users will ever try to use a non-provisioned<br>
*new* SIM, as they will always get it provisioned when they buy it.<br>
Another thing would be the case with valid SIMs that after some period<br>
they no longer are valid (e.g. if you don't top-up the prepaid amount or<br>
something). But in that case, not sure how the network will notify about<br>
the registration failure to the device, don't know if that will be<br>
'unprovisioned' or just a Forbidden error. That's in part why I want to<br>
see how the code behind looks like, to understand which kind of 3GPP<br>
specific information we get about provisioning. If it's just "with-data"<br>
and "data-exhausted" (i.e. 'unprovisioned' could just be the fallback<br>
case for whenever we have no data), then the info is totally different<br>
to that of 3GPP2.<br>
<br>
Also, for 3GPP2 the usecase is otherwise much more clear; device not<br>
activated, you need to activate, so use Activate() or ActivateManual().<br>
For 3GPP the provisioning step won't be doable by the user (at least not<br>
as a ModemManager action), as far as I understand it.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Aleksander<br>
</font></span></blockquote></div><br></div>