This invention relates to Internet telephony, and more specifically, to an improved technique of implementing telephone calls over the Internet. The technology is also applicable to downloading additional media to a client computer while the computer is engaged in a Voice over the Internet (VOIP) telephone calls with an Internet protocol private branch exchange (IP-PBX).
With the growth of the Internet in the mid-1990s, it became somewhat commonplace to utilize the Internet for completing telephone calls over long distances. These voice-over-the-Internet (VOIP) systems typically operate using a set of gateways for placing calls onto the Internet and taking them off of the Internet.
When telephone 107 desires to place a call to telephone 108, telephone 107 simply dials the number of telephone 108 as usual. PSTN 105 includes a series of switches that decode the called telephone number and direct the call to Internet gateway 102. Internet gateway 102 forms a virtual connection to Internet gateway 104 in accordance with known Internet protocols for call setup. Such protocols operate to provide, to Internet gateway 102, the IP address of Internet gateway 104 so that a connection can be established. Numerous such protocols are known in the art.
Once Internet gateway 104 receives the call, a PSTN connection over PSTN 106 is set up to call telephone 108. Thus, the completed call includes essentially three “legs”. The first leg is completed over PSTN 105, the second leg is completed over the Internet, and the third leg is completed over PSTN 106. By setting up the system so that the bulk of the call's distance is between gateways 102 and 104, long distance charges are avoided. For example, gateway 102 may be in New York and gateway 104 in Tokyo, Japan. The PSTNs 105 and 106 are typically used only for short distances across local telephone exchange.
The prior art also includes examples of calling devices such as IP phones, which operate using Internet protocol
One problem with such prior art systems is that the local PSTN telephone calls, while less expensive than the long distance call, still incurs a charge. Additionally, with more and more businesses and consumers having local VOIP capability directly on premises, the incoming PSTN call may actually be terminated at a VOIP capable device. Accordingly, the prior art systems are somewhat suboptimal in taking advantage of the benefits of the Internet for conveying voice calls.
The IP PBX 404 is also commercially available and is the digital, modern day equivalent of an analog PBX. The IP PBX 404 accepts VOIP calls from Internet 401 and can distribute those calls to VOIP devices 406-409 over company data network 410. The devices 106-109 may be IP phones, computers with voice capability, or similar devices.
A CT server 405 is attached to the network and includes different types of communication ports, to be discussed later herein. The CT server 405 is also capable of communicating with the client browser 402, the website server 403, and the IP PBX 404. A media server 415 is also depicted, which media server 415 may interact with the IP PBX 404, one of devices 406-409, and possibly the CT server 405 as explained below.
Turning to
As is known in the art, SIP is a protocol used for implementing voice calls over a data network, setting up and tearing down the calls, etc. It is noted that the protocols depicted in
Returning to
The client computer, upon selection of the CT-link by the user, may also transmit a telephone number or IP address associated with IP-PBX 404, or with an individual one of devices 406-409. If the format or address of the information necessary to reach the called device (e.g.; 407) needs translation, CT-server 405 may be programmed to accomplish that task, for example, by translating a telephone number to an IP address, or translating one address to another, or extracting portions of the transmitted data that are known to represent an address.
CT server 405 then initiates a SIP connection to an IP PBX 404 or other VOIP capable device over the Internet 401. The SIP protocol is implemented between CT server 405 and IP PBX 404 in order to arrange for a VOIP connection between the two. The IP PBX 404 then completes the call to the appropriate called device 406-409, using techniques well known in the art for completing such VOIP calls. The SIP or other protocol used between CT-Server 405 and the voice device 406-409 is more optimized for audio communications than is the HTTP or other protocol used between the client 402 and the CT-server 405. Regardless of the particular protocols used, the invention preferable operates such that the connection between CT-server 405, and the one or more voice devices 406-409 is more optimized for voice than the connection between ct-server 405 and the client computer 402.
The last substantive task of the CT server 405 is then to bridge the SIP connection to the HTTP connection, so that the browser to CT server connection will be bridged to the CT server to IP PBX connection, and a completed call path will exist between client 402 and one or more IP devices 406-409. This is accomplished by the control logic 310 shown in
During such conversation, the user of such VOIP device 407 for example, may desire to download additional media to the browser client 402. This could be the case for example, if it were desirable to have a media stream sent to the browser client during the conversation. Taking VOIP device 407 as an example, a user selects media to be downloaded via a conventional menu system, by entering it on a keyboard, touch select, or any other desired methodology.
Upon receipt of such command, a control signal is sent over Internet 401 from device 407 to media server 115. Media server 415 is shown separate in
The media server receives the control signal and retrieves certain desired media, such as a video or graphics file. The particular desired media may be retrieved by specifying it in the control signal, or by having the media server base such decision upon a prescribed relationship between the requesting device, the browser, etc., and the particular media. It may also be session specific, dependant upon the specific users, or the specific time, or any other parameter specific to the session. Once the media is retrieved, it may be transmitted to the client 402 using HTTP or other protocol, and either through the CT server 405, or directly to client 402, or via another intermediate computer. Preferably, such media transmission is simultaneous with an audio conversation between a user of device 407, for example, and a user of browser 402. Preferably, the media server may transmit graphics, video, or other media forms.
The browser is specially programmed to differentiate between HTTP data packets arriving from media server 415, and HTTP packets arriving from device 407. For the latter, such HTTP packets are treated as audio. A conceptual diagram of how the media server 415 would communicate with the client computer 402 while the client computer 402 also communicates with an exemplary IP device 407 is shown in
While the above describes the preferred embodiment of the present invention, various modifications and additions will be apparent to those of skill in the art. The protocols may be different, and the computers may be configured to share the functions described herein in a manner than allocates them differently among such computers. It is also possible that the browser display various click to talk links, each of which may invoke different variations of the invention and different embodiments from those described above. Therefore, the following claims are not intended to be limited to the exemplary embodiments described herein.