System and method for measuring round trip delay of voice packets in a telephone system
Systems and methods measure a round trip delay of voice packets through a telephone system that includes a plurality of cabinets connected through a network. Each cabinet includes a link for communicating with other cabinets through the network by passing information such as voice packets. Each link includes a field programmable gate array (FPGA) that inserts and reads information in the voice packets to measure a time delay of the network. A first cabinet link sets a transmit bit in a voice packet directed to a second cabinet and starts a timer. The second cabinet monitors the transmit bit in received voice packets to determine if the bit is set. If so, the second cabinet sets a receive bit in the next outgoing voice packet directed to the first cabinet. The first cabinet monitors the receive bit in incoming voice packets and if set, stops the timer. The resulting value in the timer reflects the network delay.
1. Field of the Invention
This invention generally relates to telephone networks, and, more particularly, to a system and method for measuring a round trip time delay of voice packets in a telephone network.
2. Description of the Related Art
Typically, telephone systems for private organizations are set up as private branch exchanges (PBX). PBX sites allow for a plurality of telephones to share a set of lines for communicating between the telephones at the site and external telephones. Each telephone is connected to a cabinet. A cabinet is a physical box holding the wires, hardware, and software needed to forward information to and from the telephones.
Most cabinets at PBX sites are connected through physical means, such as fiber optic, connections. This requires many physical connectors be in place. It is preferable to use a local area network (LAN) to connect cabinets at a PBX site because typically all the users associated with that PBX already have a LAN connecting them. One problem with using a LAN is the delays created can distort the voices.
Software measurements of the delay are not accurate because they use an upper layer software protocol, and the coarse granularity software-based timers provides measurements that are sometimes an order of magnitude greater than the actual delays introduced by the network.
It would be desirable to measure delays caused by the LAN so that a customer may be notified of delay problems before the telephone system deteriorates and voices are transmitted distorted. It would also be desirable to know the delay so that if voices are distorted the customer knows that it is the LAN causing the distortion.
SUMMARY OF THE INVENTIONSystems and methods consistent with the present invention include structure and steps for measuring a round trip delay of voice packets in a telephone network.
A system for use in a telephone network consistent with the present invention comprises structure for setting a transmit bit in an outgoing packet and for starting a timer at the setting of the transmit bit and structure for reading a receive bit in a received packet and for stopping the timer in response to the reading of a set receive bit in the received packet.
A system and method consistent with the present invention include structure and steps for constructing an outgoing first voice packet, setting a transmit bit in the first voice packet, starting a timer upon the setting of the transmit bit. In one embodiment the systems and methods consistent with the present invention further include structure and steps for receiving a second voice packet, checking the second voice packet to determine if a receive bit is set, and stopping the timer if the receive bit is set.
Another system consistent with the present invention includes a timer, a transmitting protocol state machine and a receiving protocol state machine. The transmitting protocol state machine comprising structure for assembling a first voice packet from voice samples, the first voice packet including a receive bit and a transmit bit, structure for setting the transmit bit in the first voice packet, structure for starting the timer upon the setting of the transmit bit, and structure for transmitting the first voice packet. The receiving protocol state machine comprising structure for receiving a second voice packet, the second voice packet including a receive bit and a transmit bit, structure for reading the receive bit and the transmit bit in the second voice packet, structure for setting the receive bit on the first voice packet assembled by the transmitting protocol state machine in response to reading a set transmit bit in the second voice packet, and structure for stopping the timer in response to reading a set receive bit.
Another system consistent with the present invention includes a cabinet for use in a telephone network transmitting packets, the cabinet comprising a link for communicating with external devices and structure for connecting to a set of telephones. The link includes structure for setting a transmit bit in an outgoing packet and for starting a timer at the setting of the transmit bit and structure for reading a receive bit in a received packet and for stopping the timer in response to the reading of a set receive bit in the received packet.
Both the foregoing general description and the following detailed description explain examples of the invention and do not, by themselves, restrict the scope of the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGSThe accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the objects, advantages, and principles of the invention.
In the drawings,
Reference will now be made in detail to the construction and operation of implementations, consistent with the present invention, that are illustrated in the accompanying drawings. In those drawings, like elements and operations are designated with the same reference numerals where possible.
Systems consistent with the present invention provide a telephone system that measures a round trip delay of voice packets through a network as a measure of the telephone system's quality. In one implementation, the telephone system includes a network of cabinets, each including a link for communicating with other cabinets through the network by passing information such as voice packets. Each link includes a field programmable gate array (FPGA) that inserts information into and reads information from the voice packets to measure a time delay of the network. A first cabinet link sets a transmit bit in a voice packet directed to a second cabinet and starts a timer. The second cabinet monitors the transmit bit in received voice packets to determine if the bit is set. If so, the second cabinet sets a receive bit in the next outgoing voice packet directed to the first cabinet. The first cabinet monitors the receive bit in incoming voice packets and, if set, stops the timer. The resulting value in the timer reflects the network delay. If this number is greater than a predetermined value, the cabinet notifies a user through an attached terminal. Both the main cabinet and sub-cabinets can perform the functions of the first and second cabinet.
Referring to
Each cabinet 100, 110, 120, and 130 has associated telephones 104, 114, 124, and 134, respectively. The main cabinet also has access to the public switched telephone network 106. All calls are directed through the main cabinet. Therefore, telephone calls associated with any sub-cabinet directed to the public switched network 106 are connected via the main cabinet 100. Similarly, any call directed to any other telephone is directed to the main cabinet even if the telephone to receive the call is at the same cabinet as the calling telephone.
Link 300 includes main signaling processor 301 for processing telephone calls according to industry standards. The main signaling processor 301 preferably includes the intelligence to direct all telephone calls in the system. As discussed above, all calls pass through the main cabinet. The signaling processor 311 in link 310 does not have the intelligence of the main signaling processor 301. Signaling processor 311 packages signals from telephones associated with sub-cabinet 110 for forwarding to main cabinet 100 for deciphering. These signals include tones generated by hitting keys on a telephone. Using this information, the main signaling processor 301 at the main cabinet 100 can determine to which telephone a call is directed.
Voice processor 302 in link 300 gathers pulse code modulation (PCM) voice samples from telephones associated with main cabinet 100 and forwards the samples to field programmable gate array (FPGA) 400 for packaging. FPGA 400 packages the voice samples into voice packets that follow an internet protocol in an industry standard manner using FPGA processor 304. FPGA 400 also sets and reviews the CR and CT bits in the voice packet in order to measure a delay of the network consistent with the present invention. FPGA 400 passes the voice packets to the physical interface 30S, which turns the signals into voltage for placing over a wire to the network 150. Network 150 then passes the communication to link 310. Using this example, the communication is received by physical interface 318 at link 310. Physical interface 318 converts the voltage to a voice packet and forwards the same to FPGA 450. FPGA 450 processes the voice packet and reviews the CT and CR bits in order to monitor a delay time of the network as required by the present invention. FPGA 450 converts the voice packet into voice samples before forwarding to voice processor 312 which then forwards the communication to the appropriate telephone.
In one embodiment, the signaling processor is a Motorola MC68040 CPU. In another, embodiment the physical interface is a SEEQ 80C300+LXT970.
PISM 430 controls the transmission and reception of data from the physical interface 308. PISM 430 monitors physical interface 308 to see when data is available to be received, and when ready passes the data from physical interface 308 to RIPSM 42Q. TIPSM 410 converts voice samples into voice packets that follow an internet protocol and then sends the voice packets to PISM 430 for transmission over network 150. PISM 430 monitors physical interface 308 to determine when physical interface 308 is ready to receive data, and when ready passes the data to physical interface 308 for transmission over network 150. RIPSM 420 converts voice packets that follow an internet protocol into voice samples for forwarding to telephones.
The operation of the elements in
Voice processor 302 receives voice samples from telephones 104 associated with main cabinet 100. Voice processor 302 transmits the voice samples to TIPSM 410 at FPGA 400 for forwarding to network 150 (step 510). TIPSM 410 receives the voice samples and builds voice packet 1 (step 520). TIPSM 410 sets the CT bit to 1 in voice packet 1 and starts timer 440 (step 530). TIPSM 410 forwards voice packet 1 to PISM 430 (step 540). PISM 430 transmits voice packet 1 to the physical interface 308 (step 550). Physical interface 308 forwards voice packet 1 to the network 150 in the form of voltage signals (step 560). Network 150 forwards voice packet 1 to the appropriate cabinet, in this example sub-cabinet 110 (step 570).
Physical interface 318 at link 310 in sub-cabinet 110 forwards the received voice packet 1 to FPGA 450 (step 610). RIPSM 480 at FPGA 450 reviews the CT bit in voice packet 1 (step 620). RIPSM 480 determines if the CT flag is set (step 630), and if not, continues processing voice packets (step 640). If the CT bit is set, RIPSM 480 sets the CR bit to 1 in the next outgoing voice packet 2 in TIPSM 460 (step 650). Regardless of whether the CT bit is set, RIPSM 480 reformats the voice packet into PCM voice samples and passes them to voice processor 312 for forwarding to the appropriate telephone. TIPSM 460 outputs voice packet 2 to physical interface 318 for forwarding to the main cabinet 100 through the network 150 (step 660).
After the timer is read, the process begins again, with the RIPSM at the FPGA setting the CR bit in the next outgoing voice packet. Each link is simultaneously performing the function described, so that each link is measuring round trip delay of transmitting voice packets.
In another implementation, a subset of the links perform the task of measuring network delay.
In another implementation of the present invention, every RIPSM in every cabinet checks each incoming message for a set CR and/or CT bit.
In yet another implementation of the present invention, every TIPSM in every cabinet transmits each outgoing message for a set CR and/or CT bit.
In still another implementation of the present invention, the TIPSM and/or RIPSM have the capability to start and stop the timer and insert the timer value into the round trip data register.
In another implementation, the TIPSM in every cabinet sends out a voice packet every 125 microseconds while the system is in use. In this embodiment, the timer counts in units of 125 microseconds.
In another implementation, the FPGA device is a Xilinx XCV300 or a similar device having a dedicated block of RAM.
In another implementation the network is the internet
In another implementation, the timer is used for holding the round trip data value and no separate round trip data register is required.
There are many variations that may be made consistent with the present invention. For example, the implementations above specifically mention voice packets, however, the present invention may be used with other kinds of data.
The foregoing description is presented for purposes of illustration and description. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing the invention. The scope of the invention is defined by the claims and their equivalents.
Claims
1-36. (Canceled).
37. A network device for use in a network transmitting packets, the device comprising:
- a timer;
- a processor operable for setting a transmit bit in an outgoing packet and starting the timer when the transmit bit is set, and for reading a receive bit in a received packet and stopping the timer when the receive bit is read.
38. The network device in accordance with claim 37 further comprising:
- an interface coupled to the processor, the interface operable for coupling the network device to the network and for transmitting the outgoing packet.
39. The network device in accordance with claim 37 wherein the processor is further operable for reading a set transmit bit in the received packet and for setting a receive bit in another outgoing packet in response to reading the set transmit bit in the received packet.
40. The network device in accordance with claim 37 wherein the outgoing packet and the received packet are voice packets.
41. The network device in accordance with claim 37 further comprising:
- a round trip register operable for receiving a value from the timer.
42. The network device in accordance with claim 41 wherein the processor is further operable for comparing the value in the round trip data register to a predetermined value and sending an indication to a user when the value in the round trip data register is greater than the predetermined value.
43. A device for use in a network transmitting packets, the device comprising:
- a timer;
- a transmitting state machine operable for setting a transmit bit in an outgoing packet and starting the timer when the transmit bit is set; and
- a receiving state machine operable for reading a receive bit in a received packet and stopping the timer when the receive bit is read.
44. The device in accordance with claim 43 further comprising:
- an interface coupled to the transmitting state machine, the interface operable for coupling the device to the network and for transmitting the outgoing packet.
45. The device in accordance with claim 43 wherein the receiving state machine is further operable for reading a set transmit bit in the received packet and for setting a receive bit in another outgoing packet in response to reading the set transmit bit in the received packet.
46. The device in accordance with claim 43 wherein the outgoing packet and the received packet are voice packets.
47. The device in accordance with claim 43 further comprising:
- a round trip register operable for receiving a value from the timer.
48. The device in accordance with claim 47 further comprising a processing means operable for comparing the value in the round trip data register to a predetermined value and sending an indication to a user when the value in the round trip data register is greater than the predetermined value.
49. A system for use in timing the transmission of voice packets through a network, the system comprising:
- a timer;
- a processor operable for constructing an outgoing first voice packet, for setting a transmit bit in the outgoing first voice packet, and for starting the timer when the transmit bit is set.
50. The system in accordance with claim 49 further comprising:
- an interface coupled to the processor, the interface operable for coupling the system to the network and for transmitting the outgoing first voice packet.
51. The system in accordance with claim 50 wherein the interface is operable for receiving a second voice packet, and the processor is operable for checking the second voice packet to determine if a receive bit is set and stopping the timer if the receive bit is set.
52. The system in accordance with claim 51 further comprising:
- a round trip data register operable for receiving a value from the timer.
53. The system in accordance with claim 52 wherein the processor is further operable for comparing the value in the round trip data register to a predetermined value and sending an indication to a user when the value in the round trip data register is greater than the predetermined value.
54. The system in accordance with claim 49 wherein the processor is further operable for receiving a second voice packet and checking the second voice packet to determine if the transmit bit is set, and further operable for constructing an outgoing third voice packet and setting a receive bit in the outgoing third voice packet if the transmit bit is set in the received second voice packet.
55. A network device for use in a network transmitting packets, the network device comprising:
- a link for communicating with external devices over the network, the link comprising, an interface operable for coupling the link to the network and for transmitting and receiving packets, a timer, and a processor coupled to the interface, the processor operable for setting a transmit bit in an outgoing packet and starting the timer when the transmit bit is set, and for reading a receive bit in a received packet and stopping the timer when the receive bit is read.
56. The network device in accordance with claim 55 wherein the processor is further operable for reading a set transmit bit in the received packet and setting a receive bit in another outgoing packet in response to reading the set transmit bit in the received packet.
57. The network device in accordance with claim 56 wherein the outgoing packet, the another outgoing packet and the received packet are voice packets.
Type: Application
Filed: Mar 25, 2004
Publication Date: Feb 3, 2005
Patent Grant number: 8184587
Inventors: Ian McPherson (Belleville), Thornton Collins (Stirling), Andre Cyr (Belleville)
Application Number: 10/808,724