The present invention relates generally to multi-SIM wireless communication devices, and more particularly to methods of using multi-SIM capabilities to avoid call drops due to poor signal strength.
Cellular telephone communications, such as voice calls, involving at least one wireless device routinely fail because a wireless device enters a location lacking specific network coverage (i.e., a “dead zone”) or high network congestion. Dropping a call, particularly an urgent call, can be frustrating and inconvenient for the parties to the phone call. The failure of a data communication session may be costly and inconvenient to wireless device users. Current wireless devices may enable data transmission over multiple communication pathways, but wireless devices lack a way to leverage simultaneous transmissions across multiple communication pathways to improve data transmission reliability.
Multi-SIM wireless devices have become increasing popular in recent years because of the versatility that they provide, particularly in countries where there are many service providers. For example, dual-SIM smart phones allow a user to implement two different plans or service providers on the same cellular telephone, each with separate telephone numbers and bills (e.g., a business account/number and a personal account/number). Also, during travel, users can obtain local SIM cards and pay local call rates in the destination country. By using multiple SIMs, a user can take advantage of different pricing plans, and save on mobile data usage. Thus, dual-SIM wireless devices effectively provide users with two phones, without the need to carry two separate devices.
While some dual-SIM wireless devices only provide standby dual-SIM capabilities, requiring the user to manually switch between SIMs, other newer dual-SIM wireless devices have dual-SIM dual active (DSDA) capabilities. DSDA wireless devices are able to handle simultaneous active connections with the networks of both SIMs. Typically, DSDA devices have a separate transmit/receive chain (e.g., RF transceiver) for each SIM.
In general mobile communications, if a mobile device (including DSDA devices) with an ongoing call or data session moves to a location covered by a different cell, a handover of the call or data session to the other cell results in order to avoid a poor signal as the device moves out of range of a first cell zone. However, if there are no better cells available for handover, when signal conditions degrade below a minimum sustainable link, the call will be dropped. This call failure may be costly and inconvenient for wireless device user.
Although on a DSDA device a strong radio signal may exist for a network associated with a second SIM, conventional DSDA devices cannot utilize the resources of the second network to continue the call or data session.
The various embodiments provide a method for maintaining quality of wireless communications in a multi-SIM wireless device by enabling seamless call transfer between two networks supported by two SIM-based subscriptions without requiring users on either end of the call to take actions. When a first active call is established in a multi-SIM wireless device with a third party device on a first network, and a second SIM of the multi-SIM wireless device is camped on a cell of the second network, the call can be switched from the first network to the second network if necessary to maintain the call (i.e., a cellular connection to the first network is about to be lost). Embodiment methods include establishing a multi-party conference call between the first network corresponding to the first SIM, the second network corresponding to the second SIM, and the third party device in response to determining that the first active call is about to be lost (i.e., leaving cell coverage with no in-network handover available). When the multi-party conference call is established, the method further includes releasing the first active call so the multi-party conference call becomes a new active call between the second network corresponding to the second SIM and the third party device.
In an embodiment, establishing the multi-party conference call may include triggering the second network corresponding to the second SIM to send a paging signal to the first network corresponding to the first SIM, placing the first active call on hold, responding to the paging signal from the second network corresponding to the second SIM, in which a second active call is established between the first SIM and the second SIM, and retrieving the first active call. In an embodiment, determining whether the first active call will be transferred to the second network may include the mobile device monitoring radio channel conditions of a first network connection at the multi-SIM wireless device, determining whether the first network connection has sufficiently deteriorated based on the radio channel conditions of the first network connection, and determining whether there is a handoff cell or network connection within the first network. If the mobile device determines that the connection to the first network is about to be lost and there is no opportunity for an in-network hand off, the mobile device may initiate the embodiment methods for transferring the first active call to the second network when the first network connection has sufficiently deteriorated.
In an embodiment, monitoring radio channel conditions of the first network condition may include monitoring received signal strength for a radio channel of the camped-on cell of the first network, and calculating a received signal strength indicator (RSSI) value for the camped-on cell of the first network. In another embodiment, determining whether the first network connection has sufficiently deteriorated may include comparing the calculated RSSI value for the camped-on cell of the first network to a call failure threshold. In another embodiment, determining whether the first network connection has sufficiently deteriorated may include comparing the calculated RSSI value for the camped-on cell of the first network to a database of low-quality reception zones. In another embodiment, the database of low-quality reception zones may be established based on stored records of past user history, and/or database records of the network.
In another embodiment, triggering the second network corresponding to the second SIM to send the paging signal to the first network corresponding to the first SIM may include starting a timer in response to determining that the calculated RSSI value is below a call failure threshold, and determining whether the timer has expired, in which triggering the second network corresponding to the second SIM is performed upon expiration of the timer. In another embodiment, the method may further include determining whether the timer is running and cancelling the timer in response to determining that the calculated RSSI value for the cell of the first network is not below a trigger threshold. In another embodiment, the duration of the timer may be preset through user input received by the multi-SIM wireless device. In another embodiment, the call failure threshold may be determined based upon user inputs received by the multi-SIM wireless device. In another embodiment, determining whether the first network connection has sufficiently deteriorated may further include monitoring received signal strength for the camped-on cell of the second network, calculating a RSSI value for a radio channel of the camped-on cell of the second network, and comparing the calculated RSSI values for the camped-on cells of the first and second networks.
The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary embodiments of the invention, and together with the general description given above and the detailed description given below, serve to explain the features of the invention.
The various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to particular examples and implementations are for illustrative purposes, and are not intended to limit the scope of the invention or the claims.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.
The terms “wireless device” and “wireless communication device” are used interchangeably herein to refer to any one or all of cellular telephones, smart phones, personal or mobile multi-media players, personal data assistants (PDAs), laptop computers, tablet computers, smart books, palm-top computers, wireless electronic mail receivers, multimedia Internet enabled cellular telephones, wireless gaming controllers, and similar personal electronic devices that include a programmable processor and memory and circuitry for establishing wireless communication pathways and transmitting/receiving data via wireless communication pathways.
As used herein, the terms “SIM”, “SIM card” and “subscriber identification module” are used interchangeably to mean an integrated circuit, embedded into a removable card, that stores an International Mobile Subscriber Identity (IMSI), related key, and/or other information used to identify and/or authenticate a wireless device on a network. The term SIM may also be used as shorthand reference to a communication network associated with a particular SIM, since the information stored in a SIM enables the wireless device to establish a communication link with a particular network, thus the SIM and the communication network correlate to one another.
As used herein, the terms “multi-SIM device,” “multi-SIM wireless device” “dual-SIM device” “dual-SIM dual active device” and “DSDA device” are used interchangeably to describe a wireless device that is configured with more than one SIM and is capable of independently handling communications with networks of both subscriptions.
The various embodiments use the simultaneous communication capabilities of a multi-SIM device to improve the quality of an active call or data session. In the various embodiments, a multi-SIM device may switch an active call between networks associated with different SIMs to avoid dropping active calls when network conditions deteriorate.
In an embodiment, a dual-SIM dual-active (DSDA) device may detect poor signal quality of a first network based on present signal strength conditions or link quality. For example, the DSDA device may periodically measure a Received Signal Strength Indicator (RSSI) value on one or both networks. In a further embodiment, the DSDA device may utilize a procedure for predicting that it is about to enter a poor quality cell zone. This prediction of entering a low-quality cell zone may be based on the location, orientation, and velocity of the wireless device, which may be compared to a database of low-quality reception zones. The location of wireless dead zones may be established based on stored records of past user history, and/or database records of the network.
If signal or link conditions of the first network deteriorate, or the first network predicts that a poor quality signal area will be entered, a DSDA device may attempt to perform a hand-off of the active communication to another nearby tower (e.g., a tower closer to the present location of the DSDA). However, if no such hand-off is possible (i.e., the DSDA is not receiving a sufficient signal from any nearby tower), the communication may be dropped under normal circumstances, even if a network associated with the second SIM would provide a strong signal for the communication. The various embodiments describe a method of transferring an active communication in a dual-SIM device from a first network associated with a first SIM to a second network associated with the second SIM, such that the communication may continue instead of being dropped due to poor signal conditions of the first network.
In the various embodiments, upon deterioration of network conditions, a multi-SIM device may activate a conference call to the called party over both the original network and a second network associated with an idle SIM. The multi-SIM device may transfer the call to the second network and release the call through the original network, thereby preventing a call drop. The various embodiments therefore may provide efficient use of the multi-SIM wireless device's resources to achieve an optimal user experience. The various embodiments may also provide utility in a variety of situations, for example, to avoid call drops of emergency calls.
In the various embodiments, each SIM may enable communications over its network using different transmit/receive chains of a DSDA device, and/or different wireless communication protocols. In the various embodiments, a multi-SIM wireless device may be a dual-SIM dual active (DSDA) device in which each SIM is associated with an independent radio transmit/receive chain (e.g., independent RF transceivers).
The methods of the various embodiments may be utilized under weak signal conditions on the networks associated with either SIM. While the terms “first” and “second” are used herein described the SIMs and associated networks for the call switching procedures in the various embodiments, such identifiers are merely for convenience and are not meant to limit the various embodiments to a particular order, sequence, type of network or carrier.
In the various embodiments, audio capture may include receiving audio inputs via a microphone of the wireless device and preparing the audio inputs for transmission, as well as converting received data to audio outputs via a speaker of the wireless device. In the various embodiments, calls may include continuous streams of audio data exchanged between wireless devices and/or servers. While example embodiments are discussed in terms of operations performed to transmit and receive streams of data during audio calls (i.e., voice calls), the various embodiment methods may also be implemented to transmit and receive video calls (i.e., audio and video calls or video only calls). While example embodiments are discussed in terms of operations to switch a call between networks associated with two SIMs, additional SIMs and network connections may be enabled in a multi-SIM wireless device.
The wireless networks 110, 114 may be cellular data networks, and may use channel access methods including, but not limited to, Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Universal Mobile Telecommunications Systems (UMTS) (particularly, Long Term Evolution (LTE)), Global System for Mobile Communications (GSM), Wi-Fi, PCS, G-3, G-4, or other protocols that may be used in a wireless communications network or a data communications network. Networks 110, 114 may use the same or different wireless interfaces and/or physical layers. In an embodiment, base stations 106, 108, 112 may be controlled by one or more base station controllers (BSC) 116, 118. For example, base stations 106, 108, BSC 116, and other components may form network 110, as is known in the art. Alternate network configurations may also be used and the embodiments are not limited to the configuration illustrated. For example, in another embodiment the functionality of the BSC 116 and at least one of base stations 106, 108 may be collapsed into a single “hybrid” module having the functionality of these components.
In the various embodiments, a wireless device 102 may simultaneously access core networks 120, 122 after camping on cells managed by base stations 106, 112. Wireless device 102 may also establish connections with Wi-Fi access points, which may connect to the Internet. While the various embodiments are particularly useful with wireless networks, the embodiments are not limited to wireless networks and may also be implemented over wired networks with no changes to the methods.
In wireless network system 100, wireless device 102 may be a multi-SIM device that is capable of operating on a plurality of SIMs. For example, the wireless device 102 may be a dual-SIM device. Using dual-SIM functionality, the wireless device 102 may simultaneously access two core networks 120, 122 by camping on cells managed by base stations 106, 112. Core networks 120, 122 may be interconnected by public switched telephone network (PSTN) 124, across which the core networks 120, 122 may route various incoming and outgoing communications to the wireless device 102.
The wireless device 102 may make a voice or data call to a third party device, such as wireless device 104, using one of the SIMs. The wireless device 102 may also receive a voice call or other data transmission from a third party. The third party device (e.g., wireless device 104) may be any of a variety of devices, including, but not limited to, a mobile phone, laptop computer, PDA, server, etc.).
A SIM in the various embodiments may be a Universal Integrated Circuit Card (UICC) that is configured with SIM and/or USIM applications, enabling access to GSM and/or UMTS networks. The UICC may also provide storage for a phone book and other applications. Alternatively, in a CDMA network, a SIM may be a UICC removable user identity module (R-UIM) or a CDMA subscriber identity module (CSIM).
Each SIM card may have a CPU, ROM, RAM, EEPROM and I/O circuits. The SIM cards used in the various embodiments may contain user account information, an international mobile subscriber identity (IMSI), a set of SIM application toolkit (SAT) commands and storage space for phone book contacts. A micro-processing unit (MCU) of a baseband chip may interact with MCUs of SIM cards to retrieve data or SAT commands from the SIM cards installed in a wireless device. A wireless device may be immediately programmed after plugging in the SIM card. SIM cards may be also programmed to display custom menus for personalized services. A SIM card may further store a Home Public-Land-Mobile-Network (HPLMN) code to indicate the SIM card network operator provider. An Integrated Circuit Card Identity (ICCID) SIM serial number is printed on the SIM card for identification.
Wireless device 200 may also include a RF transceiver 212 that is connected logically with the baseband processor 206, and with at least one antenna 214. RF transceiver 212 may be a single device that performs transmit/receive functions for all SIMs, or may be multiple independent RF transceivers (e.g., RF1, RF2), each of which performs transmit/receive functions for one SIM of wireless device 200.
In a particular embodiment, the general processor 202 memory 204, and baseband processor 206 may be included in a system-on-chip device 216. The first and second SIMs 208a, 208b and their corresponding interfaces 210a, 210b may be external to the system-on-chip device 216. Further, various input and output devices may be coupled to components of the system-on-chip device 216, such as interfaces or controllers.
Example user input components suitable for use in the wireless device 200 may include, but are not limited to, keypad 222, touchscreen display 224, microphone 226, etc., shown in
Referring to
The bottom layers of the protocol stacks 252a, 252b may be physical layers 254a, 254b that establish connections over the air interface and manage network resources for the wireless device 200. Residing above physical layers 254a, 254b may be data link layers 256a, 256b, which may provide functions to handle incoming and output data across a physical link in the network. For example, data link layers 256a, 256b may divide output data into data frames, and analyze incoming data to ensure it has been successfully received. In an embodiment, each data link layer 256a, 256b may contain various sub-layers (e.g., media access control (MAC) and logical link control (LLC) layers).
Network layers 258a, 258b may reside above data link layers 256a, 256b, which may perform functions including allocating radio channels and establishing links between the wireless device 200 and a network. In an embodiment, each network layer 256a, 256b may be partitioned into one or more sub-layers (not shown). In an embodiment, a sub-layer of a network layer 256a, 256b may be a connection management (CM) sub-layer to route calls, select a service type, prioritize data, perform QoS functions, etc.
While protocol stacks 252a, 252b provide functions to transmit data through physical media, the software architecture 250 may further include at least one host layer 262 to provide data transfer services to various applications in wireless device 200. In an embodiment, application-specific functions provided by the at least one host layer 262 may provide an interface between protocol stacks 252a, 252b and general processor 202. In an alternative embodiment, the protocol stacks 252a, 252b may each include one or more higher logical layers (e.g., transport, session, presentation, application, etc.) that provide host layer functions. In an embodiment, software architecture 250 may further include a hardware interface 264 between physical layers 254a, 254b and the communication hardware (e.g., one or more RF transceivers).
In the various embodiments, a multi-SIM device such as wireless device 200 may determine whether, based on network conditions of an ongoing call or data session, the call or data session should be transferred to a different network associated with a different SIM. In the various embodiments, this determination may be a determination of whether a trigger event has occurred.
In an embodiment, a trigger event may be a detection of poor or degrading signal quality in a communication link. The trigger event may occur or be recognized as a result of multiple steps, including assessing the signal strength of the network connection that is presently active for the ongoing communication. For example, a processor of the wireless device may monitor signal conditions of a network and determine whether the call quality has fallen below a threshold value. In the various embodiments, “signal strength”, “network signal strength”, and “radio channel conditions” may all refer to measurements that indicate the relative strength of a signal in the radio channel over which a communication is established. In the various embodiments, measurements of signal strength may include received radio signal strength indicator (RSSI) values, carrier-to-noise ratio values, etc.
In an embodiment, a wireless device may monitor present received signal strength indicator (RSSI) values for the network on which a call or data session is active, and may compare these values to a predetermined threshold value (i.e., a call failure threshold). In an embodiment, RSSI values may be sampled by an internal audio-digital converter and the results may be available to a processor of the wireless device. In an alternative embodiment, a trigger event may be a prediction that the wireless device may soon enter or is approaching a limited cellular coverage area or low call quality zone (i.e., dead zone). As an example, a wireless device may be configured with various sensors, such as GPS sensors and accelerometers, to determine a likely path of travel for the wireless device. In an embodiment, a processor of the wireless device may compare the likely path of travel to a cellular coverage map to predict whether the wireless device will enter or is approaching a limited cellular coverage area, or dead zone, and the prediction that the wireless device is approaching a limited cellular coverage area, or dead zone may be a trigger event. In a similar embodiment, a user of the wireless device may have previously designated a specific area as a poor quality area. A prediction based on the likely path of travel that the wireless device is approaching the poor signal strength area may be a trigger event.
In block 306, the wireless device may receive or monitor present network conditions of the first network, such as radio channel conditions. In an embodiment, present radio channel conditions may include the current received signal strength indicator (RSSI) values sampled by an internal audio-digital converter. In determination block 308, the wireless device may determine whether a radio channel failure condition for the first network is met. In an embodiment, a radio channel failure condition may be, for example, a current RSSI and/or carrier-to-noise ratio that is below a predetermined threshold value (e.g., RSSI<−100 db).
If the wireless device determines that the radio channel failure condition is not met (i.e., determination block 308=“No”), the wireless device may continue to transmit/receive the established voice call or data session on the first network, block 310. If the radio channel failure condition is met (i.e., determination block 308=“Yes”), the wireless device may determine whether the active call or data session can be continued using a different cell channel, determination block 312. For example, if the wireless device has moved locations during the ongoing communication, it may be within the range of one or more neighboring cells of the first network. If the wireless device determines that a different cell channel is available to continue the communication (i.e., determination block 312=“Yes”), the wireless device may send a signal to the network to cause a handover to the base station associated with that cell to be performed, and may continue with the active call or data session on the first network, block 310. If the wireless device determines that no other cell is available (i.e., determination block 312=“No”), the wireless device may determine whether a second SIM in the device, associated with a second network, is idle, determination block 314.
If the wireless device determines that the second SIM is not idle (i.e., determination block 314=“No”), the wireless device may continue to transmit/receive the established voice call or data session on the first network, block 310. If the wireless device determines that the second SIM is idle (i.e., determination block 314=“Yes”), indicating that the transmit/receive chain associated with the second SIM is not actively engaged in a voice or data call, the wireless device may test the signal conditions of the second network (e.g., radio channel conditions) in block 316. For example, the wireless device may prompt an audio-digital converter to measure RSSI values of a test connection with the second network, which values may be made available to the wireless device. In determination block 318, the wireless device may determine whether the current radio channel conditions for the second network are favorable. For example, the wireless device may determine whether a radio channel failure condition is met for the second network connection, in the same manner as the determination for radio channel conditions on the first network discussed above. A radio channel failure condition may be, for example, present RSSI values falling below a threshold (e.g., RSSI<−100 db.). The determination of whether the radio channel conditions for the second network connection are favorable may be performed by determining whether a radio channel failure condition is met, similar to the determination for the first network discussed above with respect to determination block 308. Alternatively, the current radio channel conditions for the second network may be compared to those of the first network, and may be favorable if better than the first network. If the wireless device determines that the radio channel conditions for the second network are not favorable (i.e., determination block 316=“No”) the wireless device may continue the active call or data session over the first network. If the wireless device determines that the radio channel conditions for the second network are favorable (i.e., determination block 316=“No”), the wireless device may proceed to transfer the active call or data session to the second network, described below with respect to
In a further embodiment, present radio channel conditions that are below a call failure threshold may trigger the use of a timer to affect an appropriate response.
In the various embodiments, the wireless device may have one or more user-configurable options. For example, the wireless device may be configured to receive a user input to disable call transfer between SIMs. In an embodiment, the wireless device may allow the user to disable the call transfer between SIMs for calls that match (or do not match) a set of criteria established by the user. In another embodiment, the wireless device may allow the user to select to activate or disable the call transfer procedure on a per-call basis to override a default setting. For example, when the user has disabled call transfer between SIMs as a default setting, the wireless device may allow the user to activate call transfer for a particular call. Similarly, when call transfer is enabled as the default setting, the user may cancel the call transfer procedure for a particular call. In an embodiment, prior to performing a default action (e.g., either initiating or skipping call transfer to a different SIM), the wireless device may alert the user that the active call should transferred. Such an alert may include, for example, a visual or audio notification that is output through a user interface, and the user interface may receive the user's inputs to enable or disable call transfer. Additionally or alternatively, such an alert may include an in-band audio tone in the active call.
In block 402, a first SIM stack processor may send an internal signal to a second SIM stack processor, causing the second SIM stack processor to send a paging signal for a voice call to the MSISDN associated with the first SIM (“MSISDN1”). As will be understood by one of ordinary skill in the art, the designations of SIM stack processors as first and second are based only on function, and are not intended to limit these elements to any particular hardware or software implementation.
In block 404, the first SIM stack processor may receive the paging signal for a MT call from the MSISDN associated with the second SIM (“MSISDN2”). In block 406, the wireless device may place the call with the third party device on hold. In block 408, the first SIM stack processor may accept the incoming call from the second SIM (e.g., by sending a setup message to the second SIM stack processor to establish the call with MSISDN2). In block 410, the first SIM stack processor may retrieve the call with the third party device from which a conference call may be established between wireless device via the first network corresponding to the first SIM, the third party device (on the first network) and the wireless device via the second network corresponding to the second SIM (on the second network) in block 412. In block 414, the wireless device may send a call transfer command to transfer the active call with the third party device to the second network, thereby releasing the connection to the third party device through the first network. In block 416, the wireless device may continue the active call with the third party device through the second SIM on the second network.
In an embodiment, the call transfer process may be performed using the Explicit Call Transfer (ECT) function, which is a call transfer supplementary service described in the 3GPP TS 24.091 standards specification. Therefore, following the CALL_TRANSFER, a direct communication exists between the device and Party B over the second SIM on the second network. Since the method uses existing functionality defined in the 3GPP TS 24.091 standards specification, no changes to carrier networks or communication standards are required, and the invention may be implemented in the software configuration of the wireless device.
In the various embodiments, if a call failure condition is met (e.g., present RSSI value is below a trigger threshold), a Call_Trigger_Timer( ) handler may start a transfer timer, as discussed above with respect to
If Call A is to be transferred to the second network, CM1 may send message 506 to CM2. Message 506 may contain parameters such as MSISDN1 to provide instruction to CM2. In response to receiving message 506, CM2 may send call setup request to a component of a second network 114 (e.g., base station 112, BSC 118, etc.) in message 508, requesting setup of a MO call to MSISDN1. As a result, a paging signal message 510 for a MT voice call from CM2 may be transmitted by the first network 110 to CM1.
CM1 may place Call A on hold by sending message 512 to the first network 110, and may also send a page response message 514 to the first network 110. The first network may send a call setup message 516 to CM1 to establish a voice call between CM1 and CM2 (“Call B”). CM1 may send a message 518 to retrieve the on-hold Call A. In this manner, a multi-party conference call may be established between CM1, CM2, which may include a series of messages 520, 522.
To transfer the Call A from the first network 110 to the second network 114, a Call_Release_Handler( ) routine may be initiated by CM1. CM1 may send a message 524 to the first network 110, requesting release of Call A. The first network 110 may send a message 526 to CM1 acknowledging that Call A has been released. The voice call that was formerly the multi-party conference call may remain active between CM2 and the third party device on the second network 114, which may include a series of messages 528, 530.
The various embodiments may be implemented in any of a variety of wireless devices, an example of which is illustrated in
The various embodiments described above may also be implemented within a variety of personal computing devices, such as a laptop computer 710 as illustrated in
In a notebook configuration, the computer housing includes the touchpad 717, the keyboard 718, and the display 719 all coupled to the processor 711. The laptop computer 710 may also include a battery 720 coupled to the processor 711. The laptop computer 710 may also include a position sensor 722, such as a GPS receiver, coupled to the processor 711. Additionally, the laptop computer 710 may have one or more antenna 708 for sending and receiving electromagnetic radiation that may be connected to one or more a wireless data link and/or cellular telephone transceiver 716 coupled to the processor 711. Other configurations of the computing device may include a computer mouse or trackball coupled to the processor (e.g., via a USB input) as are well known, which may also be used in conjunction with the various embodiments.
The various embodiments may also be implemented on any of a variety of commercially available server devices, such as the server 800 illustrated in
The processors 602, 711, and 801 may be any programmable microprocessor, microcomputer or multiple processor chip or chips that can be configured by software instructions (applications) to perform a variety of functions, including the functions of the various embodiments described above. In some devices, multiple processors may be provided, such as one processor dedicated to wireless communication functions and one processor dedicated to running other applications. Typically, software applications may be stored in the internal memory 604, 610, 712, 713, 802, and 803 before they are accessed and loaded into the processors 602, 711, and 801. The processors 602, 711, and 801 may include internal memory sufficient to store the application software instructions. In many devices the internal memory may be a volatile or nonvolatile memory, such as flash memory, or a mixture of both. For the purposes of this description, a general reference to memory refers to memory accessible by the processors 602, 711, and 801 including internal memory or removable memory plugged into the device and memory within the processor 602, 711, and 801 themselves.
The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the order of steps in the foregoing embodiments may be performed in any order. Words such as “thereafter,” “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Further, any reference to claim elements in the singular, for example, using the articles “a,” “an” or “the” is not to be construed as limiting the element to the singular.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
In one or more exemplary aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a non-transitory processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a non-transitory computer-readable storage medium. Tangible, non-transitory processor-readable storage media may be any available media that may be accessed by a processor of a computer, mobile computing device or a wireless communication device. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a processor of a computing device. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of non-transitory processor-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a tangible, non-transitory machine readable medium and/or non-transitory processor-readable medium, which may be incorporated into a computer program product.
The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.