METHOD FOR NEGOTIATING CODECS IN IP NETWORKS
20170310730 · 2017-10-26
Inventors
Cpc classification
International classification
Abstract
A codec negotiation method may include issuance by a first terminal, belonging to a first IP domain/network, of an offer message specifying, a list of codecs referred which said first terminal is capable of using for communicating with a second terminal, belonging to a second IP domain/network. The offer may be intercepted by a transit device situated on the signaling path between the first and second domains/networks. The transit device may determine a revised offer, and send the revised offer to the second terminal. The second terminal may determine a response including a list of more than one codecs that are contained in the revised offer and that the second terminal is capable of using, and sends the response to the transit device. The transit device may determine a provisional revised response, so as to comply with a certain priority criterion selected by the operators of the domains/networks in question.
Claims
1. A codec negotiation method comprising the following steps: intercepting, by a transit device situated on a signaling path between first and second IP domains/networks, an offer issued by a first terminal belonging to the first domain/network, the offer specifying, for a given type of media stream, a first list of codecs which the first terminal is capable of using for communicating with a second terminal belonging to a second domain/network; determining, using at least the offer, a revised offer comprising a second list of codecs; sending the revised offer to the second terminal; receiving a response from the second terminal, the response comprising a third list of codecs comprising a plurality of codecs that are contained in the revised offer and capable of being used by the second terminal; configuring a priority list that comprises triplets, each triplet including: a first codec usable by a terminal of the first domain/network; a second codec usable by a terminal of the second domain/network; and a degree of priority associated with the first and second codecs; and determining, using at least the response, a provisional revised response comprising a fourth list of codecs, each of the codecs in the fourth list of codecs being a codec that, in association with the a corresponding codec of the third list of codecs of the response, offers the highest degree of priority from among the codecs of the offer.
2. A codec negotiation method according to claim 1, further comprising sending a revised response to the first terminal, the revised response comprising a fifth list of codecs, the fifth list of codecs comprising at least the provisional revised response, or the first codec of the provisional revised response.
3. A codec negotiation method according to claim 1, wherein determining a revised offer comprises: determining, for each codec of the offer, one or more codecs usable by a terminal of the second domain/network, and determining the degree of priority associated with the or each pair formed by the codecs of the offer and the or each codec usable by a terminal of the second domain/network; determining for each of the codecs usable by a terminal of the second domain/network, a maximum degree of priority from among the determined degrees of priority, and selecting this maximum degree of priority in association with the codec usable by a terminal of the second domain/network, and forming a revised offer comprising the codecs usable by a terminal of the second/domain network, ordered by decreasing values of the associated maximum degree of priority as selected during substep b).
4. A codec negotiation method according to claim 1, characterized wherein the degrees of priority form a scale favoring high definition communications over low definition communications.
5. A codec negotiation method according to claim 1, wherein the priority list is selected by the transit device from a plurality of respective lists, each corresponding to a respective level for the current load of the transit device.
6. A transit device situated on a signaling path between a first IP domain/network and a second IP domain/network, the device being characterized in that it comprises means for configured to: intercept an offer issued by a first terminal belonging to said first domain/network, said offer specifying, for a given type of media stream, a first list of codecs, which the first terminal proposes using for communicating with a second terminal belonging to said second domain/network; determine, using the offer, a revised offer comprising a second list of codecs; send the revised offer to the second terminal; receive a response from the second terminal, the response including a third list of codecs; and determine, using the response and, a provisional revised response including a fourth list of codecs, taking account of a priority list comprising triplets each constituted by triplet comprising: a codec usable by a terminal of the first domain/network; a codec usable by a terminal of the second domain/network; and a degree of priority associated with this pair of codecs; each of the codecs in the fourth list of codecs being a codec that, in association with the a corresponding codec of the third list of codecs of the response, offers the highest degree of priority from among the codecs of the offer.
7. A transit device according to claim 6, wherein the device is further configured to send a revised response to the first terminal, the revised response including a fifth list of codecs, the fifth list of codecs comprising at least the provisional revised response, or the first codec of the provisional revised response.
8. A transit device according to claim 6, the device further configured to: determine for each codec of the offer, the or each codec that is usable by a terminal of the second domain/network, and determine the degree of priority associated with the or each pair formed by the codecs of the offer and the or each codec usable by a terminal of the second domain; determine for each of the codecs usable by a terminal of the second domain/network, a maximum degree of priority from among the determined degrees of priority, and selecting this maximum degree of priority in association with the codec usable by a terminal of the second domain/network; and form a revised offer comprising the codecs this way usable by a terminal of the second/domain network ordered by decreasing value of the associated maximum degree of priority.
9. A transit device according to claim 6, wherein the degrees of priority form a scale favoring high definition communications over low definition communications.
10. A transit device according to claim 6, wherein the priority list comprises a plurality of respective priority lists each corresponding to a respective level for the current load of said transit device, and the device is further configured to: obtain its own load; and determine the range within which the obtained load lies from among a series of respective ranges each corresponding to a respective load level.
11. A non-transitory computer readable data medium having stored thereon instructions which, when executed by a processor, cause said processor to perform a codec selection method, the method comprising intercepting, by a transit device situated on a signaling path between first and second IP domains/networks, an offer issued by a first terminal belonging to the first domain/network, the offer specifying, for a given type of media stream, a first list of codecs which the first terminal is capable of using for communicating with a second terminal belonging to a second domain/network; determining, using at least the offer, a revised offer comprising a second list of codecs: sending the revised offer to the second terminal; receiving a response from the second terminal, the response comprising a third list of codecs-comprising a plurality of codecs that are contained in the revised offer and capable of being used by the second terminal; configuring a priority list that comprises triplets, each triplet including: a first codec usable by a terminal of the first domain/network; a second codec usable by a terminal of the second domain/network; and a degree of priority associated with the first and second codecs; and determining, using at least the response, a provisional revised response comprising a fourth list of codecs, each of the codecs in the fourth list of codecs being a codec that, in association with the a corresponding codec of the third list of codecs of the response, offers the highest degree of priority from among the codecs of the offer.
12. A computer having stored thereon instructions which, when executed by the computer, cause the computer to perform a codecs selection method, the method comprising: intercepting, by a transit device situated on a signaling path between first and second IP domains/networks, an offer issued by a first terminal belonging to the first domain/network, the offer specifying, for a given type of media stream, a first list of codecs which the first terminal is capable of using for communicating with a second terminal belonging to a second domain/network; determining, using at least the offer, a revised offer comprising a second list of codecs: sending the revised offer to the second terminal; receiving a response from the second terminal, the response comprising a third list of codecs-comprising a plurality of codecs that are contained in the revised offer and capable of being used by the second terminal; configuring a priority list that comprises triplets, each triplet including: a first codec usable by a terminal of the first domain/network; a second codec usable by a terminal of the second domain/network; and a degree of priority associated with the first and second codecs; and determining, using at least the response, a provisional revised response comprising a fourth list of codecs, each of the codecs in the fourth list of codecs being a codec that, in association with the a corresponding codec of the third list of codecs of the response, offers the highest degree of priority from among the codecs of the offer.
Description
[0071] Other aspects and advantages of the invention appear on reading the following detailed description of particular embodiments given as non-limiting examples.
[0072] By way of example, consideration is given to two domains (or networks) A and B that are interconnected via a transit device E. The operator of the transit device E configures it on the basis of the following estimates:
[0073] the first domain A has two types of terminal, namely: [0074] a first type that accepts G.711 codec; and [0075] a second type that accepts the AMR_WB and G.711 codecs; and
[0076] the second domain B has five types of terminal, namely: [0077] a first type accepting the G.722 codec; [0078] a second type accepting the G.711 codec; [0079] a third type accepting the G.722 codec and the G.711 codec; [0080] a fourth type accepting the G.722 codec and the G.729 codec; [0081] a fifth type accepting the AMR_WB codec and the G.729 codec; and [0082] a sixth type accepting the G.729 codec.
[0083] According to the invention, the operators of the domains A and B act together to define a “priority list”, referred to below as PL, made up of triplets comprising:
[0084] a degree of priority;
[0085] a codec usable by at least one type of terminal in domain A; and
[0086] a codec usable by at least one type of terminal in domain B.
[0087] This priority list PL is accessible to a transit device E situated on the signalling path between the domains A and B.
[0088] A first implementation of the method of the invention for negotiating codecs is described below.
[0089] In this implementation, it is assumed that in compliance with a prior agreement between the operators of the domains A and B, priority is an increasing function of the definition (i.e. the technical quality) of the media stream. In this respect, it should be recalled that the G.722 and AMR_WB codecs are high definition (HD) codecs, while the AMR, G.711, and G.729 codecs are low definition (LD) codecs.
[0090] For any codec Ca usable by at least one terminal of the first domain A, and any codec Cb usable by at least one terminal of the second domain B, a priority scale PS is defined, which may by way of example be as follows:
[0091] degree=5 if Cb is identical to Ca, and HD;
[0092] degree=4 if Cb is different from Ca, but both are HD;
[0093] degree=3 if Cb is identical to Ca, and LD;
[0094] degree=2 if Cb is different from Ca, but both are LD; and
[0095] degree=1 if Cb is different from Ca, with one of them HD and the other LD.
[0096] Priority is thus given to communications that are high definition (broadband) from end to end. Furthermore, transcoding is avoided between a high definition (broadband) codec and a low definition (narrow band) codec, since it is assumed (at least for the purposes of the present example) that HD-LD transcoding requires more CPU power than LD-LD transcoding.
[0097] In the present example, given the codecs that can actually be used by at least one terminal of the first domain A and the codecs that can actually be used by at least one terminal of the second domain B, this priority scale PS is used to determine the following priority list:
TABLE-US-00001 degree of priority codec A codec B 5 AMR_WB AMR_WB 4 AMR_WB G.722 3 G.711 G.711 2 G.711 G.729 1 AMR_WB G.711 1 AMR_WB G.729 1 G.711 G.722 1 G.711 AMR_WB
[0098] During a step S1, a terminal Ta belonging to the domain A issues a message specifying the following offer:
Oa={AMR_WB, G.7111
in which the order of the codecs expresses the preferences of the terminal Ta.
[0099] During a step S2, said message is intercepted by the transit device E.
[0100] In the prior art, the transit device E then forms a revised offer Ob by adding to the end of the list Oa the codecs that can be used in the set of terminals in the domain B and not included in the list Oa:
Ob={AMR_WB, G.711 G.722, G.729}
and it does this in particular in order to take account of the that the first and fourth types of terminal in domain B do not accept any of the codecs proposed by the terminal Ta in its offer Oa (i.e. AMR_WB and G.711). However this would lead to:
[0101] a G.711-G.711 (i.e. LD-LD) communication between Ta and a terminal Tb of the third type; or
[0102] AMR_WB-G.729, (i.e. HD-LD) transcoding between Ta and a terminal Tb of the sixth type.
[0103] In contrast, in the present implementation, it is desired to give precedence to HD-HD communications, and to avoid HD-LD transcoding.
[0104] During a step S3, the transit device E determines the revised offer Ob in compliance with the following procedure.
[0105] The list Oa is scanned sequentially. For each codec Ca in Oa, the transit device E filters the above priority list PL by retaining only the triplets that contain Ca as the first term.
[0106] Thus, since Oa={AMR_WB, G.711}:
[0107] for the first codec (AMR_WB), the sublist PL.sub.1 that is obtained is as follows:
TABLE-US-00002 degree of priority codec A codec B 5 AMR_WB AMR_WB 4 AMR_WB G.722 1 AMR_WB G.711 1 AMR_WB G.729
[0108] for the second codec (G.711), the sublist PL.sub.2 that is obtained is:
TABLE-US-00003 degree of priority codec A codec B 3 G.711 G.711 2 G.711 G.729 1 G.711 G.722 1 G.711 AMR_WB
[0109] Thereafter, the sublists PL.sub.1 and PL.sub.2 are concatenated:
TABLE-US-00004 degree of priority codec A codec B 5 AMR_WB AMR_WB 4 AMR_WB G.722 1 AMR_WB G.711 1 AMR_WB G.729 3 G.711 G.711 2 G.711 G.729 1 G.711 G.722 1 G.711 AMR_WB
[0110] Thereafter, the column corresponding to codec A is eliminated:
TABLE-US-00005 degree of priority codec B 5 AMR_WB 4 G.722 1 G.711 1 G.729 3 G.711 2 G.729 1 G.722 1 AMR_WB
[0111] Finally, for each codec, only the highest degree of priority is retained, i.e. the list is ordered by decreasing priority:
TABLE-US-00006 degree of priority codec B 5 AMR_WB 4 G.722 3 G.711 2 G.729 [0112] The transit device E thus obtains the revised offer: Ob={AMR_WB, G.722, G.711, G.729}
[0113] During a step S4, the transit device E sends the revised offer Ob to the terminal Tb.
[0114] During a step S5, the terminal Tb determines a response Rb by selecting from the revised offer Ob the codec(s) that it accepts. It should be observed that in certain systems (e.g. IMS networks), standards recommend that the response Rb contains only one codec per type of media stream. When the response Rb may contain a plurality of codecs, it preferably complies with the order of the codecs contained in the revised offer Ob.
[0115] In the present implementation, where the revised offer is:
Ob={AMR_WB, G.722, G.711, G.729}.
and where the response Rb may contain a plurality of codecs, the terminal Tb, depending on its type, produces the following response:
[0116] first type: Rb={G.722};
[0117] second type: Rb={G.711};
[0118] third type: Rb={G.722, G.711};
[0119] fourth type: Rb={G.722, G.729};
[0120] fifth type: Rb={AMR_WB, G.729}; and
[0121] sixth type: Rb={G.729}.
[0122] The terminal Tb then sends the response Rb to the transit device E.
[0123] During a step S6, the transit device E uses the priority list PL once again to obtain a “provisional revised response” R′a.
[0124] To do this, the transit device E scans the response Rb and pairs each codec contained in the response Rb with a codec contained
[0125] In the offer Oa, and does so in such a manner as to maximize the degree of priority.
[0126] Thus, depending on the type of the terminal Tb, the transit device E obtains:
[0127] first type: Rb={G.722}, R′a={AMR_WB} (maximum priority 4);
[0128] second type: Rb={G.711}, R′a={G.711} (maximum priority 3);
[0129] third type: Rb={G.722, G.711}, R′a={AMR_WB, G711} (maximum priorities 4 and 3);
[0130] fourth type: Rb={G.722, G729}, R′a={AMR_WB, G.711} (maximum priorities 4 and 2);
[0131] fifth type: Rb={AMR_WB, G.729}, R′a={AMR_WB, G.711} (maximum priorities 5 and 2); and
[0132] sixth type: Rb={G.729}, R′a={G.711} (maximum priority 2).
[0133] It can be seen from this example that the provisional revised response R′a may comprise a plurality of codecs.
[0134] Finally, during a step S7, the transit device E obtains the (final) “revised response” Ra at least from the provisional revised response R′a, and it sends this revised response Ra to the terminal Ta.
[0135] For example, in a first variant, Ra is merely identical to R′a. In this first variant, and depending on the type of the terminal Tb, the transit device E obtains:
[0136] first type: Rb={G.722}, Ra={AMR_WB};
[0137] second type: Rb={G.711}, Ra={G.711};
[0138] third type: Rb={G.722, G.711}, Ra={AMR_WB, G.711};
[0139] fourth type: Rb={G.722, G729}, Ra={AMR_WB, G.711};
[0140] fifth type: Rb={AMR_WB, G.729}, Ra={AMR_WB, G.711}; and
[0141] sixth type: Rb={G.729}, Ra={G.711}.
[0142] In a second variant, R′a is filtered so as to retain only its first codec. This variant is particularly useful when the domain A authorizes only one codec in Ra. In this second variant, and depending on the type of the terminal Tb, the transit device E obtains:
[0143] first type: Rb={G.722}, Ra={AMR_WB};
[0144] second type: Rb={G.711}, Ra={G.711};
[0145] third type: Rb={G.722, Ra={AMR_WB};
[0146] fourth type: Rb={G.722, Ra={AMR_WB};
[0147] fifth type: Rb={AMR_WB, Ra={AMR_WB}; and
[0148] sixth type: Rb={G.729}, Ra={G.711}.
[0149] Other variants are naturally possible.
[0150] It should be recalled that the initial offer from Ta was:
Oa={AMR_WB, G.711}
In the above example, it can be seen that for a terminal Tb of the third type, HD-HD communication is preferred (AMR_WB transcoded into G.722) over LD-LD communication (G.711-G.711) of the prior art.
[0151] In a second implementation of the invention, account is also taken of the current load on the transit device E (i.e. the load during the period in which codec negotiation is taking place). It should be recalled that the “load” of a device represents the active fraction of the total resources of that device; in particular, the “load” of a processor is the fraction of its nominal power that is being used by the processor at the instant in question.
[0152] In this implementation, it is assumed that the transit device (or an associated network system) is capable:
[0153] of determining its own load; and
[0154] of determining the range in which the load is situated from among a predetermined series of ranges (that are disjoint and that all lie in the range [0,1]).
[0155] It is also assumed that in compliance with a prior agreement between the operators of the domains A and B, a plurality of priority scales PS.sup.1, PS.sup.2, . . . , PS.sup.m have been determined (instead of only one), each of these priority scales PS.sup.c, where c=1, 2, . . . , m being associated respectively with a c.sup.th load level, i.e. a respective range I.sup.c of values for the load of the transit device E. For example, the range I.sup.1 represents a low load, the range I.sup.2 a medium load, the range I.sup.3 a heavy load, and the range I.sup.4 a very heavy load. These priority scales are such that the greater the load on the transit device E, the more attempts are made to avoid transcoding (which is greedy in terms of computation), by giving a low degree of priority to such transcoding. Certain kinds of transcoding can even be voluntarily banned (zero degree of priority) in the event of a very high load.
[0156] Given the codecs that are actually usable by at least one terminal of the first domain A, and the codecs that are actually usable by at least one terminal in the second domain G, respective priority lists PL.sup.1, PL.sup.2, . . . , PL.sup.m are determined in compliance with these respective priority scales PS.sup.1, PS.sup.2, . . . , PS.sup.m.
[0157] For example, in a high load situation (load belonging to the range I.sup.3, say), it would be possible to have the following priority scales PS.sup.3:
[0158] degree=5 if Cb identical to Ca, and HD;
[0159] degree=4 if Cb identical to Ca, and both LD;
[0160] degree=3 if Cb different from Ca, but both LD;
[0161] degree=2 if Cb different from Ca, but both HD; and
[0162] degree=1 if Cb different from Ca, with one HD and the other LD.
[0163] This gives priority to high definition (broadband) end-to-end communications, while avoiding transcoding if it involves a high definition (broadband) codec.
[0164] The transit device E consults the following list PL.sup.3 satisfying this priority scale PS.sup.3:
TABLE-US-00007 degree of priority codec A codec B 5 AMR_WB AMR_WB 4 G.711 G.711 3 G.711 G.729 2 AMR_WB G.722 1 AMR_WB G.711 1 AMR_WB G.729 1 G.711 G.722 1 G.711 AMR_WB
[0165] The present implementation begins with steps S′1 and S′2 that are respectively identical to steps S1 and S2 of the first implementation.
[0166] However thereafter, during a step S′3, the transit device E filters the above priority list PL.sup.3 to produce two lists PL.sup.3.sub.1 and PL.sup.3.sub.2 which, when concatenated, gives the following list:
TABLE-US-00008 degree of priority codec A codec B 5 AMR_WB AMR_WB 2 AMR_WB G.722 1 AMR_WB G.711 1 AMR_WB G.729 4 G.711 G.711 3 G.711 G.729 1 G.711 G.722 1 G.711 AMR_WB
[0167] Thereafter, after filtering and ordering, the transit device E constructs the following list:
TABLE-US-00009 degree of priority codec B 5 AMR_WB 4 G.711 3 G.729 2 G.722
[0168] In other words, in the present implementation, the revised offer is:
Ob={AMR_WB, G.711, G.729, G.722}
In this revised offer, all of the codecs necessary for the domain B are present, but they are given priorities that are different from those associated with the first implementation, since the codec G.722 is now relegated to the last position.
[0169] During a step S′4, the transit device E sends the revised offer Ob to the terminal Tb.
[0170] During a step S′5, the terminal Tb determines a response Rb by selecting from the revised offer Ob the codec(s) that it accepts. In the present implementation, in which the revised offer is:
Ob={AMR_WB, G.711, G.729, G.722}
and in which the response Rb may contain a plurality of codecs, the terminal Tb, depending on its type, produces the following response:
[0171] first type: Rb={G.722};
[0172] second type: Rb={G.711};
[0173] third type: Rb={G.711, G.722};
[0174] fourth type: Rb={G.729, G.722};
[0175] fifth type: Rb={AMR_WB, G.729}; and
[0176] sixth type: Rb={G.729}.
[0177] Thereafter, the terminal Tb sends the response Rb to the transit device E.
[0178] During a step S′6, the transit device E uses the list PL.sup.3 once more to obtain the provisional revised response R′a.
[0179] To do this, the transit device E scans the response Rb, and couples each codec contained in the response Rb with a codec contained in the offer Oa, and does so in such a manner as to maximize the degree of priority.
[0180] Thus, depending on the type of the terminal Tb, the transit device E obtains:
[0181] first type: Rb={G.722}, R′a={AMR_WB} (maximum priority 2);
[0182] second type: Rb={G.711}, R′a={G.711} (maximum priority 4);
[0183] third type: Rb={G.711, G.722}, R′a={G711, AMR_WB} (maximum priorities 4 and 2);
[0184] fourth type: Rb={G729, G.722}, R′a={G.711, AMR_WB} (maximum priorities 3 and 2);
[0185] fifth type: Rb={AMR_WB, G.729}, R′a={AMR_WB, G.711} (maximum priorities 5 and 3); and
[0186] sixth type: Rb={G.729}, R′a={G.711} (maximum priority 3).
[0187] Finally, during a step S′7, the transit device E obtains the revised response Ra at least from the provisional revised response R′a, and sends this revised response Ra to the terminal Ta.
[0188] For example, in a first variant, Ra is merely identical to R′a. In this first variant, depending on the type of the terminal Tb, the transit device E obtains:
[0189] first type: Rb={G.722}, R′a={AMR_WB};
[0190] second type: Rb={G.711}, R′a={G.711};
[0191] third type: Rb={G.711, G.722}, R′a={G711, AMR_WB};
[0192] fourth type: Rb={G729, G.722}, R′a={G.711, AMR_WB};
[0193] fifth type: Rb={AMR_WB, G.729}, R′a={AMR_WB, G.711}; and
[0194] sixth type: Rb={G.729}, R′a={G.711}.
[0195] In a second variant, R′a is filtered so as to retain only its first codec. In this second variant, depending on the type of the terminal Tb, the transit device E obtains:
[0196] first type: Rb={G.722}, R′a={AMR_WB};
[0197] second type: Rb={G.711}, R′a={G.711};
[0198] third type: Rb={G.711, R′a={G711};
[0199] fourth type: Rb={G729, }, R′a={G.711};
[0200] fifth type: Rb={AMR_WB, }, R′a={AMR_WB}; and
[0201] sixth type: Rb={G.729}, R′a={G.711}.
[0202] Other variants are naturally possible.
[0203] It should be recalled that the initial offer from Ta was:
Oa={AMR_WB, G.711}
It can be seen in the above example that for a terminal Tb of the sixth type, G.711-G.729 (i.e. LD-LD) transcoding is favored over AMR_WB-G.729 (i.e. HD-LD) transcoding of the prior art.
[0204] The invention can be Implemented within nodes, e.g. transit devices, communications networks, by means of software and/or hardware components.
[0205] The software components may be integrated in a conventional program for network load management. That is why, as specified above, the present invention also provides a computer system. The computer system includes in conventional manner a central processor unit using signals to control a memory, and also an input unit and an output unit. Furthermore, the computer system may be used to execute a computer program including instructions for performing any one of the codec negotiation methods of the invention.
[0206] Specifically, the invention also provides a computer program that is downloadable from a communications network and that includes instructions for executing steps of a codec negotiation method of the invention when it is executed on a computer. The computer program may be stored on a computer readable medium and may be executable by a microprocessor.
[0207] The program may use any programming language, and be in the form of source code, object code, or code intermediate between source code and object code, such as in a partially complied form, or in any other desirable form.
[0208] The invention also provides a non-removable, or a partially or totally removable data medium that is readable by a computer and that includes instructions of a computer program as mentioned above.
[0209] The data medium may be any entity or device capable of storing the program. For example, the medium may comprise storage means such as a read only memory (ROM), e.g. a compact disk (CD) ROM or a microelectronic circuit ROM, or it may comprise magnetic storage means such as a hard disk, or even a universal serial bus (USB) flash drive.
[0210] Furthermore, the data medium may be a transmissicible medium such as an electrical or optical signal, suitable for being conveyed via an electrical or optical cable, by radio, or by other means. The computer program of the invention may in particular be downloaded from an Internet type network.
[0211] In a variant, the data medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of any of the codec negotiation methods of the invention.