Communicating processing capabilities along a communications path

The present invention provides a technique for determining which nodes are to provide various functions on traffic along a particular communication path. Generally, a communication path may include multiple nodes between which and through which traffic is routed. These nodes may include the communication terminals at either end of the communication path, as well as various types of routing nodes along the communication path. Each node will send to other nodes in the communication path information identifying the local functions it is capable of providing to the traffic carried in the communication path, and if available, remote functions capable of being provided to the traffic by other nodes in the communication path. Each node will receive from other nodes in the communication path information bearing on the remote functions. Each node will access criteria to determine whether any local functions should be applied to the traffic.

FIELD OF THE INVENTION

The present invention relates to telecommunications, and in particular to exchanging and determining processing capabilities along the nodes of a communication path.

BACKGROUND OF THE INVENTION

Communication information, including data, audio, video, and voice information, may now travel in circuit-switched or packet-switched forms at any given time over disparate types of networks. The various nodes along a communication path may perform various types of processing functions in addition to routing or forwarding the information toward the next node. These features may include signal processing functions, such as controlling gain and providing noise reduction and echo cancellation. In many cases, the various nodes along a particular communication path may provide the same and/or different communication functions. For example, multiple nodes may provide echo cancellation and noise reduction, while other nodes may provide gain control. Further, other nodes may provide echo cancellation, noise reduction, and gain control. Accordingly, all of the communication nodes must be properly controlled and coordinated to provide the appropriate functions at the appropriate places and times. If provisioning of these functions is not properly implemented, the information being transferred along the path may be degraded. Such control and coordination is difficult to implement for relatively static conditions, and even more difficult to implement when the communication path dynamically changes, such as when a node fails and rerouting of the communication path is required. As such, there is a need for an effective and efficient technique to control and coordinate the provisioning of processing functions among the various nodes along a communication path.

SUMMARY OF THE INVENTION

The present invention provides a technique for determining which nodes are to provide various functions on traffic along a particular communication path. Generally, a communication path may include multiple nodes between which and through which traffic is routed. These nodes may include the communication terminals at either end of the communication path, as well as various types of routing nodes along the communication path. Each node will send to other nodes in the communication path information identifying the local functions it is capable of providing to the traffic carried in the communication path, and if available, remote functions capable of being provided to the traffic by other nodes in the communication path. Each node will receive from other nodes in the communication path information bearing on the remote functions.

In one embodiment, the information pertaining to the remote functions is received by the most proximate upstream and downstream remote nodes. Accordingly, each node in the communication path will successively receive information from an upstream or downstream node, add the local functions, and then forward a cumulative list of the downstream or upstream capabilities to the most proximate upstream or downstream nodes. As such, each node within the communication path can determine the various functions that are capable of being provided to the traffic in the communication path by the various nodes. Each node will then access selection criteria to determine whether any local functions should be applied to the traffic carried along the communication path.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention provides an efficient and effective technique for various nodes along a communication path in a communication environment to identify each other's capabilities and apply the appropriate functions to the information being carried along the communication path according to defined criteria. With reference toFIG. 1, a communication environment10is illustrated with numerous communication nodes. These nodes include communication terminals12, which represent the endpoints of a communication path, which extends through various routing nodes16between and within numerous communication networks14. The communication networks14may support various types of communications, wherein the routing nodes16between the communication networks14may act as media gateways, which facilitate interworking between disparate communication technologies. The routing nodes16within the communication networks14are used to route traffic along the communication path through a given communication network14. The routing nodes16that interface through wired or wireless communications with the communication terminals12represent the relative access points for the associated communication network14, and facilitate communications with the corresponding communication network14and the communication terminals12. These access points may take the form of wireless local area network (WLAN) access points, wireless wide area networks (WWAN), Ethernet access points, cellular base stations, and the like, or any combination of such nodes. The communication terminals12are illustrated as being those supporting voice communications, but other information, including real-time and non-real-time data, may be communicated across the communication path and benefit from the present invention.

In essence, the present invention operates to provide end-to-end coordination of processing functions available at any of the nodes along the communication path, including the routing nodes16and the communication terminals12. The coordination of processing functions along the communication path generally requires one or more of the following. The nodes are able to provide their capabilities to other nodes, as well as obtain the capability of other nodes along the communication path. When multiple nodes can support the same functions, the involved nodes may be operable to resolve the conflict and determine whether or not they should implement a certain function on the data being carried along the communication path. When network topologies change, the affected nodes may be operable to effectively update each other relative to these changes. Similarly, the nodes may be operable to control the relative provisioning of functions in a dynamic fashion as would be desired when network changes impact the communication path.

In general, the nodes along the communication path determine each other's relative capabilities to provide various functions, and individually determine whether to implement certain functions in light of a rule set that is available to all the nodes along the communication path. Again, these nodes may also include just the routing nodes16forming the communication path, or may include the communication terminals12. The rule set will address the needs of a particular communication over a communication path, as well as conflicts amongst nodes, when these nodes can provide the same functionality. In operation, there is a set of predefined functions that may be provided by the various nodes along the communication path. A set of functions is defined and updated for a type of communication. For example, a set of voice signal processing functions is defined for voice communication applications of the protocol. A set of video signal processing functions is defined for video communication applications of the protocol. Each set can be defined and updated individually by the relevant standard or industry representing body.

Although each node may not be able to provide all of the functions, each node will be aware of all possible functions that may be provided by it or other nodes. In general, communications will travel in one direction along the communication path. If bidirectional communications are required, two communication paths may be initiated. Notably, the bidirectional communication paths may travel through the same nodes, although such is not required.

For each communication path that is supporting traffic in one direction, each node will provide a list of its features to at least the next upstream and downstream nodes along the communication path. When each node receives a list of features from an adjacent node, it will make note of the available features of the other nodes and forward this information to the respective upstream and downstream nodes. As such, each node along the communication path will ultimately recognize the capabilities of the other nodes along the communication path or at least the fact that other nodes along the communication path, either upstream or downstream, are capable of providing certain functions.

Operation of the present invention is better understood in association with the illustrative example ofFIG. 2. Assume that a communication path extends between two communication terminals12(not shown inFIG. 2) through numerous media gateways (MGs)18. For the purposes of example, the media gateways18are referenced as media gateway MG1, media gateway MG2, media gateway MGn-1, and media gateway MGn. Further assume that the communication path is established wherein traffic travels from media gateway MG1toward media gateway MGn. Assume that media gateway MG1supports functions A and B, media gateway MG2supports function C, media gateway MGn-1supports functions A and D, and media gateway MGnsupports functions C and B.

Each media gateway18will thus function as follows. Initially, media gateway MG1will create a downstream function list MG1-MG2identifying the functions A and B, which are provided by media gateway MG1. The downstream function list MG1-MG2may identify the functions as being those provided by MG1. As such, these functions are referenced as A1and B1, respectively. The downstream function list MG1-MG2is sent to media gateway MG2, which is the next media gateway18downstream of media gateway MG1and along the communication path. Media gateway MG2will receive the downstream function list MG1-MG2from media gateway MG1and create another downstream function list MG2-MGn-1, which identifies the functions A and B provided by media gateway MG1, as well as function C, which is provided by media gateway MG2. The downstream function list MG2-MGn-1is then sent to the next downstream media gateway MGn-1. Media gateway MGn-1will receive the downstream function list MG2-MGn-1and determine that media gateway MG1can provide functions A and B, while media gateway MG2can provide function C. Next, media gateway MGn-1will create a downstream function list MGn-1-MGn, which will identify media gateway MG1as being able to provide functions A and B, media gateway MG2as being able to provide function C, and media gateway MGn-1as being able to provide function D and perhaps function A.

Accordingly, media gateway MGnwill be operable to recognize that media gateway MG1is capable of providing functions A and B, media gateway MG2is capable of providing function C, and media gateway MGn-1is capable of providing at least function D, and perhaps function A. Thus, media gateway MGnis informed as to which functions can be provided upstream in the communication path, and will thus be operable to determine which functions it can provide to the data traveling along the communication path.

A similar operation is provided for upstream propagation. As such, media gateway MGnwill create an upstream function list MGn-MGn-1indicating that MGncan provide functions B and C. Media gateway MGn-1will receive the upstream function list MGn-MGn-1and create an upstream function list MGn-1-MG2indicating that media gateway MGncan provide functions B and C, while media gateway MGn-1can provide functions A and D. Media gateway MG2will receive the upstream function list MGn-1-MG2and will create an upstream function list MG2-MG1indicating that media gateway MGncan provide features C and B, media gateway MGn-1can provide functions A and D, and perhaps (although not shown) indicate that media gateway MG2can provide function C. As such, media gateway MG1upon receiving upstream function list MG2-MG1will be able to determine the available functions and perhaps the media gateways18from which those functions are provided downstream along the communication path. At this point, each media gateway18along the communication path is aware of the available functions upstream and downstream along the communication path.

As illustrated, certain of the media gateways18can provide the same function. Generally, only one of the media gateways18will provide a given function at a given time. Accordingly, the media gateways18will access a common rule set, which will provide criteria for allowing each of the media gateways18to determine whether or not to implement a particular function in light of the capabilities of the other media gateways18. For example, the criteria in the rule set may dictate that function A be provided by media gateway MG1, and function B be provided by media gateway MGn. Both media gateway MG1and media gateway MGncan access the rule set and independently determine whether or not to activate function B, and process the information carried along the communication path accordingly.

Notably, the functions provided by the various media gateways18and included in the function list may be associated with additional attributes that provide information bearing on the availability of the function, constraints associated with the function, characteristics of the function, and limitations of the functions. In particular, these attributes may relate to the relative capability of the node to implement a feature, or of the associated network to support the feature on a static or dynamic basis. For example, the attributes associated with a voice processing function may include jitter, delay, and bandwidth requirements or limitations. As such, the criteria in the rule set may help resolve conflicts of multiple media gateways18being able to provide a given function based on the attributes associated with providing the function at the different media gateways18. Each of the media gateways18will essentially create a data structure, such as a database or table, identifying the functions it can provide as well as the functions that other media gateways18upstream or downstream along the communication path may provide. Again, these functions may be associated with attributes. The rule sets may be accessed from or provided by a centralized service node in a periodic or as-needed fashion. In one embodiment, the rule set may be a predefined rule set, wherein each node supporting the protocol has a copy.

Turning now toFIG. 3, a basic communication environment is illustrated wherein rule sets defined in the tables ofFIGS. 4 and 5are provided to allow the various communicating nodes to determine what functions should be implemented and where those functions should be implemented. Assume that communication terminals12will communicate with each other through three nodes: an originating node20, an intermediate node22, and a terminating node24. Further assume that the curved arrows on either side of the diagram illustrate acoustic echoes26and electrically induced echoes28. In this implementation, each of the originating node20, intermediate node22, and terminating node24is capable of supporting the electrical echo cancellation (EC), acoustic echo cancellation (AEC), noise reduction (NR), and automatic level control (ALC) for the selected communication path.

From the tables ofFIGS. 4 and 5, each of these various functions EC, AEC, NR, and ALC are provided depending on the type of communication terminals12. The tables set forth the criteria defining the preferred locations where a function should be activated when multiple nodes on the same communication path are capable of providing the same function. As illustrated, the communication terminals12on either side of the communication network may take the form of a mobile terminal, such as a cellular telephone, an Internet Protocol (IP) telephone supporting packet-switched communications, or a Plain Old Telephone System (POTS) telephone. For each function in the table, each combination of the types of communication terminals12is provided. The criteria provides instructions for each of the originating node20, intermediate node22, and terminating node24to either disable or assign a low, medium, or high preference for implementing the function. In the echo cancellation (EC) example, and with continuing reference toFIGS. 3 and 4, when the left-most communication terminal12is a mobile terminal and the right-most communication terminal12is also a mobile terminal, echo cancellation is disabled in all three nodes20,22,24. The same is true between a mobile terminal and an IP telephone as well as between two IP telephones. When communications are between a mobile terminal and a POTS telephone, the originating node20is assigned a low preference, the intermediate node22is assigned a medium preference, and the terminating node24is assigned a high preference for providing echo cancellation for the communication path. As such, the terminating node24will provide echo cancellation since it has the highest preference, and the originating node20and intermediate node22will not provide echo cancellation.

Notably, the tables ofFIGS. 4 and 5are merely for illustrative purposes according to the example wherein the routing nodes16are the primary nodes operating according to the present invention. As noted, the communication terminals12may act as nodes, and exchange function lists to determine the relative capabilities of the other nodes along the communication path and access a rule set to determine whether to activate a function that the communication terminal12can provide. In such an example, the tables ofFIGS. 4 and 5would be extended to provide instructional criteria for the communication terminals12, and the illustrated criteria ofFIGS. 4 and 5may change depending on the capabilities of the communication terminals12and the desires of the network operators to process the traffic being communicated between the communication terminals12.

With reference toFIG. 6, a block representation of a routing node16is illustrated according to one embodiment of the present invention. The routing node16may include a control system30associated with sufficient memory32for storing the requisite software34and data36to operate as described above. The control system30will be associated with one or more communication interfaces38to facilitate routing between other routing nodes16or between a routing node16and a communication terminal12.

With reference toFIG. 7, a communication terminal12is illustrated. The communication terminal12will include a control system40having sufficient memory42for the requisite software44and data46to operate as described above. The control system40will be associated with a communication interface48to interact with an appropriate access point, which may be a routing node16, and a user interface50to facilitate interaction with a user.

The present invention is capable of controlling and allocating the activation of functions throughout the various routing nodes16and communication terminals12along a particular communication path. The functions may involve any type of operation on the information being routed along the communication path. These functions may include various types of signal processing, including audio signal processing, video signal processing, and the like, in addition to those functions described above. Such processing may include digital signal processing or other forms of data manipulation, as will be understood by those skilled in the art.