IMPROVED QUALITY OF SERVICE FOR INTERNET TELEPHONY
FIELD AND BACKGROUND OF THE INVENTION
The present invention relates to Internet telephony or other computer network-based telephony systems, and in particular, to providing a guaranteed level of service quality for such a telephony system.
Internet telephony is an example of a computer-network based telephony system. Unlike POTS (Plain Old Telephony System), such systems involve the transmission of vocal data according to a computer network protocol, such as the IP (Internet Protocol) protocol, in digital segments of data such as packets. These systems can be used to bypass POTS, such that long distance telephone calls can be placed for the price of a local telephone call to the local telephone service provider. In the case of gateway-to-gateway communication, long distance telephone calls can be placed without any telephone charge. In addition to transmission through the Internet, telephony systems based upon the IP protocol can also be implemented in substantially any type of computer network, such as a WAN (Wide Area Network) or a LAN (Local Area Network).
Unfortunately, one drawback of these computer network-based telephony systems is that the quality of service is not guaranteed. For example, if the digitized data is being transmitted according to the IP network protocol and a packet is dropped, the quality of service can be significantly degraded. The level of the quality of service is not guaranteed since such computer networks are not designed to guarantee timely transmission of every packet. Thus, if bandwidth through the computer network is scarce, for example for transmission through the Internet or even some WAN's at periods of peak usage, the quality of service can become significantly degraded such that the telephone conversation is no longer intelligible.
A private user could simply choose to place the telephone call at a different time, hoping for a higher quality of service. Corporate users, however, require immediate quality of service, and guaranteed efficacy of the telephony system. For such users, the lack of such a guaranteed level of service is not acceptable, even though such computer network-based telephony systems could provide significant cost savings, particularly for multi-national corporations with branch offices distributed throughout the world. Thus, a solution to the problem of the quality of service is clearly required.
There is thus a need for, and it would be useful to have, a system and a method for
providing guaranteed quality of service for computer network-based telephony systems. It would be of further advantage if the system and method could provide such guaranteed quality of service in a simple, efficient, and inexpensive manner.
SUMMARY OF THE INVENTION
The present invention is of a system and a method for providing guaranteed quality of service for the transmission of digitized vocal data according to a computer network data transmission protocol, such as IP. Collectively, such systems are referred to herein as "IP telephony systems". The system and method of the present invention detect the quality of service provided by the IP telephony system when a telephone call is placed. If the quality of service falls below the guaranteed minimum level, the digitized data for the telephone call is transmitted through a different route. Such a different route could be provided through the Internet or other computer network, or alternatively could be placed through POTS or other telephony system, for example. Preferably, the alternate route is a multiplexing telephony line such as an ISDN line. The ability to automatically detect the loss of quality of service, and to automatically switch the route of digitized data transmission without the intervention of the user, enables the system and method of the present invention to provide the guaranteed quality of service in a manner which is substantially transparent to the user.
In addition, the system and method of the present invention are also suitable for substantially any type of real-time data transfer application, including but not limited to, IP telephony, Internet or WAN radio broadcasting for the transmission of audio data, transmission of video data and the transmission of medical instrumentation signals. All of these different types of data transmission are characterized by the requirement for a minimum level of service for real-time data transfer.
According to the present invention, there is provided a system for providing at least a minimum quality of service for a digital data transmission for a real-time data transfer application, the system comprising: (a) a computer network for transmitting the digital data according to a network protocol; (b) a first gateway connection for connecting to the computer network for sending and receiving the digital data; (c) a second gateway connection for connecting to the computer network for sending and receiving the digital data, such that the first gateway connection and the second gateway connection exchange
the digital data; (d) a quality of service monitor for monitoring the quality of service for the digital data transmission, the quality of service monitor being in communication with at least the first gateway connection, such that the quality of service monitor determines the quality of service at least according to the digital data received by the first gateway connection; and (e) an alternate data transmission route for transmitting the digital data, the alternate data transmission route connecting the first gateway connection and the second gateway connection, such that if the quality of service for the digital data transmission through the computer network falls below a minimum level, the first gateway connection at least sends the digital data through the alternate data transmission route.
According to another embodiment of the present invention, there is provided a method for providing at least a minimum quality of service for a digital data transmission for a real-time data transfer application, the method comprising the steps of: (a) providing a computer network for transmitting the digital data according to a network protocol, and at least a first gateway connection and a second gateway connection for connecting to the computer network; (b) providing an alternate data transmission route for transmitting data between the first gateway connection and the second gateway connection; (c) exchanging the digital data between the first gateway connection and the second gateway connection for the data transmission through the computer network; (d) detecting a level of the quality of service of the data transmission; and (e) if the level of the quality of service falls below a minimum level, exchanging the digital data between the first gateway connection and the second gateway connection through the alternate route, such that the digital data is transmitted through the alternate route.
According to another aspect of the present invention, there is provided a method for providing an improved quality of service for a digital data transmission for a real-time data transfer application, the method comprising the steps of: (a) providing a computer network for transmitting the digital data according to a network protocol; (b) providing a first gateway connection and a second gateway connection for connecting through the computer network via a direct route; (c) providing at least one intermediate gateway connection, the at least one intermediate gateway connection providing an indirect route for connecting between the first gateway connection and the second gateway connection via the computer network; (d) measuring uni-directional transmission times, in at least
one direction, between the first gateway connection and the second gateway connection via a route selected from the group consisting of the direct route and the indirect route, and via at least one additional the indirect route, to obtain at least one preferred transmission route; (e) selecting at least one preferred transmission route between the first gateway connection and the second gateway connection; and (f) exchanging the digital data between the first gateway connection and the second gateway connection for the data transmission through the at least one preferred transmission route.
According to another preferred embodiment, the method of the present invention further comprises the steps of: (g) providing an alternate data transmission route for transmitting data between the first gateway connection and the second gateway connection; (h) detecting a level of the quality of service of the data transmission; and (i) if the level of the quality of service falls below a minimum levύ, exchanging the digital data between the first gateway connection and the second gateway connection through the alternate route, such that the digital data is transmitted through the alternate route.
According to yet another preferred embodiment, the measuring of the uni-directional transmission times and the selecting of the at least one preferred transmission route between the first gateway connection and the second gateway connection are performed in both directions.
According to yet another preferred embodiment, at least one of the intermediate gateway connections is connected to the computer network in a location particularly suited for the transmission of the digital data, such that the level of the quality of service is improved.
According to yet another preferred embodiment, the digital data transmission is a voice telephony call, such that the digital data is voice telephony data.
According to yet another preferred embodiment, the alternate data transmission route is a telephone line. Preferably, the telephone line is a multiplexing telephone line.
According to yet another preferred embodiment, step (d) (i.e., the measuring of uni-directional transmission times, in at least one direction, between the first gateway connection and the second gateway connection via a route selected from the group consisting of the direct route and the indirect route, and via at least one additional the
indirect route, to obtain at least one preferred transmission route) and step (f) (i.e., exchanging the digital data between the first gateway connection and the second gateway connection for the data transmission through the at least one preferred transmission route) are performed according to the IP (Internet Protocol) network protocol, such the digital data is divided into a plurality of packets for transmission.
According to another preferred embodiment, step (h) is performed at least according to the step of determining a rate of packet transmission, such that if the rate of packet transmission falls below a minimum rate, the quality of service is below the minimum level. In another preferred embodiment, step (h) is performed also at least according to the step of determining a rate of dropping packets during the packet transmission, such that if the rate of dropping packets is above a maximum rate, the quality of service is below the minimum level.
According to yet another preferred embodiment of the present invention, the exchanging the digital data between the first gateway connection and the second gateway connection is conducted through at least two preferred transmission routes.
In another preferred embodiment, the method of the present invention further comprises (h) initiating connection for the transmission of digital data between the first gateway connection and the second gateway connection, and step (d) is performed before step (h). In another preferred embodiment, step (e) is also performed before step (h).
According to another aspect of the present invention, there is provided a system for improving the level of the quality of service for a digital data transmission for a real-time data transfer application, the system comprising: (a) a computer network for transmitting the digital data according to a network protocol; (b) a first gateway connection for connecting to the computer network for sending and receiving the digital data; (c) a second gateway connection for connecting to the computer network for sending and receiving the digital data, such that the first gateway connection and the second gateway connection exchange the digital data, and such that the first gateway connection and the second gateway connection are connected through the computer network via a direct route; (d) at least one intermediate gateway connection, the at least one intermediate gateway connection providing an indirect route for connecting between the first gateway connection and the second gateway connection via the computer network; and (e) an active line-quality surveyor for measuring uni-directional
transmission times, in at least one direction, between the first gateway connection and the second gateway connection via a route selected from the group consisting of the direct route and the indirect route, and via at least one additional the indirect route, to obtain at least one preferred transmission route.
According to a preferred embodiment, the system of the present invention further comprises: (f) a call switching module, interactive with the active line-quality surveyor, for implementing, between the first gateway connection and the second gateway connection, the at least one preferred transmission route.
In another preferred embodiment, the network protocol is the IP (Internet Protocol) network protocol, such that the digital data is transmitted in a form of packets. In another preferred embodiment, the computer network is the Internet.
In yet another preferred embodiment, the measuring of uni-directional transmission times between the first gateway connection and the second gateway connection is performed in both directions. Preferably, the at least one preferred transmission route (and more preferably, two or more preferred transmission routes) between the first gateway connection and the second gateway connection is provided in both directions.
In yet another preferred embodiment, the system further comprises (g) a jitter buffer for dampening the variance in transfer time of the packets. Preferably, the jitter buffer identifies and sorts out-of-sequence packets, thereby improving the level of the quality of service.
In yet another preferred embodiment, the active line-quality surveyor measures the uni-directional transmission times in a substantially continuous fashion. In many cases, however, it may be more practical for the active line-quality surveyor to measure the uni-directional transmission times in a substantially intermittent fashion. In yet another preferred embodiment, the digital data transmission between the first gateway connection and the second gateway connection is initiated after obtaining at least one preferred transmission route.
According to another aspect of the present invention, there is provided a method of handling a plurality of packets to improve the level of the quality of service, the method comprising: (a) identifying each packet in the plurality of packets according to a serial number on the packet; (b) setting a transmission delay time for forwarding the
plurality of packets; (c) arranging the plurality of packets in chronological order according to the serial number on each packet.
According to a preferred embodiment, the method further comprises removing redundant packets from the plurality of packets. In another preferred embodiment, the method further comprises releasing the arranged plurality of packets to a receiving device.
Hereinafter, the term "network" refers to a connection between any two computers that permits the transmission of data, and includes but is not limited to, the Internet, a WAN (Wide Area Network) and a LAN (Local Area Network).
Hereinafter, the term "IP telephony" includes any type of digitized data transmission according to a computer network protocol, such as the IP (Internet Protocol) network protocol.
Hereinafter, the term "ISDN line" refers to an integrated services digital network connection for data transmission.
Hereinafter, the term "computer" includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows™, OS/2™ or Linux; Macintosh™ computers; computers having JAVA™-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems™ and Silicon Graphics™, and other computers having some version of the UNIX operating system such as AIX™ or SOLARIS™ of Sun Microsystems™; or any other known and available operating system. Hereinafter, the term "Windows™" includes but is not limited to Windows2000™, Windows95™, Windows 3.x™ in which "x" is an integer such as "1", Windows NT™, Windows98™, Windows CE™ and any upgraded versions of these operating systems by Microsoft Inc. (USA).
The method of the present invention could also be described as a plurality of instructions being performed by a data processor, such that the method of the present invention could be implemented as hardware, software, firmware or a combination thereof. For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computer according to which the software application is executed. Examples of suitable programming languages include, but are not limited to, C, C++ and Java.
Hereinafter, the term "user" is the person who operates the telephone or other data transfer apparatus for operating the present invention.
As used herein in the specification and in the claims section that follows, the terms "best route", "preferred transmission route", and the like refer to the route providing the highest level of quality of service obtainable (or the highest level of quality of service that has been identified) at a given time and for given existing gateways. The criteria for highest quality of service may vary from user to user, application to application, etc.
As used herein in the specification and in the claims section that follows, the terms "path" and "route" are used interchangeably.
As used herein in the specification and in the claims section that follows, the term "direction" refers to the orientation of the flow of digital data being transmitted from a first gateway to a second gateway or vice versa. The digital data may be routed through one or more intermediate gateways. The term "uni-directional transmission time" and the like refer to the time required to transmit digital data from the initiating gateway to the ultimate, receiving gateway in one direction. The terms "uni-directional" and "one way route" are used interchangeably. If the transmission route in both directions (between the initiating gateway to the ultimate, receiving gateway) is identical, the terms "round trip" and "round-trip time" are used.
As used herein in the specification and in the claims section that follows, the term "real-time data transfer application" can include, but is not limited to IP telephony, transmission of audio data, transmission of video data, transmission of medical instrumentation signals, or any combination of the above.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, wherein:
FIG. 1 is a schematic block diagram of an illustrative system according to the present invention;
FIG. 2 is a schematic block diagram of another illustrative embodiment of the system of Figure 1 according to the present invention;
FIG. 3 is a schematic block diagram of yet another illustrative embodiment of the
system of Figure 1 according to the present invention;
FIG. 4 is a flowchart of an exemplary method according to one aspect of the present invention;
FIG. 5a-e illustrate potential routes for transmitting digital data between Gateway 1 and Gateway 2 in a computer network having 4 gateways;
FIG. 6 is a logical flow diagram of an exemplary method for improving the level of the quality of service, according to one aspect of the present invention;
FIG. 7 is a schematic block diagram of a system for improving the level of the quality of service, according to one aspect of the present invention;
FIG. 8 is a flowchart of an exemplary method of handling packets in order to improve the level of quality of service;
Fig. 9 is a schematic illustration of one aspect of the inventive conventional telephony/internet telephony system;
Fig. 10 is a schematic illustration of another aspect of the inventive conventional telephony/internet telephony system;
Fig. 11 is a schematic illustration of another aspect of the inventive conventional telephony/internet telephony system including two multiple user systems, and
Fig. 12 is a presently-preferred configuration of the system shown in Fig. 1 1.
DETAILED DESCRIPTION OF THE INVENTION
The present invention is of a system and a method for providing guaranteed quality of service for the transmission of digitized vocal data according to a computer network data transmission protocol, such as IP. Collectively, such systems are referred to herein as "IP telephony systems". The system and method of the present invention detect the quality of service provided by the IP telephony system when a telephone call is placed. If the quality of service falls below the guaranteed minimum level, the digitized data for the telephone call is transmitted through a different route. Such a different route could be provided through the Internet or other computer network, or alternatively could be placed through POTS or other wireless or cellular telephony system, for example. Preferably, the alternate route is a multiplexing telephony line such as an ISDN line. The ability to automatically detect the loss of quality of service, and to automatically switch
the route of digitized data transmission without the intervention of the user, enables the system and method of the present invention to provide the guaranteed quality of service in a manner which is substantially transparent to the user.
In addition, the system and method of the present invention are also suitable for substantially any type of real-time data transfer application, including but not limited to, IP telephony, Internet or WAN radio broadcasting, transmission of video data and the transmission of medical instrumentation signals. All of these different types of data transmission are characterized by the requirement for a minimum level of service for real-time data transfer.
The principles and operation of a system and method according to the present invention may be better understood with reference to the drawings and the accompanying description, it being understood that these drawings are given for illustrative purposes only and are not meant to be limiting.
Although the following description centers upon IP telephony, it is understood that this is for the purposes of clarity only and is not intended to be limiting. Rather, substantially any type of real-time data transfer application could be used with the system and method of the present invention as described below, and is considered to be within the scope of the present invention.
Referring now to the drawings, Figure 1 is an exemplary block diagram of an illustrative system according to the present invention. Although the present invention is explained in the following Figures according to the requirements for voice telephony calls, it is understood that this is for the purposes of discussion and is not intended to be limiting in any way, since the system and method of the present invention could also be used for guaranteeing the quality of service for other types of digital data transmission.
A system 10 features a plurality of gateway connections 12, shown as "IP gateways", to the Internet 14. Internet 14 is shown here as an example of a type of computer network which is operative with system 10, it being understood that this is for the purposes of illustration only and is not meant to be limiting in any way. System 10 could also operate with substantially any WAN or LAN in place of Internet 14.
Each gateway connection 12 is connected to at least one PBX 16 for the user to
operate. Alternately, the gateway may be connected to the PSTN via analog phone lines including, but not limited to, El and TI. In addition, the connection may be to a different type of data transmission network such as, but not limited to, video or audio. Preferably, gateway connection 12 includes both a host computer and a hardware connector to Internet 14, such as a router for example.
When the user wishes to place a telephone call, the user operates PBX 16 such that PBX 16 connects to gateway connection 12 through data line 20. For example, the user could place a telephone call from a first PBX 16 connected to a first gateway connection 12. The digitized telephone call data would then be transmitted from first gateway connection 12 to Internet 14, and from Internet 14 to a second gateway connection 12, for example according to a first route through Internet 14 as shown. The digitized data would then be transmitted to a second PBX 16 operated by a second user. Thus, the digitized data would be transmitted as part of an IP session. It should be noted that gateway connection 12 is optionally a portion of the PBX or any public telephone exchange system.
During the IP session, a line quality monitor 30 detects the quality of service for the transmitted data. As shown, preferably each gateway connection 12 has an associated line quality monitor 30, which could be implemented as a software module operated by the host computer component of gateway connection 12, for example, or alternatively as a hardware device. Line quality monitor 30 would examine the incoming data packets to gateway connection 12 in order to determine whether the quality of service had fallen below the guaranteed level. The minimum level of the quality of service is therefore determined according to a required quality for a voice telephone call in this implementation.
For example, line quality monitor 30 examines parameters such as packet delay, the number of lost packets, the consistency of delay and the order in which packets are transmitted from the other gateway connection 12, in order to determine whether such parameters have fallen below an acceptable level. Preferably, line quality monitor 30 would combine a plurality of such indicators, optionally weighted to reflect the relative importance of each such indicator, in order to determine if the quality of service had fallen below the guaranteed minimum level. Of course, other such indicators could be used in place of, or in addition to, these exemplary indicators, which are given for the
purposes of illustration only and without intending to be limiting in any way. Indicators as length of delay and number of packets dropped are defined according to parameters with user-defined values, such that the user is able to determine the required level quality of service through these indicators. Optionally and more preferably, combinations of such indicators may also be specified by the user, such that the minimum acceptable level of quality of service is determined according to a combination of the length of delay for packet transmission and the number of dropped packets, for example. Thus, the user could decide to accept a very low minimum level of quality of service, or alternatively could enter parameters that would guarantee a relatively high minimum level of quality of service, for example.
In this example, line quality monitor 30 associated with first gateway connection 12 examines the incoming packets which are transmitted from second gateway connection 12, and determines that the quality of service has fallen below the minimum acceptable level. Line quality monitor 30 then informs a call switching module 32 of the degraded quality of service. Call switching module 32 could also be implemented as a software module operated by the host computer component of gateway connection 12, for example, or alternatively could be implemented as a hardware device. Call switching module 32 would then instruct first gateway connection 12 to change the route of data transmission, in an attempt to overcome the lack of sufficient quality of service. First gateway connection 12 would then inform second gateway connection 12 of the changed route of data transmission. The data would then be transmitted through the changed route.
As another example, a different type of routing is shown in Figure 2. Call switching module 32 could instruct first gateway connection 12 to send the data packets according to a different route 34. During configuration, alternate routes 34 are defined and prioritized. For example, based on provider rates for using a particular alternate route 34, alternate route 34 can be defined as a Least Cost Route (LCR). The provider could be a telephone services provider or an ISP (Internet Services Provider), for example. Alternatively, another alternate route 34 can be given priority based on line quality sampling, such that a particular alternate route 34 which shows consistently high quality of service as previously defined could be selected. Optionally and preferably, if a plurality of alternate routes 34 are selected, then the user is able to determine an order of
priorities for selecting each alternate route 34. More preferably, a particular alternate route 34 could be selected according to environmental considerations such as current and/or expected traffic load, for example. Alternate route 34 enables data transmissions, and hence the IP session, to be maintained.
In this particularly preferred example shown in Figure 2, a first gateway connection 12 is connected to a modem 18 which is in turn connected to a second gateway connection 12 through a data line 21. More preferably, data line 21 is a POTS telephone line, such that a local telephone call is placed in order to connect modem 18 to gateway connection 12. Alternatively and more preferably, data line 21 is a computer network connection, such as a LAN for example. Alternatively and most preferably, data line 21 is an ISDN line. If data line 21 is implemented as an ISDN line or other type of multiplexing telephone line, then multiple users could all place telephone calls through data line 21, thereby reducing the cost of such a telephone call. For example, an ISDN line can accommodate up to seven IP telephone calls at one time on a single line. In this implementation, modem 18 may be replaced by a hardware network connection device, such as an Ethernet card for example.
According to an alternative but preferred implementation of the present invention, as shown in Figure 3, data line 21 optionally connects a third gateway connection 38 to second gateway connection 26. Third gateway connection 38 then receives digital data transmissions from first gateway connection 12 through Internet 14, and passes this data to second gateway connection 26 through data line 21. Third gateway connection 38 optionally and preferably receives digital data transmissions from a plurality of such gateway connections 12. This implementation of the present invention is particularly preferred, since third gateway connection 38 can be used to effectively bypass a problematic route or connection from and/or to a particular gateway connection 12 through Internet 14.
Figure 4 shows a flow chart of an exemplary method according to the present invention. In step 1, a first gateway connection and a second gateway connection to a computer network are provided. Each gateway connection has an associated telephone. In step 2, a first user places a telephone call through the first telephone and the first gateway connection. In step 3, the digitized data is transmitted according to a network protocol, preferably the IP network protocol, from the first gateway connection to the
second gateway connection. In step 4, digitized data is transmitted from the second gateway connection to the first gateway connection.
In step 5, the first gateway connection detects that the quality of service has fallen below an acceptable level. Such detection could optionally be implemented through a software module operated by a host computer associated with the first gateway connection, as previously described. Also as previously described, the detection of the lack of quality of service could be perfonned in a number of ways, for example according to the rate of packet transmission and/or the rate at which packets are dropped.
In step 6, first gateway connection informs second gateway connection of the changed route, such that second gateway connection is also able to both send data according to the new route and to receive data from the new route. Preferably, such a different route is a different route through the computer network, such as the Internet, for example. Alternatively and preferably, the alternate route is an ISDN line or other type of multiplexing telephone line for connecting the first gateway connection to the second gateway connection. As described with regard to Figures 2 and 3, such a multiplexing telephone line could be implemented as a direct line between the two gateway connections, as in Figure 2, or alternatively and preferably is implemented as a connection between one of the two gateway connections and a third gateway connection, as in Figure 3.
In step 7, the digital data transmission from the first gateway connection is sent to the second gateway connection according to the different route. Thus, the method of the present invention enables different routes to be selected for greater efficiency of operation.
Thus, the system and method of the present invention provides a guaranteed minimum level of quality of service for IP telephony. The lack of such a guaranteed minimum level is a significant obstacle to commercially successful computer network-based telephony, such as Internet telephony for example. Without such a guarantee, the quality of service may become degraded to an unacceptably low level, even if the initial level of the quality of service is sufficient. Furthermore, maintaining the quality of service is not simply a matter of increasing the available bandwidth for the computer network, since even connectivity rates as high as 90 % are still not sufficient for corporations and other users who require complete availability of the telephone service at
all times. The present invention is able to provide such guaranteed quality of service by providing a detector to detect the quality of service, and at least one alternate route if the quality of service falls below a predetermined minimum level, thereby overcoming the significant defects of currently available background art systems for IP telephony.
In many instances, it is advantageous, not only to monitor line quality, but to improve the probability that the service via the Internet meets the guaranteed level of service quality for a given telephony system. It would be of further advantage to provide a level of service quality that is far superior to the guaranteed (i.e., minimum) level of service quality.
It has been discovered that the optimal route for transferring packets (e.g., audio packets of a phone conversation) in one direction is often far from optimal for transferring packets in the reverse direction. Hence, the logical flow sequence provided in Figure 4 is clearly an oversimplification. Although it is technologically feasible to use a line quality monitor to determine the total time elapsed between the transmission of a packet from gateway 1 to gateway 2 and the subsequent reception of a packet from gateway 2 at gateway 1, this method averages the communication time of the two directions. For example, from gateway 1 to gateway 2, the transmission of a given packet takes 3 time units. The transmission of another given packet in the reverse direction requires 15 time units. A monitor measuring elapsed time for the round-trip reads 18 time units, or an average of 9 time units in each direction. If the guaranteed level of service quality is 6 time units per direction, the monitor will try to send the data by an alternate route, despite the excellent transmission from gateway 1 to gateway 2.
Moreover, it is entirely possible that an alternate route, e.g., a connection through gateway 3, may provide poor service from gateway 1 to gateway 2 via gateway 3, e.g., 12 time units, but can provide excellent service from gateway 2 via gateway 3 to gateway 1 , e.g., 4 time units. In this case, the level of service quality, as measured by the round-trip reading, would be unacceptable (16 time units), and the data would have to be conveyed by a conventional route. However, it is evident that data transmission from gateway 1 to gateway 2 and in the reverse direction, from gateway 2 via gateway 3 to gateway 1, would be of superior quality (7 time units). A more sophisticated method is required in order to identify such possibilities.
One obstacle is the measurement of elapsed time. In the round-trip method
described above, the line monitor utilizes an internal clock to measure the time elapsed between the transmission of a packet from gateway 1 to gateway 2 and the subsequent reception of a packet from gateway 2 at gateway 1. However, to measure each one-way time requires synchronized clocks at all gateways, a state that is difficult to achieve and to maintain over time.
According to one aspect of the present invention, however, there is provided a method of and a system for computing and comparing one-way times without the need for synchronization. Figures 5a-e provide a computer network 50 having 4 gateways. By way of example, a call is placed from Gateway 1 to Gateway 2, via computer network 50. In Figure 5 a, the call from Gateway 1 to Gateway 2 is routed within computer network 50, without passing through Gateway 3 and/or Gateway 4. In Figure 5b, the call from Gateway 1 to Gateway 2 is routed within computer network 50, via Gateway 3. In Figure 5c, the call from Gateway 1 to Gateway 2 is routed within computer network 50, via Gateway 3 and subsequently, via Gateway 4. In Figure 5d, the call from Gateway 1 to Gateway 2 is routed within computer network 50, via Gateway 4. In Figure 5e, the call from Gateway 1 to Gateway 2 is routed within computer network 50, first via Gateway 4 and subsequently, via Gateway 3.
Thus, for a system having 4 gateways there are five distinct routes for transferring data from, for example, Gateway 1 to Gateway 2.
An algorithm running in the background measures the time required to transfer a packet directly from Gateway 1 to Gateway 2. The packet may be one of a plurality of control packets that is dedicated to the evaluation of line quality. The algorithm subsequently measures the time required to transfer packet(s) from Gateway 1 to Gateway 2 through alternate routes, in this case, via Gateway 3 and Gateway 4. Exemplary results are provided in Table la.
The absolute packet transfer time from Gateway 1 to Gateway 2 is not measurable, because the time clocks are not synchronized. However, the various paths between Gateway 1 and Gateway 2 can be compared, based on the value of the measured time differential, DELTA t:
DELTA t = tarrivai (gateway 2) - to (gateway 1), such that the best path or paths can be identified. Thus, the fastest path between Gateway 1 and Gateway 2 is the direct path from Gateway 1 to Gateway 2, which has an associated
DELTA t of 3.08 time units.
TABLE 1a
TABLE 1 b
Referring now to Table lb, the fastest path from Gateway 2 to Gateway 1 is Gateway 2 →Gateway 4 →Gateway 1, which has an associated DELTA t of -3.03 time units. The time can be measured by providing a time stamp on the packet as it leaves Gateway 2 and reading the time of arrival of the packet at Gateway 1.
Moreover, by combining the results of the two one-way paths, we can obtain the absolute time required for the round-trip. For the round-trip path of Gateway 1 →Gateway 2→Gateway 4→Gateway 1, the time required equals (3.08 + -3.03) 0.05 time units. Thus, in addition to the determination of relative speeds on each one-way path, we also obtain an absolute time for the round-trip, without the need for synchronization. This allows both monitoring to provide guaranteed service quality and control of the gateway path to provide optimal or highly-improved service.
In the event that synchronization of gateways is achieved, accurate absolute measurement of each one-way path can be effected, such that the line monitoring of service quality can be evaluated on a more correct basis, i.e., the combined absolute time
of various one-way paths.
A logical-flow diagram of an exemplary method according to the present invention.is provided in Figure 6. In step 1, a first gateway connection and a second gateway connection to a computer network are provided. Each gateway connection has an associated telephone (e.g., PBX, PSTN, IP telephone, or the like). In step 2, a first user places a telephone call through the first telephone and the first gateway connection. In step 3, a best routing algorithm working in the background ("Active Line-Quality Surveyor") surveys possible IP routes via additional gateway connections, as described above. Various criteria can be used to evaluate the service quality of each route. In step 4, the best route for transmitting the digitized data is compared to the service quality requirements, preferably determined by the user, if the service quality is satisfactory, the telephone call is established using an IP connection, in step 5, using the best route found in step 3. Digitized data are then transmitted (in step 6) according to a network protocol, preferably the IP network protocol, from the first gateway connection to the second gateway connection using the best route.
Similarly, digitized data are transmitted (in step 7) according to a network protocol, preferably the IP network protocol, from the second gateway connection to the first gateway connection using the best return route. As described above, the best return route is often different from the best route from the call-initiating gateway (in this case, Gateway 1).
If, in step 4, the service quality is determined to be unsatisfactory, the data are transmitted via an alternate route (step 10), e.g., conventional telephony. Preferably, the alternate route is an ISDN line or another type of multiplexing telephone line for connecting the first gateway connection to the second gateway connection. As described with regard to Figures 2 and 3, such a multiplexing telephone line could be implemented as a direct line between the two gateway connections, as in Figure 2, or alternatively and preferably is implemented as a connection between one of the two gateway connections and a third gateway connection, as in Figure 3.
In step 8 and step 9, which take place in the background, in parallel with step 6 and step 7, a best routing algorithm working in the background surveys possible IP routes via additional gateway connections in order to locate improved routes from Gateway 1 to Gateway 2 (step 8) and from Gateway 2 to Gateway 1 (step 9). If, at any point in time,
the service quality is determined to be unsatisfactory, the data are transmitted via an alternate route (step 10).
Thus, the above-described exemplary method not only switches the call to an alternate route in the event of unsatisfactory service quality, the method has an inherent progressive mechanism for checking, evaluating, and hooking up to routes having improved service quality.
The exemplary system 70 shown in Figure 7 features a first IP gateway 74, a second IP gateway 84, and additional IP gateway(s) 94 connected to a computer network. 80 that is operative with system 70. Preferably, additional IP gateway(s) 94 is a plurality of IP gateways. System 70 could also operate with the Internet, or with substantially any WAN or LAN. As described in detail above, the active line-quality surveyors 72 examine parameters such as packet delay, the number of lost packets, the consistency of delay and the order in which packets are transmitted, in each direction, between the calling gateway (by way of example, first gateway 74) and the receiving gateway (by way of example, second gateway 84). Active line-quality surveyors 72 measure and evaluate the line-quality for the direct gateway connection 86 and for at least one and preferably a large plurality of indirect lines 88 through additional IP gateway(s) 94. Preferably, active line-quality surveyor 72 would combine a plurality of the above-mentioned indicators, optionally weighted to reflect the relative importance of each such indicator, in order to determine if the quality of service had fallen below the guaranteed minimum level. Of course, other such indicators could be used in place of, or in addition to, these exemplary indicators, which are given for the purposes of illustration only and without intending to be limiting in any way. Indicators as length of delay and number of packets dropped are defined according to parameters with user-defined values, such that the user is able to determine the required level quality of service through these indicators. Optionally and more preferably, combinations of such indicators may also be specified by the user, such that the minimum acceptable level of quality of service is determined according to a combination of the length of delay for packet transmission and the number of dropped packets, for example.
Active line-quality surveyors 72 also control the gateway route (i.e., through which intermediate gateway(s), if any, and the order of intermediate gateways) for transferring the data packets. Active line-quality surveyors 72 instruct call-switching
module 76 to transmit the digitized data via a particular, preferred gateway route (direct 86 or indirect 98), or via a conventional telephony data line (not shown).
It must be emphasized that by significantly increasing the number of gateways, the probability of obtaining (at least) the guaranteed service quality is greatly increased. In a two-gateway system, there exists a singular path for transferring a packet from Gateway 1 to Gateway 2. By adding a third gateway, a second path is possible: 1— »3— »2. By adding a fourth gateway, an additional 3 paths are possible: l-»4-»2, l-»3-»4-»2, l-»4-»3-»2, yielding a total of 5 paths. By adding a fifth gateway, an additional 11 paths are possible: 1→5→2, l→5→4- 2, l→5- 3->2, 1→4→5→2, l→3->5→2, 1→5→4→3→2, l→5→3→4->2 l→4->5→3→2, l→4→3- 5→2, l→3-»4->5->2, yielding a total of 16 paths. Thus, by adding even a small number of gateways and by measuring the packet-processing speed of each possible route to determine the better paths, the service quality is greatly enhanced.
The information highway has certain sites and locations through which fast and reliable data transfer is characteristically achieved. In a preferred embodiment of the invention, the location of one or more of the additional gateways can be selected in order to facilitate the transfer of packets.
As used herein in the specification and in the claims section that follows, the expression "in a location particularly suited for the transmission of the digital data" refers to sites on the information highway through which fast and reliable data transfer is characteristically achieved. The criteria may be chosen and weighted by the user, but generally consist of well-known and well-defined criteria such as rate of packet transmission, delay variance, frequency of dropping packets, etc.
In another preferred embodiment, each gateway clock is synchronized, such that accurate, absolute one-way times can be measured.
In yet another preferred embodiment, two or more (identical) packets can be sent in parallel through different paths. The first packet to arrive is processed; the one or more identical packets arriving subsequently (also termed "redundant" or "redundant packets" in the specification and in the claims section that follows) are, upon identification, thrown out. This task is typically performed by the call-switching module, but can alternatively be effected by the jitter buffer. Preferably, the paths chosen represent the best paths
found by the best routing algorithm described above. Thus, using Table la and Table lb by way of example, the three fastest paths between Gateway 1 and Gateway 2 are 1— »2, l->3-»2, and 1— 4— 2, and the three fastest paths between Gateway 2 and Gateway 1 are 2-» 4 — 1, 2— » 3 -» 1, and 2-> 4 - 3— »1. This preferred embodiment is particularly appropriate for packets of the UDP (User Datagram Protocol) variety, which are numbered and easily identified. Moreover, in current packet-transferring technologies, UDP packets are occasionally lost. In the above-described preferred embodiment, however, the use of parallel processing of identical (redundant) packets considerably reduces the chance of losing the information contained in the identical packets.
The number of identical packets sent in parallel is dependent on a large number of factors, including the guaranteed level of service quality required, the absolute speed of packet transferal, the probability of a packet being lost, and the effect of such parallel packet transfer on overall packet transfer speed. It is likely that the optimal number of parallel packets sent in one direction can differ from the optimal number of parallel packets sent in the reverse direction. It is also to be expected that the optimal number of parallel packets sent in a particular direction can vary from day to day and at different times within the day.
A best-routing algorithm can be applied to measure the level of the quality of service via a given route at a given time or in a given time period. The algorithm measures the call quality or calculates the expected call quality by examining various parameters, which may include some or all of the following:
-.Percentage of lost packets
-lAverage delay
-iPeak delay
-.Data stream consistency (i.e., constant delays) The algorithm grades each route at any given time, based on a weighted average of the various parameters that is customized to the application or that is set by the user. The results are reported to the gateway. Based on the rating of the routes and the level of the quality of service demanded by the user, the active line-quality surveyor 72 selects the preferred route(s) and the number of routes in each direction that will be used to improve the level of the quality of service and/or to ensure a pre-defined level of the quality of
service.
In a further embodiment, only one active line-quality surveyor 72 and one call-switching module 76 are necessary for system 70. Preferably, the singular active line-quality surveyor 72 and singular call-switching module 76 are connected directly to the broadcasting IP gateway 74 or to the receiving IP gateway 84. Alternatively, the singular active line-quality surveyor 72 and singular call-switching module 76 can be situated elsewhere on the computer network, e.g., on a server (not shown). At present, however, the use of such a server appears more complicated and hence less preferable than other embodiments described herein.
Moreover, as the functions of active line-quality surveyor 72 and call-switching module 76 can be performed using the appropriate software, it is relatively easy and inexpensive to equip many or all of the gateways 74, 84, 94 with active line-quality surveying and call-switching capabilities. As a result, the system is extremely reliable and robust, having no central organ to rely upon for such services, and having the ability to function effectively even when one or more individual gateways is "down" or malfunctioning.
In another preferred embodiment, the system 70 further includes a jitter buffer 98 of the conventional variety for dampening the variance of the packet transfer time. Preferably, a jitter buffer 98 can be installed in every gateway in which packets are prepared or received (as opposed to intermediate gateways, which merely transfer the packets).
According to yet another feature of the present invention, jitter buffer 98 can be enabled (e.g., by programming) to identify out-of-sequence packets, and to sort such packets, such that service quality is improved. This feature is of particular importance for both audio and video applications, in which out-of-sequence packets seriously detract from quality.
FIG. 8 is a flowchart of an exemplary method of handling packets such that the level of quality of service is improved. According to the method, packets are received in step 1 from the computer network at the changing rate. The packets are identified, preferably according to the serial number on each respective packet. Other ways of identifying the packets (e.g., time stamp) are also possible.
In step 2, the buffer depth is determined, and a transmission delay is set, such that
the buffer is able to supply data at a constant speed. The magnitude of the delay reduces (improves) the variance in packet transmission times. There is, however, a natural correlation between the magnitude of the delay and the memory storage requirement. Moreover, although the delay improves variance, an inordinately-large delay compromises the level of the quality of service.
In step 3, the digitized data is sorted. Packets that are chronologically out of order (as determined by serial number, by way of example) are reinserted according to chronological order, thereby improving the level of the quality of service. This is of particular importance for voice and video applications.
According to a preferred embodiment, the method further comprises removing redundant packets from the plurality of packets. In another preferred embodiment, the method further comprises releasing the arranged plurality of packets to a receiving device.
Optionally, if identical packets are received, e.g., as described in a preferred embodiment above, the redundant packets can be discarded, preferably in step 1 or in step 3.
In step 4, the sorted digitized data is released to the receiving device.
As a result of the various above-described embodiments of the present invention, the service quality of telephony via computer networks, and more specifically, via the Internet, is greatly increased. The system and a method of the present invention provide a guaranteed quality of service for computer network-based telephony systems in a simple, efficient, and inexpensive manner. As a result, the use of computer network-based telephony systems in general and the use of Internet-based telephony systems in particular will become much more widespread. Moreover, the robust nature of the system and a method of the present invention will allow corporate users to take advantage of computer network-based telephony systems and the significant cost savings that could be achieved, particularly for multi-national corporations with branch facilities distributed throughout the world.
Referring to the schematic illustration of FIG. 9a, the system 500 according to one aspect of the present invention contains a Central Processing Unit (CPU) 120, a telephone 110, a gateway 130, an internet connection 140, and a public switched telephone network (PSTN) connection 170.
As used herein, the term "internet" refers to any data channel other than a PSTN channel, including but not limited to a Wide Area Network (including intranets), LAN, etc.
As used herein, the term "PSTN connection" is a typical example of a telephone switch, which can be of various types, as known to those skilled in the art.
System 500 is configured to operate, first and foremost, as a conventional telephone system. Telephone 110 is connected via a line 114, which is a common telephone line, and a line 116, which is also a common telephone line, to PSTN connection 170. This configuration allows telephone 110 to initiate calls to the PSTN via PSTN connection 170, and to receive calls from the PSTN via PSTN connection 170.
Line 114 and line 116 are connected by switch 113, when switch 113 is in a closed position, as shown. Preferably, switch 113 is designed to have a normally closed (n.c.) position, as will be described in further detail below.
With switch 113 in an open position, connection is established between line 114 and internet connection 140 via a line 115 connecting to gateway 130. Gateway 130 is operatively connected to CPU 120 and to a power supply ISO- Switch 113 is a selector-type switch, controlled by CPU 120, via a control line 121, such that line 114 is alternatively connected to line 115 or a line 116 by command of CPU 120. Switch 113 is designed to have a normally closed (n.c.) position in which line 114 is connected to line 116, such that a failure in power supply 150 or in CPU 120, by way of example, will result in line 114 being connected to PSTN connection 170 via line 116. Preferably, system 500 is further designed and configured such that switch 113 returns to a closed position following any termination (e.g., hanging up after completing a transmission to and/or from the internet) of activity via internet connection 140.
Preferably, switch 113 is an electromagnetically operated switch or a fully-electronic switch. However, other switches may be found to be suitable by those skilled in the art. A more detailed scheme of switch 113 is provided in FIG. 9b
System 500, as described, is suitable for both analog and digital applications. In an analog application, system 500 preferably includes various detectors that are
operatively connected to CPU 120. In FIG. 9a, by way of. example, a Dual Tone Modulated Frequency (DTMF) detector 111 and an off-hook detector 112 are operatively connected to line 114 via a line 123, and are connected to CPU 120 by control lines 117 and 118, respectively. A ring detector 160 is connected to line 116 by a line 124, and to CPU 120 by line 122.
When a user desires to place a phone call through PSTN connection 170, the phone call is placed through line 114, switch 113 and line 116.
In order to connect to an alternate phone service via internet connection 140, the user preferably sends a preset signal/prefix number, for example, the asterisk or pound sign key on telephone 110. DTMF detector 111 recognizes the signal associated with the preset signal and conveys the information to CPU 120 via line 117. CPU 120 is capable of accessing the computer Random Access Memory or Read Only Memory, which contain program codes for operating system 500. Upon receipt of the information signal from DTMF detector 111, CPU 120 sends a control signal via control line 121 to open switch 113, such that a connection is made between line 116 and line 115. The analog voice signal of the caller is conveyed from telephone 110 via lines 114 and 115, and enters gateway 130. Gateway 130 contains typical operating systems necessary for transforming voice, graphic and digital data into the requisite formats. Subsequently to receiving the voice signals from telephone 110, gateway 130 digitizes the voice and builds the digital voice data into packets, according to known art. Gateway 130 is also designed and configured to receive incoming packets from a second user external to system 100, to packing the digital information and demodulating the digital form into an analog voice signal that is transmitted to telephone 110.
Preferably, the packets are transferred via internet connection 140 in a way that provides improved or optimal quality of transmission, according to the invention described hereinabove.
In the event that a conversation is taking place on telephone 110 through PSTN connection 170, off-hook detector 112 sends CPU 120 an off-hook signal. If the user is contacted by an outside party placing an internet telephone call through internet connection 140, CPU 120 sends a signal via control line 119 to gateway 130. According to a pre-determined method, gateway 130 then conveys the "line
busy" status to the outside party by providing a busy signal, a waiting option, an option of requesting an automatic call back when telephone 110 user has finished with the phone call, and/or an option of leaving a message. Other, similar options may be designed into system 500 according to known art.
The above described message option can be implemented using an external answering machine or one of subsystems in CPU 120 or gateway 130.
Preferably, the user of telephone 110 is also provided by CPU 120 with an appropriate audio signal (or visual signal, if telephone 110 is operatively connected to a Graphic User Interface) to advise the user of an incoming phone call, allowing the user to choose between terminating the phone call in progress to engage the internet phone call, to activate an automated answering feature, etc. Similarly, in the event that line 114 is busy with an internet call (and switch 113 is open), a signal is provided to the outside party calling via PSTN connection 170.
In an analogous fashion to off-hook detector 112, ring detector 160 senses when telephone 110 is ringing by monitoring signals from PSTN 170, and conveys the information to CPU 120 via control line 122. CPU 120 can then transmit a signal via control line 119 and gateway 130 from a calling party calling via internet connection 140.
In a digital system, CPU 120 is operatively connected to a data storage module containing various kinds of information relating to the telephone number of the incoming call, line status (busy, ringing, etc.) according to known art. Thus, in the present invention, CPU 120 is designed and configured to utilize this readily accessible information store and to initiate various signals to the outside party and/or to the user of telephone 110, substantially as described above.
Another aspect of the present invention is illustrated in FIG. 10. When the user of system 100 user places a call, CPU 120 of system 100 is designed and configured to automatically (or alternatively, upon receiving a pre-determined signal from telephone 110, as described hereinabove) check a memory module operatively connected to CPU 120 to determine whether the destination number is similarly equipped with a compatible system 200. If so, CPU 120 selects at least one preferred connection route for transferring data packets to the destination number via internet connection 140 and via compatible system 200, according to the
methods of supplying improved quality of service for internet telephony and according to predetermined performance criteria described hereinabove.
If the memory does not indicate that the destination number is equipped with compatible system 200, CPU 120 can optionally send a "feeler" signal to the destination number. If the destination number is equipped with compatible system 200, a CPU 220 of compatible system 200 returns an acknowledgment signal to system 100 via internet connection 240. Upon receiving this acknowledgment signal, CPU 120 selects at least one preferred connection route for transferring data packets to the destination number via Internet connection 140 and via compatible system 200.
In the event that the quality of service to Internet 260 via internet connections 140 and 240 becomes unavailable, CPU 120 and/or CPU 220 switch the communication means to PSTN mode by activating (closing) switch 113 and switch 213.
If the destination number is not equipped with compatible system 200, CPU 120 instructs switch 113 to close, and the call is placed to destination telephone 210 via PSTN connection 170 and PSTN 160.
It can be appreciated that the above-described method and system provides users with a seamlessly integrated PSTN/internet system having a high quality of service. Moreover, the above-described method and system can be utilized to provide such a service without the user knowing or feeling the internet service. The present invention paves the way for the multitude of internet-illiterate to take advantage of the advantages of internet communication in an effective and painless fashion. Even for those who are adept at internet communication, the present invention provides a high-quality internet communication service, and a smooth integration of PSTN and internet channels.
In another aspect of the present invention, the systems are designed and configured to deliberately/automatically route the data packets transferred between system 100 and system 200 via different preferably high-quality paths, such that tapping and/or hacking of the transferred data becomes significantly more difficult and substantially impractical or impossible.
Another aspect of the present invention is illustrated in FIG. 11. A PSTN 360 is connected to two multiple user systems (by way of example). A first system 300 has a PBX connection 390 connected to PSTN 360, a CPU 320 connected to a gateway 330 via line 319. CPU 320 is also operatively connected to a plurality of telephone sets (typically tens, hundreds or thousands), represented by 310a-d, via a plurality of switches 313. Preferably, each of plurality of switches 313 is normally closed. Switches 313 are also connected to gateway 330 via lines 315. Gateway 330 is operatively connected to a power supply 350 and to internet 460.
It should be emphasized that plurality of switches 313 can be directly connected to PSTN 360.
Similarly, second system 400 has a PBX connection 490 connected to PSTN 360, a CPU 420 connected to a gateway 440 via line 419. CPU 420 is also operatively connected to a plurality of telephone sets (typically tens, hundreds or thousands), represented by 410a-f, via a plurality of switches 413. Preferably, each of plurality of switches 413 is normally closed. Switches 413 are also connected to gateway 430 via lines 415. Gateway 430 is operatively connected to a power supply 450 and to internet 460.
Before explaining the operation of the inventive system and method, a preferred configuration is presented in FIG. 12. As in the configuration of FIG. 11, PSTN 360 is connected to two multiple user systems (by way of example). First system 300 has a plurality of telephone sets 310a-d connected to PBX connection 390. PBX connection 390 is connected by one or more lines 365 to module 375, which includes CPU 320 and gateway 330. Module 375 is also operatively connected to PSTN 360. Gateway 330 is connected to CPU 320, to internet 460, and to a power supply (not shown).
Similarly, second system 400 has a plurality of telephone sets 410a-f connected to PBX connection 490. PBX connection 490 is connected by one or more lines 465 to module 475, which includes CPU 420 and gateway 430. Module 475 is also operatively connected to PSTN 360. Gateway 430 is connected to CPU 420, to internet 460, and to a power supply (not shown).
It should be emphasized that first system 400 and second system 400 can each have multiple modules (375, 475, respectively), as needed.
Lines 365 and lines 465 are typically and preferably part of a standard digital line system such as El, supporting 30 external telephone lines, and TI, supporting 24 external telephone lines, BRI, CAS.
When placing a call from one of telephone sets 310 to one of telephone sets 410, the call passes through PBX connection 390 to module 375. Module 375 can be designed and configured in a substantially similar fashion to module 175 (containing switch 113, CPU 120, and gateway 130) provided in FIG. 10. Thus, the call can be conveyed from module 375 through internet 460 to second system 400, or through PSTN 360 to second system 400.
In a preferred embodiment, however, the above-described system can be designed and configured to provide a particularly simple and convenient basket of services. By way of example, first system 300 and second system 400 represent two branches of a single corporation, a first branch located in Boston and a second branch located in California. Without the inventive system and method, intra-branch dialing is effected by dialing a four-digit number, usually corresponding to the full, seven-digit number without the first three digits. Inter-branch dialing is effected by dialing "9" to obtain an external line (TI), followed by the area code and the full seven-digit number. The call is placed via the PSTN.
In the inventive system and method, inter-branch dialing from the first branch to the second branch is effected by dialing "9" to obtain an external line. Subsequently, a four-digit number, representing a specific telephone set in the second branch, is dialed. In module 375, CPU 320 initiates a call via internet 460. If, however, the user continues to dial after dialing the initial 4 numbers, CPU 320 terminates the internet call, as it has become apparent that the user is dialing a local, seven-digit number. It can be appreciated that many variations and modifications of this procedure can be implemented by those skilled in the art.
In the event that the second branch has three-digit dialing numbers, CPU 320 and/or CPU 420 are programmed to add a digit before the first three. Preferably, the value of the added digit should be different from the value of the first digit in the first branch (or in any additional branches). If the two branches have an identical value for the first digit of the four-digit numbers, CPU 320 and/or CPU 420 are programmed to assign a different first digit to one of the branches, as necessary.
As described hereinabove, switches 313 are designed to have a normally closed (n.c.) position, in which telephone sets 310a-d are operatively connected to PSTN 360, such that a failure in power supply 150 or in CPU 120, technical problems in the system (e.g., gateway 330), and the like, will result in telephone sets 310a-d being connected to PSTN connection 360, such that conventional telephone communications are automatically available.
It must be further emphasized that in the event of a failure relating to internet 460, CPU 320 is designed and configured to automatically "dial" the full PSTN telephone number (e.g., area code + 7-digit number) and to establish the call via PSTN 360.
In another feature of the present invention, modules such as module 375 are designed, configured, and programmed to operate partially or completely in self-learning mode. In one mode of self-learning, when a call is placed via module 375 to the second branch, communication is established between module 375 and module 475. Module 375 and module 475 are programmed to communicate various kinds of information, e.g., the respective IP numbers, the four-digit telephone numbers of each telephone set of attached to a given module, etc. It is particularly convenient to communicate this information via internet 460, however, in some systems it is possible to communicate the information via PSTN 360 as well.
This self-learning feature is built into a CPU such as CPU 320, which is designed and configured to constantly or frequently learn its environment from various communication events such as incoming calls. Thus, with each incoming call, CPU 320 records the destination number and "learns" that this number is a number belonging to system 300. This number can then be transmitted to the CPU's of other systems (such as CPU 420, or even CPU's that are not part of the intranet or enterprise environment).
Subsequently, when a call is placed to this same number, the communication can be established using the VoIP, assuming that the Quality of Service meets certain pre-determined criteria. Preferably, the CPU is designed and configured to constantly or frequently check its connection to the internet, and if both the calling line and the called line are internet-enabled, the CPU will try to establish an internet connection before trying the PSTN alternative.
In specific applications relating to systems having the four-digit dialing feature, each CPU preferably recognizes its own prefix. In a preferred embodiment, the calling CPU waits for the pre-determined number of digits (4, by way of example) to be dialed. If there is a sufficient pause after dialing this pre-determined number of digits, the CPU understands that the caller is placing a call to a four-digit extension, and puts the call through to that extension number. If the caller continues to dial additional digits, the CPU understands that the caller is not trying to call a four-digit extension, and relates to the number being dialed as an ordinary phone number.
It should be stressed that the CPU can prepare the communication with the CPU of the four-digit extension in a simultaneous fashion to the above-described procedure. Consequently, after the pre-determined pause (any one of several algorithms known and practiced in the art), the call can be established with substantially no further delay.
Another feature of the present invention is a computer telephony interface, in which, inter alia, telephony information is sent to a computer network. For example, voice messages can be sent via the inventive system to a computer as an e-mail attachment with a voice attachment.
It will be appreciated that the above descriptions are intended only to serve as examples, and although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.