US20070121611A1 - Methods and Apparatus for Providing Voice Communications Through a Packet Network - Google Patents

Methods and Apparatus for Providing Voice Communications Through a Packet Network Download PDF

Info

Publication number
US20070121611A1
US20070121611A1 US11/668,144 US66814407A US2007121611A1 US 20070121611 A1 US20070121611 A1 US 20070121611A1 US 66814407 A US66814407 A US 66814407A US 2007121611 A1 US2007121611 A1 US 2007121611A1
Authority
US
United States
Prior art keywords
voice
channel
internet
packet
transport level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/668,144
Inventor
Jonathan Rosenberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Priority to US11/668,144 priority Critical patent/US20070121611A1/en
Publication of US20070121611A1 publication Critical patent/US20070121611A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • H04M7/1205Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks
    • H04M7/125Details of gateway equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • H04M7/1205Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6475N-ISDN, Public Switched Telephone Network [PSTN]

Definitions

  • the present invention relates generally to network systems and methods which provide voice communications through a packet network, and more specifically, to network systems and methods for providing efficient voice communication through a packet network such as the Internet.
  • a conventional telephone network 100 is illustrated in FIG. 1 and comprises, inter alia, a plurality of toll offices, such as toll offices (TS) 105 and 110 , that may be interconnected to one another to provide long distance voice and data communications for subscribers, such as the telephone users, associated with station sets S 1 and S 2 .
  • TS toll offices
  • a telephone user hereinafter also a subscriber, may establish such a connection by causing the station S 1 to go off hook and then dialing the telephone number associated with the station to which he wishes to connect, such as the station S 2 .
  • Local central office 50 associated with station S 1 collects the telephone digits as they are dialed and establishes a connection 101 to a network toll office, for example, toll office 105 which may also be referred to hereinafter as a toll switch.
  • Toll office, or switch 105 in turn, and based on the dialed telephone number that it receives from the local central office 50 , establishes a connection 102 to a so-called destination toll switch, such as toil switch 110 .
  • Destination toll switch 110 extends the connection to central office 75 associated with the station S 2 and passes to that office the dialed telephone number.
  • the latter central office responsive to receipt of the dialed digits then extends the connection 103 to station S 2 .
  • the subscribers positioned respectively at stations S 1 and S 2 may then begin to speak to one another via the established connection.
  • the ITG prompts the user for a destination telephone number, then routes the call over the Internet to a similar device at the local exchange of the destination and the destination ITG dials the end user, thereby completing the link.
  • codecs new coder/decoders
  • kbps kilobits per second
  • acceptable quality at 4 kbps.
  • the present invention is directed to systems and methods which substantially improve the efficiency of voice communications over a packetized communications system such as the Internet.
  • the invention supports the use of variable-length packets and accommodates variable jitter and loss.
  • the invention also achieves increased efficiency, in part, by multiplexing voice signals into the same transport level connection and/or packet which, for the sake of convenience, will be referred to hereinafter as the Internet although it will be recognized that other networks may be employed.
  • the system uses the real time protocol (RTP) and employs internet telephone gateways (ITGs) to bind users to channel identifiers, to indicate payload type and length, to provide channel identification and time stamps, and to indicate cessation and resumption of voice traffic from a particular user through use of, for example, marker bits.
  • RTP real time protocol
  • ITGs internet telephone gateways
  • the low overhead operation of the new system enhances the ability to support low data-rate voice communications. Since new codecs are emerging which can support near toll-quality voice communications at only 8 kilobits per second (kbps) and acceptable quality at 4 kbps, and these low data rate codecs can significantly reduce the cost of providing ITG services, the present invention's support of low data rate codecs provides an additional cost advantage.
  • the invention also supports the transmission of very low bit rate (1 kbps or less) information, to improve the quality of communications by reproducing background noise during periods of silence.
  • FIG. 1 is a block diagram of a conventional voice connection through a plain old telephone system (POTS) long distance connection.
  • POTS plain old telephone system
  • FIG. 2 is a block diagram of a multiplexed packetized voice communications system in accordance with the present invention.
  • FIG. 3 is a block diagram depicting a packet format according to the preferred embodiment of the invention.
  • FIG. 4 is a timing diagram illustrating timing issues addressed by the invention.
  • FIG. 5 is a block diagram which depicts an alternative packet format according to the present invention.
  • FIG. 6 is a block diagram which depicts another packet format according to the present invention.
  • the improved telephony system of the present invention substantially improves the efficiency of voice communications over a packet network communications system, such as the Internet, or any other packet based communications network, which interconnects private branch exchanges (PBXs) or voice access switches.
  • PBXs private branch exchanges
  • the new system employs Internet telephone gateways (ITGs) to establish a long distance connection through the Internet between two ITG locations, such as New York and Los Angeles, for example.
  • ITGs Internet telephone gateways
  • the voice calls between the gateways are then multiplexed into the same transport level connection and/or packet.
  • the connection is established and maintained so long as voice calls are being made between the locations.
  • the new system substantially increases the efficiency of such calls by employing new protocols which impose far less overhead on each call.
  • the protocols conform to the real time protocol (RTP) standards set forth for operation on the Internet.
  • RTP real time protocol
  • a number of voice calls may be, and preferably will be, multiplexed into a single packet rather than using a separate connection and, thus, a separate packet for each call.
  • the system advantageously realizes further significant increases in efficiency.
  • the inventive multiplexing system reduces overhead by increasing the effective payload without a corresponding penalty in packetization delay and, as more users are multiplexed, the payload from a particular user can be reduced in size, or the codec bit rate reduced, without an efficiency penalty. That is, in a conventional Internet telephony system, where links are established between ITGs on a call by call basis, each packet may typically include a forty byte header, even if there are only 20 bytes of payload, or voice data to be transmitted.
  • the new multiplexing system permits considerably more payload to accompany each header.
  • Another major benefit of the present multiplexing approach is that the scalability of the system is substantially improved. That is, as the number of users increases, the number of packets which arrive at the destination does not increase. Therefore, computations which are normally performed on a packet by packet basis, such as real time control protocol (RTCP) statistics collection, jitter accumulation, header processing, operating system context switching, and the like, do not increase.
  • RTCP real time control protocol
  • both end-to-end delay and losses can be reduced. These reductions arise from the fact that as a user pauses in his speech, the data stream representing his digitized speech also pauses. With the new system, however, except in the unlikely event that all users stop speaking at the same time, other users multiplexed into the packet are not silent and packets will still be sent continuously. Consequently, the system can continuously generate delay estimates from the continuously arriving packets. The system employs this continuous stream of delay estimates, rather than delay estimates received just during talk spurts, as in the conventional case, to dynamically adapt playout buffers at each receiver thus ensuring a more efficient utilization with the present invention.
  • FIG. 2 provides a functional overview of a presently preferred embodiment of the telephone system 200 in accordance with the present invention.
  • Stations S 1 and S 2 and central offices 50 and 75 are as described in relation to FIG. 1 .
  • Stations S 3 and S 4 , and central offices 150 and 175 are similar to stations S 1 , S 2 and central offices 50 , 75 , respectively.
  • stations such as stations S 1 and S 2 are connected through ITGs 200 and 201 to a packet-based communication network 202 , such as the Internet 202 .
  • Each ITG 200 includes a network card 204 which is connected to the internet 202 and, inter alia, provides the digital packets of multiplexed telephone calls which are passed onto the Internet 202 .
  • the new, multiplexed, packets are preferably organized as set forth in greater detail in relation to the discussion of FIGS. 5, 6 , and 7 below.
  • the network card 204 is also connected through a bus 206 to a controller 208 which oversees operation of the ITG, to a digital signal processor (DSP) 210 which provides filtering and compression of digitized voice signals, to a buffer 212 which “plays out” received telephone calls, and to a telephony processor 214 which terminates calls, processes signals and converts telephone signals from the sets S 1 -Sn between analog and digital form.
  • DSP digital signal processor
  • the controller controls operation of a multiplexer/demultiplexer 203 which combines various voice messages onto a single connection and also controls operation of the playout buffer 212 .
  • a telephone call originating at station S 1 would be routed to a central office 50 and, from there, to an ITG 200 , located, for example, in Los Angeles.
  • the telephone call from station S 1 or S 3 would be multiplexed with a telephone call from station S 3 , or another station, through the Internet 202 to another, destination, ITG 201 , located in New York, for example, where the calls are demultiplexed, fed to a playout buffer 212 and, in the end, delivered by a telephony processor 214 to station S 2 or S 4 .
  • a connection is established between ITGs, various users may be added to or deleted from the connection, with each user's virtual connection constituting a channel, but the connection's lifetime is terminated only when all users are disconnected from the system.
  • channels may be re-used when one user terminates a call each user is bound to a channel for the duration of their call.
  • the new telephone system, 200 multiplexes a plurality of telephone calls using a new protocol exemplified by the packet format of FIG. 3 .
  • Each word of the packet is 32 bits wide and the first three words, the RTP header, conform with the real time protocol set forth in what is known as the RTP protocol.
  • the RTP protocol is known in the art and discussed, for example, in H. Schulzrinne, S.Casner, R Frederick, F. Jacobson, RTP: A Transport Protocol for Real-Time Applications, Audio Visual Working Group Request for Comments RFC 1889, IETF, January 1996, and in H.
  • the new protocol provides for the communication of a plurality of real time voice-related data streams within each packet.
  • the protocol provides timing recovery, sequencing and payload identification for the voice-related data streams.
  • the protocol of the present invention provides delineation, identification, and payload identification, while supporting variable-length blocks which represent groups of one or more frames from individual users, all with relatively low overhead. That is, data from different users is clearly delineated, the channel to which data belongs is clearly identified, and payload type is identified to indicate the codec in use by each user.
  • This arrangement allows for changes in coding type during the lifetime of a channel, for example, when a user changes coding type due to varying congestion levels in the network.
  • the new system permits the use of variable rate codecs.
  • the system binds telephone numbers to channel identifiers by signaling through a companion connection before data transmission begins.
  • the first three words of a packet 300 constitute an RTP header.
  • the three coherent synchronization count bits, labeled CC in the first word of the RTP header, are set to zero.
  • a marker bit, labeled M has no significance in this protocol since each block includes its own marker bit in a dedicated header.
  • a field set aside for payload type, labeled PT includes a number which indicates that the packet conforms to the protocol in accordance with the present invention.
  • the second word of the header, labeled timestamp indicates the time at which the first sample among all the blocks within the packet was generated.
  • each active user is represented by a data block within each packet.
  • a one word header 302 precedes each block of data 304 , labeled payload 1 .
  • An ITG parses the blocks until the end of the RTP packet is reached to determine the number of blocks 304 within the packet 300 .
  • Each header 302 includes eight bits for channel identification, labeled ID. Since each connection may last for days, weeks, or even months, channel IDs will be re-used as various users initiate and terminate their telephone calls. In order to reduce overhead, the channel ID is kept relatively short.
  • ID labels 0 to 254 are used as direct identifiers, that is 255 channels are associated with corresponding bit combinations. Channel ID label 255 is reserved as an escape code which permits the header to be expanded in order to expand the length, payload type, or channel ID codings.
  • a source cannot re-use a channel identifier until it has received an acknowledge, step 220 , from the destination after requesting a channel setup, step 221 , that that particular channel was successfully torn down and a source does not begin to send data step 222 , from a particular channel in the connection stream until it has received an acknowledge from the destination that the setup is complete.
  • a source sends a teardown message, step 224 , it stops sending data, step 228 , in the stream for that channel and, in the signaling message, it indicates the sequence number of the packet which contained the last block for that channel, step 226 . The sequence number increments by one for each packet.
  • a receiver when a receiver receives a teardown message, it checks the highest sequence number received to that point in time, step 230 . If that number is greater than the sequence number indicated in the teardown message, the channel is torn down, step 232 , and any further blocks containing that channel ID are discarded. On the other hand, if the greatest sequence number received to that point in time is less than the sequence number indicated in the teardown message, blocks from that channel are accepted until the received tea-down sequence number exceeds the channel ID number, at which point the channel is torn down and no further blocks with that channel ID are accepted.
  • the destination When a setup message is received, the destination will begin to accept blocks with the given channel identifier, step 236 , but only if the sequence numbers of the packets in which they reside is greater than the teardown sequence number, step 234 .
  • sequence numbers allows the receiver to separate the old blocks associated with the channel ID from the new blocks associated with the same channel ID. In addition to ensuring that data blocks are not routed to the wrong channel, this approach ensures that the end of a speech sequence will not be clipped if the last data packets arrive after the teardown is received.
  • Each receiver maintains a table of sequence number values for each channel ID.
  • the source could maintain a linked list of free channel IDs which is initialized to contain all the channel IDs in order.
  • the channel ID is taken from the top of the list and when the channel is torn down, its ID is placed on the bottom of the list. This maximizes the time between channel ID refuse and reduces the probability of conflict.
  • each block header 302 also includes eight bits, labeled length, to indicate the number of words in the block. One bit is set aside as a marker bit, labeled M, which indicates the beginning of a talk spurt. Eleven bits, labeled TimeStamp Offset, are set aside within each header to provide an offset in time for each block, relative to the timestamp of the RTP header. The size of the offset field is chosen so that it is capable of indicating the difference in time between the earliest and latest samples within a packet.
  • the offset field is set at eleven bits to thereby span the 200 ms with 1600 ticks of the 125 ⁇ s clock.
  • This time stamping approach allows for the recovery of periods of silence and resyichronization in the event of the loss of a packet.
  • the time stamping also allows users to have data in the same packet even if their data is not generated synchronously. Time stamp offsets capitalize on the fact that various blocks are likely to be close to one another to reduce the number of bits required for the time stamp.
  • Each user within a packet may use a different frame size.
  • user 1 may send a 20 ms frame
  • user 2 a 10 ms and user 3 a 15 ms frame, and so on, all within the same packet.
  • these frames may be arbitrarily aligned, that is, the 20 ms frame may begin 5.3 ms after the 10 ms frame.
  • An ITG may send packets at any point, with the packet containing data from those users whose frames have been generated before the packet departure time.
  • different frame sizes and time alignments may be supported, but all the frames within a given packet are of the same size and are all aligned in time. That is, the differences are permitted from packet to packet in that packet organization.
  • the timing diagram of FIG. 4 illustrates some of the timing considerations addressed by the new system and its associated protocols.
  • Packets may contain frames from some or all of the users connected at a given time. Timing related to the data sent by three sources, labeled Source A, Source B, and Source C is illustrated in FIG. 4 .
  • t 1 -t 8 packets are sent. For example, two blocks are sent from Source C within the first three packets, that is by time t 3 , while only one block is sent from Source A and two blocks are sent from source B, within the same time period. If a packet is lost, the variability in the amount and time alignment of data in each packet makes it difficult to reconstruct how much time had elapsed, based solely on sequence numbers.
  • jitter and delay computations are complicated by the presence of more than one user, yet such computations are used for RTCP reporting and, possibly, for the estimation of network delays which are, in turn, used in dynamic playout buffering.
  • blocks are allowed to vary in size, either within a packet or from packet to packet, or if, as indicated by the completion of Source B's first block before time tl when the first packet is sent, a block is not sent immediately after it is completed, different blocks within a given packet may experience different delay and jitter.
  • adaptive playout buffering is performed separately for each user, which requires the computation and storage of delays for each user.
  • delay estimates based on some measure derived from all the users may be employed. For example, the maximum delay between the arrival time at the receiver and the generation time, as indicated by the block time stamp, may be employed as a conservative delay estimate.
  • the payload type identifier labeled PT, employs four bits to identify the coding of the payload.
  • the payload type identifier field located along with the payload, he system may effect more robust rate control, an issue when multiple channels are multiplexed together.
  • a table of encodings for the payload type is preferably signaled at the beginning of a connection or may be known a priori. Since any particular pair of ITGs will generally support only a few codecs, dynamically setting the codings of the PT bit makes a more compact representation possible without restricting the set of codecs which may be used.
  • the preferred embodiment exemplified by the packet organization of FIG. 3 , is able to support multiple frame sizes within a single packet. However, it employs a relatively limited payload type field and it requires a thirty-two-bit header for each payload block.
  • the thirty-two bit header may be burdensome, particularly for low bit rate codecs.
  • An alternative, more compact, packet organization is set forth in the block diagram of FIG. 5 , where a sixteen bit block header is employed.
  • the block headers are all contiguously located at the beginning of the packet immediately following the RTP packet header. If the total length of the header fields is not a multiple of thirty-two, the last block header is padded out to thirty-two and fields within the block header do not break across packet boundaries.
  • This packet organization relies upon the fact that all the blocks in a packet are time-aligned and have the same frame length, thus permitting the elimination of the timestamp offset field which is present in the packet organization of FIG. 3 .
  • This restriction does not imply that identical codecs or block sizes must be employed, as many voice codecs operate with a 20 ms or 50 ms frame size. Sequence numbers and frame size completely determine the timing so long as one user is active.
  • a global timestamp which indicates the sample time of the first sample in each block is employed. Since each block has identical timing, the timestamp is the same for each block and therefore, a single timestamp for the entire packet is sufficient for timing recovery.
  • different sized frames are supported by using a different synchronization source (SSRC) for each frame size in use and sequence numbers are interpreted for each SSRC separately so that, for example, a block which contains all 10 ms frames are placed within a packet with a unique SSRC that is used only with packets having 10 ms frames, Jitter and delay computations are performed for each SSRC separately, thus making jitter and delay estimates more accurate, and multiple jitter, delay, loss, and so on, one for each frame size, are reported to the source.
  • the first three words of the packet constitute the RTP packet header, as previously described.
  • the CC field is always set to zero and the marker bits and payload type are undefined.
  • the timestamp indicates the time at which the first sample of all blocks is generated.
  • the SSRC is different for each frame size, but is randomly chosen so that, for example, 10 ms frames would have a different SSRC than 15 ms frames.
  • the first bit of each sixteen-bit block header is an expand bit, labeled, E, which, when set, indicates that the sixteen bits immediately following the header indicate the length of the corresponding block.
  • E expand bit
  • the length of the corresponding block is derived from the payload type which could indicate, for example, three 30 ms frames.
  • the six bits following the expand bit indicate the payload type, that is, the type of encoding employed and the remaining eight bits are dedicated to the channel ID.
  • the first two blocks have standard lengths indicated in the PT field.
  • the third block uses the expansion bit to indicate the block length
  • the fourth uses the PT field
  • the fifth uses the expansion bit to indicate, for example, four 30 ms frames
  • the sixth and seventh use the PT field.
  • the last sixteen bits of the header are padded out to thirty-two bits.
  • the new system employs packets as illustrated in the block diagram of FIG. 6 .
  • This approach is similar to that just discussed in relation to FIG. 5 , however, the per-block header is reduced to one byte, with one expansion bit, EF, one marker bit, M, and six bits of payload type.
  • the expansion bit is clear, the length field is only eight bits long, rather than the sixteen bits of the previously discussed embodiment. Not only does this reduce overhead, it also guarantees that fields remain aligned on byte boundaries.
  • the mask bits are located in the beginning of the packet, and are preceded by an eight-bit state number. If the number of active channels is not a multiple of thirty-two, the mask field is padded out to a full word. There are four active channels illustrated in FIG.
  • the first block is of a standard length, and the second has its expansion bit set, so that an eight-bit length field follows immediately.
  • the remaining two blocks are also of a standard length, so that the last twenty-four bits of the header are padded out to a word boundary.
  • the system takes advantage of the fact that both the source and destination know the set of active connections and their channel identifiers from the signaling messages, to reduce the number of bits required to indicate the channel ID. If the blocks are placed in a packet in order of increasing channel ID, very little information need be sent. In fact, without silence suppression, channel activity and the presence of a block in a packet would likely be equivalent. However, silence suppression is used and, even if it were not, it is possible for the voice codecs at the ITG not to have their framing synchronized, so that a packet may not contain the data from all users.
  • the source and destination do not have a consistent view of the state of the system since there is a delay while signaling messages are in transit. Therefore, a mask is sent in the header of each packet, with each bit in the mask indicating whether data from a corresponding channel is present within the packet or not.
  • Channel IDs are mapped to mask bits in increasing order, so that if the lowest channel has no data in the packet, the lowest order bit is set to zero, if the second lowest channel has no data, the second lowest order bit is set to zero, and so on. Since the source and destination agree on the number of active connections at any point in time, both the source and destination are aware of the number of bits required for the mask.
  • a state number field located in each packet header.
  • the field is initialized to a value of zero but for illustrative purposes, assume that its value is N. If the source wishes to tear down a channel, it sends a tear down message to the destination, but it continues to send data for that channel (if it does not send data, it must set the bit in the bit mask corresponding to that channel to zero). When the destination receives the message, it replies with an acknowledge message. When the acknowledge is received by the source, the source considers the channel tom down, and no longer sends data for it, nor considers it in computing the mask. In the packet where this happens, the source also increments the state-number field to N+1.
  • the destination knows that the source will do this, and will therefore consider the state changed for all packets whose value of the field is N+1 or greater.
  • the field is further increased. Even if packets are lost, the value of the state-number field for any correctly received packet completely tells the destination the state of the system as seen in that packet. Furthermore, it is not necessary to wait for a particular setup or teardown to be acknowledged before requesting another setup or teardown.
  • the number of bits for the state-number field is set large enough to represent the maximum number of state changes which can have taken effect during a round trip time.
  • An additional exchange may be implemented. After the destination receives a packet with a state number greater than N, it destroys the state related to N, and sends back a free state N message, indicating to the destination that state N is now de-allocated, and can be used again. Until such a message is received, the source does not re-use state N. This is, essentially, a window-base flow control, where the flow is equal to changes in state. With this additional implementation, the number of bits dedicated to the state number can be safely reduced, and the destination will never confuse the state regardless of the number of state-number bits employed.
  • the source may send the complete state of the system with each signaling message, along with the state-number field for which the state takes effect. This approach insures that, even in the event of a system failure, if an error in processing or hardware failure at either end causes a loss of synchronization, for example, the system state will be refreshed whenever a new connection is set up or torn down. Additionally, the state may be sent periodically to improve system robustness.

Abstract

A communications system multiplexes voice communications signals onto one or more transport level connections established through a packetized network, such as the Internet. The invention supports the use of variable-length packets and accommodates variable jitter. The system conforms to real time protocol (RTP) and employs internet telephone gateways (ITGs) to bind users to channel identifiers, to indicate payload type and length, to provide channel identification and time stamps, and to indicate cessation and resumption of voice traffic from a particular user through use of, for example, marker bits.

Description

    BACKGROUND OF THE INVENTION
  • This application is a continuation of U.S. application Ser. No. 09/977,643, filed Oct. 16, 2001, now U.S. Pat. No. 7,170,887, which is a continuation of U.S. application Ser. No. 08/959,794, filed Oct. 29, 1997, now U.S. Pat. No. 6,304,567, and claims the benefit of U.S. Provisional Application No. 60/032,031, filed Nov. 26, 1996.
  • FIELD OF THE INVENTION
  • The present invention relates generally to network systems and methods which provide voice communications through a packet network, and more specifically, to network systems and methods for providing efficient voice communication through a packet network such as the Internet.
  • DESCRIPTION OF THE RELATED ART
  • A conventional telephone network 100 is illustrated in FIG. 1 and comprises, inter alia, a plurality of toll offices, such as toll offices (TS) 105 and 110, that may be interconnected to one another to provide long distance voice and data communications for subscribers, such as the telephone users, associated with station sets S1 and S2. The manner in which a telephone user, for example, the user associated with the station S1, establishes via network 100 a telephone connection to another such user, for example, the user associated with the station S2, is well known and will not be described in detail herein. However, it suffices to say that a telephone user, hereinafter also a subscriber, may establish such a connection by causing the station S1 to go off hook and then dialing the telephone number associated with the station to which he wishes to connect, such as the station S2. Local central office 50 associated with station S1 collects the telephone digits as they are dialed and establishes a connection 101 to a network toll office, for example, toll office 105 which may also be referred to hereinafter as a toll switch. Toll office, or switch 105, in turn, and based on the dialed telephone number that it receives from the local central office 50, establishes a connection 102 to a so-called destination toll switch, such as toil switch 110. Destination toll switch 110, in turn, extends the connection to central office 75 associated with the station S2 and passes to that office the dialed telephone number. The latter central office responsive to receipt of the dialed digits then extends the connection 103 to station S2. The subscribers positioned respectively at stations S1 and S2 may then begin to speak to one another via the established connection.
  • Since the charges for long distance services, that is, for connections such as the link between toll switches 105 and 110, typically amount to several dollars for every hour of connection time, lower-cost alternatives would be highly desirable. With the growth of the Internet and the increasing sophistication of Internet subscribers, the Internet could be employed to provide the long distance portion of such a telephone call. Since Internet access is often provided for a few tens of dollars per month, employing the Internet in this manner could save a frequent user hundreds of dollars per month. Even though the Internet is a relatively lossy medium due to the system overheads from uncontrolled access, telephone connections of acceptable quality are possible. Current Internet-based long distance services permit a user to dial a local access number which connects the user to an Internet Telephone Gateway (ITG). The ITG prompts the user for a destination telephone number, then routes the call over the Internet to a similar device at the local exchange of the destination and the destination ITG dials the end user, thereby completing the link. Although such services permit an Internet user to establish a telephone call, using the Internet for the long distance portion of the call, current approaches tend to employ protocols to establish and tear down a new Internet connection with each individual call and the conventional Internet protocols used to establish telephone calls are relatively inefficient, requiring excessive overhead, because the protocols were established to provide extensive feature sets for digital communications links, not for voice communications which, with analog telephones operating at either endpoint, do not require and cannot use the feature sets. Additionally, voice communications at relatively low data-rates are supported by emerging system components. That is, new coder/decoders (codecs) are emerging which can support near toll-quality voice communications at only 8 kilobits per second (kbps) and acceptable quality at 4 kbps. These low data rate codecs can significantly reduce the cost of providing ITG services.
  • Consequently, it would be highly desirable to provide long distance telephone services over a packet network, such as the Internet, and to increase the efficiency of the connections thereby established while supporting low data rate voice communications. Additionally, voice applications are important for other packet networks, such as the connection of private branch exchanges or the connection of voice access switches by a packet network. Improvements in efficiency are highly desirable for these applications as well.
  • SUMMARY OF THE INVENTION
  • The present invention is directed to systems and methods which substantially improve the efficiency of voice communications over a packetized communications system such as the Internet. The invention supports the use of variable-length packets and accommodates variable jitter and loss. The invention also achieves increased efficiency, in part, by multiplexing voice signals into the same transport level connection and/or packet which, for the sake of convenience, will be referred to hereinafter as the Internet although it will be recognized that other networks may be employed, The system uses the real time protocol (RTP) and employs internet telephone gateways (ITGs) to bind users to channel identifiers, to indicate payload type and length, to provide channel identification and time stamps, and to indicate cessation and resumption of voice traffic from a particular user through use of, for example, marker bits. Additionally, the low overhead operation of the new system enhances the ability to support low data-rate voice communications. Since new codecs are emerging which can support near toll-quality voice communications at only 8 kilobits per second (kbps) and acceptable quality at 4 kbps, and these low data rate codecs can significantly reduce the cost of providing ITG services, the present invention's support of low data rate codecs provides an additional cost advantage. The invention also supports the transmission of very low bit rate (1 kbps or less) information, to improve the quality of communications by reproducing background noise during periods of silence.
  • These and other features, aspects, and advantages of the invention will be apparent to those skilled in the art from the following detailed description, taken together with the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a conventional voice connection through a plain old telephone system (POTS) long distance connection.
  • FIG. 2 is a block diagram of a multiplexed packetized voice communications system in accordance with the present invention.
  • FIG. 3 is a block diagram depicting a packet format according to the preferred embodiment of the invention.
  • FIG. 4 is a timing diagram illustrating timing issues addressed by the invention.
  • FIG. 5 is a block diagram which depicts an alternative packet format according to the present invention.
  • FIG. 6 is a block diagram which depicts another packet format according to the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • The improved telephony system of the present invention substantially improves the efficiency of voice communications over a packet network communications system, such as the Internet, or any other packet based communications network, which interconnects private branch exchanges (PBXs) or voice access switches. In a presently preferred embodiment, the new system employs Internet telephone gateways (ITGs) to establish a long distance connection through the Internet between two ITG locations, such as New York and Los Angeles, for example. The voice calls between the gateways are then multiplexed into the same transport level connection and/or packet. Rather than establishing and tearing down a connection for each voice call, as conventional Internet voice communications systems do, the connection is established and maintained so long as voice calls are being made between the locations. The new system substantially increases the efficiency of such calls by employing new protocols which impose far less overhead on each call. Although new, the protocols conform to the real time protocol (RTP) standards set forth for operation on the Internet. Additionally, by multiplexing the calls between ITGs, a number of voice calls may be, and preferably will be, multiplexed into a single packet rather than using a separate connection and, thus, a separate packet for each call. Thus, the system advantageously realizes further significant increases in efficiency.
  • The inventive multiplexing system reduces overhead by increasing the effective payload without a corresponding penalty in packetization delay and, as more users are multiplexed, the payload from a particular user can be reduced in size, or the codec bit rate reduced, without an efficiency penalty. That is, in a conventional Internet telephony system, where links are established between ITGs on a call by call basis, each packet may typically include a forty byte header, even if there are only 20 bytes of payload, or voice data to be transmitted. The new multiplexing system permits considerably more payload to accompany each header. Another major benefit of the present multiplexing approach is that the scalability of the system is substantially improved. That is, as the number of users increases, the number of packets which arrive at the destination does not increase. Therefore, computations which are normally performed on a packet by packet basis, such as real time control protocol (RTCP) statistics collection, jitter accumulation, header processing, operating system context switching, and the like, do not increase.
  • In addition to improving efficiency, reducing delay, and improving scalability, both end-to-end delay and losses can be reduced. These reductions arise from the fact that as a user pauses in his speech, the data stream representing his digitized speech also pauses. With the new system, however, except in the unlikely event that all users stop speaking at the same time, other users multiplexed into the packet are not silent and packets will still be sent continuously. Consequently, the system can continuously generate delay estimates from the continuously arriving packets. The system employs this continuous stream of delay estimates, rather than delay estimates received just during talk spurts, as in the conventional case, to dynamically adapt playout buffers at each receiver thus ensuring a more efficient utilization with the present invention.
  • The block diagram of FIG. 2 provides a functional overview of a presently preferred embodiment of the telephone system 200 in accordance with the present invention. Stations S1 and S2 and central offices 50 and 75 are as described in relation to FIG. 1. Stations S3 and S4, and central offices 150 and 175 are similar to stations S1, S2 and central offices 50, 75, respectively. However, rather than being connected to one another through toll switches, as in the conventional long distance connection of FIG. 1, stations such as stations S1 and S2 are connected through ITGs 200 and 201 to a packet-based communication network 202, such as the Internet 202.
  • Each ITG 200 includes a network card 204 which is connected to the internet 202 and, inter alia, provides the digital packets of multiplexed telephone calls which are passed onto the Internet 202. The new, multiplexed, packets are preferably organized as set forth in greater detail in relation to the discussion of FIGS. 5, 6, and 7 below. The network card 204 is also connected through a bus 206 to a controller 208 which oversees operation of the ITG, to a digital signal processor (DSP) 210 which provides filtering and compression of digitized voice signals, to a buffer 212 which “plays out” received telephone calls, and to a telephony processor 214 which terminates calls, processes signals and converts telephone signals from the sets S1-Sn between analog and digital form. The controller controls operation of a multiplexer/demultiplexer 203 which combines various voice messages onto a single connection and also controls operation of the playout buffer 212. In the new telephony system, a telephone call originating at station S1, for example, would be routed to a central office 50 and, from there, to an ITG 200, located, for example, in Los Angeles. At the source ITG 200 the telephone call from station S1 or S3 would be multiplexed with a telephone call from station S3, or another station, through the Internet 202 to another, destination, ITG 201, located in New York, for example, where the calls are demultiplexed, fed to a playout buffer 212 and, in the end, delivered by a telephony processor 214 to station S2 or S4. Once such a connection is established between ITGs, various users may be added to or deleted from the connection, with each user's virtual connection constituting a channel, but the connection's lifetime is terminated only when all users are disconnected from the system. In order that channels may be re-used when one user terminates a call each user is bound to a channel for the duration of their call.
  • In the presently preferred embodiment, the new telephone system, 200 multiplexes a plurality of telephone calls using a new protocol exemplified by the packet format of FIG. 3. Each word of the packet is 32 bits wide and the first three words, the RTP header, conform with the real time protocol set forth in what is known as the RTP protocol. The RTP protocol is known in the art and discussed, for example, in H. Schulzrinne, S.Casner, R Frederick, F. Jacobson, RTP: A Transport Protocol for Real-Time Applications, Audio Visual Working Group Request for Comments RFC 1889, IETF, January 1996, and in H. Schullzrinne, “RTP Profile for Audio and Video Conferences with Minimal Control”, Audio Visual Working Group Request for Comments PFC 1890, IETF, January 1996, which are incorporated by reference herein in their entirety. The new protocol provides for the communication of a plurality of real time voice-related data streams within each packet. The protocol provides timing recovery, sequencing and payload identification for the voice-related data streams.
  • Unlike conventional switched telephone networks, where the switches effectively encode each telephone call instantaneously, timing is more problematic in a system which relies upon a medium such as the Internet. In general, the protocol of the present invention provides delineation, identification, and payload identification, while supporting variable-length blocks which represent groups of one or more frames from individual users, all with relatively low overhead. That is, data from different users is clearly delineated, the channel to which data belongs is clearly identified, and payload type is identified to indicate the codec in use by each user. This arrangement allows for changes in coding type during the lifetime of a channel, for example, when a user changes coding type due to varying congestion levels in the network. By supporting variable length blocks from a particular user, the new system permits the use of variable rate codecs.
  • In the currently preferred embodiment, the system binds telephone numbers to channel identifiers by signaling through a companion connection before data transmission begins. In the preferred format of FIG. 3, the first three words of a packet 300 constitute an RTP header. The three coherent synchronization count bits, labeled CC in the first word of the RTP header, are set to zero. A marker bit, labeled M, has no significance in this protocol since each block includes its own marker bit in a dedicated header. A field set aside for payload type, labeled PT, includes a number which indicates that the packet conforms to the protocol in accordance with the present invention. The second word of the header, labeled timestamp, indicates the time at which the first sample among all the blocks within the packet was generated.
  • In this preferred embodiment, each active user is represented by a data block within each packet. A one word header 302 precedes each block of data 304, labeled payload 1. An ITG parses the blocks until the end of the RTP packet is reached to determine the number of blocks 304 within the packet 300. Each header 302 includes eight bits for channel identification, labeled ID. Since each connection may last for days, weeks, or even months, channel IDs will be re-used as various users initiate and terminate their telephone calls. In order to reduce overhead, the channel ID is kept relatively short. In this preferred embodiment, ID labels 0 to 254 are used as direct identifiers, that is 255 channels are associated with corresponding bit combinations. Channel ID label 255 is reserved as an escape code which permits the header to be expanded in order to expand the length, payload type, or channel ID codings.
  • When channels are re-used, there is a danger that data from one channel could be routed to another. For example, when one channel is torn down and a new one is immediately set up using the same channel ID, data packets from the old channel may be played out to the new user of the channel ID if the data packets have been significantly delayed within the network. The new system, as illustrated in the flow chart of FIG. 2B, ensures that such misdirection does not occur by supporting a two-way handshake for all control messages. That is, a source cannot re-use a channel identifier until it has received an acknowledge, step 220, from the destination after requesting a channel setup, step 221, that that particular channel was successfully torn down and a source does not begin to send data step 222, from a particular channel in the connection stream until it has received an acknowledge from the destination that the setup is complete. Additionally, when a source sends a teardown message, step 224, it stops sending data, step 228, in the stream for that channel and, in the signaling message, it indicates the sequence number of the packet which contained the last block for that channel, step 226. The sequence number increments by one for each packet. Furthermore, when a receiver receives a teardown message, it checks the highest sequence number received to that point in time, step 230. If that number is greater than the sequence number indicated in the teardown message, the channel is torn down, step 232, and any further blocks containing that channel ID are discarded. On the other hand, if the greatest sequence number received to that point in time is less than the sequence number indicated in the teardown message, blocks from that channel are accepted until the received tea-down sequence number exceeds the channel ID number, at which point the channel is torn down and no further blocks with that channel ID are accepted. When a setup message is received, the destination will begin to accept blocks with the given channel identifier, step 236, but only if the sequence numbers of the packets in which they reside is greater than the teardown sequence number, step 234. The use of sequence numbers allows the receiver to separate the old blocks associated with the channel ID from the new blocks associated with the same channel ID. In addition to ensuring that data blocks are not routed to the wrong channel, this approach ensures that the end of a speech sequence will not be clipped if the last data packets arrive after the teardown is received. Each receiver maintains a table of sequence number values for each channel ID.
  • Alternatively, the source could maintain a linked list of free channel IDs which is initialized to contain all the channel IDs in order. When a new channel is to be established, the channel ID is taken from the top of the list and when the channel is torn down, its ID is placed on the bottom of the list. This maximizes the time between channel ID refuse and reduces the probability of conflict.
  • In addition to channel ID, each block header 302 also includes eight bits, labeled length, to indicate the number of words in the block. One bit is set aside as a marker bit, labeled M, which indicates the beginning of a talk spurt. Eleven bits, labeled TimeStamp Offset, are set aside within each header to provide an offset in time for each block, relative to the timestamp of the RTP header. The size of the offset field is chosen so that it is capable of indicating the difference in time between the earliest and latest samples within a packet. For example, if one assumes a 125 microsecond (μs) clock and 200 millisecond (ms) packetization delay, the offset field is set at eleven bits to thereby span the 200 ms with 1600 ticks of the 125 μs clock. This time stamping approach allows for the recovery of periods of silence and resyichronization in the event of the loss of a packet. The time stamping also allows users to have data in the same packet even if their data is not generated synchronously. Time stamp offsets capitalize on the fact that various blocks are likely to be close to one another to reduce the number of bits required for the time stamp.
  • Each user within a packet may use a different frame size. For example, user 1 may send a 20 ms frame, user 2 a 10 ms and user 3 a 15 ms frame, and so on, all within the same packet. Additionally, these frames may be arbitrarily aligned, that is, the 20 ms frame may begin 5.3 ms after the 10 ms frame. An ITG may send packets at any point, with the packet containing data from those users whose frames have been generated before the packet departure time. Alternatively, as discussed below in relation to FIG. 5, different frame sizes and time alignments may be supported, but all the frames within a given packet are of the same size and are all aligned in time. That is, the differences are permitted from packet to packet in that packet organization.
  • The timing diagram of FIG. 4 illustrates some of the timing considerations addressed by the new system and its associated protocols. Packets may contain frames from some or all of the users connected at a given time. Timing related to the data sent by three sources, labeled Source A, Source B, and Source C is illustrated in FIG. 4. At various times, labeled t1-t8, packets are sent. For example, two blocks are sent from Source C within the first three packets, that is by time t3, while only one block is sent from Source A and two blocks are sent from source B, within the same time period. If a packet is lost, the variability in the amount and time alignment of data in each packet makes it difficult to reconstruct how much time had elapsed, based solely on sequence numbers. Additionally, jitter and delay computations are complicated by the presence of more than one user, yet such computations are used for RTCP reporting and, possibly, for the estimation of network delays which are, in turn, used in dynamic playout buffering. If blocks are allowed to vary in size, either within a packet or from packet to packet, or if, as indicated by the completion of Source B's first block before time tl when the first packet is sent, a block is not sent immediately after it is completed, different blocks within a given packet may experience different delay and jitter. In the presently preferred embodiment, adaptive playout buffering is performed separately for each user, which requires the computation and storage of delays for each user. Alternatively, delay estimates based on some measure derived from all the users may be employed. For example, the maximum delay between the arrival time at the receiver and the generation time, as indicated by the block time stamp, may be employed as a conservative delay estimate.
  • Returning to the discussion of FIG. 3, the payload type identifier, labeled PT, employs four bits to identify the coding of the payload. With the payload type identifier field located along with the payload, he system may effect more robust rate control, an issue when multiple channels are multiplexed together. A table of encodings for the payload type is preferably signaled at the beginning of a connection or may be known a priori. Since any particular pair of ITGs will generally support only a few codecs, dynamically setting the codings of the PT bit makes a more compact representation possible without restricting the set of codecs which may be used.
  • The preferred embodiment, exemplified by the packet organization of FIG. 3, is able to support multiple frame sizes within a single packet. However, it employs a relatively limited payload type field and it requires a thirty-two-bit header for each payload block. The thirty-two bit header may be burdensome, particularly for low bit rate codecs. An alternative, more compact, packet organization is set forth in the block diagram of FIG. 5, where a sixteen bit block header is employed. The block headers are all contiguously located at the beginning of the packet immediately following the RTP packet header. If the total length of the header fields is not a multiple of thirty-two, the last block header is padded out to thirty-two and fields within the block header do not break across packet boundaries.
  • This packet organization relies upon the fact that all the blocks in a packet are time-aligned and have the same frame length, thus permitting the elimination of the timestamp offset field which is present in the packet organization of FIG. 3. This restriction does not imply that identical codecs or block sizes must be employed, as many voice codecs operate with a 20 ms or 50 ms frame size. Sequence numbers and frame size completely determine the timing so long as one user is active. A global timestamp which indicates the sample time of the first sample in each block is employed. Since each block has identical timing, the timestamp is the same for each block and therefore, a single timestamp for the entire packet is sufficient for timing recovery.
  • In the embodiment of FIG. 5, different sized frames are supported by using a different synchronization source (SSRC) for each frame size in use and sequence numbers are interpreted for each SSRC separately so that, for example, a block which contains all 10 ms frames are placed within a packet with a unique SSRC that is used only with packets having 10 ms frames, Jitter and delay computations are performed for each SSRC separately, thus making jitter and delay estimates more accurate, and multiple jitter, delay, loss, and so on, one for each frame size, are reported to the source. The first three words of the packet constitute the RTP packet header, as previously described. In this embodiment the CC field is always set to zero and the marker bits and payload type are undefined. The timestamp indicates the time at which the first sample of all blocks is generated. The SSRC is different for each frame size, but is randomly chosen so that, for example, 10 ms frames would have a different SSRC than 15 ms frames.
  • The first bit of each sixteen-bit block header is an expand bit, labeled, E, which, when set, indicates that the sixteen bits immediately following the header indicate the length of the corresponding block. When the expand bit E is clear, the length of the corresponding block is derived from the payload type which could indicate, for example, three 30 ms frames. The six bits following the expand bit indicate the payload type, that is, the type of encoding employed and the remaining eight bits are dedicated to the channel ID. There are seven blocks in the example of FIG. 5. The first two blocks have standard lengths indicated in the PT field. The third block uses the expansion bit to indicate the block length, the fourth uses the PT field, the fifth uses the expansion bit to indicate, for example, four 30 ms frames, and the sixth and seventh use the PT field. The last sixteen bits of the header are padded out to thirty-two bits.
  • In another embodiment, the new system employs packets as illustrated in the block diagram of FIG. 6. This approach is similar to that just discussed in relation to FIG. 5, however, the per-block header is reduced to one byte, with one expansion bit, EF, one marker bit, M, and six bits of payload type. When the expansion bit is clear, the length field is only eight bits long, rather than the sixteen bits of the previously discussed embodiment. Not only does this reduce overhead, it also guarantees that fields remain aligned on byte boundaries. The mask bits are located in the beginning of the packet, and are preceded by an eight-bit state number. If the number of active channels is not a multiple of thirty-two, the mask field is padded out to a full word. There are four active channels illustrated in FIG. 6, each of which is present in this packet, consequently, all four mask bits would be set to 1. The first block is of a standard length, and the second has its expansion bit set, so that an eight-bit length field follows immediately. The remaining two blocks are also of a standard length, so that the last twenty-four bits of the header are padded out to a word boundary.
  • The approach of this embodiment is extremely efficient, but the channel identification procedure is more complex and requires additional signaling support. In this embodiment, the system takes advantage of the fact that both the source and destination know the set of active connections and their channel identifiers from the signaling messages, to reduce the number of bits required to indicate the channel ID. If the blocks are placed in a packet in order of increasing channel ID, very little information need be sent. In fact, without silence suppression, channel activity and the presence of a block in a packet would likely be equivalent. However, silence suppression is used and, even if it were not, it is possible for the voice codecs at the ITG not to have their framing synchronized, so that a packet may not contain the data from all users. Furthermore, the source and destination do not have a consistent view of the state of the system since there is a delay while signaling messages are in transit. Therefore, a mask is sent in the header of each packet, with each bit in the mask indicating whether data from a corresponding channel is present within the packet or not. Channel IDs are mapped to mask bits in increasing order, so that if the lowest channel has no data in the packet, the lowest order bit is set to zero, if the second lowest channel has no data, the second lowest order bit is set to zero, and so on. Since the source and destination agree on the number of active connections at any point in time, both the source and destination are aware of the number of bits required for the mask.
  • In this embodiment, differences in state are handled by an additional eight-bit field, referred to as a state number field, located in each packet header. The field is initialized to a value of zero but for illustrative purposes, assume that its value is N. If the source wishes to tear down a channel, it sends a tear down message to the destination, but it continues to send data for that channel (if it does not send data, it must set the bit in the bit mask corresponding to that channel to zero). When the destination receives the message, it replies with an acknowledge message. When the acknowledge is received by the source, the source considers the channel tom down, and no longer sends data for it, nor considers it in computing the mask. In the packet where this happens, the source also increments the state-number field to N+1. The destination knows that the source will do this, and will therefore consider the state changed for all packets whose value of the field is N+1 or greater. When the next signaling message takes effect, the field is further increased. Even if packets are lost, the value of the state-number field for any correctly received packet completely tells the destination the state of the system as seen in that packet. Furthermore, it is not necessary to wait for a particular setup or teardown to be acknowledged before requesting another setup or teardown.
  • The number of bits for the state-number field is set large enough to represent the maximum number of state changes which can have taken effect during a round trip time. An additional exchange may be implemented. After the destination receives a packet with a state number greater than N, it destroys the state related to N, and sends back a free state N message, indicating to the destination that state N is now de-allocated, and can be used again. Until such a message is received, the source does not re-use state N. This is, essentially, a window-base flow control, where the flow is equal to changes in state. With this additional implementation, the number of bits dedicated to the state number can be safely reduced, and the destination will never confuse the state regardless of the number of state-number bits employed. However, the use of too few state bits can cause call blocking or delay the teardown of inactive channels. As another option, the source may send the complete state of the system with each signaling message, along with the state-number field for which the state takes effect. This approach insures that, even in the event of a system failure, if an error in processing or hardware failure at either end causes a loss of synchronization, for example, the system state will be refreshed whenever a new connection is set up or torn down. Additionally, the state may be sent periodically to improve system robustness.
  • The forgoing description of specific embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. It will be apparent that many modifications and variations are possible in light of the above teachings. For example, the bus connections, and the separation of functions illustrated in FIG. 2 need not be as illustrated. Additional buses, or other I/O ports may be employed to accelerate communication among the individual functional units. The invention may be used in the context of other packet networks, such as the connection of PBXs or voice access switches. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention. It is intended that the scope of the invention be limited only by the claims appended hereto.

Claims (20)

1. A voice communication system, comprising:
a plurality of telephone sets connected to termination equipment which terminates said plurality of telephone sets, and
respective packet network telephone gateways connected to said termination equipment and to a packet network whereby said packet gateways are connected to multiplex voice telephone calls among said plurality of telephone sets to a single transport level connection and/or packet.
2. The system of claim 1, wherein said packet network is the Internet.
3. The system of claim 1, wherein a central office comprises said termination equipment.
4. The system of claim 1, wherein a private branch exchange comprises said termination equipment.
5. The system of claim 2, wherein said packet network telephone gateways operate to establish a packet network connection in response to a request from a user associated with one of said telephone sets and said gateways establish a channel for each user within each said transport level connection.
6. The system of claim 5, wherein said packet network telephone gateways operate to digitize voice signals from said telephone sets, to multiplex blocks of such digitized voice signals onto a transport level connection, and to packetize said multiplexed voice signals.
7. The system of claim 6, wherein said telephone gateways are connected to provide channel identification for each said channel.
8. A telecommunications system employing the Internet in the routing of voice information from an origination point to a destination point comprising:
a plurality of communications switches; and
a plurality of Internet transport gateways for interfacing respective ones of communications switches with the Internet such that voice information received from different originators at the origination point and exchanged between ones of the gateways is multiplexed at the same transport level connection and in data packets that are sent over the Internet, the same transport level connection is maintained so long as voice information is received from one of the different originators.
9. A telecommunications system employing the Internet in the routing of voice information from an origination point to a destination point comprising:
a plurality of communications switches; and
a plurality of internet transport gateways for interfacing respective ones of the communications switches with the Internet such that voice information received from different originators at the origination point and exchanged between ones of the gateways is multiplexed at the same transport level connection and in different data packets that are sent over the Internet.
10. An interface telephony gateway comprising:
an input for receiving a plurality of voice calls; and
a controller establishing a transport level connection over the Internet, the controller operating to multiplex voice information from the plurality of voice calls into a single data packet onto the transport level connection, and to maintain the transport level connection so long as voice information is received from one of the plurality of voice calls through the input.
11. A method comprising:
receiving a plurality of voice calls;
establishing a transport level connection over the Internet;
multiplexing on the transport level connection voice information from the plurality of voice calls into a data packets; and
maintaining the transport level connection so long as voice information is received from one of the plurality of voice calls.
12. The interface telephony gateway of claim 10 wherein said controller operates to establish a packet network connection in response to a request from a user associated with one of said plurality of voice calls and said controller establishes a channel for the user within said transport level connection.
13. The interface telephony gateway of claim 12 wherein said controller operates to provide a channel identification for said channel.
14. An interface telephony gateway comprising:
an input for receiving a plurality of voice calls; and
a controller establishing a transport level connection over the Internet, the controller operating to multiplex voice information from the plurality of voice calls into a single data packet onto the transport level connection, and to maintain the transport level connection so long as voice information is received from one of the plurality of voice calls through the input, wherein said controller operates to establish a packet network connection in response to a request from a user associated with one of said plurality of voice calls and said controller establishes a channel for the user within said transport level connection, said controller operates to provide a channel identification for said channel, and said controller operates to send sequence numbers in setup and teardown messages to allow for re-use of the channel identification.
15. The interface telephony gateway of claim 10 wherein said controller operates to derive the length of a payload block from payload type information included within a packet header.
16. The interface telephony gateway of claim 10 wherein said input is a telephony processor, said telephony processor converting the plurality of voice calls from analog form to digital form.
17. The interface telephony gateway of claim 10 wherein the single data packet includes at least two frames of voice information originating from at least two distinctly separate voice calls.
18. The method of claim 11 further comprising:
terminating the transport level connection when all of the plurality of voice calls are disconnected.
19. The method of claim 11 further comprising:
establishing a channel for each voice call.
20. The method of claim 19 further comprising:
re-using a channel of a voice call when the voice call is disconnected.
US11/668,144 1996-11-26 2007-01-29 Methods and Apparatus for Providing Voice Communications Through a Packet Network Abandoned US20070121611A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/668,144 US20070121611A1 (en) 1996-11-26 2007-01-29 Methods and Apparatus for Providing Voice Communications Through a Packet Network

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3203196P 1996-11-26 1996-11-26
US08/959,794 US6304567B1 (en) 1996-11-26 1997-10-29 Methods and apparatus for providing voice communications through a packet network
US09/977,643 US7170887B2 (en) 1996-11-26 2001-10-16 Methods and apparatus for providing voice communications through a packet network
US11/668,144 US20070121611A1 (en) 1996-11-26 2007-01-29 Methods and Apparatus for Providing Voice Communications Through a Packet Network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/977,643 Continuation US7170887B2 (en) 1996-11-26 2001-10-16 Methods and apparatus for providing voice communications through a packet network

Publications (1)

Publication Number Publication Date
US20070121611A1 true US20070121611A1 (en) 2007-05-31

Family

ID=26707882

Family Applications (3)

Application Number Title Priority Date Filing Date
US08/959,794 Expired - Lifetime US6304567B1 (en) 1996-11-26 1997-10-29 Methods and apparatus for providing voice communications through a packet network
US09/977,643 Expired - Lifetime US7170887B2 (en) 1996-11-26 2001-10-16 Methods and apparatus for providing voice communications through a packet network
US11/668,144 Abandoned US20070121611A1 (en) 1996-11-26 2007-01-29 Methods and Apparatus for Providing Voice Communications Through a Packet Network

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US08/959,794 Expired - Lifetime US6304567B1 (en) 1996-11-26 1997-10-29 Methods and apparatus for providing voice communications through a packet network
US09/977,643 Expired - Lifetime US7170887B2 (en) 1996-11-26 2001-10-16 Methods and apparatus for providing voice communications through a packet network

Country Status (1)

Country Link
US (3) US6304567B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040037317A1 (en) * 2000-09-20 2004-02-26 Yeshayahu Zalitzky Multimedia communications over power lines
US20090141647A1 (en) * 2007-12-03 2009-06-04 Avaya Technology Llc Acknowledgment of Media Waveforms between Telecommunications Endpoints
US20180350374A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Transport of audio between devices using a sparse stream

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6069890A (en) 1996-06-26 2000-05-30 Bell Atlantic Network Services, Inc. Internet telephone service
US6154445A (en) 1996-04-18 2000-11-28 Bell Atlantic Network Services, Inc. Telephony communication via varied redundant networks
US5995605A (en) * 1996-12-06 1999-11-30 Ameritech Corporation Method and network for providing access to an information network
US6078582A (en) * 1996-12-18 2000-06-20 Bell Atlantic Network Services, Inc. Internet long distance telephone service
US6137869A (en) 1997-09-16 2000-10-24 Bell Atlantic Network Services, Inc. Network session management
US6574216B1 (en) 1997-03-11 2003-06-03 Verizon Services Corp. Packet data network voice call quality monitoring
US6292479B1 (en) 1997-03-19 2001-09-18 Bell Atlantic Network Services, Inc. Transport of caller identification information through diverse communication networks
US6870827B1 (en) 1997-03-19 2005-03-22 Verizon Services Corp. Voice call alternative routing through PSTN and internet networks
US6711166B1 (en) * 1997-12-10 2004-03-23 Radvision Ltd. System and method for packet network trunking
US6618368B1 (en) * 1998-02-19 2003-09-09 Hitachi, Ltd. Data gateway and method for relaying data
US6487196B1 (en) * 1998-05-29 2002-11-26 3Com Corporation System and method for simulating telephone use in a network telephone system
US7707600B1 (en) * 1998-08-21 2010-04-27 Intel Corporation Confirming video transmissions
US6512746B1 (en) * 1998-09-11 2003-01-28 Nortel Networks Limited Method and apparatus for measuring voice grade of service in an IP network
US6674744B1 (en) * 1998-09-22 2004-01-06 Lucent Technologies Inc. Point-to-point data transport over the internet utilizing label switching without IP headers
KR100279620B1 (en) * 1998-10-13 2001-02-01 구자홍 Method and device for controlling multi-channel voice data
US6421720B2 (en) * 1998-10-28 2002-07-16 Cisco Technology, Inc. Codec-independent technique for modulating bandwidth in packet network
KR100322015B1 (en) * 1998-12-23 2002-03-08 윤종용 Frame Structure Variable Method in Local Area Network
US20020093942A1 (en) * 1999-01-13 2002-07-18 Leonid A Yegoshin Method and apparatus for creating and distributing cost telephony-switching functionality within an ip network
US6577620B1 (en) * 1999-05-03 2003-06-10 Telefonaktiebolaget Lm Ericsson (Publ) Emulating circuit-switched communications in a packet-switched environment
US6785261B1 (en) * 1999-05-28 2004-08-31 3Com Corporation Method and system for forward error correction with different frame sizes
US7307980B1 (en) * 1999-07-02 2007-12-11 Cisco Technology, Inc. Change of codec during an active call
US6918034B1 (en) 1999-09-29 2005-07-12 Nokia, Corporation Method and apparatus to provide encryption and authentication of a mini-packet in a multiplexed RTP payload
US6970450B1 (en) * 1999-10-29 2005-11-29 Array Telecom Corporation System, method and computer program product for point-to-point bandwidth conservation in an IP network
JP2001186193A (en) * 1999-12-24 2001-07-06 Fujitsu Ltd Ip communication interface device, line switching exchanger and ip communication network system
US6829254B1 (en) * 1999-12-28 2004-12-07 Nokia Internet Communications, Inc. Method and apparatus for providing efficient application-level switching for multiplexed internet protocol media streams
US7990882B1 (en) 1999-12-30 2011-08-02 Avaya Inc. Adaptively maintaining quality of service (QoS) in distributed PBX networks
FI108692B (en) * 1999-12-30 2002-02-28 Nokia Corp Method and apparatus for scheduling processing of data packets
DE60026815T2 (en) * 1999-12-30 2006-09-14 Nortel Networks Ltd., St. Laurent Adaptive maintenance of quality of service (QoS) in a distributed PBX network
DE60119320T2 (en) * 2000-06-06 2007-05-16 Broadcom Corp., Irvine DELAY REDUCTION PROCESS FOR TELEPHONE SYSTEMS WITH MULTIPACK PACKET GENERATORS
US6657997B1 (en) * 2000-06-19 2003-12-02 Telogy Networks, Inc. Transporting ABCD bits using RTP
US7586899B1 (en) 2000-08-18 2009-09-08 Juniper Networks, Inc. Methods and apparatus providing an overlay network for voice over internet protocol applications
US7002993B1 (en) * 2000-08-18 2006-02-21 Juniper Networks, Inc. Method and apparatus providing media aggregation in a packet-switched network
SG97934A1 (en) * 2000-09-13 2003-08-20 Mediaring Ltd Quality of transmission across packet-based networks
WO2002035785A1 (en) * 2000-10-19 2002-05-02 Network Equipment Technologies, Inc. System and method for frame packing
JP3726684B2 (en) * 2001-01-11 2005-12-14 株式会社Kddi研究所 Communication system for avoiding congestion in moving image data transfer
JP2002217972A (en) * 2001-01-12 2002-08-02 Nec Corp Voip system corresponding to congestion condition, and method for avoiding congestion of voip system
US7230919B2 (en) * 2001-02-07 2007-06-12 Siemens Communications, Inc. Quality-of-service monitor for voice-over-Internet-protocol calls
FR2823038B1 (en) * 2001-03-29 2003-07-04 Eads Defence & Security Ntwk METHOD OF MANAGING INTERNSHIP FOR HALF-DUPLEX COMMUNICATION THROUGH A PACKET SWITCHED TRANSPORT NETWORK
US6999450B2 (en) * 2001-04-25 2006-02-14 Occam Networks Ethernet based TDM switch
US20040028076A1 (en) * 2001-06-30 2004-02-12 Strolle Christopher H Robust data extension for 8vsb signaling
US6768748B2 (en) * 2001-07-30 2004-07-27 Overture Networks, Inc. Flexible mapping of circuits into packets
US7124202B2 (en) * 2001-11-13 2006-10-17 Intel Corporation System and method for aggregating channel segment ID's into a first section and data segments into a second section
US7126955B2 (en) * 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US20050259807A1 (en) * 2003-02-28 2005-11-24 Pita Madoch Method and network for providing access to an information network
US7286476B2 (en) * 2003-08-01 2007-10-23 F5 Networks, Inc. Accelerating network performance by striping and parallelization of TCP connections
US7460523B2 (en) * 2003-09-08 2008-12-02 Bradley Richard Ree Client-server architecture for the delivery of broadband services
GB0402572D0 (en) * 2004-02-05 2004-03-10 Nokia Corp A method of organising servers
US8159940B1 (en) 2004-11-11 2012-04-17 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US7477623B2 (en) * 2004-12-17 2009-01-13 Santera Systems, Inc. Methods, systems, and computer program products for caching and re-using bearer channels for voice-over-packet (VoP) sessions involving wireless entities
US8228956B2 (en) * 2005-04-19 2012-07-24 Alcatel Lucent Time stamp offset in data packet bundling
US7764963B2 (en) * 2007-04-11 2010-07-27 Cisco Technology, Inc. GW coupled SIP proxy
US8233401B2 (en) * 2007-08-13 2012-07-31 Cisco Technology, Inc. Using an IP registration to automate SIP registration
US8942112B2 (en) 2008-02-15 2015-01-27 Cisco Technology, Inc. System and method for providing selective mobility invocation in a network environment
US7957314B2 (en) 2008-12-12 2011-06-07 Cisco Technology, Inc. System and method for provisioning charging and policy control in a network environment
US9008005B2 (en) 2009-04-27 2015-04-14 Cisco Technology, Inc. System and method for providing intelligent gateway selection in a network environment
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US8195778B1 (en) 2009-12-19 2012-06-05 Cisco Technology, Inc. System and method for providing mobility across access technologies in a network environment
US9215588B2 (en) 2010-04-30 2015-12-15 Cisco Technology, Inc. System and method for providing selective bearer security in a network environment
US10284457B2 (en) * 2016-07-12 2019-05-07 Dell Products, L.P. System and method for virtual link trunking

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4768190A (en) * 1986-04-30 1988-08-30 Og Corporation Packet switching network
US4771425A (en) * 1984-10-29 1988-09-13 Stratacom, Inc. Synchoronous packet voice/data communication system
US5018136A (en) * 1985-08-23 1991-05-21 Republic Telcom Systems Corporation Multiplexed digital packet telephone system
US5130982A (en) * 1989-06-30 1992-07-14 At&T Bell Laboratories Fully shared communications network
US5274635A (en) * 1992-11-18 1993-12-28 Stratacom, Inc. Method and apparatus for aligning a digital communication data stream across a cell network
US5608786A (en) * 1994-12-23 1997-03-04 Alphanet Telecom Inc. Unified messaging system and method
US5883891A (en) * 1996-04-30 1999-03-16 Williams; Wyatt Method and apparatus for increased quality of voice transmission over the internet
US5940479A (en) * 1996-10-01 1999-08-17 Northern Telecom Limited System and method for transmitting aural information between a computer and telephone equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243373B1 (en) * 1995-11-01 2001-06-05 Telecom Internet Ltd. Method and apparatus for implementing a computer network/internet telephone system
US6298120B1 (en) * 1996-06-28 2001-10-02 At&T Corp. Intelligent processing for establishing communication over the internet
US6078579A (en) * 1996-07-25 2000-06-20 Wjw Technologies Inc. Telephonic systems for communication over computer networks
US6584094B2 (en) * 1996-09-12 2003-06-24 Avaya Technology Corp. Techniques for providing telephonic communications over the internet

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771425A (en) * 1984-10-29 1988-09-13 Stratacom, Inc. Synchoronous packet voice/data communication system
US5018136A (en) * 1985-08-23 1991-05-21 Republic Telcom Systems Corporation Multiplexed digital packet telephone system
US4768190A (en) * 1986-04-30 1988-08-30 Og Corporation Packet switching network
US5130982A (en) * 1989-06-30 1992-07-14 At&T Bell Laboratories Fully shared communications network
US5274635A (en) * 1992-11-18 1993-12-28 Stratacom, Inc. Method and apparatus for aligning a digital communication data stream across a cell network
US5608786A (en) * 1994-12-23 1997-03-04 Alphanet Telecom Inc. Unified messaging system and method
US5883891A (en) * 1996-04-30 1999-03-16 Williams; Wyatt Method and apparatus for increased quality of voice transmission over the internet
US5940479A (en) * 1996-10-01 1999-08-17 Northern Telecom Limited System and method for transmitting aural information between a computer and telephone equipment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040037317A1 (en) * 2000-09-20 2004-02-26 Yeshayahu Zalitzky Multimedia communications over power lines
US20090141647A1 (en) * 2007-12-03 2009-06-04 Avaya Technology Llc Acknowledgment of Media Waveforms between Telecommunications Endpoints
US7821957B2 (en) 2007-12-03 2010-10-26 Avaya, Inc. Acknowledgment of media waveforms between telecommunications endpoints
US20180350374A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Transport of audio between devices using a sparse stream
US10706859B2 (en) * 2017-06-02 2020-07-07 Apple Inc. Transport of audio between devices using a sparse stream

Also Published As

Publication number Publication date
US20020018465A1 (en) 2002-02-14
US6304567B1 (en) 2001-10-16
US7170887B2 (en) 2007-01-30

Similar Documents

Publication Publication Date Title
US7170887B2 (en) Methods and apparatus for providing voice communications through a packet network
US8442196B1 (en) Apparatus and method for allocating call resources during a conference call
RU2187205C2 (en) Device and method for transmitting voice data bursts in mobile communication system
US7706355B2 (en) System and method for converting packet payload size
US6977942B2 (en) Method and a device for timing the processing of data packets
US20030093550A1 (en) Method for sending multiple voice channels over packet networks
US6717955B1 (en) Data communications method and apparatus
EP1495612B1 (en) Method and apparatus for efficient transmission of voip traffic
US7626976B2 (en) DSL access system negotiating a voice codec type to be used between two systems
US6909709B2 (en) Packetized communications apparatus and method
EP1748590B1 (en) Wideband-narrowband telecommunication
US6657997B1 (en) Transporting ABCD bits using RTP
Cisco Voice-over-IP Overview
Rosenberg et al. Issues and Options for an Aggregation Service within RTP
US7680105B2 (en) Voice over internet protocol (VOIP) subcell multiplexing
US6928078B2 (en) Packetized communications apparatus and method
US7545799B2 (en) Internet time multiplexed circuit connection for wire speed connection akin to PSTN switched circuit connection suitable for multimedia/voice/fax/realtime applications
Hunt et al. QoS requirements for a voice-over-IP PSTN
WO2001099358A1 (en) Transporting abcd bits using rtp
CA2270806A1 (en) Digital data protocol converter

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION