@nethesis/phone-island 1.0.10-dev.3 → 1.0.10-dev.5

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var r=require("../../styles/Island.styles.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("../../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e);exports.default=function(){var e=s.useSelector((function(e){return e.currentCall})),n=e.number,l=e.displayName,o=s.useSelector((function(e){return e.island})).isOpen,i=t.useTranslation().t;if(n&&l&&n===l)return null;var a="unknown"===n?i("TextScroll.unknown"):n||i("Call.In progress...")||"-";return u.default.createElement(r.StyledNumber,{isOpen:o},u.default.createElement("span",{className:"dark:pi-text-gray-50 pi-text-gray-600"},a))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var r=require("../../styles/Island.styles.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("../../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e);exports.default=function(){var e=s.useSelector((function(e){return e.currentCall})).number,n=s.useSelector((function(e){return e.island})).isOpen,l=t.useTranslation().t,o="unknown"===e?l("TextScroll.unknown"):e||l("Call.In progress...")||"-";return u.default.createElement(r.StyledNumber,{isOpen:n},u.default.createElement("span",{className:"dark:pi-text-gray-50 pi-text-gray-600"},o))};
2
2
  //# sourceMappingURL=Number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","sources":["../../../src/components/CallView/Number.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledNumber } from '../../styles/Island.styles'\nimport { useTranslation } from 'react-i18next'\n\nconst Number: FC = () => {\n const { number, displayName } = useSelector((state: RootState) => state.currentCall)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { t } = useTranslation()\n\n // When the counterpart is not in the phonebook, getDisplayName falls back to the\n // number itself, so it is already shown as the display name. Rendering it here too\n // would duplicate the number (display name + number), so skip it in that case.\n if (number && displayName && number === displayName) {\n return null\n }\n\n const displayNumber =\n number === 'unknown' ? t('TextScroll.unknown') : number || t('Call.In progress...') || '-'\n\n return (\n <StyledNumber isOpen={isOpen}>\n <span className='dark:pi-text-gray-50 pi-text-gray-600'>{displayNumber}</span>\n </StyledNumber>\n )\n}\n\nexport default Number\n"],"names":["_a","useSelector","state","currentCall","number","displayName","isOpen","island","t","useTranslation","displayNumber","React","createElement","StyledNumber","className"],"mappings":"k2BASmB,WACX,IAAAA,EAA0BC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAA3EC,WAAQC,gBACRC,EAAWL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,iBACnDC,EAAMC,qBAKd,GAAIL,GAAUC,GAAeD,IAAWC,EACtC,OAAO,KAGT,IAAMK,EACO,YAAXN,EAAuBI,EAAE,sBAAwBJ,GAAUI,EAAE,wBAA0B,IAEzF,OACEG,EAAC,QAAAC,cAAAC,EAAYA,aAAC,CAAAP,OAAQA,GACpBK,EAAM,QAAAC,cAAA,OAAA,CAAAE,UAAU,yCAAyCJ,GAG/D"}
1
+ {"version":3,"file":"Number.js","sources":["../../../src/components/CallView/Number.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledNumber } from '../../styles/Island.styles'\nimport { useTranslation } from 'react-i18next'\n\nconst Number: FC = () => {\n const { number } = useSelector((state: RootState) => state.currentCall)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { t } = useTranslation()\n\n const displayNumber =\n number === 'unknown' ? t('TextScroll.unknown') : number || t('Call.In progress...') || '-'\n\n return (\n <StyledNumber isOpen={isOpen}>\n <span className='dark:pi-text-gray-50 pi-text-gray-600'>{displayNumber}</span>\n </StyledNumber>\n )\n}\n\nexport default Number\n"],"names":["number","useSelector","state","currentCall","isOpen","island","t","useTranslation","displayNumber","React","createElement","StyledNumber","className"],"mappings":"k2BASmB,WACT,IAAAA,EAAWC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,sBACnDC,EAAWH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,iBACnDC,EAAMC,qBAERC,EACO,YAAXR,EAAuBM,EAAE,sBAAwBN,GAAUM,EAAE,wBAA0B,IAEzF,OACEG,EAAC,QAAAC,cAAAC,EAAYA,aAAC,CAAAP,OAAQA,GACpBK,EAAM,QAAAC,cAAA,OAAA,CAAAE,UAAU,yCAAyCJ,GAG/D"}
@@ -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("../services/user.js"),u=require("../static/busy_ringtone.js"),c=require("../utils/customHooks/useEventListener.js"),a=require("../utils/genericFunctions/eventDispatch.js"),s=require("../utils/genericFunctions/withTimeout.js"),l=require("../utils/genericFunctions/summaryEvents.js"),d=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var v=require("../lib/devices/devices.js"),p=require("../lib/user/default_device.js"),m=require("../utils/genericFunctions/isEmpty.js"),g=require("../utils/streaming/getStreamingSourceId.js"),f=require("../events/SocketEvents.js"),h=require("../utils/genericFunctions/timestamp.js"),b=require("../lib/user/extensions.js"),k=require("../utils/streaming/isFromStreaming.js"),S=require("../lib/phone/queue.js"),y=require("../lib/phone/trunk.js"),q=require("../node_modules/react-redux/es/hooks/useDispatch.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=w(n);exports.Socket=function(w){var _=w.hostName,N=w.username,I=w.authToken,T=w.reload,U=w.reloadedCallback,j=w.children,D=w.uaType,x=q.useDispatch(),E=n.useRef(),O=n.useRef(),P=n.useRef(!1),A=n.useRef(0),F=n.useRef(null),V=n.useRef(new Map),M=n.useRef({linkedid:null,uniqueid:null});c.useEventListener("phone-island-start-transcription",(function(e){if(O.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;M.current={linkedid:n,uniqueid:t},O.current.emit("start_transcription",{linkedid:n,uniqueid:t})}})),c.useEventListener("phone-island-stop-transcription",(function(e){if(O.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;M.current={linkedid:null,uniqueid:null},O.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}})),c.useEventListener("phone-island-current-user-queue-call-waiting",(function(e){x.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})})),c.useEventListener("phone-island-current-user-queue-call-connected",(function(e){x.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,c=function(e){if(e.counterpartNum&&k.isFromStreaming(e.counterpartNum)){x.island.setIsFromStreaming(!0),x.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=g.getStreamingSourceId(e.counterpartNum);n&&o.subscribe({id:n}).catch((function(e){return console.error("Error subscribing to streaming source:",e)}))}},q=function(e){var n,t,r,i;if(e){var o=function(e){return S.getCurrentCallQueueContext(e,d.store.getState().queue)}(e),u=function(e,n){var t=d.store.getState().currentCall;return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:(null==n?void 0:n.queueId)||t.queueId||"",queueName:(null==n?void 0:n.queueName)||t.queueName||"",queueNumber:(null==n?void 0:n.queueNumber)||t.queueNumber||"",queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}}(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=F.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=F.current)||void 0===i?void 0:i.phase))&&(f.dispatchCurrentUserQueueCallConnected(u),F.current={conversationId:e.id,phase:"connected"});else((null===(n=F.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=F.current)||void 0===t?void 0:t.phase))&&(f.dispatchCurrentUserQueueCallWaiting(u),F.current={conversationId:e.id,phase:"waiting"});else F.current=null}else F.current=null},w=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},C=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},T=function(e){return!!(null==e?void 0:e.connected)&&!!w(e)&&!!C(e)},U=function(n){var t=d.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=T(t),a=T(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(T(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&&T(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||{})})},j=function(n,t){var r=d.store.getState().currentCall,u=r.transferring,s=r.transferSwitching,l=r.transferCalls,v=d.store.getState().island.view;if(Object.keys(t).length>0){if(n.status){var m=d.store.getState().users.extensions,g=d.store.getState().currentUser.default_device,f=d.store.getState().currentUser,k=f.endpoints,S=f.username,w=d.store.getState().currentCall;w.incoming,w.outgoing;var C=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==k?void 0:k.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(n.status){case"ringing":if(function(e){var n=d.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(t.owner))break;q(t),c(t),("mobile"===D&&C()||"desktop"===D&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!C()||!C()&&"physical"===(null==g?void 0:g.type)))&&(x.currentCall.checkIncomingUpdatePlay({conversationId:t.id,displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),incomingSocket:!0,incoming:!0,username:"".concat(m&&m[t.counterpartNum]&&m[t.counterpartNum].username)||"",ownerExtension:t.owner}),d.store.dispatch.island.setIslandView("call")),P.current||(P.current=!0,o.getCurrentUserInfo().then((function(n){n&&(x.currentUser.updateCurrentUser(n),a.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?x.paramUrl.setOpenParamUrlType(n.settings.open_param_url):x.paramUrl.setOpenParamUrlType("never"))})).catch((function(e){console.error("Error getting current user info:",e)})).finally((function(){setTimeout((function(){P.current=!1}),100)})));var _=d.store.getState().paramUrl.openParamUrlType,N=d.store.getState().island.urlOpened;if("ringing"===_&&!N){var I=y.isFromTrunk(t.counterpartNum);d.store.dispatch.paramUrl.setThroughTrunk(I),d.store.dispatch.island.setUrlOpened(!1),a.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:t.counterpartNum,counterpartName:i.getDisplayName(t),owner:t.owner,uniqueId:t.uniqueId,linkedId:t.linkedId,throughQueue:t.throughQueue,throughTrunk:I,direction:t.direction,connected:t.connected})}break;case"busy":if(q(t),c(t),"mobile"===D&&C()||"desktop"===D&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!C()||!C()&&"physical"===(null==g?void 0:g.type))){if(t&&t.connected)x.currentCall.updateCurrentCall({conversationId:t.id,displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),ownerExtension:t.owner,username:"".concat(m&&m[t.counterpartNum]&&m[t.counterpartNum].username)||"",chDest:(null==t?void 0:t.chDest)||{},chSource:(null==t?void 0:t.chSource)||{}}),x.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),x.currentCall.addTransferCalls({type:"transferred",displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),startTime:"".concat(h.getTimestampInSeconds())}),d.store.getState().island.isFromStreaming&&"out"===t.direction&&setTimeout((function(){x.island.setIslandView("streamingAnswer")}),200),p.isPhysical()&&function(e){x.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),a.eventDispatch("phone-island-call-answered",{}),d.store.dispatch.player.stopAudioPlayer(),d.store.dispatch.player.setAudioPlayerLoop(!1)}(t),"call"===v&&u&&x.currentCall.updateCurrentCall({transferring:!1});if(l.length>1)x.currentCall.deleteTransferCalls();else if(t&&!t.connected){if(u&&!s){var T=l.find((function(e){return e.number===t.counterpartNum}));!t.connected&&T&&(x.currentCall.updateCurrentCall({transferring:!1}),a.eventDispatch("phone-island-call-transfer-failed",{}),x.currentCall.updateTransferSwitching(!1))}"REC"===(null==t?void 0:t.counterpartName)&&x.physicalRecorder.setRecordingTempVariable(!0)}t&&!t.connected&&"out"===t.direction&&x.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==t?void 0:t.counterpartName),displayName:i.getDisplayName(t),number:"".concat(null==t?void 0:t.counterpartNum),username:"".concat(m&&m[null==t?void 0:t.counterpartNum]&&m[null==t?void 0:t.counterpartNum].username)||""})}break;case"onhold":q(t);var U=t.counterpartName,j=t.counterpartNum,E=t.startTime;u&&j&&U&&"<unknown>"!==U&&(x.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(t),number:j,startTime:"".concat(h.getTimestampInSeconds())}),x.currentCall.updateCurrentCall({displayName:i.getDisplayName(t),number:j,startTime:"".concat(E/1e3),conversationId:t.id}),x.island.setIslandView("call"));break;case"busy_ringing":a.eventDispatch("phone-island-call-ringing",{})}}}else"online"==n.status&&b.userTotallyFree()&&(q(null),x.player.stopAudioPlayer(),x.currentCall.reset(),x.physicalRecorder.setRecordingTempVariable(!1),x.island.setIsFromStreaming(!1))};return n={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3},"new"===r.getApiMode(N)&&(n.path="/api/ws"),O.current=t.io("https://"+_,n),x.websocket.update({socket:O.current}),O.current.on("connect",(function(){console.debug("Socket connected sid: ".concat(O.current.id)),a.eventDispatch("phone-island-socket-connected",{})})),O.current.on("disconnect",(function(e){console.debug("Socket disconnect - reason: ".concat(e)),E.current&&(clearInterval(E.current),E.current=null),e.includes("server disconnect")?a.eventDispatch("phone-island-server-disconnected",{}):a.eventDispatch("phone-island-socket-disconnected",{})})),O.current.io.on("error",(function(e){console.debug("Socket error: ",e)})),O.current.on("connect_error",(function(e){console.debug("Socket connect_error: ",e)})),O.current.io.on("reconnect",(function(e){A.current=0,a.eventDispatch("phone-island-socket-reconnected",{}),console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(O.current.id,")"))})),O.current.io.on("reconnect_attempt",(function(e){console.debug("Socket reconnect_attempt ".concat(e))})),O.current.io.on("reconnect_error",(function(e){console.debug("Socket reconnect_error: ",e)})),O.current.io.on("reconnect_failed",(function(){console.debug("Socket reconnect_failed")})),O.current.on("connect",(function(){console.debug("Socket on: "+_+" is connected!"),O.current.emit("login",{accessKeyId:"".concat(N),token:I,uaType:D})})),O.current.on("authe_ok",(function(){console.debug("Socket authentication success!"),a.eventDispatch("phone-island-socket-authorized",{}),E.current&&clearInterval(E.current),E.current=setInterval((function(){O.current.volatile.emit("ping",s.withTimeout((function(){A.current=0,setTimeout((function(){x.alerts.removeAlert("socket_down"),a.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),a.eventDispatch("phone-island-socket-disconnected-popup-close",{})}),0)}),(function(){A.current++,console.debug("Socket ping timeout (".concat(A.current,"/").concat(3,"), connected: ").concat(O.current.connected)),setTimeout((function(){var e,n,t=O.current.connected&&A.current>=3;if(!O.current.connected||t){var r=d.store.getState().webrtc.sipcall,i=d.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"),O.current.disconnect()),x.alerts.setAlert("socket_down"),a.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}}),0)}),5e3))}),5e3)})),O.current.on("userMainPresenceUpdate",(function(n){d.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),f.dispatchMainPresence(n)})),O.current.on("extenHangup",(function(e){var n=d.store.getState().currentUser,t=n.endpoints,r=n.username,i=d.store.getState().conference,o=i.isActive,c=i.conferenceStartedFrom,s=d.store.getState().island,l=s.view,v=s.previewCallFromMobileOrNethlink,p=(null==t?void 0:t.extension)||[],m=p.map((function(e){return e.id})),g=null==e?void 0:e.callerNum;!m.includes(g)&&m.includes(null==e?void 0:e.channelExten)&&(g=null==e?void 0:e.channelExten);var f=p.find((function(n){return n.id===e.callerNum})),h=null==f?void 0:f.type,b=U(g).conversation,k=w(b),S=C(b),y=(null==b?void 0:b.connected)||!1;if(S&&k&&y&&(a.eventDispatch("phone-island-summary-call-check",{linkedid:k,uniqueid:S}),g&&V.current.delete(g)),"normal_clearing"===e.cause&&("physical"===h||"mobile"===h)||"normal_clearing"===e.cause&&("webrtc"===h||"nethlink"===h)&&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(){d.store.dispatch.island.toggleAvoidToShow(!1),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)}),500),o&&c!==r&&d.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&o&&c===r?setTimeout((function(){a.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"!==h&&"nethlink"!==h||!o||c===r||d.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===h||"nethlink"===h)||"call_rejected"===(null==e?void 0:e.cause))&&o&&c===r){var q=d.store.getState().conference,_=q.usersList,N=q.pendingUsers,I=_&&Object.keys(_).length>0,T=N&&Object.keys(N).length>0;I||T?setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800):d.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&o&&c===r&&"waitingConference"!==l&&setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),"user_busy"===(null==e?void 0:e.cause)){var j=d.store.getState().currentUser,D=j.endpoints,x=j.username,E=((null==D?void 0:D.extension)||[]).map((function(e){return e.id})),O=d.store.getState().currentCall,P=O.incoming,A=O.accepted,F=O.transferring,M=d.store.getState().conference,R=M.isActive,L=M.conferenceStartedFrom;!(P&&e.callerNum&&E.includes(e.callerNum))&&(!A||R||F)&&(d.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout((function(){d.store.dispatch.player.stopAudioPlayer()}),4e3),setTimeout((function(){d.store.dispatch.player.updateStartAudioPlayer({src:u.default,loop:!0}),d.store.dispatch.island.setIslandView("operatorBusy")}),600),R&&L===x&&setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var Q=d.store.getState().conference,W=Q.isActive,B=Q.conferenceStartedFrom,K=d.store.getState().currentUser.username;if(W&&B===K){var H=d.store.getState().conference;_=H.usersList,N=H.pendingUsers,I=_&&Object.keys(_).length>0,T=N&&Object.keys(N).length>0,I||T?(setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),N&&N[e.callerNum]&&d.store.dispatch.conference.removePendingUser(e.callerNum)):d.store.dispatch.conference.resetConference()}}})),O.current.on("extenConnected",(function(e){var n=d.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)&&(d.store.dispatch.island.toggleAvoidToShow(!0),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),a.eventDispatch("phone-island-call-answered",{extensionType:o}))})),O.current.on("extenUpdate",(function(e){var n,t,r;x.users.updateExtension(e);var i=d.store.getState().users.extensions,o={},u=d.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,v,p=o[e.username],g=Object.keys(e.conversations||{}),h=e.username===N,b=(null===(n=e.conversations)||void 0===n?void 0:n[g[0]])||{};h&&(l=e.exten,v=e.conversations,l&&Object.values(v||{}).forEach((function(e){T(e)&&V.current.set(l,{conversation:e,cachedAt:Date.now()})})));var k=!1;if((null==e?void 0:e.username)===N&&!m.isEmpty(b)&&(null==b?void 0:b.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===b.owner}));S&&"mobile"===S.type&&(k=!0)}if(f.dispatchExtensions(e),m.isEmpty(b)){var y=null==p?void 0:p.some((function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!m.isEmpty(t)}));y||f.dispatchConversations(e)}else k||f.dispatchConversations(e);k&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===N&&(d.store.dispatch.island.toggleAvoidToShow(!0),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===N&&(j(e,b),x.currentUser.updateConversations(e))})),O.current.on("queueUpdate",(function(e){x.queue.updateQueue(e);var n,t,r,i=(n=d.store.getState().currentUser.conversations,t=d.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&&q(i),f.dispatchQueueUpdate(e)})),O.current.on("queueMemberUpdate",(function(e){x.queue.updateQueueMember(e),f.dispatchQueueMemberUpdate(e)})),O.current.on("takeOver",(function(){f.dispatchAlreadyLogin()})),O.current.on("serverReloaded",(function(){f.dispatchServerReload()})),O.current.on("parkingUpdate",(function(e){f.dispatchParkingUpdate(e)})),O.current.on("actionNethLink",(function(e,n){f.dispatchUrlCall(e,n)})),O.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&&l.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"})})),O.current.on("message",(function(e){switch(e.message){case"videoCallStart":var n=d.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&&(x.island.toggleSideViewVisible(!1),x.island.toggleTranscriptionViewVisible(!1),x.island.setIslandView("video")),f.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":x.island.toggleSideViewVisible(!1),x.island.toggleTranscriptionViewVisible(!1),x.island.setIslandView("video"),x.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":x.island.toggleSideViewVisible(!1),x.island.toggleTranscriptionViewVisible(!1),x.island.setIslandView("video"),x.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}})),O.current.on("updateDefaultDevice",(function(n){f.dispatchDefaultDeviceUpdate(n);var t=d.store.getState().users.extensions,r=d.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})),d.store.dispatch.currentUser.updateCurrentDefaultDevice(o),v.checkMediaPermissions()}}})),O.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=d.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}))})),d.store.dispatch.conference.updateConferenceUsersList(o),d.store.dispatch.conference.updateConferenceId(t)}})),O.current.on("confBridgeEnd",(function(e){e&&(null==e?void 0:e.id)&&(d.store.dispatch.conference.resetConference(),a.eventDispatch("phone-island-conference-finished",{}))})),O.current.on("callWebrtc",(function(e){a.eventDispatch("phone-island-call-start",{number:e})})),O.current.on("newVoiceMessageCounter",(function(e){a.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})})),O.current.on("streamingSourceUpdate",(function(e){a.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;if(t&&r){d.store.getState().island.isFromStreaming;var i=d.store.getState().currentCall.streamingSourceNumber;g.getStreamingSourceId(i),x.streaming.updateSourceImage({source:t,image:r})}}})),O.current.on("satellite/transcription",(function(e){var n=M.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}a.eventDispatch("phone-island-conversation-transcription",e)})),function(){clearInterval(E.current),O.current.close()}}),[_,N,I,D,x]),n.useEffect((function(){var e;if(T){console.info("Socket reload requested");var n=d.store.getState().alerts.data,t=d.store.getState().island.forceReload;(null===(e=n.socket_down)||void 0===e?void 0:e.active)||!1||t?(console.info(t?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active), performing reconnection"),t&&d.store.dispatch.island.setForceReload(!1),E.current&&(clearInterval(E.current),E.current=null),setTimeout((function(){O.current.disconnect(),O.current.connect(),U()}),100)):(console.info("Socket already connected (no alert active), skipping reconnection"),U())}}),[T]),C.default.createElement(C.default.Fragment,null,j)};
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("../services/phonebook.js"),u=require("../services/user.js"),c=require("../static/busy_ringtone.js"),a=require("../utils/customHooks/useEventListener.js"),s=require("../utils/genericFunctions/eventDispatch.js"),l=require("../utils/genericFunctions/withTimeout.js"),d=require("../utils/genericFunctions/summaryEvents.js"),v=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var p=require("../lib/devices/devices.js"),m=require("../lib/user/default_device.js"),f=require("../utils/genericFunctions/isEmpty.js"),g=require("../utils/streaming/getStreamingSourceId.js"),h=require("../events/SocketEvents.js"),b=require("../utils/genericFunctions/timestamp.js"),k=require("../lib/user/extensions.js"),S=require("../utils/streaming/isFromStreaming.js"),y=require("../lib/phone/queue.js"),w=require("../lib/phone/trunk.js"),C=require("../node_modules/react-redux/es/hooks/useDispatch.js");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=q(n);exports.Socket=function(q){var N=q.hostName,I=q.username,T=q.authToken,j=q.reload,U=q.reloadedCallback,D=q.children,x=q.uaType,E=C.useDispatch(),O=n.useRef(),P=n.useRef(),F=n.useRef(!1),A=n.useRef(0),V=n.useRef(null),M=n.useRef(new Map),R=n.useRef(new Map),L=n.useRef(new Set),Q=n.useRef({linkedid:null,uniqueid:null});a.useEventListener("phone-island-start-transcription",(function(e){if(P.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;Q.current={linkedid:n,uniqueid:t},P.current.emit("start_transcription",{linkedid:n,uniqueid:t})}})),a.useEventListener("phone-island-stop-transcription",(function(e){if(P.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;Q.current={linkedid:null,uniqueid:null},P.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}})),a.useEventListener("phone-island-current-user-queue-call-waiting",(function(e){E.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})})),a.useEventListener("phone-island-current-user-queue-call-connected",(function(e){E.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,a=function(e){if(e.counterpartNum&&S.isFromStreaming(e.counterpartNum)){E.island.setIsFromStreaming(!0),E.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=g.getStreamingSourceId(e.counterpartNum);n&&u.subscribe({id:n}).catch((function(e){return console.error("Error subscribing to streaming source:",e)}))}},C=function(e){return(e||"").replace(/\D/g,"")},q=function(e){var n=i.getDisplayName(e),t=((null==e?void 0:e.counterpartNum)||"").trim();return n&&n!==t?n:(t?R.current.get(C(t)):void 0)||n},_=function(e){var n,t,r,i;if(e){var o=function(e){return y.getCurrentCallQueueContext(e,v.store.getState().queue)}(e),u=function(e,n){var t=v.store.getState().currentCall;return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:(null==n?void 0:n.queueId)||t.queueId||"",queueName:(null==n?void 0:n.queueName)||t.queueName||"",queueNumber:(null==n?void 0:n.queueNumber)||t.queueNumber||"",queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}}(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=V.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=V.current)||void 0===i?void 0:i.phase))&&(h.dispatchCurrentUserQueueCallConnected(u),V.current={conversationId:e.id,phase:"connected"});else((null===(n=V.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=V.current)||void 0===t?void 0:t.phase))&&(h.dispatchCurrentUserQueueCallWaiting(u),V.current={conversationId:e.id,phase:"waiting"});else V.current=null}else V.current=null},j=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},U=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},D=function(e){return!!(null==e?void 0:e.connected)&&!!j(e)&&!!U(e)},W=function(n){var t=v.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=D(t),a=D(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(D(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=M.current.get(n);if(!t)return null;var r=Date.now()-t.cachedAt;return r>6e5?(M.current.delete(n),null):e.__assign(e.__assign({},t),{cacheAgeMs:r})}(n);return o&&D(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||{})})},B=function(n,t){var r=v.store.getState().currentCall,c=r.transferring,l=r.transferSwitching,d=r.transferCalls,p=v.store.getState().island.view;if(Object.keys(t).length>0){if(n.status){var f=v.store.getState().users.extensions,g=v.store.getState().currentUser.default_device,h=v.store.getState().currentUser,y=h.endpoints,N=h.username,I=v.store.getState().currentCall;I.incoming,I.outgoing;var T=function(){if(!f||!N)return!1;var e=Object.values(f).filter((function(e){return(null==e?void 0:e.username)===N}));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(n.status){case"ringing":if(function(e){var n=v.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(t.owner))break;_(t),a(t),function(e){if(e&&"in"===e.direction){var n=(e.counterpartNum||"").trim();if(!(n.length<3)){var t=(e.counterpartName||"").trim();if(!t||"<unknown>"===t||t===n){var r=v.store.getState().users.extensions;if(!(r&&r[n]||S.isFromStreaming(n))){var i=C(n);R.current.has(i)||e.id&&L.current.has(e.id)||(e.id&&L.current.add(e.id),o.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=C(e);return n.length>0&&(n===i||n.endsWith(i)||i.endsWith(n))}))})),t=((null==n?void 0:n.name)||(null==n?void 0:n.company)||"").trim();if(t){R.current.set(i,t);var r=v.store.getState().currentCall;C(r.number)===i&&E.currentCall.updateCurrentCall({displayName:t})}})).catch((function(){})))}}}}}(t),("mobile"===x&&T()||"desktop"===x&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!T()||!T()&&"physical"===(null==g?void 0:g.type)))&&(E.currentCall.checkIncomingUpdatePlay({conversationId:t.id,displayName:q(t),number:"".concat(t.counterpartNum),incomingSocket:!0,incoming:!0,username:"".concat(f&&f[t.counterpartNum]&&f[t.counterpartNum].username)||"",ownerExtension:t.owner}),v.store.dispatch.island.setIslandView("call")),F.current||(F.current=!0,u.getCurrentUserInfo().then((function(n){n&&(E.currentUser.updateCurrentUser(n),s.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?E.paramUrl.setOpenParamUrlType(n.settings.open_param_url):E.paramUrl.setOpenParamUrlType("never"))})).catch((function(e){console.error("Error getting current user info:",e)})).finally((function(){setTimeout((function(){F.current=!1}),100)})));var j=v.store.getState().paramUrl.openParamUrlType,U=v.store.getState().island.urlOpened;if("ringing"===j&&!U){var D=w.isFromTrunk(t.counterpartNum);v.store.dispatch.paramUrl.setThroughTrunk(D),v.store.dispatch.island.setUrlOpened(!1),s.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:t.counterpartNum,counterpartName:q(t),owner:t.owner,uniqueId:t.uniqueId,linkedId:t.linkedId,throughQueue:t.throughQueue,throughTrunk:D,direction:t.direction,connected:t.connected})}break;case"busy":if(_(t),a(t),"mobile"===x&&T()||"desktop"===x&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!T()||!T()&&"physical"===(null==g?void 0:g.type))){if(t&&t.connected)E.currentCall.updateCurrentCall({conversationId:t.id,displayName:q(t),number:"".concat(t.counterpartNum),ownerExtension:t.owner,username:"".concat(f&&f[t.counterpartNum]&&f[t.counterpartNum].username)||"",chDest:(null==t?void 0:t.chDest)||{},chSource:(null==t?void 0:t.chSource)||{}}),E.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),E.currentCall.addTransferCalls({type:"transferred",displayName:q(t),number:"".concat(t.counterpartNum),startTime:"".concat(b.getTimestampInSeconds())}),v.store.getState().island.isFromStreaming&&"out"===t.direction&&setTimeout((function(){E.island.setIslandView("streamingAnswer")}),200),m.isPhysical()&&function(e){E.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),s.eventDispatch("phone-island-call-answered",{}),v.store.dispatch.player.stopAudioPlayer(),v.store.dispatch.player.setAudioPlayerLoop(!1)}(t),"call"===p&&c&&E.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)E.currentCall.deleteTransferCalls();else if(t&&!t.connected){if(c&&!l){var O=d.find((function(e){return e.number===t.counterpartNum}));!t.connected&&O&&(E.currentCall.updateCurrentCall({transferring:!1}),s.eventDispatch("phone-island-call-transfer-failed",{}),E.currentCall.updateTransferSwitching(!1))}"REC"===(null==t?void 0:t.counterpartName)&&E.physicalRecorder.setRecordingTempVariable(!0)}t&&!t.connected&&"out"===t.direction&&E.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==t?void 0:t.counterpartName),displayName:i.getDisplayName(t),number:"".concat(null==t?void 0:t.counterpartNum),username:"".concat(f&&f[null==t?void 0:t.counterpartNum]&&f[null==t?void 0:t.counterpartNum].username)||""})}break;case"onhold":_(t);var P=t.counterpartName,A=t.counterpartNum,V=t.startTime;c&&A&&P&&"<unknown>"!==P&&(E.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(t),number:A,startTime:"".concat(b.getTimestampInSeconds())}),E.currentCall.updateCurrentCall({displayName:i.getDisplayName(t),number:A,startTime:"".concat(V/1e3),conversationId:t.id}),E.island.setIslandView("call"));break;case"busy_ringing":s.eventDispatch("phone-island-call-ringing",{})}}}else"online"==n.status&&k.userTotallyFree()&&(_(null),E.player.stopAudioPlayer(),E.currentCall.reset(),E.physicalRecorder.setRecordingTempVariable(!1),E.island.setIsFromStreaming(!1))};return n={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3},"new"===r.getApiMode(I)&&(n.path="/api/ws"),P.current=t.io("https://"+N,n),E.websocket.update({socket:P.current}),P.current.on("connect",(function(){console.debug("Socket connected sid: ".concat(P.current.id)),s.eventDispatch("phone-island-socket-connected",{})})),P.current.on("disconnect",(function(e){console.debug("Socket disconnect - reason: ".concat(e)),O.current&&(clearInterval(O.current),O.current=null),e.includes("server disconnect")?s.eventDispatch("phone-island-server-disconnected",{}):s.eventDispatch("phone-island-socket-disconnected",{})})),P.current.io.on("error",(function(e){console.debug("Socket error: ",e)})),P.current.on("connect_error",(function(e){console.debug("Socket connect_error: ",e)})),P.current.io.on("reconnect",(function(e){A.current=0,s.eventDispatch("phone-island-socket-reconnected",{}),console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(P.current.id,")"))})),P.current.io.on("reconnect_attempt",(function(e){console.debug("Socket reconnect_attempt ".concat(e))})),P.current.io.on("reconnect_error",(function(e){console.debug("Socket reconnect_error: ",e)})),P.current.io.on("reconnect_failed",(function(){console.debug("Socket reconnect_failed")})),P.current.on("connect",(function(){console.debug("Socket on: "+N+" is connected!"),P.current.emit("login",{accessKeyId:"".concat(I),token:T,uaType:x})})),P.current.on("authe_ok",(function(){console.debug("Socket authentication success!"),s.eventDispatch("phone-island-socket-authorized",{}),O.current&&clearInterval(O.current),O.current=setInterval((function(){P.current.volatile.emit("ping",l.withTimeout((function(){A.current=0,setTimeout((function(){E.alerts.removeAlert("socket_down"),s.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),s.eventDispatch("phone-island-socket-disconnected-popup-close",{})}),0)}),(function(){A.current++,console.debug("Socket ping timeout (".concat(A.current,"/").concat(3,"), connected: ").concat(P.current.connected)),setTimeout((function(){var e,n,t=P.current.connected&&A.current>=3;if(!P.current.connected||t){var r=v.store.getState().webrtc.sipcall,i=v.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"),P.current.disconnect()),E.alerts.setAlert("socket_down"),s.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}}),0)}),5e3))}),5e3)})),P.current.on("userMainPresenceUpdate",(function(n){v.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),h.dispatchMainPresence(n)})),P.current.on("extenHangup",(function(e){var n=v.store.getState().currentUser,t=n.endpoints,r=n.username,i=v.store.getState().conference,o=i.isActive,u=i.conferenceStartedFrom,a=v.store.getState().island,l=a.view,d=a.previewCallFromMobileOrNethlink,p=(null==t?void 0:t.extension)||[],m=p.map((function(e){return e.id})),f=null==e?void 0:e.callerNum;!m.includes(f)&&m.includes(null==e?void 0:e.channelExten)&&(f=null==e?void 0:e.channelExten);var g=p.find((function(n){return n.id===e.callerNum})),h=null==g?void 0:g.type,b=W(f).conversation,k=j(b),S=U(b),y=(null==b?void 0:b.connected)||!1;if(S&&k&&y&&(s.eventDispatch("phone-island-summary-call-check",{linkedid:k,uniqueid:S}),f&&M.current.delete(f)),"normal_clearing"===e.cause&&("physical"===h||"mobile"===h)||"normal_clearing"===e.cause&&("webrtc"===h||"nethlink"===h)&&d||"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(){v.store.dispatch.island.toggleAvoidToShow(!1),v.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)}),500),o&&u!==r&&v.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&o&&u===r?setTimeout((function(){s.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"!==h&&"nethlink"!==h||!o||u===r||v.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===h||"nethlink"===h)||"call_rejected"===(null==e?void 0:e.cause))&&o&&u===r){var w=v.store.getState().conference,C=w.usersList,q=w.pendingUsers,_=C&&Object.keys(C).length>0,N=q&&Object.keys(q).length>0;_||N?setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800):v.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&o&&u===r&&"waitingConference"!==l&&setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),"user_busy"===(null==e?void 0:e.cause)){var I=v.store.getState().currentUser,T=I.endpoints,D=I.username,x=((null==T?void 0:T.extension)||[]).map((function(e){return e.id})),E=v.store.getState().currentCall,O=E.incoming,P=E.accepted,F=E.transferring,A=v.store.getState().conference,V=A.isActive,R=A.conferenceStartedFrom;!(O&&e.callerNum&&x.includes(e.callerNum))&&(!P||V||F)&&(v.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout((function(){v.store.dispatch.player.stopAudioPlayer()}),4e3),setTimeout((function(){v.store.dispatch.player.updateStartAudioPlayer({src:c.default,loop:!0}),v.store.dispatch.island.setIslandView("operatorBusy")}),600),V&&R===D&&setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var L=v.store.getState().conference,Q=L.isActive,B=L.conferenceStartedFrom,K=v.store.getState().currentUser.username;if(Q&&B===K){var H=v.store.getState().conference;C=H.usersList,q=H.pendingUsers,_=C&&Object.keys(C).length>0,N=q&&Object.keys(q).length>0,_||N?(setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),q&&q[e.callerNum]&&v.store.dispatch.conference.removePendingUser(e.callerNum)):v.store.dispatch.conference.resetConference()}}})),P.current.on("extenConnected",(function(e){var n=v.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)&&(v.store.dispatch.island.toggleAvoidToShow(!0),v.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),s.eventDispatch("phone-island-call-answered",{extensionType:o}))})),P.current.on("extenUpdate",(function(e){var n,t,r;E.users.updateExtension(e);var i=v.store.getState().users.extensions,o={},u=v.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,p=o[e.username],m=Object.keys(e.conversations||{}),g=e.username===I,b=(null===(n=e.conversations)||void 0===n?void 0:n[m[0]])||{};g&&(l=e.exten,d=e.conversations,l&&Object.values(d||{}).forEach((function(e){D(e)&&M.current.set(l,{conversation:e,cachedAt:Date.now()})})));var k=!1;if((null==e?void 0:e.username)===I&&!f.isEmpty(b)&&(null==b?void 0:b.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===b.owner}));S&&"mobile"===S.type&&(k=!0)}if(h.dispatchExtensions(e),f.isEmpty(b)){var y=null==p?void 0:p.some((function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!f.isEmpty(t)}));y||h.dispatchConversations(e)}else k||h.dispatchConversations(e);k&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===I&&(v.store.dispatch.island.toggleAvoidToShow(!0),v.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===I&&(B(e,b),E.currentUser.updateConversations(e))})),P.current.on("queueUpdate",(function(e){E.queue.updateQueue(e);var n,t,r,i=(n=v.store.getState().currentUser.conversations,t=v.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&&_(i),h.dispatchQueueUpdate(e)})),P.current.on("queueMemberUpdate",(function(e){E.queue.updateQueueMember(e),h.dispatchQueueMemberUpdate(e)})),P.current.on("takeOver",(function(){h.dispatchAlreadyLogin()})),P.current.on("serverReloaded",(function(){h.dispatchServerReload()})),P.current.on("parkingUpdate",(function(e){h.dispatchParkingUpdate(e)})),P.current.on("actionNethLink",(function(e,n){h.dispatchUrlCall(e,n)})),P.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&&d.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"})})),P.current.on("message",(function(e){switch(e.message){case"videoCallStart":var n=v.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&&(E.island.toggleSideViewVisible(!1),E.island.toggleTranscriptionViewVisible(!1),E.island.setIslandView("video")),h.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":E.island.toggleSideViewVisible(!1),E.island.toggleTranscriptionViewVisible(!1),E.island.setIslandView("video"),E.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":E.island.toggleSideViewVisible(!1),E.island.toggleTranscriptionViewVisible(!1),E.island.setIslandView("video"),E.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}})),P.current.on("updateDefaultDevice",(function(n){h.dispatchDefaultDeviceUpdate(n);var t=v.store.getState().users.extensions,r=v.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})),v.store.dispatch.currentUser.updateCurrentDefaultDevice(o),p.checkMediaPermissions()}}})),P.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=v.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}))})),v.store.dispatch.conference.updateConferenceUsersList(o),v.store.dispatch.conference.updateConferenceId(t)}})),P.current.on("confBridgeEnd",(function(e){e&&(null==e?void 0:e.id)&&(v.store.dispatch.conference.resetConference(),s.eventDispatch("phone-island-conference-finished",{}))})),P.current.on("callWebrtc",(function(e){s.eventDispatch("phone-island-call-start",{number:e})})),P.current.on("newVoiceMessageCounter",(function(e){s.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})})),P.current.on("streamingSourceUpdate",(function(e){s.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;if(t&&r){v.store.getState().island.isFromStreaming;var i=v.store.getState().currentCall.streamingSourceNumber;g.getStreamingSourceId(i),E.streaming.updateSourceImage({source:t,image:r})}}})),P.current.on("satellite/transcription",(function(e){var n=Q.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}s.eventDispatch("phone-island-conversation-transcription",e)})),function(){clearInterval(O.current),P.current.close()}}),[N,I,T,x,E]),n.useEffect((function(){var e;if(j){console.info("Socket reload requested");var n=v.store.getState().alerts.data,t=v.store.getState().island.forceReload;(null===(e=n.socket_down)||void 0===e?void 0:e.active)||!1||t?(console.info(t?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active), performing reconnection"),t&&v.store.dispatch.island.setForceReload(!1),O.current&&(clearInterval(O.current),O.current=null),setTimeout((function(){P.current.disconnect(),P.current.connect(),U()}),100)):(console.info("Socket already connected (no alert active), skipping reconnection"),U())}}),[j]),_.default.createElement(_.default.Fragment,null,D)};
2
2
  //# sourceMappingURL=Socket.js.map