comment at end. Dale Worley wrote: > On Fri, 2009-08-14 at 14:41 +0800, Rockson Li (zhengyli) wrote: >> I think answerer can add additional codec G729 here per sec 6.1 of >> rfc3264 >> >> <snip> >> The stream MAY indicate additional media formats, not listed in the >> corresponding stream in the offer, that the answerer is willing to >> send or receive >> </snip> >> >> However, here comes the inconsistency. >> >> When answerer send media, it cannot send G723 packets to offerer per sec >> 6.1 of RFC3264 >> >> <snip> >> The answerer MUST send using a media format in the offer >> that is also listed in the answer, >> </snip> >> >> Whereas RFC3264 does not forbid offerer to send G729 packets to answerer >> per sec 7 >> >> <snip> >> It MUST send using a media format listed in the answer, >> and it ***SHOULD*** use the first media format listed in the answer when >> it >> does send. >> </snip> > > I think you've found a mistake in the wording of the RFC. The writers > assumed that if the offerer was willing to send G729, then it would have > offered to do so. Clearly, the intention is that both the offerer and > answerer must use only codecs that have been listed in both the offer > and the answer.
I think there was some inconsistency in thinking about whether this is a *negotiation* or a *declaration*. Note that the answerer is permitted to begin sending media to the offerer as soon as the offer is received. So at that point this is being considered a declaration, not a negotiation. While the answerer is obligated to list the codecs it is sending to in the answer, the offerer doesn't necessarily have the answer when packets arrive. But requiring the answer to list the packets the answerer will send to does turn it into an after-the-fact negotiation. Allowing the answer to have new codecs, and the offerer to send to them is simply symmetry with the answerer being able to use any of the codecs in the offer. My impression is that when this was first done there was a lot of concern in reducing round trips, so it was only a 2-way handshake rather than 3-way. In retrospect, it seems that few implement the way it was apparently intended. Many apparently can't support multiple concurrent codecs and so need a negotiation to settle on one before media can flow. Others have different kinds of restrictions. So it seems a *negotiation* is really needed, even if it takes more round trips. Thanks, Paul _______________________________________________ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors