Relocate global audio helpers (WebRTC)
This commit is contained in:
parent
14884200a5
commit
8a9a380792
@ -377,52 +377,6 @@ Handlebars.registerHelper "getPollQuestions", ->
|
|||||||
toggleRightDrawer()
|
toggleRightDrawer()
|
||||||
toggleRightArrowClockwise()
|
toggleRightArrowClockwise()
|
||||||
|
|
||||||
# Periodically check the status of the WebRTC call, when a call has been established attempt to hangup,
|
|
||||||
# retry if a call is in progress, send the leave voice conference message to BBB
|
|
||||||
@exitVoiceCall = (event) ->
|
|
||||||
# To be called when the hangup is initiated
|
|
||||||
hangupCallback = ->
|
|
||||||
console.log "Exiting Voice Conference"
|
|
||||||
|
|
||||||
# Checks periodically until a call is established so we can successfully end the call
|
|
||||||
# clean state
|
|
||||||
getInSession("triedHangup", false)
|
|
||||||
# function to initiate call
|
|
||||||
(checkToHangupCall = (context) ->
|
|
||||||
# if an attempt to hang up the call is made when the current session is not yet finished, the request has no effect
|
|
||||||
# keep track in the session if we haven't tried a hangup
|
|
||||||
if BBB.getCallStatus() isnt null and !getInSession("triedHangup")
|
|
||||||
console.log "Attempting to hangup on WebRTC call"
|
|
||||||
if BBB.amIListenOnlyAudio() # notify BBB-apps we are leaving the call call if we are listen only
|
|
||||||
Meteor.call('listenOnlyRequestToggle', BBB.getMeetingId(), getInSession("userId"), getInSession("authToken"), false)
|
|
||||||
BBB.leaveVoiceConference hangupCallback
|
|
||||||
getInSession("triedHangup", true) # we have hung up, prevent retries
|
|
||||||
notification_WebRTCAudioExited()
|
|
||||||
else
|
|
||||||
console.log "RETRYING hangup on WebRTC call in #{Meteor.config.app.WebRTCHangupRetryInterval} ms"
|
|
||||||
setTimeout checkToHangupCall, Meteor.config.app.WebRTCHangupRetryInterval # try again periodically
|
|
||||||
)(@) # automatically run function
|
|
||||||
return false
|
|
||||||
|
|
||||||
# close the daudio UI, then join the conference. If listen only send the request to the server
|
|
||||||
@joinVoiceCall = (event, {isListenOnly} = {}) ->
|
|
||||||
if !isWebRTCAvailable()
|
|
||||||
notification_WebRTCNotSupported()
|
|
||||||
return
|
|
||||||
|
|
||||||
isListenOnly ?= true
|
|
||||||
|
|
||||||
# create voice call params
|
|
||||||
joinCallback = (message) ->
|
|
||||||
console.log "Beginning WebRTC Conference Call"
|
|
||||||
|
|
||||||
notification_WebRTCAudioJoining()
|
|
||||||
if isListenOnly
|
|
||||||
Meteor.call('listenOnlyRequestToggle', BBB.getMeetingId(), getInSession("userId"), getInSession("authToken"), true)
|
|
||||||
BBB.joinVoiceConference joinCallback, isListenOnly # make the call #TODO should we apply role permissions to this action?
|
|
||||||
|
|
||||||
return false
|
|
||||||
|
|
||||||
# Starts the entire logout procedure.
|
# Starts the entire logout procedure.
|
||||||
# meeting: the meeting the user is in
|
# meeting: the meeting the user is in
|
||||||
# the user's userId
|
# the user's userId
|
||||||
|
45
bigbluebutton-html5/app/client/globals_audio.coffee
Executable file
45
bigbluebutton-html5/app/client/globals_audio.coffee
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
# Periodically check the status of the WebRTC call, when a call has been established attempt to hangup,
|
||||||
|
# retry if a call is in progress, send the leave voice conference message to BBB
|
||||||
|
@exitVoiceCall = (event) ->
|
||||||
|
# To be called when the hangup is initiated
|
||||||
|
hangupCallback = ->
|
||||||
|
console.log "Exiting Voice Conference"
|
||||||
|
|
||||||
|
# Checks periodically until a call is established so we can successfully end the call
|
||||||
|
# clean state
|
||||||
|
getInSession("triedHangup", false)
|
||||||
|
# function to initiate call
|
||||||
|
(checkToHangupCall = (context) ->
|
||||||
|
# if an attempt to hang up the call is made when the current session is not yet finished, the request has no effect
|
||||||
|
# keep track in the session if we haven't tried a hangup
|
||||||
|
if BBB.getCallStatus() isnt null and !getInSession("triedHangup")
|
||||||
|
console.log "Attempting to hangup on WebRTC call"
|
||||||
|
if BBB.amIListenOnlyAudio() # notify BBB-apps we are leaving the call call if we are listen only
|
||||||
|
Meteor.call('listenOnlyRequestToggle', BBB.getMeetingId(), getInSession("userId"), getInSession("authToken"), false)
|
||||||
|
BBB.leaveVoiceConference hangupCallback
|
||||||
|
getInSession("triedHangup", true) # we have hung up, prevent retries
|
||||||
|
notification_WebRTCAudioExited()
|
||||||
|
else
|
||||||
|
console.log "RETRYING hangup on WebRTC call in #{Meteor.config.app.WebRTCHangupRetryInterval} ms"
|
||||||
|
setTimeout checkToHangupCall, Meteor.config.app.WebRTCHangupRetryInterval # try again periodically
|
||||||
|
)(@) # automatically run function
|
||||||
|
return false
|
||||||
|
|
||||||
|
# join the conference. If listen only send the request to the server
|
||||||
|
@joinVoiceCall = (event, {isListenOnly} = {}) ->
|
||||||
|
if !isWebRTCAvailable()
|
||||||
|
notification_WebRTCNotSupported()
|
||||||
|
return
|
||||||
|
|
||||||
|
isListenOnly ?= true
|
||||||
|
|
||||||
|
# create voice call params
|
||||||
|
joinCallback = (message) ->
|
||||||
|
console.log "Beginning WebRTC Conference Call"
|
||||||
|
|
||||||
|
notification_WebRTCAudioJoining()
|
||||||
|
if isListenOnly
|
||||||
|
Meteor.call('listenOnlyRequestToggle', BBB.getMeetingId(), getInSession("userId"), getInSession("authToken"), true)
|
||||||
|
BBB.joinVoiceConference joinCallback, isListenOnly # make the call #TODO should we apply role permissions to this action?
|
||||||
|
|
||||||
|
return false
|
Loading…
Reference in New Issue
Block a user