Open adil-mafzool opened 11 months ago
Looks like this is from a modified code base? I don't think we've ever had a log line Forcing late offer
@rfuchs It is custom rtpengine version: 9.5.7.1 but the Force late offer change has been added from the previous custom release 9.0.1.4 code change is here: -
@@ +1415,17 @@@ void codec_handlers_update(struct call_
pcm_dtmf_detect = 1;
+ if (flags && flags->opmode == OP_OFFER && flags->force_late_offer) {
+ ilog(LOG_DEBUG, "Forcing late offer");
+ MEDIA_CLEAR(sink,TRANSCODE);
+ }
+
Not sure it is cause of this issue as previous rtpengine version 9.0.1.4 trace opus-g729-transcode-good-9.0.1.4.log contains it too in similar way with issue not seen. My intention is to move newer rtpengine version: 9.5.7.1 which fixes other issues.
@rfuchs I have removed the code to add force late offer flag and re-run the test but it hasn't made any difference. The rtpengine log of that rtpengine version: 9.5.7.1 is attached opus-g729-trancode-issue.log for your guidance.
I would suggest to add the same codec/transcoding flags to the re-invite offer as are present in the original offer.
I would also suggest to upgrade to 10.5 as it has much improved codec negotiation logic.
I am having transcoding issue with particular scenario when rtpengine is initially transcoding audio stream between opus and G729 but after SIP re-INVITE with NOSDP is initiated rtpengine transcoding is broken and it starts to send opus to the party which doesn't even support g729: -
SIP signalling and RTP streams info: -
Wireshark call flow: -![opu-g729-trancode](https://github.com/sipwise/rtpengine/assets/36664780/f44f60e1-92c3-4193-8d12-43826d349c6b)
rtpengine version: 9.5.7.1 custom running on the redhat Linux xxx-xxxx-xxx-xxx-02.xxxxxxxxxx3.xxxxx 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Attached rtpengine log with loglevel 7 opus-g729-bad-transcod.log
Wireshark capture: - opus-g729-transcode-bad.zip
Please can someone pointers me where can be the issue :) as the issue is always occurring: -
Second example call flow: -