Re: Augmenting mobile-broadband-provider-info



On Mon, 2009-11-23 at 00:05 +0100, Michael 'Mickey' Lauer wrote: 
> > > * dial prefix per country
> > 
> > Do you mean the international dial code like +1 for the US, etc?  We
> > could do this.
> 
> Yes, that's what I mean.
> 
> > At least in the case of the timezone db, I think there's better places
> > to put that.  I realize not all platforms use glibc, but I have to
> > believe that even if you don't, there's going to be some timezone/locale
> > information already on the system that it would be a shame to duplicate.
> 
> Ok, I agree with that. Could we at least add countries and provider's
> that do not necessarily offer mobile broadband but just telephony? A
> mapping from MCC MNC to country and provider name can be helpful in
> various ways.

I agree. This would turn m-b-p-i into cellular-provider-info. 


When we are now talking about augmenting, I would like to make some
proposals also. I would like to have optional network-name field added
to gsm section. Virtual providers use same parent networks with same
mcc/mnc pairs and there's no way telling them a part. Here's an example
with two Finnish operators which both operate on DNA network:

DNA:
at+cops=0,2
at+cops?
+COPS: 0,2,"24412",2

GoMobile:
at+cops=0,2
at+cops?
+COPS: 0,2,"24412",2

Fortunately each provider conveniently happens to claim they "own" the
network they are operating in:

DNA:
at+cops=0,0
at+cops?
+COPS: 0,0,"dna",2

GoMobile:
at+cops=0,0
at+cops?
+COPS: 0,0,"go.mobile",2

We can use this long alphabetical format of the network to identify the
virtual providers from each other:

        <provider>
                <name>Dna</name>
                <gsm>
                        <network-name>dna</network-name>
                        <network-id mcc="244" mnc="12"/>

                        <apn value="internet">
                                <dns>217.78.192.22</dns>
                                <dns>217.78.192.78</dns>
                        </apn>
                </gsm>
        </provider>
        <provider>
                <name>GoMobile</name>
                <gsm>
                        <network-name>go.mobile</network-name>
                        <network-id mcc="244" mnc="12"/>

                        <apn value="internet.gomobile.fi">
                                <dns>217.78.192.22</dns>
                                <dns>217.78.192.78</dns>
                        </apn>
                </gsm>
        </provider>

This allows us to automatically select the correct provider.

Any thoughts?


The first proposal is pretty easy to add on top of the current format.
It just adding one field. However in the current format the network-id
fields have to be duplicated with each virtual provider. For example in
Finland there are at least three virtual operators operating on DNA
network which has four mcc/mnc pairs[0]. Database looks like this:

        <provider>
                <name>Dna</name>
                <gsm>
                        <network-name>dna</network-name>
                        <network-id mcc="244" mnc="03"/>
                        <network-id mcc="244" mnc="04"/>
                        <network-id mcc="244" mnc="12"/>
                        <network-id mcc="244" mnc="13"/>

                        <apn value="internet">
                                <dns>217.78.192.22</dns>
                                <dns>217.78.192.78</dns>
                        </apn>
                </gsm>
        </provider>
        <provider>
                <name>GoMobile</name>
                <gsm>
                        <network-name>go.mobile</network-name>
                        <network-id mcc="244" mnc="03"/>
                        <network-id mcc="244" mnc="04"/>
                        <network-id mcc="244" mnc="12"/>
                        <network-id mcc="244" mnc="13"/>

                        <apn value="internet.gomobile.fi">
                                <dns>217.78.192.22</dns>
                                <dns>217.78.192.78</dns>
                        </apn>
                </gsm>
        </provider>


I suggest that the next database format has structure based on parent
network, something like this:

<country>
   <network>
       <gsm>

           <network-id mcc="244" mnc="03"/>
           <network-id mcc="244" mnc="04"/>
           <network-id mcc="244" mnc="12"/>
           <network-id mcc="244" mnc="13"/>

           <provider>
               <name>Dna</name>
               <network-name>dna</network-name>

                   <apn value="internet">
                       <dns>217.78.192.22</dns>
                       <dns>217.78.192.78</dns>
                   </apn>
           <provider>
           <provider>
               <name>GoMobile</name>
               <network-name>go.mobile</network-name>

               <apn value="internet.gomobile.fi">
                   <dns>217.78.192.22</dns>
                   <dns>217.78.192.78</dns>
               </apn>
          <provider>

       </gsm>
   </network>
</country>        

Naturally the fields can be nested and structured differently. We must
first decide what information we could and want to include in
cellular-provider-info. I'm anyway planning to provide converter script
which allows to convert the current database into older formats. This
way we can prepare updates to older releases.


We also need some sort of information gathering tool, maybe build on top
of modem-manager which is easy to use and allows even non technical
people to easily participate in data gathering for the database. Maybe
some python based application which can be loaded off the web and
executed in place and which allows easily to send the data to a server
or bug tracker.. Anyway the information in the database is growing
steadily and we need some utilities to help to bring it to next level.
If the database grows comprehensive enough we can begin making intuitive
decisions on behalf of the user.


 -- Antti

[0]
http://www2.ficora.fi/numerointi/nure_numbering.asp?nums=mnc&lang=en 

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]