# Patent

## Title
Registration with a mobile telecommunications service provider

## Abstract

A method performed by a mobile device to register for cellular data connection service provided by a mobile telecommunications service provider. In one embodiment, the mobile device transmits a probe, through a wireless cellular network, to a main Access Point Name (APN), and the probe is configured to determine whether the mobile device has a valid cellular data connection subscription. The mobile device determines, from a response to the probe, that it does not have a valid cellular data connection subscription with the mobile telecommunications service provider. Responsive to that determination, the mobile device connects to a cellular data connection service registration site to allow a user of the mobile device to register for data connection service provided by the mobile telecommunications service provider. The mobile device is limited to accessing the data connection service registration site until the user registers for data connection service.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of the filing date of U.S. Provisional Application No. 61/431,824, filed on Jan. 11, 2011, and this application is also a continuation-in-part of prior U.S. application Ser. No. 12/892,472, filed Sep. 28, 2010, which claims the benefit of U.S. Provisional Application No. 61/298,525, filed Jan. 26, 2010, and U.S. Provisional Application No. 61/295,651, filed Jan. 15, 2010, which are hereby incorporated by reference in their entireties.


BACKGROUND
1. Field
Embodiments of the invention relate to the field of mobile telecommunications; and more specifically to improving registration with a mobile telecommunications service provider.
2. Background
Mobile devices (e.g., laptops, palmtops, mobile phones, smartphones, multimedia phones, tablets, portable media player, etc.), which are a form of data processing systems, commonly include the capability of connecting and using data services (e.g., through a cellular network, WiMAX, etc.) provided by mobile telecommunications service providers. Mobile device users are required to register (e.g., purchase, change, activate, etc.) for cellular data connection service with a mobile telecommunications service provider prior to being able to use the service provided by that service provider. For example, prior to a user being able to access the Internet using a cellular data connection of their mobile device, the user must register for that service with a mobile telecommunications service provider.
It is common for users to register for service when purchasing mobile devices. Users may also register or change cellular data connection service through a telephone or through the Internet. However, current mechanisms for registering for cellular data connection service for mobile devices through the Internet are performed through separate Internet connections (e.g., through a different computing device than the mobile device, through a Wi-Fi/LAN Internet connection of the mobile device, etc.).
SUMMARY
A method and apparatus for mobile devices registering with mobile telecommunications service providers is described.
In one embodiment, a mobile device registers for a data connection subscription directly with a main access point name (APN) without using a secondary APN or network that is designed for establishing a data connection subscription. The ability to subscribe for cellular data connection service directly with the main APN can simplify a service provider's system because no secondary APN or network is required in this embodiment. In one embodiment, the mobile device transmits a probe, through a cellular network, to a main access point name (APN); the probe is configured to determine whether the mobile device has a valid cellular data connection subscription. The probe can be transmitted, in one embodiment, in response to a data activation request which can be triggered by a user's attempt to access the Internet or to send or receive an email or to otherwise attempt to use a cellular data connection. If the mobile device determines, from the response to the probe, that the mobile device does not have a valid cellular data connection subscription with a service provider (e.g. no data service plan was ever subscribed to or use of an existing data service plan has exceeded a prepaid monetary amount or an existing data service plan has expired in time, etc.), then the mobile device connects, through the main APN, to a cellular data connection service registration site to allow a user of the mobile device to register for cellular data connection service provided by the service provider. In one embodiment, the connection to a cellular data connection service registration site through the main APN can occur automatically, without user request or interaction, in response to determining, from the probe's response, that there is no valid cellular data connection subscription. The mobile device can be limited to accessing the cellular data connection service registration site until the user has successfully registered for cellular data connection service. The cellular data connection service registration site can allow a user to perform one or more of: (a) purchase a cellular data connection plan; (b) add minutes to a cellular data connection plan; or (c) add bandwidth to a cellular data connection plan. After successfully registering for cellular data connection service through the main APN, the mobile device can connect to the Internet through the main APN, which in one embodiment identifies a public network.
In one embodiment, the probe can be addressed to a particular server or service on the Internet, and the response to the probe can be a server re-direct which is interpreted, by the mobile device, as indicating that the mobile device does not have a valid cellular data connection subscription. In one embodiment, the mobile device can, prior to transmitting the probe, transmit a data activation request to the cellular network and the mobile device can receive, in response to the data activation request, an indication of an acceptance, by the cellular network, of the data activation request.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
FIG. 1 illustrates an exemplary mobile telecommunications network according to one embodiment;
FIG. 2 is a data flow diagram illustrating exemplary operations for a mobile device registering for services provided by a mobile telecommunications service provider according to one embodiment;
FIG. 3 is a block diagram illustrating an exemplary mobile device adapted to register for services provided by a mobile telecommunications service provider according to one embodiment;
FIG. 4 is a block diagram illustrating an exemplary service registration application launched by the exemplary mobile device of FIG. 3 according to one embodiment;
FIG. 5 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments;
FIG. 6 is a flow diagram illustrating exemplary operations for connecting a mobile device to a mobile telecommunications network through a location based access point name according to one embodiment;
FIG. 7 is a block diagram illustrating an exemplary computer system which may be used in some embodiments of the invention;
FIG. 8 is a block diagram illustrating an exemplary data processing system which may be used in some embodiments of the invention;
FIG. 9 illustrates an exemplary mobile telecommunications network according to another embodiment;
FIG. 10 is a data flow diagram showing exemplary operations for a mobile device registering for services provided by a mobile telecommunications service provider according to another embodiment; and
FIG. 11 is a block diagram illustrating an exemplary mobile device adapted to register for services provided by a mobile telecommunications service provider according to another embodiment.



DETAILED DESCRIPTION
In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is used to indicate the establishment of communication between two or more elements that are coupled with each other.
A method and apparatus for mobile devices registering with mobile telecommunications service providers is described. In one embodiment, a mobile device initially attempts to establish a cellular data connection (hereinafter “data connection”) with a network identified by an access point name (“APN”). The initially identified APN is sometimes referred herein as the “main APN.” The network identified by the main APN may be a public network (e.g., the Internet) or a private network (e.g., a corporate intranet, a wireless application protocol (WAP) service, a multimedia messaging service (MMS), etc.). The main APN is also associated with a set of implementation parameters (e.g., firewall rules, access control rules, cost, etc.). The cellular network performs an authorization procedure to determine whether the mobile device is authorized to access the network identified by the main APN. If the mobile device is authorized to use the network identified by the main APN, then a data connection will be established and the services provided by that network may be used. In some embodiments, the main APN may also requires a username and password prior to authorizing access.
However, if the mobile device is not authorized, the cellular network transmits an error message that indicates the mobile device is not authorized to access the network identified by the main APN (e.g., the mobile device is currently not subscribed to the services offered by the main APN, the mobile device currently does not have credit to access the services offered by the main APN, etc.). Responsive to receiving such an error message, the mobile device establishes, in one embodiment associated with FIGS. 1-3, a data connection with a different network identified by a different APN to allow the mobile device to access a registration site that allows a user to register for the services provided by the network identified by the main APN. This different APN is sometimes referred herein as the “registration APN.” In some embodiments, the network identified by the registration APN is limited to a registration site. The mobile device connects to the registration site (e.g., via a mobile telecommunications service registration application (e.g., a web browser or other Internet enabled interface)) thereby allowing the user to register for services provided by the network identified by the main APN (e.g., select and/or purchase a data rate plan, add/buy credits for a prepaid data rate plan, etc.).
Sometime after the user registers for data connection service, the mobile device tears down the data connection to the registration APN and establishes a data connection with the network identified by the main APN (the mobile device will now be authorized to use the services). The mobile device may then be able to use the services provided by the network identified by the main APN.
FIGS. 9-11 represent an alternative embodiment in which a separate registration APN is not used but rather the registration process uses a system in the main APN, and this alternative embodiment is described further below in conjunction with FIGS. 9, 10, and 11.
FIG. 1 illustrates an exemplary mobile telecommunications network 100 according to one embodiment. As illustrated in FIG. 1, the mobile telecommunications network 100 includes the mobile device 110 coupled with the cellular network 120 which can include a wireless network. The cellular network 120 may include technology for one or more of the following: a GSM (Global System for Mobile communications) network, a CDMA (Code Division Multiple Access) network, an iDEN (Integrated Digital Enhanced Network), an UMTS (Universal Mobile Telecommunications System) network, an EDGE (Enhanced Data rates for GSM Evolution) network, GPRS (General Packet radio Service), etc. The cellular network 120 includes multiple network elements. For example, the cellular network 120 includes base stations, base station controllers, core nodes (e.g., in GPRS, one or more GPRS support nodes), etc. One or more mobile telecommunications service providers may own, operate, or lease certain parts of the cellular network 120.
The registration APN network 130 and the main APN network 140 are coupled to the cellular network 120. The main APN network 140, which is identified through the main APN, may be a public network (e.g., the Internet) or a private network (e.g., a corporate intranet, a wireless application protocol (WAP) service, a multimedia messaging service (MMS), etc.). In one embodiment, access to the main APN network 140 is specific to a particular mobile telecommunications service provider. That is, even though the main APN network 140 may be a public network (e.g., the Internet), access to the network 140 may be limited and controlled by a particular mobile telecommunications service provider. The registration APN network 130, which is identified through the registration APN, includes a set of restricted services including the data connection service registration site 150. The data connection service registration site 150 allows users to register for the services provided by the main APN network 140 (e.g., select and/or purchase a data rate plan, add/buy credits for a prepaid data rate plan, etc.) or other network. In one embodiment the set of restricted services are provided by the mobile telecommunications service provider controlling access to the main APN network 140, while in other embodiments the set of restricted services are provided by multiple mobile telecommunications service provider.
FIG. 2 is a data flow diagram illustrating exemplary operations for a mobile device registering for data connection services provided by a mobile telecommunications service provider according to one embodiment. FIG. 2 will be described in relation to the exemplary embodiment of FIGS. 1 and 3.
FIG. 3 is a block diagram illustrating an exemplary mobile device adapted to register for data connection services provided by a mobile telecommunications service provider according to one embodiment. As illustrated in FIG. 3, the mobile device 110 includes the data connection control module 310, one or more carrier bundles 320, one or more service registration applications 330, and optionally an account status notification application 340.
At operation 250, the mobile device 110 attempts to establish a data connection through the main APN. For example, the mobile device 110 transmits a data activation request to the cellular network 120 for the main APN. The data activation request may also include a set of one or more other parameters (e.g., PDP (Packet Data Protocol) type, PDP address type, QoS profile request, IMSI (international mobile subscriber identity) of the SIM (subscriber identity module) card, etc.). The data activation request may be transmitted as a result of the mobile device 110 turning on, after the mobile device is within cellular service range, after data connectivity is requested by the user (e.g., opening a data connection application such as a browser), etc. With reference to FIG. 3, the data connection control module 310 controls the transmission of the data connection activation request. For example, the data connection control module 310 accesses the appropriate one of the carrier bundle(s) 320 to determine the value of the main APN and other parameters. Each of the carrier bundle(s) 320 includes one or more settings specific to a carrier (e.g., APN settings, MMS settings, and other settings relating to cellular telephony service). In one embodiment, the main APN is a default APN included in a default carrier bundle.
In some embodiments, users may purchase prepaid SIM cards that have been preloaded with an amount of credit for data service (e.g., a number of minutes, an amount of bandwidth, etc.) of a mobile telecommunications service provider. The prepaid SIM cards must be activated before they can be used. SIM cards which are not yet activated for a given APN are sometimes known as warm SIM cards. In contrast, SIM cards which have been activated for that APN are sometimes known as hot SIM cards.
The cellular network 120 receives the data activation request and at operation 252, determines that the mobile device 110 is not presently authorized for a data connection through the main APN. In other words, the data connection establishment through the main APN has failed. In some embodiments the cellular network 120 includes a home location register (HLR) database, which includes records for each mobile device that is authorized to use the main APN. For example, the IMSI of the mobile device 110 is checked against the HLR records for the main APN. The mobile device 110 is not authorized to use the main APN if the IMSI of the mobile device 110 is not included in an HLR record or if a corresponding HLR record indicates that the mobile device 110 is not presently authorized (e.g., the mobile device does not have any minutes remaining in its plan, etc.).
Sometime after determining that the mobile device 110 is not presently authorized for the main APN, at operation 254 the cellular network 120 transmits a message to the mobile device 110 indicating so. In some embodiments, this message includes an error code that indicates the mobile device 110 does not have a valid data connection subscription for the main APN. With reference to FIG. 3, the data connection control module 310 receives the unauthorized message from the cellular network 120.
Sometime after receiving the unauthorized message, at operation 256 the mobile device 110 transmits a data activation request to the cellular network 120 that includes a registration APN, which identifies the registration APN network 130. Similar to the data activation request of operation 250, the data activation request of operation 256 may also include a set of one or more other parameters (e.g., PDP (Packet Data Protocol) type, PDP address type, QoS profile request, IMSI (international mobile subscriber identity), etc.). With reference to FIG. 3, after receiving the unauthorized message, the data connection control module 310 accesses the carrier bundle(s) 320 to determine the parameters and identity of the registration APN. In one embodiment, the registration APN is located in the same carrier bundle as the main APN. For example, if the mobile telecommunications service provider A is associated with the main APN, the carrier bundle for service provider A is accessed to determine the registration APN associated with the service provider A. In other embodiments, the registration APN is generic and is applicable to multiple mobile telecommunications service providers.
The cellular network 120 receives the data activation request and at operation 258 determines that the mobile device 110 is authorized to use the registration APN. In some embodiments, all mobile devices are authorized to use the registration APN, while in other embodiments only certain mobile devices (as identified by their IMSI) are authorized to use the registration APN. For example, a portion of each IMSI is typically assigned to a mobile telecommunications service provider (e.g., in the Mobile Network Code (MNC) portion of the IMSI). If the registration APN is operated or controlled by a particular mobile telecommunications service provider, that service provider may limit access to the registration APN to those mobile devices having IMSIs that include the MNC of that service provider.
After determining that the mobile device 110 is authorized for the registration APN, the cellular network 120 transmits a data activation accepted message to the mobile device 110 at operation 260. With reference to FIG. 3, the data connection control module 310 receives the data activation accepted message.
Sometime after receiving the data activation accepted message, at operation 262 the mobile device 110 connects to the registration APN network 130. As previously described, the registration APN network 130 is limited to a set of restricted services. For example, in one embodiment, the registration APN network 130 limits the mobile device 110 to accessing the data connection service registration site 150 where the user of the mobile device 110 may register for data connection service (e.g., for the main APN network 140). In some embodiments, connecting to the registration APN network 130 includes establishing a PDP (Packet Data Protocol) context for the registration APN.
In some embodiments, the mobile device 110 launches a data connection service registration application to connect to the registration APN network 130. For example, with reference to FIG. 3, the data connection control module 310 triggers the launch of one of the data connection service registration application(s) 330. The data connection service registration application(s) 330 connect to the network provided by the registration APN (e.g., the data connection service registration site 150) and allows users to register for data connection service. The data connection service registration application(s) 330 may include a web browser and/or other applications capable of accessing the network provided by the registration APN. In some embodiments, the service registration application(s) 330 are different for different mobile telecommunications service providers. For example, one or more of the service registration application(s) 330 may be designed and/or customized by a particular mobile telecommunications service provider and may operate differently than other ones of the service registration application(s) 330. For example, as will be described in greater detail with respect to FIG. 4, some of the data connection service registration application(s) 330 may be programmed to display a cancel button at certain times of the data connection registration process while other data connection service registration applications(s) 330 do not display a cancel button.
An exemplary service registration application is illustrated in FIG. 4. As illustrated in FIG. 4, the service registration application 430 includes the data connection service registration options 450, and optionally the cancel button 460 and the done button 470. The cancel button 460 and the done button 470 will be described in greater detail later herein.
The data connection service registration options 450 include one or more data connection service options that the user can select from. By way of example, these options include registering for a new data plan (e.g., purchasing a number of minutes, purchasing an amount of bandwidth, etc.) and/or adding credits (e.g., minutes, bandwidth, etc.) to an existing data plan. The data connection service registration options 450 are typically specific for a particular mobile telecommunications service provider and only include registration options for that service provider. However, in some embodiments the registration APN is common to multiple telecommunications service providers. In such embodiments, the data connection service registration site 150 may provide data connection service registration options 450 for multiple mobile telecommunications service providers. Thus in these embodiments, the user of the mobile device 110 may compare/contrast and select data connection plans from multiple mobile telecommunications service providers. It should be understood that if the user selects or registers for services from a different mobile telecommunications service provider than is associated with the main APN, the mobile device 110 may be required to download or receive a carrier bundle for the selected mobile telecommunications service provider.
Although not illustrated in FIG. 4, it should be understood that the service registration application 430 may display additional items. For example, the service registration application 430 may display advertisements, news updates, weather updates, stock updates, etc. In addition, it should be understood that a user may navigate through several screens while registering for data connection services. For example, the data connection service registration site 150 may include several web pages (e.g., a registration page, a page regarding details of each plan, a profile page, a confirmation page, etc.).
In some embodiments, in addition to displaying the data connection service registration options 450, information may be displayed based on the approximate present location of the mobile device 110 (e.g., state, city, neighborhood, place (e.g., hotel, resort, airport, coffee shop, school, etc.), etc.). For example, the approximate location may be determined through use of GPS functionality built within the mobile device 110 and/or determined through triangulation using cellular towers or Wi-Fi hotspots. The mobile device 110 may transmit its approximate location to the registration APN network 140 after it is connected to the network 140.
For instance, if the mobile device 110 is determined to be presently located near a resort or hotel, information specific to that resort or hotel (e.g., related to services offered by the resort, information about the surrounding area, current weather, etc.) may be displayed in addition to the data connection service registration options 450. It should be understood that while the information specific to the resort is displayed, in some embodiments, the user is allowed to continue to register for services for the main APN. Thus while the user is waiting for the registration process to complete, the user may access pages or information specific to the location of the mobile device 110.
Referring back to FIG. 2, at operation 264, the user of the mobile device 110 has selected a service for the main APN through the data connection service registration site 150, and the selected service has been communicated to the service registration site 150. The mobile telecommunications service provider then completes the registration for the mobile device 110 for the selected service. For example, at operation 266, the registration APN network 130 transmits a service registration update to the cellular network 120 that includes information indicating that the mobile device 110 is registered for service through the main APN. Sometime after receiving this message, at operation 268 a record is created and/or updated for the mobile device 110 for the main APN network 140. For example, an HLR record for the IMSI of the SIM card of the mobile device 110 is created and stored in the HLR database. After the IMSI of the SIM has been placed into an HLR record, the SIM card is known as a hot SIM card and the mobile device 110 should be able to use the main APN network 140.
At operation 270, the mobile device 110 receives a data connection service registration success message from the cellular network 120 that indicates that registration was successful. With reference to FIG. 3, the data connection control module 310 receives the data connection service registration success message. In one embodiment, this message is an SMS message which is interpreted by the data connection control module 310. Upon receiving this message, the data connection control module 310 may cause an appropriate message to be displayed on the service registration application 330 or other window and/or cause the application 330 to close.
Although FIG. 2 illustrates the operation 270 occurring after the record for the mobile device was created, in other embodiments the cellular network 120 transmits a message after a predefined amount of time has elapsed (e.g., in case that the registration was not successful). For example, sometime after establishing a data connection through the registration APN, the cellular network 120 may start a timer based on the expected amount of time for a successful registration. If an HLR record for the mobile device 110 is not created or updated prior to that timer expiring, the cellular network 120 will transmit a message indicating that registration was not successful. With reference to FIG. 3, service registration failure messages are also received and interpreted by the data connection control module 310 (they may also be SMS messages). Upon receiving a service registration failure message, the data connection control module 310 may cause an appropriate message to be displayed on the service registration application 330 or other window.
Referring back to FIG. 2, sometime after receiving the service registration success message, at operation 272 the mobile device 110 disconnects from the registration APN. In one embodiment, this includes tearing down the PDP context to the registration APN. In one embodiment, this may be initiated by the mobile device 110 while in other embodiments this may be initiated by the cellular network 120. In either case, a data deactivation request message and a data deactivation accept message are exchanged between the mobile device 110 and the cellular network 120. With reference to FIG. 3, the data connection control module 310 controls the transmission and processing of the data deactivation request and accept messages.
After disconnecting from the registration APN, the mobile device 110 connects to the main APN network identified by the main APN. For example, at operation 274, the mobile device 110 transmits a data activation request to the cellular network 120. The data activation request in operation 274 is similar to the data activation request described in reference to operation 250. The cellular network 120 receives the data activation request and at operation 252 determines that the mobile device 110 is presently authorized to use the main APN (e.g., the SIM card of the mobile device 110 is now hot). Sometime after determining that the mobile device 110 is authorized for the main APN, the cellular network 120 transmits a data activation accepted message to the mobile device 110 at operation 278. Sometime after receiving the data activation accepted message, at operation 280 the mobile device 110 connects to the main APN network 140. After connecting to the main APN network 140, the mobile device 110 may use the services provided by the main APN network 140 (e.g., general Internet access, etc.). Thus, unlike prior mechanisms, a user of the mobile device 110 can use an unsubscribed cellular data connection to register for cellular data connection services (e.g., the Internet).
In an alternative embodiment, instead of the cellular network 120 transmitting a registration success or failure message as described in operation 270, the mobile device 110 waits some amount of time after selecting the service as described in operation 264, disconnects from the registration APN as described in operation 272, and then transmits a data activation request to the cellular network 120 for the main APN in a similar way as described in operation 250. It should be understood that the data activation request will not be accepted until the cellular network 120 has been updated to reflect the selection of service.
Referring back to FIG. 4, the cancel button 460 and/or the done button 470 are optionally displayed on the data connection service registration application 430. The cancel button 460, when selected by a user, causes the data connection service registration application 430 to exit and the corresponding data connection service registration procedure to end. Thus, when the cancel button 460 is selected, the data connection service registration procedure ends. In one embodiment, the cancel button 460 is not part of the service registration application 430 by itself. In other words, the functionality of the cancel button 460 is not a native feature of the registration application 430 interface, but may be incorporated through the use of one or more APIs.
The cancel button 460 may not be displayed during all stages of the service registration process. In one embodiment, the mobile telecommunications service provider associated with the data connection service registration application 430 defines whether the cancel button 460 appears on the service registration application 430 and/or at what stage in the service registration process the cancel button 460 appears.
The done button 470 allows the user to signify to the data connection service registration application 430 that the user has finished using the application 430. For example, the user may select the done button 470 when he or she is finished registering for data connection service. Similar to the cancel button 460, the done button 470 may not be included during all stages of the service registration process. In one embodiment, the mobile telecommunications service provider associated with the service registration application 430 defines whether the done button 470 appears on the service registration application 430 and/or at what stage in the service registration process the done button 470 appears.
In some embodiments the cancel button 460 and the done button 470 may be implemented through the use of one or more Application Programming Interface (APIs). An API is an interface implemented by a software component (hereinafter “API implementing software component”) that allows a different software component (hereinafter “API calling software component”) to access and use one or more functions, methods, procedures, data structures, and/or other services provided by the API implementing software component. For example, an API allows a developer of an API calling software component (which may be a third party developer) to leverage specified features provided by an API implementing software component. There may be one API calling software component or there may be more than one such software component. An API can be a source code interface that a computer system or program library provides in order to support requests for services from a software application. An API can be specified in terms of a programming language that can be interpretative or compiled when an application is built, rather than an explicit low level description of how data is laid out in memory.
The API defines the language and parameters that API calling software components use when accessing and using specified features of the API implementing software component. For example, an API calling software component accesses the specified features of the API implementing software component through one or more API calls (sometimes referred to as function or method calls) exposed by the API. The API implementing software component may return a value through the API in response to an API call from an API calling software component. While the API defines the syntax and result of an API call (e.g., how to invoke the API call and what the API call does), the API typically does not reveal how the API call accomplishes the function specified by the API call. Various function calls or messages are transferred via the one or more application programming interfaces between the calling software (API calling software component) and an API implementing software component. Transferring the function calls or messages may include issuing, initiating, invoking, calling, receiving, returning, or responding to the function calls or messages. Hence, an API calling software component can transfer a call and an API implementing software component can transfer a call.
By way of example, the API implementing software component and the API calling software component may be an operating system, a library, a device driver, an API, an application program, or other software module (it should be understood that the API implementing software component and the API calling software component may be the same or different type of software module from each other). The API calling software component may be a local software component (i.e., on the same data processing system as the API implementing software component) or a remote software component (i.e., on a different data processing system as the API implementing software component) that communicates with the API implementing software component through the API over a network. It should be understood that an API implementing software component may also act as an API calling software component (i.e., it may make API calls to an API exposed by a different API implementing software component) and an API calling software component may also act as an API implementing software component by implementing an API that is exposed to a different API calling software component.
As described above, the cancel button 460 and/or the done button 470 may be implemented using one or more APIs. For example, in one embodiment, a mobile telecommunications data connection service registration API is defined which allows developers (e.g., the mobile telecommunication service providers) to show and hide the cancel button 460 on the data connection service registration application 430.
FIG. 5 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments. As shown in FIG. 5, the API architecture 500 includes the user interface framework 520 (e.g., a framework that controls windowing, buttons, menus, and other user interface functions) that implements the mobile telecommunications service registration API 510. The mobile telecommunications service registration API 510 includes the show cancel button function 530, the hide cancel button function 540, and the done button function 550. The mobile telecommunications service registration API 510 specifies the calling convention for the service registration application 430 to call the functions 530, 540, and 550 and how those functions 530, 540, and 550 return their result(s) to the service registration application 430. In an embodiment, the functions 530, 540, and 550 are only available to service registration applications during service registration (thus they are not available to other types of applications).
Thus, the service registration application 430 makes API calls through the mobile telecommunications service registration API 510 to access and use the functions 530, 540, and 550. For example, regarding the show cancel button function 530, the service registration application 430 may make the show cancel button call 560 when it wants to show the cancel button 460 and provide its underlying functionality to the user (e.g., when it is appropriate for the service registration application 430 to provide the user the option to cancel the registration process and close the service registration application 430). The API 510 performs the show cancel button function 530, which leverages one or more functions or methods provided by the user interface framework 520, and the result is that the cancel button 460 is shown 565 on the service registration application 430. In one embodiment the show cancel button call 560 includes one or more parameters that allow the developer to indicate the location and/or size of the cancel button 460, while in other embodiments the show cancel button 460 will be located in a default position on the service registration application 430 and be a default size. Although not illustrated in FIG. 5, it should be understood that the underlying functionality of the cancel button 460 (e.g., to close the service registration application 430 when selected) is also provided by the user interface framework 520, and may also be used by the service registration application 430 through an API call.
Regarding the hide cancel button function 540, the service registration application 430 may make the hide cancel button call 570 when it wants to hide the cancel button 460 and thus prevent the service registration procedure to be cancelled by the user and the service registration application 430 from being closed by the user. The API 510 performs the hide cancel button function 540, which leverages one or more functions or methods provided by the user interface framework 520, and the result is that the cancel button 460 is hidden (e.g., removed from the service registration application 430).
Regarding the done button function 550, the service registration application 550 may make the done button call 580 responsive to a user selecting the done button 470. The API 510 performs the done button function 550, which leverages one or more functions or methods provided by the user interface framework 520, to close the service registration application window 430.
Account Status Notification
In some embodiments, mobile telecommunications service providers transmit account status update messages to the mobile devices to remind or notify the users of the current amount of service remaining on their account (e.g., the amount of minutes remaining, the amount of bandwidth remaining, etc.). The account can be a prepaid account or an account that may have a service limit before causing the user to pay extra. In some embodiments the messages are sent periodically (e.g., once a week, etc.) while in other embodiments the messages are sent when the remaining amount on the prepaid account is below a certain threshold. In some embodiments, the messages are SMS (Short Message Service) messages, which are in a format that the mobile device can interpret and display to the user.
With reference to FIG. 3, the data connection control module 310 receives these account status update messages, and may trigger the launch of the account status notification application 340. The account status notification application 340 displays the information corresponding to the account status update message. In some embodiments, the account status notification application 340 also includes options to add minutes or bandwidth to the account.
Location Based APN Service
Some embodiments may implement location based APNs when establishing data connections. A location based APN is a custom APN that is typically defined with a specific set of services for that location (e.g., state, city, neighborhood, place (e.g., hotel, resort, airport, coffee shop, school, etc.)). For instance, a location based APN may be defined for a resort that allows mobile devices to connect to resources specified by that resort (e.g., information related to services offered by the resort, information about the surrounding area, current weather, etc.). In some embodiments, the location based APNs may also give the option for the user to register for general Internet connectivity. For instance, an APN for an airport may be defined that allows all mobile devices to connect without a fee to a first set of services (typically restricted and specific to the airport, news, etc.) and allows for registered mobile devices to connect to a second set of services (e.g., general Internet connectivity). In this example, the first set of services may also provide the option for users to register for the second set of services.
In some embodiments, the mobile device 110 includes a database of location based APNs. The database of location based APNs may be periodically updated when the mobile device 110 is connected to a data network. In other embodiments, the cellular network 120 maintains a database of location based APNs. After receiving a message from the cellular network 120 that the mobile device 110 is not authorized for service with the main APN, the approximate location of the mobile device 110 is determined. For example, the approximate location may be determined through use of GPS functionality built within the mobile device 110 and/or determined through triangulation using cellular towers or Wi-Fi hotspots. If the mobile device 110 is in a location of one of the APNs, the user can be notified and can select to connect to the network identified by those APNs.
FIG. 6 is a flow diagram illustrating exemplary operations for connecting a mobile device to a mobile telecommunications network through a location based APN according to one embodiment. In one embodiment, the operations 600 are performed after determining that the mobile device 110 is not authorized for the main APN as described in operations 250-254 of FIG. 2. In another embodiment, the operations 600 are performed after the mobile device 110 has connected to the registration APN network as described in operation 262 of FIG. 2. In other embodiments, the operations 600 are performed periodically regardless of whether the mobile device has a current data connection.
The operations 600 begin at block 610, where the approximate present location of the mobile device is determined. The approximate location may be determined through use of GPS functionality built within the mobile device 110 and/or determined through triangulation using cellular towers and/or Wi-Fi hotspots. In some embodiments the mobile device 110 determines its approximate location and transmits it to the cellular network 120 while in other embodiments the mobile device 110 determines its approximate location and does not transmit it to the cellular network 120, while yet in other embodiments the cellular network 120 determines the approximate location of the mobile device 110. Flow moves from block 610 to block 620.
At block 620, it is determined whether the mobile device 110 is in an area defined for a location based APN. If the mobile device 110 is in an area defined for a location based APN, then flow moves to block 640, otherwise flow moves to block 630 where alternative action is taken (e.g., the process ends). In embodiments where the mobile device 110 maintains a database of location based APNs, the mobile device 110 may access that database to determine whether it is currently located within an area defined for that APN. In embodiments where the cellular network 120 maintains a database of location based APNs, the cellular network 120 may access that database with the determined approximate location of the mobile device 110 to determine whether the mobile device is within an area defined for a location based APN. It should be understood that it is possible for the mobile device 110 to be in the area for multiple location based APNs at a given time.
At block 640, the user of the mobile device is notified of the availability of the location based APN(s). For example, a window may be displayed on the mobile device which lists the location based APN(s) currently available. Details of the location based APN(s) may also be displayed (e.g., services that the location based APN(s) provides, etc.). Other notification mechanisms may be used (e.g., text message, email, graphical alert, etc.). The user is also given the option of selecting one of those location based APN(s). In those embodiments where the cellular network 120 maintains the database of location based APN(s), the cellular network 120 may transmit the details of the APNs in the area. Flow moves from block 640 to block 650.
At block 650, the user has selected to connect to one of the available location based APN(s). Flow moves from block 650 to block 660, where the mobile device 110 forms and transmits a data activation request, similar to the data activation request described in operation 250 of FIG. 2, to the cellular network 120. The cellular network 120 then determines whether the mobile device 110 is authorized for the selected location based APN (e.g., in a similar way as described in operation 252 of FIG. 2). The cellular network 120 may also validate the location of the mobile device 110 prior to granting authorization to the selected location based APN (e.g., based on triangulation of cell towers, etc.).
Flow moves from block 660 to block 670, where the mobile device determines whether activation was successful. For example, with reference to FIG. 2, the mobile device 110 may receive a data activation accepted message as similarly described in operation 278 of FIG. 2. If activation was successful, then flow moves to block 680 where the mobile device 110 connects to the selected location based APN network (e.g., in a similar way as described with reference to operation 262 of FIG. 2), otherwise flow moves to block 630 where alternative action is taken (e.g., the process ends). The mobile device 110 may use the services provided by the selected location based APN network once connected.
FIGS. 9, 10, and 11 relate to an embodiment in which a mobile device, such as a smartphone or tablet computer or other data processing system, registers for a data connection subscription with a main access point name (APN) without using a secondary APN or network that is designed for establishing a data connection subscription. The ability to subscribe for cellular data connection service directly with the main APN can simplify a service provider's system and require fewer components because no secondary APN or network is required in this embodiment. In one embodiment according to FIGS. 9, 10, and 11, the mobile device transmits a probe, in part through a cellular network, to a main APN and the probe is configured to determine whether the mobile device has a valid cellular data connection subscription. The probe can be transmitted, in one embodiment, in response to a data activation request which can be triggered by a user's attempt to access the Internet or to send or receive an email or to otherwise attempt to use a cellular data connection. If the mobile device determines, from the response to the probe, that the mobile device does not have a valid cellular data connection subscription with a service provider then the mobile device connects, through the main APN, to a cellular data connection service registration site to allow a user of the mobile device to register for cellular data connection service provided by the service provider. In one embodiment, the connection to the cellular data connection service registration site through the main APN can occur automatically, without user request or interaction, in response to determining, from the probe's response, that there is no valid cellular data connection subscription. The mobile device can be limited to accessing the cellular data connection service registration site until the user has successfully registered for cellular data connection service. The cellular data connection service registration site can allow a user to perform one or more of: (a) purchase an initial cellular data connection plan (e.g. when the device is first used); (b) extend an existing cellular data connection plan; (c) add minutes to a previously established cellular data connection plan that has run out of money; (d) add bandwidth (e.g. 20 MB per month, etc.) to a previously established cellular data connection plan, etc. After successfully registering for cellular data connection service through the main APN, the mobile device can connect to the Internet through the main APN which can identify a public network.
FIG. 9 shows the exemplary mobile telecommunications network 100, as in FIG. 1, but without the separate registration APN which is not needed in the embodiment of FIGS. 9, 10, and 11. In this embodiment, the main APN allows access to a cellular data connection service registration site which can be connected to the Internet. For example, the cellular data connection service registration site 150 can be accessed through the main APN network 140 and be part of that network in the case of the embodiment shown in FIGS. 9, 10, and 11 (rather than being part of and accessed through a separate registration APN). The cellular data connection service registration site, when accessed through the main APN network 140, can be implemented as a captive network for the mobile device in one embodiment and can limit users to only using that site to perform operations relating to subscriptions for cellular data connection services.
FIG. 11 is a block diagram illustrating an exemplary mobile device adapted to register for cellular data connection services provided by one or more mobile telecommunications service providers according to the embodiment of FIGS. 9, 10, and 11. The mobile device shown in FIG. 11 is similar to the mobile device shown in FIG. 3 except that the service registration application(s) 330 are configured to perform the service registration operations, such as those shown in FIG. 10, with the main APN 140.
FIG. 10 provides an example of an embodiment in which a mobile device registers for cellular data connection service using the main APN as the same APN that is used after registration, and that main APN can identify a public network such as the Internet. The method shown in FIG. 10 can begin in operation 1050, in which the mobile device transmits a data activation request (1050) to the cellular network 120; in one embodiment, the mobile device, such as mobile device 110, can include a warm SIM that allows a connection with the cellular network, and in one embodiment, the service provider that operates or controls the cellular network can allow a connection to the cellular network (and an exchange of signals between the cellular network and the mobile device) even when the mobile device has no cellular data connection service plan (e.g. such a plan was never previously established for the mobile device) or when a previously established plan, such as a pre-paid plan, is in an “out-of-data” state (e.g. a prescribed and paid for set of minutes has already been used or a data usage limit has been exceeded, etc.). The cellular network 120 responds to the data activation request 250 with a message 1060 indicating that the data activation request was accepted by the cellular network 120; this indicates that the mobile device can successfully make an initial connection with the main APN 140 through the cellular network 120. In response to receiving the message 1060, the mobile device transmits a probe 1061 which is a message that is configured to determine whether the mobile device has a valid (e.g. account is current and fully pre-paid) cellular data connection subscription. In one embodiment, the probe can be a known address or other identifier (e.g. apple.com/test) for a particular server, that is known to exist and is known that it will respond to the probe, on the Internet and if the probe causes a re-direct to another server (e.g. a billing server of the service provider), then the mobile device can conclude that it does not have a valid cellular data connection subscription. In this embodiment using a particular known server, if that server responds (i.e. there is no re-direction to another server), then the mobile device can conclude that it does have a valid cellular data connection subscription; on the other hand, if the mobile device receives a response to the probe indicating that a re-direction has occurred to a different server (such as a billing server of the service provider operating the cellular network 120), then the mobile device can conclude that it does not have a valid cellular data connection subscription. The particular known server can be a server operated or controlled by the developer or producer of the mobile device (or the developer or producer of components of the mobile device, such as software or hardware components) and the proper operation of this server can be reasonably guaranteed, and this allows the mobile device to rely on a response from the server (or re-direction to another server) as a true indication of whether it has a valid cellular data connection subscription. The user, in one embodiment, does not notice the use of the probe; for example, if the probe is successful (i.e. the particular known server is reached and no re-direction occurred), the mobile device performs these operations in the background and confirms the success of the probe without, in one embodiment, displaying any indication to the user of the result of the probe or the response to the probe. This is particularly useful in cases where the mobile device is repeatedly checking the status of the subscription (e.g. checking with each data activation request or checking with each third data activation request, etc.). If a re-direction does occur in response to the probe then, as described later, the user can be prompted to visit the cellular data connection service registration site (or the site can be presented automatically without requiring the user to take an action to visit the site). In another embodiment, the probe can try to access the Internet (e.g. a website available to the general public) and wait for a time out from the failure to access the Internet, and in that case the mobile device can conclude that it does not have a valid cellular data connection subscription. Other mechanisms for the probe can also be used. The probe 1061 is transmitted at least in part through the cellular network 120 and attempts to determine whether an access to the main APN is possible. The response to the probe is received in operation 1062 and in this case shown in FIG. 10, the probe has determined that a valid cellular data connection subscription does not exist. This can be due to a variety of different possibilities including, for example, a plan was never previously established for the mobile device or a previously established subscription plan, such as a pre-paid plan, is in an “out-of-data” state (such as, for example, when a pre-paid plan has used up all of the minutes allocated to the plan or a data usage limit has been exceeded, etc.).
Operation 1064 can follow message 1062, and in this operation 1064, the user can select a service for a data plan through a service registration site, such as a cellular data connection service registration site 150 which is accessed through the main APN 140 in the embodiment shown in FIGS. 9, 10, and 11. In one embodiment, when the mobile device is used for the first time to access cellular network 120 or is used for the first time to access main APN 140, the user may have to set up an initial wireless data connection subscription for the device because such subscription was never previously established for the device. In another embodiment, the user may have to update a previously established subscription plan by, for example, paying more money or buying more minutes or buying more bandwidth when the subscription plan is in an “out-of-data” state. The user interactions in operation 1064 can be similar or the same as the user interactions associated with operation 264 in FIG. 2. Similarly, the service registration update 1066 transmitted by the main APN 140 can be similar to operation 266 in FIG. 2, and the creation of a record in operation 868 of FIG. 10 can be similar to the creation of a record in operation 268 of FIG. 2. The registration update 1066 updates information in the cellular network 120 with respect to the mobile device which, in one embodiment, can be authenticated relative to the cellular network 120 as is known in the art. An optional (not shown) confirmation of the creation of the record may be transmitted to the mobile device after the record is created for that mobile device.
In some embodiments, the connection to the main APN 140 can be terminated or disconnected in operation 1072. Certain service providers or wireless cellular carriers can require this disconnection while others may not. Certain service providers also may require an optional subscriber update to be transmitted in operation 1073 from the mobile device to a system (e.g. a server) on the cellular network. This system may be the same system which also stores the record created in operation 868. An optional confirmation of the optional subscriber update may be received in operation 1073A, which confirmation is received by the mobile device from the cellular network 120.
If the mobile device was disconnected from the main APN in operation 1072, then the mobile device will send, in operation 1074, another data activation request. This data activation request can be triggered by and be in response to a user, or the mobile device, attempting to access the Internet, such as a website, or to send email or perform other operations requiring a service provided through the main APN 140. In other words, the data activation request can be caused by and be in response to a user action or a system action requiring access to main APN 140. This can also occur after the system has been turned off and rebooted and the user attempts to access the Internet or otherwise require access to a service provided through the APN 140. The cellular network 120 responds in operation 1074 to the data activation request indicating that the request has been accepted in operation 1078. An optional success message can be transmitted from the cellular network 120 to the mobile device 110 in operation 1070; in effect, this optional success message can indicate to the mobile device that it should now use the probe message to determine whether the mobile device has a valid cellular data connection subscription. In response to either the optional success message or the acceptance of the data activation request (indicated in operation 1076), the mobile device can transmit a probe for data availability or to otherwise determine whether or not the mobile device has a valid cellular data connection subscription. A billing server or other system provided by the service carrier or service provider operating the cellular network and/or the main APN 140 can check billing records and other information with respect to the status of the mobile device and respond as to whether or not the mobile device has a valid cellular data connection subscription or the probe can function as described in connection with operation 1062 in which a re-direction response in operation 1062 can indicate that the device is in an “out-of-data” state or otherwise does not have a valid cellular data connection subscription. In the example shown in FIG. 10, the main APN responds, through the actions of such server, in operation 1080 and indicates that the mobile device does have a valid cellular data connection subscription. In response to this indication, the mobile device proceeds to allow the user to transfer data to and from the Internet through the cellular network and then through the main APN 140. If, on the other hand, the response to the probe indicated that the mobile device did not have a valid cellular data subscription, then operations 1064, 1066 and 868 can be repeated in order to establish a valid cellular data connection subscription.
The use of the probe in the manner described in conjunction with FIGS. 9, 10, and 11 allows the mobile device to determine the status of its cellular data connection subscription without user interaction, and it can do so automatically in response to a request by the user to access the Internet such as, for example, to surf the Internet or access a website or send web email or send email or perform other actions using services or servers obtained through the main APN 140. Further, the use of a method as in FIG. 10 can automatically invoke a connection to a cellular data connection service registration site, such as the site 150, in response to determining, from the probe's response, that the mobile device does not have a valid cellular data connection subscription. In other words, such a method does not require a user to manually check the status of the cellular data connection subscription which is required, in the prior art, when the user attempts to interact with the Internet and waits for two minutes before getting a time out signal or another message indicating that the connection failed without any further explanation of why the connection failed. In one embodiment, rather than automatically invoking a connection to the cellular data connection service registration site, such as site 150, the mobile device can present a message to the user indicating that the mobile device has determined that the device no longer has a valid cellular data connection subscription (e.g. the amount of pre-paid minutes has been exceeded and the plan is in an out-of-data state and hence there is no valid cellular data connection subscription at this time). In this case, the user can decide to connect to the cellular data connection service registration site at that time in response to the message or later at the user's discretion.
FIG. 7 is a block diagram illustrating an exemplary computer system which may be used in some embodiments of the invention. For example, the exemplary architecture of the computer system 700 may be included in the mobile device 110. It should be understood that while FIG. 7 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present invention. It will be appreciated that other computer systems that have fewer components or more components may also be used with the present invention.
As illustrated in FIG. 7, the computer system 700, which is a form of a data processing system, includes the bus(es) 750 which is coupled with the processing system 720, power supply 725, memory 730, and the nonvolatile memory 740 (e.g., a hard drive, flash memory, Phase-Change Memory (PCM), etc.). The bus(es) 750 may be connected to each other through various bridges, controllers, and/or adapters as is well known in the art. The processing system 720 may retrieve instruction(s) from the memory 730 and/or the nonvolatile memory 740, and execute the instructions to perform operations as described above. The bus 750 interconnects the above components together and also interconnects those components to the optional dock 760, the display controller & display device 770, Input/Output devices 780 (e.g., NIC (Network Interface Card), a cursor control (e.g., mouse, touchscreen, touchpad, etc.), a keyboard, etc.), and the optional wireless transceiver(s) 790 (e.g., Bluetooth, WiFi, Infrared, cellular telephony, GPS, etc.).
FIG. 8 is a block diagram illustrating an exemplary data processing system which may be used in some embodiments of the invention. For example, the data processing system 800 may be the mobile device 110. The data processing system 800 includes the processing system 820, which may include one or more microprocessors and/or a system on an integrated circuit. The processing system 820 is coupled with a memory 810, a power supply 825 (which includes one or more batteries) an audio input/output 840, a display controller and display device 860, optional input/output 850, input device(s) 870, and wireless transceiver(s) 830. It will be appreciated that additional components, not shown in FIG. 8, may also be a part of the data processing system 800 in certain embodiments of the invention, and in certain embodiments of the invention fewer components than shown in FIG. 8 may be used. In addition, it will be appreciated that one or more buses, not shown in FIG. 8, may be used to interconnect the various components as is well known in the art.
The memory 810 may store data and/or programs for execution by the data processing system 800. The audio input/output 840 may include a microphone and/or a speaker to, for example, play music and/or provide telephony functionality through the speaker and microphone. The display controller and display device 860 may include a graphical user interface (GUI). The wireless (e.g., RF) transceivers 830 (e.g., a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular telephony transceiver, GPS transceiver etc.) may be used to communicate with other data processing systems. The one or more input devices 1170 allow a user to provide input to the system. These input devices may be a keypad, keyboard, touch panel, multi touch panel, etc. The optional other input/output 1150 may be a connector for a dock.
The techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., data processing systems, etc.). Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using machine-readable media, such as machine-readable, tangible and non-transitory storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and machine-readable communication media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals, etc.). In addition, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices, user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). The storage device and signals carrying the network traffic respectively represent one or more machine-readable storage media and machine-readable communication media. Thus, the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device.
It should be apparent from this description that aspects of the present invention may be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in memory, such as a ROM, RAM, mass storage, or a remote storage device. In various embodiments, hardware circuitry may be used in combination with software instructions to implement the present invention. Thus, the techniques are not limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system. In addition, throughout this description, various functions and operations are described as being performed by or caused by software code to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the code by a processor.
Alternative Embodiments
While embodiments of the invention have been described in relation to cellular networks, other types of networks may be used (e.g., cellular Wi-MAX networks). Therefore, embodiments of the invention are not limited to cellular data connections and cellular networks.
While embodiments of the invention have been described in relation to a user registering for data connection service, other types of services may be registered using the registration site. For example, the registration site may allow users to register for (and/or change existing) text message services, voice services (e.g., selecting different voice plans and/or service options), or other services.
In some embodiments, responsive to a user attempting to use a service (e.g., text message service, voice service, etc.) which he/she is not currently subscribed for or does not have an appropriate number of credits to complete, the user is directed to a registration site to allow the user to register for service (e.g., a text message plan and/or a voice plan) and/or add credits (e.g., number of text messages, voice minutes, bandwidth, etc.) to an existing service. This registration site may be the same or may be different than the data connection registration site. The connection to the registration site may be performed differently depending on the connection state of the mobile device. For example, if the mobile device currently has a network connection capable of accessing the registration site (e.g., a Wi-Fi connection, a wired connection, a mobile telecommunications data connection, etc.), that network connection will be used to connect the mobile device to the registration site. However, if the mobile device does not currently have such a network connection (and one is not available), a data connection through a registration APN (similarly as described with reference to registering for data service as described above) or through a main APN may be established to direct the user to the registration site. The mobile device may be limited to accessing the registration site through the registration APN or through a main APN.
While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.

## Claims

1. A method performed by a mobile device to register for cellular data connection service provided by a mobile telecommunications service provider, comprising:
connecting to a cellular network identified by a main Access Point Name (APN), wherein doing so comprises:
transmitting a data activation request; and
receiving a confirmation of an acceptance of the data activation request;

transmitting a probe to a known server through the cellular network, wherein the probe is configured to determine whether the mobile device has a valid cellular data connection subscription with the mobile telecommunications service provider and elicits a re-direct response if no valid cellular data connection subscription is determined;
examining a response elicited by the probe; and if the response is a re-direct response, wherein following the re-direct response would result in connecting to a first address, connecting, instead, to a cellular data connection service registration site at a second address through the main APN, to allow a user of the mobile device to register for a cellular data connection service provided by the mobile telecommunications service provider, wherein the mobile device is limited to accessing the cellular data connection service registration site until the user is successfully registered for the cellular data connection service;
if the response is from the known server, concluding that the mobile device has a valid cellular data connection subscription;
wherein the cellular data connection service registration site allows the user to perform one or more of: purchase a cellular data connection plan, extend an existing cellular data connection plan, add minutes to a cellular data connection plan, and add bandwidth to a cellular data connection plan and wherein, after successfully registering for cellular data connection service through the main APN, the mobile device connects to the Internet through the main APN.

2. A non-transitory machine-readable tangible storage medium of a device that provides instructions that, if executed by a processor of that device, will cause said processor to perform operations for registering for cellular data connection service provided by a mobile telecommunications service provider, comprising:
connecting to a cellular network identified by a main Access Point Name APN), wherein doing so comprises:
transmitting a data activation request; and
receiving a confirmation of an acceptance of the data activation request;

transmitting a probe to a known server through the cellular network, wherein the probe is configured to determine whether the mobile device has a valid cellular data connection subscription with the mobile telecommunications service provider and elicits a re-direct response if no valid cellular data connection subscription is determined; examining a response elicited by the probe; and
if the response is a re-direct response, wherein following the re-direct response would result in connecting to a first address, connecting, instead, to a cellular data connection service registration site at a second address through the main APN, to allow a user of the mobile device to register for a cellular data connection service provided by the mobile telecommunications service provider, wherein the mobile device is limited to accessing the cellular data connection service registration site until the user is successfully registered for the cellular data connection service;
if the response is from the known server, concluding that the mobile device has a valid cellular data connection subscription;

wherein the cellular data connection service registration site allows the user to perform one or more of: purchase a cellular data connection plan, extend an existing cellular data connection plan, add minutes to a cellular data connection plan, and add bandwidth to a cellular data connection plan and wherein, after successfully registering for cellular data connection service through the main APN, the mobile device connects to the Internet through the main APN.

3. The machine-readable storage medium of claim 2, further comprising:
receiving a selection from the user for cellular data connection service provided by the mobile telecommunications service provider;
communicating that selection to the cellular data connection service registration site; and
establishing a cellular data connection with the mobile telecommunications service provider, and wherein the cellular data connection registration site is accessed through the main APN which identifies a public network.

4. A data processing system comprising:
a wireless transceiver configured to transmit and receive signals through a mobile telecommunications service provider;
an input device;
a memory;

a processing system coupled to the memory and to the input device and to the wireless transceiver, the processing system configured to:
connect the data processing system to a cellular network identified by a main Access Point Name (APN), wherein doing so comprises:
transmitting a data activation request; and
receiving a confirmation of an acceptance of the data activation request;

cause the wireless transceiver to transmit a probe to a known server through the cellular network, wherein the probe is configured to determine whether the mobile device has a valid cellular data connection subscription and elicits a re-direct response, wherein the re-direct response specifies a first address, if no valid cellular data connection subscription is determined;
examine a response elicited by the probe; and

if the response is a re-direct response, wherein following the re-direct response would result in connecting to a first address, connect, instead, the data processing system to a cellular data connection service registration site at a second address through the main APN, if the probe elicits a re-direct response, to allow a user of the data processing system to register for a cellular data connection service provided by the mobile telecommunications service provider;
if the response is from the known server, concluding that the mobile device has a valid cellular data connection subscription;
wherein the cellular data connection service registration site allows the user to perform one or more of: purchase a cellular data connection plan, extend an existing cellular data connection plan, add minutes to a cellular data connection plan, and add bandwidth to a cellular data connection plan and wherein, after successfully registering for cellular data connection service through the main APN, the mobile device connects to the Internet through the main APN.

5. The data processing system as in claim 4 wherein the data processing system is limited to accessing the cellular data connection service registration site until the data processing system is successfully registered for cellular data connection service.

6. The data processing system of claim 4 wherein the processing system processes a response to the probe without requiring user interaction if the probe indicates that the data processing system has a valid cellular data connection subscription.

7. A data processing system comprising:
a wireless transceiver configured to transmit and receive signals through a mobile telecommunications service provider;
an input device;
a memory;

a processing system coupled to the memory and to the input device and to the wireless transceiver, the processing system configured to connect the data processing system to a cellular network identified by a main Access Point Name (APN), and determine that the data processing system does not have a valid cellular data connection subscription with the mobile telecommunications service provider by causing the wireless transceiver to transmit a probe to a server through the cellular network, wherein the probe is configured to determine whether the mobile device has a valid cellular data connection subscription and elicits a re-direct response if no valid cellular data connection subscription is determined, and the processing system is configured to connect the data processing system to a cellular data connection service registration site through the main APN, if the probe elicits a re-direct response, to allow a user of the data processing system to register for cellular data connection service provided by the mobile telecommunications service provider;
wherein the data processing system is limited to accessing the cellular data connection service registration site until the data processing system is successfully registered for cellular data connection service;
wherein the cellular data connection service registration site allows the user to perform one or more of: purchase a cellular data connection plan, extend an existing cellular data connection plan, add minutes to a cellular data connection plan, and add bandwidth to a cellular data connection plan and wherein, after successfully registering for cellular data connection service through the main APN, the data processing system connects to the Internet through the main APN;
wherein, prior to transmitting the probe, the processing system causes the wireless transceiver to transmit a data activation request and receives a confirmation of an acceptance of the data activation request;
wherein the processing system processes a response to the probe without requiring user interaction if the probe indicates that the data processing system has a valid cellular data connection subscription; and

wherein the re-direct response specifies an address that is different than the address of the particular server and the re-direct response directs the data processing system to a server controlled by the mobile telecommunications service provider.