# Patent

## Title
Communicating processing capabilities along a communications path

## Abstract

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.

## Background
This application claims the benefit of U.S. provisional application Ser. No. 60/554,605 filed Mar. 19, 2004, the disclosure of which is hereby incorporated by reference in its entirety.


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.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.



BRIEF DESCRIPTION OF THE DRAWING FIGURES
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
FIG. 1 is a block representation of a communication environment according to one embodiment of the present invention.
FIG. 2 is a block diagram illustrating how nodes along a communication path exchange function lists according to one embodiment of the present invention.
FIG. 3 is a block representation of a communication path established between two terminals according to one embodiment of the present invention.
FIGS. 4 and 5 are tables providing exemplary rule sets for the communication environment of FIG. 3.
FIG. 6 is a block representation of a routing node according to one embodiment of the present invention.
FIG. 7 is a block representation of a communication terminal according to one embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
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 to FIG. 1, a communication environment 10 is illustrated with numerous communication nodes. These nodes include communication terminals 12, which represent the endpoints of a communication path, which extends through various routing nodes 16 between and within numerous communication networks 14. The communication networks 14 may support various types of communications, wherein the routing nodes 16 between the communication networks 14 may act as media gateways, which facilitate interworking between disparate communication technologies. The routing nodes 16 within the communication networks 14 are used to route traffic along the communication path through a given communication network 14. The routing nodes 16 that interface through wired or wireless communications with the communication terminals 12 represent the relative access points for the associated communication network 14, and facilitate communications with the corresponding communication network 14 and the communication terminals 12. 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 terminals 12 are 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 nodes 16 and the communication terminals 12. 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 nodes 16 forming the communication path, or may include the communication terminals 12. 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 of FIG. 2. Assume that a communication path extends between two communication terminals 12 (not shown in FIG. 2) through numerous media gateways (MGs) 18. For the purposes of example, the media gateways 18 are 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 MG1 toward media gateway MGn. Assume that media gateway MG1 supports functions A and B, media gateway MG2 supports function C, media gateway MGn-1 supports functions A and D, and media gateway MGn supports functions C and B.
Each media gateway 18 will thus function as follows. Initially, media gateway MG1 will create a downstream function list MG1-MG2 identifying the functions A and B, which are provided by media gateway MG1. The downstream function list MG1-MG2 may identify the functions as being those provided by MG1. As such, these functions are referenced as A1 and B1, respectively. The downstream function list MG1-MG2 is sent to media gateway MG2, which is the next media gateway 18 downstream of media gateway MG1 and along the communication path. Media gateway MG2 will receive the downstream function list MG1-MG2 from media gateway MG1 and 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-1 is then sent to the next downstream media gateway MGn-1. Media gateway MGn-1 will receive the downstream function list MG2-MGn-1 and determine that media gateway MG1 can provide functions A and B, while media gateway MG2 can provide function C. Next, media gateway MGn-1 will create a downstream function list MGn-1-MGn, which will identify media gateway MG1 as being able to provide functions A and B, media gateway MG2 as being able to provide function C, and media gateway MGn-1 as being able to provide function D and perhaps function A.
Accordingly, media gateway MGn will be operable to recognize that media gateway MG1 is capable of providing functions A and B, media gateway MG2 is capable of providing function C, and media gateway MGn-1 is capable of providing at least function D, and perhaps function A. Thus, media gateway MGn is 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 MGn will create an upstream function list MGn-MGn-1 indicating that MGn can provide functions B and C. Media gateway MGn-1 will receive the upstream function list MGn-MGn-1 and create an upstream function list MGn-1-MG2 indicating that media gateway MGn can provide functions B and C, while media gateway MGn-1 can provide functions A and D. Media gateway MG2 will receive the upstream function list MGn-1-MG2 and will create an upstream function list MG2-MG1 indicating that media gateway MGn can provide features C and B, media gateway MGn-1 can provide functions A and D, and perhaps (although not shown) indicate that media gateway MG2 can provide function C. As such, media gateway MG1 upon receiving upstream function list MG2-MG1 will be able to determine the available functions and perhaps the media gateways 18 from which those functions are provided downstream along the communication path. At this point, each media gateway 18 along the communication path is aware of the available functions upstream and downstream along the communication path.
As illustrated, certain of the media gateways 18 can provide the same function. Generally, only one of the media gateways 18 will provide a given function at a given time. Accordingly, the media gateways 18 will access a common rule set, which will provide criteria for allowing each of the media gateways 18 to determine whether or not to implement a particular function in light of the capabilities of the other media gateways 18. 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 MG1 and media gateway MGn can 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 gateways 18 and 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 gateways 18 being able to provide a given function based on the attributes associated with providing the function at the different media gateways 18. Each of the media gateways 18 will 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 gateways 18 upstream 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 to FIG. 3, a basic communication environment is illustrated wherein rule sets defined in the tables of FIGS. 4 and 5 are provided to allow the various communicating nodes to determine what functions should be implemented and where those functions should be implemented. Assume that communication terminals 12 will communicate with each other through three nodes: an originating node 20, an intermediate node 22, and a terminating node 24. Further assume that the curved arrows on either side of the diagram illustrate acoustic echoes 26 and electrically induced echoes 28. In this implementation, each of the originating node 20, intermediate node 22, and terminating node 24 is 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 of FIGS. 4 and 5, each of these various functions EC, AEC, NR, and ALC are provided depending on the type of communication terminals 12. 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 terminals 12 on 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 terminals 12 is provided. The criteria provides instructions for each of the originating node 20, intermediate node 22, and terminating node 24 to either disable or assign a low, medium, or high preference for implementing the function. In the echo cancellation (EC) example, and with continuing reference to FIGS. 3 and 4, when the left-most communication terminal 12 is a mobile terminal and the right-most communication terminal 12 is also a mobile terminal, echo cancellation is disabled in all three nodes 20, 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 node 20 is assigned a low preference, the intermediate node 22 is assigned a medium preference, and the terminating node 24 is assigned a high preference for providing echo cancellation for the communication path. As such, the terminating node 24 will provide echo cancellation since it has the highest preference, and the originating node 20 and intermediate node 22 will not provide echo cancellation.
Notably, the tables of FIGS. 4 and 5 are merely for illustrative purposes according to the example wherein the routing nodes 16 are the primary nodes operating according to the present invention. As noted, the communication terminals 12 may 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 terminal 12 can provide. In such an example, the tables of FIGS. 4 and 5 would be extended to provide instructional criteria for the communication terminals 12, and the illustrated criteria of FIGS. 4 and 5 may change depending on the capabilities of the communication terminals 12 and the desires of the network operators to process the traffic being communicated between the communication terminals 12.
With reference to FIG. 6, a block representation of a routing node 16 is illustrated according to one embodiment of the present invention. The routing node 16 may include a control system 30 associated with sufficient memory 32 for storing the requisite software 34 and data 36 to operate as described above. The control system 30 will be associated with one or more communication interfaces 38 to facilitate routing between other routing nodes 16 or between a routing node 16 and a communication terminal 12.
With reference to FIG. 7, a communication terminal 12 is illustrated. The communication terminal 12 will include a control system 40 having sufficient memory 42 for the requisite software 44 and data 46 to operate as described above. The control system 40 will be associated with a communication interface 48 to interact with an appropriate access point, which may be a routing node 16, and a user interface 50 to facilitate interaction with a user.
The present invention is capable of controlling and allocating the activation of functions throughout the various routing nodes 16 and communication terminals 12 along 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.
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

## Claims

1. A method of determining functions to provide at a given node forming part of a communication path comprising:
sending from the given node, information identifying:
one or more local functions capable of being provided to traffic in the communication path by the given node; and
if available, one or more remote functions capable of being provided to the traffic by other nodes forming part of the communication path;

receiving information from at least one other node forming part of the communication path, the information identifying one or more remote functions; and
determining whether any of the one or more local functions should be applied to the traffic based on criteria, which defines how the one or more local and remote functions are applied by the given node and other nodes and is available to the given node and other nodes,
wherein the received information is received from at least one of the other nodes that is upstream of traffic flow, and at least one of the other nodes that is downstream of the traffic flow, and wherein the at least one of the other nodes that is upstream of the traffic flow is a most proximate node upstream of traffic flow, and the at least one of the other nodes that is downstream of the traffic flow is a most proximate node downstream of the traffic flow.

2. The method of claim 1 further comprising applying to the traffic any of the one or more local functions, which are determined to be applied to the traffic.

3. The method of claim 1 further comprising creating the information to identify the one or more remote functions provided by the one or more other nodes upstream and downstream of the given node and the one or more local functions.

4. The method of claim 1 wherein the criteria is further based on a location of one or more other nodes relative to the given node.

5. The method of claim 1 wherein the received information identifies one or more remote nodes associated with each of the one or more remote functions.

6. The method of claim 1 wherein at least one of the one or more local and remote functions is associated with an attribute, which is sent or received with the one or more local and remote functions, the criteria defining how at least one of the one or more local and remote functions are applied based on the attribute.

7. The method of claim 1 wherein the traffic is voice traffic.

8. The method of claim 1 wherein the given node is at least one of a terminal, an access point, an endpoint, a gateway, and a routing node.

9. The method of claim 1 wherein certain of the one or more local functions and certain of the one or more remote functions are identical, the criteria defining selection indicia determining which of one or more local and remote nodes is given priority.

10. A communication node forming part of a communication path comprising:
a communication interface; and
a control system associated with the communication interface and adapted to:
send information identifying:
one or more local functions capable of being provided to traffic in the communication path by the communication node; and
if available, one or more remote functions capable of being provided to the traffic by other nodes forming part of the communication path;

receive information from at least one other node forming part of the communication path, the information identifying one or more remote functions; and
determine whether any of the one or more local functions should be applied to the traffic based on criteria, which defines how the one or more local and remote functions are applied by the communication node and the other nodes and is available to the communication node and the other nodes,
wherein the received information is received from at least one of the other nodes that is upstream of traffic flow, and at least one of the other nodes that is downstream of the traffic flow, and wherein the at least one of the other nodes that is upstream of the traffic flow is a most proximate node upstream of traffic flow, and the at least one of the other nodes that is downstream of the traffic flow is a most proximate node downstream of the traffic flow.

11. The communication node of claim 10 wherein the control system is further adapted to apply to the traffic any of the one or more local functions, which are determined to be applied to the traffic.

12. The communication node of claim 10 further comprising creating the information to identify the one or more remote functions provided by one or more other nodes upstream and downstream of the communication node, and the one or more local functions.

13. The communication node of claim 10 wherein the criteria is further based on a location of one or more other nodes relative to the communication node.

14. The communication node of claim 10 wherein the received information identifies one or more other nodes associated with each of the one or more remote functions.

15. The communication node of claim 10 wherein at least one of the one or more local and remote functions is associated with an attribute, which is sent or received with the one or more local and remote functions, the criteria defining how at least one of the one or more local and remote functions are applied based on the attribute.

16. The communication node of claim 10 wherein the traffic is voice traffic.

17. The communication node of claim 10 wherein the communication node is at least one of a terminal, an access point, an endpoint, a gateway, and a routing node.

18. The communication node of claim 10 wherein certain of the one or more local functions and certain of the one or more remote functions are identical, the criteria defining selection indicia determining which of one or more other nodes and the communication node is given priority.

19. A method of determining functions to provide at a given node forming part of a communication path comprising:
sending from the given node, information identifying:
one or more local functions capable of being provided to traffic in the communication path by the given node; and
if available, one or more remote functions capable of being provided to the traffic by other nodes forming part of the communication path;

receiving information from at least one other node forming part of the communication path, the information identifying one or more remote functions; and
determining whether any of the one or more local functions should be applied to the traffic based on criteria, which defines how the one or more local and remote functions are applied by the given node and other nodes and is available to the given node and other nodes,
wherein the received information is received from at least one of the other nodes that is upstream of traffic flow, and at least one of the other nodes that is downstream of the traffic flow, and wherein the criteria is further based on a location of one or more other nodes relative to the given node.

20. A communication node forming part of a communication path comprising:
a communication interface; and
a control system associated with the communication interface and adapted to:
send information identifying:
one or more local functions capable of being provided to traffic in the communication path by the communication node; and
if available, one or more remote functions capable of being provided to the traffic by other nodes forming part of the communication path;

receive information from at least one other node forming part of the communication path, the information identifying one or more remote functions; and
determine whether any of the one or more local functions should be applied to the traffic based on criteria, which defines how the one or more local and remote functions are applied by the communication node and the other nodes and is available to the communication node and the other nodes,
wherein the received information is received from at least one of the other nodes that is upstream of traffic flow, and at least one of the other nodes that is downstream of the traffic flow, and wherein the criteria is further based on a location of one or more other nodes relative to the given node.