Patent ID: 8644297

Claim:
A communicating device for peer to peer communication, comprising: a controller; a Foreign Exchange Station (FXS) coupled to said controller to provide communication; a Foreign Exchange Office (FXO) coupled to said controller to connect to a Public Switch Telephone Network (PSTN) or an Integrated Service Digital Network (ISDN); an Ethernet port or a broadband interface coupled to said controller to connect to internet; a signal transmitting module coupled to said controller; a data structure stored in a memory of said communicating device coupled to said controller to store information relating to incoming calls and outgoing calls, wherein said communicating device is a device for dialing said outgoing calls and receiving said incoming calls, and said information relating to said incoming calls and said outgoing calls stored in said data structure are references by which said controller determines if a new incoming call or a new outgoing call exists in said data structure, said data structure comprises: a phone number column used to record the phone number of said incoming calls and the phone number of said outgoing calls, wherein said references are recorded in the phone number column, an Internet Protocol (IP) address column used to record said communicating device's IP address of said incoming calls, an outgoing column to record how many times a phone number has been dialed, an incoming column to record how many times a phone number stored in the data structure has been received, a communication time column to record the newest communication time between said communicating device and a communicating device of said incoming or outgoing calls; and wherein, if volume of said data structure reaches a capacity limit, said controller sorts said outgoing column, said incoming column and said communication time column in order of usage frequency to select the data stored in said data structure, if said controller determines that said phone number of said new outgoing call exists in the phone number column, then said controller finds the corresponding IP address by comparing the phone number of the new outgoing call and the phone number recorded in the phone number column, said IP address recorded in the IP address column corresponding to the phone number is used to establish a peer to peer connection without using call transfer services or call access services provided by service providers, and if said controller determines that said phone number of said new outgoing call does not exist in the phone number column, then said controller establishes a connection using said call transfer services or said call access services provided by said service providers.