As I had mentioned on the last Jitsi Community call, we are working on using RtpTranslation in Jigasi (instead of the mixer) for the TranscriptionGateway. Part of our goal here is to use the RecorderRtpImpl, which requires an RtpTranslator construction parameter.
The problem we are having is that the mixer still seems to be getting used, but it’s not clear to me exactly where in the code we need to change things so that we use the translator. I’ve been looking at the SipGatewaySession for reference, and it looks like it is doing the following:
if (destination == null)
ensureSsrcRewriter(incomingCall); // moved the code in ensureSsrcRewriter into abstractGatewaySession so that it cd also be used by TranscriptionGatewaySession
Do we need to do something similar in the TranscriptionGatewaySession (rather than creating a new instance of MediaAwareCallConference with an overridden getMediaDevice method)? Or do we still need to create a new instance of MediaAwareCallConference, but somehow override getRtpTranslator?
Currently, we are getting repeated nullPointerExceptions like the following (when using RecorderRtpImpl):
2018-11-13 20:52:41.536 SEVERE:  org.jitsi.impl.neomedia.rtp.translator.OutputDataStreamImpl.log() Failed to translate RTP packet
I am guessing that this is probably related to not having the RtpTranslator properly integrated, however.
My last question, relates to getting the audio samples (for sending to transcription). Is the right approach to extend the SilenceEffect in the RecorderRtpImpl, overriding process (in order to get access to the audio Buffer)?
THanks for all your help!