Method and System for Providing Voice Communication Over Data Networks
A method and system are disclosed in which an Internet subscriber can establish real-time voice conversations over the Internet. By performing a call negotiation scheme to identify and locate the other calling party, an Internet telephone can establish a voice communication channel over the Internet to a telephony or computer device.
Latest Cisco Technology, Inc. Patents:
The application is a continuation of U.S. application Ser. No. 09/543,381 filed Apr. 5, 2000 and entitled “Method and System for providing Voice Communication Over Data Networks” and claims priority to U.S. Application Ser. No. 60/161,168, filed on Oct. 22, 1999 and 60/166,085, filed on Nov. 17, 1999, the entire contents of which are incorporated herein by reference.
TECHNICAL FIELD OF THE INVENTIONThe invention relates to a system and method for providing voice communication to subscribers over data networks.
BACKGROUND OF THE INVENTIONNetworks carry three types of information: voice, video, and data. Historically, these different forms of information have been transported over different networks. Specifically, the telephone network delivered voice information; private corporate networks delivered data information; and broadcast networks delivered video information. Each service was provided by a specific form of infrastructure—the telephone network used copper wires to reach subscribers, broadcast television used the airwaves, cable television used coaxial cable, and so forth.
With advances in technology, the different forms of information can now be carried by any delivery platform. For example, telephony services (i.e., voice and facsimile) can be transported over data networks, such as the Internet.
“Internet telephony” refers to the transfer of voice information using the Internet protocol (IP) of the TCP/IP or UDP/IP protocol suite. Internet telephony uses the Internet to simulate a telephone connection between two Internet users and to bypass the local exchange carriers' and inter-exchange carrier's telephone networks. Internet telephony works by converting voices into data which can be compressed and split into packets. These data packets are sent over the Internet like any other packets and reassembled as audio output at the receiving end. The ubiquitous nature of the Internet allows a user to complete such Internet telephone connections to many countries around the world. Accordingly, by using the Internet to provide telephony services, the user can avoid paying per-minute toll charges assessed by the user's local exchange carrier and/or inter-exchange carrier. Rather, the user is subject to only his or her local Internet connection fees. The result may be considerable savings when compared to international telephone rates.
In addition, the Internet utilizes “dynamic routing,” wherein data packets are routed using the best routing available for a packet at a particular moment in time, given the current traffic patterns. This system allows many different communications to be routed simultaneously over the same transmission facilities. In contrast, a circuit-switched telephone network, such as the public switched telephone network (PSTN), establishes dedicated, end-to-end transmission paths.
Consequently, the Internet allows network resources to be used more efficiently.
Most existing dial-up systems require both parties to be connected to the Internet through a multimedia personal computer to establish an Internet telephone call. As shown in
The typical multimedia personal computer system used for Internet telephony includes a personal computer, a monitor, an analog-voice-to-digital-signal and digital-signal-to-analog-voice converter (converter), Internet telephone software, a full-duplex sound card, a microphone, speakers, and a 28 Kbps or higher rate modulation/demodulation (modem) device. As such, the multimedia personal computer system includes several components or devices and is not easily portable, which may be undesirable for traveling business people. Further, such a personal computer system may be expensive to set up and maintain.
Accordingly, it would be desirable to provide a method and system for voice communication over a data network that addresses the drawbacks of known systems.
SUMMARY OF THE INVENTIONThe present invention relates to a method and system for providing voice communication over data networks. The system according to the present invention allows subscribers using Internet telephones to conduct real-time voice conversations over a data network and/or over a circuit switched network.
In accordance with one aspect of the present invention, a method for establishing voice communication between a first and a second station over a data network includes the steps of receiving a data network address for the first station at a second station via a first communication channel, disconnecting the first station and the second station from that first communication channel, and establishing a second communication channel between the first and the second stations whereby the station users can conduct voice communication over the data network. The second communication channel is established by using the data network address received at the second station.
In accordance with an additional aspect of the present invention, a device for initiating voice communication with a second device includes a storage medium having a plurality of programming modules and a single activation means for causing the device to establish a communication channel over a data network. When the single activation means has not been activated, the communication channel between the devices is established over a circuit switched network. The single activation means may include, but is not limited to, a programmable button, a movable switch, voice activation, or movement sensor activation.
In accordance with a further aspect of the invention, a device for establishing voice communication with a second device includes a compatibility module, for determining whether the second device can support voice communication over a data network, and a call initialization module. If the second device supports voice communication over a data network, the call initialization module automatically transmits a command which causes a communication channel to be established between the Internet telephonic device and the second device over a data network.
In accordance with yet another aspect of the invention, a network server located on a data network includes a storage medium having a plurality of programming modules and a channel establishment module. One programming module, the registration module, registers a code and a data network address into a memory in response to receiving a register command signal. The code uniquely identifies a calling station connected to the data network. A second programming module, the address query module, causes a search for the code to be performed on the memory in response to receiving a search command signal. A third programming module, the address mapping module, identifies the data network address based on the search results.
The present invention provides advantages of establishing real-time voice communication channels over the Internet, and thereby avoid paying per-minute toll charges assessed by local or inter-exchange telephone carriers. In addition, the present invention enables a user to conduct voice conversations over the Internet without having to purchase and assemble the many components and devices required in a multimedia personal computer system.
BRIEF DESCRIPTION OF THE DRAWINGSThe invention will now be described in greater detail with reference to the preferred embodiments illustrated in the accompanying drawings, in which like elements bear like reference numerals, and wherein:
As shown in
For example, the subscriber may choose to make a traditional telephone call, wherein the Internet telephones 16, 18 are linked and the call routed via a PSTN 14 through the COs 20, 22. Alternatively, the subscriber may cause the Internet telephone 16, 18 to place the telephone call over the Internet 12 by accessing the ISP 28, 30 via the LAN 24, 26 or by using a dial-up modem to access the ISP, routing through the CO 20, 22.
With standard telephony, each conventional telephone unit has a unique and fixed telephone number by which other callers can signal that telephone unit. In contrast, on the Internet a connected user is assigned a unique but temporary Internet address (IP address)—assigned only for a specific dial-up session. Similar to a telephone number, the IP address identifies the destination point, or the point on the entire data network to which the data is being sent. Accordingly, a second user can locate that first user during a specific dial-up session by identifying the first user's IP address.
However, after that dial-up session terminates, the IP address is re-assigned to another user for a different dial-up session. Since the IP address assigned to a connected subscriber changes for each dial-up session, it is necessary for the Internet telephones to quickly and efficiently identify the other's temporary IP address for each Internet call. The process of transmitting, registering, and identifying the Internet addresses of each Internet telephone is referred to as a “call negotiation scheme.”
As discussed above, in order for the Internet telephones 16, 18 to communicate with one another over the Internet 12, a call negotiation scheme is required. Although either Internet telephone can initiate or receive an Internet telephone call, for illustrative purposes only, it will be assumed that the subscriber using the Internet telephone 16 will be the initiating caller, and the subscriber using the Internet telephone 18 will be the receiving party. Moreover, for illustrative purposes only, it will be assumed that the subscribers use dial-up modems to connect to the COs and then access the ISPs.
With reference to
More specifically and as illustrated in
A valid identification code is required to place or receive telephone calls over the Internet 12 using that Internet telephone. Further, the database 52 may also contain such information as the Internet call features available to a subscriber. Moreover, another database, which can link to the network server 36, maintains subscriber information based on the identification code, such as region of sale, date of sale, and other data.
As shown in
In operation, an IP address is assigned to the connected subscriber for a particular dial-up session by the ISP. The IP address is sent to the Internet telephone 16, whereupon the Internet telephone 16 sends the IP address and identification code to the authentication module 54 of the network server 36. The authentication module 54 verifies whether the identification code is valid. Upon proper validation, the address/code registration module 56 responds by registering the IP address in the database 52 of the memory unit 40. In one embodiment of the invention, the address/code registration module 56 receives a register command signal to register the IP address in the memory unit 40.
Thus, when a search of the database 52 is performed using the transmitted identification code, the IP address query module 58 receives a search command signal and causes the address mapping module 60 to identify the IP address assigned to a subscriber. Next the channel establishment module 62 establishes a communication channel between the first Internet telephone 16 and the second Internet telephone 18. Then by periodically signaling the network server 36 to indicate the connection status of the Internet telephones 16, 18 and by updating the IP addresses stored in the database 52 for each connected Internet telephone 16, 18, a dynamic and accurate picture of the Internet telephone environment is continuously maintained. As such, an Internet telephone querying the network server 36 can determine whether a voice communication link or channel can be established with a particular subscriber using Internet facilities.
According to an alternative embodiment of the call negotiation scheme, illustrated in
In an alternative manner of voice communication, illustrated in
In yet a further alternative call negotiation scheme, with reference to
The user interface 76 allows a user to interact with the Internet telephone 16. The user interface 76 includes, among other features, a keypad 88 for dialing numbers or activating certain call functions and an audible indicator for indicating operating characteristics and/or instructions, such as new telephone messages, the call status, or selectable options from a telephonic voice menu, including available call features. The user interface 76 may also include a visual display 90 for displaying such operating characteristics. In one embodiment, the Internet telephone 16 has a single means for activating a call function. For example, by depressing a programmable button 92 or moving a switch, the Internet telephone 16 can perform a call negotiation scheme, as discussed above, or perform a diagnostic test to verify Internet connectivity, or perform a diagnostic test to troubleshoot voice quality-of-service problems, or activate the telephonic voice menu. Although the Internet telephone 16 is shown as having single button activation 92 of call functions, it will be understood that the Internet telephone may also use voice or video activation. Similarly, the language spoken in voice menu can be translated to another desired language by using a single activation means.
The voice interface 78, in accordance with conventional practice, is a speaker or microphone located on the telephone handset 94 and/or base 96. Speech signals from the microphone 78 are transmitted to a converter 80 that provides the conversion of analog voice into digital signals. Specifically, the analog voice is digitized, by means commonly known in the field, and the digital data are transmitted to a digital signal processor unit (DSP unit) 82 which provides call processing and voice processing.
The DSP unit 82 and associated logic are supported by voice processing software and a memory unit 84, described in greater detail below. The DSP unit 82 includes a digital signal processor and other control processing units. The DSP unit 82 performs call signaling and control, voice compression and decompression, and packetization and depacketization functions.
The memory unit 84 includes programmable and dynamic memory, such as electrically erasable programmable read-only memory (EEPROM) and dynamic random access memory (DRAM) devices. The memory unit 84 stores the call negotiation algorithms (described in greater detail below) which the DSP 82 follows, as well as provides temporary storage of incoming data not yet processed by the DSP. In addition, the identification code, as described above, is stored in the memory unit 84.
As illustrated in
The network interface 86 allows transmission and reception of voice packets to and from the Internet telephone 16. For example, the Internet telephone 16 has telephone and/or LAN connectivity. Although the Internet telephone 16 is shown in
Additionally, while the Internet telephone 16 in
The block 205 indicates that a communication channel is established between the first and second Internet telephones 16, 18, wherein the communication channel typically uses a circuit-switched telephone network 14. Specifically, the call initialization module 100 of the first Internet telephone 16 places a call to the second Internet telephone 18 via the PSTN 14. The call response module 102 can then determine whether a connection has been established between the parties. This step also serves as confirmation to the first subscriber that the second subscriber is available to establish voice communication over the Internet 12.
At decision block 210, it is determined whether the Internet telephones 16, 18 can support an Internet telephone call. In one embodiment of the invention, the Internet telephone compatibility module 104 will make this determination if it detects the other station's capability to do so. For example, the Internet telephone compatibility module 104 can detect the other station's capability to support Internet telephony by signaling the destination station (using a signal generator) and then receiving an appropriate response signal, or acknowledgement (using a signal detector). It will be understood that the determination of whether the stations can support Internet telephony can be performed through dual tone multi-frequency (DTMF) signaling.
If the answer to decision block 210 is no, then the process moves to block 215 wherein the subscriber is made aware that the communication channel must route over a circuit switched telephone network 14 since the other station cannot support Internet telephone calls. Otherwise, the process moves to block 220 where the code transmission/receipt module 108 of the first Internet telephone 16 transmits a code, such as its identification code, which uniquely identifies that first station. For example, the subscriber may depress the programmable button 92 to trigger the code transmission/receipt module 108 to transmit the code.
Next at block 225, the second Internet telephone 18 receives the code and stores it into the memory unit 40. Having stored the code, the process proceeds to block 230. Here, the Internet telephones 16, 18 disconnect the communication channel (i.e., disconnect the voice link connecting the Internet telephones to the PSTN) and attempt to connect to their respective ISP 28, 30, for example, using the call initialization modules 100.
At decision block 235, it is determined whether or not the Internet telephones 16, 18 have successfully connected to their respective ISP 28, 30. If so, the process proceeds to block 240 where the Internet telephones 16, 18 are assigned IP addresses by their ISPs 28, 30. The assigned IP addresses are then stored in the memory unit 40. Otherwise, the process moves to decision block 245, wherein it is decided whether or not to re-attempt connecting to the ISP since, due to incorrect “userid” or password or other reasons, the ISP was unavailable. The non-connected Internet telephone(s) will make a predetermined number of attempts to connect to the ISP, the process looping back to decision block 235 for each attempt. If a connection is not successfully established after making the predetermined number of attempts, the Internet telephone indicates the failure to the subscriber (block 250).
Having failed to successfully establish connections to the ISPs 28, 30, the Internet telephones 16, 18 can be programmed to then automatically establish a voice telephone call based on predetermined criteria. For example, a subscriber may have programmed a prioritized list of telephony service providers, such as AT&T, MCI, or 10-10-xxx dial-around services, into the memory unit 40 based upon quality-of-service and/or cost preferences. Accordingly, based on the prioritized list, the network selection module 106 of the first Internet telephone 16 will automatically select the telephone carrier listed as “highest priority” and establish a voice call over that carrier's facilities. But if such carrier facilities are unavailable, the Internet telephone 16 will select the next listed telephone carrier to establish the voice call.
At block 255, the IP address assigned to the connected Internet telephone 16 by the ISP 28, as well as the corresponding code, are sent by the IP address transmission/receipt module 110 to the authentication module 54 of the network server 36. Upon proper validation of the code, the address/code registration module 56 responds by registering the IP address and code in the database 52 maintained by the network server 36.
Next at block 260, a search request signal from the second Internet telephone 18 is received by the network server 36. The network server 36 responds to the search request signal by transmitting a search command to the address mapping module 60, wherein the database 52 is searched for the code transmitted by the first Internet telephone 16 at block 220. By searching the database 52 using the first Internet telephone's code, the IP address can be identified so that the second Internet telephone 18 can transmit call setup signals to establish an Internet telephony link.
In an alternative embodiment, the EP addresses assigned to both connected Internet telephones 16, 18, as well as their corresponding codes, are sent to the authentication module 54, wherein the mapping function can be performed for both Internet telephones.
At decision block 265, it is determined whether or not the search is successful. If the answer to this determination is no, then the process moves to decision block 270 where it is decided whether or not to re-attempt searching the database 52. A predetermined number of search attempts will be made on the database 52, the process looping back each time to decision block 265. If a search is not successful after making the predetermined number of attempts, the Internet telephone 18 indicates the failure to the subscriber (block 250).
If the answer to the determination at decision block 265 is yes, the process proceeds to decision block 275. Here, the second Internet telephone 18 has transmitted call setup signals to establish an Internet telephony link. However, it must be determined whether the channel establishment module 62 has successfully established such link. If so, the process moves to block 280 where the first and second Internet telephones 16, 18 can conduct real-time voice conversations over the Internet 12. Otherwise, the process moves to decision block 285 where it is decided whether or not to re-attempt establishing the Internet telephony link. A successful link will be attempted a predetermined number of times, the process looping back at each attempt to decision block 275. If such link is not established after the predetermined number of attempts, the Internet telephones 16, 18 indicate the failure to the subscribers (block 250). In one embodiment, having failed to successfully establish the Internet telephony link, the Internet telephones 16, 18 can be programmed to automatically select a telephony service provider based on a prioritized list. The network selection module 106 of the first Internet telephone 16 will then place a call using the telephone carrier listed as “highest priority.”
With reference to
The block 305 indicates that the first Internet telephone 16 establishes a communication channel with its associated ISP 28. Specifically, the call initialization module 100 of the first Internet telephone 16 accesses the ISP 28 by using a dial-up modem. The call response module 102 can then determine whether a connection has been established between the first Internet telephone 16 and ISP 28. After connecting to the ISP 28, the first Internet telephone 16 will place subsequently received telephone calls “on hold” so as not to interfere with the call negotiation process.
At block 310, the Internet telephone 16 is assigned an IP address. Next the process flows to block 315 where the code and IP address transmission/receipt modules 108, 110 send the IP address and the code for the Internet telephone 16 to the authentication module 54 of the network sever 36. Upon proper validation of the code, the address/code registration module 56 responds by registering the IP address and code in the database 52. The database 52 provides the mapping of the code to the corresponding IP address. The first Internet telephone 16 remains connected to the ISP 28 while waiting for the second Internet telephone 18 to establish an Internet telephony link. As discussed above, by pre-arranging the call time, the subscriber of the first Internet telephone 16 can minimize the time spent waiting for the second Internet telephone 18 to locate and then establish this communication link.
Next at block 320, the second Internet telephone 18 connects to its associated ISP 30. Here it is assumed that the subscriber of the second Internet telephone 18 has prior knowledge of the code for the first Internet telephone 16. Thus, the subscriber can dial the code via the user interface 52, causing the second Internet telephone 18 to transmit a search request signal to the network server 36. Responsive to receipt of the subscriber's transmission of the search request signal, the network server 36 transmits a search command to the address mapping module 60, wherein the database 52 is searched for the first Internet telephone code (block 325).
At decision block 330, it is determined whether the database search was successful. By successfully searching the database 52 using the code, the IP address of the first Internet telephone 16 can be identified. However, if the search was not successful, the process moves to decision block 335. Here it is decided whether or not to re-attempt searching the database 38. The search will be performed a predetermined number of times when prior search attempts were unsuccessful, the process looping back at each attempt to decision block 330. If such search is unsuccessful after making the predetermined number of attempts, the second Internet telephone 18 indicates the failure to the subscriber (block 340).
If the answer to the determination at decision block 330 is yes, the process flows to decision block 345, wherein the second Internet telephone 18 has transmitted a call setup signal to establish the Internet telephony link. However, it must be determined whether the channel establishment module 62 has successfully established such Internet telephony link. If so, the process moves to block 350 wherein the first and second Internet telephones 16, 18 are connected through the ISPs 28, 30, and the first and second subscribers can conduct real-time voice conversations over the Internet 12. Otherwise, the process moves to decision block 355 where it is decided whether or not to re-attempt establishing the Internet telephony channel.
A successful Internet telephony link will be attempted a predetermined number of times, the process looping back at each attempt to decision block 345. If such link is not established after the predetermined number of attempts, the Internet telephones 16, 18 indicate the failure to the subscribers (block 340). Substantially similar to the call negotiation scheme of
With reference to
The block 405 indicates that a subscriber will decide whether to establish a communication channel between the Internet telephone 16 and the destination telephone 64 over the Internet 12 or using the PSTN 14. If the subscriber decides to use the PSTN 14, then at block 415, the Internet and conventional telephones 16, 64 are linked and the call routed via the PSTN through the COs 20, 70, as indicated by dotted lines 32. Otherwise, the process moves to block 420, wherein a communication channel is established between the Internet telephone 16 and its associated ISP 28, as indicated by solid lines.
Next at block 425, the code transmit/receipt module 108 of the Internet telephone 16 transmits a code, such as the telephone number, which uniquely identifies the destination telephone 64. At block 430, the Internet telephone 16 connects with the gatekeeper 66, wherein the gatekeeper stores the destination telephone number into its database 116. Based on the code, at block 435 the gatekeeper 66 will determine the appropriate routing to the gateway 68 serving the destination telephone 36. Accordingly, a communication path is established between the Internet telephone 16 and the destination telephone 64 whereby the communication path routes over the Internet 12 to the appropriate gateway 68 (block 440). Then the communication path connects via the PSTN 14 to the CO 70 serving said destination telephone. By using this communication path, the Internet telephone 16 and the destination telephone 70 can conduct real-time voice conversations over the Internet 12 (block 445).
With reference to
The block 505 indicates that a communication channel is established between the first Internet telephone and its associated ISP 28. Specifically, the call initialization module 100 of the first Internet telephone 16 accesses the ISP 28 by using a dial-up modem. The call response module 102 can then determine whether a connection has been established between the first Internet telephone 16 and the ISP 28. After connecting to the ISP 28, the first Internet telephone 16 will place subsequently received telephone calls “on hold” so as not to interfere with the call negotiation process.
At block 510, the ISP 28 assigns the first Internet telephone 16 an IP address which is sent to the first Internet telephone 16 and stored by the IP address transmission/receipt module 110. Next the process flows to block 515 where the first Internet telephone 16 establishes a connection with the second Internet telephone 18. Substantially similar to the call negotiation scheme of
At decision block 520, it is determined whether the stations can support an Internet telephone call. Substantially similar to the call negotiation scheme of
If the answer to decision block 520 is no, then the process moves to block 525 wherein the subscriber is made aware that the communication channel must route over a circuit switched telephone network 14 since the other station cannot support Internet telephone calls. Otherwise, the process moves to block 530 where the code transmission/receipt module 108 of the first Internet telephone 16 transmits a code, such as its IP address, to the second Internet telephone 18.
Next at block 535, the second Internet telephone 18 stores the code in the memory unit 84. The code transmission/receipt module 108 of the second Internet telephone 18 then transmits an acknowledgement signal back to the first Internet telephone 16. In one embodiment of the invention, the acknowledgement signal is transmitted back to the Internet telephone 16 without having to take the second Internet telephone 18 off-hook, thereby the first subscriber can avoid incurring the telephone charges associated with placing that call. For example, the Internet telephone can identify the call as being initiated from another Internet telephone by busing out-of-band signaling, such as SS7 signaling.
In response to receipt of the acknowledgement signal, at block 540, the first Internet telephone 16 sends call setup signals to establish the Internet telephony link. For example, the network selection module 106 transmits the call setup signals, wherein the Internet 12 is selected to establish a communication channel between the first and second Internet telephones 16, 18.
However, it must be determined whether such link has been successfully established (decision block 545). If so, the process moves to block 550 where the first and second Internet telephones 16, 18 can conduct real-time voice conversations over the Internet 12.
Otherwise, the process moves to decision block 555, wherein it is decided whether or not to re-attempt establishing the Internet telephony link. A successful link will be attempted a predetermined number of times, the process looping back at each attempt to decision block 545. If such link is not established after the predetermined number of attempts, the Internet telephones 16, 18 indicate the failure to the subscribers (block 560). In one embodiment, having failed to successfully establish the Internet telephony link, the Internet telephones 16, 18 can be programmed to automatically select a telephony service provider based on a prioritized list and then establish a voice telephone call. Substantially similar to the call negotiation schemes of
The present invention concerns a method and communication system for providing voice communication over the Internet. It is within the scope of the present invention that the call negotiation schemes of
Claims
1. (canceled)
2. (canceled)
3. (canceled)
4. (canceled)
5. (canceled)
6. (canceled)
7. (canceled)
8. (canceled)
9. (canceled)
10. (canceled)
11. (canceled)
12. (canceled)
13. (canceled)
14. (canceled)
15. (canceled)
16. (canceled)
17. (canceled)
18. (canceled)
19. (canceled)
20. (canceled)
21. (canceled)
22. (canceled)
23. (canceled)
24. (canceled)
25. (canceled)
26. (canceled)
27. (canceled)
28. (canceled)
29. (canceled)
30. (canceled)
31. (canceled)
32. (canceled)
33. (canceled)
34. (canceled)
35. (canceled)
36. (canceled)
37. (canceled)
38. (canceled)
39. (canceled)
40. (canceled)
41. (canceled)
42. (canceled)
43. (canceled)
44. (canceled)
45. (canceled)
46. (canceled)
47. A method for communicating, comprising:
- receiving a network address and an identification code from a first station, wherein the network address is associated with the first station and the identification code uniquely identifies the first station;
- storing the network address and the identification code in a memory;
- receiving a search request from a second station, the search request identifying the identification code;
- in response to the search request, identifying the network address based, at least in part, on the identification code; and
- establishing a communication channel between the first station and the second station.
48. The method of claim 47, further comprising assigning the network address to the first station.
49. The method of claim 47, wherein the identification code comprises a telephone number.
50. The method of claim 47, wherein:
- receiving the network address and the identification code from the first station comprises receiving the network address and the identification code at a network server associated with a first network;
- storing the network address and the identification code comprises storing the network address and the identification code in a memory at the network server; and
- establishing the communication channel comprises establishing the communication channel between the first station and the second station over at least a portion of the first network.
51. The method of claim 47, wherein receiving the search request comprises:
- transmitting the identification code from the first station to the second station; and
- receiving the search request from the second station, wherein the search request identifies the identification code.
52. The method of claim 51, wherein transmitting the identification code from the first station to the second station comprises:
- establishing a communication channel between the first station and the second station over a second network; and
- transmitting the identification code from the first station to the second station over the communication channel established over the second network.
53. The method of claim 52, further comprising:
- determining whether the first station and the second station can support a communication channel for voice communication over the first network; and
- in response to determining that the first station and the second station can support a communication channel for voice communication over the first network, terminating the communication channel between the first station and the second station over the second network.
54. The method of claim 53, wherein determining whether the first station and the second station can support a communication channel for voice communication over the first network comprises:
- transmitting a signal from the first station to the second station; and
- determining based on a response received from the second station at the first station whether the first station and the second station can support a communication channel for voice communication over the first network.
55. A system for communication, comprising:
- a first station;
- a second station;
- a first network operable to communicate information; and
- a network server, operable to: receive a network address and an identification code from the first station, wherein the network address is associated with the first station and the identification code uniquely identifies the first station; store the network address and the identification code in a memory; receive a search request from the second station, the search request identifying the identification code; in response to the search request, identify the network address based, at least in part, on the identification code; communicate the network address to the second station; and establish a communication channel between the first station and the second station over the first network.
56. The system of claim 55, wherein the identification code comprises a telephone number.
57. The system of claim 55, wherein:
- the first station is operable to transmit the identification code to the second station; and
- the second station is operable to transmit the search request to the network server, wherein the search request identifies the identification code.
58. The system of claim 57, further comprising a second network, and wherein the first station is operable to transmit the identification code to the second station by:
- establishing a communication channel between the first station and the second station over a second network; and
- transmitting the identification code to the second station over the communication channel established over the second network.
59. The system of claim 58, wherein the first station is further operable to:
- determine whether the first station and the second station can support a communication channel for voice communication over the first network; and
- in response to determining that the first station and the second station can support a communication channel for voice communication over the first network, terminate the communication channel between the first station and the second station over the second network.
60. The system of claim 59, wherein the first station is further operable to determine whether the first station and the second station can support a communication channel for voice communication over the first network by:
- transmitting a signal to the second station; and
- determining, based on a response received from the second station, whether the first station and the second station can support a communication channel for voice communication over the first network.
61. A communication apparatus, comprising:
- an authentication module operable to receive a network address and an identification code from the first station, wherein the network address is associated with the first station and the identification code uniquely identifies the first station;
- an address/code registration module operable to store the network address and the identification code in a memory;
- an address query module operable to: receive a search request from the second station, the search request identifying the identification code; and in response to the search request, identify the network address based, at least in part, on the identification code; and
- a channel establishment module operable to establish a communication channel between the first station and the second station over the first network.
62. The communication apparatus of claim 61, wherein the identification code comprises a telephone number.
63. A system for communicating, comprising:
- means for receiving a network address and an identification code from a first station, wherein the network address is associated with the first station and the identification code uniquely identifies the first station;
- means for storing the network address and the identification code in a memory;
- means for receiving a search request from a second station, the search request identifying the identification code;
- means for identifying the network address based, at least in part, on the identification code in response to the search request; and
- means for establishing a communication channel between the first station and the second station.
64. A method for communicating, comprising:
- receiving an identification code from a first station, wherein the identification code uniquely identifies a second station that is coupled to a circuit-switched network;
- identifying a gateway associated with the second station, wherein the gateway couples the circuit-switched network to a packet-based network;
- determining a route to the identified gateway;
- establishing a first communication channel between the first station and the second station using the determined route, wherein the route traverses at least a portion of the packet-based network and at least a portion of the circuit-switched network;
- determining whether the second station supports packet-based communication; and
- in response to determining that the second station supports packet-based communication, establishing a second communication channel between the first station and the second station over the packet-based network.
65. The method of claim 64, wherein establishing the second communication channel comprises:
- establishing the second communication channel; and
- terminating the first communication channel.
66. The method of claim 64, further comprising assigning a network address to the first station.
67. The method of claim 64, wherein determining whether the second station supports packet-based communication comprises:
- transmitting a call setup signal from the first station to the second station over the packet-based network and the circuit-switched network;
- determining whether the second station supports packet-based communication based at least in part on whether the first station receives an acknowledgement signal from the second station.
68. The method of claim 67, wherein transmitting the call setup signal comprises transmitting an out-of-band signal.
69. The method of claim 68, wherein the out-of-band signals comprise Signaling System #7 (SS7) signals.
70. The method of claim 67, further comprising:
- receiving, at the second station, the call setup message; and
- transmitting, from the second station, an acknowledgement signal to the first station without the second station being taken off the hook.
71. A system for communicating, comprising:
- a first station;
- a second station;
- a circuit-switched network operable to communicate information in accordance with a circuit-switched communication protocol;
- a packet-based network operable to communicate information in accordance with a packet-based communication protocol; and
- a network server operable to: receive an identification code from the first station, wherein the identification code uniquely identifies a second station that is coupled to a circuit-switched network; identify a gateway associated with the second station, wherein the gateway couples the circuit-switched network to the packet-based network; determine a route to the identified gateway; and establish a first communication channel between the first station and the second station using the determined route, wherein the route traverses at least a portion of the packet-based network and at least a portion of the circuit-switched network, wherein the first station is further operable to:
- determine whether the second station supports packet-based communication; and
- in response to determining that the second station supports packet-based communication, establish a second communication channel between the first station and the second station over the packet-based network.
72. The system of claim 71, wherein the network server is operable to establish the second communication channel by:
- establishing the second communication channel; and
- terminating the first communication channel.
73. The system of claim 71, wherein the network server is operable to determine whether the second station supports packet-based communication by:
- transmitting a call setup signal from the first station to the second station over the packet-based network and the circuit-switched network;
- determining whether the second station supports packet-based communication based at least in part on whether the first station receives an acknowledgement signal from the second station.
74. The system of claim 73, wherein the first station is further operable to transmit the call setup signal by transmitting an out-of-band signal.
75. The system of claim 74, wherein the out-of-band signals comprise Signaling System #7 (SS7) signals.
76. The system of claim 73, wherein the second station is operable to:
- receive the call setup message; and
- transmit an acknowledgement signal to the first station without being taken off the hook.
77. A system for communicating, comprising:
- means for receiving an identification code from a first station, wherein the identification code uniquely identifies a second station that is coupled to a circuit-switched network;
- means for identifying a gateway associated with the second station, wherein the gateway couples the circuit-switched network to a packet-based network;
- means for determining a route to the identified gateway;
- means for establishing a first communication channel between the first station and the second station using the determined route, wherein the route traverses at least a portion of the packet-based network and at least a portion of the circuit-switched network;
- means for determining whether the second station supports packet-based communication; and
- means for establishing a second communication channel between the first station and the second station over the packet-based network in response to determining that the second station supports packet-based communication.
Type: Application
Filed: Aug 15, 2006
Publication Date: Jun 7, 2007
Applicant: Cisco Technology, Inc. (San Jose, CA)
Inventors: Michael Chen (San Jose, CA), Jan Fandrianto (Los Gatos, CA), Chun-Chau Lin (Cupertino, CA), Michael Sadikun (San Jose, CA), Budi Sutardja (Scotts Valley, CA), Ramah Sutardja (Cupertino, CA)
Application Number: 11/464,724
International Classification: H04M 1/00 (20060101); H04M 3/00 (20060101);