TRAVERSING OF NAT ADDRESS TRANSLATION EQUIPMENT FOR SIGNALING MESSAGES COMPLIANT WITH SIP PROTOCOL

Abstract
Method of setting up a communication session between a calling client (C1) and a called client (C2), through a communication network (SN1, SN, SN2) containing at least one address translation device (NAT1, NAT2). This method contains stages for the transmission of signaling messages (fs), passing through at least one address translation device and allowing the exchange of the physical addresses of the clients. At least one of the clients implements a solution for the traversing of address translation devices. The method is innovative in that at least one client adds, within the sent signaling messages, a parameter representing the implementation of the traversing solution and that, in the presence of such a parameter, the network devices do not implement their own solutions for the traversing of address translation devices.
Description

The characteristics and the advantages of the invention will be clearer in the description which follows, together with the attached FIGURE.


This FIG. 1 shows in the form of a diagram an example of a communication network in which the invention may be implemented.





In this example of FIG. 1, the communication network is made up of 3 networks SN1, SN2 and SN, connected by two address translation devices, NAT1 and NAT2. This is a standard scenario in which each communication client, C1 and C2, is connected to a private sub-network, respectively SN1 and SN2. Each of these private sub-networks is connected to a public network SN using address translation devices, NAT1 and NAT2 respectively.


Other scenarios are possible, however. For example, a single NAT address translation device may be deployed between two private sub-networks belonging to two parties of a company. A situation may also be imagined in which one of the two clients is connected to a private sub-network without use of a NAT. In this case, a single NAT address translation device is deployed, between the other private sub-network and the public sub-network.


The communication network (mainly the SN public network) includes at least one device. These devices may be IP transmission nodes, such as routers, but also servers, signaling elements, SIP proxy, call servers, etc. On FIG. 1, for reasons of clarity, only the NAT1 and NAT2 address translation devices, along with a call server CS, have been shown. This call server CS is considered in what follows in its most general meaning, and therefore covers the “SIP proxy” elements, the “softswitches”, the “call controllers”, etc.


The setting up of a communication session forms part of the current state of the art, well known to professionals. Diagrammatically, it consists of the stages of the transmission of a signaling message between two communication clients, C1 and C2. This signaling flow fs is sent by the call server CS located in the public network SN. As mentioned previously, these transmissions of signaling messages allow the exchange of the physical addresses of the communication clients C1 and C2, and thereby allow the communication session fm to be set up between the two communication clients: the media flow (voice, data, video, etc.) fm may then be sent between the two clients using these exchanged physical addresses.


The signaling messages pass through the address translation devices NAT1 and NAT2. Therefore, each of the two communication clients C1 and C2 has (during a session) a public physical address assigned by the address translation device to which it is attached and different to its private physical address.


In order to be able to establish the communication session fm, the two clients must exchange their public physical addresses (and not their private physical addresses).


We assume in the example of FIG. 1 that the calling communication client C1 implements an address translation device traversing solution (“NAT Traversing”). By the term “implement” it is understood that not only does the client possess means of traversing address translation devices, but that these means are enabled. A situation may in effect be imagined in which these means are disabled for various reasons (failure, manual deconfiguration as the user considers them to be under-performing, etc.).


These traversing means may be compliant with the various solutions available in the existing and future state of the art, which are based on the communication clients. The same mechanisms as mentioned previously, STUN, TURN or ICE, may be mentioned here.


Prior to the sending of a signaling message, the calling communication client C1 adds to this message a parameter representing the fact that an address translation device traversing solution is implemented by the client C1.


In the context of implementation using the SIP protocol, this signaling message is usually an “INVITE” message.


The signaling message, once sent, is transmitted to the address translation device NAT1, then to other devices of the public network SN. If necessary, before reaching the address translation device NAT1, it may also have passed through devices of the private sub-network SN1.


Some of these devices may have means of traversing address translation devices. These means may be compliant with the solutions set forth previously: this may be an ALG gateway (Application Layer Gateway) or an SBC server (Session Border Controller).


In the presence of the parameter representing the implementation of the means of traversing the NAT (by the client C1) in the message received, these network devices do not implement its own means of traversing the NAT.


In this way, it ensures that once a communication client implements a NAT traversing solution, no network devices implement their own solution. It therefore guarantees that one and only one solution is implemented for a given call.


This parameter added by the client to the signaling messages sent may be a header according to the SIP protocol. It may therefore take the form of a keyword followed by a value, such as the chain:


“X-Media-Processing: No-Processing”


The term “X-Media-Processing” is for indication purposes only. It may be any chain not yet used in the context of the SIP protocol and its extensions.


The value “No-Processing” is also indicative, and specifies that no processing must be carried out by the network devices (in other words no implementation of the means of traversing the NAT).


Alternatively, the parameter may be an SDP protocol (Session Description Protocol) parameter. It could then take the form of a keyword followed by a value, such as the chain:


“a=media-processing no-processing”


In the event that the means of traversing the address translation devices of the communication client C1 are unavailable, it may:

    • either not add a parameter representing the implementation of a NAT traversing solution in the signaling message sent,
    • or add a parameter representing the non-implementation of the NAT traversing solution.


For the first option, for reasons of compatibility, the network device receiving a signaling message which does not contain a parameter representing the implementation of a NAT traversing solution behave in accordance with the state of the art. In other words, if they have means of traversing the NAT, they will implement them.


For the second case, this parameter may be similar to the first parameter.


It may for example be a SIP header which will use the same keyword as the first parameter. It may therefore be a chain with the form:


“X-Media-Processing: Processing-Required”


The “Processing-Required” chain is indicative and means that since no NAT traversing solution is deployed by the calling communication client C1, a solution must be implemented by a communication network device.


This parameter may also be added as an SDP parameter, as explained previously.


A calling communication client may be required to add such a parameter, if it does not have means of traversing the NAT, or if it does possess such means but they are unavailable (STUN server failure, etc.) or because the user has chosen to disable them.


When a network device has implemented a NAT traversing solution, it may insert into the outgoing signaling message a parameter representing this implementation, so that any other device which may be located in the path of the signaling message does not also implement its own means of traversing the NAT.


This method of producing the invention resolves the additional problem which may be raised by the presence of several SBC servers or ALG gateways in a communication network.


This new parameter may be implemented in different ways. It may, for example, be a SIP header or an SDP parameter different to the one representing the implementation of a traversing solution by the client. It may also be the same SIP header or the same SDP parameter, in which case it takes a specific value.


In the event of an implementation using a SIP header, this parameter may take the form of the chain “X-Media-Processing: Processed”, with the keyword “Processed” being arbitrary.


If the incoming signaling message contains a parameter (for example associated with the “Processing-Requested” value), its value is modified by the device to become “Processed” in the outgoing signaling message.


If the incoming signaling message does not contain a parameter, the message may add it to the outgoing signaling message.

Claims
  • 1. Method of setting up a communication session (fm) between a calling communication client (C1) and a called communication client (C2), through a communication network (SN1, SN, SN2) including at least one address translation device (NAT1, NAT2), said method including the signaling message transmission stages (fs), passing through said at least one address translation device and allowing the exchange of the physical addresses of said communication clients for setting up said communication session, method in which at least one of said communication clients implements an address translation device traversing solution, and characterized in that said at least one communication client adds within a sent signaling message a parameter representing the implementation of said traversing solution, and in that in the presence of such a parameter, the devices of said communication network do not implement its own address translation device traversing solutions.
  • 2. Method of setting up a communication session according to claim 1, in which said signaling message sent is a message which complies with the SIP protocol.
  • 3. Method of setting up a communication session according to claim 2, in which said signaling message sent is an “Invite” compliant message.
  • 4. Method of setting up a communication session according to claim 1, in which said traversing solution complies with a mechanism taken within a group including the STUN, TURN and ICE mechanisms.
  • 5. Method of setting up a communication session according to claim 2, in which said parameter is a header which complies with the SIP protocol.
  • 6. Method of setting up a communication session according to claim 2, in which said parameter is a parameter which complies with the SDP protocol.
  • 7. Method of setting up a communication session according to claim 1, in which in the absence of said parameter, the devices of said communication network implement their own solutions for the traversing of address translation devices.
  • 8. Method of setting up a communication session according to claim 7, in which when a device of said communication network implements its own traversing solution, it inserts a parameter into the outgoing signaling message, representing this implementation.
  • 9. Communication client (C1) with means of sending signaling messages (fs) for setting up a communication session (fm) with at least one other communication client (C2), and means of traversing address translation devices, characterized in that it has the means, prior to the sending of a signaling message, to add within said message a parameter representing the implementation of said means of traversing address translation devices.
  • 10. Communication client according to claim 9, in which said signaling message is a message which complies with the SIP protocol.
  • 11. Communication client according to claim 10, in which said signaling message is an “Invite” message.
  • 12. Communication client according to claim 9, in which said traversing solution complies with a mechanism taken within a group including the STUN, TURN and ICE mechanisms.
  • 13. Communication client according to claim 10, in which said parameter is a header which complies with the SIP protocol.
  • 14. Communication client according to claim 10, in which said parameter is a parameter which complies with the SDP protocol.
  • 15. Communication client according to claim 9 which has further means available, when the means of traversing address translation devices are unavailable, to add within said signaling message a parameter representing the non-implementation of said means of traversing address translation devices.
  • 16. Communication network (SN1, SN2, SN) allowing the setting up of a communication session (fm) between a calling communication client (C1) and a called communication client (C2) and including at least one network device, said at least one network device including at least one address translation device (NAT1, NAT2) and said communication network also including means for traversing said at least one address translation device, characterized in that said network device is able not to implement its own means of traversing address translation devices in the presence of a parameter representing the implementation of means of traversing address translation devices by the communication client, within a received signaling message.
  • 17. Communication network according to claim 16, in which said received signaling message is a message which complies with the SIP protocol.
  • 18. Communication network according to claim 17, in which said received signaling message is an “Invite” message.
  • 19. Communication network according to claim 16, in which said traversing solution complies with a mechanism taken within a group including the STUN, TURN and ICE mechanisms.
  • 20. Communication network according to claim 17, in which said parameter is a header which complies with the SIP protocol.
  • 21. Communication network according to claim 17, in which said parameter is a parameter which complies with the SDP protocol.
  • 22. Communication network according to claim 17, in which in the absence of said parameter, the device of said communication network implements its own solutions for the traversing of address translation devices.
  • 23. Communication network according to claim 22, in which when a device of said communication network implements its own traversing solution, it inserts a parameter in the outgoing signaling message, representing this implementation.
  • 24. Computer program including instructions for implementing the method according to claim 1.
Priority Claims (1)
Number Date Country Kind
0653641 Sep 2006 FR national