@@ -21,6 +21,7 @@ import BreakoutRooms from './BreakoutRooms';
21
21
import Lobby from './Lobby' ;
22
22
import RoomMetadata from './RoomMetadata' ;
23
23
import XmppConnection from './XmppConnection' ;
24
+ import { FEATURE_TRANSCRIBER } from './xmpp' ;
24
25
25
26
const logger = getLogger ( __filename ) ;
26
27
@@ -833,15 +834,16 @@ export default class ChatRoom extends Listenable {
833
834
834
835
const { status } = attributes ;
835
836
836
- if ( status && status !== this . transcriptionStatus ) {
837
+ if ( status && status !== this . transcriptionStatus
838
+ && member . isHiddenDomain && member . features . has ( FEATURE_TRANSCRIBER ) ) {
837
839
this . transcriptionStatus = status ;
838
840
this . eventEmitter . emit (
839
841
XMPPEvents . TRANSCRIPTION_STATUS_CHANGED ,
840
- status
842
+ status ,
843
+ Strophe . getResourceFromJid ( from )
841
844
) ;
842
845
}
843
846
844
-
845
847
break ;
846
848
}
847
849
case 'call-control' : {
@@ -1138,6 +1140,18 @@ export default class ChatRoom extends Listenable {
1138
1140
1139
1141
// In this case we *do* fire MUC_MEMBER_LEFT for the focus?
1140
1142
this . eventEmitter . emit ( XMPPEvents . MUC_MEMBER_LEFT , from , reason ) ;
1143
+
1144
+ if ( member && member . isHiddenDomain && member . features . has ( FEATURE_TRANSCRIBER )
1145
+ && this . transcriptionStatus !== JitsiTranscriptionStatus . OFF ) {
1146
+ this . transcriptionStatus = JitsiTranscriptionStatus . OFF ;
1147
+ this . eventEmitter . emit (
1148
+ XMPPEvents . TRANSCRIPTION_STATUS_CHANGED ,
1149
+ this . transcriptionStatus ,
1150
+ Strophe . getResourceFromJid ( from ) ,
1151
+ true /* exited abruptly */
1152
+ ) ;
1153
+ }
1154
+
1141
1155
if ( member ?. isFocus ) {
1142
1156
logger . info ( 'Focus has left the room - leaving conference' ) ;
1143
1157
this . eventEmitter . emit ( XMPPEvents . FOCUS_LEFT ) ;
0 commit comments