Display Transcription button for participants [non-moderators]

Continuing the discussion from Enabling Transcription UI on Jitsi-meet own installation:

I have been looking around to find the solutions to this, but I can’t find it. (in the link above it doesn’t work for me)

I want to know how to let the participants to be able to see the captions as well once the mods enables it. What I did to get it to work or a workaround is to Grant Moderator to other participants.
Any help would be appreciated!!

Configure transcriber in hidden domain and it should work on current stable release.

Which version of jitsi-meet do you use, this was foxed in latest stable. Once cc is enabled by a moderator, guests can see the cc button and enable it.

dpkg -l | grep jitsi
ii jitsi-meet 2.0.5390-3 all WebRTC JavaScript video conferences

is it the latest version?

the hiddenuser@myhiddendomain should be transcriber’s id and pass?

Right.

net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1=acc-xmpp-1
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.ACCOUNT_UID=Jabber:jigasi@auth.mydomain.com
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.USER_ID=jigasi@auth.mydomain.com
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.IS_SERVER_OVERRIDDEN=true
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.SERVER_ADDRESS=127.0.0.1
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.SERVER_PORT=5222
#net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.BOSH_URL=https://127.0.0.1/http-bind
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.ALLOW_NON_SECURE=true
#base64 AES keyLength:256 or 128
net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-1.PASSWORD=pass

does it come from this? since I used quick install

In /etc/jitsi/jigasi/sip-communicator.properties

org.jitsi.jigasi.xmpp.acc.USER_ID=transcriber@jitsi.hiddendomain.com
org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASSWORD

You have to register user ‘transcriber’ in jitsi.hiddendomain.com

Below are all things that are needed. You may simply set SERVER_FQDN and copy/paste in terminal also.
<<<<<
HIDDEN_DOMAIN=“jitsi.hiddendomain.com
SERVER_FQDN=YOUR_SERVER_FQDN

JIGASI_SIP_COMM_FILE=/etc/jitsi/jigasi/sip-communicator.properties

JIGASI_USER="transcriber"

JIGASI_PASSWORD=$(< /dev/urandom tr -dc a-z0-9 | head -c10)

#Add a new domain in prodosy
#Modify to internal_hashed if needed
echo -e "\nVirtualHost \"$HIDDEN_DOMAIN\"\n\tauthentication = \"internal_plain\"\n\tc2s_require_encryption = false"|sudo tee -a /etc/prosody/conf.d/"$SERVER_FQDN".cfg.lua > /dev/null

#Register this domain so that transcriber joins hidden
sudo prosodyctl register "$JIGASI_USER" "$HIDDEN_DOMAIN" "$JIGASI_PASSWORD"
[ $? = 0 ] && echo "Registered user '$JIGASI_USER'..." ||
        echo "*** ERROR ***: prosodyctl - Error registering user '$JIGASI_USER' to $HIDDEN_DOMAIN"

sudo sed -i "s/^#.*org.jitsi.jigasi.xmpp.acc.USER_ID=.*/org.jitsi.jigasi.xmpp.acc.USER_ID="$JIGASI_USER"@"$HIDDEN_DOMAIN"/" "$JIGASI_SIP_COMM_FILE"
sudo sed -i "s/^#.*org.jitsi.jigasi.xmpp.acc.PASS=.*/org.jitsi.jigasi.xmpp.acc.PASS="$JIGASI_PASSWORD"/" "$JIGASI_SIP_COMM_FILE"
sudo sed -i 's/^#.*org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=.*/org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false/' "$JIGASI_SIP_COMM_FILE"

#Also allow non secure connections to xmpp(for self-signed certs, I think)
sudo sed -i '/org.jitsi.jigasi.xmpp.acc.USER_ID=/i org.jitsi.jigasi.xmpp.acc.ALLOW_NON_SECURE=true' "$JIGASI_SIP_COMM_FILE"

sudo sed -i "s/.*\/\/.*transcribingEnabled: .*/\ttranscribingEnabled: true,\n\thiddenDomain: '$HIDDEN_DOMAIN',/" /etc/jitsi/meet/"$SERVER_FQDN"-config.js

Do I just need to change SERVER_FQDN?

HIDDEN_DOMAIN remains the same?

Right.

You may change the hiddendomain if you want to. It can be anything.

    // List of undocumented settings used in lib-jitsi-meet
/**
 _peerConnStatusOutOfLastNTimeout
 _peerConnStatusRtcMuteTimeout
 abTesting
 avgRtpStatsN
 callStatsConfIDNamespace
 callStatsCustomScriptUrl
 desktopSharingSources
 disableAEC
 disableAGC
 disableAP
 disableHPF
 disableNS
 enableTalkWhileMuted
 forceJVB121Ratio
 forceTurnRelay
 hiddenDomain
 ignoreStartMuted
 */
hiddenDomain: 'jitsi.hiddendomain.com'
// Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value.
makeJsonParserHappy: 'even if last key had a trailing comma'

// no configuration value should follow this line.

};

I think everything is created and added, but for the last one to add the hidden domain, I have to added it manually, but when I added it and restart everything, jitsi just stuck in grey screen

also does
# org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false
this has to be uncommented?

Hm. Because, you missed a ‘,’ after hiddenDomain: ‘jitsi.hiddendomain.com

It should be: hiddenDomain: ‘jitsi.hiddendomain.com’,

And yes, it needs to uncommented.

Thank you,

but now when I try clicking cc, transcriber is not joining now
here’s the log

2021-03-11 09:51:38.237 INFO: [111] org.jitsi.jigasi.xmpp.CallControl.handleDialIq().195 [ctx=16154562982361714776551] Got dial request null -> jitsi_meet_transcribe room: mathematicalentrepreneursarmscornfully@conference.rttjitsi.ddnsfree.com
2021-03-11 09:51:38.237 INFO: [111] org.jitsi.jigasi.JvbConference.start().490 [ctx=16154562982361714776551] Starting JVB conference room: mathematicalentrepreneursarmscornfully@conference.rttjitsi.ddnsfree.com
2021-03-11 09:51:38.245 INFO: [111] org.jitsi.jigasi.JvbConference.setXmppProvider().633 [ctx=16154562982361714776551] Using ProtocolProviderServiceJabberImpl(Jabber:4ed0cb46@rttjitsi.ddnsfree.com/4ed0cb46)
2021-03-11 09:51:38.255 INFO: [112] impl.protocol.jabber.OperationSetBasicTelephonyJabberImpl.registrationStateChanged().127 Jingle : ON
2021-03-11 09:51:38.257 INFO: [112] org.jitsi.jigasi.JvbConference.registrationStateChanged().684 [ctx=16154562982361714776551] Registering XMPP.
2021-03-11 09:51:38.267 SEVERE: [112] impl.protocol.jabber.ProtocolProviderServiceJabberImpl.connectAndLogin().1003 Failed to connect to XMPP service
org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
        at org.jivesoftware.smack.SASLAuthentication.authenticationFailed(SASLAuthentication.java:292)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1100)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
        at java.base/java.lang.Thread.run(Thread.java:832)
2021-03-11 09:51:38.278 SEVERE: [112] org.jitsi.jigasi.JvbConference.registrationStateChanged().688 [ctx=16154562982361714776551] XMPP Connection failed.
2021-03-11 09:51:38.278 WARNING: [112] org.jitsi.jigasi.JvbConference.leaveConferenceRoom().1115 [ctx=16154562982361714776551] MUC room is null
2021-03-11 09:51:43.246 SEVERE: [111] org.jitsi.jigasi.xmpp.CallControlMucActivator.processIQ().589 Error processing RayoIq
java.lang.Exception: Fail to join muc!
        at org.jitsi.jigasi.xmpp.CallControlMucActivator$WaitToJoinRoom.waitToJoinRoom(CallControlMucActivator.java:688)
        at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.setDialResponseAndRegisterHangUpHandler(CallControlMucActivator.java:621)
        at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.processIQ(CallControlMucActivator.java:578)
        at org.jitsi.jigasi.xmpp.CallControlMucActivator$DialIqHandler.processIQ(CallControlMucActivator.java:556)
        at org.jitsi.jigasi.xmpp.CallControlMucActivator$RayoIqHandler.handleIQRequest(CallControlMucActivator.java:741)
        at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1188)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
        at java.base/java.lang.Thread.run(Thread.java:832)

Please check my very first comment where I provided a link which has changes.

comment out net.java.sip.communicator.impl.protocol.jabber.acc-xmpp-BOSH_URL_PATTERN=https://{host}{subdomain}/http-bind?room={roomName}

I have checked the sip file and it is commented out.

What could be problem?

If BOSH_URL_PATTERN, is commented, it should work, as long as there’s no issue with other transcription related config changes.

Hope you have restarted services after those changes.

I have restarted the services.

Thank you for replies btw, I will look into it more. hopefully fix it, if not you’ll see me again :laughing:

Update: I got it, the password in SIP was different from one listed in prosody. It works now, thank you so much again!

Maybe one more question, do you know anything about configuring buttons to change transcription language, as well as translation language?

Nice.

There are no buttons for those options. But I think they can be changed from browser. Did not try that.
How to change from browser, is available on some posts here, you may have to search.

I know there’s console command to change the languages, but i just want to find a way to modify the code to add those buttons.
Something like this how to configure google speech to text · Issue #188 · jitsi/jigasi · GitHub

@Pisethpanha_Chhean Display Transcription button for participants (non-moderators)
Can you summary the solution for this issue.

Thanks in advance