US20130246658A1 - Method and system for selecting a data compression technique for data transfer through a data network - Google Patents
Method and system for selecting a data compression technique for data transfer through a data network Download PDFInfo
- Publication number
- US20130246658A1 US20130246658A1 US13/875,211 US201313875211A US2013246658A1 US 20130246658 A1 US20130246658 A1 US 20130246658A1 US 201313875211 A US201313875211 A US 201313875211A US 2013246658 A1 US2013246658 A1 US 2013246658A1
- Authority
- US
- United States
- Prior art keywords
- network
- data
- data transfer
- call
- processor
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3053—Block-companding PCM systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
Definitions
- the present invention relates to data transfer through IP data networks, and more particularly, to a method and system for selecting a data compression technique for data transfer through a data network.
- IP Internet protocol
- IP multimedia networks are widely used to setup and manage calls and sessions.
- a codec which refers to a coder-decoder or a compression-decompression device, is generally used to convert an audio signal into a compressed digital form for transmission through the network to reduce file sizes and back into an uncompressed audio signal for play out at a media terminating device.
- Media terminating devices in IP Telephony e.g., phones and gateways
- IP Telephony support multiple types of codecs.
- Codecs range from non-compressed (no loss of information) to compressed (loss of information but good quality under certain conditions). While non-compressed codecs have higher quality, they use more bandwidth compared to non-compressed codecs. In general, it is desirable to create a system that uses non-compressed codecs where bandwidth is cheap and abundant (e.g., within local area networks (LAN)) and use compressed codecs where bandwidth is costly and scarce (e.g., within wide area networks (WAN)).
- LAN local area networks
- WAN wide area networks
- IP networks are usually configured to give certain codecs preference over others. For example, media terminating devices are set to have starting preferences, and upon connection, the devices use the highest priority codec that both communicating devices can support.
- using default preferences for all types of connections does not always provide a desirable connection. For example, if high compression codecs are set for top priority, then a majority of calls would suffer a loss of information even when it is unnecessary. Further, using default preferences for calls may not allow codec negotiation during a call, such as by taking into consideration network delays, time of day, or other network characteristics.
- a method for selecting a data compression technique for data transfer through a network between a first network device and a second network device includes receiving information of a configuration of the network between the first network device and the second network device. The information includes data transfer speeds through the network. The method further includes selecting a data compression technique for data transfer through the network between the first network device and the second network device based on the information. The method may be performed by a call control server residing in the network, or by the first or second network device, and the method can be performed during call setup or during a call between the first and second network device.
- the first network device will determine the configuration of the network between the first network device and the second network device by identifying a data transfer path between the first network device and the second network device, and then identifying intermediary links in the data transfer path between the first network device and the second network device. The first network device can then determine data transfer capabilities of the intermediary links in the data transfer path between the first network device and the second network device to select the data compression technique for data transfer through the network to the second network device.
- the information may include a network topology between the first network device and the second network, information regarding intermediary links contained within a data path between the first network device and the second network device, information regarding where the first network device and the second network device are located within the network, call history information for prior calls between the first network device and the second network device, information from a smart network device including whether uncompressed data is being transferred over a slow speed link or whether compressed data is being transferred over a high speed link, performance parameters such as a packet delivery delay time in the network, a jitter time in the network, and a packet loss factor of the network, and information regarding a time of day.
- a method for selecting a data compression to technique for data transfer through a network between a first network device and a second network device includes transferring data in a compressed format between the first network device and the second network device through intermediary links in the network.
- the method also includes determining a quality of data transfer through the intermediary links in the network, and then adjusting the compressed format based on the quality of data transfer.
- FIG. 1 is a block diagram of one embodiment of a network telephony system.
- FIG. 2 is a block diagram of one embodiment of a media terminating device.
- FIG. 3 is a block diagram of one embodiment of a call control server.
- FIG. 4 is a flowchart depicting one embodiment of a method for selecting a data compression technique for data transfer through a network.
- FIG. 5 is a message flow diagram illustrating one embodiment of selecting a data compression technique during call setup.
- FIG. 6 illustrates one example of a system including media terminating devices located on the same access network.
- FIG. 7 is a flowchart depicting another embodiment of a method for selecting a data compression technique for data transfer through a network.
- FIG. 8 illustrates one embodiment of signaling to adjust a data compression technique for data transfer between network devices.
- FIG. 9 is a block diagram illustrating one embodiment of a system including smart network device feedback.
- a method of selecting a data compression technique in an IP telephony network is provided.
- the method may be performed during call setup or during the call.
- information can be gathered from the network infrastructure by (i) accessing network topology information from a network management database, (ii) receiving feedback from smart network devices that report if they recognize uncompressed data being transferred over a slow speed link or compressed data being transferred between two network phones known to be connected by a high speed connection, or (iii) reviewing calls logs to identify actual performance between phones, for example.
- the information can then be used to select a desired compression technique to be used for data transfer through the network.
- a media terminating end device e.g., network telephone, or a call control server will monitor call connection performance and may adjust the data compression to conform with the performance that the connection is providing at any given moment. For example, performance parameters such as delay, jitter, and compression ratios can be measured in real time for a call to determine if a change in compression is deemed beneficial. If so, the phone may send a request to a device on the other end of the connection to request a change in the compression. In this manner, the compression method is chosen based on real time network performance.
- FIG. 1 a block diagram of one embodiment of a network telephony system 100 is illustrated. It should be understood that the system 100 illustrated in FIG. 1 and other arrangements described herein are set forth for purposes of example only, and other arrangements and elements can be used instead and some elements may be omitted altogether, depending, for example, on manufacturing and/or consumer preferences.
- the system 100 includes media terminating devices 102 and 104 coupled to a data network 110 through access networks 106 and 108 .
- the media terminating devices 102 and 104 are shown to be IP network phones. However, the media terminating devices 102 and 104 may be any network device such as personal computers with user interface hardware like a microphone and headphone to communicate voice information, a personal digital assistant (PDA) with voice communication capabilities, or other communication devices. In addition, more media terminating devices may be included in the system 100 .
- PDA personal digital assistant
- the access networks 106 and 108 may be any type of networks that connect the media terminating devices 102 and 104 to the data network 110 .
- the access networks 106 and 108 may be local area networks (LAN) whether wired or wireless, or others, and the link between the media terminating devices 102 and 104 and the access networks 106 and 108 may be wired or wireless as well.
- the data network 110 may be a LAN, a WAN, or generally a data packet network such as an Internet Protocol (IP) network.
- IP Internet Protocol
- the data network 110 interconnects the access networks 106 and 108 could also be a virtual private network (VPN) or the Internet, a lease line of a corporate network, or a campus backbone network, for example.
- the media terminating devices 102 and 104 may communicate with each other or with other through the data network 110 .
- the data network 110 also couples to a call control server 112 .
- the call control server 112 establishes and monitors data transfer between the media terminating devices 102 and 104 .
- the call control server 112 will receive call setup messages from the media terminating devices 102 and 104 when the devices initiate a call.
- the call control server 112 may receive reporting messages from the devices that include data transfer statistics for the call.
- the call control server 112 observes operation of the media terminating devices 102 and 104 based on messages received from the devices.
- the call control server is connected to a database 114 .
- the database 114 stores general information concerning the system 100 , and specific information concerning past performance of the system 100 .
- the database 114 may include a call log detailing specific data transfer rates between network devices residing on the data network 110 for calls between the network devices.
- the database 114 may also include information relating to bandwidth capabilities of the data network 104 and/or bandwidth capabilities of network equipment within the data network 110 .
- the database 114 may further include a table of all network devices residing on the data network 110 that are registered with the data network 110 and the network devices' associated IP addresses.
- the system 100 may also include a network management topology database 116 coupled to the call control server 112 and the data network 110 .
- the database 116 includes information pertaining to a topology of the system 100 , such as data paths between network devices in the system 100 .
- the database 116 may contain a table that includes possible data transfer paths between any two network devices residing in the system.
- the data transfer path information may include all intermediary links between two network devices.
- the database 116 may include information pertaining to all the links within the system 100 , and how the links are interconnected such that the call control server 112 could determine data transfer pathways between network devices using this information.
- the call control server 112 or media terminating devices 102 and 104 may then access the database 116 to identify the intermediary data transfer links between the media terminating devices 102 and 104 .
- the database 116 may include any third party network management tool that includes network mapping capabilities, such as HP OpenView® available from the Hewlett-Packard Company or IBM Tivoli NetView.
- the media terminating devices 102 and 104 and the call control server 112 can access the database 116 to identify a data transfer path between the media terminating devices 102 and 104 , determine the slowest link in the path (e.g., possibly based on data transfer speeds and available bandwidth of the link), and adjust data transfer accordingly.
- FIGS. 2 and 3 are block diagrams that illustrate an exemplary media terminating device 102 and an exemplary call control server 112 . It should be understood that these and other arrangements described herein are set forth for purposes of example only, and other arrangements and elements can be used instead and some elements may be omitted altogether. Further, many of the elements described herein are functional entities that may be implemented as hardware, firmware, or software, and as discrete components or in conjunction with other components, in any suitable combination and location.
- the media terminating device 102 includes a processor 202 , a codec 204 , a user interface 206 , a network interface 208 , and memory 210 .
- the memory 210 includes a number of applications executable by the processor 202 .
- the applications may be in the form of executable instructions accessible by the processor 204 to perform specific tasks.
- some of the applications can be implemented fully or in part through application logic hardware.
- the applications include a quality of connection application 212 executable to determine performance statistics related to a call connection, a data compression application 214 executable to select a desired data compression technique, a reporting application 216 executable to send messages to the call control server 112 including information relating to statistics of a call connection, a call setup application 218 executable to initiate a call with another network device, and other device applications 220 such as conference call functions, phone number storage and retrieval, etc.
- the media terminating device 102 may include other applications as well.
- the call control server 112 includes a processor 302 , a database 304 , a network interface 306 , and memory 308 .
- the memory includes a number of applications executable by the processor 302 .
- the applications may be in the form of executable instructions accessible by the processor 302 to perform specific tasks.
- the applications include a data compression selection application 310 executable to select a data compression technique, a request reporting messages application 312 executable to request messages from the media terminating devices 102 and 104 , a receive reporting messages application 314 executable to receive messages from the media terminating devices 102 and 104 , a quality report application 316 executable to generate a quality report of data transfer between network devices, a query database application 318 executable to query the network management database 116 , and other device applications 320 such as network management applications, voice mail, hold music, etc.
- the call control server 112 may include other applications as well.
- media terminating devices can transfer data in a compressed format.
- a codec is generally used to convert an audio signal into a compressed digital form for transmission through the network to reduce file sizes and back into an uncompressed audio signal for play out at a media terminating device.
- G.711 is described in “Pulse Code Modulation of Voice Frequencies”
- ITU-T Recommendation G.711, G.726 is described in “40, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM),”
- ITU-T Recommendation G.726, and G.729 is described in “Coding of Speech at 8 kbit/s using Conjugate-Structure Algebraic-Code-Excited Linear-Prediction (CS-ACELP),” ITU-T Recommendation G.729.
- ADPCM Adaptive Differential Pulse Code Modulation
- CS-ACELP Conjugate-Structure Algebraic-Code-Excited Linear-Prediction
- ITU-T Recommendations 0.711, G.726 and G.729 are each incorporated by reference herein as if fully set forth in this description. These are examples only, since many other compression techniques exist as well. Further, higher bandwidth audio requirements may arise for certain types of data packets, and in such cases, other specialized data compression techniques can be developed.
- G.711 data compression can be used for low compression techniques or in instances where bandwidth is plentiful. For example, telephone companies transmit voice at minimal compression levels such as at 64 kbit/s using G.711 for high quality data transmission due to the availability of high bandwidth data transfer links.
- G.729 data compression can be used for heavy compression techniques or in instances where bandwidth is scarce. For example, using G.729, data is compressed and transferred at 8 kbit/s, which is an 8:1 data compression, and the quality of data transmission is less than G.711 due to loss of data.
- G.726 data compression can be used to compress data to sizes in between those offered by G.711 and G.729.
- G.726 is an intermediate data compression technique that is used to compress data to 32 kbit/s, which is a 2:1 data compression and results in a low loss in quality of the data.
- the media terminating devices 102 and 104 may support multiple types of codecs and multiple types of data compression techniques.
- the media terminating devices 102 and 104 or the call control server 112 may select a data compression technique for data transfer between network devices residing in the system 100 based on the topology of the system 100 .
- FIG. 4 is a flowchart depicting one embodiment of a method for selecting the data compression technique.
- the media terminating devices 102 and 104 or the call control server 112 will receive information of a configuration of the network between the media terminating devices 102 and 104 , as shown at block 402 .
- information concerning links that transfer data between the devices 102 and 104 can be requested from the network management topology database 116 .
- the database 116 can then send such information to the call control server 112 directly, or to the media terminating devices 102 and 104 through the data network 110 .
- Intermediary links of interest may be those contained within a data path between the media terminating devices 102 and 104 .
- data rates and available bandwidth of access networks can be identified based on the types of access networks used.
- Other characteristics can be identified as well, such as packet loss and packet delay resulting from data packet transfer through the intermediary links.
- the media terminating devices 102 and 104 or the call control server 112 will select a data compression technique for data transfer between the media terminating devices 102 and 104 based on the characteristics of the links, as shown at block 406 .
- the data compression technique may be selected based on total available bandwidth, an instantaneous available bandwidth, or administration control of bandwidth.
- a high compression technique can be used, such as the G.729 compression technique (e.g., 8 kbit/s), such that the bandwidth on the slowest link will not be exhausted for one phone call.
- the slowest link in a data transfer path is a T1 link (e.g., 1.5 mbit/s) into a data network
- the G.711 data compression may be chosen since there is ample bandwidth available.
- a T1 data link can be used to transfer data between devices residing on a WAN.
- administrative controls may be set to further conserve bandwidth and to dedicate this link as a compressed link.
- a data compression technique is selected based on available bandwidth and the administrative settings.
- the method described in FIG. 4 for data compression technique selection may be performed during a call setup between network devices, or during a call between network devices.
- a call or data connection between two network devices can be established using any IP based call signaling.
- a call is setup and performed using the Session Initiation Protocol (SIP) signaling protocol.
- SIP Session Initiation Protocol
- SIP Session Initiation Protocol
- RRC Session Initiation Protocol
- the SIP is also described in Rosenberg et al., “SIP: Session Initiation Protocol,” IETF (RFC) 3261, June 2002, the contents of which are entirely incorporated herein by reference, as if fully set forth in this description.
- Other signaling protocols such as H-323, MGCP, MEGACO, and other standard or proprietary techniques may alternatively be used.
- the SIP protocol is a text-based protocol in which one party sends a message in American standard code for information interchange (ASCII) text consisting of a method name on the first line, followed by additional lines containing headers for passing parameters. Many of the headers are taken from multipurpose Internet mail extensions (MIME) to allow SIP to interwork with existing Internet applications.
- ASCII American standard code for information interchange
- MIME multipurpose Internet mail extensions
- the first line of this text-encoded message contains the method name (e.g., INVITE).
- the lines that follow are a list of header fields. For example, the fields Via (describing the address at which the user is expecting to receive responses), To (contains a display name or SIP request-URI towards which the request was originally directed), From (contains a display name and a SIP request-URI that indicate the originator of the request), Call-ID (contains a globally unique identifier for this call), CSeq (a traditional sequence number), and Contact (contains a SIP request-URI that represents a direct route to contact the sender) are header fields.
- the From header also has a tag parameter containing a random string (e.g., 1928301774) that used for identification purposes.
- SIP Session Initiation Protocol
- the media terminating device 102 (“the caller”) sends an INVITE message to the media terminating device 104 (“the callee”) by way of the access network 108 .
- the transport protocol for the transmission may be transmission control protocol (TCP) or user datagram protocol (UDP), for example.
- TCP transmission control protocol
- UDP user datagram protocol
- the INVITE message also contains a user identifier to identify the callee, a caller user identifier to identify the caller, and a session description that informs the called party what type of media the caller can accept and where the caller wishes the media data to be sent.
- User identifiers in SIP requests are known as SIP addresses.
- SIP addresses are referred to as SIP Universal Resource Indicators (SIP request-URIs), which are of the form sip: user@host.domain. Other addressing conventions may also be used.
- the access network 108 locates the callee and transmits an INVITE request to the callee.
- the INVITE request may simply be a forwarded version of the INVITE request, containing the SIP addresses of the caller and the callee.
- the callee may transmit a response message to the access network 108 .
- the access network 108 may then transmit a response message back to the caller.
- the response messages may be reply codes.
- a reply code may be a three-digit number with a classification as defined below in Table 2.
- the callee if the callee accepts the call, the callee responds with a 200 OK message. Following the reply code line, the callee also may supply information about the callee's capabilities, media types, and formats.
- the caller may send an ACK message back to the callee to confirm receipt of the 200 OK message and complete the call initiation process.
- the ACK message may be sent through the same path as the INVITE request and response messages.
- the media terminating devices 102 and 104 or the call control server 112 will select a data compression technique for data transfer during call setup.
- a call or data connection between two network devices can be carried out using any standard IP telephony protocol, such as Session Initiation Protocol (SIP), the H.323 protocol, the Media Gateway Control Protocol (MGCP), the Media Gateway Control Protocol (MEGACO), and other standard or proprietary protocols may alternatively be used.
- the call connection is performed using the SIP signaling protocol.
- the network management topology database 116 can be accessed by the media terminating devices 102 and 104 through the data network 110 , or directly by the call control server 112 , to receive information about the system's infrastructure. Subsequently, a data compression technique can be chosen according to the network topology between a source and destination media network device.
- FIG. 5 is a message flow diagram illustrating one embodiment of signaling to select a data compression technique during call setup.
- a network device such as media terminating device 102
- the media terminating device 102 may request to place a call to media terminating device 104 , for example.
- the message may be a SIP INVITE message that is used to initiate a real time protocol (RTP) media session as described above.
- RTP real time protocol
- the call control server 112 will then identify IP addresses of the media terminating devices 102 and 104 , as shown at message 504 , to initiate the call.
- the call control server 112 will identify the IP addresses by querying the database 114 , for example, and the database will return the IP addresses, as shown at message 506 . (Alternatively, the call control server 112 may identify the IP addresses from information included within the SIP INVITE message).
- the call control server 112 will request data path information from the network management topology database 116 , as shown at message 508 .
- the call control server 112 will request the network management topology database 116 to identify where the media terminating devices 102 and 104 are located and any intermediary links that are contained within a data transfer path between the media terminating devices 102 and 104 .
- the network management topology database 116 will identify the data path information using the IP addresses of the media terminating devices 102 and 104 using any standard network mapping algorithm, and return the data path information to the call control server 112 , as shown at message 510 .
- the call control server 112 will use the data path information to determine a data compression technique that the media terminating devices 102 and 104 will use for the call. Thus, the call control server 112 will return the data compression technique to the media terminating device 102 , as shown at message 512 . The call control server 112 may also send a message indicating the data compression technique to the media terminating device 104 . The call between the media terminating devices 102 and 104 may then begin and data will be transferred between the devices in the selected compressed format.
- the call control server 112 or the media terminating devices 102 and 104 will determine the data compression technique by identifying any intermediary links within the data transfer path and determining maximum data transfer speeds through these links.
- the call control server 112 or the media terminating devices 102 and 104 may identify any intermediary links within the data transfer path by accessing the network management topology database 116 using the simple network management protocol (SNMP).
- SNMP simple network management protocol
- the call control server 112 or the media terminating devices 102 and 104 could read the network topology information, and using this information find where media terminating devices are located in the network topology, and then traverse the network topology from one media terminating device to the other, noting each link between the devices and each link's capabilities.
- the media terminating device 102 could access the database 116 through access network 106 and data network 110 and retrieve information corresponding to the network topology present between itself and the media terminating device 104 . The media terminating device 102 could then determine that access networks 106 and 108 and data network 110 comprise the links between media terminating devices 102 and 104 .
- the call control server 112 or the media terminating devices 102 and 104 may identify any intermediary links within the data transfer path by sending the network management topology database 116 the two IP addresses of the communicating devices (e.g., as obtained from the SIP INVITE call setup messages) and the network management topology database 116 would return a description of the data path between the two IP addresses.
- the returned information may contain intermediary link capabilities in the data path description, or the call control server 112 or media terminating devices may need to do further inquiries to the network management topology database 116 about the capabilities of each link in the data path description.
- the call control server 112 or the media terminating devices After analyzing all intermediary links, the call control server 112 or the media terminating devices will identify the slowest transfer speed of any link within a data path, and select a data compression technique to be used based on the slowest link's limitations. For example, if an intermediary link is a LAN, the call control server 112 will estimate data transfer speeds of 10, 100, 1000 or 10000 megabits per second and accordingly select a data compression technique that can accommodate the available bandwidth.
- the G.729 data compression may be used for data transfer when 64 kbit/s or less bandwidth is available, and no data compression may be used when 10 mbit/s or more is available (e.g., as may be available when transferring data through a LAN).
- network administrators may choose to manage the available bandwidth by using the G.729 or G.726 data compression.
- network administrators will utilize some type of data compression when bandwidth falls below 64 kbit/s.
- the call control server 112 or the media terminating devices may determine the data compression speed by determining the subnet where the media terminating devices 102 and 104 reside based on their IP addresses, and then determine a data transfer speed of that type of subnet. For example, if both the media terminating devices 102 and 104 are located on the same LAN, then a low data compression technique could be selected.
- FIG. 6 illustrates one example of a system 600 including media terminating devices 104 and 120 located on the same access network 108 . Thus, data transfer between the media terminating devices 104 and 120 does not need to traverse through the data network 104 . As a result, data transfer rates may be high, and a low compression technique may then be selected so that little or no loss of data results from the transfer of data from one media terminating device to another.
- the call control server 112 may determine where the media terminating devices 102 and 104 are located by accessing the database 114 and performing a lookup using the IP addresses of the media terminating devices 102 and 104 .
- the database 114 may contain such information based on registration of the media terminating devices 102 and 104 with the data network.
- the media terminating devices 102 and 104 may determine if they reside on the same subnet during call setup. For example, during call setup, the media terminating devices 102 and 104 could exchange SIP INVITE messages through the access network 108 to establish a call.
- media terminating device 104 could determine that it resides on the same network as media terminating device 102 because the header fields “To” (e.g., contains a display name or SIP request-URI towards which the request was originally directed), and “From” (e.g., contains a display name and a SIP request-URI that indicate the originator of the request) include SIP network addresses with the same domain.
- To e.g., contains a display name or SIP request-URI towards which the request was originally directed
- “From” e.g., contains a display name and a SIP request-URI that indicate the originator of the request
- information concerning prior calls through the system 100 is used to select a data compression technique.
- information regarding calls through the system 100 can be periodically gathered to build a call log or source/destination link table.
- Such information may include data transfer rates of calls for specific data pathways.
- the call log and source/destination link tables may be included within the database 114 .
- the call control server 112 or the network devices
- the call control server 112 could alternatively query a device, (e.g., a third party network management application designed for voice environments that gathers statistics about network performance and call quality), that provides the service of looking into call logs and responding to a query concerning a source/destination subnet or address pair to provide a data transfer rate of a preferred data pathway.
- a device e.g., a third party network management application designed for voice environments that gathers statistics about network performance and call quality
- the call control server 112 would be reviewing calls logs to identify past data transfer rates between network devices.
- Table 3 indicates call statistics for previous calls between the specified network devices.
- the call statistics include packet loss, packet jitter and packet delay. For example, for previous calls from network device D to network device A, the packet loss has been measured to be 2%, the packet jitter has been measured to be 50 ms and the packet delay has been measured to be 100 ms. These measurements may be the average measurement of such characteristics over a period of time, or the measurements may correspond to statistics at a particular time of the day. The statistics can be compiled in other manners as well.
- the statistics in the call log table can be used to select a data compression technique during call setup that will be used for data transfer between network devices. For example, if the packet loss is more than a few percent, this may indicate that this data transfer pathway is overloaded, and thus data transfer for a new call should be compressed. Further, if the packet jitter or the packet delay is as high as about 50-100 ms, then again the data transfer pathway may be heavily loaded, and thus data should be compressed accordingly for calls between these devices.
- Network Device A Network Device B
- Network Device C Network Device D
- Bandwidth 1.5 mbit/s Bandwidth: 1.5 mbit/s Bandwidth: 10 mbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am
- Network Device E Bandwidth: 64 kbit/s Bandwidth: 1.5 mbit/s Bandwidth: 64 kbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am Time: 6:00 am Time: 6:00 am 6:00 am Time: 6:00 am . . . . . .
- Bandwidth 10 mbit/s Bandwidth: 64 kbit/s Bandwidth: 64 kbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am . . . . . . .
- Table 4 illustrates limiting factors for data transfer between network devices.
- Table 4 includes available bandwidth within a data transfer pathway between network devices at specific times during the day.
- a data transfer pathway may include may network components or access networks.
- the information included in Table 4 corresponds to the slowest data transfer link between the two communicating network devices.
- the data transfer pathway between network device A and D includes a slowest link with an available bandwidth of 1.5 mbit/s at 6:00 am, but only 1.2 mbit/s at 7:00 am. Bandwidth will decrease as more users attempt to transfer data. As a result, at peak times during a day, the available bandwidth will be at a minimum.
- Table 4 may take other forms as well. That shown above is only one example.
- the information in Table 4 can be used to select a data compression technique. For example, at 6:00 am, the average bandwidth available for a data transfer pathway between network device A and network device D is 1.5 mbit/s, and thus the G.711 compression technique could be selected for low data compression.
- the call control server 112 may select a data compression technique based on other system characteristics as well (in addition to or rather than previously described information). For example, the time of day can be taken into account when selecting a data compression technique because usually system performance is slower or faster at certain times of the day. Other characteristics may also be considered.
- the media terminating devices 102 and 104 or the call control server 112 may select a data compression technique for data transfer during a call.
- the call control server 112 or the network devices can periodically (or on demand), adjust the data compression rates being used in a call to better accommodate system capabilities during the call.
- FIG. 7 is a flowchart depicting another embodiment of a method for selecting a data compression technique for data transfer through a network.
- the media terminating device 102 will be in a call session with the media terminating device 104 and the two network devices will transfer data between each other in a compressed format, as shown at block 702 .
- the media terminating devices 102 and 104 will measure the quality of the call, as shown at block 704 .
- the media terminating devices 102 and 104 can measure the quality of the call and send a reporting message (e.g., a SIP INVITE message) including statistics relating to the call quality to the call control server 112 .
- the call control server 112 may then determine a quality of data transfer between the media terminating devices 102 and 104 through the intermediary links in the system 100 .
- the media terminating devices 102 and 104 may implement tools to generate reports and to estimate a quality of calls.
- the RTP control protocol (RTCP) can be used to provide feedback on the quality of data transmission.
- RTCP is described in Schulzrinne et al., entitled “RTP: A Transport Protocol for Real-Time Applications,” IETF (RFC) 3550, July 2003, which is entirely incorporated by reference herein, as if fully set forth in this description.
- the media terminating devices 102 and 104 may provide quality reports using RTCP report packets that may be in many forms including a sender report (SR) or a receiver report (RR).
- the SR is issued if a sending device has sent any data packets during the interval since issuing the last report or the previous one, otherwise the RR is issued.
- Both the SR and RR forms include zero or more reception report blocks, one for each synchronization source from which the receiving device has received RTP data packets since the last report.
- Each reception report block provides statistics about data received from a particular source indicated in that block. The statistics may include timestamps of when data packets were received, number of data packets received, number of data packets sent, inter-arrival jitter time, delay since last SR was sent, and others.
- the media terminating devices can then measure a quality of a call by analyzing these statistics using sequence numbers and time stamps contained in the data packets.
- the media terminating devices 102 and 104 or the call control server 112 may adjust the data compression rates based on the quality of the call, as shown at block 706 .
- the compression format can be adjusted without putting the call on hold. A user may not notice a difference during the data compression adjustment except for an improved voice quality. Messaging used to request a change in data compression depends on the call signaling protocol used. In the case of the SIP, a call setup message (e.g., INVITE message) can be sent to adjust the data compression technique.
- a call setup message e.g., INVITE message
- FIG. 8 illustrates one embodiment of signaling to adjust the data compression technique.
- FIG. 8 illustrates call setup followed by adjustment of data compression.
- media terminating device 104 sends an INVITE message to the access network 108 , which forwards the message to the media terminating device 120 .
- the access network 108 will notify media terminating device 104 that the access network 108 is attempting to contact the media terminating device 120 .
- the media terminating device 120 will return a ringing notification to the access network 108 upon receiving the INVITE message, and the access network 108 will forward the ringing message to the media terminating device 104 .
- the media terminating device 120 will send a 200 OK message to the access network 108 , which forwards the 200 OK message to media terminating device 104 .
- the media terminating device 104 will then send an ACK message to the media terminating device 120 and an RTP media session is established.
- media terminating device 120 determines that the data compression technique needs to be adjusted.
- the media terminating device 120 then sends an INVITE message to the media terminating device 104 .
- This INVITE message is referred to as a “re-INVITE” message.
- the re-INVITE message will contain information corresponding to the new data compression technique.
- the media terminating device 104 will send a 200 OK message and an ACK message to the media terminating device 120 in response to the re-INVITE message. Then, the media terminating devices 104 and 120 would transfer data through an RTP media stream according to the selected compression technique.
- the call control server 112 may receive the reports generated by the media terminating devices 120 and 104 and then determine that the data compression technique for data transfer between the media terminating devices 120 and 104 should be adjusted. The call control server 112 may then signal to the media terminating devices 120 and 104 to inform them of the new compression format.
- the call control server 112 or the network devices may select a data compression technique to be used during a call based on many types of information or using many different techniques. Below are a few examples. However, it should be understand that many other equivalent techniques exist as well, and those described below are only exemplary.
- the call control server 112 or the media terminating devices 104 and 120 may use existing call log information (such as that shown above in Table 3 or Table 4) to determine optimum data compression techniques for data transfer between two network devices. Similar to above, the call control server 112 and the network devices may have access to a call history database (such as the database 114 ) that includes information relating to prior calls between the two communicating network devices. Rather than accessing the database during call setup, the call control server 112 or the network devices could access the database during the call so that call setup would not be delayed, for example.
- a call history database such as the database 114
- the call control server 112 or the network devices may monitor call connection performance (or data transfer rates) and may adjust the data compression to conform to the performance that the connection is providing at any given moment. For example, call performance parameters such as delay, jitter, and compression ratio can be measured in real time for a call. If the data transfer has an unacceptable delay, or if the network provides various latency for different data packets, then the data compression technique may need to be adjusted. As one particular example, if data transfer rates are unacceptably slow during the call, then the data may be compressed at a higher level, so that smaller sized data packets are being transferred to relieve stress on the network and open up additional bandwidth for faster data transfer.
- FIG. 9 is a block diagram illustrating one embodiment of a system 900 including smart network device feedback.
- the system 900 is similar to the system 600 in FIG. 6 , except that the media terminating devices 104 and 120 are coupled to the data network 110 through a switch 122 and a gateway 124 , and a third media terminating device 126 is connected to the data network.
- the switch 122 and the gateway 124 both help to ensure that data is sent to a desired destination.
- the switch 122 and the gateway 124 may identify if the data was being transferred over a slow link without data compression, for example, and then notify the call control server 112 that the source/destination address pair was transferring data with no compression over a slow link. As another example, if data was compressed and then transferred between two addresses or subnets that are known to be interconnected with high speed links, then the call control server 112 could be notified that the source/destination subnet pair was using compression over high speed links when compression may not be necessary.
- the switch 122 and the gateway 124 operate as smart network devices in a sense that the switch 122 and the gateway 124 can monitor data transfer between network devices and determine whether to adjust a data compression technique for the data transfer. For example, the switch 122 would transfer data directly between the media terminating devices 104 and 120 . The switch 122 would determine that both devices 104 and 120 reside on itself, and thus if the switch 122 observes compressed data being transferred then the switch 122 could inform the devices 104 and 120 that data compression is unnecessary because both devices 104 and 120 reside on the same switch.
- the gateway 124 may monitor the data transfer to determine if the data is sufficiently compressed. If the gateway 124 determines that the compression technique should be adjusted, the gateway 124 would inform the media terminating devices 120 and 104 to change their codecs as described in FIG. 8 .
- the smart devices could also send reporting messages to the call control server 112 to be stored and used to select data compression techniques for future calls.
- the call control server 112 could identify during call setup that media terminating devices 120 and 104 reside on the same switch, and that no data compression is necessary for the data transfer between these devices.
- network equipment or smart devices may determine that data should or should not be compressed for data transfer through the smart devices.
- the smart network devices may also recognize when individual links become stressed or that bandwidth has become limited, and the network equipment could then inform the network devices or the call control server 112 to force data compression.
Abstract
A method and system for selecting a data compression technique for data transfer through a data network is provided. During call setup, information is gathered from the network infrastructure by receiving feedback from smart network devices, reviewing calls logs, or by accessing a network topology database, and the information can then be used to select a desired compression technique. During a call, a media terminating end device or a call control server will monitor call connection performance specific to the data transfer pathway used for the call connection, and may adjust the data compression to conform with the performance that the connection is providing at any given moment. Performance parameters such as delay, jitter, and compression ratios can be measured in real-time for a call to determine if a change in compression is deemed beneficial. In this manner, the compression method can be chosen based on real time network performance.
Description
- The present invention relates to data transfer through IP data networks, and more particularly, to a method and system for selecting a data compression technique for data transfer through a data network.
- Internet protocol (“IP”) telephony and IP multimedia networks are widely used to setup and manage calls and sessions. To do so, a codec, which refers to a coder-decoder or a compression-decompression device, is generally used to convert an audio signal into a compressed digital form for transmission through the network to reduce file sizes and back into an uncompressed audio signal for play out at a media terminating device. Media terminating devices in IP Telephony (e.g., phones and gateways) support multiple types of codecs.
- Codecs range from non-compressed (no loss of information) to compressed (loss of information but good quality under certain conditions). While non-compressed codecs have higher quality, they use more bandwidth compared to non-compressed codecs. In general, it is desirable to create a system that uses non-compressed codecs where bandwidth is cheap and abundant (e.g., within local area networks (LAN)) and use compressed codecs where bandwidth is costly and scarce (e.g., within wide area networks (WAN)).
- Since many media terminating devices support multiple codecs, a selection technique is necessary. IP networks are usually configured to give certain codecs preference over others. For example, media terminating devices are set to have starting preferences, and upon connection, the devices use the highest priority codec that both communicating devices can support. However, using default preferences for all types of connections does not always provide a desirable connection. For example, if high compression codecs are set for top priority, then a majority of calls would suffer a loss of information even when it is unnecessary. Further, using default preferences for calls may not allow codec negotiation during a call, such as by taking into consideration network delays, time of day, or other network characteristics.
- Thus, it is desirable to provide a codec selection technique that may provide an optimal data compression for each specific connection.
- In an example of an embodiment, a method for selecting a data compression technique for data transfer through a network between a first network device and a second network device is provided. The method includes receiving information of a configuration of the network between the first network device and the second network device. The information includes data transfer speeds through the network. The method further includes selecting a data compression technique for data transfer through the network between the first network device and the second network device based on the information. The method may be performed by a call control server residing in the network, or by the first or second network device, and the method can be performed during call setup or during a call between the first and second network device.
- In one example, the first network device will determine the configuration of the network between the first network device and the second network device by identifying a data transfer path between the first network device and the second network device, and then identifying intermediary links in the data transfer path between the first network device and the second network device. The first network device can then determine data transfer capabilities of the intermediary links in the data transfer path between the first network device and the second network device to select the data compression technique for data transfer through the network to the second network device.
- Many different types of information regarding the configuration of the network between the first network device and the second network device can be obtained to be used to select a data compression technique for data transfer between the first and second network devices. For example, the information may include a network topology between the first network device and the second network, information regarding intermediary links contained within a data path between the first network device and the second network device, information regarding where the first network device and the second network device are located within the network, call history information for prior calls between the first network device and the second network device, information from a smart network device including whether uncompressed data is being transferred over a slow speed link or whether compressed data is being transferred over a high speed link, performance parameters such as a packet delivery delay time in the network, a jitter time in the network, and a packet loss factor of the network, and information regarding a time of day.
- In another example of an embodiment, a method for selecting a data compression to technique for data transfer through a network between a first network device and a second network device is provided. The method includes transferring data in a compressed format between the first network device and the second network device through intermediary links in the network. The method also includes determining a quality of data transfer through the intermediary links in the network, and then adjusting the compressed format based on the quality of data transfer.
- These as well as other features, advantages and alternatives will become apparent to those of ordinary skill in the art by reading the following detailed description, with appropriate reference to the accompanying drawings.
-
FIG. 1 is a block diagram of one embodiment of a network telephony system. -
FIG. 2 is a block diagram of one embodiment of a media terminating device. -
FIG. 3 is a block diagram of one embodiment of a call control server. -
FIG. 4 is a flowchart depicting one embodiment of a method for selecting a data compression technique for data transfer through a network. -
FIG. 5 is a message flow diagram illustrating one embodiment of selecting a data compression technique during call setup. -
FIG. 6 illustrates one example of a system including media terminating devices located on the same access network. -
FIG. 7 is a flowchart depicting another embodiment of a method for selecting a data compression technique for data transfer through a network. -
FIG. 8 illustrates one embodiment of signaling to adjust a data compression technique for data transfer between network devices. -
FIG. 9 is a block diagram illustrating one embodiment of a system including smart network device feedback. - In one embodiment, a method of selecting a data compression technique in an IP telephony network is provided. The method may be performed during call setup or during the call. During call setup, information can be gathered from the network infrastructure by (i) accessing network topology information from a network management database, (ii) receiving feedback from smart network devices that report if they recognize uncompressed data being transferred over a slow speed link or compressed data being transferred between two network phones known to be connected by a high speed connection, or (iii) reviewing calls logs to identify actual performance between phones, for example. The information can then be used to select a desired compression technique to be used for data transfer through the network.
- During a call, a media terminating end device, e.g., network telephone, or a call control server will monitor call connection performance and may adjust the data compression to conform with the performance that the connection is providing at any given moment. For example, performance parameters such as delay, jitter, and compression ratios can be measured in real time for a call to determine if a change in compression is deemed beneficial. If so, the phone may send a request to a device on the other end of the connection to request a change in the compression. In this manner, the compression method is chosen based on real time network performance.
- Referring now to the figures, and more particularly to
FIG. 1 , a block diagram of one embodiment of anetwork telephony system 100 is illustrated. It should be understood that thesystem 100 illustrated inFIG. 1 and other arrangements described herein are set forth for purposes of example only, and other arrangements and elements can be used instead and some elements may be omitted altogether, depending, for example, on manufacturing and/or consumer preferences. - The
system 100 includesmedia terminating devices data network 110 throughaccess networks media terminating devices media terminating devices system 100. - The
access networks media terminating devices data network 110. For example, theaccess networks media terminating devices access networks data network 110 may be a LAN, a WAN, or generally a data packet network such as an Internet Protocol (IP) network. Thedata network 110 interconnects theaccess networks media terminating devices data network 110. - The
data network 110 also couples to acall control server 112. Thecall control server 112 establishes and monitors data transfer between themedia terminating devices call control server 112 will receive call setup messages from themedia terminating devices media terminating devices call control server 112 may receive reporting messages from the devices that include data transfer statistics for the call. Thus, thecall control server 112 observes operation of themedia terminating devices - The call control server is connected to a
database 114. Thedatabase 114 stores general information concerning thesystem 100, and specific information concerning past performance of thesystem 100. For example, thedatabase 114 may include a call log detailing specific data transfer rates between network devices residing on thedata network 110 for calls between the network devices. Thedatabase 114 may also include information relating to bandwidth capabilities of thedata network 104 and/or bandwidth capabilities of network equipment within thedata network 110. Thedatabase 114 may further include a table of all network devices residing on thedata network 110 that are registered with thedata network 110 and the network devices' associated IP addresses. - The
system 100 may also include a networkmanagement topology database 116 coupled to thecall control server 112 and thedata network 110. Thedatabase 116 includes information pertaining to a topology of thesystem 100, such as data paths between network devices in thesystem 100. For example, thedatabase 116 may contain a table that includes possible data transfer paths between any two network devices residing in the system. The data transfer path information may include all intermediary links between two network devices. Alternatively, thedatabase 116 may include information pertaining to all the links within thesystem 100, and how the links are interconnected such that thecall control server 112 could determine data transfer pathways between network devices using this information. Thus, thecall control server 112 ormedia terminating devices database 116 to identify the intermediary data transfer links between themedia terminating devices - The
database 116 may include any third party network management tool that includes network mapping capabilities, such as HP OpenView® available from the Hewlett-Packard Company or IBM Tivoli NetView. Themedia terminating devices call control server 112 can access thedatabase 116 to identify a data transfer path between themedia terminating devices -
FIGS. 2 and 3 are block diagrams that illustrate an exemplarymedia terminating device 102 and an exemplarycall control server 112. It should be understood that these and other arrangements described herein are set forth for purposes of example only, and other arrangements and elements can be used instead and some elements may be omitted altogether. Further, many of the elements described herein are functional entities that may be implemented as hardware, firmware, or software, and as discrete components or in conjunction with other components, in any suitable combination and location. - As shown in
FIG. 2 , themedia terminating device 102 includes aprocessor 202, acodec 204, auser interface 206, anetwork interface 208, andmemory 210. Thememory 210 includes a number of applications executable by theprocessor 202. The applications may be in the form of executable instructions accessible by theprocessor 204 to perform specific tasks. In addition, some of the applications can be implemented fully or in part through application logic hardware. The applications include a quality ofconnection application 212 executable to determine performance statistics related to a call connection, adata compression application 214 executable to select a desired data compression technique, areporting application 216 executable to send messages to thecall control server 112 including information relating to statistics of a call connection, acall setup application 218 executable to initiate a call with another network device, andother device applications 220 such as conference call functions, phone number storage and retrieval, etc. Themedia terminating device 102 may include other applications as well. - As shown in
FIG. 3 , thecall control server 112 includes aprocessor 302, adatabase 304, anetwork interface 306, andmemory 308. The memory includes a number of applications executable by theprocessor 302. The applications may be in the form of executable instructions accessible by theprocessor 302 to perform specific tasks. The applications include a datacompression selection application 310 executable to select a data compression technique, a requestreporting messages application 312 executable to request messages from themedia terminating devices reporting messages application 314 executable to receive messages from themedia terminating devices quality report application 316 executable to generate a quality report of data transfer between network devices, aquery database application 318 executable to query thenetwork management database 116, andother device applications 320 such as network management applications, voice mail, hold music, etc. Thecall control server 112 may include other applications as well. - To conserve bandwidth in the
system 100, media terminating devices can transfer data in a compressed format. To compress multimedia data, a codec is generally used to convert an audio signal into a compressed digital form for transmission through the network to reduce file sizes and back into an uncompressed audio signal for play out at a media terminating device. - Data may be compressed using any standard compression algorithm or technique. Some examples include G.711, G.726 or G.729. G.711 is described in “Pulse Code Modulation of Voice Frequencies,” ITU-T Recommendation G.711, G.726 is described in “40, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM),” ITU-T Recommendation G.726, and G.729 is described in “Coding of Speech at 8 kbit/s using Conjugate-Structure Algebraic-Code-Excited Linear-Prediction (CS-ACELP),” ITU-T Recommendation G.729. ITU-T Recommendations 0.711, G.726 and G.729 are each incorporated by reference herein as if fully set forth in this description. These are examples only, since many other compression techniques exist as well. Further, higher bandwidth audio requirements may arise for certain types of data packets, and in such cases, other specialized data compression techniques can be developed.
- G.711 data compression can be used for low compression techniques or in instances where bandwidth is plentiful. For example, telephone companies transmit voice at minimal compression levels such as at 64 kbit/s using G.711 for high quality data transmission due to the availability of high bandwidth data transfer links. G.729 data compression can be used for heavy compression techniques or in instances where bandwidth is scarce. For example, using G.729, data is compressed and transferred at 8 kbit/s, which is an 8:1 data compression, and the quality of data transmission is less than G.711 due to loss of data. As another example, G.726 data compression can be used to compress data to sizes in between those offered by G.711 and G.729. G.726 is an intermediate data compression technique that is used to compress data to 32 kbit/s, which is a 2:1 data compression and results in a low loss in quality of the data.
- As such, many types of codecs may be used within network devices depending on the type of data being compressed and transferred. Thus, the
media terminating devices - In one embodiment, the
media terminating devices call control server 112 may select a data compression technique for data transfer between network devices residing in thesystem 100 based on the topology of thesystem 100.FIG. 4 is a flowchart depicting one embodiment of a method for selecting the data compression technique. Initially, themedia terminating devices call control server 112 will receive information of a configuration of the network between themedia terminating devices block 402. For example, information concerning links that transfer data between thedevices management topology database 116. Thedatabase 116 can then send such information to thecall control server 112 directly, or to themedia terminating devices data network 110. - Next, the
media terminating devices call control server 112 will determine characteristics of the intermediary links in the network from the information received, as shown atblock 404. Intermediary links of interest may be those contained within a data path between themedia terminating devices - Following, the
media terminating devices call control server 112 will select a data compression technique for data transfer between themedia terminating devices block 406. For example, the data compression technique may be selected based on total available bandwidth, an instantaneous available bandwidth, or administration control of bandwidth. Thus, as an example, if a slowest link along a data transfer path has the ability to transfer data at 64 kbit/s, then a high compression technique can be used, such as the G.729 compression technique (e.g., 8 kbit/s), such that the bandwidth on the slowest link will not be exhausted for one phone call. - As another example, if the slowest link in a data transfer path is a T1 link (e.g., 1.5 mbit/s) into a data network, then the G.711 data compression may be chosen since there is ample bandwidth available. A T1 data link can be used to transfer data between devices residing on a WAN. However, in such a case, administrative controls may be set to further conserve bandwidth and to dedicate this link as a compressed link. In this case, a data compression technique is selected based on available bandwidth and the administrative settings.
- The method described in
FIG. 4 for data compression technique selection may be performed during a call setup between network devices, or during a call between network devices. A call or data connection between two network devices can be established using any IP based call signaling. - In one example embodiment, a call is setup and performed using the Session Initiation Protocol (SIP) signaling protocol. SIP is described in Handley, et al., “SIP: Session Initiation Protocol,” IETF (RFC) 2543, March 1999, which is entirely incorporated by reference herein, as if fully set forth in this description. The SIP is also described in Rosenberg et al., “SIP: Session Initiation Protocol,” IETF (RFC) 3261, June 2002, the contents of which are entirely incorporated herein by reference, as if fully set forth in this description. Other signaling protocols, such as H-323, MGCP, MEGACO, and other standard or proprietary techniques may alternatively be used.
- The SIP protocol is a text-based protocol in which one party sends a message in American standard code for information interchange (ASCII) text consisting of a method name on the first line, followed by additional lines containing headers for passing parameters. Many of the headers are taken from multipurpose Internet mail extensions (MIME) to allow SIP to interwork with existing Internet applications.
- As an example, consider the following exemplary text encoded message.
-
INVITE sip:user@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: User <sip:user@biloxi.com> From: Sender <sip:sender@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:sender@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 142 - The first line of this text-encoded message contains the method name (e.g., INVITE). The lines that follow are a list of header fields. For example, the fields Via (describing the address at which the user is expecting to receive responses), To (contains a display name or SIP request-URI towards which the request was originally directed), From (contains a display name and a SIP request-URI that indicate the originator of the request), Call-ID (contains a globally unique identifier for this call), CSeq (a traditional sequence number), and Contact (contains a SIP request-URI that represents a direct route to contact the sender) are header fields. In addition, the From header also has a tag parameter containing a random string (e.g., 1928301774) that used for identification purposes.
- Other example methods are provided below in Table 1.
-
TABLE 1 METHOD DESCRIPTION INVITE Request initiation of a session ACK Confirm that a session has been initiated BYE Request termination of a session OPTIONS Query a host about its capabilities CANCEL Cancel a pending request REGISTER Inform a redirection server about the user's current location - Using the methods in Table 1, many types of SIP call flows can be performed, such as those described in RFC 3665, entitled “Session Initiation Protocol (SIP) Basic Call Flow Examples,” which is entirely incorporated by reference as if fully set forth in this description. As one example, to initiate a call, the media terminating device 102 (“the caller”) sends an INVITE message to the media terminating device 104 (“the callee”) by way of the
access network 108. The transport protocol for the transmission may be transmission control protocol (TCP) or user datagram protocol (UDP), for example. In both cases, the headers on the second and subsequent lines of INVITE message describe the structure of the message body, which contains the caller's capabilities, media types, and formats. The INVITE message also contains a user identifier to identify the callee, a caller user identifier to identify the caller, and a session description that informs the called party what type of media the caller can accept and where the caller wishes the media data to be sent. User identifiers in SIP requests are known as SIP addresses. SIP addresses are referred to as SIP Universal Resource Indicators (SIP request-URIs), which are of the form sip: user@host.domain. Other addressing conventions may also be used. - The
access network 108 locates the callee and transmits an INVITE request to the callee. The INVITE request may simply be a forwarded version of the INVITE request, containing the SIP addresses of the caller and the callee. Upon receiving the INVITE request, the callee may transmit a response message to theaccess network 108. Theaccess network 108 may then transmit a response message back to the caller. The response messages may be reply codes. A reply code may be a three-digit number with a classification as defined below in Table 2. -
TABLE 2 CODE MEANING EXAMPLES 1xx Information 100 = server agrees to handle client's request 2xx Success 200 = request succeeded 3xx Redirection 301 = page moved 4xx Client Error 403 = forbidden page 5xx Server Error 500 = internal server error - For example, if the callee accepts the call, the callee responds with a 200 OK message. Following the reply code line, the callee also may supply information about the callee's capabilities, media types, and formats.
- If the transmitted response message is a success response (i.e., represented by a SIP “200 OK” response), then the caller may send an ACK message back to the callee to confirm receipt of the 200 OK message and complete the call initiation process. The ACK message may be sent through the same path as the INVITE request and response messages. After the call has been initiated using the SIP signaling protocol, the call is connected and media data (including voice information, etc.) can flow on a data channel between the
media terminating devices - In one embodiment, the
media terminating devices call control server 112 will select a data compression technique for data transfer during call setup. A call or data connection between two network devices can be carried out using any standard IP telephony protocol, such as Session Initiation Protocol (SIP), the H.323 protocol, the Media Gateway Control Protocol (MGCP), the Media Gateway Control Protocol (MEGACO), and other standard or proprietary protocols may alternatively be used. In an example embodiment, the call connection is performed using the SIP signaling protocol. During call setup, the networkmanagement topology database 116 can be accessed by themedia terminating devices data network 110, or directly by thecall control server 112, to receive information about the system's infrastructure. Subsequently, a data compression technique can be chosen according to the network topology between a source and destination media network device. - As one example,
FIG. 5 is a message flow diagram illustrating one embodiment of signaling to select a data compression technique during call setup. Initially, a network device, such asmedia terminating device 102, will send a message to thecall control server 112 to request to place a call, as shown atmessage 502. Themedia terminating device 102 may request to place a call tomedia terminating device 104, for example. The message may be a SIP INVITE message that is used to initiate a real time protocol (RTP) media session as described above. - The
call control server 112 will then identify IP addresses of themedia terminating devices message 504, to initiate the call. Thecall control server 112 will identify the IP addresses by querying thedatabase 114, for example, and the database will return the IP addresses, as shown atmessage 506. (Alternatively, thecall control server 112 may identify the IP addresses from information included within the SIP INVITE message). Next, thecall control server 112 will request data path information from the networkmanagement topology database 116, as shown atmessage 508. For example, thecall control server 112 will request the networkmanagement topology database 116 to identify where themedia terminating devices media terminating devices management topology database 116 will identify the data path information using the IP addresses of themedia terminating devices call control server 112, as shown atmessage 510. - The
call control server 112 will use the data path information to determine a data compression technique that themedia terminating devices call control server 112 will return the data compression technique to themedia terminating device 102, as shown atmessage 512. Thecall control server 112 may also send a message indicating the data compression technique to themedia terminating device 104. The call between themedia terminating devices - Many methods exist for selecting the data compression technique based on network topology information. Some examples are listed below. However, it should be understood that these are exemplary only, since many other techniques for selecting a data compression technique based on network topology information exist.
- Identifying Intermediary Links
- In one embodiment, the
call control server 112 or themedia terminating devices call control server 112 or themedia terminating devices management topology database 116 using the simple network management protocol (SNMP). Thecall control server 112 or themedia terminating devices media terminating device 102 could access thedatabase 116 throughaccess network 106 anddata network 110 and retrieve information corresponding to the network topology present between itself and themedia terminating device 104. Themedia terminating device 102 could then determine thataccess networks data network 110 comprise the links betweenmedia terminating devices - In addition, the
call control server 112 or themedia terminating devices management topology database 116 the two IP addresses of the communicating devices (e.g., as obtained from the SIP INVITE call setup messages) and the networkmanagement topology database 116 would return a description of the data path between the two IP addresses. The returned information may contain intermediary link capabilities in the data path description, or thecall control server 112 or media terminating devices may need to do further inquiries to the networkmanagement topology database 116 about the capabilities of each link in the data path description. - After analyzing all intermediary links, the
call control server 112 or the media terminating devices will identify the slowest transfer speed of any link within a data path, and select a data compression technique to be used based on the slowest link's limitations. For example, if an intermediary link is a LAN, thecall control server 112 will estimate data transfer speeds of 10, 100, 1000 or 10000 megabits per second and accordingly select a data compression technique that can accommodate the available bandwidth. - As other examples, the G.729 data compression may be used for data transfer when 64 kbit/s or less bandwidth is available, and no data compression may be used when 10 mbit/s or more is available (e.g., as may be available when transferring data through a LAN). When transferring data through links with available bandwidth ranging from 64 kbit/s to 10 mbit/s (e.g., such as when using a T1 data link that provides 1.5 mbit/s), network administrators may choose to manage the available bandwidth by using the G.729 or G.726 data compression. Usually, network administrators will utilize some type of data compression when bandwidth falls below 64 kbit/s.
- Identifying Subnet Information
- In another embodiment, the
call control server 112 or the media terminating devices may determine the data compression speed by determining the subnet where themedia terminating devices media terminating devices FIG. 6 illustrates one example of asystem 600 includingmedia terminating devices same access network 108. Thus, data transfer between themedia terminating devices data network 104. As a result, data transfer rates may be high, and a low compression technique may then be selected so that little or no loss of data results from the transfer of data from one media terminating device to another. - The
call control server 112 may determine where themedia terminating devices database 114 and performing a lookup using the IP addresses of themedia terminating devices database 114 may contain such information based on registration of themedia terminating devices - In addition, the
media terminating devices media terminating devices access network 108 to establish a call. As a specific example, ifmedia terminating device 102 sent the SIP INVITE message shown below tomedia terminating device 104, thenmedia terminating device 104 could determine that it resides on the same network asmedia terminating device 102 because the header fields “To” (e.g., contains a display name or SIP request-URI towards which the request was originally directed), and “From” (e.g., contains a display name and a SIP request-URI that indicate the originator of the request) include SIP network addresses with the same domain. -
INVITE sip:user@chicago.com SIP/2.0 Via: SIP/2.0/UDP pc33.chicago.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: User <sip:user@chicago.com> From: Sender <sip:sender@chicago.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.chicago.com CSeq: 314159 INVITE Contact: <sip:sender@pc33.chicago.com> Content-Type: application/sdp Content-Length: 142
In example above, the call is established without signaling through thecall control server 112. Thus, themedia terminating devices - Call History Information
- In still another embodiment, information concerning prior calls through the
system 100 is used to select a data compression technique. For example, information regarding calls through thesystem 100 can be periodically gathered to build a call log or source/destination link table. Such information may include data transfer rates of calls for specific data pathways. The call log and source/destination link tables may be included within thedatabase 114. Thus, when a network device requests initiation of a call, the call control server 112 (or the network devices) could access the source/destination table in thedatabase 114 to determine an available data pathway for data transfer to the network device to which he requests to call. In addition, thecall control server 112 could alternatively query a device, (e.g., a third party network management application designed for voice environments that gathers statistics about network performance and call quality), that provides the service of looking into call logs and responding to a query concerning a source/destination subnet or address pair to provide a data transfer rate of a preferred data pathway. Thus, thecall control server 112 would be reviewing calls logs to identify past data transfer rates between network devices. - An example call log table is shown below in Table 3.
-
TABLE 3 Network Device A Network Device B Network Device C Network Device D Packet Loss: 2% Packet Loss: 2% Packet Loss: 1% Packet Jitter: 50 ms Packet Jitter: 20 ms Packet Jitter: 10 ms Packet Delay: 100 ms Packet Delay: 50 ms Packet Delay: 10 ms Network Device E Packet Loss: 3% Packet Loss: 2% Packet Loss: 2% Packet Jitter: 30 ms Packet Jitter: 50 ms Packet Jitter: 5 ms Packet Delay: 500 ms Packet Delay: 100 ms Packet Delay: 10 ms Network Device G Packet Loss: 0.5% Packet Loss: 1.2% Packet Loss: 1% Packet Jitter: 10 ms Packet Jitter: 15 ms Packet Jitter: 5 ms Packet Delay: 10 ms Packet Delay: 20 ms Packet Delay: 10 ms - Table 3 indicates call statistics for previous calls between the specified network devices. The call statistics include packet loss, packet jitter and packet delay. For example, for previous calls from network device D to network device A, the packet loss has been measured to be 2%, the packet jitter has been measured to be 50 ms and the packet delay has been measured to be 100 ms. These measurements may be the average measurement of such characteristics over a period of time, or the measurements may correspond to statistics at a particular time of the day. The statistics can be compiled in other manners as well.
- The statistics in the call log table can be used to select a data compression technique during call setup that will be used for data transfer between network devices. For example, if the packet loss is more than a few percent, this may indicate that this data transfer pathway is overloaded, and thus data transfer for a new call should be compressed. Further, if the packet jitter or the packet delay is as high as about 50-100 ms, then again the data transfer pathway may be heavily loaded, and thus data should be compressed accordingly for calls between these devices.
- An example source/destination or data pathway table is shown below in Table 4.
-
TABLE 4 Network Device A Network Device B Network Device C Network Device D Bandwidth: 1.5 mbit/s Bandwidth: 1.5 mbit/s Bandwidth: 10 mbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am Bandwidth: 1.2 mbit/s . . Time: 7:00 am . . . . . . . Network Device E Bandwidth: 64 kbit/s Bandwidth: 1.5 mbit/s Bandwidth: 64 kbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am . . . . . . . . . Network Device G Bandwidth: 10 mbit/s Bandwidth: 64 kbit/s Bandwidth: 64 kbit/s Time: 6:00 am Time: 6:00 am Time: 6:00 am . . . . . . . . . - Table 4 illustrates limiting factors for data transfer between network devices. For instance, Table 4 includes available bandwidth within a data transfer pathway between network devices at specific times during the day. A data transfer pathway may include may network components or access networks. The information included in Table 4 corresponds to the slowest data transfer link between the two communicating network devices. As one example, the data transfer pathway between network device A and D includes a slowest link with an available bandwidth of 1.5 mbit/s at 6:00 am, but only 1.2 mbit/s at 7:00 am. Bandwidth will decrease as more users attempt to transfer data. As a result, at peak times during a day, the available bandwidth will be at a minimum. Table 4 may take other forms as well. That shown above is only one example.
- The information in Table 4 can be used to select a data compression technique. For example, at 6:00 am, the average bandwidth available for a data transfer pathway between network device A and network device D is 1.5 mbit/s, and thus the G.711 compression technique could be selected for low data compression.
- Other Characteristics
- In other embodiments, the
call control server 112 may select a data compression technique based on other system characteristics as well (in addition to or rather than previously described information). For example, the time of day can be taken into account when selecting a data compression technique because usually system performance is slower or faster at certain times of the day. Other characteristics may also be considered. - In another example embodiment, the
media terminating devices call control server 112 may select a data compression technique for data transfer during a call. For example, thecall control server 112 or the network devices can periodically (or on demand), adjust the data compression rates being used in a call to better accommodate system capabilities during the call. -
FIG. 7 is a flowchart depicting another embodiment of a method for selecting a data compression technique for data transfer through a network. Using thesystem 100 illustrated inFIG. 1 as an example, initially, themedia terminating device 102 will be in a call session with themedia terminating device 104 and the two network devices will transfer data between each other in a compressed format, as shown atblock 702. - The
media terminating devices block 704. Alternatively, themedia terminating devices call control server 112. Thecall control server 112 may then determine a quality of data transfer between themedia terminating devices system 100. - The
media terminating devices - The
media terminating devices - After determining a quality of the call, the
media terminating devices call control server 112 may adjust the data compression rates based on the quality of the call, as shown atblock 706. The compression format can be adjusted without putting the call on hold. A user may not notice a difference during the data compression adjustment except for an improved voice quality. Messaging used to request a change in data compression depends on the call signaling protocol used. In the case of the SIP, a call setup message (e.g., INVITE message) can be sent to adjust the data compression technique. -
FIG. 8 illustrates one embodiment of signaling to adjust the data compression technique.FIG. 8 illustrates call setup followed by adjustment of data compression. To setup a call using SIP,media terminating device 104 sends an INVITE message to theaccess network 108, which forwards the message to themedia terminating device 120. Following, theaccess network 108 will notifymedia terminating device 104 that theaccess network 108 is attempting to contact themedia terminating device 120. Themedia terminating device 120 will return a ringing notification to theaccess network 108 upon receiving the INVITE message, and theaccess network 108 will forward the ringing message to themedia terminating device 104. Once a user answers themedia terminating device 120, for example, themedia terminating device 120 will send a 200 OK message to theaccess network 108, which forwards the 200 OK message tomedia terminating device 104. Themedia terminating device 104 will then send an ACK message to themedia terminating device 120 and an RTP media session is established. - Subsequently, suppose
media terminating device 120 determines that the data compression technique needs to be adjusted. Themedia terminating device 120 then sends an INVITE message to themedia terminating device 104. This INVITE message is referred to as a “re-INVITE” message. The re-INVITE message will contain information corresponding to the new data compression technique. Themedia terminating device 104 will send a 200 OK message and an ACK message to themedia terminating device 120 in response to the re-INVITE message. Then, themedia terminating devices - Alternatively, the
call control server 112 may receive the reports generated by themedia terminating devices media terminating devices call control server 112 may then signal to themedia terminating devices - The
call control server 112 or the network devices may select a data compression technique to be used during a call based on many types of information or using many different techniques. Below are a few examples. However, it should be understand that many other equivalent techniques exist as well, and those described below are only exemplary. - In one embodiment, the
call control server 112 or themedia terminating devices call control server 112 and the network devices may have access to a call history database (such as the database 114) that includes information relating to prior calls between the two communicating network devices. Rather than accessing the database during call setup, thecall control server 112 or the network devices could access the database during the call so that call setup would not be delayed, for example. - In addition, the
call control server 112 or the network devices may monitor call connection performance (or data transfer rates) and may adjust the data compression to conform to the performance that the connection is providing at any given moment. For example, call performance parameters such as delay, jitter, and compression ratio can be measured in real time for a call. If the data transfer has an unacceptable delay, or if the network provides various latency for different data packets, then the data compression technique may need to be adjusted. As one particular example, if data transfer rates are unacceptably slow during the call, then the data may be compressed at a higher level, so that smaller sized data packets are being transferred to relieve stress on the network and open up additional bandwidth for faster data transfer. - Smart Network Device Feedback
- In another embodiment, smart network devices (e.g., bridges or routers) may inform the
call control server 112 or the network devices that the data compression technique should be adjusted.FIG. 9 is a block diagram illustrating one embodiment of asystem 900 including smart network device feedback. Thesystem 900 is similar to thesystem 600 inFIG. 6 , except that themedia terminating devices data network 110 through aswitch 122 and agateway 124, and a thirdmedia terminating device 126 is connected to the data network. Theswitch 122 and thegateway 124 both help to ensure that data is sent to a desired destination. In addition, theswitch 122 and thegateway 124 may identify if the data was being transferred over a slow link without data compression, for example, and then notify thecall control server 112 that the source/destination address pair was transferring data with no compression over a slow link. As another example, if data was compressed and then transferred between two addresses or subnets that are known to be interconnected with high speed links, then thecall control server 112 could be notified that the source/destination subnet pair was using compression over high speed links when compression may not be necessary. - Thus, the
switch 122 and thegateway 124 operate as smart network devices in a sense that theswitch 122 and thegateway 124 can monitor data transfer between network devices and determine whether to adjust a data compression technique for the data transfer. For example, theswitch 122 would transfer data directly between themedia terminating devices switch 122 would determine that bothdevices switch 122 observes compressed data being transferred then theswitch 122 could inform thedevices devices - Alternatively, if the
media terminating device 120 was communicating with themedia terminating device 126, then data would be transferred through thegateway 124 and thedata network 110. As a result, the data may need to be compressed since thedata network 110 may not have unlimited bandwidth available. Thus, thegateway 124 may monitor the data transfer to determine if the data is sufficiently compressed. If thegateway 124 determines that the compression technique should be adjusted, thegateway 124 would inform themedia terminating devices FIG. 8 . - The smart devices could also send reporting messages to the
call control server 112 to be stored and used to select data compression techniques for future calls. In this manner, thecall control server 112 could identify during call setup thatmedia terminating devices - Thus, during the call, network equipment or smart devices may determine that data should or should not be compressed for data transfer through the smart devices. The smart network devices may also recognize when individual links become stressed or that bandwidth has become limited, and the network equipment could then inform the network devices or the
call control server 112 to force data compression. - It is intended that the foregoing detailed description be regarded as illustrative rather than limiting, and it is intended to be understood that the following claims including all equivalents define the scope of the invention.
Claims (19)
1-48. (canceled)
49. An apparatus comprising:
a processor;
a memory on which is stored machine readable instructions that when executed cause the processor to:
select a data compression technique for data transfer through a particular data transfer path in a network between a first Internet Protocol (IP) network phone and a second IP network phone based on a slowest identified transfer speed of a link within multiple intermediary links of the particular data transfer path.
50. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to:
access a network database to retrieve information regarding a network topology of the network, wherein the information identifies a plurality of data transfer paths between the first IP network phone and the second IP network phone;
identify the particular data transfer path from the plurality of data transfer paths;
identify the multiple intermediary links in the particular data transfer path; and
identify a respective maximum transfer speed for each of the multiple intermediary links and the slowest transfer speed of the respective maximum transfer for each of the multiple intermediary links.
51. The apparatus according to claim 50 , wherein the machine readable instructions are further to cause the processor to access the network database in response to receipt of a request from the first IP network phone to place a call to the second IP network phone.
52. The apparatus according to claim 50 , wherein the machine readable instructions are further to cause the processor to estimate a transfer speed within a particular intermediary link and to further select the data compression technique that is able to accommodate the estimated transfer speed within the particular intermediary link.
53. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to determine a number of access networks used in the network between the first IP network phone and the second IP network phone and an access-network-type of each access network used in the network between the first IP network phone and the second IP network phone.
54. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to send to at least one of the first IP network phone and the second IP network phone a message that indicates the selected data compression technique.
55. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to determine a configuration of the network between the first IP network phone and the second IP network phone.
56. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to determine a speed of data transfer through the particular data transfer path between the first IP network phone and the second IP network phone and to further select the data compression technique based on the speed of data transfer through the particular data transfer path.
57. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to receive information regarding a time of day and to further select the data compression technique based on the speed of data transfer through the particular data transfer path.
58. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to select the data compression technique from the group consisting of G.711, G.726, and G.729.
59. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to access information regarding total available bandwidth in the network, an instantaneous available bandwidth in the network, or an administration control of bandwidth in the network and to further select the data compression technique based on the accessed information.
60. The apparatus according to claim 49 , wherein the machine readable instructions are further to cause the processor to, during the call between the first IP network phone and the second IP network phone, receive a reporting message from the first IP network phone that includes statistics relating to a quality of the call, determine a quality of data transfer between the first IP network phone and the second IP network phone, and adjust the data compression technique during the call without placing the call on hold.
61. The apparatus according to claim 60 , wherein the machine readable instructions are further to cause the processor to transmit a SIP INVITE message to cause adjustment of the data compression technique.
62. The apparatus according to claim 60 , wherein the reporting message includes a reception report block with statistics regarding data packets received from a particular source indicated in the reception report block, and wherein the statistics within the reception report block include statistics selected from the group consisting of timestamps of when data packets were received, a number of received data packets, an inter-arrival jitter time, and a delay since sending of a last sender report.
63. The apparatus according to claim 60 , wherein the reporting message, including the statistics relating to the quality of the call, are arranged according to a real-time transport protocol control protocol.
64. An apparatus to select a data compression technique for data transfer through a network, said apparatus comprising:
a processor;
a memory on which is stored machine readable instructions that when executed cause the processor to:
access a network database to receive a performance parameter that indicates a measured packet loss factor for data transferred between the apparatus and a second apparatus during previous calls placed between the apparatus and the second apparatus; and
select the data compression technique for data transfer through the network between the apparatus and the second apparatus based on the performance parameter.
65. A non-transitory computer readable storage medium on which is stored machine readable instructions that when executed by a processor cause the processor to:
select a data compression technique for data transfer through a particular data transfer path in a network between a first Internet Protocol (IP) network phone and a second IP network phone based on a slowest identified transfer speed of a link within multiple intermediary links of the particular data transfer path.
66. The non-transitory computer readable storage medium according to claim 65 , wherein the machine readable instructions are further to cause the processor to:
access a network database to retrieve information regarding a network topology of the network, wherein the information identifies a plurality of data transfer paths between the first IP network phone and the second IP network phone;
identify the particular data transfer path from the plurality of data transfer paths;
identify the multiple intermediary links in the particular data transfer path; and
identify a respective maximum transfer speed for each of the multiple intermediary links and the slowest transfer speed of the respective maximum transfer for each of the multiple intermediary links.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/875,211 US20130246658A1 (en) | 2004-07-01 | 2013-05-01 | Method and system for selecting a data compression technique for data transfer through a data network |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/883,148 US8327026B1 (en) | 2004-07-01 | 2004-07-01 | Method and system for selecting a data compression technique for data transfer through a data network |
US13/661,933 US20130054838A1 (en) | 2004-07-01 | 2012-10-26 | Method and system for selecting a data compression technique for data transfer through a data network |
US13/875,211 US20130246658A1 (en) | 2004-07-01 | 2013-05-01 | Method and system for selecting a data compression technique for data transfer through a data network |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/661,933 Division US20130054838A1 (en) | 2004-07-01 | 2012-10-26 | Method and system for selecting a data compression technique for data transfer through a data network |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130246658A1 true US20130246658A1 (en) | 2013-09-19 |
Family
ID=47226834
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/883,148 Active 2027-11-05 US8327026B1 (en) | 2004-07-01 | 2004-07-01 | Method and system for selecting a data compression technique for data transfer through a data network |
US13/661,933 Abandoned US20130054838A1 (en) | 2004-07-01 | 2012-10-26 | Method and system for selecting a data compression technique for data transfer through a data network |
US13/875,211 Abandoned US20130246658A1 (en) | 2004-07-01 | 2013-05-01 | Method and system for selecting a data compression technique for data transfer through a data network |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/883,148 Active 2027-11-05 US8327026B1 (en) | 2004-07-01 | 2004-07-01 | Method and system for selecting a data compression technique for data transfer through a data network |
US13/661,933 Abandoned US20130054838A1 (en) | 2004-07-01 | 2012-10-26 | Method and system for selecting a data compression technique for data transfer through a data network |
Country Status (1)
Country | Link |
---|---|
US (3) | US8327026B1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20075575L (en) * | 2007-08-16 | 2009-02-17 | Teliasonera Ab | Conversion system and method in a multi-operator environment |
US11277598B2 (en) * | 2009-07-14 | 2022-03-15 | Cable Television Laboratories, Inc. | Systems and methods for network-based media processing |
US9014018B2 (en) * | 2010-10-29 | 2015-04-21 | Broadcom Corporation | Auto-aware dynamic control policy for energy efficiency |
US10019457B1 (en) | 2013-01-22 | 2018-07-10 | Amazon Technologies, Inc. | Multi-level compression for storing data in a data store |
US9384204B2 (en) | 2013-05-22 | 2016-07-05 | Amazon Technologies, Inc. | Efficient data compression and analysis as a service |
CN103765819B (en) * | 2013-10-25 | 2016-10-26 | 华为技术有限公司 | A kind of data configuration method and network management server |
US10148584B2 (en) * | 2014-12-15 | 2018-12-04 | Ca, Inc. | Adaptive compression |
WO2021025605A1 (en) * | 2019-08-08 | 2021-02-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Reducing network traffic |
US11249987B2 (en) * | 2019-08-14 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Data storage in blockchain-type ledger |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5049873A (en) * | 1988-01-29 | 1991-09-17 | Network Equipment Technologies, Inc. | Communications network state and topology monitor |
US5546395A (en) * | 1993-01-08 | 1996-08-13 | Multi-Tech Systems, Inc. | Dynamic selection of compression rate for a voice compression algorithm in a voice over data modem |
US20010014095A1 (en) * | 2000-02-14 | 2001-08-16 | Fujitsu Limited | Network system priority control method |
US6608841B1 (en) * | 1999-12-30 | 2003-08-19 | Nokia Networks Oy | System and method for achieving robust IP/UDP/RTP header compression in the presence of unreliable networks |
US6681232B1 (en) * | 2000-06-07 | 2004-01-20 | Yipes Enterprise Services, Inc. | Operations and provisioning systems for service level management in an extended-area data communications network |
US6735291B1 (en) * | 1998-12-11 | 2004-05-11 | Securelogix Corporation | Virtual private switched telephone network |
US20050188112A1 (en) * | 2004-02-10 | 2005-08-25 | Oracle International Corporation | System and method for dynamically selecting a level of compression for data to be transmitted |
US20050286418A1 (en) * | 1997-11-24 | 2005-12-29 | Nokia Networks Oy | Data compression negotiation in a telecommunication system |
US20070086485A1 (en) * | 2001-06-14 | 2007-04-19 | Microsoft Corporation | Method and system for providing adaptive bandwith control for real-time communication |
US8275897B2 (en) * | 1999-03-11 | 2012-09-25 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5042028A (en) * | 1988-08-31 | 1991-08-20 | Kabushiki Kaisha Toshiba | Communication terminal device |
US5127003A (en) * | 1991-02-11 | 1992-06-30 | Simpact Associates, Inc. | Digital/audio interactive communication network |
US5617423A (en) | 1993-01-08 | 1997-04-01 | Multi-Tech Systems, Inc. | Voice over data modem with selectable voice compression |
US5761438A (en) * | 1993-08-31 | 1998-06-02 | Canon Kabushiki Kaisha | Apparatus for measuring the amount of traffic of a network at a predetermined timing and compressing data in the packet without changing the size of the packet |
US5555377A (en) | 1993-12-20 | 1996-09-10 | International Business Machines Corporation | System for selectively compressing data transferred in network in response to produced first output when network utilization exceeds first threshold and data length over limit |
EP0691769A1 (en) * | 1994-07-07 | 1996-01-10 | International Business Machines Corporation | Voice circuit emulation system in a packet switching network |
EP0753979A1 (en) * | 1995-07-13 | 1997-01-15 | International Business Machines Corporation | Routing method and system for a high speed packet switching network |
EP0781068A1 (en) * | 1995-12-20 | 1997-06-25 | International Business Machines Corporation | Method and system for adaptive bandwidth allocation in a high speed data network |
US6295340B1 (en) * | 1998-05-13 | 2001-09-25 | Lucent Technologies Inc. | Speech coding selection based on call related information |
US6782268B1 (en) * | 1998-06-23 | 2004-08-24 | Lucent Technologies Inc. | Method and apparatus for tracking call history for mobile and wireline users accessing the network on different ports for subsequent calls |
US6324409B1 (en) * | 1998-07-17 | 2001-11-27 | Siemens Information And Communication Systems, Inc. | System and method for optimizing telecommunication signal quality |
US6490278B1 (en) * | 1998-10-06 | 2002-12-03 | At&T Corp. | Method and apparatus for signaling voice compression in a network |
TW495735B (en) * | 1999-07-28 | 2002-07-21 | Yamaha Corp | Audio controller and the portable terminal and system using the same |
US7024475B1 (en) * | 2000-04-24 | 2006-04-04 | Nortel Networks Limited | Performance modeling of a communications system |
US6920107B1 (en) * | 2000-05-24 | 2005-07-19 | Lucent Technologies Inc. | Method and apparatus for congestion control for packet-based networks using pipeline reconfiguration |
US6738351B1 (en) * | 2000-05-24 | 2004-05-18 | Lucent Technologies Inc. | Method and apparatus for congestion control for packet-based networks using voice compression |
US8302127B2 (en) * | 2000-09-25 | 2012-10-30 | Thomson Licensing | System and method for personalized TV |
FI20002890A (en) * | 2000-12-29 | 2002-06-30 | Nokia Corp | Defining a compression in packet switching data transfer |
US6754221B1 (en) * | 2001-02-15 | 2004-06-22 | General Bandwidth Inc. | System and method for selecting a compression algorithm according to an available bandwidth |
US6691132B2 (en) * | 2001-05-16 | 2004-02-10 | Reengineering Llc | Semantic encoding and compression of database tables |
DE10128532A1 (en) * | 2001-06-13 | 2003-01-02 | Siemens Ag | Data compression determination procedure e.g. for medical equipment, involves selecting a data compression procedure giving the highest compression factor |
US7010727B1 (en) * | 2001-06-15 | 2006-03-07 | Nortel Networks Limited | Method and system for negotiating compression techniques to be utilized in packet data communications |
US7035933B2 (en) * | 2001-09-13 | 2006-04-25 | Network Foundation Technologies, Inc. | System of distributing content data over a computer network and method of arranging nodes for distribution of data over a computer network |
US7152105B2 (en) * | 2002-01-15 | 2006-12-19 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
US7464185B2 (en) * | 2002-04-30 | 2008-12-09 | Hewlett-Packard Development Company, L.P. | Method and apparatus for transfering data from a sending system to a receiving system, and program storage devices |
US7730321B2 (en) * | 2003-05-09 | 2010-06-01 | Emc Corporation | System and method for authentication of users and communications received from computer systems |
US7440573B2 (en) * | 2002-10-08 | 2008-10-21 | Broadcom Corporation | Enterprise wireless local area network switching system |
US20040103153A1 (en) * | 2002-11-21 | 2004-05-27 | Chang Tsung-Yen Dean | Apparatus and method for providing smart network appliances |
US7245640B2 (en) * | 2002-12-18 | 2007-07-17 | Intel Corporation | Packet origination |
FR2857538B1 (en) * | 2003-07-08 | 2006-10-06 | At & T Corp | SYSTEM AND METHOD FOR PACKET HEADER COMPRESSION BASED ON THE DYNAMIC CREATION OF A TEMPLATE |
US7529192B2 (en) * | 2003-07-21 | 2009-05-05 | Arbor Networks | System and method for correlating traffic and routing information |
US7848259B2 (en) * | 2003-08-01 | 2010-12-07 | Opnet Technologies, Inc. | Systems and methods for inferring services on a network |
EP1733492A2 (en) * | 2004-03-11 | 2006-12-20 | i2Telecom International, Inc. | DYNAMICALLY ADAPTING THE TRANSMISSION RATE OF PACKETS IN REAL-TIME VoIP COMMUNICATIONS TO THE AVAILABLE BANDWIDTH |
-
2004
- 2004-07-01 US US10/883,148 patent/US8327026B1/en active Active
-
2012
- 2012-10-26 US US13/661,933 patent/US20130054838A1/en not_active Abandoned
-
2013
- 2013-05-01 US US13/875,211 patent/US20130246658A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5049873A (en) * | 1988-01-29 | 1991-09-17 | Network Equipment Technologies, Inc. | Communications network state and topology monitor |
US5546395A (en) * | 1993-01-08 | 1996-08-13 | Multi-Tech Systems, Inc. | Dynamic selection of compression rate for a voice compression algorithm in a voice over data modem |
US20050286418A1 (en) * | 1997-11-24 | 2005-12-29 | Nokia Networks Oy | Data compression negotiation in a telecommunication system |
US6735291B1 (en) * | 1998-12-11 | 2004-05-11 | Securelogix Corporation | Virtual private switched telephone network |
US8275897B2 (en) * | 1999-03-11 | 2012-09-25 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6608841B1 (en) * | 1999-12-30 | 2003-08-19 | Nokia Networks Oy | System and method for achieving robust IP/UDP/RTP header compression in the presence of unreliable networks |
US20010014095A1 (en) * | 2000-02-14 | 2001-08-16 | Fujitsu Limited | Network system priority control method |
US6681232B1 (en) * | 2000-06-07 | 2004-01-20 | Yipes Enterprise Services, Inc. | Operations and provisioning systems for service level management in an extended-area data communications network |
US20070086485A1 (en) * | 2001-06-14 | 2007-04-19 | Microsoft Corporation | Method and system for providing adaptive bandwith control for real-time communication |
US20050188112A1 (en) * | 2004-02-10 | 2005-08-25 | Oracle International Corporation | System and method for dynamically selecting a level of compression for data to be transmitted |
Also Published As
Publication number | Publication date |
---|---|
US20130054838A1 (en) | 2013-02-28 |
US8327026B1 (en) | 2012-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130246658A1 (en) | Method and system for selecting a data compression technique for data transfer through a data network | |
US7768998B1 (en) | Dynamic VoIP codec selection based on link attributes at call setup | |
US8842568B2 (en) | Method and system of renegotiating end-to-end voice over internet protocol CODECs | |
KR100788083B1 (en) | System, devices, and method for distributing load control information in a network | |
US8467308B2 (en) | Communication session quality indicator | |
KR100728280B1 (en) | Network state management method for using BYE/200OK in communication system for using Session Initiation Protocol | |
US7787501B2 (en) | Congestion control in an IP network | |
US10044767B2 (en) | Method and system to enhance performance of a session initiation protocol network and its elements | |
JP5363461B2 (en) | Group call function inquiry | |
EP1668865B1 (en) | Network entity for interconnecting sip end-points of different capabilities | |
US8031728B2 (en) | Method of controlling audio communication on a network | |
KR20050106592A (en) | Method for signaling client rate capacity in multimedia streaming | |
JP2004509482A (en) | Method and system for dynamic gateway selection in an IP telephone network | |
US20050111390A1 (en) | Signaling method, server and gateway terminal | |
Arafat et al. | SIP-based QoS in IP telephony | |
Schwede | Kapitel 6 VoIP in Wireless Environments | |
EP1672867A1 (en) | Method to the fast and reliable transfer of large amount of data between mobile radio users involved in a SIP session | |
Khedr et al. | Evaluation of SIP-based VOIP in heterogeneous networks | |
Gaylani | NAT traversal and mobility in VOIP applications | |
Fathi et al. | Voice over Internet Protocol | |
Reed | Voice over Internet Protocol Networks | |
CY et al. | ITU-T Standards and Recommendations | |
Kujoory | Voice Over IP (VOIP)–An Overview | |
Yang | Voice over IP (VoIP) | |
KR20050014129A (en) | Session Initiation Protocol server and SIP message handling method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |