(Answer) (Category) SIP FAQ : (Category) SIP Protocol Operation :
Why does SIP/SDP allow for multiple codecs to be used for the same media stream?
In the call setup procedures of SIP/SDP, the caller offers their list of codecs for a stream, and the called party responds with those amongst the set which can be supported. The result is that both sides agree on a set of codecs which can be used for that stream. Any of those codecs can be used at any time. The codec used for a packet is indicated in the payload type of the RTP packet.
Why does SIP do that? Why doesn't it restrict it to a single codec, and then do something like an H.323 open logical channel to change codecs mid call?
The answer is twofold. First, it supports application adaptation. Network conditions will vary. To adapt to those conditions, the sender needs the ability to vary the encoding rate and type. It will need to change codecs rapidly. Therefore, SIP allows for multiple codecs to be in use for a single stream.
The second reason is that different codecs might be used depending on the content of the encoded media. For example, rfc2833 defines an encoding of DTMF. It is very useful for the caller to use g.723.1 to send speech, and then, when a number on the dialpad is pressed, to transmit the tone in SIP using rfc2833 instead of g.723.1. This requires the sender to quickly change codecs mid-stream. Similarly, during a silence period, a comfort noise codec might be used instead of the main codec. This too, will require the sender to change codecs on the fly.
There are scenarios where a participant can indeed support multiple codecs, but cannot change them on the fly. Work is underway in the mmusic group in IETF to add some basic capability negotiation to SDP for this purpose.
[Append to This Answer]
jdrosen@dynamicsoft.com
2001-Apr-27 5:05am
Previous: (Answer) What do I need to do to use SRV records?
Next: (Answer) What are spirals? Why does a proxy care?
This document is: http://www.cs.columbia.edu/~hgs/sip/faq.cgi?file=103
[Search] [Appearance]
This is a Faq-O-Matic 2.710.
This FAQ administered by Henning Schulzrinne