Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.
A system and method are provided that route messages to the correct address of the mobile station even as the mobile station moves across a network and changes addresses. The approaches described herein are efficient to perform and do not require the performance of extra messaging sequences. Moreover the performance of the system is enhanced, and calls are not dropped when users move between different areas of the network.
In many of these embodiments, a Session Initiation Protocol (SIP)-compliant proxy receives a first INVITE message destined for a mobile station. The first INVITE message is associated with an initial Internet Protocol (IP) contact address for the mobile station. Subsequently, it is determined whether an IP address update for the mobile station may have occurred and a new IP contact address is obtained for the mobile station. A second INVITE message is then sent to the mobile station at the new contact address in order to continue a session initiation.
Whether an address update occurred may be determined based upon several conditions. For instance, a retry attempt of the first INVITE message may be received. In another example, an update message may be received from a SIP-compliant registrar indicating that the address update has occurred. In yet another example, it may be determined that a predetermined period of time has expired. In this case, a second INVITE message may be sent from the SIP-compliant proxy to the mobile station (at the new contact address) upon expiration of the predetermined period of time.
In others of these embodiments, a mobile station operates and receives communications at a first Internet Protocol (IP) address. A second IP address is acquired and this second IP address is the new operating address for the mobile station. The IP stack at the mobile station is not initialized with this second IP address at this time. It is delayed until a later point as in time. The second IP address is registered at a Session Initiation Protocol (SIP)-compliant register and a first INVITE message is subsequently sent to and received at the mobile station. Subsequent to registering the second IP address, the IP stack at the mobile station is initialized to be able to use the second IP address.
A race condition is prevented from occurring at the mobile station based upon the particular messaging sequence that occurs. For example, when the first INVITE message (associated with the first IP address) is received by the mobile station before stack initialization occurs, a redirect message may be sent by mobile station to a SIP-compliant proxy. The message indicates that the mobile station has moved to the second IP address. Since the redirect message informs the SIP-compliant proxy of the new address, subsequent INVITE messages will include the second IP address and, consequently, will be received at the mobile station.
In another example, when the mobile station moves to the new address but has not initialized its stack with the new address, INVITE messages (with the new address) are not received. In this situation, after initialization is performed, retry attempts of the INVITE message (with the new address) may be made and will be successfully received by the mobile station.
Thus, approaches are provided that allow messages and communications to be routed to mobile stations as these mobile stations move across networks and change addresses. The approaches provided avoid dropped calls, do not negatively impact system performance, do not require extra messaging sequences, and avoid the creation of scalability problems.
Referring now to
The SIP-compliant proxy 106 is a server that provides for centralized address translation. The SIP-compliant proxy 106 receives INVITE and other messages from the call controller 112 and forwards these to the mobile station 102.
The registration database 108 stores information regarding the status and location of mobile stations operating in the network. For example, the registration database may store the current contact address of mobile stations that are operating in the network.
The SIP-compliant registrar 110 communicates with the registration database 108 to update information in the registration database 108. For example, the SIP-compliant register 110 may change the contact address that is stored in the registration database 108 as the contact address changes. The call controller 112 provides basic control, advanced call services and connectivity to a Public Switched Telephone Network (PSTN).
The RAN 104 includes elements and functionality that allow the mobile station 102 to communicate with the network 100 and the network 100 to communicate with the mobile station 102. In this regard, the RAN 104 may include base stations, base station controllers, servers, gateways, and/or other elements that allow these functions to be performed.
The mobile station 102 may be any type of mobile wireless communication device. For example, the mobile station 102 may be a cellular telephone, pager, personal digital assistant, or personal computer. Other examples of mobile stations are possible.
In one embodiment of the present invention, the system of
Whether an address update occurred may be determined based upon several factors. For instance, a retry attempt of the first INVITE message may be received. In another example, an update message from the SIP-compliant registrar 110 indicating that the address update has occurred may be received. In yet another example, it may be determined that a predetermined period of time has elapsed. In this case, the second INVITE message is sent from the SIP-compliant proxy 106 to the mobile station 102 (via the RAN 104) with the new contact address upon expiration of the predetermined period of time.
In another embodiment of the present invention, the system of
The actions taken to prevent the race condition depend upon the particular messaging sequence that occurs. For example, when the first INVITE message (associated with the first IP address) is received by the mobile station 102 before stack initialization occurs, a redirect message may be sent by mobile station 102 to the SIP-compliant proxy 106. The message indicates that the mobile station 102 has moved to the second IP address. Since the redirect message informs the SIP-compliant proxy 106 of the new address, subsequent INVITE messages will include the second IP address and, consequently, will be received at the mobile station 102 thereby preventing the race condition from occurring.
In yet another embodiment of the present invention, when the mobile station 102 has informed the registrar of the new address, but has not initialized its stack to use the new address, INVITE messages (with the new address) are not received at the mobile station 102. In this situation, after initialization is performed, retry attempts of the INVITE message (with the new address) may be made (e.g., from the proxy 106) and will be successfully received by the mobile station 102.
Referring now to
At step 208, the mobile station registers a new contact address at a SIP-compliant registrar. At step 210, the SIP-compliant registrar updates the Registration Database (DB) with a new contact address. At step 212, the SIP-compliant registrar sends an update message to the SIP-compliant proxy informing the SIP proxy that an update has occurred. At step 214, the SIP-compliant proxy gets the new contact address from the Registration Database (DB). At step 216, the SIP-compliant proxy sends a second INVITE message to the mobile station. This INVITE message has the new contact address, so the INVITE message reaches the SIP-compliant proxy.
Referring now to
At step 308, the mobile station registers a new contact address at a SIP-compliant registrar. At step 310, the SIP-compliant registrar updates the Registration Database (DB) with a new contact address. At step 312, the call control server retries the INVITE message after a predetermined time period has elapsed. For instance, a timer may be used and the timer may be set to expire after a few seconds. At step 314, an INVITE message is sent from the call control server to the SIP-compliant proxy. At step 316, the SIP-compliant proxy retrieves the new contact address from the Registration Database (DB). At step 318, the SIP-compliant proxy sends a second INVITE message to the mobile station. This INVITE message includes the new contact address, so the INVITE message reaches the mobile station.
Referring now to
At step 408, the mobile station registers a new contact address at a SIP-compliant registrar. At step 410, the SIP-compliant registrar updates the Registration Database (DB) with a new contact address. At step 412, the SIP-compliant proxy retries the INVITE after the expiration of a predetermined time interval. At step 414, the SIP-compliant proxy retrieves the new contact address from the Registration Database (DB). At step 416, the SIP-compliant proxy sends a second INVITE message to the mobile station. This INVITE message has the new contact address, so the INVITE message reaches the mobile station.
Referring now to
At step 512, the SIP-compliant proxy sends an INVITE to the mobile station (MS) at the old contact address of the mobile station. At step 514, the mobile station (MS) sends a redirect message (e.g., a 302 moved temporary message) to the SIP-compliant proxy. The message includes the new contact address of the mobile station (MS). At step 516, the mobile station (MS) initializes the IP stack of the mobile station (MS) to use the new contact address. At step 518, the SIP-compliant proxy sends an INVITE message to the mobile station (MS) at the new contact address. At step 520, the mobile station (MS) sends a drop tunnel message (e.g., a Layer 2 (L2) message) to an access point (AP) and a tunnel associated with the mobile station and based on the old contact address is subsequently dropped by the access point.
Referring now to
At step 612, the SIP-compliant proxy sends an INVITE to the mobile station (MS) at the new contact address. At step 614, the mobile station (MS) initializes the IP stack of the mobile station (MS) to use the new contact address. At step 616, the SIP-compliant proxy sends an INVITE to the mobile station (MS) at the new contact address. The INVITE may be in the form of a TCP or SIP-compliant retry. At step 618, the mobile station (MS) sends a drop tunnel message (a Layer 2 (L2) message) to an access point and a tunnel associated with the mobile station and based on the old contact address is subsequently dropped by the access point.
Referring now to
Referring now to
The second IP address is registered at a SIP-compliant registrar and a first INVITE message is subsequently received at the input of the receiver 804. Subsequent to registering the second IP address, the stack 808 at the mobile station 800 is initialized to use the second IP address. An occurrence of a race condition is prevented at the mobile station 800 because of the mobile station 800 moving to the second IP address 102. As has been described elsewhere in this specification, the actions taken to prevent the race condition depend upon the particular messaging sequence that occurs and include initializing the stack 808 and receiving a retry attempt, or sending a redirect message (with the new address) to a SIP-compliant proxy and, consequently, receiving messages that are directed to the second address.
Thus, approaches are provided that allow messages and communications to be routed to mobile stations as these mobile stations move across networks. The approaches avoid dropped calls, do not negatively impact system performance, do not require extra messaging, and do not create appreciable scalability problems.
Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the spirit and scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the scope of the invention.