Abstract:
A method for an authentication server to authenticate Voice over Internet Protocol (VoIP) devices includes receiving a request from a unverified VoIP device to verify its global telephone number over a computer network, searching for verified VoIP devices that have authenticated identities and caller ID service, and providing the telephone numbers of the verified VoIP devices to the unverified VoIP device, wherein the unverified VoIP device calls the verified VoIP devices and the verified VoIP devices detect telephone numbers of the unverified VoIP device. The method further comprises receiving the detected telephone numbers from the verified VoIP devices and determining if the detected telephone numbers match a telephone number provided by the unverified VoIP device, wherein the unverified VoIP device becomes verified if the telephone numbers match the telephone number provided by the VoIP device.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is related to U.S. application Ser. No. 11/618,739, entitled “Determining Pairings of Telephone Numbers and IP Addresses from Caching and Peer-to-Peer Lookup,” Attorney Docket No. ARC-163, and U.S. application Ser. No. 11/618,740, entitled “Regional Service by Phone,” Attorney Docket No. ARC-164, which are commonly assigned and incorporated herein by reference. 
     
    
     FIELD OF INVENTION 
       [0002]    This invention relates to a method for verifying telephone numbers of a device. 
       DESCRIPTION OF RELATED ART 
       [0003]    Some Voice over Internet Protocol (VoIP) systems uses IP addresses to identify and locate VoIP clients. Some VoIP systems use global telephone numbers to identify and locate VoIP clients but this requires the VoIP system to be connected to a public switched telephone network (PSTN) to verify the global telephone numbers provided by the VoIP clients. When a VoIP system is not connected to the PSTN but still wishes to identify VoIP clients by global telephone numbers, it needs a method to verify the global telephone numbers provided by the VoIP clients. There are two conventional methods to verify the PSTN telephone number. 
         [0004]    In a first method, the service provider establishes a toll free number and a server computer to verify a global telephone number provided by a VoIP client. The VoIP client calls the toll-free number and caller ID (CID) is used to verify the calling number against the number provided by the VoIP client. While this method can verify the global telephone number provided by the VoIP client, it is costly for the service provider to establish such a toll free number and it may be costly to the VoIP client when it is located outside the calling region of the toll free number. 
         [0005]    In a second method, a VoIP client that needs to be verified calls another VoIP client that has already been verified. The verified VoIP client uses its CID to verify the telephone number of the unverified VoIP client and to inform the server computer of the service provider. While this can save the telephone cost, security can be compromised if the unverified VoIP client and the verified VoIP client conspire to circumvent the system. 
       SUMMARY 
       [0006]    In one embodiment of the invention, a method for an authentication server to verify Voice over Internet Protocol (VoIP) devices includes the authentication server receiving a request from an unverified VoIP device to verify its identity over a computer network, searching for verified VoIP devices that have verified identities and caller ID service, and providing the telephone numbers of the verified VoIP devices to the unverified VoIP device, wherein the unverified VoIP device calls the verified VoIP devices and the verified VoIP devices detect telephone numbers of the unverified VoIP device from the caller ID service. The method further includes the authentication server receiving the detected telephone numbers from the verified VoIP devices and determining if the detected telephone numbers match a telephone number provided by the unverified VoIP device, wherein the unverified VoIP device becomes verified if the telephone numbers match the telephone number provided by the VoIP device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  illustrates a system for verifying the identity of a device using its telephone number in one embodiment of the invention. 
           [0008]      FIGS. 2A and 2B  are a flowchart of a method for the system of  FIG. 1  to verify the identity of a device using its telephone number in one embodiment of the invention. 
       
    
    
       [0009]    Use of the same reference numbers in different figures indicates similar or identical elements. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0010]      FIG. 1  illustrates a system  100  that verifies a global telephone number provided by a device in one embodiment of the invention. System  100  includes an authentication server computer A in a region A, a VoIP client device A 0  in region A that needs to verify its global telephone number with an authentication server, and VoIP client devices A 1 , A 2  . . . Am, and An in region A that already have their global telephone numbers verified with authentication server A. Note that a region can be geographic (e.g., a city, a regional area, a state, or a country) or based on telephone service (e.g., a local toll-free area or a local toll area). Authentication server A and VoIP clients A 0 , A 1 , A 2  . . . Am, and An are connected to a computer network  102  (e.g., an IP network such as the Internet). VoIP clients A 0 , A 2 , and An are also connected to a public switched telephone network (PSTN)  104  either directly through a circuit switched channel (e.g., a landline) or indirectly through a packet switched channel (e.g., a VoIP line over computer network  102 ). 
         [0011]    System  100  further includes an authentication server computer B in a region B and VoIP client devices B 1 , B 2  . . . Bm, and Bn in region B that are similarly constructed as the devices in region A. Although not shown, VoIP clients B 2  and Bn are connected to the PSTN. In one embodiment, VoIP clients A 0 , A 1 , A 2  . . . Am, An, B 1 , B 2  are VoIP client devices similar to those described in U.S. application Ser. No. 11/618,740, entitled “Regional Service by Phone,” Attorney Docket No. ARC-P164, which is commonly assigned and incorporated herein by reference. 
         [0012]      FIGS. 2A and 2B  illustrate a method  200  for system  100  to verify the global telephone number provided by VoIP client A 0  ( FIG. 1 ) in one embodiment of the invention. 
         [0013]    In step  202  ( FIG. 2A ), VoIP client A 0  finds an authentication server to verify its global telephone number. In one embodiment, VoIP client A 0  finds an authentication server that is located in the same region as itself (e.g., authentication server A in region A). To do this, VoIP client A 0  joins a peer-to-peer (P2P) network of similar devices over computer network  102 , joins a subgroup in the PSP network that is based on its geographic location, and searches for an authentication server in the subgroup. For more information related to joining P2P network and subgroup, please refer to U.S. application Ser. No. 11/618,739, entitled “Determining Pairings of Telephone Numbers and IP Addresses from Caching and Peer-to-Peer Lookup,” Attorney Docket No. ARC-P163, which is commonly assigned and incorporated herein by reference. Authentication server A can be a dedicated device or a peer device selected from the subgroup. 
         [0014]    In another embodiment, VoIP client A 0  finds an authentication server that serves multiple regions. To do this, VoIP client A 0  finds the authentication server through a known website on compute network  102 . For demonstrating this method, assume that authentication server A serves multiple regions including region A where VoIP client A 0  is located. 
         [0015]    In step  204 , VoIP client A 0  sends a request to verify its global telephone number to authentication server A over computer network  102 . In the request, VoIP client A 0  includes its global telephone number. 
         [0016]    In step  206 , authentication server A selects verified VoIP clients with CID service that will be used to verify VoIP client A 0 . Note that at the very beginning of implementing system  100 , authentication server A has to designate a number of verified VoIP clients until there are enough VoIP clients verified through method  200 . 
         [0017]    If authentication server A serves only one region, then it assumes VoIP client A 0  is located in the same region as itself. If authentication server A serves multiple regions, it needs to first determine which region VoIP client A 0  is located in. Authentication server A determines the region based on the IP address of VoIP client A 0  in the IP packet of the authentication request. Alternatively, authentication server A determines the region of VoIP client A 0  based on its purported global telephone number. 
         [0018]    There are two methods for authentication server A to select the verified devices. In the first method, authentication server A randomly selects a number of verified VoIP clients located in region A from a list of VoIP clients that have previously verified their global telephone numbers with authentication server A. For example, authentication server A selects devices A 2  and An in region A. 
         [0019]    The first method is able to authenticate a VoIP client A 0  that does not have the ability to call outside of its region. However, the security level is low since it is easier for VoIP client A 0  to conspire with verified VoIP clients within the same region to circumvent the authentication. This is especially true when there are few verified VoIP clients in a region because it becomes easier for VoIP client A 0  to control the client verified devices and the selection of the verified VoIP clients is less random. 
         [0020]    In the second method, authentication server A randomly selects a number of verified VoIP clients in a larger region (e.g., consisting of multiple smaller regions). For example, authentication server A selects verified VoIP clients A 2  and An in region A, and verified VoIP clients B 2  and Bn in nearby region B. 
         [0021]    There are several ways for authentication server A to randomly select verified VoIP clients in other regions. First, there may be a central server that all the authentication servers communicate with to receive information about verified VoIP clients in the other regions. Second, the authentication servers can form a server group that selects a node in the group that acts as the central server. Third, the VoIP clients in all the regions can form a client group that selects a node in the group that acts as the central server. Authentication server A requests the central server, the server group, or the client group for a list of verified VoIP clients in the different regions or a list of randomly selected verified VoIP clients in the different regions. 
         [0022]    By using verified VoIP clients in a larger area, it is harder for VoIP client A 0  to conspire with verified VoIP clients to circumvent the authentication. However, this method cannot be used to authenticate a VoIP client A 0  that cannot dial outside of its region (e.g., a VoIP client A 0  that only has local telephone service and cannot call long distance so it cannot reach VoIP clients in other regions). 
         [0023]    In step  208 , authentication server A selects one of the verified VoIP clients found in step  206  (e.g., device A 2 ). 
         [0024]    In step  210 , authentication server A checks the phone line status of the verified VoIP client. Authentication server A does this by requesting and receiving the phone line status of the verified VoIP client over computer network  102 . 
         [0025]    In step  212 , authentication server A determines if the phone line of the verified VoIP client is idle. If not, then step  212  is followed by step  214 . If the phone line of the verified VoIP client is idle, then step  212  is followed by step  216 . 
         [0026]    In step  214 , authentication server A can allow VoIP client A 0  to wait for the verified VoIP client to become available, select another verified VoIP client from step  206 , or search for a new verified VoIP client in step  206 . Step  214  is followed by step  210 . 
         [0027]    In step  216 , authentication server A instructs the verified VoIP client to prepare to authenticate VoIP client A 0  at an agreed upon time over computer network  102 . 
         [0028]    In step  218 , the verified VoIP client temporarily disables its service to its local user, and prepares to receive a call from VoIP client A 0  at the agreed upon time. Specifically, the verified VoIP client removes the hook and ring so its local user cannot dial out. 
         [0029]    In step  220 , authentication server A informs VoIP client A 0  the telephone number of the verified VoIP client over computer network  102 . 
         [0030]    In step  222  ( FIG. 2B ), VoIP client A 0  disables it service to its local user and calls the selected verified device at the agreed upon time. Specifically, VoIP client A 0  removes the hook and ring so its local user cannot dial out. 
         [0031]    In step  224 , VoIP client A 0  calls the verified VoIP client either directly or indirectly through PSTN  104 . In response, the verified VoIP client determines the telephone number of VoIP client A 0  using its CID service. 
         [0032]    In step  226 , the verified VoIP client sends the telephone number of VoIP client A 0  to authentication server A over computer network  102 . 
         [0033]    In step  228 , authentication sever A informs VoIP client A 0  and the verified VoIP client that the authentication process is finished and that they can enable services to their local users. 
         [0034]    In step  230 , authentication server A determines if all the verified VoIP clients found in step  206  have been used to authenticate VoIP client A 0 . If so, then step  230  is followed by step  232 . Otherwise step  230  loops back to step  208 . 
         [0035]    In step  232 , authentication server A compares the telephone numbers of VoIP client A 0  it received from the verified VoIP clients found in step  206 . 
         [0036]    In step  234 , authentication server A determines if the telephone numbers match. If not, then step  234  is followed by step  236  where authentication server A determines that the global telephone number of VoIP client A 0  is not verified and sending a message over computer network  102  to VoIP client A 0  that its telephone has not been verified. If all or a majority of the telephone numbers match, then step  234  is followed by step  238  where authentication server A determines that the global telephone number of VoIP client A 0  has been authenticated and sending a message over computer network  102  to VoIP client A 0  that its telephone has been verified. 
         [0037]    In one embodiment, a device such as a TV set-top boxes or a portable media player can be integrated with device A 0 , connected by network or USB to device A 0 . The device then can be identified by the global telephone number of device A 0 . 
         [0038]    Various other adaptations and combinations of features of the embodiments disclosed are within the scope of the invention. Numerous embodiments are encompassed by the following claims.