diff --git a/openvidu-browser/src/OpenVidu/Session.ts b/openvidu-browser/src/OpenVidu/Session.ts index 4ad732cd..7833013c 100644 --- a/openvidu-browser/src/OpenVidu/Session.ts +++ b/openvidu-browser/src/OpenVidu/Session.ts @@ -651,12 +651,13 @@ export class Session extends EventDispatcher { * @returns A Promise (to which you can optionally subscribe to) that is resolved if the speech-to-text subscription * was successful and rejected with an Error object if not. */ - subscribeToSpeechToText(stream: Stream): Promise { + subscribeToSpeechToText(stream: Stream, lang: string): Promise { return new Promise((resolve, reject) => { this.openvidu.sendRequest( 'subscribeToSpeechToText', { - connectionIds: [stream.connection.connectionId] + connectionIds: [stream.connection.connectionId], + lang }, (error, response) => { if (!!error) { @@ -1318,9 +1319,18 @@ export class Session extends EventDispatcher { /** * @hidden */ - async onSpeechToTextMessage(event: { streamId: string; connectionId: string; sessionId: string, text: string, reason: string, raw: string }): Promise { + async onSpeechToTextMessage(event: { + timestamp?: Date; + streamId: string; + connectionId: string; + sessionId: string; + text: string; + reason: string; + raw: string; + lang: string; + }): Promise { const connection = await this.getConnection(event.connectionId, 'No connection found for connectionId ' + event.connectionId); - const ev = new SpeechToTextEvent(this, connection, event.text, event.reason.toLowerCase(), event.raw); + const ev = new SpeechToTextEvent(this, connection, event.text, (event.reason).toLowerCase(), event.raw, event.lang); this.ee.emitEvent('speechToTextMessage', [ev]); } diff --git a/openvidu-browser/src/OpenViduInternal/Events/SpeechToTextEvent.ts b/openvidu-browser/src/OpenViduInternal/Events/SpeechToTextEvent.ts index 52cfe8d9..52c1e688 100644 --- a/openvidu-browser/src/OpenViduInternal/Events/SpeechToTextEvent.ts +++ b/openvidu-browser/src/OpenViduInternal/Events/SpeechToTextEvent.ts @@ -45,15 +45,22 @@ export class SpeechToTextEvent extends Event { */ raw: string; + /** + * Language ISO 639-1 code of the recognized text. This will be the same as the language provided + * in method [[Session.subscribeToSpeechToText]] method + */ + lang: string; + /** * @hidden */ - constructor(target: Session, connection: Connection, text: string, reason: 'recognizing' | 'recognized', raw: string) { + constructor(target: Session, connection: Connection, text: string, reason: 'recognizing' | 'recognized', raw: string, lang: string) { super(false, target, 'speechToTextMessage'); this.connection = connection; this.text = text; this.reason = reason; this.raw = raw; + this.lang = lang; } /** diff --git a/openvidu-client/src/main/java/io/openvidu/client/internal/ProtocolElements.java b/openvidu-client/src/main/java/io/openvidu/client/internal/ProtocolElements.java index 35452918..b75f7bde 100644 --- a/openvidu-client/src/main/java/io/openvidu/client/internal/ProtocolElements.java +++ b/openvidu-client/src/main/java/io/openvidu/client/internal/ProtocolElements.java @@ -24,220 +24,221 @@ package io.openvidu.client.internal; */ public class ProtocolElements { - // ---------------------------- CLIENT REQUESTS ----------------------- + // ---------------------------- CLIENT REQUESTS ----------------------- - public static final String SENDMESSAGE_ROOM_METHOD = "sendMessage"; - public static final String SENDMESSAGE_MESSAGE_PARAM = "message"; + public static final String SENDMESSAGE_ROOM_METHOD = "sendMessage"; + public static final String SENDMESSAGE_MESSAGE_PARAM = "message"; - public static final String LEAVEROOM_METHOD = "leaveRoom"; + public static final String LEAVEROOM_METHOD = "leaveRoom"; - public static final String JOINROOM_METHOD = "joinRoom"; - public static final String JOINROOM_USER_PARAM = "user"; - public static final String JOINROOM_TOKEN_PARAM = "token"; - public static final String JOINROOM_ROOM_PARAM = "session"; - public static final String JOINROOM_METADATA_PARAM = "metadata"; - public static final String JOINROOM_SECRET_PARAM = "secret"; - public static final String JOINROOM_PLATFORM_PARAM = "platform"; - public static final String JOINROOM_SDKVERSION_PARAM = "sdkVersion"; - public static final String JOINROOM_RECORDER_PARAM = "recorder"; - public static final String JOINROOM_STT_PARAM = "stt"; + public static final String JOINROOM_METHOD = "joinRoom"; + public static final String JOINROOM_USER_PARAM = "user"; + public static final String JOINROOM_TOKEN_PARAM = "token"; + public static final String JOINROOM_ROOM_PARAM = "session"; + public static final String JOINROOM_METADATA_PARAM = "metadata"; + public static final String JOINROOM_SECRET_PARAM = "secret"; + public static final String JOINROOM_PLATFORM_PARAM = "platform"; + public static final String JOINROOM_SDKVERSION_PARAM = "sdkVersion"; + public static final String JOINROOM_RECORDER_PARAM = "recorder"; + public static final String JOINROOM_STT_PARAM = "stt"; - public static final String JOINROOM_PEERID_PARAM = "id"; - public static final String JOINROOM_PEERCREATEDAT_PARAM = "createdAt"; - public static final String JOINROOM_PEERSTREAMS_PARAM = "streams"; - public static final String JOINROOM_PEERSTREAMID_PARAM = "id"; - public static final String JOINROOM_PEERSTREAMHASAUDIO_PARAM = "hasAudio"; - public static final String JOINROOM_PEERSTREAMHASVIDEO_PARAM = "hasVideo"; - public static final String JOINROOM_PEERSTREAMAUDIOACTIVE_PARAM = "audioActive"; - public static final String JOINROOM_PEERSTREAMVIDEOACTIVE_PARAM = "videoActive"; - public static final String JOINROOM_PEERSTREAMTYPEOFVIDEO_PARAM = "typeOfVideo"; - public static final String JOINROOM_PEERSTREAMFRAMERATE_PARAM = "frameRate"; - public static final String JOINROOM_PEERSTREAMVIDEODIMENSIONS_PARAM = "videoDimensions"; - public static final String JOINROOM_PEERSTREAMFILTER_PARAM = "filter"; + public static final String JOINROOM_PEERID_PARAM = "id"; + public static final String JOINROOM_PEERCREATEDAT_PARAM = "createdAt"; + public static final String JOINROOM_PEERSTREAMS_PARAM = "streams"; + public static final String JOINROOM_PEERSTREAMID_PARAM = "id"; + public static final String JOINROOM_PEERSTREAMHASAUDIO_PARAM = "hasAudio"; + public static final String JOINROOM_PEERSTREAMHASVIDEO_PARAM = "hasVideo"; + public static final String JOINROOM_PEERSTREAMAUDIOACTIVE_PARAM = "audioActive"; + public static final String JOINROOM_PEERSTREAMVIDEOACTIVE_PARAM = "videoActive"; + public static final String JOINROOM_PEERSTREAMTYPEOFVIDEO_PARAM = "typeOfVideo"; + public static final String JOINROOM_PEERSTREAMFRAMERATE_PARAM = "frameRate"; + public static final String JOINROOM_PEERSTREAMVIDEODIMENSIONS_PARAM = "videoDimensions"; + public static final String JOINROOM_PEERSTREAMFILTER_PARAM = "filter"; - public static final String PUBLISHVIDEO_METHOD = "publishVideo"; - public static final String PUBLISHVIDEO_SDPOFFER_PARAM = "sdpOffer"; - public static final String PUBLISHVIDEO_DOLOOPBACK_PARAM = "doLoopback"; - public static final String PUBLISHVIDEO_SDPANSWER_PARAM = "sdpAnswer"; - public static final String PUBLISHVIDEO_STREAMID_PARAM = "id"; - public static final String PUBLISHVIDEO_CREATEDAT_PARAM = "createdAt"; - public static final String PUBLISHVIDEO_HASAUDIO_PARAM = "hasAudio"; - public static final String PUBLISHVIDEO_HASVIDEO_PARAM = "hasVideo"; - public static final String PUBLISHVIDEO_AUDIOACTIVE_PARAM = "audioActive"; - public static final String PUBLISHVIDEO_VIDEOACTIVE_PARAM = "videoActive"; - public static final String PUBLISHVIDEO_TYPEOFVIDEO_PARAM = "typeOfVideo"; - public static final String PUBLISHVIDEO_FRAMERATE_PARAM = "frameRate"; - public static final String PUBLISHVIDEO_VIDEODIMENSIONS_PARAM = "videoDimensions"; - public static final String PUBLISHVIDEO_KURENTOFILTER_PARAM = "filter"; + public static final String PUBLISHVIDEO_METHOD = "publishVideo"; + public static final String PUBLISHVIDEO_SDPOFFER_PARAM = "sdpOffer"; + public static final String PUBLISHVIDEO_DOLOOPBACK_PARAM = "doLoopback"; + public static final String PUBLISHVIDEO_SDPANSWER_PARAM = "sdpAnswer"; + public static final String PUBLISHVIDEO_STREAMID_PARAM = "id"; + public static final String PUBLISHVIDEO_CREATEDAT_PARAM = "createdAt"; + public static final String PUBLISHVIDEO_HASAUDIO_PARAM = "hasAudio"; + public static final String PUBLISHVIDEO_HASVIDEO_PARAM = "hasVideo"; + public static final String PUBLISHVIDEO_AUDIOACTIVE_PARAM = "audioActive"; + public static final String PUBLISHVIDEO_VIDEOACTIVE_PARAM = "videoActive"; + public static final String PUBLISHVIDEO_TYPEOFVIDEO_PARAM = "typeOfVideo"; + public static final String PUBLISHVIDEO_FRAMERATE_PARAM = "frameRate"; + public static final String PUBLISHVIDEO_VIDEODIMENSIONS_PARAM = "videoDimensions"; + public static final String PUBLISHVIDEO_KURENTOFILTER_PARAM = "filter"; - public static final String UNPUBLISHVIDEO_METHOD = "unpublishVideo"; + public static final String UNPUBLISHVIDEO_METHOD = "unpublishVideo"; - public static final String PREPARERECEIVEVIDEO_METHOD = "prepareReceiveVideoFrom"; - public static final String PREPARERECEIVEVIDEO_SDPOFFER_PARAM = "sdpOffer"; - public static final String PREPARERECEIVEVIDEO_RECONNECT_PARAM = "reconnect"; + public static final String PREPARERECEIVEVIDEO_METHOD = "prepareReceiveVideoFrom"; + public static final String PREPARERECEIVEVIDEO_SDPOFFER_PARAM = "sdpOffer"; + public static final String PREPARERECEIVEVIDEO_RECONNECT_PARAM = "reconnect"; - public static final String RECEIVEVIDEO_METHOD = "receiveVideoFrom"; - public static final String RECEIVEVIDEO_SDPOFFER_PARAM = "sdpOffer"; - public static final String RECEIVEVIDEO_SENDER_PARAM = "sender"; - public static final String RECEIVEVIDEO_SDPANSWER_PARAM = "sdpAnswer"; + public static final String RECEIVEVIDEO_METHOD = "receiveVideoFrom"; + public static final String RECEIVEVIDEO_SDPOFFER_PARAM = "sdpOffer"; + public static final String RECEIVEVIDEO_SENDER_PARAM = "sender"; + public static final String RECEIVEVIDEO_SDPANSWER_PARAM = "sdpAnswer"; - public static final String UNSUBSCRIBEFROMVIDEO_METHOD = "unsubscribeFromVideo"; - public static final String UNSUBSCRIBEFROMVIDEO_SENDER_PARAM = "sender"; + public static final String UNSUBSCRIBEFROMVIDEO_METHOD = "unsubscribeFromVideo"; + public static final String UNSUBSCRIBEFROMVIDEO_SENDER_PARAM = "sender"; - public static final String ONICECANDIDATE_METHOD = "onIceCandidate"; - public static final String ONICECANDIDATE_EPNAME_PARAM = "endpointName"; - public static final String ONICECANDIDATE_CANDIDATE_PARAM = "candidate"; - public static final String ONICECANDIDATE_SDPMIDPARAM = "sdpMid"; - public static final String ONICECANDIDATE_SDPMLINEINDEX_PARAM = "sdpMLineIndex"; + public static final String ONICECANDIDATE_METHOD = "onIceCandidate"; + public static final String ONICECANDIDATE_EPNAME_PARAM = "endpointName"; + public static final String ONICECANDIDATE_CANDIDATE_PARAM = "candidate"; + public static final String ONICECANDIDATE_SDPMIDPARAM = "sdpMid"; + public static final String ONICECANDIDATE_SDPMLINEINDEX_PARAM = "sdpMLineIndex"; - public static final String CUSTOMREQUEST_METHOD = "customRequest"; + public static final String CUSTOMREQUEST_METHOD = "customRequest"; - public static final String STREAMPROPERTYCHANGED_METHOD = "streamPropertyChanged"; - public static final String STREAMPROPERTYCHANGED_CONNECTIONID_PARAM = "connectionId"; - public static final String STREAMPROPERTYCHANGED_STREAMID_PARAM = "streamId"; - public static final String STREAMPROPERTYCHANGED_PROPERTY_PARAM = "property"; - public static final String STREAMPROPERTYCHANGED_NEWVALUE_PARAM = "newValue"; - public static final String STREAMPROPERTYCHANGED_REASON_PARAM = "reason"; + public static final String STREAMPROPERTYCHANGED_METHOD = "streamPropertyChanged"; + public static final String STREAMPROPERTYCHANGED_CONNECTIONID_PARAM = "connectionId"; + public static final String STREAMPROPERTYCHANGED_STREAMID_PARAM = "streamId"; + public static final String STREAMPROPERTYCHANGED_PROPERTY_PARAM = "property"; + public static final String STREAMPROPERTYCHANGED_NEWVALUE_PARAM = "newValue"; + public static final String STREAMPROPERTYCHANGED_REASON_PARAM = "reason"; - public static final String CONNECTIONPERTYCHANGED_METHOD = "connectionPropertyChanged"; - public static final String CONNECTIONROPERTYCHANGED_PROPERTY_PARAM = "property"; - public static final String CONNECTIONPROPERTYCHANGED_NEWVALUE_PARAM = "newValue"; + public static final String CONNECTIONPERTYCHANGED_METHOD = "connectionPropertyChanged"; + public static final String CONNECTIONROPERTYCHANGED_PROPERTY_PARAM = "property"; + public static final String CONNECTIONPROPERTYCHANGED_NEWVALUE_PARAM = "newValue"; - public static final String NETWORKQUALITYLEVELCHANGED_METHOD = "networkQualityLevelChanged"; - public static final String NETWORKQUALITYCHANGED_CONNECTIONID_PARAM = "connectionId"; - public static final String NETWORKQUALITYCHANGED_NEWVALUE_PARAM = "newValue"; - public static final String NETWORKQUALITYCHANGED_OLDVALUE_PARAM = "oldValue"; + public static final String NETWORKQUALITYLEVELCHANGED_METHOD = "networkQualityLevelChanged"; + public static final String NETWORKQUALITYCHANGED_CONNECTIONID_PARAM = "connectionId"; + public static final String NETWORKQUALITYCHANGED_NEWVALUE_PARAM = "newValue"; + public static final String NETWORKQUALITYCHANGED_OLDVALUE_PARAM = "oldValue"; - public static final String FORCEDISCONNECT_METHOD = "forceDisconnect"; - public static final String FORCEDISCONNECT_CONNECTIONID_PARAM = "connectionId"; + public static final String FORCEDISCONNECT_METHOD = "forceDisconnect"; + public static final String FORCEDISCONNECT_CONNECTIONID_PARAM = "connectionId"; - public static final String FORCEUNPUBLISH_METHOD = "forceUnpublish"; - public static final String FORCEUNPUBLISH_STREAMID_PARAM = "streamId"; + public static final String FORCEUNPUBLISH_METHOD = "forceUnpublish"; + public static final String FORCEUNPUBLISH_STREAMID_PARAM = "streamId"; - public static final String APPLYFILTER_METHOD = "applyFilter"; - public static final String FILTER_STREAMID_PARAM = "streamId"; - public static final String FILTER_TYPE_PARAM = "type"; - public static final String FILTER_OPTIONS_PARAM = "options"; - public static final String FILTER_METHOD_PARAM = "method"; - public static final String FILTER_PARAMS_PARAM = "params"; - public static final String EXECFILTERMETHOD_METHOD = "execFilterMethod"; - public static final String EXECFILTERMETHOD_LASTEXECMETHOD_PARAM = "lastExecMethod"; - public static final String REMOVEFILTER_METHOD = "removeFilter"; - public static final String ADDFILTEREVENTLISTENER_METHOD = "addFilterEventListener"; - public static final String REMOVEFILTEREVENTLISTENER_METHOD = "removeFilterEventListener"; + public static final String APPLYFILTER_METHOD = "applyFilter"; + public static final String FILTER_STREAMID_PARAM = "streamId"; + public static final String FILTER_TYPE_PARAM = "type"; + public static final String FILTER_OPTIONS_PARAM = "options"; + public static final String FILTER_METHOD_PARAM = "method"; + public static final String FILTER_PARAMS_PARAM = "params"; + public static final String EXECFILTERMETHOD_METHOD = "execFilterMethod"; + public static final String EXECFILTERMETHOD_LASTEXECMETHOD_PARAM = "lastExecMethod"; + public static final String REMOVEFILTER_METHOD = "removeFilter"; + public static final String ADDFILTEREVENTLISTENER_METHOD = "addFilterEventListener"; + public static final String REMOVEFILTEREVENTLISTENER_METHOD = "removeFilterEventListener"; - public static final String FILTEREVENTDISPATCHED_METHOD = "filterEventDispatched"; - public static final String FILTEREVENTLISTENER_CONNECTIONID_PARAM = "connectionId"; - public static final String FILTEREVENTLISTENER_STREAMID_PARAM = "streamId"; - public static final String FILTEREVENTLISTENER_FILTERTYPE_PARAM = "filterType"; - public static final String FILTEREVENTLISTENER_EVENTTYPE_PARAM = "eventType"; - public static final String FILTEREVENTLISTENER_DATA_PARAM = "data"; + public static final String FILTEREVENTDISPATCHED_METHOD = "filterEventDispatched"; + public static final String FILTEREVENTLISTENER_CONNECTIONID_PARAM = "connectionId"; + public static final String FILTEREVENTLISTENER_STREAMID_PARAM = "streamId"; + public static final String FILTEREVENTLISTENER_FILTERTYPE_PARAM = "filterType"; + public static final String FILTEREVENTLISTENER_EVENTTYPE_PARAM = "eventType"; + public static final String FILTEREVENTLISTENER_DATA_PARAM = "data"; - public static final String RECONNECTSTREAM_METHOD = "reconnectStream"; - public static final String RECONNECTSTREAM_STREAM_PARAM = "stream"; - public static final String RECONNECTSTREAM_SDPSTRING_PARAM = "sdpString"; - public static final String RECONNECTSTREAM_FORCIBLYRECONNECT_PARAM = "forciblyReconnect"; - public static final String RECONNECTSTREAM_SDPOFFER_PARAM = "sdpOffer"; + public static final String RECONNECTSTREAM_METHOD = "reconnectStream"; + public static final String RECONNECTSTREAM_STREAM_PARAM = "stream"; + public static final String RECONNECTSTREAM_SDPSTRING_PARAM = "sdpString"; + public static final String RECONNECTSTREAM_FORCIBLYRECONNECT_PARAM = "forciblyReconnect"; + public static final String RECONNECTSTREAM_SDPOFFER_PARAM = "sdpOffer"; - public static final String VIDEODATA_METHOD = "videoData"; + public static final String VIDEODATA_METHOD = "videoData"; - public static final String ECHO_METHOD = "echo"; + public static final String ECHO_METHOD = "echo"; - public static final String FORCIBLYRECONNECTSUBSCRIBER_METHOD = "forciblyReconnectSubscriber"; - public static final String FORCIBLYRECONNECTSUBSCRIBER_CONNECTIONID_PARAM = "connectionId"; - public static final String FORCIBLYRECONNECTSUBSCRIBER_STREAMID_PARAM = "streamId"; - public static final String FORCIBLYRECONNECTSUBSCRIBER_SDPOFFER_PARAM = "sdpOffer"; + public static final String FORCIBLYRECONNECTSUBSCRIBER_METHOD = "forciblyReconnectSubscriber"; + public static final String FORCIBLYRECONNECTSUBSCRIBER_CONNECTIONID_PARAM = "connectionId"; + public static final String FORCIBLYRECONNECTSUBSCRIBER_STREAMID_PARAM = "streamId"; + public static final String FORCIBLYRECONNECTSUBSCRIBER_SDPOFFER_PARAM = "sdpOffer"; - public static final String SUBSCRIBETOSPEECHTOTEXT_METHOD = "subscribeToSpeechToText"; - public static final String SUBSCRIBETOSPEECHTOTEXT_CONNECTIONIDS_PARAM = "connectionIds"; + public static final String SUBSCRIBETOSPEECHTOTEXT_METHOD = "subscribeToSpeechToText"; + public static final String SUBSCRIBETOSPEECHTOTEXT_CONNECTIONIDS_PARAM = "connectionIds"; + public static final String SUBSCRIBETOSPEECHTOTEXT_LANG_PARAM = "lang"; - public static final String UNSUBSCRIBEFROMSPEECHTOTEXT_METHOD = "unsubscribeFromSpeechToText"; - public static final String UNSUBSCRIBEFROMSPEECHTOTEXT_CONNECTIONIDS_PARAM = "connectionIds"; + public static final String UNSUBSCRIBEFROMSPEECHTOTEXT_METHOD = "unsubscribeFromSpeechToText"; + public static final String UNSUBSCRIBEFROMSPEECHTOTEXT_CONNECTIONIDS_PARAM = "connectionIds"; - // ---------------------------- SERVER RESPONSES & EVENTS ----------------- + // ---------------------------- SERVER RESPONSES & EVENTS ----------------- - public static final String PARTICIPANTJOINED_METHOD = "participantJoined"; - public static final String PARTICIPANTJOINED_USER_PARAM = "id"; - public static final String PARTICIPANTJOINED_FINALUSERID_PARAM = "finalUserId"; - public static final String PARTICIPANTJOINED_CREATEDAT_PARAM = "createdAt"; - public static final String PARTICIPANTJOINED_METADATA_PARAM = "metadata"; - public static final String PARTICIPANTJOINED_VALUE_PARAM = "value"; - public static final String PARTICIPANTJOINED_SESSION_PARAM = "session"; - public static final String PARTICIPANTJOINED_VERSION_PARAM = "version"; - public static final String PARTICIPANTJOINED_MEDIASERVER_PARAM = "mediaServer"; - public static final String PARTICIPANTJOINED_SIMULCAST_PARAM = "videoSimulcast"; - public static final String PARTICIPANTJOINED_RECORD_PARAM = "record"; - public static final String PARTICIPANTJOINED_ROLE_PARAM = "role"; - public static final String PARTICIPANTJOINED_COTURNIP_PARAM = "coturnIp"; - public static final String PARTICIPANTJOINED_COTURNPORT_PARAM = "coturnPort"; - public static final String PARTICIPANTJOINED_CUSTOM_ICE_SERVERS = "customIceServers"; - public static final String PARTICIPANTJOINED_TURNUSERNAME_PARAM = "turnUsername"; - public static final String PARTICIPANTJOINED_TURNCREDENTIAL_PARAM = "turnCredential"; - public static final String PARTICIPANTJOINED_RECORDINGID_PARAM = "recordingId"; - public static final String PARTICIPANTJOINED_RECORDINGNAME_PARAM = "recordingName"; + public static final String PARTICIPANTJOINED_METHOD = "participantJoined"; + public static final String PARTICIPANTJOINED_USER_PARAM = "id"; + public static final String PARTICIPANTJOINED_FINALUSERID_PARAM = "finalUserId"; + public static final String PARTICIPANTJOINED_CREATEDAT_PARAM = "createdAt"; + public static final String PARTICIPANTJOINED_METADATA_PARAM = "metadata"; + public static final String PARTICIPANTJOINED_VALUE_PARAM = "value"; + public static final String PARTICIPANTJOINED_SESSION_PARAM = "session"; + public static final String PARTICIPANTJOINED_VERSION_PARAM = "version"; + public static final String PARTICIPANTJOINED_MEDIASERVER_PARAM = "mediaServer"; + public static final String PARTICIPANTJOINED_SIMULCAST_PARAM = "videoSimulcast"; + public static final String PARTICIPANTJOINED_RECORD_PARAM = "record"; + public static final String PARTICIPANTJOINED_ROLE_PARAM = "role"; + public static final String PARTICIPANTJOINED_COTURNIP_PARAM = "coturnIp"; + public static final String PARTICIPANTJOINED_COTURNPORT_PARAM = "coturnPort"; + public static final String PARTICIPANTJOINED_CUSTOM_ICE_SERVERS = "customIceServers"; + public static final String PARTICIPANTJOINED_TURNUSERNAME_PARAM = "turnUsername"; + public static final String PARTICIPANTJOINED_TURNCREDENTIAL_PARAM = "turnCredential"; + public static final String PARTICIPANTJOINED_RECORDINGID_PARAM = "recordingId"; + public static final String PARTICIPANTJOINED_RECORDINGNAME_PARAM = "recordingName"; - public static final String PARTICIPANTLEFT_METHOD = "participantLeft"; - public static final String PARTICIPANTLEFT_NAME_PARAM = "connectionId"; - public static final String PARTICIPANTLEFT_REASON_PARAM = "reason"; + public static final String PARTICIPANTLEFT_METHOD = "participantLeft"; + public static final String PARTICIPANTLEFT_NAME_PARAM = "connectionId"; + public static final String PARTICIPANTLEFT_REASON_PARAM = "reason"; - public static final String PARTICIPANTEVICTED_METHOD = "participantEvicted"; - public static final String PARTICIPANTEVICTED_CONNECTIONID_PARAM = "connectionId"; - public static final String PARTICIPANTEVICTED_REASON_PARAM = "reason"; + public static final String PARTICIPANTEVICTED_METHOD = "participantEvicted"; + public static final String PARTICIPANTEVICTED_CONNECTIONID_PARAM = "connectionId"; + public static final String PARTICIPANTEVICTED_REASON_PARAM = "reason"; - public static final String PARTICIPANTPUBLISHED_METHOD = "participantPublished"; - public static final String PARTICIPANTPUBLISHED_USER_PARAM = "id"; - public static final String PARTICIPANTPUBLISHED_STREAMS_PARAM = "streams"; - public static final String PARTICIPANTPUBLISHED_STREAMID_PARAM = "id"; - public static final String PARTICIPANTPUBLISHED_CREATEDAT_PARAM = "createdAt"; - public static final String PARTICIPANTPUBLISHED_HASAUDIO_PARAM = "hasAudio"; - public static final String PARTICIPANTPUBLISHED_HASVIDEO_PARAM = "hasVideo"; - public static final String PARTICIPANTPUBLISHED_AUDIOACTIVE_PARAM = "audioActive"; - public static final String PARTICIPANTPUBLISHED_VIDEOACTIVE_PARAM = "videoActive"; - public static final String PARTICIPANTPUBLISHED_TYPEOFVIDEO_PARAM = "typeOfVideo"; - public static final String PARTICIPANTPUBLISHED_FRAMERATE_PARAM = "frameRate"; - public static final String PARTICIPANTPUBLISHED_VIDEODIMENSIONS_PARAM = "videoDimensions"; - public static final String PARTICIPANTPUBLISHED_FILTER_PARAM = "filter"; + public static final String PARTICIPANTPUBLISHED_METHOD = "participantPublished"; + public static final String PARTICIPANTPUBLISHED_USER_PARAM = "id"; + public static final String PARTICIPANTPUBLISHED_STREAMS_PARAM = "streams"; + public static final String PARTICIPANTPUBLISHED_STREAMID_PARAM = "id"; + public static final String PARTICIPANTPUBLISHED_CREATEDAT_PARAM = "createdAt"; + public static final String PARTICIPANTPUBLISHED_HASAUDIO_PARAM = "hasAudio"; + public static final String PARTICIPANTPUBLISHED_HASVIDEO_PARAM = "hasVideo"; + public static final String PARTICIPANTPUBLISHED_AUDIOACTIVE_PARAM = "audioActive"; + public static final String PARTICIPANTPUBLISHED_VIDEOACTIVE_PARAM = "videoActive"; + public static final String PARTICIPANTPUBLISHED_TYPEOFVIDEO_PARAM = "typeOfVideo"; + public static final String PARTICIPANTPUBLISHED_FRAMERATE_PARAM = "frameRate"; + public static final String PARTICIPANTPUBLISHED_VIDEODIMENSIONS_PARAM = "videoDimensions"; + public static final String PARTICIPANTPUBLISHED_FILTER_PARAM = "filter"; - public static final String PARTICIPANTUNPUBLISHED_METHOD = "participantUnpublished"; - public static final String PARTICIPANTUNPUBLISHED_NAME_PARAM = "connectionId"; - public static final String PARTICIPANTUNPUBLISHED_REASON_PARAM = "reason"; + public static final String PARTICIPANTUNPUBLISHED_METHOD = "participantUnpublished"; + public static final String PARTICIPANTUNPUBLISHED_NAME_PARAM = "connectionId"; + public static final String PARTICIPANTUNPUBLISHED_REASON_PARAM = "reason"; - public static final String PARTICIPANTSENDMESSAGE_METHOD = "sendMessage"; - public static final String PARTICIPANTSENDMESSAGE_DATA_PARAM = "data"; - public static final String PARTICIPANTSENDMESSAGE_FROM_PARAM = "from"; - public static final String PARTICIPANTSENDMESSAGE_TYPE_PARAM = "type"; + public static final String PARTICIPANTSENDMESSAGE_METHOD = "sendMessage"; + public static final String PARTICIPANTSENDMESSAGE_DATA_PARAM = "data"; + public static final String PARTICIPANTSENDMESSAGE_FROM_PARAM = "from"; + public static final String PARTICIPANTSENDMESSAGE_TYPE_PARAM = "type"; - public static final String ROOMCLOSED_METHOD = "roomClosed"; - public static final String ROOMCLOSED_ROOM_PARAM = "sessionId"; + public static final String ROOMCLOSED_METHOD = "roomClosed"; + public static final String ROOMCLOSED_ROOM_PARAM = "sessionId"; - public static final String MEDIAERROR_METHOD = "mediaError"; - public static final String MEDIAERROR_ERROR_PARAM = "error"; + public static final String MEDIAERROR_METHOD = "mediaError"; + public static final String MEDIAERROR_ERROR_PARAM = "error"; - public static final String ICECANDIDATE_METHOD = "iceCandidate"; - public static final String ICECANDIDATE_SENDERCONNECTIONID_PARAM = "senderConnectionId"; - public static final String ICECANDIDATE_EPNAME_PARAM = "endpointName"; - public static final String ICECANDIDATE_CANDIDATE_PARAM = "candidate"; - public static final String ICECANDIDATE_SDPMID_PARAM = "sdpMid"; - public static final String ICECANDIDATE_SDPMLINEINDEX_PARAM = "sdpMLineIndex"; + public static final String ICECANDIDATE_METHOD = "iceCandidate"; + public static final String ICECANDIDATE_SENDERCONNECTIONID_PARAM = "senderConnectionId"; + public static final String ICECANDIDATE_EPNAME_PARAM = "endpointName"; + public static final String ICECANDIDATE_CANDIDATE_PARAM = "candidate"; + public static final String ICECANDIDATE_SDPMID_PARAM = "sdpMid"; + public static final String ICECANDIDATE_SDPMLINEINDEX_PARAM = "sdpMLineIndex"; - public static final String RECORDINGSTARTED_METHOD = "recordingStarted"; - public static final String RECORDINGSTARTED_ID_PARAM = "id"; - public static final String RECORDINGSTARTED_NAME_PARAM = "name"; - public static final String RECORDINGSTOPPED_REASON_PARAM = "reason"; + public static final String RECORDINGSTARTED_METHOD = "recordingStarted"; + public static final String RECORDINGSTARTED_ID_PARAM = "id"; + public static final String RECORDINGSTARTED_NAME_PARAM = "name"; + public static final String RECORDINGSTOPPED_REASON_PARAM = "reason"; - public static final String RECORDINGSTOPPED_METHOD = "recordingStopped"; - public static final String RECORDINGSTOPPED_ID_PARAM = "id"; + public static final String RECORDINGSTOPPED_METHOD = "recordingStopped"; + public static final String RECORDINGSTOPPED_ID_PARAM = "id"; - public static final String SPEECHTOTEXTMESSAGE_METHOD = "speechToTextMessage"; - public static final String SPEECHTOTEXTMESSAGE_TIMESTAMP_PARAM = "timestamp"; - public static final String SPEECHTOTEXTMESSAGE_SESSIONID_PARAM = "sessionId"; - public static final String SPEECHTOTEXTMESSAGE_CONNECTIONID_PARAM = "connectionId"; - public static final String SPEECHTOTEXTMESSAGE_TEXT_PARAM = "text"; - public static final String SPEECHTOTEXTMESSAGE_REASON_PARAM = "reason"; - public static final String SPEECHTOTEXTMESSAGE_RAW_PARAM = "raw"; + public static final String SPEECHTOTEXTMESSAGE_METHOD = "speechToTextMessage"; + public static final String SPEECHTOTEXTMESSAGE_TIMESTAMP_PARAM = "timestamp"; + public static final String SPEECHTOTEXTMESSAGE_SESSIONID_PARAM = "sessionId"; + public static final String SPEECHTOTEXTMESSAGE_CONNECTIONID_PARAM = "connectionId"; + public static final String SPEECHTOTEXTMESSAGE_TEXT_PARAM = "text"; + public static final String SPEECHTOTEXTMESSAGE_REASON_PARAM = "reason"; + public static final String SPEECHTOTEXTMESSAGE_RAW_PARAM = "raw"; - public static final String CUSTOM_NOTIFICATION = "customNotification"; + public static final String CUSTOM_NOTIFICATION = "customNotification"; - public static final String RECORDER_PARTICIPANT_PUBLICID = "RECORDER"; - public static final String STT_PARTICIPANT_PUBLICID = "SPEECH_TO_TEXT"; + public static final String RECORDER_PARTICIPANT_PUBLICID = "RECORDER"; + public static final String STT_PARTICIPANT_PUBLICID = "SPEECH_TO_TEXT"; } diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java index 6e916f8b..570e52f0 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/SessionManager.java @@ -188,7 +188,7 @@ public abstract class SessionManager { public abstract void onVideoData(Participant participant, Integer transactionId, Integer height, Integer width, Boolean videoActive, Boolean audioActive); - public abstract void onSubscribeToSpeechToText(Participant participant, Integer transactionId, + public abstract void onSubscribeToSpeechToText(Participant participant, Integer transactionId, String lang, JsonArray connectionIds); public abstract void onUnsubscribeFromSpeechToText(Participant participant, Integer transactionId, diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java index 30793d33..44c42b57 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java @@ -1201,7 +1201,7 @@ public class KurentoSessionManager extends SessionManager { } @Override - public void onSubscribeToSpeechToText(Participant participant, Integer transactionId, JsonArray connectionIds) { + public void onSubscribeToSpeechToText(Participant participant, Integer transactionId, String lang, JsonArray connectionIds) { sessionEventsHandler.onUnsubscribeToSpeechToText(participant, transactionId, new OpenViduException( Code.WRONG_OPENVIDU_EDITION, "Speech To text requires OpenVidu Pro/Enterprise edition")); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java index f13d860f..47636aa1 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java @@ -735,7 +735,8 @@ public class RpcHandler extends DefaultJsonRpcHandler { Participant participant = sanityCheckOfSession(rpcConnection, "subscribeToSpeechToText"); JsonArray connectionIds = (JsonArray) RpcHandler.getParam(request, ProtocolElements.SUBSCRIBETOSPEECHTOTEXT_CONNECTIONIDS_PARAM); - sessionManager.onSubscribeToSpeechToText(participant, request.getId(), connectionIds); + String lang = RpcHandler.getStringParam(request, ProtocolElements.SUBSCRIBETOSPEECHTOTEXT_LANG_PARAM); + sessionManager.onSubscribeToSpeechToText(participant, request.getId(), lang, connectionIds); } private void unsubscribeFromSpeechToText(RpcConnection rpcConnection, Request request) {