U.S. patent application number 14/108098 was filed with the patent office on 2014-04-17 for dynamic carrier switching.
The applicant listed for this patent is Amazon Technologies, Inc.. Invention is credited to Girish Bansilal Bajaj, Varadarajan Gopalakrishnan, Clifton Liu, Subram Narasimhan, Siva Rama Kumar Somayajula.
Application Number | 20140106753 14/108098 |
Document ID | / |
Family ID | 49840939 |
Filed Date | 2014-04-17 |
United States Patent
Application |
20140106753 |
Kind Code |
A1 |
Narasimhan; Subram ; et
al. |
April 17, 2014 |
DYNAMIC CARRIER SWITCHING
Abstract
A rule server detects a condition pertaining to a switch of a
user device to a preferred wireless carrier, and sends a message to
the user device indicating a switch to the preferred wireless
carrier.
Inventors: |
Narasimhan; Subram;
(Saratoga, CA) ; Bajaj; Girish Bansilal;
(Bellevue, WA) ; Somayajula; Siva Rama Kumar;
(Palo Alto, CA) ; Liu; Clifton; (Santa Clara,
CA) ; Gopalakrishnan; Varadarajan; (Cupertino,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Amazon Technologies, Inc. |
Reno |
NV |
US |
|
|
Family ID: |
49840939 |
Appl. No.: |
14/108098 |
Filed: |
December 16, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12708483 |
Feb 18, 2010 |
8626165 |
|
|
14108098 |
|
|
|
|
Current U.S.
Class: |
455/436 |
Current CPC
Class: |
H04L 63/102 20130101;
H04W 12/08 20130101; H04W 12/0023 20190101; H04M 15/8033 20130101;
H04M 15/8044 20130101; H04M 15/751 20130101; H04W 8/18 20130101;
H04W 4/24 20130101; H04M 15/8055 20130101; H04W 36/14 20130101 |
Class at
Publication: |
455/436 |
International
Class: |
H04W 36/14 20060101
H04W036/14 |
Claims
1. A non-transitory computer readable storage medium having
instructions that, when executed by a processing system, cause the
processing system to perform operations comprising: detecting, by
the processing system, a condition associated with a switch of a
home network from a current wireless carrier to a specified
wireless carrier; identifying, by the processing system, a user
device to which the condition applies; and responsive to
identifying the user device to which the condition applies,
performing the following comprising: sending, by the processing
system, a message to the user device, while the user device is
connected to the current wireless carrier, the message indicating
the switch to the specified wireless carrier; and sending, by the
processing system, at least one of a device profile for the
specified wireless carrier or an identifier for the device profile,
the device profile comprising data defining a new unique
international mobile subscriber identity (IMSI) associated with the
specified wireless carrier that will replace a current IMSI
associated with the current wireless carrier.
2. The non-transitory computer readable storage of claim 1,
wherein: the device profile comprises subscriber identity module
(SIM) data that defines the new unique IMSI, the new unique IMSI
comprising a mobile country code (MCC), a mobile network code (MNC)
and a mobile station identification number (MSIN) associated with
the specified wireless carrier; and the SIM data further defines
settings for the specified wireless carrier, the settings
comprising at least one of security authentication information,
ciphering information or a list of services.
3. The non-transitory computer readable storage medium of claim 2,
wherein the device profile further comprises a modem profile that
defines connection parameters for the specified wireless carrier,
the connection parameters comprising at least one of a frequency
band or a format for presenting a name of the specified wireless
carrier on the user device.
4. The non-transitory computer readable storage medium of claim 1,
wherein the condition is defined by a rule that is based on at
least one of a performance characteristic of the specified wireless
carrier or a cost characteristic of the specified wireless
carrier.
5. The non-transitory computer readable storage medium of claim 1,
wherein detecting the condition associated with a switch to the
specified wireless carrier comprises: detecting a change in a
location of the user device; identifying one or more rules
applicable to a new location of the user device; and determining
that one of the identified rules indicates the switch to the
specified wireless carrier.
6. The non-transitory computer readable storage medium of claim 1,
the operations further comprising: receiving a response of the user
device to the message, the response indicating that the switch to
the specified wireless carrier is undesirable; determining whether
any rule provides an alternative wireless carrier for switching; if
any rule provides the alternative wireless carrier for switching,
sending a second message to the user device, the second message
indicating a switch to the alternative wireless carrier; and if no
rules provide the alternative wireless carrier for switching,
sending a third message to the user device, the third message
insisting that the switch to the specified wireless carrier be
performed.
7. A non-transitory computer readable storage medium including
instructions that, when executed by a processing unit of a user
device, cause the processing unit to perform operations comprising:
receiving, by the processing unit, while the user device is
connected to a first wireless carrier, an indication that a switch
of the user device from the first wireless carrier to a second
wireless carrier is to be performed; obtaining, by the processing
unit, a device profile associated with the second wireless carrier,
the device profile comprising data defining a new unique
international mobile subscriber identity (IMSI) associated with the
second wireless carrier that will replace a current IMSI associated
with the first wireless carrier; reprogramming a modem of the user
device using the device profile associated with the second wireless
carrier, wherein the reprogramming causes a home network of the
user device to switch from the first wireless carrier to the second
wireless carrier; and establishing a network connection for the
user device using the device profile associated with the second
wireless carrier.
8. The non-transitory computer readable storage medium of claim 7,
wherein: the device profile comprises subscriber identity module
(SIM) data that defines the new unique IMSI, the new unique IMSI
comprising a mobile country code (MCC), a mobile network code (MNC)
and a mobile station identification number (MSIN) associated with
the specified wireless carrier; and the SIM data further defines
settings for the specified wireless carrier, the settings
comprising at least one of security authentication information,
ciphering information or a list of services.
9. The non-transitory computer readable storage medium of claim 8,
wherein the device profile further comprises a modem profile that
defines connection parameters for the specified wireless carrier,
the connection parameters comprising at least one of a frequency
band or a format for presenting a name of the specified wireless
carrier on the user device.
10. The non-transitory computer readable storage medium of claim 7,
wherein obtaining the device profile associated with the second
wireless carrier comprises at least one of a) receiving the device
profile associated with the second wireless carrier from a server
or b) retrieving the device profile associated with the second
wireless carrier from secure memory.
11. The non-transitory computer readable storage medium of claim 7,
wherein the condition is any one of a change in a location of the
user device, a message indicating that the user device is denied
network access via the first wireless carrier or a change in a
network access performance characteristic.
12. The non-transitory computer readable storage medium of claim 7,
wherein receiving the indication that the switch of the user device
from the first wireless carrier to the second wireless carrier is
to be performed comprises at least one of a) detecting that a
condition pertaining to the switch of the user device from the
first wireless carrier to the second wireless carrier has been
satisfied or b) receiving a command to perform the switch from the
first wireless carrier to the second wireless carrier.
13. A user device comprising: a wireless modem; and a processing
unit coupled to the wireless modem and to the memory, the
processing unit to: receive, while the user device is connected to
a first wireless carrier, an indication that a switch of the user
device from the first wireless carrier to a second wireless carrier
is to be performed; obtain a device profile associated with the
second wireless carrier, the device profile comprising data
defining a new unique international mobile subscriber identity
(IMSI) associated with the second wireless carrier that will
replace a current IMSI associated with the first wireless carrier;
reprogram the wireless modem using the device profile associated
with the second wireless carrier, wherein the reprogramming causes
a home network of the user device to switch from the first wireless
carrier to the second wireless carrier; and establish a network
connection for the user device using the device profile associated
with the second wireless carrier.
14. The user device of claim 13, wherein the user device is an
electronic book reader.
15. The user device of claim 13, wherein the device profile
comprises subscriber identity module (SIM) data that defines the
new unique IMSI, the new unique IMSI comprising a mobile country
code (MCC), a mobile network code (MNC) and a mobile station
identification number (MSIN) associated with the specified wireless
carrier.
16. The user device of claim 15, wherein the SIM data further
defines settings for the specified wireless carrier, the settings
comprising at least one of security authentication information,
ciphering information or a list of services.
17. The user device of claim 15, wherein the device profile further
comprises a modem profile that defines connection parameters for
the specified wireless carrier, the connection parameters
comprising at least one of a frequency band or a format for
presenting a name of the specified wireless carrier on the user
device.
18. The user device of claim 13, wherein obtaining the device
profile associated with the second wireless carrier comprises at
least one of a) receiving the device profile associated with the
second wireless carrier from a server or b) retrieving the device
profile associated with the second wireless carrier from secure
memory on the modem.
19. The user device of claim 13, wherein the condition is any one
of a change in a location of the user device, a message indicating
that the user device is denied network access via the first
wireless carrier, and a change in a network access performance
characteristic.
20. The user device of claim 13, wherein receiving the indication
that the switch of the user device from the first wireless carrier
to the second wireless carrier is to be performed comprises at
least one of a) detecting that a condition pertaining to the switch
of the user device from the first wireless carrier to the second
wireless carrier has been satisfied or b) receiving a command to
perform the switch from the first wireless carrier to the second
wireless carrier.
Description
RELATED APPLICATIONS
[0001] This patent application is a continuation application of
U.S. patent application Ser. No. 12/708,483, filed Feb. 18, 2010,
which is herein incorporated by reference.
FIELD OF INVENTION
[0002] Embodiments of the invention relate to user devices, and
more particularly to dynamically switching user devices to
preferred wireless carriers.
BACKGROUND OF THE INVENTION
[0003] A large and growing population of users is enjoying
entertainment through the consumption of digital media items, such
as music, movies, images, electronic books, and so on. The users
employ various electronic devices to consume such media items.
Among these electronic devices are electronic book readers,
cellular telephones, personal digital assistants (PDAs), portable
media players, tablet computers, netbooks, and the like. As the
quantity of available electronic media content continues to grow,
along with increasing proliferation of devices to consume that
media content, providing network connectivity for such user devices
in a cost efficient manner continues to be a priority.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The present invention will be understood more fully from the
detailed description given below and from the accompanying drawings
of various embodiments of the invention, which, however, should not
be taken to limit the invention to the specific embodiments, but
are for explanation and understanding only.
[0005] FIG. 1 is a block diagram of exemplary network architecture
in which embodiments of the invention may operate.
[0006] FIG. 2 is a block diagram of one embodiment of a rule
creation module.
[0007] FIG. 3 is a block diagram of one embodiment of a rule
server.
[0008] FIG. 4 is a block diagram of one embodiment of a profile
switching module.
[0009] FIG. 5 is a flow diagram of one embodiment of a method for
creating rules facilitating dynamic switching of user devices to
preferred wireless carriers.
[0010] FIG. 6 is a flow diagram of one embodiment of a method for
facilitating a dynamic switch of a user device to a preferred
wireless carrier.
[0011] FIG. 7 is a flow diagram of one embodiment of a method for
facilitating a switch of a user device to a different wireless
carrier in response to a change in the location of the user
device.
[0012] FIG. 8 is a flow diagram of one embodiment of a method for
facilitating a switch of a user device to a different wireless
carrier using preferences of a user.
[0013] FIG. 9 is a flow diagram of one embodiment of a method for
dynamically switching a user device to a preferred local carrier at
a new location of the user device.
[0014] FIG. 10 is a flow diagram of one embodiment of a method for
dynamically switching a user device to a different wireless carrier
using a priority list maintained by the user device.
[0015] FIG. 11 is a block diagram illustrating an exemplary user
device.
[0016] FIG. 12 is a block diagram illustrating an exemplary server
computing system such as an item providing system or a
communication enabling system.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
[0017] Methods and systems for dynamically switching user devices
to preferred wireless carriers are described. User devices may be
any content rendering devices including, for example, electronic
book readers, cellular telephones, personal digital assistants
(PDAs), portable media players, tablet computers, netbooks, and the
like.
[0018] In one embodiment, a server computer system ("server")
detects a condition triggering a rule that requires or recommends a
switch to a specified wireless carrier. The rule may be based on
one or more performance characteristics (throughput, signal
strength, network load, etc.) of the specified wireless carrier
and/or one or more cost characteristics (billing rate, surcharge,
etc.) of the specified wireless carrier. In response to the
detected condition, the server identifies one or more user devices
to which the rule is applicable, and sends the message to each of
these user devices, requesting or recommending a switch to the
specified wireless carrier. In some embodiments, the server also
sends a device profile of the specified wireless carrier to the
user device. In other embodiments, the user devices store device
profiles of various carriers including the device profile of the
specified carrier and therefore do not need to receive the device
profile from the server. In response to the message from the
server, the user device reprograms its modem using the device
profile of the specified wireless carrier, and establishes a
network connection using the device profile of the specified
wireless carrier. In another embodiment, in response to the message
from the server, the user device determines whether to follow the
recommendation of the server, and if this determination is
positive, the user device reprograms the modem using the device
profile of the specified wireless carrier, and establishes a
network connection using the device profile of the specified
wireless carrier.
[0019] In alternative embodiments, a switch to a different wireless
carrier is initiated by a user device itself. In particular, a user
device may contain a subset of rules that specify conditions for
carrier switching. These conditions may include, for example, a
change in the user device location, a denial of network access via
a current wireless carrier, a change in a performance
characteristic, etc.
[0020] Accordingly, embodiments of the invention facilitate dynamic
switching of user devices to preferred wireless carriers. Dynamic
switching consumes only a small amount of time and client resources
and does not require any user interaction. As a result, the cost
associated with network connectivity is significantly reduced, and
network access performance characteristics are improved.
[0021] FIG. 1 is a block diagram of an exemplary network
architecture 100 in which embodiments of the invention may operate.
The network architecture 100 may include an item providing system
104 and multiple user devices 102 coupled to the item providing
system 104 via a network 106.
[0022] The user devices 102 are variously configured with different
functionality to enable consumption of one or more types of media
items. The media items may be any type or format of digital
content, including, for example, electronic texts (eBooks,
electronic magazines, digital newspapers, etc.), digital audio
(music, audible books, etc.), digital video (movies, television,
short clips, etc.), images (art, photographs, etc.), and
multi-media content. The user devices 102 may include any type of
content rendering devices such as electronic book readers, portable
digital assistants, mobile phones, laptop computers, portable media
players, tablet computers, cameras, video cameras, netbooks,
notebooks, desktop computers, gaming consoles, DVD players, media
centers, and the like.
[0023] The item providing system 104 downloads items, upgrades,
and/or other information to the user devices 102 via the network
106. The item providing system 104 also receives various requests,
instructions and other data from the user devices 102 via the
network 106. The item providing system 104 may include one or more
machines (one or more server computer systems, routers, gateways,
etc.) that have processing and storage capabilities to provide the
above functionality.
[0024] In the illustrated implementation, communication between the
item providing system 104 and the user device 102 is enabled via a
communication infrastructure that includes a combination of a wide
area network (WAN) 106 and wireless infrastructure, which allows a
user to use the user device 102 to purchase items and consume items
without being tethered to the item providing system 104 via
hardwired links. The wireless infrastructure is provided by a
wireless carrier system 114 that can be implemented using various
data processing equipment, communication towers, etc.
Alternatively, or in addition, the wireless carrier system 114 may
rely on WiFi or satellite technology to exchange information with
the user device 102.
[0025] The communication infrastructure also includes a
communication-enabling system 108 that serves as an intermediary in
passing information between the item providing system 104 and the
wireless carrier. The communication-enabling system 108 may
communicate with the wireless carrier system 114 via a dedicated
channel, and may communicate with the item providing system 104 via
a non-dedicated communication mechanism, e.g., a public network
such as the Internet. By virtue of this intermediary role, the
communication enabling system 108 may be referred to as a Mobile
Virtual Network Enabler (MVNE), while the item providing system 104
may be referred to as a Mobile Virtual Network Operator (MVNO).
[0026] The item providing system 104 may pay the wireless carrier a
fee based on the aggregate use of the wireless carrier system 114
by all of the user devices 102. The item providing system 104 may
recoup these costs through fees charged to the end-users separately
or as part of other purchases (e.g., purchase of digital content)
made by the end-users. Alternatively, the wireless carrier may
submit bills directly to individual users, or may submits bills to
either the item providing system 104 (in aggregate) or to the
individual users, at the option of the individual respective
users.
[0027] A user device 102 may be associated with a specific wireless
carrier by means of subscriber identity module (SIM) data that may
be stored on a physical SIM card or included in a SIM profile. The
SIM data includes information identifying the user device to the
specific wireless carrier. This information may include a unique
international mobile subscriber identity (IMSI) containing a mobile
country code (MCC), a mobile network code (MNC) and a mobile
station identification number (MSIN) within the wireless carrier's
customer base. The SIM data may also include security
authentication and ciphering information, temporary information
related to the local network, a list of the services the user has
access to, etc. In addition to the association via SIM data, a
wireless modem of a user device may be pre-configured with a modem
profile that defines network connection parameters for a relevant
wireless carrier.
[0028] Depending on the location of the user device 102, the
wireless carrier that the user device 102 is associated with may
not be a preferred carrier in terms of existing contracts with the
item providing system 104 or the end-user, billing rates and/or
provided performance characteristics (coverage, signal strength,
speed network load, etc.). Hence, the device's network usage can
result in increased costs (e.g., roaming charges or higher billing
rates) and/or undesirable performance.
[0029] Embodiments of the invention overcome the above shortcomings
by supporting dynamic switching of user devices to preferred
wireless carriers. The modem of the user device is programmed with
a SIM profile that includes settings of a currently-used wireless
carrier such as the IMSI, security authentication and ciphering
information, etc. When a switch to a preferred wireless carrier is
triggered, the modem is automatically re-programmed with the SIM
profile of the preferred wireless carrier. In addition, in some
embodiments, the modem is also reconfigured with a modem profile
that defines connection parameters for the preferred wireless
carrier, such as a GSM frequency band parameter, the format for
presenting the wireless carrier name on the user device, etc.
[0030] A switch to a preferred wireless carrier may be initiated
upon detecting a condition that triggers a rule or detecting a
parameter that exceeds a threshold. Various rules and/or thresholds
may be maintained based on cost and performance characteristics
pertaining to different wireless carriers. The cost characteristics
may include, for example, billing rates, surcharges, initial fees
and other charges of a wireless carrier. The performance
characteristics may include, for example, availability of coverage,
throughput, signal strength, network load, etc.
[0031] In some embodiments, the item providing system 104 hosts a
rule creation module 116 that collects the above characteristics
and creates rules and/or thresholds based on these characteristics.
A rule may request a user device 102 to perform a switch, or a rule
may provide a recommendation (suggestion or guideline) with respect
to a switch and a user device 102 may further decide whether to
follow the recommendation or not. For example, a rule may
require/recommend a switch from carrier 1 to carrier 2 if the
current billing rate of carrier 1 exceeds the current billing rate
of carrier 2 by at least X amount. In another example, a rule may
require/recommend a switch from carrier 1 to carrier 2 if the
signal strength of carrier 2 exceeds the signal strength of carrier
1 by Y dBm. In yet another example, a rule may require/recommend a
switch from carrier 1 to carrier 2 if the current billing rate of
carrier 1 exceeds the current billing rate of carrier 2 by at least
X amount, and the signal strength of carrier 1 does not exceed the
signal strength of carrier 2 by more than Y dBm.
[0032] The rules and/or thresholds created by the rule creation
module 116 can be enforced by a rule server 110 that is hosted by
the communication enabling system 106. In alternative embodiments,
the rule server 110 can be hosted by the item providing system 104
or by any other system capable of communicating with the user
devices 102. The rule server 110 detects conditions that trigger
the above rules and/or cause the above thresholds to be exceeded.
The conditions may include, for example, a change in a fee charged
by a wireless carrier, a change in a location of a user device, a
change in a performance characteristic of a network of a wireless
carrier, a change in a contractual agreement between the item
providing system 104 and a wireless carrier, etc.
[0033] When a rule is triggered (or a threshold is exceeded), the
rule server 110 identifies user devices 102 to which the rule or
threshold is applicable, and sends a message to the identified user
devices requesting them to switch to an alternative wireless
carrier. In one embodiment, the rule server 110 also sends a device
profile of the alternative wireless carrier to the user device. In
another embodiment, the rule server 110 sends an identifier of the
alternative wireless carrier to the user device, and the user
device obtains the device profile from its local memory.
[0034] Upon receiving a request to switch from the rule server 110,
the user device 102 performs the requested switch. If the message
of the rule server 110 indicates a recommendation to switch (as
opposed to a request to switch), the user device 102 may or may not
perform the recommended switch depending on further evaluation of
local conditions, user preferences or other local data. In one
embodiment, the user device 102 includes a profile switching module
118 that obtains a device profile of the alternative wireless
carrier and reprograms the modem using the obtained device profile
to enable the user device 102 to connect to the network via the
alternative wireless carrier. In some embodiments, the profile
switching module 118 maintains a subset of rules and initiates
carrier switching of the user device 102 when any rule form the
subset is triggered, without waiting for a request from the rule
server 110. The actual switch to the alternative wireless carrier
may not occur during a current session but rather after the current
session is completed, making it transparent to the user.
[0035] In one embodiment, the communication enabling system 108
includes an authentication server 112 that performs
security-related functions. In particular, the authentication
server 112 ensures that the user device 102 currently attempting to
interact with the item providing system 104 is duly authorized to
access the item providing system 104. In some embodiments, the
authentication server 112 is configured to deny access to the item
providing system 104 for user devices that are connected via a
non-preferred carrier. When a user device 102 receives a message
indicating that it was denied access to the item providing system
104, the user device 102 examines the local subset of rules to
identify the next carrier in a preferred carrier list or asks the
rule server to identify a preferred carrier, and reprograms the
modem to enable the switch to the identified carrier.
[0036] FIG. 2 is a block diagram of one embodiment of a rule
creation module 200. The rule creation module 200 may be the same
as the rule creation module 116 of FIG. 1 and may include a
performance characteristics collector 202, a cost characteristics
collector 204, a server rule generator 206, and a client rule
generator 208. The components of the rule creation module 116 may
represent modules that can be combined together or separated into
further modules, according to some embodiments.
[0037] The performance characteristics collector 202 collects
performance characteristics of different wireless carriers and
stores them in a performance history data store 210. Performance
characteristics of a wireless carrier may include, for example,
information about network coverage at different locations,
throughput provided at different locations and on different
days/times, signal strength provided at different locations and on
different days/times, etc. In addition, the performance
characteristics collector 202 may collect performance
characteristics pertaining to individual user devices and store
them in a performance history data store 210. Performance
characteristics pertaining to a user device may include, for
example, information about network usage by the user device,
throughput and signal strength during network usage at typical user
locations (e.g., house, work, gym), user preferences of wireless
carriers at typical user locations, etc.
[0038] The cost characteristics collector 204 collects cost
characteristics of different wireless carriers and stores them in a
cost history data store 210. Cost characteristics of a wireless
carrier may include, for example, billing rates charged at
different locations and on different days/times, discount
information, initial fees, surcharges, etc.
[0039] The server rule generator 206 creates rules and/or
thresholds based on the collected performance and cost
characteristics, and stores the created rules in a rules store 214.
A rule may, for example, require or recommend a switch if the
billing rate of a current wireless carrier is at least 5 percent
higher than the billing rate of another wireless carrier providing
coverage in the present location. Another rule may require or
recommend a switch if a user travels to a new geographical area.
Yet another rule may require or recommend a switch if a signal
strength or throughput provided by an alternative wireless carrier
is at least 10 percent better than those provided by the current
wireless carrier. A rule may include multiple conditions using any
combination of performance characteristics and/or cost
characteristics. In addition, a rule may be carrier specific and
applicable to all user devices (e.g., "any user device should
switch to carrier A when arriving to city X"). Alternatively, a
rule may be user device specific (e.g., "user device should switch
to carrier A when at home and then switch to carrier B when
arriving to the office"). The server rule generator 206 stores the
created rules and/or thresholds in a rules store 214.
[0040] The client rule generator 208 creates rules and/or
thresholds for individual user devices based on the collected
performance and cost characteristics, and stores the created rules
and/or thresholds in the rules store 214. These rules and/or
thresholds may be specific to a user device or a group of user
devices (user devices of all users working in a certain office of a
specific company, all user devices of a specific device type (e.g.,
certain type of electronic book reader), all user devices
supporting a specific network protocol, etc.). For example, a rule
may require or recommend that a device of any user working from a
Chicago office of company X switch to carrier A at 12 pm and then
switch to carrier B at 4 pm. In another example, a rule may require
or recommend that user device Y switch to carrier A when arriving
to the office, switch to carrier B when arriving home, and switch
to carrier C when arriving to the gym.
[0041] The server rule generator 206 and the client rule generator
208 periodically update the rules and/or thresholds based on newly
collected data and send them to the rule server. In addition, in
some embodiments, a subset of rules and/or thresholds may be
provided to the individual user devices.
[0042] The data stores 210, 212 and 214 may represent a single or
multiple data structures (databases, repositories, files, etc.)
residing on one or more mass storage devices, such as magnetic or
optical storage based disks, tapes or hard drives.
[0043] FIG. 3 is a block diagram of one embodiment of a rule server
300. The rule server 300 may be the same as the rule server 11 of
FIG. 1 and may include a rule enforcer 308, a user device interface
308, a rules store 302, a device profile store 304, and a message
store 310. The components of the rule server 300 may represent
modules that can be combined together or separated into further
modules, according to some embodiments.
[0044] The rule store 302 includes rules and/or thresholds created
by the rule creation module 200 based on cost characteristics of
different wireless carriers and/or based on performance
characteristics of different wireless carriers and user devices.
The rules may be carrier specific or user device specific.
[0045] The rule enforcer 306 enforces the rules and/or thresholds
stored in the rules store 302. In particular, the rule enforcer 306
tracks what carriers are currently being used by user devices. For
each current carrier, the rule enforcer 306 uses the rules and/or
thresholds associated with this carrier to detect when the usage of
this carrier by user devices becomes undesirable. The rule enforcer
306 then determines, based on relevant rule(s) and/or threshold(s),
an alternative carrier that should be used instead of a current
carrier, and identifies user devices to which these rules and/or
thresholds are applicable.
[0046] The user device interface 308 is responsible for sending a
message to the identified user devices, requesting or recommending
that each of these user devices switch to the alternative carrier.
In one embodiment, the user device interface 308 also retrieves a
device profile associated with the alternative carrier from the
device profile store 304 and sends this device profile to the user
devices. The device profile store 304 may contain device profiles
associated with different wireless carriers. Each device profile
includes a SIM profile associated with a specific carrier, and
optionally in some embodiments a modem profile that define network
connection parameters for the specific wireless carrier. In another
embodiment, the user device interface 308 does not send the device
profile associated with the alternative carrier to the user device
and the user device retrieves this device profile from a local
device profile store.
[0047] In one embodiment, upon sending a switching message, the
user device interface 308 stores the switching message in the
message store 310 to keep track of all the switching messages. The
user device interface 308 may check the contents of the message
store 310 prior to sending a switching message to a user device to
avoid frequent switching of the user device.
[0048] The rule enforcer 306 may also enforce user device specific
rules and/or thresholds by monitoring activity associated with a
specific user device and detecting conditions that trigger one or
more rules pertaining to the specific user device or cause one or
more thresholds pertaining to the specific user device to be
exceeded. For example, if a rule requires or recommends that a user
device switch from carrier A to carrier B when a user arrives to
work, the rule enforcer 306 may monitor the location of the user
device (e.g., using triangulation or other location detection
techniques) to detect when the user arrives to work, and then
invoke the user device interface 308 to send a message to the user
device, requesting or recommending a switch.
[0049] The data stores 302, 304 and 306 may represent a single data
structure (a repository, a database, etc.) or different data
structures residing on one or more mass storage devices, such as
magnetic or optical storage based disks, tapes or hard drives.
[0050] FIG. 4 is a block diagram of one embodiment of a profile
switching module 400. The profile switching module 400 may be the
same as the profile switching module 118 of FIG. 1 and may include
a GPS manager 406, a rule selector 408 and a modem reprogrammer
410. The components of the profile switching module 400 may
represent modules that can be combined together or separated into
further modules, according to some embodiments.
[0051] The user device hosting the profile switching module 400 has
a modem that is programmed with a SIM profile associated with a
specific wireless carrier. The SIM profile may be stored in secure
memory (e.g., one time programmable (OTP) memory) on the modem. In
one embodiment, the modem is also configured with a modem profile
that defines network connection parameters for the specific
wireless network. The modem profile is stored in non-volatile
memory on the modem.
[0052] When the profile switching module 400 receives a message
from the rule server to switch to an alternative carrier, the modem
reprogrammer 410 obtains a device profile of the alternative
wireless carrier and reprograms the modem with the obtained device
profile. This device profile includes a SIM profile and, in some
embodiments, a modem profile of the alternative wireless carrier.
The modem reprogrammer 410 can receive the device profile of the
alternative wireless carrier from the rule server or retrieve it
from a local profile store 404. The profile store 404 may include
SIM profiles and modem profiles of various wireless carriers and
can reside in a secure memory (e.g., secure OTP memory) on the
modem. Optionally, the profiles in the data store 404 can be
encrypted for additional security. If the profile store 404 does
not include the device profile of the alternative wireless carrier,
the modem reprogrammer 410 can request it from the rule server. The
actual switch to the alternative wireless carrier may not occur
during a current session but rather after the current session is
completed, making it transparent to the user.
[0053] In some embodiments, when the profile switching module 400
receives a message from the rule server indicating a switch to an
alternative carrier, the profile switching module 400 may or may
not reprogram the modem with a different device profile depending
on whether it decides to follow a recommendation of the rule server
or not. This decision may be based on local conditions (e.g.,
network coverage at the current location, throughput provided at
the current location, signal strength at the current location),
user preferences and other local data.
[0054] In some embodiments, the profile switching module 400
initiates carrier switching itself, without waiting for a switching
message from the rule server. In these embodiments, the profile
switching module 400 may include the rule selector 408 that uses
the rules and/or thresholds from a rules store 402 to initiate
carrier switching. The rules store 402 may include, for example,
location specific rules that require a switch to a certain carrier
when the user arrives to a specific location. Changes in the user
device location can be detected by the GPS manager 406 using a GPS
technique. Alternatively, changes in the user device location can
be detected using a triangulation technique, MCC and MNC data,
etc.
[0055] In another example, the rule store 402 may include a rule
specifying a preferred carrier list ordered by priority. When the
authentication server 112 denies access to the item providing
system 104 via a current wireless carrier, the rule selector 408
may select the next carrier in the preferred carrier list and
invoke the modem reprogrammer 410 to perform the carrier
switch.
[0056] Rules and/or thresholds 402 may be stored in memory on the
modem or some other memory of the user device. Rules and/or
thresholds 402 can be periodically updated by receiving data from
the item providing system 104. For example, the preferred carrier
list can be updated on a daily basis to re-prioritize based on
daily rates.
[0057] FIG. 5 is a flow diagram of one embodiment of a method 500
for creating rules facilitating dynamic switching of user devices
to alternative wireless carriers. The method is performed by
processing logic that may comprise hardware (circuitry, dedicated
logic, etc.), software (such as is run on a general purpose
computer system or a dedicated machine), or a combination of both.
In one embodiment, embodiments of the method are performed by an
item providing system 104 (e.g., a rule creation module 116 hosted
by the item providing system 104 of FIG. 1).
[0058] Referring to FIG. 5, the rule creation module periodically
collects performance characteristics per carrier and/or per device
(blocks 502). As discussed above, performance characteristics of a
wireless carrier may include, for example, information about
network coverage at different locations, throughput provided at
different locations and on different days/times, signal strength
provided at different locations and on different days/times, etc.
Performance characteristics pertaining to a user device may
include, for example, information about network usage by the user
device, throughput and signal strength during network usage at
typical user locations (house, work, gym, etc.), user preferences
of wireless carriers at typical user locations, etc.
[0059] At block 504, the rule creation module periodically collects
cost characteristics per carrier. Cost characteristics of a
wireless carrier may include, for example, billing rates charged at
different locations and on different days/times, discount
information, initial fees, surcharges, etc.
[0060] At block 506, the rule creation module creates rules and/or
thresholds based on performance characteristics and/or cost
characteristics. A rule may include one or more conditions using
any combination of performance characteristics and/or cost
characteristics. A rule or threshold may be carrier specific and
applicable to all user devices, or a rule or threshold may be user
device specific. The rule creation module periodically updates the
rules and/or thresholds based on newly collected data.
[0061] In some embodiments, the rule creation module also creates
rules and/or thresholds for switching between different delivery
mechanisms or different communication channels within the same
wireless network. For example, if a wireless carrier has higher
billing rates for use of the multimedia messaging service (MMS)
than the short message service (SMS) in a certain geographical
area, a rule may require or recommend a switch from the SMS to the
MMS when the user travels to this area.
[0062] At block 508, the rule creation module sends rules and/or
thresholds to the rule server. In some embodiments, the rules
creation module also sends to a user device a subset of the rules
and/or thresholds that is relevant to the user device.
[0063] FIGS. 6, 7 and 8 are flow diagrams of some embodiments of a
method for facilitating a dynamic switch of a user device to a
different wireless carrier. The method is performed by processing
logic that may comprise hardware (circuitry, dedicated logic,
etc.), software (such as is run on a general purpose computer
system or a dedicated machine), or a combination of both. In one
embodiment, embodiments of the method are performed by a computer
system hosting a rule server (e.g., a rule server 110 of FIG.
1).
[0064] Referring to FIG. 6, the rule sever receives various carrier
switching rules and/or thresholds from the item providing system
and stores them in a rules store. At block 602, the rule server
detects a condition triggering one of the rules from the rule store
or causing one or more threshold from the rule store to be
exceeded. At block 604, the rule server identifies one or more user
devices to which the rule or threshold is applicable. For example,
if the rule requests or recommends a switch to carrier A for all
devices located in area X, the rule server identifies all user
devices in area X that are presently using a wireless carrier other
than carrier A.
[0065] At block 606, the rule server sends a message to each
identified user device to request or recommend a switch to the
preferred wireless carrier. In one embodiment, the rule server also
retrieves a device profile associated with the preferred wireless
carrier from a device profile store and sends this device profile
to the user devices. The device profile includes a SIM profile
associated with the preferred wireless carrier, and optionally in
one embodiment a modem profile that define network connection
parameters for the preferred wireless carrier. In another
embodiment, the rule server sends the identifier of the device
profile associated with the preferred carrier to the user device
but not the device profile itself.
[0066] At block 608, the rule server stores the switching message
in a message store. In one embodiment, prior to sending a message
to the user device, the rule server determines how many times the
user device was requested or recommended to switch over the last N
hours or when the last switch of the user device took place. If the
number of switches or requests/recommendations exceeds a predefined
threshold or the last switch has occurred (or a
request/recommendation was sent) less than a predefined number of
hours ago, the rule server does not send a switching message to the
user device.
[0067] In one embodiment, several device profiles may be maintained
for a single wireless carrier, each of these device profiles
corresponding to a different delivery mechanism or a different
communication channel within the same wireless network. For
example, one device profile may correspond to the use of MMS while
connecting to a specific wireless network and another device
profile may correspond to the use of SMS while connecting to the
same wireless network. The rule server can maintain rules and/or
thresholds to initiate or recommend a switch to a preferred
delivery mechanism or communication channel when a specific
condition occurs. When the rule server detects a condition
triggering one of the above rules or causing one of the above
thresholds to be exceeded, the rule server identifies user devices
to which this rule or threshold applies, and sends these user
devices a message, requesting or recommending that the user devices
switch to a preferred delivery mechanism or communication channel.
The user devices can then reprogram their modems with the device
profile associated with the preferred delivery mechanism or
communication channel.
[0068] FIG. 7 is a flow diagram of one embodiment of a method 700
for facilitating a switch of a user device to a different wireless
carrier in response to a change in the location of the user device.
Method 700 begins with the rule server detecting a change in
location of a user device (block 702). The change in location can
be detected using triangulation or other location detection
techniques.
[0069] At block 704, the rule server identifies one or more rules
and/or thresholds relevant to the new location of the user device.
At block 706, the rule server determines whether any identified
rule or threshold necessitates or recommends a switch to a
different wireless carrier. If so, the rule server identifies the
device profile for the different wireless carrier (block 708) and
sends a switching message and the device profile to the user device
(block 710). Otherwise, if there are no rules thresholds
necessitating or recommending a switch to a different wireless
carrier, method 700 ends.
[0070] FIG. 8 is a flow diagram of one embodiment of a method 800
for facilitating a switch of a user device to a different wireless
carrier using user device preferences. Method 800 begins with the
rule server sending a message to a user device indicating a switch
to a different wireless carrier. At block 804, the rule server
receives a response from the user device indicating that the switch
to the specified wireless carrier is undesirable. The reason for
such a response may be user preferences with respect to wireless
carriers or performance characteristics collected by the user
device.
[0071] At block 805, the rule server determines whether there are
any overriding reasons necessitating a switch to the specified
wireless carrier (e.g., requirements of a service contract between
the specified wireless carrier and the item providing system, a
significant billing rate difference between the current wireless
carrier and the new wireless carrier, etc.). If there is an
overriding reason to switch to the new wireless carrier, the rule
server sends a message insisting on the switch to the previously
specified wireless carrier (block 810). Otherwise, the rule server
further determines whether an alternative wireless carrier is
available that satisfies the applicable rule (block 806). If so,
the method returns to block 802. If not, the rule server sends a
message to the user device to continue using the existing wireless
carrier (block 808).
[0072] FIGS. 9 and 10 are flow diagrams of some embodiments of a
client-side method for switching to a different wireless carrier.
The method is performed by processing logic that may comprise
hardware (circuitry, dedicated logic, etc.), software (such as is
run on a general purpose computer system or a dedicated machine),
or a combination of both. In one embodiment, embodiments of the
method are performed by a user device (e.g., a profile switching
module 118 hosted by the user device 102 of FIG. 1).
[0073] Referring to FIG. 9, method 900 begins with detecting that
the user device has moved to a new location. The change in location
can be detected using GPS hosted by the user device, a
triangulation technique, MCC/MNC data, etc.
[0074] At block 904, the user device identifies one or more rules
applicable to the new location using a subset of rules stored in
local memory. At block 906, the user device determines whether any
identified rule indicates a switch to a preferred wireless carrier.
If not, method 900 ends. If so, the user device determines whether
the user device contains a device profile of the preferred wireless
carrier (block 908).
[0075] If the user device contains the device profile of the
preferred wireless carrier, the user device reprograms the modem
with this device profile (block 910) and establishes a network
connection using the device profile of the preferred wireless
carrier. In one embodiment, the user device power cycles the modem
to implement profile changes prior to establishing the network
connection.
[0076] If the user device does not contain the device profile of
the preferred carrier, the user device requests this device profile
from the rule server (block 914), receives this device profile from
the rules server (block 916), reprograms the modem with this device
profile (block 910), and establishes a network connection using the
device profile of the preferred wireless carrier.
[0077] Referring to FIG. 10, method 1000 begins with user device
receiving a message from an authentication server, indicating that
the network access via a first wireless carrier is denied. At block
1004, in one embodiment, the user device identifies the next
wireless carrier in a preferred carrier list stored in memory of
the user device. In another embodiment, the user device sends a
request to the rule server to identify a preferred wireless
carrier.
[0078] At block 1006, the user device obtains the device profile
for the identified wireless carrier (from local memory or from the
rule server). At block 1008, the user device reprograms the modem
with the obtained device profile. At block 1010, the user device
power cycles the modem to implement the obtained device profile and
connects to the network using the obtained device profile.
[0079] FIG. 11 is a block diagram illustrating an exemplary user
device 1100. The user device 1100 may be the same as user device
102 of FIG. 1 and may be any type of computing device such as an
electronic book reader, a PDA, a mobile phone, a laptop computer, a
portable media player, a tablet computer, a camera, a video camera,
a netbook, a desktop computer, a gaming console, a DVD player, a
media center, and the like.
[0080] The user device 1100 includes one or more processing units
1104, such as one or more CPUs. The user device 1100 also includes
system memory 1106, which may correspond to any combination of
volatile and/or non-volatile storage mechanisms. The system memory
1106 may store information which provides an operating system
component 1108, various program modules 1110 including the profile
switching module 118, program data 1112, and/or other components.
The user device 1100 performs functions by using the processing
unit(s) 1104 to execute the profile switching module 118 and other
instructions provided by the system memory 1106.
[0081] The user device 1100 may also include a data storage device
1114 that may consist of one or more types of removable storage
and/or one or more types of non-removal storage. The data storage
device 1114 may include a computer-readable medium 1116 on which is
stored one or more sets of instructions (e.g., instructions of the
profile switching module 118) embodying any one or more of the
methodologies or functions described herein. As shown, instructions
of the profile switching module 118 may also reside, completely or
at least partially, within the system memory 1106 and/or within the
processing unit(s) 1130 during execution thereof by the user device
1100, the system memory 1106 and the processing unit(s) 1130 also
constituting computer-readable media. The instructions of the
profile switching module 118 may further be transmitted or received
over a network.
[0082] The user device 1100 may also include one or more input
devices 1118 (keyboard, mouse device, specialized selection keys,
etc.) and one or more output devices 1120 (displays, printers,
audio output mechanisms, etc.). The user device 1100 may further
include a wireless modem 1122 to allow the user device 1100 to
communicate via a wireless network with other computing devices
1124, such as remote computers, the item providing system, and so
forth. The wireless modem 1122 may allow the user device 1100 to
receive a telephone ring and also communicate with the item
providing system in a data mode. The wireless modem 1122 may
provide network connectivity using any type of mobile network
technology including, for example, cellular digital packet data
(CDPD), general packet radio service (GPRS), enhanced data rates
for GSM evolution (EDGE), universal mobile telecommunications
system (UMTS), 1 times radio transmission technology (1xRTT),
evaluation data optimized (EVDO), high-speed downlink packet access
(HSDPA), WiFi, etc.
[0083] The above-enumerated list of modules is representative and
is not exhaustive of the types of functions performed by the user
device 1100. As indicated by the label "Other Device Functionality"
1128, the user device 1100 may include additional functions.
[0084] FIG. 12 illustrates an exemplary server system 1200, such as
an item providing system or a communication enabling system, in the
form of a computer system within which a set of instructions, for
causing the machine to perform any one or more of the methodologies
discussed herein, may be executed. In alternative embodiments, the
machine may be connected (e.g., networked) to other machines in a
LAN, an intranet, an extranet, or the Internet. The machine may
operate in the capacity of a server machine in client-server
network environment. The machine may be a personal computer (PC), a
set-top box (STB), a server, a network router, switch or bridge, or
any machine capable of executing a set of instructions (sequential
or otherwise) that specify actions to be taken by that machine.
Further, while only a single machine is illustrated, the term
"machine" shall also be taken to include any collection of machines
that individually or jointly execute a set (or multiple sets) of
instructions to perform any one or more of the methodologies
discussed herein.
[0085] The exemplary computer system 1200 includes a processing
system (processor) 1202, a main memory 1204 (e.g., read-only memory
(ROM), flash memory, dynamic random access memory (DRAM) such as
synchronous DRAM (SDRAM)), a static memory 1206 (e.g., flash
memory, static random access memory (SRAM)), and a data storage
device 1216, which communicate with each other via a bus 1206.
[0086] Processor 1202 represents one or more general-purpose
processing devices such as a microprocessor, central processing
unit, or the like. More particularly, the processor 1202 may be a
complex instruction set computing (CISC) microprocessor, reduced
instruction set computing (RISC) microprocessor, very long
instruction word (VLIW) microprocessor, or a processor implementing
other instruction sets or processors implementing a combination of
instruction sets. The processor 1202 may also be one or more
special-purpose processing devices such as an application specific
integrated circuit (ASIC), a field programmable gate array (FPGA),
a digital signal processor (DSP), network processor, or the like.
The processor 1202 is configured to execute the rule server 110
and/or rule creation module 116 for performing the operations and
steps discussed herein.
[0087] The computer system 1200 may further include a network
interface device 1222. The computer system 1200 also may include a
video display unit 1210 (e.g., a liquid crystal display (LCD) or a
cathode ray tube (CRT)), an alphanumeric input device 1212 (e.g., a
keyboard), a cursor control device 1214 (e.g., a mouse), and a
signal generation device 1220 (e.g., a speaker).
[0088] The data storage device 1216 may include a computer-readable
medium 1224 on which is stored one or more sets of instructions
(instructions of rule server 110 and/or rule creation module 116)
embodying any one or more of the methodologies or functions
described herein. The rule server 110 and/or rule creation module
116 may also reside, completely or at least partially, within the
main memory 1204 and/or within the processor 1202 during execution
thereof by the computer system 1200, the main memory 1204 and the
processor 1202 also constituting computer-readable media. The rule
server 110 and/or rule creation module 116 may further be
transmitted or received over a network 1220 via the network
interface device 1222.
[0089] While the computer-readable storage medium 1224 is shown in
an exemplary embodiment to be a single medium, the term
"computer-readable storage medium" should be taken to include a
single medium or multiple media (e.g., a centralized or distributed
database, and/or associated caches and servers) that store the one
or more sets of instructions. The term "computer-readable storage
medium" shall also be taken to include any medium that is capable
of storing, encoding or carrying a set of instructions for
execution by the machine and that cause the machine to perform any
one or more of the methodologies of the present invention. The term
"computer-readable storage medium" shall accordingly be taken to
include, but not be limited to, solid-state memories, optical
media, and magnetic media.
[0090] In the above description, numerous details are set forth. It
will be apparent, however, to one of ordinary skill in the art
having the benefit of this disclosure, that embodiments of the
invention may be practiced without these specific details. In some
instances, well-known structures and devices are shown in block
diagram form, rather than in detail, in order to avoid obscuring
the description.
[0091] Some portions of the detailed description are presented in
terms of algorithms and symbolic representations of operations on
data bits within a computer memory. These algorithmic descriptions
and representations are the means used by those skilled in the data
processing arts to most effectively convey the substance of their
work to others skilled in the art. An algorithm is here, and
generally, conceived to be a self-consistent sequence of steps
leading to a desired result. The steps are those requiring physical
manipulations of physical quantities. Usually, though not
necessarily, these quantities take the form of electrical or
magnetic signals capable of being stored, transferred, combined,
compared, and otherwise manipulated. It has proven convenient at
times, principally for reasons of common usage, to refer to these
signals as bits, values, elements, symbols, characters, terms,
numbers, or the like.
[0092] It should be borne in mind, however, that all of these and
similar terms are to be associated with the appropriate physical
quantities and are merely convenient labels applied to these
quantities. Unless specifically stated otherwise as apparent from
the above discussion, it is appreciated that throughout the
description, discussions utilizing terms such as "detecting",
"identifying", "sending", "recording" or the like, refer to the
actions and processes of a computer system, or similar electronic
computing device, that manipulates and transforms data represented
as physical (e.g., electronic) quantities within the computer
system's registers and memories into other data similarly
represented as physical quantities within the computer system
memories or registers or other such information storage,
transmission or display devices.
[0093] Embodiments of the invention also relate to an apparatus for
performing the operations herein. This apparatus may be specially
constructed for the required purposes, or it may comprise a general
purpose computer selectively activated or reconfigured by a
computer program stored in the computer. Such a computer program
may be stored in a computer readable storage medium, such as, but
not limited to, any type of disk including floppy disks, optical
disks, CD-ROMs, and magnetic-optical disks, read-only memories
(ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or
optical cards, or any type of media suitable for storing electronic
instructions.
[0094] The algorithms and displays presented herein are not
inherently related to any particular computer or other apparatus.
Various general purpose systems may be used with programs in
accordance with the teachings herein, or it may prove convenient to
construct a more specialized apparatus to perform the required
method steps. The required structure for a variety of these systems
will appear from the description below. In addition, the present
invention is not described with reference to any particular
programming language. It will be appreciated that a variety of
programming languages may be used to implement the teachings of the
invention as described herein.
[0095] It is to be understood that the above description is
intended to be illustrative, and not restrictive. Many other
embodiments will be apparent to those of skill in the art upon
reading and understanding the above description. The scope of the
invention should, therefore, be determined with reference to the
appended claims, along with the full scope of equivalents to which
such claims are entitled.
* * * * *