Abstract:
A method and apparatus for user location registration comprising determining, by a first network service provided by a first network, subscriber location information associated with a first user communication device registered with the first network, wherein the subscriber location information includes a network identifier of the first device, and wherein the network identifier is not obtained via session initiation protocol (SIP) messaging received from the first device; receiving, by the first network service, a broadcast location request for the subscriber location information in response to a call initiated from a second user communication device wherein receiving the broadcast location request further includes determining subscriber identity information from the broadcast location request, and determining that the subscriber identity information is associated with the subscriber location information; and sending, by the first network service, the determined subscriber location information in response to the broadcast location request.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation-in-part of co-pending U.S. non-provisional patent application Ser. No. 13/784,279 filed Mar. 4, 2013, which is herein incorporated by reference in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    Embodiments of the present invention generally relate to a voice over internet protocol (VoIP) service, and more specifically, to a method and apparatus for performing network registration. 
         [0004]    2. Description of the Related Art 
         [0005]    VoIP networks generally rely on a session initiation protocol (SIP) registration method to identify the IP Address of devices on the network. These devices send SIP REGISTER messages, which function as indications about the device&#39;s connectivity, to SIP registration servers containing information about the location of the device. The SIP REGISTER method also serves as a means to indicate to the SIP registration server that the device is still currently active. However, in order to maintain knowledge of the device and location, SIP REGISTER messages must be sent at regular and frequent intervals from the device to the SIP registration servers. Pushing the SIP REGISTER message often imposes a burden on the device and consumes a significant amount of power, especially in the case of mobile devices such as cellular telephones or tablet computers. The SIP REGISTER messages may shorten the battery life of the device, interfere with network speed, or cause undesirable behavior in device functionality and software functionality. 
         [0006]    Therefore, there is a need in the art for a method and apparatus for performing network registration from alternate sources other than a device executing a VoIP application. 
       SUMMARY OF THE INVENTION 
       [0007]    Embodiments of the present invention relate to a method for user location registration comprising determining, by a first network service provided by a first network, subscriber location information associated with a first user communication device registered with the first network, wherein the subscriber location information includes a network identifier of the first device, and wherein the network identifier is not obtained via session initiation protocol (SIP) messaging received from the first device; receiving, by the first network service, a broadcast location request for the subscriber location information in response to a call initiated from a second user communication device wherein receiving the broadcast location request further includes determining subscriber identity information from the broadcast location request, and determining that the subscriber identity information is associated with the subscriber location information; and sending, by the first network service, the determined subscriber location information in response to the broadcast location request. 
         [0008]    Further embodiments of the present invention relate to an apparatus for device registration comprising a processor configured for executing instructions comprising the steps of determining, by a first network service provided by a first network, subscriber location information associated with a first user communication device registered with the first network, wherein the subscriber location information includes a network identifier of the first device, and wherein the network identifier is not obtained via session initiation protocol (SIP) messaging received from the first device; receiving, by the first network service, a broadcast location request for the subscriber location information in response to a call initiated from a second user communication device wherein receiving the broadcast location request further includes determining subscriber identity information from the broadcast location request, and determining that the subscriber identity information is associated with the subscriber location information; and sending, by the first network service, the determined subscriber location information in response to the broadcast location request. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
           [0010]      FIG. 1  is an illustration depicting a typical scenario in accordance with one or more embodiments of the present invention; 
           [0011]      FIG. 2  is a more detailed depiction of the carrier network and the VoIP network in accordance with exemplary embodiments of the present invention; 
           [0012]      FIG. 3  depicts an implementation of the translation service of  FIG. 1  by a first computer and the registration service and broadcast service by a second computer in accordance with at least one embodiment of the present invention; 
           [0013]      FIG. 4  depicts a flow diagram for a method for user location registration in accordance with previous embodiment of the present invention as depicted in  FIGS. 1 and 2 ; and 
           [0014]      FIG. 5  depicts a flow diagram for another method for user location registration in accordance with previous embodiment of the present invention as depicted in  FIGS. 1 and 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Embodiments of the present invention generally relate to user or device network registration with a VoIP network. According to an exemplary embodiment, the user of a VoIP application executing on a device, for example a mobile device, is assigned location information by a network carrier. A translation service translates between subscriber information and location information, and sends this location information to external networks such as the VoIP network. When a call is initiated to the subscriber using the mobile device, the VoIP network broadcasts a request with a location query for that particular subscriber. The carrier network receives this request and responds to the VoIP network with the subscriber&#39;s location information, and the VoIP network establishes the call based on the given location information. 
         [0016]      FIG. 1  is an illustration depicting a typical scenario in accordance with one or more embodiments of the present invention. The device  121  and the device  122  are hosted on the carrier network  103 . The device  123  and the device  124  are hosted on the carrier network  105 . Each device  121  to  124  has the VOIP application  1  . . .  4  loaded on it, where the VOIP applications  1  . . .  4  (“VOIP APP”) are managed by the same service provider. Subscribers are able to communicate with other devices using the VOIP network  101  by using the VOIP APP. According to reference art, the device  121  would send SIP REGISTER messages containing location information to the registration server  102  of the VoIP network  101 . The VoIP network  101  would then place an incoming call to the location information contained in the SIP REGISTER message, allowing the device  121  to receive the placed call. 
         [0017]    According to this embodiment, the carrier network  103  sends the SIP REGISTER to the registration service  102 . A VoIP subscriber using the device  121  logs into the VOIP APP to access the VoIP network  101 . The carrier network  103  has already established location information for the device  121  through, for example, GSM/3G/4G/WIFI networks. According to some embodiments, the location information comprises an internet protocol version 4 (IPv4) address, an internet protocol version 6 (IPv6) address, or any identifying network address. Once the user has authenticated the VOIP APP with the VoIP network  101 , the carrier network  103  associates the VOIP user credentials, for example, the user name, with the location information in its internal translation service  104 . According to some other embodiments, the carrier network  103  may be an email service, a cellular service, a social networking service, a wireless access router, or the like. In the embodiment where the carrier network  103  is an email service, the email service stores the IP address of the device from which the subscriber is accessing the email service. The email service then hosts the translation service  104 , returning location information to the VoIP network  101 . Social networking services, wireless routers, and the like behave similarly. 
         [0018]    In some embodiments, depending on the type of network service provided by the carrier network, the location information may not include an IP address, but rather some other network identifier that eventually maps to or corresponds to an IP address at a higher level network. For example, if the network service is a wireless network service using short-wavelength UHF radio waves in the ISM band from, for example, 2.4 to 2.485 GHz or based on the IEEE 802.15x standard, for example a BLUETOOTH® network service, the location information may be a media access control (MAC) address of the device, a Universally Unique Identifier (UUID), a unique 48-bit address assigned to each device, a Bluetooth hardware device address (BD_ADDR), and the like. That location information may be used to determine the IP address/location of the device. 
         [0019]    Similarly, in some embodiments, the network service is a wireless network service using near field communication (NFC) or other short-range wireless technologies that operate at, for example, 13.56 MHz on ISO/IEC 18000-3 air interface and at rates ranging from 106 kbit/s to 424 kbit/s. ISO/IEC 18000-3 is an international standard for passive Radio-frequency identification (RFID) item level identification and describes the parameters for air interface communications at 13.56 MHz. In NFC or similar type network services, the location information may be a media access control (MAC) address of the device, and the like. That location information may be used to determine the IP address/location of the device. 
         [0020]    In a typical scenario, the user of device  123  registered with carrier network  105  has associated its VoIP credentials using the translation service  106 . The device  123  places a call to a particular user, (USER A) who happens to be logged into the VOIP APP on device  121 . The VoIP network  101  receives the request to place the call to USER A, but does not know the location information of USER A. The VoIP network  101  further comprises a broadcast service  108  that makes a request to the translation service of several carriers, such as translation service  104  of carrier  103  and translation service  106  of carrier  105 . The request comprises a query to determine whether USER A is on the carrier network receiving the request. The translation service  104  retrieves the list of associated users and location information, and determines that the list contains USER A. The translation service  104  returns the location information of USER A to the VoIP network  101 . The network  101  subsequently establishes the call between the device  123  and device  121 . 
         [0021]    According to this embodiment, the VOIP APP executing on the device  121  no longer has to send SIP REGISTER messages to the VoIP network  101  because the location information is translated by the translation service  104 . In some instances, a subscriber would like to become “unavailable” for incoming calls. According to one embodiment, the VOIP APP, or one of the intermediate service providers, explicitly signals the VoIP network  101  to indicate they are unavailable. In other instances, the carrier network  103  may store availability status information and convey that status to the VoIP network  101  on behalf of the subscriber. 
         [0022]    In traditional SIP registration services, there is also a SIP deregistration process to de-register from the VoIP network  101 . According to embodiments of the present invention, once the VOIP APP is closed, deregistration effectively occurs and the carrier network  103  deregisters, or removes, the user from the translation service  104  after a predetermined timeout expires. In some embodiments where the registration service  102  does not receive updates from the carrier network  103 , timeout is set lower and is more accurate. If no service provider such as the carrier network  103  provides an update to the network  101 , the user is assumed to have closed the device altogether, causing deregistration. Optionally, a user of a device may be queried to determine whether they would like to off-line, i.e., de-register, and closing the device, or VoIP application does not cause an automatic de-registration. 
         [0023]      FIG. 2  is a more detailed depiction of the carrier network  103  and the VoIP network  101  in accordance with exemplary embodiments of the present invention. The carrier network  103  comprises the translation service  104 . The translation service  104  contains mappings between device  121  and USER A and device  122  and USER B. The device  121  further comprises location information  201 , and the device  122  further comprises location information  203 . 
         [0024]    According to some embodiments, the device  121  is associated with a SIP REGISTER message  209  from the VOIP APP and the device  122  is associated with a SIP REGISTER message  213 , where the SIP REGISTER message is stored for transmission by the carrier network  103  as opposed to by the VOIP APPs executing on the device  121  and the device  122 . According to some embodiments, the broadcast service  108  broadcasts a request  205  comprising a location query  207 . The carrier network  103  receives the request  205  and extracts user information from the request  205 . The VoIP network  101  attempts to determine the location of the user specified in the user information. 
         [0025]    The user information is compared to the mappings stored by the translation service  104 , and a device location  201 , or location  203  is sent to the VoIP network  101 . The VoIP network  101  will know the location information for user A and will direct all calls to that location. According to some other embodiments of the present invention, the SIP REGISTER messages  209  and  213  are sent to the registration service  102  of the VoIP network  101  to confirm location information. In other embodiments, the translation service  104  sends only SIP REGISTER messages on behalf of VoIP capable devices using the carrier network  103 . 
         [0026]      FIG. 3  depicts an implementation of the translation service  104  of  FIG. 1  by a computer  300  and the registration service  102  and broadcast service  108  by a computer  350  in accordance with at least one embodiment of the present invention. In some embodiments, the translation service  104 , the registration service  102  and the broadcast service  108  may be implemented using a plurality of such computers, for example a group of servers. Additionally, in some embodiments, the registration service  102  and the broadcast service  108  may be implemented by two different computers. The computer  300  includes a processor  302 , various support circuits  306 , and memory  304 . The processor  302  may include one or more microprocessors known in the art. The support circuits  306  for the processor  302  include conventional cache, power supplies, clock circuits, data registers, I/O interface  307 , and the like. The I/O interface  307  may be directly coupled to the memory  304  or coupled through the support circuits  306 . The I/O interface  307  may also be configured for communication with input devices and/or output devices  368  such as network devices, various storage devices, mouse, keyboard, display, video and audio sensors, IMU and the like. 
         [0027]    The memory  304 , or computer readable medium, stores non-transient processor-executable instructions and/or data that may be executed by and/or used by the processor  302 . These processor-executable instructions may comprise firmware, software, and the like, or some combination thereof. Modules having processor-executable instructions that are stored in the memory  304  comprise a translation service  308 . The computer  300  may be programmed with one or more operating systems, which may include OS/2, Java Virtual Machine, Linux, SOLARIS, UNIX, HPUX, AIX, WINDOWS, IOS, ANDROID among other known platforms. 
         [0028]    The computer  350  includes a processor  352 , various support circuits  356 , and memory  354 . The processor  352  may include one or more microprocessors known in the art. The support circuits  356  for the processor  352  include conventional cache, power supplies, clock circuits, data registers, I/O interface  357 , and the like. The I/O interface  357  may be directly coupled to the memory  354  or coupled through the support circuits  356 . The I/O interface  357  may also be configured for communication with input devices and/or output devices  378  such as network devices, various storage devices, mouse, keyboard, display, video and audio sensors, IMU and the like. 
         [0029]    The memory  354 , or computer readable medium, stores non-transient processor-executable instructions and/or data that may be executed by and/or used by the processor  352 . These processor-executable instructions may comprise firmware, software, and the like, or some combination thereof. Modules having processor-executable instructions that are stored in the memory  304  comprise a registration service  358  and a broadcast service  360 . The computer  300  may be programmed with one or more operating systems, which may include OS/2, Java Virtual Machine, Linux, SOLARIS, UNIX, HPUX, AIX, WINDOWS, IOS, ANDROID among other known platforms. 
         [0030]    The memory  304  and the memory  354  may include one or more of the following random access memory, read only memory, magneto-resistive read/write memory, optical read/write memory, cache memory, magnetic read/write memory, and the like, as well as signal-bearing media as described below. 
         [0031]      FIG. 4  depicts a flow diagram for a method  400  for user location registration in accordance with previous embodiment of the present invention as depicted in  FIGS. 1 and 2 . The method  400  is an exemplary implementation of the translation service  308  as executed on the computer system  300  shown in  FIG. 3 . 
         [0032]    The method  400  begins at step  402  and proceeds to step  404 . At step  404 , the translation service registers a subscriber&#39;s device, such as a mobile device, with its network carrier. The translation service associates the subscriber information, for example, a VoIP network username or ID, with location information such as an IP address, a MAC address, a Universally Unique Identifier (UUID), a unique 48-bit address assigned to each device, a Bluetooth hardware device address (BD_ADDR), and the like. The device may be computer software, mobile devices, VoIP devices or the like. 
         [0033]    Once the subscriber device has been registered, the translation service may receive, from the VoIP network, a broadcast location request for the subscriber at step  406 . According to other embodiments, the location information is sent to any external network, or external requesting party, authorized by either the subscriber, or the network carrier at step  408 . 
         [0034]    According to some embodiments, in addition to allowing the location information to be submitted to external networks, the device may also submit SIP REGISTER messages through the VOIP APP executing on the device at step  408 . 
         [0035]    At step  410 , the first service broadcasts location information to third party services designated by the user. At this point, the user device and VOIP APP are capable of receiving calls based on the location information being broadcast to external networks. An external network attempting to reach the user consults with the translation service  308  to determine whether the user was registered by the translation service  308 . If a call is placed to the user, the translation service  308  translates the user information to location information based on a stored association of user information and location information, and directs the call to the location specified in the location information, i.e., the user&#39;s device. The VOIP APP will receive the call and the user can engage in VoIP calls through the VOIP APP. 
         [0036]    At step  410 , the translation service may optionally broadcast the location information to third party services such as email services, FACEBOOK, APPLE VPNS Servers, wireless access points or cellular/mobile telecommunication towers. These services would then be able to know location information about a particular user without the device continuously submitting the location information to each of those services individually. The user may designate which particular services are privileged to know the location information from the translation service  308 . The method terminates at step  412 . 
         [0037]      FIG. 5  depicts a flow diagram for a method  500  for user location registration in accordance with previous embodiment of the present invention as depicted in  FIGS. 1 and 2 . The method  500  is another exemplary implementation of the translation service  308  as executed on the computer system  300  shown in  FIG. 3 . 
         [0038]    The method  500  begins at step  502  and proceeds to step  504 . At step  504 , the translation service  308  receives a broadcast request, such as request  205  (shown in  FIG. 2 ), for a user&#39;s location information. The broadcast request contains a location query such as location query  207  as shown in  FIG. 2 . At step  506 , the translation service  308  extracts the user information from the request. The user information contains information used in identifying the user to whom a call is being placed. The method  500  then proceeds to step  508 , where the translation service  308  determines whether the subscriber in the request is registered with the translation service  308 . 
         [0039]    If the subscriber is determined to be not registered at step  509 , the method terminates at step  512 . If the subscriber is registered with the translation service  308  at step  509 , the method moves to step  510 . At step  510 , the translation service  308  returns the location information associated with the stored user information which was matched with the user information found in the broadcast request. The method terminates at step  512 . 
         [0040]    While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.