@nethesis/phone-island 1.1.6 → 1.1.8-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AlertView/index.js +1 -1
- package/dist/components/AlertView/index.js.map +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
- package/dist/components/AudioPlayerView/Progress.js +1 -1
- package/dist/components/AudioPlayerView/Progress.js.map +1 -1
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/Number.js +1 -1
- package/dist/components/CallView/Number.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/ConferenceView/index.js +1 -1
- package/dist/components/ConferenceView/index.js.map +1 -1
- package/dist/components/ContactView/ContactListView.js +1 -1
- package/dist/components/ContactView/ContactListView.js.map +1 -1
- package/dist/components/ContactView/TransferActions.js +1 -1
- package/dist/components/ContactView/TransferActions.js.map +1 -1
- package/dist/components/CustomThemedTooltip.js.map +1 -1
- package/dist/components/Events.js +1 -1
- package/dist/components/Events.js.map +1 -1
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/Island.js +1 -1
- package/dist/components/Island.js.map +1 -1
- package/dist/components/IslandDrag.js +1 -1
- package/dist/components/IslandDrag.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/KeypadView/Actions.js +1 -1
- package/dist/components/KeypadView/Actions.js.map +1 -1
- package/dist/components/KeypadView/index.js +1 -1
- package/dist/components/KeypadView/index.js.map +1 -1
- package/dist/components/PhysicalRecorderView/index.js +1 -1
- package/dist/components/PhysicalRecorderView/index.js.map +1 -1
- package/dist/components/RecorderView/Actions.js +1 -1
- package/dist/components/RecorderView/Actions.js.map +1 -1
- package/dist/components/SettingsView/AudioView.js +1 -1
- package/dist/components/SettingsView/AudioView.js.map +1 -1
- package/dist/components/SettingsView/MicrophoneView.js +1 -1
- package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
- package/dist/components/SettingsView/ThemeView.js +1 -1
- package/dist/components/SettingsView/ThemeView.js.map +1 -1
- package/dist/components/SettingsView/VideoInputView.js +1 -1
- package/dist/components/SettingsView/VideoInputView.js.map +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/StreamingAnswerView/index.js +1 -1
- package/dist/components/StreamingAnswerView/index.js.map +1 -1
- package/dist/components/StreamingImage/index.js +1 -1
- package/dist/components/StreamingImage/index.js.map +1 -1
- package/dist/components/StreamingUnlock/index.js +2 -0
- package/dist/components/StreamingUnlock/index.js.map +1 -0
- package/dist/components/StreamingVideo/index.js +2 -0
- package/dist/components/StreamingVideo/index.js.map +1 -0
- package/dist/components/SwitchInputView/DropdownContent.js +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
- package/dist/components/SwitchInputView/Index.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
- package/dist/components/TransferButton.js +1 -1
- package/dist/components/TransferButton.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/events/PlayerEvents.js +1 -1
- package/dist/events/PlayerEvents.js.map +1 -1
- package/dist/events/RecorderEvents.js +1 -1
- package/dist/events/RecorderEvents.js.map +1 -1
- package/dist/events/SocketEvents.js +1 -1
- package/dist/events/SocketEvents.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/darkTheme.js +1 -1
- package/dist/lib/darkTheme.js.map +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/devices/devices.js.map +1 -1
- package/dist/lib/island/island.js +1 -1
- package/dist/lib/island/island.js.map +1 -1
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/phone/video.js +1 -1
- package/dist/lib/phone/video.js.map +1 -1
- package/dist/lib/storage/local_storage.js +1 -1
- package/dist/lib/storage/local_storage.js.map +1 -1
- package/dist/lib/streaming/streamingVideo.js +2 -0
- package/dist/lib/streaming/streamingVideo.js.map +1 -0
- package/dist/lib/streaming/whepPlayer.js +2 -0
- package/dist/lib/streaming/whepPlayer.js.map +1 -0
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/island.js +1 -1
- package/dist/models/island.js.map +1 -1
- package/dist/models/motions.js +1 -1
- package/dist/models/motions.js.map +1 -1
- package/dist/models/streaming.js +1 -1
- package/dist/models/streaming.js.map +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/public/locales/en/translation.json.js +1 -1
- package/dist/public/locales/it/translation.json.js +1 -1
- package/dist/services/user.js +1 -1
- package/dist/services/user.js.map +1 -1
- package/dist/utils/customHooks/useStreamingAspectRatio.js +2 -0
- package/dist/utils/customHooks/useStreamingAspectRatio.js.map +1 -0
- package/dist/utils/customHooks/useStreamingContentHeight.js +2 -0
- package/dist/utils/customHooks/useStreamingContentHeight.js.map +1 -0
- package/dist/utils/customHooks/useStreamingVideo.js +2 -0
- package/dist/utils/customHooks/useStreamingVideo.js.map +1 -0
- package/dist/utils/streaming/previewSize.js +2 -0
- package/dist/utils/streaming/previewSize.js.map +1 -0
- package/dist/utils/streaming/streamingUtils.js +1 -1
- package/dist/utils/streaming/streamingUtils.js.map +1 -1
- package/dist/utils/streaming/videoSource.js +2 -0
- package/dist/utils/streaming/videoSource.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../node_modules/socket.io-client/build/esm/index.js"),r=require("./RestAPI.js"),i=require("../lib/phone/conversation.js"),o=require("../lib/phone/counterpartDevice.js"),u=require("../services/phonebook.js"),c=require("../services/user.js"),a=require("../static/busy_ringtone.js"),s=require("../utils/customHooks/useEventListener.js"),l=require("../utils/genericFunctions/eventDispatch.js"),d=require("../utils/genericFunctions/withTimeout.js"),v=require("../utils/genericFunctions/summaryEvents.js"),p=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var m=require("../lib/devices/devices.js"),f=require("../lib/user/default_device.js"),g=require("../utils/genericFunctions/isEmpty.js"),h=require("../utils/streaming/getStreamingSourceId.js"),b=require("../events/SocketEvents.js"),k=require("../utils/genericFunctions/timestamp.js"),y=require("../lib/user/extensions.js"),S=require("../utils/streaming/isFromStreaming.js"),q=require("../lib/phone/queue.js"),w=require("../lib/phone/trunk.js"),C=require("../node_modules/react-redux/es/hooks/useDispatch.js");function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var N=_(n);exports.Socket=function(_){var I=_.hostName,T=_.username,D=_.authToken,j=_.reload,U=_.reloadedCallback,x=_.children,E=_.uaType,O=C.useDispatch(),P=n.useRef(),A=n.useRef(),F=n.useRef(!1),M=n.useRef(0),R=n.useRef(null),V=n.useRef(new Map),L=n.useRef(new Map),Q=n.useRef(new Set),W=n.useRef(null),B=n.useRef(!1),K=n.useRef({linkedid:null,uniqueid:null});s.useEventListener("phone-island-start-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:n,uniqueid:t},A.current.emit("start_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-stop-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:null,uniqueid:null},A.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-current-user-queue-call-waiting",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})}),s.useEventListener("phone-island-current-user-queue-call-connected",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})});return n.useEffect(function(){var n=function(e){if(e.counterpartNum&&S.isFromStreaming(e.counterpartNum)){O.island.setIsFromStreaming(!0),O.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=h.getStreamingSourceId(e.counterpartNum);n&&c.subscribe({id:n}).catch(function(e){return console.error("Error subscribing to streaming source:",e)})}},s=function(e){return(e||"").replace(/\D/g,"")},C=function(e){var n=i.getDisplayName(e),t=((null==e?void 0:e.counterpartNum)||"").trim();return n&&n!==t&&!i.isNumberOnlyName(n)?n:(t?L.current.get(s(t)):void 0)||n},_=function(e){if(e){var n=(e.counterpartNum||"").trim();if(!(n.length<3)){var t=(e.counterpartName||"").trim();if(!t||"<unknown>"===t||t===n||i.isNumberOnlyName(t)){var r=p.store.getState().users.extensions;if(!(r&&r[n]||S.isFromStreaming(n))){var o=s(n);L.current.has(o)||e.id&&Q.current.has(e.id)||(e.id&&(Q.current.size>500&&Q.current.clear(),Q.current.add(e.id)),u.searchPhonebook(1,n,"").then(function(e){var n=((null==e?void 0:e.rows)||[]).find(function(e){return[e.extension,e.workphone,e.homephone,e.cellphone,e.fax].some(function(e){var n=s(e);return 0!==n.length&&(n===o||!(Math.min(n.length,o.length)<6)&&(n.endsWith(o)||o.endsWith(n)))})}),t=((null==n?void 0:n.name)||(null==n?void 0:n.company)||"").trim();if(t){L.current.set(o,t);var r=p.store.getState().currentCall;s(r.number)===o&&O.currentCall.updateCurrentCall({displayName:t})}}).catch(function(){}))}}}}},N=function(e){return q.getCurrentCallQueueContext(e,p.store.getState().queue)},j=function(e,n){var t=p.store.getState().currentCall,r=(null==n?void 0:n.queueId)||t.queueId||"",i=(null==n?void 0:n.queueName)||t.queueName||"",o=(null==n?void 0:n.queueNumber)||t.queueNumber||"";return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:r,queueName:i,queueNumber:o,queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}},U=function(e){var n,t,r,i;if(e){var o=N(e),u=j(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=R.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=R.current)||void 0===i?void 0:i.phase))&&(b.dispatchCurrentUserQueueCallConnected(u),R.current={conversationId:e.id,phase:"connected"});else((null===(n=R.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=R.current)||void 0===t?void 0:t.phase))&&(b.dispatchCurrentUserQueueCallWaiting(u),R.current={conversationId:e.id,phase:"waiting"});else R.current=null}else R.current=null},x=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},z=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},H=function(e){return!!(null==e?void 0:e.connected)&&!!x(e)&&!!z(e)},J=function(n){var t=p.store.getState().currentUser.conversations,r=n?null==t?void 0:t[n]:void 0,i=function(e){var n,t=null,r=Object.entries(e||{}).filter(function(e){var n=e[1];return n&&Object.keys(n).length>0});return r.forEach(function(e){var r,i,o=e[0],u=e[1];if(!t)return t=u,void(n=o);var c=H(t),a=H(u);if(a&&!c)return t=u,void(n=o);if(a===c){var s=!!t.connected,l=!!u.connected;if(l&&!s)return t=u,void(n=o);var d=null!==(r=t.startTime)&&void 0!==r?r:0,v=null!==(i=u.startTime)&&void 0!==i?i:0;l===s&&v>d&&(t=u,n=o)}}),{conversation:t,key:n,count:r.length}}(r);if(H(i.conversation))return e.__assign(e.__assign({},i),{source:"live",cacheAgeMs:void 0,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})});var o=function(n){if(!n)return null;var t=V.current.get(n);if(!t)return null;var r=Date.now()-t.cachedAt;return r>6e5?(V.current.delete(n),null):e.__assign(e.__assign({},t),{cacheAgeMs:r})}(n);return o&&H(o.conversation)?{conversation:o.conversation,key:o.conversation.id,count:i.count,source:"cache",cacheAgeMs:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})}:e.__assign(e.__assign({},i),{source:i.conversation?"live_invalid":"none",cacheAgeMs:null==o?void 0:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})})},G=function(t,r){var u=p.store.getState().currentCall,a=u.transferring,s=u.transferSwitching,d=u.transferCalls,v=p.store.getState().island.view;if(Object.keys(r).length>0){if(t.status){var m=p.store.getState().users.extensions,g=p.store.getState().currentUser.default_device,h=p.store.getState().currentUser,b=h.endpoints,S=h.username,q=function(){if(!m||!S)return!1;var e=Object.values(m).filter(function(e){return(null==e?void 0:e.username)===S});return null==e?void 0:e.some(function(e){var n=null==b?void 0:b.extension.find(function(n){return n.id===(null==e?void 0:e.exten)});return"nethlink"===(null==n?void 0:n.type)&&"offline"!==(null==e?void 0:e.status)})};switch(t.status){case"ringing":if(function(e){var n=p.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(r.owner))break;var I=N(r),T=j(r,I);U(r),n(r),_(r),("mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type)))&&(O.currentCall.checkIncomingUpdatePlay({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),incomingSocket:!0,incoming:!0,throughQueue:Boolean(T.queueId||T.queueName||T.queueNumber),queueId:T.queueId,queueName:T.queueName,queueNumber:T.queueNumber,queuePosition:T.queuePosition,queueWaitingTime:T.queueWaitingTime,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",ownerExtension:r.owner,counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),p.store.dispatch.island.setIslandView("call")),F.current||(F.current=!0,c.getCurrentUserInfo().then(function(n){n&&(O.currentUser.updateCurrentUser(n),l.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?O.paramUrl.setOpenParamUrlType(n.settings.open_param_url):O.paramUrl.setOpenParamUrlType("never"))}).catch(function(e){console.error("Error getting current user info:",e)}).finally(function(){setTimeout(function(){F.current=!1},100)}));var D=p.store.getState().paramUrl.openParamUrlType,x=p.store.getState().island.urlOpened;if("ringing"===D&&!x){var P=w.isFromTrunk(r.counterpartNum);p.store.dispatch.paramUrl.setThroughTrunk(P),p.store.dispatch.island.setUrlOpened(!1),l.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:r.counterpartNum,counterpartName:C(r),owner:r.owner,uniqueId:r.uniqueId,linkedId:r.linkedId,throughQueue:r.throughQueue,throughTrunk:P,direction:r.direction,connected:r.connected})}break;case"busy":if(U(r),n(r),"mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type))){if(r&&r.connected)O.currentCall.updateCurrentCall({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),ownerExtension:r.owner,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",chDest:(null==r?void 0:r.chDest)||{},chSource:(null==r?void 0:r.chSource)||{},counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),O.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),O.currentCall.addTransferCalls({type:"transferred",displayName:C(r),number:"".concat(r.counterpartNum),startTime:"".concat(k.getTimestampInSeconds())}),p.store.getState().island.isFromStreaming&&"out"===r.direction&&setTimeout(function(){O.island.setIslandView("streamingAnswer")},200),f.isPhysical()&&function(e){O.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),l.eventDispatch("phone-island-call-answered",{}),p.store.dispatch.player.stopAudioPlayer(),p.store.dispatch.player.setAudioPlayerLoop(!1)}(r),"call"===v&&a&&O.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)O.currentCall.deleteTransferCalls();else if(r&&!r.connected){if(a&&!s){var A=d.find(function(e){return e.number===r.counterpartNum});!r.connected&&A&&(O.currentCall.updateCurrentCall({transferring:!1}),l.eventDispatch("phone-island-call-transfer-failed",{}),O.currentCall.updateTransferSwitching(!1))}"REC"===(null==r?void 0:r.counterpartName)&&O.physicalRecorder.setRecordingTempVariable(!0)}r&&!r.connected&&"out"===r.direction&&("REC"!==(null==r?void 0:r.counterpartName)&&_(r),O.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==r?void 0:r.counterpartName),displayName:C(r),counterpartDeviceType:"",number:"".concat(null==r?void 0:r.counterpartNum),username:"".concat(m&&m[null==r?void 0:r.counterpartNum]&&m[null==r?void 0:r.counterpartNum].username)||""}))}break;case"onhold":U(r);var M=r.counterpartName,R=r.counterpartNum,V=r.startTime;a&&R&&M&&"<unknown>"!==M&&(O.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(r),number:R,startTime:"".concat(k.getTimestampInSeconds())}),O.currentCall.updateCurrentCall({displayName:i.getDisplayName(r),number:R,startTime:"".concat(V/1e3),conversationId:r.id,counterpartDeviceType:""}),O.island.setIslandView("call"));break;case"busy_ringing":l.eventDispatch("phone-island-call-ringing",{})}}}else"online"==t.status&&y.userTotallyFree()&&(U(null),O.player.stopAudioPlayer(),O.currentCall.reset(),O.listen.reset(),O.physicalRecorder.setRecordingTempVariable(!1),O.island.setIsFromStreaming(!1))};return function(){var n=r.getApiMode(T);B.current=!1;var i={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3};"new"===n&&(i.path="/api/ws"),A.current=t.io("https://"+I,i),O.websocket.update({socket:A.current}),A.current.on("connect",function(){console.debug("Socket connected sid: ".concat(A.current.id)),l.eventDispatch("phone-island-socket-connected",{})}),A.current.on("disconnect",function(e){console.debug("Socket disconnect - reason: ".concat(e)),W.current=null,B.current=!0,P.current&&(clearInterval(P.current),P.current=null),e.includes("server disconnect")?l.eventDispatch("phone-island-server-disconnected",{}):l.eventDispatch("phone-island-socket-disconnected",{})}),A.current.io.on("error",function(e){console.debug("Socket error: ",e)}),A.current.on("connect_error",function(e){console.debug("Socket connect_error: ",e)}),A.current.io.on("reconnect",function(e){M.current=0,console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(A.current.id,")"))}),A.current.io.on("reconnect_attempt",function(e){console.debug("Socket reconnect_attempt ".concat(e))}),A.current.io.on("reconnect_error",function(e){console.debug("Socket reconnect_error: ",e)}),A.current.io.on("reconnect_failed",function(){console.debug("Socket reconnect_failed")}),A.current.on("connect",function(){console.debug("Socket on: "+I+" is connected!"),M.current=0,W.current=Date.now(),A.current.emit("login",{accessKeyId:"".concat(T),token:D,uaType:E})});var o=function(){setTimeout(function(){O.alerts.removeAlert("socket_down"),l.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),l.eventDispatch("phone-island-socket-disconnected-popup-close",{})},0)};A.current.on("authe_ok",function(){console.debug("Socket authentication success!"),W.current=null,M.current=0,l.eventDispatch("phone-island-socket-authorized",{}),B.current&&(B.current=!1,l.eventDispatch("phone-island-socket-reconnected",{})),o(),P.current&&clearInterval(P.current),P.current=setInterval(function(){var e=A.current.id;A.current.volatile.emit("ping",d.withTimeout(function(){M.current=0,o()},function(){A.current.connected&&A.current.id!==e||(M.current++,console.debug("Socket ping timeout (".concat(M.current,"/").concat(3,"), connected: ").concat(A.current.connected)),setTimeout(function(){var e,n,t=A.current.connected&&M.current>=3;if(!A.current.connected||t){var r=p.store.getState().webrtc.sipcall,i=p.store.getState().currentCall,o=i.accepted,u=i.outgoing,c=null===(n=null===(e=null==r?void 0:r.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===n?void 0:n.iceConnectionState;if((o||u)&&("connected"===c||"completed"===c))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:c,accepted:o,outgoing:u,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),A.current.disconnect(),A.current.connect()),O.alerts.setAlert("socket_down"),l.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}},0))},5e3))},5e3)}),A.current.on("userMainPresenceUpdate",function(n){p.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),b.dispatchMainPresence(n)}),A.current.on("extenHangup",function(e){var n=p.store.getState().currentUser,t=n.endpoints,r=n.username,i=n.call_summary_enabled,o=p.store.getState().conference,u=o.isActive,c=o.conferenceStartedFrom,s=p.store.getState().island,d=s.view,v=s.previewCallFromMobileOrNethlink,m=(null==t?void 0:t.extension)||[],f=m.map(function(e){return e.id}),g=null==e?void 0:e.callerNum;!f.includes(g)&&f.includes(null==e?void 0:e.channelExten)&&(g=null==e?void 0:e.channelExten);var h=m.find(function(n){return n.id===e.callerNum}),b=null==h?void 0:h.type,k=J(g).conversation,y=x(k),S=z(k),q=(null==k?void 0:k.connected)||!1;if(S&&y&&q&&(i&&l.eventDispatch("phone-island-summary-call-check",{linkedid:y,uniqueid:S}),g&&V.current.delete(g)),"normal_clearing"===e.cause&&("physical"===b||"mobile"===b)||"normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)&&v||"user_busy"===(null==e?void 0:e.cause)||"not_defined"===(null==e?void 0:e.cause)||"call_rejected"===(null==e?void 0:e.cause)||"interworking"===(null==e?void 0:e.cause)?(setTimeout(function(){p.store.dispatch.island.toggleAvoidToShow(!1),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)},500),u&&c!==r&&p.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&u&&c===r?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):"normal_clearing"!==e.cause&&"user_busy"!==(null==e?void 0:e.cause)&&"not_defined"!==(null==e?void 0:e.cause)&&"call_rejected"!==(null==e?void 0:e.cause)||"webrtc"!==b&&"nethlink"!==b||!u||c===r||p.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)||"call_rejected"===(null==e?void 0:e.cause))&&u&&c===r){var w=p.store.getState().conference,C=w.usersList,_=w.pendingUsers,N=C&&Object.keys(C).length>0,I=_&&Object.keys(_).length>0;N||I?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):p.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&u&&c===r&&"waitingConference"!==d&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),"user_busy"===(null==e?void 0:e.cause)){var T=p.store.getState().currentUser,D=T.endpoints,j=T.username,U=((null==D?void 0:D.extension)||[]).map(function(e){return e.id}),E=p.store.getState().currentCall,O=E.incoming,P=E.accepted,A=E.transferring,F=p.store.getState().conference,M=F.isActive,R=F.conferenceStartedFrom;!(O&&!!e.callerNum&&U.includes(e.callerNum))&&(!P||M||A)&&(p.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout(function(){p.store.dispatch.player.stopAudioPlayer()},4e3),setTimeout(function(){p.store.dispatch.player.updateStartAudioPlayer({src:a.default,loop:!0}),p.store.dispatch.island.setIslandView("operatorBusy")},600),M&&R===j&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var L=p.store.getState().conference,Q=L.isActive,W=L.conferenceStartedFrom,B=p.store.getState().currentUser.username;if(Q&&W===B){var K=p.store.getState().conference;C=K.usersList,_=K.pendingUsers,N=C&&Object.keys(C).length>0,I=_&&Object.keys(_).length>0;N||I?(setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),_&&_[e.callerNum]&&p.store.dispatch.conference.removePendingUser(e.callerNum)):p.store.dispatch.conference.resetConference()}}}),A.current.on("extenConnected",function(e){var n=p.store.getState().currentUser,t=n.default_device,r=n.endpoints,i=((null==r?void 0:r.extension)||[]).find(function(n){return n.id===e.extenConnected}),o=null==i?void 0:i.type;(("webrtc"===(null==t?void 0:t.type)||"nethlink"===(null==t?void 0:t.type))&&o&&("mobile"===o||"physical"===o)||"physical"===(null==t?void 0:t.type)&&o&&"physical"!==o)&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),l.eventDispatch("phone-island-call-answered",{extensionType:o}))}),A.current.on("extenUpdate",function(e){var n,t,r;O.users.updateExtension(e);var i=p.store.getState().users.extensions,o={},u=p.store.getState().currentUser;for(var c in i){var a=i[c].username,s=i[c].exten;o[a]||(o[a]=[]),o[a].push(s)}var l,d,v=o[e.username],m=Object.keys(e.conversations||{}),f=e.username===T,h=(null===(n=e.conversations)||void 0===n?void 0:n[m[0]])||{};f&&(l=e.exten,d=e.conversations,l&&Object.values(d||{}).forEach(function(e){H(e)&&V.current.set(l,{conversation:e,cachedAt:Date.now()})}));var k=!1;if((null==e?void 0:e.username)===T&&!g.isEmpty(h)&&(null==h?void 0:h.owner)){var y=null===(r=null===(t=null==u?void 0:u.endpoints)||void 0===t?void 0:t.extension)||void 0===r?void 0:r.find(function(e){return e.id===h.owner});y&&"mobile"===y.type&&(k=!0)}if(b.dispatchExtensions(e),g.isEmpty(h)){var S=null==v?void 0:v.some(function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!g.isEmpty(t)});S||b.dispatchConversations(e)}else k||b.dispatchConversations(e);k&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===T&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===T&&(G(e,h),O.currentUser.updateConversations(e))}),A.current.on("queueUpdate",function(e){O.queue.updateQueue(e);var n,t,r,i=(n=p.store.getState().currentUser.conversations,t=p.store.getState().currentCall.conversationId,r=null,Object.values(n||{}).forEach(function(e){Object.values(e||{}).forEach(function(e){(null==r?void 0:r.id)&&r.id===t||(t&&e.id===t||!r||e.connected&&!r.connected||e.connected===r.connected&&e.startTime>r.startTime)&&(r=e)})}),r);i&&U(i),b.dispatchQueueUpdate(e)}),A.current.on("queueMemberUpdate",function(e){O.queue.updateQueueMember(e),b.dispatchQueueMemberUpdate(e)}),A.current.on("takeOver",function(){b.dispatchAlreadyLogin()}),A.current.on("serverReloaded",function(){b.dispatchServerReload()}),A.current.on("parkingUpdate",function(e){b.dispatchParkingUpdate(e)}),A.current.on("actionNethLink",function(e,n){b.dispatchUrlCall(e,n)}),A.current.on("satellite/summary",function(e){var n=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId),t=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId);n&&v.dispatchSummaryReady({linkedid:t,uniqueid:n,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number,source:"socket"})}),A.current.on("message",function(e){switch(e.message){case"videoCallStart":var n=p.store.getState(),t=n.currentCall,r=t.incoming,i=t.outgoing,o=t.accepted,u=n.currentUser.default_device,c=n.island,a=c.isFromStreaming,s=c.view;("webrtc"===(null==u?void 0:u.type)||"nethlink"===(null==u?void 0:u.type))&&(r||i||o)&&!a&&"video"!==s&&(O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video")),b.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":var l=p.store.getState().screenShare.room,d=e.roomId;if(l&&d&&"".concat(d)!=="".concat(l))break;O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}}),A.current.on("updateDefaultDevice",function(n){b.dispatchDefaultDeviceUpdate(n);var t=p.store.getState().users.extensions,r=p.store.getState().currentUser.endpoints;if(t&&r){var i=Object.values(t).filter(function(e){return(null==e?void 0:e.exten)===n});if(0!==i.length){var o=i[0],u=r.extension.find(function(e){return e.id===o.exten});u&&(o=e.__assign(e.__assign({},o),{type:u.type})),p.store.dispatch.currentUser.updateCurrentDefaultDevice(o),m.checkMediaPermissions()}}}),A.current.on("confBridgeUpdate",function(n){if(n&&(null==n?void 0:n.users)){var t=null==n?void 0:n.id,r=null==n?void 0:n.users,i=p.store.getState().conference.usersList,o=e.__assign({},r);i&&Object.keys(o).forEach(function(n){i[n]&&(o[n]=e.__assign(e.__assign({},o[n]),{muted:i[n].muted}))}),p.store.dispatch.conference.updateConferenceUsersList(o),p.store.dispatch.conference.updateConferenceId(t)}}),A.current.on("confBridgeEnd",function(e){e&&(null==e?void 0:e.id)&&(p.store.dispatch.conference.resetConference(),l.eventDispatch("phone-island-conference-finished",{}))}),A.current.on("callWebrtc",function(e){l.eventDispatch("phone-island-call-start",{number:e})}),A.current.on("newVoiceMessageCounter",function(e){l.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})}),A.current.on("streamingSourceUpdate",function(e){l.eventDispatch("phone-island-streaming-information-received",{res:e});var n=e.streaming||e.res&&e.res.streaming;if(n){var t=n.source,r=n.image;t&&r&&O.streaming.updateSourceImage({source:t,image:r})}}),A.current.on("satellite/transcription",function(e){var n=K.current,t=null==e?void 0:e.uniqueid,r=null==e?void 0:e.linkedid;if(n.linkedid&&t){var i=function(e){return null!=e&&(e===n.linkedid||e===n.uniqueid)};if(!i(t)&&!i(r))return}l.eventDispatch("phone-island-conversation-transcription",e)})}(),function(){clearInterval(P.current),L.current.clear(),Q.current.clear(),A.current.close()}},[I,T,D,E,O]),n.useEffect(function(){var e,n;if(j){console.info("Socket reload requested");var t=p.store.getState().alerts.data,r=p.store.getState().island.forceReload,i=(null===(e=t.socket_down)||void 0===e?void 0:e.active)||!1,o=!(null===(n=A.current)||void 0===n?void 0:n.connected);!o&&null!==W.current&&Date.now()-W.current<3e4&&!r?(console.info("Socket connected and authenticating, skipping reconnection"),U()):i||o||r?(console.info(r?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active or disconnected), performing reconnection"),P.current&&(clearInterval(P.current),P.current=null),setTimeout(function(){A.current.disconnect(),A.current.connect(),U()},100)):(console.info("Socket already connected (no alert active), skipping reconnection"),U())}},[j]),N.default.createElement(N.default.Fragment,null,x)};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../node_modules/socket.io-client/build/esm/index.js"),r=require("./RestAPI.js"),i=require("../lib/phone/conversation.js"),o=require("../lib/phone/counterpartDevice.js"),u=require("../services/phonebook.js"),c=require("../services/user.js"),a=require("../static/busy_ringtone.js"),s=require("../utils/customHooks/useEventListener.js"),l=require("../utils/genericFunctions/eventDispatch.js"),d=require("../utils/genericFunctions/withTimeout.js"),v=require("../utils/genericFunctions/summaryEvents.js"),p=require("../store/index.js"),m=require("../utils/streaming/videoSource.js"),f=require("../lib/phone/call.js"),g=require("../events/SocketEvents.js"),h=require("../utils/genericFunctions/timestamp.js"),b=require("../lib/user/extensions.js"),k=require("../utils/genericFunctions/isEmpty.js"),S=require("../lib/user/default_device.js"),y=require("../lib/devices/devices.js"),q=require("../utils/streaming/isFromStreaming.js"),w=require("../utils/streaming/getStreamingSourceId.js"),C=require("../lib/phone/queue.js"),N=require("../lib/phone/trunk.js"),_=require("../node_modules/react-redux/es/hooks/useDispatch.js");function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var I=T(n);exports.Socket=function(T){var D=T.hostName,U=T.username,j=T.authToken,x=T.reload,E=T.reloadedCallback,O=T.children,P=T.uaType,A=_.useDispatch(),F=n.useRef(),V=n.useRef(),R=n.useRef(!1),M=n.useRef(0),L=n.useRef(null),Q=n.useRef(new Map),W=n.useRef(new Map),B=n.useRef(new Set),K=n.useRef(null),z=n.useRef(!1),H=n.useRef({linkedid:null,uniqueid:null});s.useEventListener("phone-island-start-transcription",function(e){if(V.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;H.current={linkedid:n,uniqueid:t},V.current.emit("start_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-stop-transcription",function(e){if(V.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;H.current={linkedid:null,uniqueid:null},V.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-current-user-queue-call-waiting",function(e){A.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})}),s.useEventListener("phone-island-current-user-queue-call-connected",function(e){A.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})});return n.useEffect(function(){var n=function(e){if(e.counterpartNum&&q.isFromStreaming(e.counterpartNum)){A.island.setIsFromStreaming(!0),A.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=w.getStreamingSourceId(e.counterpartNum),t=p.store.getState().streaming.videoSources;n&&!m.isRtspVideoSource(m.findVideoSourceByNumber(t,e.counterpartNum))&&c.subscribe({id:n}).catch(function(e){return console.error("Error subscribing to streaming source:",e)})}},s=function(e){return(e||"").replace(/\D/g,"")},_=function(e){var n=i.getDisplayName(e),t=((null==e?void 0:e.counterpartNum)||"").trim();return n&&n!==t&&!i.isNumberOnlyName(n)?n:(t?W.current.get(s(t)):void 0)||n},T=function(e){if(e){var n=(e.counterpartNum||"").trim();if(!(n.length<3)){var t=(e.counterpartName||"").trim();if(!t||"<unknown>"===t||t===n||i.isNumberOnlyName(t)){var r=p.store.getState().users.extensions;if(!(r&&r[n]||q.isFromStreaming(n))){var o=s(n);W.current.has(o)||e.id&&B.current.has(e.id)||(e.id&&(B.current.size>500&&B.current.clear(),B.current.add(e.id)),u.searchPhonebook(1,n,"").then(function(e){var n=((null==e?void 0:e.rows)||[]).find(function(e){return[e.extension,e.workphone,e.homephone,e.cellphone,e.fax].some(function(e){var n=s(e);return 0!==n.length&&(n===o||!(Math.min(n.length,o.length)<6)&&(n.endsWith(o)||o.endsWith(n)))})}),t=((null==n?void 0:n.name)||(null==n?void 0:n.company)||"").trim();if(t){W.current.set(o,t);var r=p.store.getState().currentCall;s(r.number)===o&&A.currentCall.updateCurrentCall({displayName:t})}}).catch(function(){}))}}}}},I=function(e){return C.getCurrentCallQueueContext(e,p.store.getState().queue)},x=function(e,n){var t=p.store.getState().currentCall,r=(null==n?void 0:n.queueId)||t.queueId||"",i=(null==n?void 0:n.queueName)||t.queueName||"",o=(null==n?void 0:n.queueNumber)||t.queueNumber||"";return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:r,queueName:i,queueNumber:o,queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}},E=function(e){var n,t,r,i;if(e){var o=I(e),u=x(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=L.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=L.current)||void 0===i?void 0:i.phase))&&(g.dispatchCurrentUserQueueCallConnected(u),L.current={conversationId:e.id,phase:"connected"});else((null===(n=L.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=L.current)||void 0===t?void 0:t.phase))&&(g.dispatchCurrentUserQueueCallWaiting(u),L.current={conversationId:e.id,phase:"waiting"});else L.current=null}else L.current=null},O=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},J=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},G=function(e){return!!(null==e?void 0:e.connected)&&!!O(e)&&!!J(e)},X=function(n){var t=p.store.getState().currentUser.conversations,r=n?null==t?void 0:t[n]:void 0,i=function(e){var n,t=null,r=Object.entries(e||{}).filter(function(e){var n=e[1];return n&&Object.keys(n).length>0});return r.forEach(function(e){var r,i,o=e[0],u=e[1];if(!t)return t=u,void(n=o);var c=G(t),a=G(u);if(a&&!c)return t=u,void(n=o);if(a===c){var s=!!t.connected,l=!!u.connected;if(l&&!s)return t=u,void(n=o);var d=null!==(r=t.startTime)&&void 0!==r?r:0,v=null!==(i=u.startTime)&&void 0!==i?i:0;l===s&&v>d&&(t=u,n=o)}}),{conversation:t,key:n,count:r.length}}(r);if(G(i.conversation))return e.__assign(e.__assign({},i),{source:"live",cacheAgeMs:void 0,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})});var o=function(n){if(!n)return null;var t=Q.current.get(n);if(!t)return null;var r=Date.now()-t.cachedAt;return r>6e5?(Q.current.delete(n),null):e.__assign(e.__assign({},t),{cacheAgeMs:r})}(n);return o&&G(o.conversation)?{conversation:o.conversation,key:o.conversation.id,count:i.count,source:"cache",cacheAgeMs:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})}:e.__assign(e.__assign({},i),{source:i.conversation?"live_invalid":"none",cacheAgeMs:null==o?void 0:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})})},Y=function(t,r){var u=p.store.getState().currentCall,a=u.transferring,s=u.transferSwitching,d=u.transferCalls,v=p.store.getState().island.view;if(Object.keys(r).length>0){if(t.status){var m=p.store.getState().users.extensions,g=p.store.getState().currentUser.default_device,k=p.store.getState().currentUser,y=k.endpoints,q=k.username,w=function(){if(!m||!q)return!1;var e=Object.values(m).filter(function(e){return(null==e?void 0:e.username)===q});return null==e?void 0:e.some(function(e){var n=null==y?void 0:y.extension.find(function(n){return n.id===(null==e?void 0:e.exten)});return"nethlink"===(null==n?void 0:n.type)&&"offline"!==(null==e?void 0:e.status)})};switch(t.status){case"ringing":if(function(e){var n=p.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(r.owner))break;var C=I(r),D=x(r,C);E(r),n(r),T(r);var U=p.store.getState().currentCall,j=U.accepted,O=U.answering,F=U.number,V=(j||O)&&F==="".concat(r.counterpartNum);r.connected||V||!("mobile"===P&&w()||"desktop"===P&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!w()||!w()&&"physical"===(null==g?void 0:g.type)))||(A.currentCall.checkIncomingUpdatePlay({conversationId:r.id,displayName:_(r),number:"".concat(r.counterpartNum),incomingSocket:!0,incoming:!0,throughQueue:Boolean(D.queueId||D.queueName||D.queueNumber),queueId:D.queueId,queueName:D.queueName,queueNumber:D.queueNumber,queuePosition:D.queuePosition,queueWaitingTime:D.queueWaitingTime,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",ownerExtension:r.owner,counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),p.store.dispatch.island.setIslandView("call")),R.current||(R.current=!0,c.getCurrentUserInfo().then(function(n){n&&(A.currentUser.updateCurrentUser(n),l.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?A.paramUrl.setOpenParamUrlType(n.settings.open_param_url):A.paramUrl.setOpenParamUrlType("never"))}).catch(function(e){console.error("Error getting current user info:",e)}).finally(function(){setTimeout(function(){R.current=!1},100)}));var M=p.store.getState().paramUrl.openParamUrlType,L=p.store.getState().island.urlOpened;if("ringing"===M&&!L){var Q=N.isFromTrunk(r.counterpartNum);p.store.dispatch.paramUrl.setThroughTrunk(Q),p.store.dispatch.island.setUrlOpened(!1),l.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:r.counterpartNum,counterpartName:_(r),owner:r.owner,uniqueId:r.uniqueId,linkedId:r.linkedId,throughQueue:r.throughQueue,throughTrunk:Q,direction:r.direction,connected:r.connected})}break;case"busy":if(E(r),n(r),"mobile"===P&&w()||"desktop"===P&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!w()||!w()&&"physical"===(null==g?void 0:g.type))){if(r&&r.connected)A.currentCall.updateCurrentCall({conversationId:r.id,displayName:_(r),number:"".concat(r.counterpartNum),ownerExtension:r.owner,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",chDest:(null==r?void 0:r.chDest)||{},chSource:(null==r?void 0:r.chSource)||{},counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),A.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),A.currentCall.addTransferCalls({type:"transferred",displayName:_(r),number:"".concat(r.counterpartNum),startTime:"".concat(h.getTimestampInSeconds())}),p.store.getState().island.isFromStreaming&&"out"===r.direction&&setTimeout(function(){A.island.setIslandView("streamingAnswer")},200),S.isPhysical()&&function(e){A.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),l.eventDispatch("phone-island-call-answered",{}),p.store.dispatch.player.stopAudioPlayer(),p.store.dispatch.player.setAudioPlayerLoop(!1)}(r),"call"===v&&a&&A.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)A.currentCall.deleteTransferCalls();else if(r&&!r.connected){if(a&&!s){var W=d.find(function(e){return e.number===r.counterpartNum});!r.connected&&W&&(A.currentCall.updateCurrentCall({transferring:!1}),l.eventDispatch("phone-island-call-transfer-failed",{}),A.currentCall.updateTransferSwitching(!1))}"REC"===(null==r?void 0:r.counterpartName)&&A.physicalRecorder.setRecordingTempVariable(!0)}r&&!r.connected&&"out"===r.direction&&("REC"!==(null==r?void 0:r.counterpartName)&&T(r),A.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==r?void 0:r.counterpartName),displayName:_(r),counterpartDeviceType:"",number:"".concat(null==r?void 0:r.counterpartNum),username:"".concat(m&&m[null==r?void 0:r.counterpartNum]&&m[null==r?void 0:r.counterpartNum].username)||""}))}break;case"onhold":E(r);var B=r.counterpartName,K=r.counterpartNum,z=r.startTime;a&&K&&B&&"<unknown>"!==B&&(A.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(r),number:K,startTime:"".concat(h.getTimestampInSeconds())}),A.currentCall.updateCurrentCall({displayName:i.getDisplayName(r),number:K,startTime:"".concat(z/1e3),conversationId:r.id,counterpartDeviceType:""}),A.island.setIslandView("call"));break;case"busy_ringing":l.eventDispatch("phone-island-call-ringing",{})}}}else"online"==t.status&&b.userTotallyFree()&&(E(null),A.player.stopAudioPlayer(),f.releaseStreamingSource(),A.currentCall.reset(),A.listen.reset(),A.physicalRecorder.setRecordingTempVariable(!1))};return function(){var n=r.getApiMode(U);z.current=!1;var i={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3};"new"===n&&(i.path="/api/ws"),V.current=t.io("https://"+D,i),A.websocket.update({socket:V.current}),V.current.on("connect",function(){console.debug("Socket connected sid: ".concat(V.current.id)),l.eventDispatch("phone-island-socket-connected",{})}),V.current.on("disconnect",function(e){console.debug("Socket disconnect - reason: ".concat(e)),K.current=null,z.current=!0,F.current&&(clearInterval(F.current),F.current=null),e.includes("server disconnect")?l.eventDispatch("phone-island-server-disconnected",{}):l.eventDispatch("phone-island-socket-disconnected",{})}),V.current.io.on("error",function(e){console.debug("Socket error: ",e)}),V.current.on("connect_error",function(e){console.debug("Socket connect_error: ",e)}),V.current.io.on("reconnect",function(e){M.current=0,console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(V.current.id,")"))}),V.current.io.on("reconnect_attempt",function(e){console.debug("Socket reconnect_attempt ".concat(e))}),V.current.io.on("reconnect_error",function(e){console.debug("Socket reconnect_error: ",e)}),V.current.io.on("reconnect_failed",function(){console.debug("Socket reconnect_failed")}),V.current.on("connect",function(){console.debug("Socket on: "+D+" is connected!"),M.current=0,K.current=Date.now(),V.current.emit("login",{accessKeyId:"".concat(U),token:j,uaType:P})});var o=function(){setTimeout(function(){A.alerts.removeAlert("socket_down"),l.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),l.eventDispatch("phone-island-socket-disconnected-popup-close",{})},0)};V.current.on("authe_ok",function(){console.debug("Socket authentication success!"),K.current=null,M.current=0,l.eventDispatch("phone-island-socket-authorized",{}),z.current&&(z.current=!1,l.eventDispatch("phone-island-socket-reconnected",{})),o(),F.current&&clearInterval(F.current),F.current=setInterval(function(){var e=V.current.id;V.current.volatile.emit("ping",d.withTimeout(function(){M.current=0,o()},function(){V.current.connected&&V.current.id!==e||(M.current++,console.debug("Socket ping timeout (".concat(M.current,"/").concat(3,"), connected: ").concat(V.current.connected)),setTimeout(function(){var e,n,t=V.current.connected&&M.current>=3;if(!V.current.connected||t){var r=p.store.getState().webrtc.sipcall,i=p.store.getState().currentCall,o=i.accepted,u=i.outgoing,c=null===(n=null===(e=null==r?void 0:r.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===n?void 0:n.iceConnectionState;if((o||u)&&("connected"===c||"completed"===c))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:c,accepted:o,outgoing:u,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),V.current.disconnect(),V.current.connect()),A.alerts.setAlert("socket_down"),l.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}},0))},5e3))},5e3)}),V.current.on("userMainPresenceUpdate",function(n){p.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),g.dispatchMainPresence(n)}),V.current.on("extenHangup",function(e){var n=p.store.getState().currentUser,t=n.endpoints,r=n.username,i=n.call_summary_enabled,o=p.store.getState().conference,u=o.isActive,c=o.conferenceStartedFrom,s=p.store.getState().island,d=s.view,v=s.previewCallFromMobileOrNethlink,m=(null==t?void 0:t.extension)||[],f=m.map(function(e){return e.id}),g=null==e?void 0:e.callerNum;!f.includes(g)&&f.includes(null==e?void 0:e.channelExten)&&(g=null==e?void 0:e.channelExten);var h=m.find(function(n){return n.id===e.callerNum}),b=null==h?void 0:h.type,k=X(g).conversation,S=O(k),y=J(k),q=(null==k?void 0:k.connected)||!1;if(y&&S&&q&&(i&&l.eventDispatch("phone-island-summary-call-check",{linkedid:S,uniqueid:y}),g&&Q.current.delete(g)),"normal_clearing"===e.cause&&("physical"===b||"mobile"===b)||"normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)&&v||"user_busy"===(null==e?void 0:e.cause)||"not_defined"===(null==e?void 0:e.cause)||"call_rejected"===(null==e?void 0:e.cause)||"interworking"===(null==e?void 0:e.cause)?(setTimeout(function(){p.store.dispatch.island.toggleAvoidToShow(!1),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)},500),u&&c!==r&&p.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&u&&c===r?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):"normal_clearing"!==e.cause&&"user_busy"!==(null==e?void 0:e.cause)&&"not_defined"!==(null==e?void 0:e.cause)&&"call_rejected"!==(null==e?void 0:e.cause)||"webrtc"!==b&&"nethlink"!==b||!u||c===r||p.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)||"call_rejected"===(null==e?void 0:e.cause))&&u&&c===r){var w=p.store.getState().conference,C=w.usersList,N=w.pendingUsers,_=C&&Object.keys(C).length>0,T=N&&Object.keys(N).length>0;_||T?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):p.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&u&&c===r&&"waitingConference"!==d&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),"user_busy"===(null==e?void 0:e.cause)){var I=p.store.getState().currentUser,D=I.endpoints,U=I.username,j=((null==D?void 0:D.extension)||[]).map(function(e){return e.id}),x=p.store.getState().currentCall,E=x.incoming,P=x.accepted,A=x.transferring,F=p.store.getState().conference,V=F.isActive,R=F.conferenceStartedFrom;!(E&&!!e.callerNum&&j.includes(e.callerNum))&&(!P||V||A)&&(p.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout(function(){p.store.dispatch.player.stopAudioPlayer()},4e3),setTimeout(function(){p.store.dispatch.player.updateStartAudioPlayer({src:a.default,loop:!0}),p.store.dispatch.island.setIslandView("operatorBusy")},600),V&&R===U&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var M=p.store.getState().conference,L=M.isActive,W=M.conferenceStartedFrom,B=p.store.getState().currentUser.username;if(L&&W===B){var K=p.store.getState().conference;C=K.usersList,N=K.pendingUsers,_=C&&Object.keys(C).length>0,T=N&&Object.keys(N).length>0;_||T?(setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),N&&N[e.callerNum]&&p.store.dispatch.conference.removePendingUser(e.callerNum)):p.store.dispatch.conference.resetConference()}}}),V.current.on("extenConnected",function(e){var n=p.store.getState().currentUser,t=n.default_device,r=n.endpoints,i=((null==r?void 0:r.extension)||[]).find(function(n){return n.id===e.extenConnected}),o=null==i?void 0:i.type;(("webrtc"===(null==t?void 0:t.type)||"nethlink"===(null==t?void 0:t.type))&&o&&("mobile"===o||"physical"===o)||"physical"===(null==t?void 0:t.type)&&o&&"physical"!==o)&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),l.eventDispatch("phone-island-call-answered",{extensionType:o}))}),V.current.on("extenUpdate",function(e){var n,t,r;A.users.updateExtension(e);var i=p.store.getState().users.extensions,o={},u=p.store.getState().currentUser;for(var c in i){var a=i[c].username,s=i[c].exten;o[a]||(o[a]=[]),o[a].push(s)}var l,d,v=o[e.username],m=Object.keys(e.conversations||{}),f=e.username===U,h=(null===(n=e.conversations)||void 0===n?void 0:n[m[0]])||{};f&&(l=e.exten,d=e.conversations,l&&Object.values(d||{}).forEach(function(e){G(e)&&Q.current.set(l,{conversation:e,cachedAt:Date.now()})}));var b=!1;if((null==e?void 0:e.username)===U&&!k.isEmpty(h)&&(null==h?void 0:h.owner)){var S=null===(r=null===(t=null==u?void 0:u.endpoints)||void 0===t?void 0:t.extension)||void 0===r?void 0:r.find(function(e){return e.id===h.owner});S&&"mobile"===S.type&&(b=!0)}if(g.dispatchExtensions(e),k.isEmpty(h)){var y=null==v?void 0:v.some(function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!k.isEmpty(t)});y||g.dispatchConversations(e)}else b||g.dispatchConversations(e);b&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===U&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===U&&(Y(e,h),A.currentUser.updateConversations(e))}),V.current.on("queueUpdate",function(e){A.queue.updateQueue(e);var n,t,r,i=(n=p.store.getState().currentUser.conversations,t=p.store.getState().currentCall.conversationId,r=null,Object.values(n||{}).forEach(function(e){Object.values(e||{}).forEach(function(e){(null==r?void 0:r.id)&&r.id===t||(t&&e.id===t||!r||e.connected&&!r.connected||e.connected===r.connected&&e.startTime>r.startTime)&&(r=e)})}),r);i&&E(i),g.dispatchQueueUpdate(e)}),V.current.on("queueMemberUpdate",function(e){A.queue.updateQueueMember(e),g.dispatchQueueMemberUpdate(e)}),V.current.on("takeOver",function(){g.dispatchAlreadyLogin()}),V.current.on("serverReloaded",function(){g.dispatchServerReload()}),V.current.on("parkingUpdate",function(e){g.dispatchParkingUpdate(e)}),V.current.on("actionNethLink",function(e,n){g.dispatchUrlCall(e,n)}),V.current.on("satellite/summary",function(e){var n=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId),t=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId);n&&v.dispatchSummaryReady({linkedid:t,uniqueid:n,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number,source:"socket"})}),V.current.on("message",function(e){switch(e.message){case"videoCallStart":var n=p.store.getState(),t=n.currentCall,r=t.incoming,i=t.outgoing,o=t.accepted,u=n.currentUser.default_device,c=n.island,a=c.isFromStreaming,s=c.view;("webrtc"===(null==u?void 0:u.type)||"nethlink"===(null==u?void 0:u.type))&&(r||i||o)&&!a&&"video"!==s&&(A.island.toggleSideViewVisible(!1),A.island.toggleTranscriptionViewVisible(!1),A.island.setIslandView("video")),g.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":A.island.toggleSideViewVisible(!1),A.island.toggleTranscriptionViewVisible(!1),A.island.setIslandView("video"),A.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":var l=p.store.getState().screenShare.room,d=e.roomId;if(l&&d&&"".concat(d)!=="".concat(l))break;A.island.toggleSideViewVisible(!1),A.island.toggleTranscriptionViewVisible(!1),A.island.setIslandView("video"),A.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}}),V.current.on("updateDefaultDevice",function(n){g.dispatchDefaultDeviceUpdate(n);var t=p.store.getState().users.extensions,r=p.store.getState().currentUser.endpoints;if(t&&r){var i=Object.values(t).filter(function(e){return(null==e?void 0:e.exten)===n});if(0!==i.length){var o=i[0],u=r.extension.find(function(e){return e.id===o.exten});u&&(o=e.__assign(e.__assign({},o),{type:u.type})),p.store.dispatch.currentUser.updateCurrentDefaultDevice(o),y.checkMediaPermissions()}}}),V.current.on("confBridgeUpdate",function(n){if(n&&(null==n?void 0:n.users)){var t=null==n?void 0:n.id,r=null==n?void 0:n.users,i=p.store.getState().conference.usersList,o=e.__assign({},r);i&&Object.keys(o).forEach(function(n){i[n]&&(o[n]=e.__assign(e.__assign({},o[n]),{muted:i[n].muted}))}),p.store.dispatch.conference.updateConferenceUsersList(o),p.store.dispatch.conference.updateConferenceId(t)}}),V.current.on("confBridgeEnd",function(e){e&&(null==e?void 0:e.id)&&(p.store.dispatch.conference.resetConference(),l.eventDispatch("phone-island-conference-finished",{}))}),V.current.on("callWebrtc",function(e){l.eventDispatch("phone-island-call-start",{number:e})}),V.current.on("newVoiceMessageCounter",function(e){l.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})}),V.current.on("streamingSourceUpdate",function(e){l.eventDispatch("phone-island-streaming-information-received",{res:e});var n=e.streaming||e.res&&e.res.streaming;if(n){var t=n.source,r=n.image;t&&r&&A.streaming.updateSourceImage({source:t,image:r})}}),V.current.on("satellite/transcription",function(e){var n=H.current,t=null==e?void 0:e.uniqueid,r=null==e?void 0:e.linkedid;if(n.linkedid&&t){var i=function(e){return null!=e&&(e===n.linkedid||e===n.uniqueid)};if(!i(t)&&!i(r))return}l.eventDispatch("phone-island-conversation-transcription",e)})}(),function(){clearInterval(F.current),W.current.clear(),B.current.clear(),V.current.close()}},[D,U,j,P,A]),n.useEffect(function(){var e,n;if(x){console.info("Socket reload requested");var t=p.store.getState().alerts.data,r=p.store.getState().island.forceReload,i=(null===(e=t.socket_down)||void 0===e?void 0:e.active)||!1,o=!(null===(n=V.current)||void 0===n?void 0:n.connected);!o&&null!==K.current&&Date.now()-K.current<3e4&&!r?(console.info("Socket connected and authenticating, skipping reconnection"),E()):i||o||r?(console.info(r?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active or disconnected), performing reconnection"),F.current&&(clearInterval(F.current),F.current=null),setTimeout(function(){V.current.disconnect(),V.current.connect(),E()},100)):(console.info("Socket already connected (no alert active), skipping reconnection"),E())}},[x]),I.default.createElement(I.default.Fragment,null,O)};
|
|
2
2
|
//# sourceMappingURL=Socket.js.map
|