Patent Publication Number: US-8532059-B2

Title: System, method and device for handling voice calls on a dual-mode wireless mobile communication device

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 12/774,791 filed May 6, 2010 now U.S. Pat. No. 8,315,228 which application claimed priority from U.S. provisional application No. 61/297,995, filed Jan. 25, 2010, the contents of both prior applications are incorporated herein by reference. 
    
    
     FIELD OF THE TECHNOLOGY 
     The disclosure relates generally to decision algorithms for vertical hand-off of a communication session, such as a voice call, between a wireless access network and a cellular network. 
     BACKGROUND 
     Mobile communication can be provided by different types of wireless networks, such as cellular networks and wireless local area networks (WLANS). 
     In dual-mode mobile devices, it may be advantageous to make use of a WLAN when available, and be able to switch to a cellular network when the WLAN is no longer available. 
     There remains a need for mechanisms for transferring an ongoing communication session (e.g. a voice call) on a dual-mode mobile device from an AP in a WLAN to a BTS in a cellular network (or vice-versa). 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       In the figures which illustrate embodiments by example only, 
         FIG. 1A  is a schematic diagram of a dual-mode mobile device; 
         FIG. 1B  is a schematic block diagram of software modules and data stored in the flash memory of the dual-mode mobile device of  FIG. 1A ; 
         FIG. 1C  is a schematic block diagram showing data stored in the flash memory; 
         FIG. 1D  is a schematic block diagram showing data stored in the flash memory; 
         FIG. 1E  is a schematic block diagram showing data stored in the flash memory; 
         FIG. 2  is a schematic diagram of a wireless access system including the dual-mode mobile device of  FIG. 1 ; 
         FIG. 3  is a schematic diagram of a wireless access system including the dual-mode mobile device of  FIG. 1 ; 
         FIG. 4  illustrates steps of a method for handling a voice call exemplary of an embodiment; and 
         FIG. 5  illustrates steps of a method for handling a voice call exemplary of an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In overview, to handle a communication session at a wireless mobile communications device, after receiving an indication of current signal strength of an access point for a wireless local area network (“WLAN”) a signal strength threshold associated with the access point is retrieved. If the communication session is currently carried by a cellular network and the current signal strength exceeds the signal strength threshold, the communication session is switched from the cellular network to the WLAN. A metric is then adjusted based on timing of the switch relative to any switch of the communication session from the WLAN to the cellular network over a preceding time window associated with the access point. Based on the metric, the signal strength threshold associated with the access point is selectively adjusted. If, on the other hand, the communication session is currently carried by the WLAN and the current signal strength is below the signal strength threshold, an attempt is made to switch the communication session from the WLAN to the cellular network and a metric associated with the access point is adjusted based on whether or not the switch failed. Based on this second metric, the signal strength threshold associated with said access point is adjusted. 
       FIG. 1A  illustrates a schematic diagram of a dual-mode mobile communication device  10  exemplary of an embodiment of the present disclosure. Dual-mode mobile communication device  10  is preferably a cellular network/WLAN dual-mode mobile device having voice and data communication capabilities, which can communicate via either cellular networks or wireless local area networks (WLANs). 
     Mobile device  10  includes a microprocessor  102 , a cellular communications subsystem  104 ; a WLAN communications subsystem  106 ; a keyboard  108  and a display  109 , along with other input/output devices including a serial port  110 , a speaker  111  and a microphone  112 ; as well as memory devices including a flash memory  114  and a Random Access Memory (RAM)  116 ; and various other device subsystems  118 . The mobile device  10  may have a battery  119  to power the active elements of the mobile device  10 . 
     Operating system software executed by microprocessor  102  is stored in flash memory  114 , however it may be stored in other types of memory devices, such as a read only memory (ROM) or a similar storage element. Flash memory  114  also stores application software which may have been installed on mobile device  10  during manufacture or which may have been downloaded to the mobile device  10 . Microprocessor  102 , in addition to its operating system functions, enables execution of software applications on mobile device  10 . 
     System software and specific device applications, or parts thereof, may be temporarily loaded into a volatile store, such as RAM  116 . Communication signals received by the mobile device may also be stored to RAM  116 . 
     Communication functions, including data and voice communications, may be performed through either a cellular communication subsystem (CCS)  104  or through a WLAN communication subsystem (WCS)  106 . 
     CCS  104  uses one or more antennae, illustrated as antenna  105 , configured for transmitting and receiving radio frequency (RF) signals to and from base transceiver stations (BTSs), such as BTS  101 , of conventional cellular networks. The specific design and implementation of CCS  104  is dependent upon the type of cellular network in which the mobile device  10  is intended to operate. For example, CCS  104  may be designed to operate with the Mobitex™, DataTAC™ or General Packet Radio Service (CPRS) mobile data communication networks and also designed to operate with any of a variety of voice communication networks, such as Advanced Mobile Phone Service (AMPS), Time Division Multiple Access (TDMA), Code Division Multiple Access CDMA, Personal Communications Service (PCS), Global System for Mobile Communications (GSM), etc. 
     WCS  106  uses one or more antennae, illustrated as antenna  107 , configured for transmitting and receiving RE signals to and from conventional access points (APs), such as AP  103 , of conventional WLANs. The specific design and implementation of WCS  106  is dependent upon the WLAN in which the mobile device  10  is intended to operate. In one embodiment, WCS  106  is configured to operate in accordance with the IEEE 802.11x standard. 
     During data communications, a signal, such as a text message or web page download, may be received and processed by one of CCS  104  or WCS  106  and passed to microprocessor  102 . The received signal is then further processed by microprocessor  102  for an output to display  109 , or alternatively to some other auxiliary I/O device. A device user may also compose data items, such as e-mail messages, using keyboard  108  and/or some other auxiliary I/O device, such as a touchpad, a rocker switch, a thumb-wheel, or some other type of input device. The composed data items may then be transmitted over the cellular network via the CCS  104  or the WCS  106 . 
     During voice communications, overall operation of the device is substantially similar to that of data communications, except that received signals are output to speaker  111 , and signals for transmission are generated by microphone  112 . Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on device  10 . In addition, display  109  may also be utilized in voice communication mode, for example, to display the identity of a calling party, the duration of a voice call, or other voice call related information. 
       FIG. 2  illustrates a schematic diagram of a wireless access system designated generally as  200 . The system  200  includes a cellular network  210 ; and a WLAN  205  forming part of an enterprise network  206 . It is noted that although this description references a WLAN and a cellular network, the teachings herein may easily be adapted by one of skill in the art to improve the transition between any two wireless networks either presently known in the art or later developed. 
     Cellular network  210  includes a conventional base transceiver station (BTS)  208  which serves a coverage area  209 . BTS  208  provides communications with mobile device  10  by way of the CCS  104 . Cellular network  210  may be any of a variety of mobile data communication networks, such as Mobitex™, DataTAC™ or General Packet Radio Service (CPRS), or voice communication networks, such as Advanced Mobile Phone Service (AMPS), Time Division Multiple Access (TDMA), Code Division Multiple Access CDMA, Personal Communications Service (PCS), Global System for Mobile Communications (GSM). 
     WLAN  205  includes two conventional access points (APs)  202 , designated as AP  202   a  and AP  202   b , which serve respective coverage areas  204   a  and  204   b . As is conventional in wireless networks having mobile devices served by various APs, such as in an IEEE 802.11x network, there is a standard procedure by which mobile device  10  associates itself with an AP  202 . Before mobile device  10  associates with an AP  202 , it obtains information from APs within range by scanning the frequency channels for their beacons. The APs  202  periodically broadcast a management frame called a beacon frame to announce their presence. Included in the beacon frame is a Service Set Identifier (SSID) which identifies the WLAN  205  to which the APs  202  belong. In traditional WLANs, such as 802.11x networks, beacon powers of APs are kept at a fixed level. Mobile device  10  may simply choose the AP  202  with the best signal strength for association. This procedure is performed seamlessly by the WCS  106  of mobile device  10 . 
     In the scenario illustrated in  FIG. 2 , mobile device  10  is shown to be within range of AP  202   a  (i.e. mobile device  10  is within coverage area  204   a ). As such, mobile device  10  may detect beacon frames broadcast by AP  202   a . WCS  106  of mobile device  10  may associate with AP  202   a  for data communications. In the event that the user of mobile device  10  moves within range of AP  202   b  (i.e. into coverage area  204   b ), mobile device  10  may begin to also receive beacon frames broadcast by AP  202   b ; WCS  106  may then decide to end the current association with AP  202   a  and associate with AP  202   b . This feature which lets the WCS  106  of mobile device  10  switch the association from one AP to another is well known, and is typically referred to as roaming. The decision whether to roam from one AP to another may be based on various criteria, including signal strength and load balance. Roaming is performed by the WCS  106  of mobile device  10 . 
     Referring to  FIG. 2 , in the area with WLAN coverage (i.e. coverage areas  204   a  and  204   b ), access to both the cellular network  210  and the WLAN  205  is available (referred to herein as a “double-coverage area”), while there are also service areas with only cellular access (referred to herein as a “cellular-only area”). A new voice call in the double-coverage area can be admitted either to cellular network  210  or to WLAN  206 . Moreover, ongoing communication sessions such as voice calls can be dynamically transferred between APs  202   a  and  202   b  by horizontal hand-offs (HHOs) or between cellular network  210  and WLAN  205  by vertical hand-offs (VHOs). 
     As is conventional, mobile device  10  may be configured to have different communication modes, including (1) a cellular only mode, where mobile device  10  can only communicate over cellular networks; (2) an independent cellular and WLAN mode, where mobile device  10  can communicate over both cellular networks and WLAN, but the two are independent of each other; and (3) a WLAN priority mode, where mobile device  10  communicates via WLAN when available, and switches to communicate via cellular networks when WLAN is no longer available. 
       FIG. 1B  is a block diagram of a decisioning software module (DSM)  130  for making network selection decisions on mobile device  10 . As described below, DSM  130  is configured to use both current and historical information to decide when to trigger a VHO for an ongoing communication session. Similarly, DSM  130  is configured to use both current and historical information to decide what network should be used when a new communication session is initiated. During operation, DSM  130  accesses and maintains a number of parameters and data values, including current readings  150 , universal thresholds  190 , and data stored in an access point database (APDB)  160 . Network selection decisions made by DSM  130  are governed by a set of rules  140 . 
     A VHO execution module (VEM)  115  is configured to carry out VHOs in response to commands received from DSM  130 . VEM  115  may carry out VHOs in any conventional manner known to persons skilled in the art. Similarly, a session initiation module (SIM)  117  is configured to initiate communication sessions either via CMS  104  or via WCS  106  according to commands received from DSM  130 . SIM  117  may initiate communication sessions in any conventional manner known to persons skilled in the art. DSM  130 , VEM  115 , SIM  117  and CDB  160  may all be stored in flash memory  114  of mobile device  10  ( FIG. 1A ), as shown. 
     As shown in  FIG. 1C , current readings  150  include the following readings: 
     
       
         
           
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Current readings 150 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 current WLAN SSID 151 
               
               
                 current AP identifier 152, e.g. MAC address 
               
               
                 current AP signal strength 153 
               
               
                 current AP load level 154 
               
               
                 number of neighbouring APs on same WLAN 155 (i.e. number of APs 
               
               
                 having the same SSID detected by mobile device 10 other than the 
               
               
                 serving AP) 
               
               
                 best candidate neighbouring AP identifier 156, e.g. MAC address 
               
               
                 best candidate neighbouring AP signal strength 157 
               
               
                 best candidate neighbouring AP load level 158 
               
               
                 number of VHO-Outs for the current communication session 159a 
               
               
                 number of VHO-Ins for the current communication session 159b 
               
               
                 duration of current call 159c 
               
               
                   
               
            
           
         
       
     
     Current readings  150  are periodically updated by DSM  130  with values received or measured by mobile device  10 . The best candidate neighbouring AP may be, for example, the neighbouring AP having the highest signal strength. 
     As also shown in  FIG. 1C , universal thresholds  190  include the following thresholds: 
     
       
         
           
               
             
               
                 TABLE 2 
               
               
                   
               
               
                 Universal thresholds 190 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 maximum avg number of VHO-Outs per minute per communication 
               
               
                 session over at least a minimum number (X) of communication 
               
               
                 sessions within a preceding time window (Y) 
               
               
                 (Max-VHO-Out-per-min) 191 
               
               
                 maximum avg number of VHO-Ins per minute per communication 
               
               
                 session over at least a minimum number (X) of communication 
               
               
                 sessions within a preceding time window (Y) 
               
               
                 (Max-VHO-In-per-min) 192 
               
               
                 maximum avg VHO-Out fail rate over at least a minimum 
               
               
                 number (X) of VHO-Outs within a preceding time window Y 
               
               
                 (Max-VHO-Out-fail-rate) 193 
               
               
                 minimum avg VHO-In fail rate over at least a minimum 
               
               
                 number (X) of VHO-Ins within a preceding time window 
               
               
                 (Y) (Min-VHO-In-fail-rate) 194 
               
               
                   
               
            
           
         
       
     
     Universal thresholds  190  are set to default values, which may for example be predefined by the device manufacturer, when DSM  130  is first initialized. The various values X and Y in Table 2 may also be predefined by the device manufacturer. For example, in one embodiment, with respect to thresholds  191  and  192 , minimum number (X) of communication sessions may be set to five communication sessions, preceding time window (Y) may be set to one week, and the default values for Max-VHO-Out-per-min  191  and Max-VHO-In-per-min  192  may be set to one VHO-Out and one VHO-In, respectively; and, with respect to thresholds  193  and  194 , minimum number (X) of VHO-Outs may be set to five VHO-Outs, preceding time window (Y) may be set to one week, and the default values for Max-VHO-Out-fail-rate  193  and Min-VHO-In-fail-rate  194  may be set to 30% and 2%, respectively. In one embodiment, universal thresholds  190  and the various values X and Y may be adjusted manually, for example, by the user through a conventional advanced settings user screen. 
     APDB  160  is more specifically illustrated in  FIG. 1D . As shown, APDB  160  may include a number of AP data entries  162 , each corresponding to an AP encountered by mobile device  10 . Each AP entry  162  includes an SSID  164  identifying the WLAN to which the AP belongs; an AP identifier  166 , which may be for example the AP&#39;s Media Access Control (MAC) address; historical data  170 ; and dynamic thresholds  180 . DSM  130  creates a new AP entry  162  in APDB  160  each time mobile device  10  associates itself with an AP for which an entry does not exist in APDB  160 . 
     As shown in  FIG. 1E , historical data  170  for a given AP entry  162  includes the following data: 
     
       
         
           
               
             
               
                 TABLE 3 
               
               
                   
               
               
                 Historical data 170 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 number of failed VHO-Outs within a preceding time window (Y) (VHO-Out-fail) 171a 
               
               
                 average AP signal strength at VHO-Out failure (VHO-Out-fail-avg-SS) 171b 
               
               
                 average AP load level at VHO-Out failure (VHO-Out-fail-avg-LL) 171c 
               
               
                 number of failed VHO-Ins within a preceding time window (Y) (VHO-In-fail) 172a 
               
               
                 average AP signal strength at VHO-In failure (VHO-In-fail-avg-SS) 172b 
               
               
                 average AP load level at VHO-In failure (VHO-In-fail-avg-LL) 172c 
               
               
                 number of successful VHO-Outs within a preceding time window (Y) (VHO-Out) 173a 
               
               
                 average AP signal strength at VHO-Out (VHO-Out-avg-SS) 173b 
               
               
                 average AP load level at VHO-Out (VHO-Out-avg-LL) 173c 
               
               
                 number of successful VHO-Ins within a preceding time window (Y) (VHO-In) 174a 
               
               
                 average AP signal strength at VHO-In (VHO-In-avg-SS) 174b 
               
               
                 average AP load level at VHO-In (VHO-In-avg-LL) 174c 
               
               
                 historic avg number of VHO-Outs per minute per communication session over at 
               
               
                 least a minimum number (X) of communication sessions within a preceding time 
               
               
                 window (Y) (VHO-Out-per-min) 175a 
               
               
                 historic avg number of VHO-Ins per minute per communication session over at 
               
               
                 least a minimum number (X) of communication sessions within a preceding time 
               
               
                 window (Y) (VHO-In-per-min) 175b 
               
               
                 historic avg VHO-Out fail rate over at least a minimum number (X) of VHO-Outs 
               
               
                 within a preceding time window Y (VHO-Out-fail-rate) 175c 
               
               
                 historic avg VHO-In fail rate over at least a minimum number (X) of VHO-Ins within 
               
               
                 a preceding time window (Y) (VHO-In-fail-rate) 175d 
               
               
                   
               
            
           
         
       
     
     When DSM  130  creates a new AP entry  162  in APDB  160 , all historical data  170  for the new AP entry  162  are initialized to zero. Thereafter, historical data  170  are updated by DSM  130  during operation of mobile device  10  in response to events relating to the AP represented by the AP entry  162 . As will be appreciated, the various values X and Y in Table 3 correlate with the various values X and Y in Table 2. As described above with reference to universal thresholds  190 , the various values X and Y may be predefined by the device manufacturer. 
     As also shown in  FIG. 1E , dynamic thresholds  180  include the following thresholds: 
     
       
         
           
               
             
               
                 TABLE 4 
               
               
                   
               
               
                 Dynamic thresholds 180 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 signal strength threshold for VHO-Out trigger (Lo-SS-Out) 181; 
               
               
                   
                 signal strength threshold for VHO-In trigger (Hi-SS-In) 182; 
               
               
                   
                 load level threshold for VHO-Out trigger (Hi-LL-Out) 183; and 
               
               
                   
                 load level threshold for VHO-In suppression (Hi-LL-In) 184. 
               
               
                   
                   
               
            
           
         
       
     
     When DSM  130  first creates a new AP entry  162  in APDB  160 , the dynamic thresholds  180  for the new AP entry  162  are set to default values which may for example be predefined by the device manufacturer. As will be appreciated by those skilled in the pertinent arts, in order to avoid the potential of a ping-pong effect, the default value for Lo-SS-Out  181  is preferably lower than the default value for Hi-SS-In  182 , and the default value for Hi-LL-In  184  is preferably lower than the default value for Hi-LL-Out  184 . By way of example, dynamic thresholds  180  may be configured with the following default values: −78 dBm for Lo-SS-Out  181 ; −70 dBm for Hi-SS-In  182 ; 50% for Hi-LL-Out  183 ; and 20% for Hi-LL-In  184 . 
     Thereafter, and as described in more detail below, the dynamic thresholds  180  are adjusted by DSM  130  during operation of mobile device  10  in response to changes in the historical data  170 , in accordance with rules  140 . 
     As shown in  FIG. 1C , rules  140  include dynamic threshold rules  142  and network selection rules  143 . 
     Dynamic threshold rules  142  define conditions for adjusting dynamic thresholds  180 . The conditions defined by dynamic threshold rules  142  are based on historical data  170  and universal thresholds  190 . Exemplary dynamic threshold rules  142  are shown in the following table: 
     
       
         
           
               
             
               
                 TABLE 5 
               
               
                   
               
               
                 Dynamic threshold rules 142 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 RULE 1: 
               
               
                   
                 IF (VHO-Out-fail-rate &gt; Max-VHO Out-fail-rate) AND 
               
            
           
           
               
               
            
               
                   
                 (VHO-Out-fail-avg-SS &gt;= Lo-SS-Out) AND 
               
               
                   
                 ((VHO-Out-fail-avg-SS + X1) &lt; Hi-SS-In) 
               
               
                   
                 Lo-SS-Out = VHO-Out-fail-avg-SS + X1 
               
            
           
           
               
               
            
               
                   
                 RULE 2: 
               
               
                   
                 IF (VHO-Out-fail-rate &gt; Max-VHO-Out-fail-rate) AND 
               
            
           
           
               
               
            
               
                   
                 (VHO-Out-fail-avg-LL &lt;= Hi-LL-Out) AND 
               
               
                   
                 ((VHO-Out-fail-avg-LL − Y1) &gt; Hi-LL-In) 
               
               
                   
                 Hi-LL-Out = VHO-Out-fail-avg-LL − Y1 
               
            
           
           
               
               
            
               
                   
                 RULE 3: 
               
               
                   
                 IF (VHO-In-fail-rate &lt; Min-VHO-In-fail-rate) AND 
               
            
           
           
               
               
            
               
                   
                 (Hi-SS-In − X2 &gt; Lo-SS-Out) 
               
               
                   
                 Hi-SS-In = Hi-SS-In − X2 
               
            
           
           
               
               
            
               
                   
                 RULE 4: 
               
               
                   
                 IF (VHO-In-fail-rate &lt; Min-VHO-In-fail-rate) AND 
               
            
           
           
               
               
            
               
                   
                 (Hi-LL-In + Y2 &lt; Hi-LL-Out) 
               
               
                   
                 Hi-LL-In = Hi-LL-In + Y2 
               
            
           
           
               
               
            
               
                   
                 RULE 5: 
               
               
                   
                 IF (VHO-Out-per-min &gt; Max-VHO-Out-per-min) 
               
            
           
           
               
               
            
               
                   
                 Lo-SS-Out = Lo-SS-Out − X3 
               
            
           
           
               
               
            
               
                   
                 RULE 6: 
               
               
                   
                 IF (VHO-Out-per-min &gt; Max-VHO-Out-per-min) 
               
            
           
           
               
               
            
               
                   
                 Hi-LL-Out = Hi-LL-Out + Y3; 
               
            
           
           
               
               
            
               
                   
                 RULE 7: 
               
               
                   
                 IF (VHO-In-per-min &gt; Max-VHO-In-per-min) 
               
            
           
           
               
               
            
               
                   
                 Hi-SS-In = Hi-SS-In + X4; 
               
            
           
           
               
               
            
               
                   
                 RULE 8: 
               
               
                   
                 IF (VHO-In-per-min &gt; Max-VHO-In-per-min) 
               
            
           
           
               
               
            
               
                   
                 Hi-LL-In = Hi-LL-In − Y4; 
               
               
                   
                   
               
            
           
         
       
     
     Network selection rules  143  define conditions for triggering VHOs. The conditions defined by network selection rules  143  are based on current readings  150  and dynamic thresholds  180 . Exemplary network selection rules  143  are shown in the following table: 
     
       
         
           
               
             
               
                 TABLE 6 
               
               
                   
               
               
                 Network selection rules 143 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 RULE 1 (VHO-Out): 
               
               
                 IF ((current AP SS &lt;= Lo-SS-Out) OR (current AP LL &gt;= Hi-LL-Out)) 
               
            
           
           
               
               
            
               
                   
                 IF ((number of neighbouring APs = 0) 
               
            
           
           
               
               
            
               
                   
                 trigger VHO-Out; 
               
            
           
           
               
               
            
               
                   
                 ELSE IF ((best neighbour SS &lt; (neighbour)Lo-SS-Out) OR 
               
            
           
           
               
               
            
               
                   
                 (best neighbour LL &gt; (neighbour)Hi-LL-Out)) 
               
               
                   
                 trigger VHO-Out; 
               
            
           
           
               
            
               
                 RULE 2 (VHO-In): 
               
               
                 IF ((current AP SS &gt;= Hi-SS-In) AND (current AP LL &lt;= Hi-LL-In)) 
               
            
           
           
               
               
            
               
                   
                 trigger VHO-In; 
               
            
           
           
               
            
               
                 RULE 3 (new communication session initiated): 
               
               
                 IF (current WLAN SSID = NULL) // i.e. no APs in range 
               
            
           
           
               
               
            
               
                   
                 initiate call on cellular; 
               
            
           
           
               
            
               
                 ELSE IF ((current AP SS &lt; Lo-SS-Out) OR (current AP LL &gt; 
               
               
                 Hi-LL-Out)) 
               
            
           
           
               
               
            
               
                   
                 IF ((number of neighbouring APs = 0) 
               
            
           
           
               
               
            
               
                   
                 initiate call on cellular; 
               
            
           
           
               
               
            
               
                   
                 ELSE IF ((best neighbour SS &lt; (neighbour)Lo-SS-Out) OR 
               
            
           
           
               
               
            
               
                   
                 (best neighbour LL &gt; (neighbour)Hi-LL-Out)) 
               
               
                   
                 initiate call on cellular; 
               
            
           
           
               
               
            
               
                   
                 ELSE 
               
            
           
           
               
               
            
               
                   
                 initiate call on WLAN; 
               
            
           
           
               
            
               
                 ELSE 
               
            
           
           
               
               
            
               
                   
                 initiate call on WLAN; 
               
               
                   
               
            
           
         
       
     
     Methods of handling voice calls in accordance with an embodiment will now be described with reference to  FIGS. 3 ,  4  and  5 . 
       FIG. 3  illustrates a typical use case scenario. As shown, a user  305  of mobile device  10  uses mobile device  10  either at a home location  301 , at an office location  302 , or at a location outside of those two locations. A home WLAN  310  with one AP  312  is configured to provide network access in the home  301 ; an office WLAN  320  with three APs  322  is configured to provide network access in the office  302 ; and a cellular network  330  provides ubiquitous cellular access. For the purpose of the following discussion, mobile device  10  is assumed to have been set to WLAN priority mode (e.g. by default or manually by user  305 ). It is further assumed that an AP entry  162  for each of APs  312 ,  322   a ,  322   b ,  322   c  have already been created in APDB  160  of mobile device  10  due to previous associations between mobile device  10  and each of those APs. 
       FIG. 4  shows steps in a call scenario that are performed in accordance with an embodiment. At step  402 , a voice call is in progress on mobile device  10  over the cellular network  330 . Initially, mobile device  10  is located beyond the reach of either WLAN  310  or WLAN  320 . At step  404 , mobile device  10  is moved into the home  301  while still on the call. When mobile device  10  is moved within range of AP  312 , mobile device  10  detects the beacon signal broadcast by AP  312  (step  406 ). DSM  130  updates the current readings  150  (step  408 ) and retrieves the AP entry  162  corresponding to AP  312  from APDB  160  using the SSID received in the beacon frame (step  410 ). As mobile device  10  is moved closer to AP  312 , DSM  130  updates the value of current AP signal strength  153  to reflect the increasing signal strength received at mobile device  10  (step  412 ). When the value of current AP signal strength  153  reaches or exceeds the Hi-SS-In threshold  182  for the AP  312  (step  414 ), DSM  130  triggers a VHO-In procedure, in accordance with exemplary network selection Rule 2 (see Table 6, above) (step  416 ). If the VHO-In procedure fails (step  418 ), DSM  130  updates VHO-In-fail  172   a , VHO-In-fail-avg-SS  172   b , VHO-In-fail-avg-LL  172   c , and VHO-In-fail-rate  175   d  of the AP entry  162  corresponding to AP  312  accordingly (step  420 ). If the VHO-In procedure succeeds (step  418 ), DSM  130  updates VHO-In  174   a , VHO-In-avg-SS  174   b , VHO-In-avg-LL  174   c , and VHO-In-fail-rate  175   d  of the AP entry  162  corresponding to AP  312 , as well as the number of VHO-Ins  159   b  for current communication session, accordingly (step  422 ). If VHO-In-fail-rate  175   d  is less than Min-VHO-In-fail-rate  194 , DSM  130  may decrease the Hi-SS-In threshold  182  in accordance with exemplary dynamic threshold Rule 3 (see Table 5, above) (step  424 ). After the call ends (step  426 ), DSM  130  updates VHO-In-per-min  175   b  using the values for current readings  159   b  and  159   c , and, if VHO-In-per-min  175   b  exceeds Max-VHO-In-per-min  192 , DSM  130  may increase the Hi-SS-In threshold  182  in accordance with exemplary dynamic threshold Rule 7 (see Table 5, above) (step  428 ). 
       FIG. 5  shows steps in a further call scenario that are performed in accordance with an embodiment. At step  502 , a voice call is in progress on mobile device  10  over the WLAN  320  through AP  322   c . Initially, mobile device  10  is located in the office  302 . At step  504 , mobile device  10  is moved towards the door  303  of the office  302  while still on the call. As mobile device  10  is moved away from AP  322   c  and towards AP  322   a , DSM  130  updates the values of current readings  150  to reflect the changing signal strengths received at mobile device  10  (step  506 ). Eventually, the value of current AP signal strength  153  may reach or fall below the Lo-SS-Out threshold  181  in the AP entry  162  for AP  322   c  (step  508 ). In response, DSM  130  executes network selection Rule 1 (see Table 6, above) to determine whether to trigger a VHO-Out procedure (step  510 ). Since the number of neighbouring APs is not zero, DSM  130  checks whether the signal strength and load level readings for the best candidate neighbouring AP (in this example, AP  322   a ) are within appropriate dynamic thresholds  180 . In this scenario, the readings are within appropriate levels, and therefore DSM  130  does not trigger a VHO-Out procedure, but simply continues to update the values of current readings  150  (step  514 ) until either the conditions for triggering a VHO-Out are met, or the WCS  106  causes mobile device  10  to roam from AP  322   c  to AP  322   a . In this scenario, WCS  106  eventually causes mobile device  10  to roam from AP  322   c  to AP  322   a , and DSM  130  updates current readings  150  appropriately (step  516 ). As the mobile device  10  continues towards the door  303  and out of the office  302 , eventually the value of current AP signal strength  153  may reach or fall below the Lo-SS-Out threshold  181  in the AP entry  162  for AP  322   a  (step  518 ). In response, DSM  130  again executes network selection Rule 1 (see Table 6, above) and, as the conditions for a VHO-Out are met this time, DSM  130  triggers a VHO-Out procedure (step  522 ). If the VHO-Out procedure fails (step  524 ), DSM  130  updates VHO-Out-fail  171   a , VHO-Out-fail-avg-SS  171   b , VHO-Out-fail-avg-LL  171   c , and VHO-Out-fail-rate  175   c  of the AP entry  162  corresponding to AP  322   a  accordingly and, if VHO-Out-fail-rate  175   c  exceeds Max-VHO-Out-fail-rate  193 , DSM  130  may increase the Lo-SS-Out threshold  181  in accordance with exemplary dynamic threshold Rule 1 (see Table 5, above) (step  526 ). If the VHO-Out procedure succeeds (step  524 ), DSM  130  updates VHO-Out  173   a , VHO-Out-avg-SS  173   b , VHO-Out-avg-LL  173   c , and VHO-Out-fail-rate  175   c  of the AP entry  162  corresponding to AP  322   a , as well as the number of VHO-Outs  159   a  for current communication session, accordingly (step  528 ). After the call ends (step  530 ), DSM  130  updates VHO-Out-per-min  175   a  using the values for current readings  159   a  and  159   c , and, if VHO-Out-per-min  175   a  exceeds Max-VHO-Out-per-min  191 , DSM  130  may decrease the Lo-SS-Out threshold  181  in accordance with exemplary dynamic threshold Rule 5 (see Table 5 above) (step  532 ). 
     As will be appreciated by those skilled in the pertinent arts, different parameter sets for current readings  150 , historical data  170 , universal thresholds  190 , dynamic thresholds  180 , and rules  140  may be used in order to achieve different optimization strategies and objectives. For example, a further embodiment may utilize the following parameter sets: 
     
       
         
           
               
             
               
                 TABLE 7 
               
               
                   
               
               
                 Current readings 150 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 current AP signal level; 
               
               
                 current AP identifier; 
               
               
                 best candidate neighbouring AP signal level; 
               
               
                 current RTCP statistics; (As is known, RTCP, which stands for Real Time 
               
               
                 Protocol - Control Protocol, provides out-of-band statistics and control 
               
               
                 information for an RTP flow.) 
               
               
                 network load; 
               
               
                 number of VHO-Outs for the current call; 
               
               
                 duration of current call; 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
             
               
                 TABLE 8 
               
               
                   
               
               
                 Universal thresholds 190 
               
               
                   
               
             
            
               
                 VHO-Out thresholds: 
               
            
           
           
               
               
            
               
                 A1. 
                 target RTCP statistics; 
               
               
                 A2. 
                 avg call drop rate over at least X calls within Y weeks 
               
               
                 A3. 
                 avg # of VHO-Out per minute per call over at least X calls within Y weeks for 
               
               
                   
                 signal increase adjustment 
               
               
                 A4. 
                 avg VHO-Out failure rate (%) over at least X VHO-Outs within Y weeks for 
               
               
                   
                 signal increase adjustment 
               
               
                 A5. 
                 avg # of VHO-Out per minute per call over at least X calls within Y weeks for 
               
               
                   
                 signal decrease adjustment 
               
               
                 A6. 
                 avg VHO-Out failure rate (%) over at least X VHO-Outs within Y weeks for 
               
               
                   
                 signal decrease adjustment 
               
            
           
           
               
            
               
                 VHO-In thresholds: 
               
            
           
           
               
               
            
               
                 B1. 
                 maximum network load; 
               
               
                 B2. 
                 minimum time since last rove out 
               
               
                 B3. 
                 avg # of VHO-Out per minute per call over at least X calls within Y weeks for 
               
               
                   
                 VHO-In decision 
               
               
                 B4. 
                 avg VHO-Out rate within Z minutes of VHO-In over at least X VHO-Ins within Y 
               
               
                   
                 weeks for VHO-In decision 
               
               
                 B5. 
                 avg VHO-Out rate within Z minutes of VHO-In over at least X VHO-Ins within Y 
               
               
                   
                 weeks for signal increase adjustment 
               
               
                 B6. 
                 avg VHO-Out rate within Z minutes of VHO-In over at least X VHO-Ins within Y 
               
               
                   
                 weeks for signal decrease adjustment 
               
               
                   
               
            
           
         
       
     
     As noted above in relation to the first embodiment, universal thresholds  190  are set to default values, which may for example be predefined by the device manufacturer, when DSM  130  is first initialized. The various values X, Y and Z in Table 8 may also be predefined by the device manufacturer. For example, in one embodiment, with respect to thresholds A3 and A5, X may be set to five calls, Y may be set to one week, and the default values for A3 and A5 may be set to 1.0 and 0.2, respectively; with respect to thresholds A4 and A6, X may be set to five VHO-Outs, Y may be set to one week, and the default values for A4 and A6 may be set to 30% and 2%, respectively; and with respect to thresholds B5 and B6, Z may be set to one minute, X may be set to five VHO-Ins, Y may be set to one week, and the default values for B5 and B6 may be set to 30% and 2%, respectively. As noted above, universal thresholds  190  and the various values X, Y and Z may be adjusted manually, for example, by the user through a conventional advanced settings user screen. 
     
       
         
           
               
             
               
                 TABLE 9 
               
               
                   
               
               
                 Historical data 170 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                 H1. 
                 cumulative # of call drops within past Y weeks 
               
               
                 H2. 
                 total number of calls within past Y weeks 
               
               
                 H3. 
                 historic avg call drop rate over at least X calls within Y weeks 
               
               
                 H4. 
                 historic avg # of VHO-Out per minute per call over at least 
               
               
                   
                 X calls within Y weeks 
               
               
                 H5. 
                 cumulative # VHO-Out failure within past Y weeks 
               
               
                 H6. 
                 total number of VHO-Out attempt within past Y weeks 
               
               
                 H7. 
                 historic avg VHO-Out failure rate over at least X VHO-Outs within 
               
               
                   
                 Y weeks 
               
               
                 H8. 
                 cumulative # of VHO-Out within Z minutes of VHO-In within past 
               
               
                   
                 Y weeks 
               
               
                 H9. 
                 total number VHO-In attempt within past Y weeks 
               
               
                 H10. 
                 historic avg VHO-Out rate within Z minutes of VHO-In over at 
               
               
                   
                 least X VHO-Ins within Y weeks 
               
               
                   
               
            
           
         
       
     
     As will be appreciated, the various values X, Y and Z in Table 9 correlate with the various values X, Y and Z in Table 8. 
     
       
         
           
               
             
               
                 TABLE 10 
               
               
                   
               
               
                 Dynamic thresholds 180 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                   
                 D1. 
                 signal strength threshold for VHO-Out trigger; and 
               
               
                   
                 D2. 
                 signal strength threshold for VHO-In trigger. 
               
               
                   
                   
               
            
           
         
       
     
     
       
         
           
               
             
               
                 TABLE 11 
               
               
                   
               
               
                 Dynamic threshold rules 142 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 RULE 1: 
               
               
                   
                 if( H7 &gt; A4 ∥ H4 &gt; A3 ) 
               
            
           
           
               
               
            
               
                   
                 increase D1 by K amount 
               
               
                   
                 reinitialized all statistics 
               
            
           
           
               
               
            
               
                   
                 else if ( H7 &lt; A6 ∥ H4 &lt; A5 ) 
               
            
           
           
               
               
            
               
                   
                 decrease D1 by K amount 
               
               
                   
                 reinitialized all statistics 
               
            
           
           
               
               
            
               
                   
                 RULE 2: 
               
               
                   
                 if( H10 &gt; B5 ) 
               
            
           
           
               
               
            
               
                   
                 increase D2 by K amount 
               
               
                   
                 reinitialized all statistics 
               
            
           
           
               
               
            
               
                   
                 else if( H10 &lt; B6 ) 
               
            
           
           
               
               
            
               
                   
                 decrease D2 by K amount 
               
               
                   
                 reinitialized all statistics 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
             
               
                 TABLE 12 
               
               
                   
               
               
                 Network selection rules 143 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
            
               
                 RULE 1 (VHO-Out): 
               
               
                 if( current AP signal level &lt; D1 ) 
               
            
           
           
               
               
            
               
                   
                 and ( neighbouring AP signal level &lt; (neighbour)D1 ) 
               
               
                   
                 trigger VHO-Out 
               
            
           
           
               
            
               
                 else if( current RTCP stats &gt; A1 ) 
               
            
           
           
               
               
            
               
                   
                 trigger VHO-Out 
               
            
           
           
               
            
               
                 else if ( H3 &gt; A2 ) 
               
            
           
           
               
               
            
               
                   
                 trigger VHO-Out 
               
            
           
           
               
            
               
                 RULE 2 (VHO-In): 
               
               
                 if( current AP signal level &gt; D2 ) 
               
            
           
           
               
               
            
               
                   
                 and ( time since last rove out &gt; B2 ) 
               
               
                   
                 and ( network load available &amp;&amp; (current network load &lt; B1) ) 
               
               
                   
                 and ( H10 &lt; B4 ) 
               
               
                   
                 and ( H4 &lt; B3 ) 
               
               
                   
                 trigger VHO-In 
               
               
                   
               
            
           
         
       
     
     Other modifications will be apparent to those skilled in the art.