For my DTMF implementation I need to negociate a dynamic payload with the
I need this behaviour for DTMF, but this same things could happen in other
Sip Communicator projects :
What is a dynamic payload type?
In an SDP offer (or answer) there is a media description :
(m): audio 5000 RTP/AVP 0 8 97 ..... 101
The last numbers ( 0 8 97 ..... 101 ) correspond to the payload type of
If the number is included in the range 97-127, the payload type is dynamic,
we don't know the codec name matching this payload type.
So we add the link in SDP like this :
(a): rtpmap 101 telephone-event/8000 (this is for DTMF)
Now the remote side know that the dynamic payload type 101 is for
Join in this mail you will find my very dirty hack.
I negociate the DTMF payload type in CallSessionImpl and MediaControl.
In CallSessionImpl#createMediaDescriptions() :
If we receive an SDP offer we save the Payload Type
Number. This number will be used in DTMF packets.
We add support for the DTMF Payload Type Number.
The DtmfSDP is not a constant anymore because the remote side can change it.
When I tried to add DTMF encoding directly in EncodingConfiguration, it
didn't add DTMF in SDP, but added it in the Codec GUI.
If you have any ideas how to generalize this
CallSessionImpl.patch (2.84 KB)
DtmfConstants.patch (688 Bytes)
MediaControl.patch (1.36 KB)