Hello, This may be more a question for a FreeSwitch forum, but I know we have a lot of knowledgeable people on here...
In an attempt to minimise CPU usage by reducing the amount of transcoding that takes place, I have looked at enabling inbound-late-negotiation and adding the inherit_codec parameter in the internal SIP profile.
Even though I can see in the debug trace that Sofia is working out a match, it doesn't use it because before the 200OK comes in from the b-leg a 183 early media messages with an SDP is sent to the a-leg, at this point Sofia does not know what codecs b-leg will offer so it goes with a prference from the a-leg selection. But now when the 200OK comes in from b-leg FS sends 200OK to a-leg with same SDP as in the 183 message. I believe this is the correct behaviour looking at RFC.
The problem is FS is now transcoding when there were common codecs available on both legs, the early media seems to have scuppered the late negotiation. I found a section on the FS documentation that is entitled Early Media and Late Codec Negotiation but it is just a stub with no content.
Can anyone shed any light on this for me?
Many thanks
Adrian.
In an attempt to minimise CPU usage by reducing the amount of transcoding that takes place, I have looked at enabling inbound-late-negotiation and adding the inherit_codec parameter in the internal SIP profile.
Even though I can see in the debug trace that Sofia is working out a match, it doesn't use it because before the 200OK comes in from the b-leg a 183 early media messages with an SDP is sent to the a-leg, at this point Sofia does not know what codecs b-leg will offer so it goes with a prference from the a-leg selection. But now when the 200OK comes in from b-leg FS sends 200OK to a-leg with same SDP as in the 183 message. I believe this is the correct behaviour looking at RFC.
The problem is FS is now transcoding when there were common codecs available on both legs, the early media seems to have scuppered the late negotiation. I found a section on the FS documentation that is entitled Early Media and Late Codec Negotiation but it is just a stub with no content.
Can anyone shed any light on this for me?
Many thanks
Adrian.