diff --git a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js index 80e1f9c50114069c7aab406058244fae261df2f4..be47da78550ba52aba46772a47ed498dadf7fb18 100755 --- a/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js +++ b/bigbluebutton-html5/imports/api/audio/client/bridge/sip.js @@ -33,6 +33,8 @@ const USER_AGENT_RECONNECTION_DELAY_MS = 5000; const USER_AGENT_CONNECTION_TIMEOUT_MS = 5000; const ICE_GATHERING_TIMEOUT = MEDIA.iceGatheringTimeout || 5000; const BRIDGE_NAME = 'sip'; +const WEBSOCKET_KEEP_ALIVE_INTERVAL = MEDIA.websocketKeepAliveInterval || 0; +const WEBSOCKET_KEEP_ALIVE_DEBOUNCE = MEDIA.websocketKeepAliveDebounce || 10; const getAudioSessionNumber = () => { let currItem = parseInt(sessionStorage.getItem(AUDIO_SESSION_NUM_KEY), 10); @@ -368,6 +370,8 @@ class SIPSession { transportOptions: { server: `${(protocol === 'https:' ? 'wss://' : 'ws://')}${hostname}/ws?${token}`, connectionTimeout: USER_AGENT_CONNECTION_TIMEOUT_MS, + keepAliveInterval: WEBSOCKET_KEEP_ALIVE_INTERVAL, + keepAliveDebounce: WEBSOCKET_KEEP_ALIVE_DEBOUNCE, }, sessionDescriptionHandlerFactoryOptions: { peerConnectionConfiguration: { diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml index 2f255ff9a639164127f2b2ecb8153632d29616cb..a44fbc7abb7e2a1a14a1937b3a920a2623ba5b7c 100755 --- a/bigbluebutton-html5/private/config/settings.yml +++ b/bigbluebutton-html5/private/config/settings.yml @@ -293,6 +293,14 @@ public: #user activates microphone. iceGatheringTimeout: 5000 sipjsHackViaWs: false + #Websocket keepAlive interval (seconds). You may set this to prevent + #websocket disconnection in some environments. When set, BBB will send + #'\r\n\r\n' string through SIP.js's websocket. If not set, default value + #is 0. + websocketKeepAliveInterval: 30 + #Debounce time (seconds) for sending SIP.js's websocket keep alive message. + #If not set, default value is 10. + websocketKeepAliveDebounce: 10 presentation: defaultPresentationFile: default.pdf panZoomThrottle: 32