On-demand network connectivity
Patent Information
- Application Number
- JP2022522879
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-16
- Filing Date
- 2020-10-16
- Publication Date
- 2025-03-13
- Estimated Expiration
- 2040-10-16
Smart Images

Figure 0007645253000001 
Figure 0007645253000002 
Figure 0007645253000003
Abstract
Description
[Technical field]
[0001] The present invention relates to telecommunications and wireless communication systems. [Background technology]
[0002] Generally, data-enabled applications installed on mobile devices, particularly smartphones, require a data connection to be fully functional. Without a data connection, the data-enabled application cannot provide its full functionality to the user.
[0003] Consider a global taxi dispatch application, where a data connection may be required to provide location and order a taxi on demand.
[0004] However, a mobile device may not always have an active data connection, for example, when the mobile device is abroad (e.g., when the mobile device user is traveling in a country other than his / her home country), when roaming on a foreign cellular network is not enabled for some reason, or when the device is not connected to a Wi-Fi network or any other applicable access network to access the Internet, etc. Without an Internet connection, a global taxi-hailing enabled application cannot perform its primary functionality.
[0005] It is therefore desirable to more efficiently provide options for maximizing the functionality of communications-enabled applications resident on mobile devices.
[0006] Prior art document US 9,325,941 discloses a method for managing communication channels for a communication-enabled application, where a primary channel may use a first wireless access technology, such as Wi-Fi or a cellular connection, and a secondary channel may use a second wireless access technology different from the first, and data for the communication-enabled application may be transmitted simultaneously or redundantly over both the primary and secondary channels. The method described in US 9,325,941 does not provide a solution to the above-identified problem of lack of Wi-Fi network connectivity, since it requires the use of a first wireless access technology, such as Wi-Fi.
[0007] Prior art document US9,661,530 discloses a method in which a mobile device communicates with a cellular network via a cellular connection and with a Wi-Fi network via a Wi-Fi connection, and generates a plurality of statistics from the backhaul data to generate backhaul statistics. Based on the plurality of statistics passing one or more thresholds, the mobile device can select the Wi-Fi connection for use with a communication-enabled application of the mobile device. This method does not solve the problem identified above, since it requires the use of a Wi-Fi network via a Wi-Fi connection. Summary of the Invention
[0008] According to a first aspect of the present disclosure, there is provided a method for operating a communications-enabled application on a mobile device, the method including the application detecting a need for data transmission when the mobile device currently has a data communications status that is incompatible with the need, and the application sending a request to activate a secure profile for a cellular network data communications session.
[0009] According to a second aspect of the present disclosure, there is provided a method for controlling a secure profile via an operating system installed on a mobile device, the method including receiving a request from an application installed on the mobile device, the request relating to authentication of the application to access cellular network data communications via the secure profile, and activating a cellular network data communications session utilizing the secure profile.
[0010] According to a third aspect of the present invention there is provided a mobile device comprising a memory circuit configured to store an operating system and an application, and a processing circuit configured to perform the methods according to the first and second aspects when configured with the operating system and / or the application.
[0011] According to a fourth aspect of the present disclosure, there is provided a method of operating a cellular network to provide cellular network data communications to a mobile device, the method comprising: the cellular network receiving a request to establish a cellular network data communications session from a mobile device performing the methods described with respect to the first and second aspects; and the cellular network establishing the cellular network data communications session with the mobile device using a secure profile included in the mobile device.
[0012] According to a fifth aspect of the present disclosure there is provided a cellular network configured to perform the method according to the fourth aspect.
[0013] Further features and advantages of the present invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only, made with reference to the accompanying drawings, in which: [Brief description of the drawings]
[0014] [Figure 1] FIG. 2 is a schematic diagram of a user equipment according to one embodiment. [Diagram 2] 2 illustrates a schematic diagram of a process for downloading an application and a secure profile according to one embodiment. [Diagram 3] 1 is a flow chart illustrating a method for operating a communications-enabled application on a mobile device according to one embodiment. [Figure 4] 2 is a schematic diagram illustrating a method for an application to request access to a secure profile according to one embodiment. [Diagram 5] 4 is a flow chart illustrating a method for controlling a secure profile via an operating system installed on a mobile device according to one embodiment. [Figure 6] 4 is a flow chart illustrating a method of operating a cellular network according to one embodiment. [Figure 7] FIG. 2 is a sequence diagram illustrating a data session according to one embodiment. [Figure 8A] 1 illustrates a flowchart of a method implemented in a mobile device according to one embodiment. [Figure 8B] 1 shows a flow chart of a method performed by a cellular network according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] An application (or apps) executing on a mobile device may require data transmission to perform primary and / or secondary functions. For example, a taxi dispatch application that connects a mobile device user with a taxi for the provision of transportation services may use data transmission. Data representing a mobile device user's profile, the mobile device user's current location, and the mobile device user's intended destination may all be transmitted to a service provider and / or taxi operator to provide the taxi service. Billing functions may also be performed via data transmission to and from the mobile device to enable the mobile device user to pay a fee for the service to the taxi operator.
[0016] Other examples of applications that require data transmission to perform primary and / or secondary functions include media streaming applications for providing music and / or video services to mobile device users, news applications for providing news articles to mobile device users, email applications, and the like.
[0017] In some cases, the mobile device may not have a data communication status that is compatible with the data transmission needs of the application. For example, the mobile device may not have a currently active secure profile and therefore may not currently be able to perform data transmission. The device may have an inactive communication status with respect to the cellular network data interface and / or any other data interface of the mobile device and therefore may not be able to fulfill the data transmission needs of the application. In other cases, the mobile device may have an inappropriate communication status with respect to its cellular network interface. For example, the mobile device may have one or more secure profiles enabled, but the application may not be authorized to access a cellular network data communication session (or data sessions) that uses the active secure profile(s). For example, if one or more active secure profiles in conjunction with an existing cellular network subscription provide messaging, multimedia, and voice over IP services to the mobile device user, the existing cellular network subscription may restrict communication of data to one or more approved applications and / or groups of purposes. Restricting data transmission of the cellular network subscription may prevent excessive data usage and therefore unexpected charges.
[0018] Particular examples described herein relate to providing temporary or persistent connections for use with applications executable or currently running on a mobile device (or "user equipment, UE") The temporary or persistent connections may be provided using a secure profile on the mobile device, which is enabled and / or activated upon request from the applications.
[0019] In certain embodiments, a data session established through use of a secure profile may be limited by the app, the mobile device, and / or the cellular network providing the data session. Data session limitations may be specified by the app in a request for a data session and / or may be predetermined and associated with the secure profile used to provide the data session. Restrictions may include limitations on which applications within the mobile device are authorized to use the data session, limitations on the amount or type of data transmitted during the data session, and / or limitations on IP addresses that may access the mobile device over the data session.
[0020] FIG. 1 illustrates a mobile device 100, which may be referred to as user equipment, UE, including at least one processor 120 and computer readable storage device 130, as well as one or more communication modules 140. The mobile device 100 may be a device, such as a smartphone or laptop, that supports cellular data connectivity and on which software applications may be installed and executed. Although the term "mobile device" is used herein, it should be understood that other remote devices capable of cellular network connectivity may be used, such as devices that are permanently or semi-permanently installed in remote locations. For example, appliances, vehicles, and other machines capable of cellular network connectivity may be considered "mobile devices." The mobile device 100 includes an operating system 170 (OS), such as a vendor's operating system, included in the computer readable storage device 130. Examples of operating systems include open source operating systems such as iOS®, Android®, MacOS, Microsoft Windows®, and Linux-based operating systems. In some examples, the computer readable storage device 130 may be referred to as a computer readable storage medium. However, it will be understood that the computer readable storage 130 may include one or more physical storage media or may be a virtualized storage device.
[0021] The at least one processor 120 may include various processing units including a central processing unit (CPU), a graphics processing unit (GPU), and / or specialized processing units for performing specific functions within the mobile device 100. The at least one processor 120 may include other specialized processing units such as an application specific integrated circuit (ASIC), a digital signal processor (DSP), or a field programmable gate array (FPGA).
[0022] Storage 130 may be embodied as any suitable combination of non-volatile and / or volatile storage. For example, storage 130 may include one or more solid-state drives (SSDs) along with non-volatile random access memory (NVRAM) and / or volatile random access memory (RAM), such as static random access memory (SRAM) and dynamic random access memory (DRAM). Other types of memory, such as removable storage synchronous DRAM, may be included. Storage 130 may represent a portion of storage included in mobile device 100, and storage 130 may refer to a virtualized portion of storage implemented as part of the overall storage included in mobile device 100.
[0023] The communication module(s) 140 may include any communication module adapted to communicate via a suitable wireless communication type. For example, the communication module(s) 140 may use any of Wi-Fi, Bluetooth, infrared, cellular frequency radio, or any other suitable wireless communication type. Additionally, the communication module(s) 140 may be configured to send and receive data via a wired connection.
[0024] The mobile device 100 includes a secure profile 150. The secure profile 150 is a data entity stored in memory that may be used to provide network authentication and access. In some examples, the secure profile 150 may be transmitted to the mobile device 100 over a data communication network. When used, the secure profile 150 may enable the mobile device 100 to establish a data communication connection over a cellular network. The secure profile 150 may be included in a secure module 110 that is installed on the mobile device 100. This entity, the secure profile 150, may be one or more of a "SIM profile," an "operational profile," or a "bootstrap profile," which may also be referred to as a "provisioning profile." In some examples, the primary function of the secure profile 150 is to provide the mobile device 100 with credentials and cryptographic resolution capabilities to enable the mobile device 100 to have a cellular data communication connection. This primary function may be independent of the typical mobile cellular network subscriptions associated with the mobile device 100 and used for everyday connectivity, e.g., mobile cellular network subscriptions used to facilitate calls, SMS, and / or web browsing.
[0025] The mobile device 100 includes a secure module 110, which may be a separate hardware module, e.g., an eUICC, also referred to as eSIM, iUCC, and soft SIM, or an embedded and / or integrated module, such as a SIM (e.g., a physical UICC). The secure module 110 may support any cellular network access technology (e.g., 2G, 3G, 4G, 5G, low power). The secure module 110 may comprise one or more further secure profiles 155, which are used by the mobile device 100 to provide cellular network communication services based on one or more subscriptions of a user of the mobile device for day-to-day communication.
[0026] Mobile device 100 includes communication-enabled application (or "app") 160. App 160 is a software application executable and / or running on mobile device 100. App 160 uses a data communication connection to perform certain applicable built-in functions. For example, if app 160 is a taxi dispatch application installed on mobile device 100, the data communication connection may be used by the application to send and receive data, such as data related to the location of mobile device 100, assigned taxi operator, user profile data, etc. Other examples may include a hotel booking application, a media streaming application, etc.
[0027] The apps 160 may be provided to the mobile device 100 by being downloaded and installed on the mobile device 100 from a digital distribution platform. The digital distribution platform, also referred to as an “AppStore”, is a platform of apps developed and maintained by an Original Device Manufacturer (ODM), an Original Equipment Manufacturer (OEM), or other third party associated with the user equipment. The digital distribution platform may consist of a third-party marketplace that provides services that require a data connection, such as the Apple App Store or the Google Play Store. The digital distribution platform may be accessible via the Internet and / or a remote network. The apps 160 may be downloaded from the digital distribution platform via any suitable communication method, e.g., the mobile device 100 may communicate with the digital distribution platform via the communication module(s) 140 using any suitable communication type enabled in the communication module(s) 140.
[0028] 2 illustrates a schematic process for a mobile device 100 to download an app 160 from a digital distribution platform 205, according to one embodiment. The mobile device 100 initiates a data session 200 to download the app 160 from the digital distribution platform 205 over the World Wide Web. The app 160 is downloaded 210 and installed on the mobile device 100. In the example illustrated in FIG. 2, the mobile device 100 communicates with the digital distribution platform 205 over the World Wide Web without accessing a cellular network 240. This may be the case, for example, when the mobile device 100 uses Wi-Fi to access the digital distribution platform 205.
[0029] In another embodiment, the mobile device 100 is registered with the cellular network 240, for example, via further secure profile(s) 155, and the data session 200 for downloading the app 160 is a cellular network data session established using the further secure profile(s) 155. The cellular network 240 shown in FIG. 2 includes a gateway 250, for example, a packet data network gateway (PDN-GW), a remote SIM provisioning platform 260, and network functions 270, for example, charging, management, and accounting functions, which may collectively be referred to as back-end functions. The cellular network 240 may also include a tunneling proxy 280. The cellular network 240 may be implemented as one or more computing devices including any suitable combination of hardware and software distributed across a geographic region, including suitable communication technologies for communicating with one or more mobile devices 100. The cellular network 240 may also include interfaces for communicating with other networks and / or remote servers, for example, the Internet.
[0030] In some cases, apps 160 may be pre-provisioned onto mobile device 100 during manufacturing. For example, a manufacturer of a particular mobile device 100 may include software such as apps 160 onto mobile device 100 during manufacturing of mobile device 100 before providing the mobile device 100 to a user.
[0031] As noted above, app 160 is a data communication enabled app and may rely on having a secure profile 150 installed on mobile device 100 to enable cellular network data communication when other data communication sessions, such as over Wi-Fi, are not available. In instances where mobile device 100 does not initially have a suitable secure profile 150 installed on mobile device 100 to enable app 160 to access a data communication session, a process of downloading secure profile 150 from cellular network 240 may begin. FIG. 2 illustrates mobile device 100 downloading secure profile 150 from cellular network 240 via communications 220 and 230. Mobile device 100 may download secure profile 100 via any suitable communication method, for example, secure profile 150 may be downloaded using Wi-Fi, a cellular connection, and other suitable communication methods.
[0032] Although two communications 220 and 230 (request and response) are shown in FIG. 2, it will be understood that any number of signals may be transmitted between the cellular network 240 and the mobile device 100 when downloading the secure profile 150. For example, an initial reservation message may be transmitted to the remote SIM provisioning platform 260 of the cellular communication network 240. The operating system 170 of the mobile device 100 may then request the secure profile 150 from the remote SIM provisioning platform 260. Once the secure profile 150 is received, one or more notification messages may be transmitted between the mobile device 100 and the remote SIM provisioning 270 platform for confirmation. In some examples, the operating system 170 installed on the mobile device 100 may initiate the download of the secure profile 150 after identifying the need for the secure profile 150 when downloading the app 160. For example, metadata included with or as part of the app 160 data may indicate the need for the secure profile 150. In other examples, the app 160 may identify that the appropriate secure profile 150 is not installed on the mobile device 100 and initiate the process by instructing the operating system 170 of the mobile device 100. In examples where the mobile device 100 does not have the appropriate secure profile 150 installed on the mobile device 100, installing the app 160 may trigger a process to download the secure profile 150 from the cellular network 240 and install the secure profile 150 on the mobile device 100. Alternatively, or in addition, the app 160 and / or the operating system 170 may initiate the download of the secure profile 150 at a later time, for example, when the app 160 is first executed on the mobile device 100 or after a pre-determined period of time after the app 160 is downloaded.Alternatively, or in addition, a user of mobile device 100 may initiate the download of secure profile 150. For example, the user may operate the mobile device, e.g., via a user interface, to download secure profile 150. In some cases, mobile device 100, e.g., via app 160 or operating system 170, may determine that secure profile 150 is required and may notify the user, e.g., via a user interface, to request confirmation from the user to download secure profile 150.
[0033] In some examples, the secure profile 150 can be installed on the secure module 110, which can store and operate one or more secure profiles, including the secure profile 150. The secure profile 150 can be provided by an original equipment manufacturer and is suitable for use by applications installed on the mobile device 100 configured to perform the method described below with respect to FIG. 3 to provide a data connection. Alternatively, the secure profile 150 can be suitable for use by only a subset of all apps installed on the mobile device 100, including, for example, the app 160. The party responsible for providing the secure profile 150 on the mobile device 100, for example, the original equipment manufacturer, can have the ability to provide the mobile device 100 with multiple secure profiles, each suitable for use in a different geographic location. The multiple secure profiles can also include one or more application-specific secure profiles used by each particular application, for example, the app 160, to provide a cellular network data connection to the application.
[0034] In certain cases, the mobile device 100 may already include a secure profile 150 and may choose, under certain predefined conditions, to allow the secure profile 150 to access a remote server over the Internet or a private network as necessary to satisfy those predefined conditions. An example of this is a situation where the mobile device 100 has no data communication connection for more than one week. In this case, the mobile device 100 may use the secure profile 150 to download the latest version updates of one or more configuration files. Predefined conditions under which such a secure profile 150 may be used may be extended by the apps 160 and / or the operating system 170 to include the provision of a cellular network data connection to execute the functions of the apps 160.
[0035] FIG. 3 illustrates an example method 300 for operating a communication-enabled application 160 on a mobile device 100. In a first block 302, the method 300 includes the app 160 detecting a need for data transmission when the mobile device 100 currently has a data communication status that is incompatible with the need. For example, the mobile device 100 may have a limited data connection such that only certain predetermined applications or functions within the mobile device 100 are authorized to use the data connection. Alternatively, the mobile device 100 may not have a data connection. The app 160 may detect a need for data transmission when the app 160 is opened on the device 100, for example, in response to input from a user of the mobile device 100. In another example, the app 160 may detect a need for data transmission when a user of the mobile device 100 seeks to perform a particular function within the app 160. Alternatively, or in addition, the app 160 may automatically detect a need for data transmission without input from a user. Upon determining the need for data transmission, the app 160 may communicate with the operating system 170 of the mobile device 100 to identify whether the current data communication status of the mobile device 100 is suitable to satisfy the need.
[0036] In a second block 304, the app 160 sends a request to activate the secure profile 150 for a cellular network data communication session. A cellular network data communication session (or "data session") is a cellular connection session that is enabled through the secure profile 150 of the authenticated app 160 of the mobile device 100 to provide access to the Internet or a remote network. The use of the data session may be of temporary or permanent duration and is appropriate for one or more data communication-based functions of the app 160. The app 160 may send a request to the operating system 170 of the mobile device 100. FIG. 4 illustrates an example of the app 160 sending a request 410 to the operating system 170 of the mobile device 100 to enable the secure profile 150 to provide cellular network data communication. The mobile device 100, and in particular the operating system 170 of the mobile device 100, may include one or more program software interfaces for the application 160 in the mobile device 100 to request that the secure profile 150 be enabled to provide a data session to the mobile device 100 for use by the application 160. Thus, the request 410 may be implemented using a programmatic software interface(s). The programmatic software interface(s) may include any of the mobile device 100's APIs, SDKs, or other suitable trigger mechanisms available to the app 160. In order for the app 160 to use the programmatic software interface, the app 160 may be pre-configured during development, compilation, or configuration of associated metadata to support use of the programmatic software interface(s).
[0037] The request 410 to activate the secure profile 150 may depend on the type of cellular network data communication session being requested, where the app 160 may determine the type of cellular network data communication session being requested, which may specify, for example, the type of cellular network data communication session that will be sent and received by the app 160 and / or whether the data session is limited by one or more characteristics, such as duration, data usage, rate limits, whether other applications are authorized to use the data session, and which services may be accessed using the data session.
[0038] Following the request 410, the operating system 170 of the mobile device 100 may execute a method for controlling the secure profile 150 to establish a cellular network data communication session for the app 160, as described below in connection with FIG. 5. The app 160 may generate a unique identification number or string ("UID") for the cellular network data communication session, which may be referred to as a session ID. The UID or a derivative thereof may be used by the app 160 to monitor and / or manage the cellular network data communication session, such as for purposes of accounting, billing, and invoicing for the data session. In some examples, the UID includes an identifier associated with the mobile device 100 and / or an end-user identification known to the app 160. Alternatively, the UID may be a unique random alphanumeric string.
[0039] The app 160 may transmit the session ID and the initial session data to the operating system 170 of the mobile device 100. This may enable the operating system 170 to monitor and / or manage the data session. The initial session data may include any suitable information for establishing and / or monitoring the data session. For example, the initial session data may include metadata used to establish and / or monitor the session. The metadata may include one or more identifiers associated with components or functions of the mobile device 100 or the cellular network 240 involved in establishing the data session. The metadata may additionally or alternatively include information identifying a user of the app 160. The initial session data may additionally or alternatively include data related to the initial communication between the mobile device 100 and the cellular network 240 when establishing a cellular network data communication session.
[0040] Once a cellular network data communication session is established, the app 160 may record data session metrics associated with the cellular network data communication session. These data session metrics may be stored as session data in the app 160. The metrics may include data usage, the type of data transmitted and / or received during the data session, the duration for which the data session is established, etc. The recorded metrics may be suitable for monitoring the data session for performing accounting, billing, and billing functions, and for diagnostic and troubleshooting purposes. The session data, including these metrics, may be transmitted to the operating system 170 of the mobile device 100 while the data session is active and / or when the data session is terminated.
[0041] In some examples, app 160 can control and / or limit the data session. For example, app 160 can be operable to control the duration of a data session and / or the amount of data transmitted and received during the data session. For example, app 160 can monitor session data including metrics related to the data session and send a request to deactivate the data session when a predetermined limit of duration and / or data usage is reached. Alternatively, or in addition, app 160 can deactivate the data session when the app 160 function requiring the data session is completed. In other examples, the data session can be terminated upon receiving a user command communicated via app 160 and / or when an alternative connection, e.g., a Wi-Fi connection, becomes available. When terminating a data session, app 160 can send final session data to operating system 170, which can include all session data generated during the data session or session data generated since app 160 previously sent session data to operating system 170.
[0042] In a particular example, the data session requested by app 160 may be a restricted cellular network data communication session, where only the requesting app 160 is authorized to use the data session. In other examples, app 160 may request a partially restricted or unrestricted cellular network data communication session. For example, app 160 may provide an end user of the device with the option to select a data plan via app 160 to grant access to the data session for a specified period of time and / or to permit a predetermined amount of data, e.g., 500 MB valid for one day, to be used by a group of one or more applications of mobile device 100.
[0043] If the end user of the device 100 decides to accept the app 160's offering, the data session may be an open data session that allows other applications installed on the mobile device 100 to access the data session. If another app attempts to activate the secure profile 150 during the period that this data session is active, the request is denied because the secure profile 150 is already in use on the mobile device 100. The application 160 may have the ability to offer multiple data package sizes with various characteristics. In some cases, a user of the app 160 may specify the desired characteristics of the data session that the user desires. For example, a taxi-hailing app may offer an end user of the app 160 a temporary or permanent data package that can be purchased on the app 160 and provided using the secure profile 150 and the mobile device 100, and / or the end user may specify the total amount of data (uplink and downlink) provided in the data session. Other examples may include a media streaming service that offers a data package suitable for transmitting one or more movies, television programs, and / or music albums or playlists to the mobile device 100.
[0044] In other examples, one or more data packages may be purchased from the digital distribution platform 205, but provided to the user of the mobile device 100 via the app 160. In other words, the app 160 may act as a resale channel through which products and services offered by the digital distribution platform 205 are displayed to and / or selected by the user of the mobile device 100.
[0045] 5 illustrates a method 500 of controlling a secure profile 150 via an operating system 170 installed on a mobile device 100. In a first block 502, the method 500 includes receiving a request from an app 160 installed on the mobile device 100. The request relates to authorization of the application to have cellular network data communication access via the secure profile 150. As described above, the request may be received from the app 160 using one or more programmatic software interfaces. If the mobile device 100 does not already have a secure profile 150 suitable for providing a cellular network data communication session to the app 160, the operating system 170 may download the secure profile 150 as described above in connection with FIG. 2.
[0046] In a second block 504, the method 500 includes activating a cellular network data communication session by utilizing the secure profile 150. Establishing the cellular network data communication session includes registering with the cellular network 240 using the secure profile 150 and transmitting a session ID to the cellular network 240. The session ID may be transmitted to the network function 270 for monitoring, accounting, and billing purposes. In some cases, initial session data may also be transmitted to the cellular network 240 to establish the data session.
[0047] Alternatively, operating system 170 may determine, for example, based on metadata associated with app 160 or via a push notification received at the mobile device, that app 160 is a data communications enabled application and / or that there is a need for a data connection for app 160. Based on this determination, and if mobile device 100 does not currently have a communication status suitable to satisfy the data connection needs of app 160, operating system 170 may activate secure profile 150 to allow a cellular network data connection to be provided to app 160.
[0048] In some examples, the operating system 170 can perform further functions to manage the data session. For example, the operating system 170 can monitor data session metrics such as uplink and downlink usage during the data session. These data session metrics may be included in the session data. The operating system 170 can alternatively or additionally receive data session metrics associated with the cellular network data communication session, for example, from the app 160. The operating system 170 can store the metrics and transmit the metrics associated with the cellular network data communication session, for example, to the network function 270. The operating system 170 can transmit the metrics associated with the cellular network data communication session to the network function 270 of the cellular network 240 and / or to the digital distribution platform 205 via the cellular network 240 or other suitable communication methods. The data session metrics may be transmitted by the operating system 170 at periodic intervals or when certain predetermined criteria are met, for example, after a predetermined amount of data has been transmitted and / or received. The data session metrics may be included in the session data generated by the app 160, the operating system 170, or a combination of both.
[0049] The data session metrics can then be used by one or both of the network functions 270 of the cellular network 240 and the digital distribution platform 205 for accounting, billing, and billing purposes, and possibly for network diagnostic and / or troubleshooting purposes. In other words, the user of the mobile device may be charged for the data session via the digital distribution platform 205 or directly by the operator of the cellular network 240, e.g., if the user is registered with the operator of the cellular network 240. Alternatively, or in addition, the operator and / or manufacturer of the app 160 may be charged via the digital distribution platform 205 and may absorb these charges or forward the fees to the user of the mobile device 100. These metrics can be associated with a session ID for the data session so that data usage can be tracked and accounted for.
[0050] Upon receiving a request from the app 160 to activate the secure profile 150, the operating system 170 can verify that the app 160 is authorized to access this functionality. Applicable methods for authentication can be performed locally on the mobile device 100. Authenticating the app 160 can include processing of metadata contained in or associated with the app 160 and / or cryptographic checks based on public key cryptography. It should be understood that other suitable authentication methods can be utilized. The operating system 170 can also check that the secure profile 150 can access the cellular network 240 that corresponds to the current geographic location of the mobile device 100. The operating system 170 can implement other rules or authentication checks, including the number of times the app 160 has requested a data session in a given period. In other examples, the authentication of the app 160 can be managed by a remote server of the cellular network 240 and implemented locally on the mobile device 100 by the operating system 170.
[0051] In some cases, the operating system 170 of the mobile device 100 may limit the data session provided to a requesting app 160, a group of apps, or any applicable software process that may utilize the mobile device's data session. The type of limitation may be determined during authentication of the request by the operating system 170. In some cases, the type of limitation required by the app 160 may be indicated in the initial request 410, or in a subsequent communication to the operating system 170. Examples of data session limitations may include limiting the amount of data transmission, the duration of the data session, and / or limiting the apps that may access the data session, for example, by only allowing outbound or inbound data traffic generated by or destined for one or more authenticated applications, including the app 160. In such cases, the operating system 170 may track and monitor the data session, including the amount of uplink and downlink data utilized during the session.
[0052] Upon termination of the data session, e.g., when the functionality of app 160 using the data session terminates, when a pre-determined data usage limit is reached, when an alternative data connection, e.g., via Wi-Fi, becomes available, and / or when a user of app 160 selects to terminate the data session, app 160 may send a request to terminate the data session and / or disable secure profile 150 of mobile device 100. The request to terminate the data session may be sent from app 160 to operating system 170. Alternatively, a user of the mobile device may terminate the data session directly with operating system 170, e.g., via a user interface.
[0053] The operating system 170 of the mobile device 100 may then disable the secure profile 150 of the mobile device 100. Upon terminating the data session, the operating system 170 may transmit the final aggregate data usage information for receipt by either the cellular network 240, particularly the network function 270, and the digital distribution platform 205. The final aggregate data usage information may be included in the final session data.
[0054] 6 illustrates a method 600 of operating the cellular network 240 to provide cellular network data communications to the mobile device 100. In a first block 602, the method 600 includes the cellular network 240 receiving a request to establish a cellular network data communications session from the mobile device 100. The cellular network 240 may determine one or more settings for the data session based on the request. For example, the one or more settings may represent characteristics of the data session, such as authorized applications, data usage, and / or duration.
[0055] The cellular network 240 may identify the app 160 and / or the mobile device 100 based on the request to establish a cellular network data communication session. For example, the request to establish a data session may include identifier details. The identifier details may include, for example, an Access Point Name (APN) of the app 160, such as an APN associated with the secure profile 150 used by the mobile device 100 to provide data connectivity to the app 160, a Mobile Station International Subscriber Directory Number (MSISDN) of the secure profile 150, an International Mobile Subscriber Identity (IMSI) associated with the secure profile 150, an International Mobile Equipment Identifier (IMEI) or other suitable identifier details associated with the app 160 or the secure profile 150.
[0056] In a second block 604, the method 600 includes the cellular network 240 establishing a cellular network data communication session with the mobile device 100 based on the request. The cellular network data communication session may enable the mobile device 100 to connect to the Internet via a gateway 250, e.g., a packet data network gateway (PDN-GW), included in the cellular network 240.
[0057] When establishing a data session, the cellular network 240 may rewrite (or "reconfigure") the app APN if the identifier details include the app APN. For example, an APN server may be included in the cellular network 240 configured to receive a request from the mobile device 100 and rewrite the APN to enable a data session connection for the app 160 functionality. The cellular network 240 may obtain DNS settings for the data session based on the app APN or other identifier details and establish an accounting session for the next data session. This may allow tracking and storing information of the data session for accounting, billing, and charging functions. The cellular network 240 may transmit configuration data for the session to the mobile device 100 when establishing the data session. The cellular network 240 may be configured to receive a session ID and other data (e.g., initial session data) from the mobile device 100 for the purpose of tracking and storing the data session and establishing the data session. For this purpose, the cellular network 240 may associate a session ID with the established accounting session. The session ID may be provided to the network function 270 of the cellular network 240 directly or via one or more other elements of the network 240 .
[0058] In some examples, the cellular network 240 may be configured to manage and / or limit data sessions, in which case the session configuration data transmitted to the mobile device 100 may include restriction information that specifies how the data session is restricted, e.g., data restrictions (uplink and downlink).
[0059] The cellular network 240 can actively restrict the data session, for example, if only a particular application (such as the requesting app 160) is authorized to use the data session. In some examples, the cellular network 240 can restrict access based on a DNS request from the mobile device 100. The cellular network 240 can receive the app's DNS request, for example, in the form of data received from the mobile device 100 indicating a request for a domain name. If the app 160 is not authorized to access the data connection via the cellular network 240, the request is rejected and the method ends. If the app 160 is authorized to access the data connection via the cellular network 240, the request is accepted and the mobile device is authorized to access a domain name server, based on the request, via the cellular network 240 to obtain one or more IP addresses.
[0060] During the data session, the app 160 may attempt to access a given IP address. If the IP address is not authorized for the data session, the data communication that the app 160 attempts to send to the given IP address is denied. If the IP address is authorized for the data session, the data communication transit is permitted by the cellular network 240 and the data communication is forwarded between the remote network associated with the IP address and the mobile device 100, allowing the app 160 to make a data connection and perform its functions.
[0061] In some examples, the restrictions may be communicated from the mobile device 100 to the cellular network 240 when establishing a data session. In other examples, the cellular network 240 may determine one or more settings for the data session based on at least configuration data associated with the secure profile. For example, when the secure profile 150 is used with a particular application, the cellular network 240 may access one or more data stores, such as a database that includes configuration information associated with the secure profile 150. For example, the secure profile 150 may be associated with one or more specific domain names and / or a group of one or more authorized IP addresses that represent an authorized list of domains that may be accessed using the secure profile 150.
[0062] The app 160 and / or the operating system 170 may periodically register data usage information (e.g., in the form of session data) with the cellular network 240, including, for example, data uplink and downlink usage, data session duration, and web addresses accessed over the data session. The cellular network 240 may use the data usage information to monitor and / or limit data sessions to the mobile device 100. Alternatively, or in addition, the cellular network 240 may use the data usage information to perform certain accounting, billing, and / or charging functions. For example, at the end of the data session, the cellular network 240 may use the data session information to bill the cost of the data session either directly to the user of the mobile device 100 or to the digital distribution platform 205, through which the app developer may or may not charge the user of the mobile device 100. Aggregate data session usage information may also be transmitted to the cellular network 240 at the end of the data session for accounting, billing, and charging purposes.
[0063] Although the above description discusses limiting data sessions in the cellular network 240 based on per-session DNS requests, the cellular network may manage or limit data sessions in alternative ways. For example, a gateway 250, e.g., a PDN-GW, in the cellular network 240 used to communicate between the mobile device 100 and an Internet Protocol network, e.g., the Internet, may be configured to allow only certain data traffic to pass through the gateway depending on the APN used to establish the data session. For example, the gateway 250 may implement certain rules that may send communications based on the APN. The rules may be determined based on DNS settings associated with the APN. As an example, if a data session is established using a bootstrap profile associated with an APN that identifies the remote SIM provisioning platform 260, the gateway 250 may limit traffic during the data session such that only communications addressed to the remote SIM provisioning platform 260 are sent.
[0064] In some cases, the secure profile 150 used to access a data session on demand from the app 160 may be associated with a particular APN. For example, as described herein, the secure profile 150 used by the mobile device 100 to provide an on-demand connection to an app, e.g., the app 160, may belong to a particular profile type, e.g., a Communication-as-a-Service (CaaS) profile type. The CaaS profile type is associated with a particular APN and is hereafter referred to as a CaaS APN. The CaaS APN is further distinguished from an APN associated with the secure profile(s) 155. When the secure profile 150 is provided from a remote SIM provisioning platform 260, the remote SIM provisioning platform 260 may be configured to provide a secure profile belonging to a CaaS profile type and associated with the CaaS APN.
[0065] Using the CaaS APN, when a data session is being established, the cellular network 240 can establish DNS settings for the secure profile 150, identified as a CaaS profile type based on the associated CaaS APN, and determine a list of allowed IP addresses for the data session. In some examples, the CaaS profile type can be restricted such that only traffic directed to the tunneling proxy 280 is sent through the gateway 250 during the respective data session. To prevent unauthorized use of the data session, for example by unauthorized applications of the mobile device 100, the tunneling proxy 280 can be secured such that only communications including associated credentials are accepted by the tunneling proxy 280.
[0066] Using the tunneling proxy 280 as the destination of traffic during a data session may allow for simplifying the restrictions implemented by the gateway 250. In other words, the gateway 250 rejects all traffic during a data session established with the secure profile 150 that is not addressed to the IP address of the tunneling proxy 280. One such example of a tunneling proxy 280 that may be used is a SOCKS proxy.
[0067] In an example where gateway 250 restricts data communications of the CaaS profile type to only be able to communicate through tunneling proxy 280, the configuration data may be provided to app 160 for use in configuring app 160 to handle communications during a data session, e.g., from network function 270 through mobile device 100 to tunneling proxy 280. After receiving the configuration information, app 160 may configure or reconfigure its HTTP client based on the configuration data. The configuration data may include, e.g., information identifying appropriate tunneling proxy host, port, and / or credentials. Using tunneling proxy 280 to control data traffic during a data communication session may enable efficient monitoring of the data session and may enable the data session to be distinguished from other data sessions established on mobile device 100.
[0068] FIG. 7 illustrates an example of a network-restricted data session in which a tunneling proxy 280 is used. In a first step, an SDK 702 implemented by an app 160 sends a session initiation request 704 that includes an identifier of the app 160. The network functions 270 process the identifier and, if the app 160 is authorized to access the data session, provide 706 configuration data to be used during the data session. The network functions 270 can maintain a database that identifies apps that are authorized to use the established data session using the secure profile 150. Alternatively, the network functions 270 can access an external database, either within the cellular network 240 or outside the cellular network 240, to establish whether the app 160 is authorized to access the data session. The configuration data can include data for identifying and accessing the tunneling proxy 280. For example, the configuration data can include information identifying the proxy host, port, and in some examples, credentials, such as a username and password, for accessing the tunneling proxy 280.
[0069] The SDK 702 communicates 710 with the app 160 and provides it with configuration data. The app 160 configures an HTTP client within the app 160 based on the configuration data, step 712. The app 160 then sends an http or https request 714 to the tunneling proxy 280. The request 714 is forwarded by the tunneling proxy 280 and a response is received (716). The response is sent back from the tunneling proxy 280 to the app 160. At the end of the session, the SDK 702 notifies 720 the tunneling proxy 280 and the end of the session is communicated to the network function 270.
[0070] 8A and 8B show examples of the above method, where for ease of understanding, certain method steps that may be performed by different entities, e.g., application 160 and operating system 170, are shown together. Fig. 8A shows method 800 including method steps 802a to 802j, where some steps 802a, 802b, 802d, 802i are performed by app 160 and other steps 802c, 802e, 802f, 802g, 802h, 802j are performed by operating system 170 of mobile device 100. Fig. 8B shows method 804 including steps 806a to 806m according to a particular embodiment described herein and implemented by cellular network 240.
[0071] 8A and 8B are shown in a particular order, those skilled in the art will appreciate that the steps may be performed out of order, and possibly simultaneously. For example, the app generating the session ID at 802d and the operating system enabling secure profile 802e may be performed in a different order than shown in FIG.
[0072] The above embodiments are to be understood as illustrative examples. Further embodiments of the present invention are envisioned. For example, if a data session is abruptly terminated due to a drop in the mobile device 100 signal, the final total data usage (e.g., final session data including final total data usage information) and any other associated metadata may be submitted to the cellular network 240, or the digital distribution platform 205, when a suitable cellular network connection is next available to the mobile device 100, or via another bearer such as a silent short message service (SMS) communication. In other examples, the app 160 may provide the data session free of charge to the end user of the app 160 and may separately settle any fees due to the provider of the secure profile 150. Combinations of the various charging and billing options described above are also possible.
[0073] It is to be understood that any feature described in connection with any one embodiment may be used alone or in combination with the other features described, and may also be used in combination with one or more features of any other embodiment, or in any combination of any other embodiment. Moreover, equivalents and modifications not described above may be employed without departing from the scope of the invention, which is defined in the appended claims.
Claims
1. 1. A method for operating a communications-enabled application on a mobile device, comprising: detecting, by the application, a need for transmitting data over a cellular network data communication session characterized by one or more required parameters; the application communicating with an operating system (OS) running on the mobile device to identify whether a current data communication status of the mobile device is suitable to meet the required parameters; sending, by the application to the OS, a request to enable a secure profile for the cellular network data communication session if the current data communication status is not suitable for satisfying the required parameters, the request indicating the required parameters of the cellular network data communication session; The method includes, after initiating the cellular network data communication session, recording, by the application, metrics associated with the cellular network data communication session, and transmitting the metrics to the OS.
2. 10. The method of claim 1, further comprising: sending the request to activate a secure profile to initiate the cellular network data communication session through a programmatic software interface of the mobile device.
3. The method of claim 1 or 2, wherein the method includes installing the secure profile on the mobile device.
4. The method of claim 1 , further comprising generating a unique identification for the cellular network data communication session.
5. The method comprises: determining the type of cellular network data communication session being requested; and sending the request to activate the secure profile for initiating the cellular network data communication session based on a type of the requested cellular network data communication session; The method of any one of claims 1 to 4, comprising:
6. The method comprises:
6. The method of claim 5, comprising: sending the request from the application to the OS to enable the secure profile to initiate the cellular network data communication session; and then generating initial session data by the application, the initial session data including metadata used to establish and / or monitor the cellular network data communication session.
7. The method of claim 6 , wherein the method includes transmitting the initial session data to the OS.
8. The method of claim 7, wherein the metrics include at least one of: data usage; type of data transmitted and / or received during the cellular network data communication session; duration of the cellular network data communication session.
9. The method comprises:
9. The method of claim 1, wherein the application uses the metric to control the cellular network data communication session.
10. The method of claim 9, wherein the application controls the duration of the cellular network data communication session and / or the amount of data transmitted and / or received during the cellular network data communication session.
11. The method of claim 10, comprising the application sending a request to the OS to deactivate the cellular network data communication session when the duration and / or the amount of data transmitted and / or received reaches a predefined limit.
12. The method comprises: receiving configuration data associated with the tunneling proxy; and using said configuration data to transmit data communications during said cellular network data communications session; The method of any one of claims 1 to 11, comprising:
13. The method of claim 12 , wherein the configuration data includes credentials for accessing the tunneling proxy.
14. 1. A mobile device comprising: a memory circuit configured to store an operating system and applications; and A processing circuit configured, when configured with said operating system and / or said application, to carry out the method according to any one of claims 1 to 13. Including mobile devices.
Citation Information
Patent Citations
Methods and apparatus for certificate processing
JP2010532596A
Updating profiles for secondary wireless devices
JP2018207479A
Managing multiple active Subscriber Identity Module profiles
JP2018518129A