2017-10-12 10:00:28 +08:00
|
|
|
import Users from '/imports/api/users';
|
2017-04-19 23:01:28 +08:00
|
|
|
import Auth from '/imports/ui/services/auth';
|
2017-10-13 03:22:10 +08:00
|
|
|
import AudioManager from '/imports/ui/services/audio-manager';
|
2017-10-12 10:00:28 +08:00
|
|
|
import Meetings from '/imports/api/meetings';
|
2017-11-17 19:52:48 +08:00
|
|
|
import VoiceUsers from '/imports/api/voice-users';
|
2017-03-28 22:02:23 +08:00
|
|
|
|
2017-10-19 03:40:01 +08:00
|
|
|
const init = (messages) => {
|
2017-11-18 03:01:52 +08:00
|
|
|
if (AudioManager.initialized) return;
|
2017-10-12 20:50:23 +08:00
|
|
|
const meetingId = Auth.meetingID;
|
2017-04-19 23:01:28 +08:00
|
|
|
const userId = Auth.userID;
|
2017-09-29 21:38:10 +08:00
|
|
|
const sessionToken = Auth.sessionToken;
|
2017-04-19 23:01:28 +08:00
|
|
|
const User = Users.findOne({ userId });
|
2017-07-26 22:31:35 +08:00
|
|
|
const username = User.name;
|
2017-07-18 22:59:05 +08:00
|
|
|
const Meeting = Meetings.findOne({ meetingId: User.meetingId });
|
|
|
|
const voiceBridge = Meeting.voiceProp.voiceConf;
|
2017-04-19 23:01:28 +08:00
|
|
|
|
2017-07-13 02:51:29 +08:00
|
|
|
// FIX ME
|
2017-07-18 22:59:05 +08:00
|
|
|
const microphoneLockEnforced = false;
|
2017-04-19 22:59:57 +08:00
|
|
|
|
2017-04-19 23:01:28 +08:00
|
|
|
const userData = {
|
2017-10-12 20:50:23 +08:00
|
|
|
meetingId,
|
2017-04-19 23:01:28 +08:00
|
|
|
userId,
|
2017-09-29 21:38:10 +08:00
|
|
|
sessionToken,
|
2017-04-19 23:01:28 +08:00
|
|
|
username,
|
|
|
|
voiceBridge,
|
2017-05-04 04:12:47 +08:00
|
|
|
microphoneLockEnforced,
|
2017-04-19 23:01:28 +08:00
|
|
|
};
|
|
|
|
|
2017-10-19 03:40:01 +08:00
|
|
|
AudioManager.init(userData, messages);
|
2017-04-19 23:01:28 +08:00
|
|
|
};
|
2017-04-19 22:59:57 +08:00
|
|
|
|
2017-11-17 19:52:48 +08:00
|
|
|
const isVoiceUserTalking = () =>
|
|
|
|
VoiceUsers.findOne({ intId: Auth.userID }).talking;
|
|
|
|
|
2017-05-03 01:18:01 +08:00
|
|
|
export default {
|
2017-04-19 22:59:57 +08:00
|
|
|
init,
|
2017-09-20 01:47:57 +08:00
|
|
|
exitAudio: () => AudioManager.exitAudio(),
|
2017-10-12 20:50:23 +08:00
|
|
|
transferCall: () => AudioManager.transferCall(),
|
2017-09-29 21:38:10 +08:00
|
|
|
joinListenOnly: () => AudioManager.joinAudio({ isListenOnly: true }),
|
2017-09-20 01:47:57 +08:00
|
|
|
joinMicrophone: () => AudioManager.joinAudio(),
|
2017-09-29 21:38:10 +08:00
|
|
|
joinEchoTest: () => AudioManager.joinAudio({ isEchoTest: true }),
|
2017-09-20 01:47:57 +08:00
|
|
|
toggleMuteMicrophone: () => AudioManager.toggleMuteMicrophone(),
|
2017-10-11 02:03:29 +08:00
|
|
|
changeInputDevice: inputDeviceId => AudioManager.changeInputDevice(inputDeviceId),
|
|
|
|
changeOutputDevice: outputDeviceId => AudioManager.changeOutputDevice(outputDeviceId),
|
2017-09-20 01:47:57 +08:00
|
|
|
isConnected: () => AudioManager.isConnected,
|
2017-11-17 19:52:48 +08:00
|
|
|
isTalking: () => isVoiceUserTalking(),
|
2017-10-27 01:14:56 +08:00
|
|
|
isHangingUp: () => AudioManager.isHangingUp,
|
2017-11-09 02:41:15 +08:00
|
|
|
isWaitingPermissions: () => AudioManager.isWaitingPermissions,
|
2017-09-20 01:47:57 +08:00
|
|
|
isMuted: () => AudioManager.isMuted,
|
|
|
|
isConnecting: () => AudioManager.isConnecting,
|
|
|
|
isListenOnly: () => AudioManager.isListenOnly,
|
|
|
|
inputDeviceId: () => AudioManager.inputDeviceId,
|
|
|
|
outputDeviceId: () => AudioManager.outputDeviceId,
|
2017-09-29 21:38:10 +08:00
|
|
|
isEchoTest: () => AudioManager.isEchoTest,
|
2017-10-11 20:05:57 +08:00
|
|
|
error: () => AudioManager.error,
|
2017-09-29 21:42:08 +08:00
|
|
|
};
|