Hi ,

I am working with the latest revision of Freeswitch and I am having one way audio problem  using SILK/8000 codec  on B-leg of the call after Session Refresh or on HOLD. This is due to the fact that when FS sends an INVITE out to B-leg it sends 98 in its SDP offer and B-leg responds back with same code but with payload type "120"

[ Offer ]
v=0
   o=FreeSWITCH 1303773966 1303773967 IN IP4 192.168.2.10
   s=FreeSWITCH
   c=IN IP4 192.168.2.10
   t=0 0
   m=audio 33766 RTP/AVP 98 9 101
   a=rtpmap:98 SILK/8000
   a=fmtp:98 useinbandfec=1;usedtx=0
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-16
   a=silenceSupp:off - - - -
   a=ptime:20


[ Answer ]

 v=0
   o=- 3512815772 3512815773 IN IP4 192.168.4.121
   s=pjmedia
   c=IN IP4 192.168.4.121
   t=0 0
   a=X-nat:0
   m=audio 4002 RTP/AVP 120 96
   a=rtcp:4003 IN IP4 192.168.4.121
   a=rtpmap:120 silk/8000
   a=fmtp:120 useinbandfec=1;usedtx=0
   a=sendrecv
   a=rtpmap:96 telephone-event/8000
   a=fmtp:96 0-15

Freeswitch handles this properly on the initial offer/answer as its using this patch (tell rtp stack about what remote payload type to expect when the receiving end follows the stupid SHOULD as WONT and sends a different dynamic payload number than the one in the offer)

After one min into the call because Session Timers are enabled Freeswitch sends a Session Refresh with payload type now setting to "120" 

[Refresh Offer]
v=0
   o=FreeSWITCH 1303773966 1303773967 IN IP4 192.168.2.10
   s=FreeSWITCH
   c=IN IP4 192.168.2.10
   t=0 0
   m=audio 33766 RTP/AVP 120 96 9
   a=rtpmap:120 SILK/8000
   a=fmtp:120 useinbandfec=1;usedtx=0
   a=rtpmap:96 telephone-event/8000
   a=fmtp:96 0-16
   a=silenceSupp:off - - - -
   a=ptime:20

The remote end then starts sending RTP packets with payload number "120" in its RTP header and FS stops processing these packets and as a result is resulting in one-way audio issue.

Any help is appreciated.

Thanks in advance
Regards
Jyotshna


P.S :  The issue starts even when the remote end presses" HOLD" as it sends INVITE on hold with "120" and FS responds back with "120" in its answer.