@nethesis/phone-island 0.7.69 → 0.7.71

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"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js"),n=require("../../static/icons/PhoneKeypadLight.js"),a=require("../../static/icons/PhoneKeypadSolid.js");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var s=require("../../store/index.js");require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js");var i=require("../../lib/webrtc/messages.js");require("../../node_modules/mic-check/lib/index.js");var o=require("../../static/outgoing_ringtone.js");require("../Island.js");var l=require("../Button.js");require("../AudioBars.js");var u=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),c=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../TransferView/TransferActions.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.paused,q=e.muted,v=f.useSelector((function(e){return e.island})).view,w=f.useSelector((function(e){return e.currentCall})).transferring,x=m.useDispatch();return j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},j.default.createElement(l.Button,{variant:"default",active:!!p,onClick:function(){return p?r.unpauseCurrentCall():r.pauseCurrentCall()}},p?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faPause})),j.default.createElement(l.Button,{variant:"default",active:!!q,onClick:function(){return q?r.unmuteCurrentCall():r.muteCurrentCall()}},q?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faMicrophone})),j.default.createElement(l.Button,{active:w,onClick:w?function(){i.sendDTMF("*"),s.store.getState().player.audioPlayerPlaying||x.player.updateAndPlayAudioPlayer({src:o.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),x.player.stopAudioPlayer()}),500)}:function(){x.island.setIslandView("transfer"!==v?"transfer":"call")},variant:"default"},w?j.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faArrowDownArrowUp})),j.default.createElement(l.Button,{variant:"default",onClick:function(){x.island.setIslandView("keypad"!==v?"keypad":"call")}},"keypad"===v?j.default.createElement(a.default,null):j.default.createElement(n.default,null))),w&&j.default.createElement(d.TransferActions,null))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),r=require("../../lib/phone/call.js"),n=require("../../static/icons/PhoneKeypadLight.js"),a=require("../../static/icons/PhoneKeypadSolid.js");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js");var s=require("../../store/index.js");require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js");var i=require("../../lib/webrtc/messages.js");require("../../node_modules/mic-check/lib/index.js");var o=require("../../static/outgoing_ringtone.js");require("../Island.js");var l=require("../Button.js");require("../AudioBars.js");var u=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),c=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/framer-motion/dist/framer-motion.js");var d=require("../TransferView/TransferActions.js"),f=require("../../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(e);exports.default=function(){var e=f.useSelector((function(e){return e.currentCall})),p=e.paused,q=e.muted,v=f.useSelector((function(e){return e.island})).view,w=f.useSelector((function(e){return e.currentCall})).transferring,y=m.useDispatch();return j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{className:"pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center"},j.default.createElement(l.Button,{variant:"default",active:!!p,onClick:function(){return p?r.unpauseCurrentCall():r.pauseCurrentCall()}},p?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faPlay}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faPause})),j.default.createElement(l.Button,{variant:"default",active:!!q,onClick:function(){return q?r.unmuteCurrentCall():r.muteCurrentCall()}},q?j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:c.faMicrophoneSlash}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faMicrophone})),j.default.createElement(l.Button,{active:w,onClick:w?function(){i.sendDTMF("*"),s.store.getState().player.audioPlayerPlaying||y.player.updateAndPlayAudioPlayer({src:o.default,loop:!0}),setTimeout((function(){i.sendDTMF("1"),y.player.stopAudioPlayer()}),500)}:function(){y.island.setIslandView("transfer"!==v?"transfer":"call")},variant:"default"},w?j.default.createElement(u.FontAwesomeIcon,{className:"",size:"xl",icon:c.faArrowDownUpAcrossLine}):j.default.createElement(u.FontAwesomeIcon,{size:"xl",icon:t.faArrowDownArrowUp})),j.default.createElement(l.Button,{active:"keypad"===v,variant:"default",onClick:function(){y.island.setIslandView("keypad"!==v?"keypad":"call")}},"keypad"===v?j.default.createElement(a.default,null):j.default.createElement(n.default,null))),w&&j.default.createElement(d.TransferActions,null))};
2
2
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n} from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen and view from island store\n const { view } = useSelector((state: RootState) => state.island)\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateAndPlayAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n }, 500)\n }\n\n return (\n <>\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPauseRegular} />\n )}\n </Button>\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophoneLight} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faArrowDownArrowUp} />\n )}\n </Button>\n <Button variant='default' onClick={openKeypad}>\n {view === 'keypad' ? <PhoneKeypadSolid /> : <PhoneKeypadLight />}\n </Button>\n </div>\n {\n transferring && (\n <TransferActions />\n )\n }\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","view","island","transferring","dispatch","useDispatch","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPauseRegular","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophoneLight","sendDTMF","store","getState","player","audioPlayerPlaying","updateAndPlayAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","setIslandView","faArrowDownUpAcrossLine","faArrowDownArrowUp","PhoneKeypadSolid","PhoneKeypadLight","TransferActions"],"mappings":"syCA+BoB,WAEZ,IAAAA,EAAoBC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAArEC,WAAQC,UAGRC,EAASL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,eACjDC,EAAiBP,eAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAE3DM,EAAWC,EAAAA,cA2BjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,sHACbH,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQb,EACRc,QAAS,WAAM,OAACd,EAASe,EAAAA,qBAAuBC,EAAAA,qBAE/ChB,EACCO,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMC,EAAAA,SAEjCb,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAME,EAAAA,WAGrCd,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQZ,EACRa,QAAS,WAAM,OAACb,EAAQqB,EAAAA,oBAAsBC,EAAAA,oBAE7CtB,EACCM,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMK,EAAAA,oBAEjCjB,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMM,EAAAA,gBAGrClB,EAAC,QAAAC,cAAAG,EAAMA,OACL,CAAAE,OAAQT,EACRU,QAASV,EA3CjB,WACEsB,EAAQA,SAAC,KACsBC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDzB,EAASwB,OAAOE,yBAAyB,CACvCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACTT,EAAQA,SAAC,KACTrB,EAASwB,OAAOO,iBACjB,GAAE,IACJ,EAnBD,WACE/B,EAASF,OAAOkC,cAAuB,aAATnC,EAAsB,WAAa,OAClE,EA+COU,QAAQ,WAEPR,EACCG,EAAAA,QAACC,cAAAS,EAAeA,gBAAC,CAAAP,UAAU,GAAGQ,KAAK,KAAKC,KAAMmB,EAAAA,0BAE9C/B,EAAC,QAAAC,cAAAS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMoB,EAAAA,sBAGrChC,UAACC,cAAAG,EAAAA,OAAO,CAAAC,QAAQ,UAAUE,QA7DhC,WACET,EAASF,OAAOkC,cAAuB,WAATnC,EAAoB,SAAW,OAC9D,GA4DiB,WAATA,EAAoBK,EAAAA,QAACC,cAAAgC,EAAgB,QAAG,MAAGjC,EAAC,QAAAC,cAAAiC,EAAAA,QAAmB,QAIlErC,GACEG,EAAC,QAAAC,cAAAkC,EAAeA,sBAK1B"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../src/components/CallView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport {\n faPause as faPauseRegular,\n faMicrophone as faMicrophoneLight,\n faArrowDownArrowUp,\n} from '@nethesis/nethesis-light-svg-icons'\nimport {\n muteCurrentCall,\n unmuteCurrentCall,\n pauseCurrentCall,\n unpauseCurrentCall,\n} from '../../lib/phone/call'\nimport PhoneKeypadLight from '../../static/icons/PhoneKeypadLight'\nimport PhoneKeypadSolid from '../../static/icons/PhoneKeypadSolid'\nimport { Button } from '../'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faMicrophoneSlash,\n faPlay,\n faArrowDownUpAcrossLine,\n} from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState, Dispatch } from '../../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { store } from '../../store'\nimport outgoingRingtone from '../../static/outgoing_ringtone'\nimport { TransferActions } from '../TransferView'\n\nconst Actions: FC = () => {\n // Get multiple values from currentCall store\n const { paused, muted } = useSelector((state: RootState) => state.currentCall)\n\n // Get isOpen and view from island store\n const { view } = useSelector((state: RootState) => state.island)\n const { transferring } = useSelector((state: RootState) => state.currentCall)\n\n const dispatch = useDispatch<Dispatch>()\n\n function openKeypad() {\n dispatch.island.setIslandView(view !== 'keypad' ? 'keypad' : 'call')\n }\n\n function transfer() {\n dispatch.island.setIslandView(view !== 'transfer' ? 'transfer' : 'call')\n }\n\n // Cancels the current transfer through dtmfs\n function calcelTransfer() {\n sendDTMF('*')\n const { audioPlayerPlaying } = store.getState().player\n // Check if the local audio is already playing and start playing\n if (!audioPlayerPlaying) {\n dispatch.player.updateAndPlayAudioPlayer({\n src: outgoingRingtone,\n loop: true,\n })\n }\n setTimeout(() => {\n sendDTMF('1')\n dispatch.player.stopAudioPlayer()\n }, 500)\n }\n\n return (\n <>\n <div className='pi-grid pi-grid-cols-4 pi-auto-cols-max pi-gap-y-5 pi-justify-items-center pi-place-items-center pi-justify-center'>\n <Button\n variant='default'\n active={paused ? true : false}\n onClick={() => (paused ? unpauseCurrentCall() : pauseCurrentCall())}\n >\n {paused ? (\n <FontAwesomeIcon size='xl' icon={faPlay} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faPauseRegular} />\n )}\n </Button>\n <Button\n variant='default'\n active={muted ? true : false}\n onClick={() => (muted ? unmuteCurrentCall() : muteCurrentCall())}\n >\n {muted ? (\n <FontAwesomeIcon size='xl' icon={faMicrophoneSlash} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faMicrophoneLight} />\n )}\n </Button>\n <Button\n active={transferring}\n onClick={transferring ? calcelTransfer : transfer}\n variant='default'\n >\n {transferring ? (\n <FontAwesomeIcon className='' size='xl' icon={faArrowDownUpAcrossLine} />\n ) : (\n <FontAwesomeIcon size='xl' icon={faArrowDownArrowUp} />\n )}\n </Button>\n <Button active={view === 'keypad'} variant='default' onClick={openKeypad}>\n {view === 'keypad' ? <PhoneKeypadSolid /> : <PhoneKeypadLight />}\n </Button>\n </div>\n {transferring && <TransferActions />}\n </>\n )\n}\n\nexport default Actions\n"],"names":["_a","useSelector","state","currentCall","paused","muted","view","island","transferring","dispatch","useDispatch","React","createElement","Fragment","className","Button","variant","active","onClick","unpauseCurrentCall","pauseCurrentCall","FontAwesomeIcon","size","icon","faPlay","faPauseRegular","unmuteCurrentCall","muteCurrentCall","faMicrophoneSlash","faMicrophoneLight","sendDTMF","store","getState","player","audioPlayerPlaying","updateAndPlayAudioPlayer","src","outgoingRingtone","loop","setTimeout","stopAudioPlayer","setIslandView","faArrowDownUpAcrossLine","faArrowDownArrowUp","PhoneKeypadSolid","PhoneKeypadLight","TransferActions"],"mappings":"syCA+BoB,WAEZ,IAAAA,EAAoBC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,IAArEC,WAAQC,UAGRC,EAASL,eAAY,SAACC,GAAqB,OAAAA,EAAMK,eACjDC,EAAiBP,eAAY,SAACC,GAAqB,OAAAA,EAAMC,4BAE3DM,EAAWC,EAAAA,cA2BjB,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,sHACbH,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQb,EACRc,QAAS,WAAM,OAACd,EAASe,EAAAA,qBAAuBC,EAAAA,qBAE/ChB,EACCO,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMC,EAAAA,SAEjCb,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAME,EAAAA,WAGrCd,EAAA,QAAAC,cAACG,SAAM,CACLC,QAAQ,UACRC,SAAQZ,EACRa,QAAS,WAAM,OAACb,EAAQqB,EAAAA,oBAAsBC,EAAAA,oBAE7CtB,EACCM,EAAA,QAAAC,cAACS,kBAAe,CAACC,KAAK,KAAKC,KAAMK,EAAAA,oBAEjCjB,EAAA,QAAAC,cAACS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMM,EAAAA,gBAGrClB,EAAC,QAAAC,cAAAG,EAAMA,OACL,CAAAE,OAAQT,EACRU,QAASV,EA3CjB,WACEsB,EAAQA,SAAC,KACsBC,EAAKA,MAACC,WAAWC,OAAMC,oBAGpDzB,EAASwB,OAAOE,yBAAyB,CACvCC,IAAKC,EAAgB,QACrBC,MAAM,IAGVC,YAAW,WACTT,EAAQA,SAAC,KACTrB,EAASwB,OAAOO,iBACjB,GAAE,IACJ,EAnBD,WACE/B,EAASF,OAAOkC,cAAuB,aAATnC,EAAsB,WAAa,OAClE,EA+COU,QAAQ,WAEPR,EACCG,EAAAA,QAACC,cAAAS,EAAeA,gBAAC,CAAAP,UAAU,GAAGQ,KAAK,KAAKC,KAAMmB,EAAAA,0BAE9C/B,EAAC,QAAAC,cAAAS,EAAeA,gBAAC,CAAAC,KAAK,KAAKC,KAAMoB,EAAAA,sBAGrChC,EAAAA,QAAAC,cAACG,SAAM,CAACE,OAAiB,WAATX,EAAmBU,QAAQ,UAAUE,QA7D3D,WACET,EAASF,OAAOkC,cAAuB,WAATnC,EAAoB,SAAW,OAC9D,GA4DiB,WAATA,EAAoBK,wBAACiC,EAAAA,QAAgB,MAAMjC,EAAA,QAAAC,cAACiC,EAAAA,QAAgB,QAGhErC,GAAgBG,EAAAA,QAACC,cAAAkC,EAAAA,gBAAkB,MAG1C"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("../devices/devices.js"),r=require("../webrtc/janus.js"),n=require("../webrtc/messages.js"),a=require("../../store/index.js"),o=require("../user/default_device.js"),s=require("../../services/astproxy.js"),i=require("../../static/dtmf/index.js");function u(a){var o=this;t.getSupportedDevices((function(){return e.__awaiter(o,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return r.default.log("This is a SIP call"),[4,n.call(a,{audio:{mandatory:{echoCancellation:!1,googEchoCancellation:!1,googAutoGainControl:!1,googAutoGainControl2:!1,googNoiseSuppression:!1,googHighpassFilter:!1,googTypingNoiseDetection:!1}},audioSend:!0,audioRecv:!0,videoSend:!1,videoRecv:!1})];case 1:return e.sent(),[2]}}))}))}))}exports.answerIncomingCall=function(){o.isWebRTC()&&n.answerWebRTC()},exports.attendedTransfer=function(t){return e.__awaiter(this,void 0,void 0,(function(){var r,n;return e.__generator(this,(function(e){switch(e.label){case 0:return r=a.store.getState().currentCall.conversationId,n=a.store.getState().currentUser.default_device,r&&(null==n?void 0:n.id)&&t?[4,s.attendedTransfer({convid:r,to:t,endpointId:n.id})]:[3,2];case 1:return[2,e.sent()];case 2:return[2]}}))}))},exports.blindTransfer=function(t){return e.__awaiter(this,void 0,void 0,(function(){var r,n;return e.__generator(this,(function(e){switch(e.label){case 0:return r=a.store.getState().currentCall.conversationId,n=a.store.getState().currentUser.default_device,r&&(null==n?void 0:n.id)&&t?[4,s.blindTransfer({convid:r,to:t,endpointId:n.id})]:[3,2];case 1:return[2,e.sent()];case 2:return[2]}}))}))},exports.callNumber=function(e){u("sip:".concat(e,"@").concat("127.0.0.1"))},exports.callSipURI=u,exports.hangupCurrentCall=function(){var e=a.store.getState().currentCall,t=e.outgoing,r=e.accepted;t||r?n.hangup():n.decline(),a.store.dispatch.player.stopAudioPlayer(),a.store.dispatch.currentCall.reset()},exports.muteCurrentCall=function(){o.isWebRTC()&&n.muteWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({muted:!0})},exports.pauseCurrentCall=function(){o.isWebRTC()&&n.pauseWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({paused:!0})},exports.playDtmfAudio=function(e){"*"===e&&(e="star"),"#"===e&&(e="pound"),a.store.dispatch.player.updateAndPlayAudioPlayer({src:i.default["dtmf_".concat(e)]})},exports.unmuteCurrentCall=function(){o.isWebRTC()&&n.unmuteWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({muted:!1})},exports.unpauseCurrentCall=function(){o.isWebRTC()&&n.unpauseWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({paused:!1})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("../devices/devices.js"),r=require("../webrtc/janus.js"),n=require("../webrtc/messages.js"),a=require("../../store/index.js"),o=require("../user/default_device.js"),s=require("../../services/astproxy.js"),i=require("../../static/dtmf/index.js");function u(a){var o=this;t.getSupportedDevices((function(){return e.__awaiter(o,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return r.default.log("This is a SIP call"),[4,n.call(a,{audio:{mandatory:{echoCancellation:!1,googEchoCancellation:!1,googAutoGainControl:!1,googAutoGainControl2:!1,googNoiseSuppression:!1,googHighpassFilter:!1,googTypingNoiseDetection:!1}},audioSend:!0,audioRecv:!0,videoSend:!1,videoRecv:!1})];case 1:return e.sent(),[2]}}))}))}))}exports.answerIncomingCall=function(){o.isWebRTC()&&n.answerWebRTC()},exports.attendedTransfer=function(t){return e.__awaiter(this,void 0,void 0,(function(){var r,n;return e.__generator(this,(function(e){switch(e.label){case 0:return r=a.store.getState().currentCall.conversationId,n=a.store.getState().currentUser.default_device,r&&(null==n?void 0:n.id)&&t?[4,s.attendedTransfer({convid:r,to:t,endpointId:n.id})]:[3,2];case 1:return[2,e.sent()];case 2:return[2]}}))}))},exports.blindTransfer=function(t){return e.__awaiter(this,void 0,void 0,(function(){var r,n;return e.__generator(this,(function(e){switch(e.label){case 0:return r=a.store.getState().currentCall.conversationId,n=a.store.getState().currentUser.default_device,r&&(null==n?void 0:n.id)&&t?[4,s.blindTransfer({convid:r,to:t,endpointId:n.id})]:[3,2];case 1:return[2,e.sent()];case 2:return[2]}}))}))},exports.callNumber=function(e){u("sip:".concat(e,"@").concat("127.0.0.1"))},exports.callSipURI=u,exports.hangupCurrentCall=function(){var e=a.store.getState().currentCall,t=e.outgoing,r=e.accepted;t||r?n.hangup():n.decline(),a.store.dispatch.player.stopAudioPlayer(),a.store.dispatch.currentCall.reset()},exports.muteCurrentCall=function(){o.isWebRTC()&&n.muteWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({muted:!0})},exports.pauseCurrentCall=function(){o.isWebRTC()&&n.pauseWebRTC()&&(a.store.dispatch.currentCall.updateCurrentCall({paused:!0}),a.store.dispatch.player.pauseRemoteAudio())},exports.playDtmfAudio=function(e){"*"===e&&(e="star"),"#"===e&&(e="pound"),a.store.dispatch.player.updateAndPlayAudioPlayer({src:i.default["dtmf_".concat(e)]})},exports.unmuteCurrentCall=function(){o.isWebRTC()&&n.unmuteWebRTC()&&a.store.dispatch.currentCall.updateCurrentCall({muted:!1})},exports.unpauseCurrentCall=function(){o.isWebRTC()&&n.unpauseWebRTC()&&(a.store.dispatch.currentCall.updateCurrentCall({paused:!1}),a.store.dispatch.player.playRemoteAudio())};
2
2
  //# sourceMappingURL=call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sources":["../../../src/lib/phone/call.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { getSupportedDevices } from '../devices/devices'\nimport Janus from '../webrtc/janus'\nimport {\n call,\n hangup,\n decline,\n answerWebRTC,\n muteWebRTC,\n unmuteWebRTC,\n pauseWebRTC,\n unpauseWebRTC,\n} from '../webrtc/messages'\nimport { store } from '../../store'\nimport { isWebRTC } from '../user/default_device'\nimport {\n blindTransfer as blindTransferRequest,\n attendedTransfer as attendedTransferRequest,\n} from '../../services/astproxy'\nimport dtmfAudios from '../../static/dtmf'\n\n/**\n * Starts a call to a number\n * @param number The number string\n */\nexport function callNumber(number: string) {\n const BASE_HOST_URL: string = '127.0.0.1'\n const sipURI = `sip:${number}@${BASE_HOST_URL}`\n callSipURI(sipURI)\n}\n\n/**\n * Starts a call to a SIP URI\n *\n * @param sipURI The SIP URI string\n */\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n await call(sipURI, {\n audio: {\n mandatory: {\n echoCancellation: false,\n googEchoCancellation: false,\n googAutoGainControl: false,\n googAutoGainControl2: false,\n googNoiseSuppression: false,\n googHighpassFilter: false,\n googTypingNoiseDetection: false,\n },\n },\n audioSend: true,\n audioRecv: true,\n videoSend: false,\n videoRecv: false,\n })\n })\n}\n\n/**\n * Answer incoming call\n */\nexport function answerIncomingCall() {\n if (isWebRTC()) {\n answerWebRTC()\n }\n}\n\n/**\n * Hangup current call\n */\nexport function hangupCurrentCall() {\n const { outgoing, accepted } = store.getState().currentCall\n if (outgoing || accepted) {\n hangup()\n } else {\n decline()\n }\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.currentCall.reset()\n}\n\n/**\n * Mute the current call\n */\nexport function muteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const muted = muteWebRTC()\n if (muted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: true,\n })\n }\n }\n}\n\n/**\n * Unmute the current call\n */\nexport function unmuteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unmuted = unmuteWebRTC()\n if (unmuted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: false,\n })\n }\n }\n}\n\n/**\n * Pause the current call\n */\nexport function pauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const paused = pauseWebRTC()\n if (paused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: true,\n })\n }\n }\n}\n\n/**\n * Unpause the current call\n */\nexport function unpauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unpaused = unpauseWebRTC()\n if (unpaused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: false,\n })\n }\n }\n}\n\n/**\n * Transfer the current call through a blind transfer\n */\nexport async function blindTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through blind transfer\n if (conversationId && default_device?.id && number) {\n return await blindTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Transfer the current call through a attended transfer\n */\nexport async function attendedTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through attended transfer\n if (conversationId && default_device?.id && number) {\n return await attendedTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Play the dtmf audio files\n */\nexport function playDtmfAudio(key: string) {\n if (key === '*') key = 'star'\n if (key === '#') key = 'pound'\n store.dispatch.player.updateAndPlayAudioPlayer({ src: dtmfAudios[`dtmf_${key}`] })\n}\n"],"names":["callSipURI","sipURI","_this","this","getSupportedDevices","__awaiter","Janus","log","call","audio","mandatory","echoCancellation","googEchoCancellation","googAutoGainControl","googAutoGainControl2","googNoiseSuppression","googHighpassFilter","googTypingNoiseDetection","audioSend","audioRecv","videoSend","videoRecv","_a","sent","isWebRTC","answerWebRTC","number","conversationId","store","getState","currentCall","default_device","currentUser","id","attendedTransferRequest","convid","to","endpointId","blindTransferRequest","concat","outgoing","accepted","hangup","decline","dispatch","player","stopAudioPlayer","reset","muteWebRTC","updateCurrentCall","muted","pauseWebRTC","paused","key","updateAndPlayAudioPlayer","src","dtmfAudios","unmuteWebRTC","unpauseWebRTC"],"mappings":"0XAsCM,SAAUA,EAAWC,GAA3B,IAsBCC,EAAAC,KArBCC,EAAmBA,qBAAC,WAAA,OAAAC,EAAAA,UAAAH,OAAA,OAAA,GAAA,yEAGlB,OADAI,UAAMC,IAAI,sBACJ,CAAA,EAAAC,EAAIA,KAACP,EAAQ,CACjBQ,MAAO,CACLC,UAAW,CACTC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,0BAA0B,IAG9BC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,mBAfbC,EAAAC,cAiBD,GAAA,GACH,uCAMMC,EAAQA,YACVC,EAAAA,cAEJ,2BAgGM,SAAiCC,2HAKjC,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMQ,mBAAwB,CACnCC,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,wBA7BK,SAA8BI,2HAK9B,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMY,gBAAqB,CAChCH,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,qBArIK,SAAqBI,GAGzB1B,EADe,OAAAuC,OAAOb,EAAU,KAAAa,OADF,aAGhC,4DA4CQ,IAAAjB,EAAyBM,EAAAA,MAAMC,WAAWC,YAAxCU,EAAQlB,EAAAkB,SAAEC,aACdD,GAAYC,EACdC,EAAAA,SAEAC,EAAAA,UAEFf,EAAAA,MAAMgB,SAASC,OAAOC,kBACtBlB,EAAAA,MAAMgB,SAASd,YAAYiB,OAC7B,qCAOMvB,EAAQA,YACIwB,EAAAA,cAEZpB,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CC,OAAO,GAIf,sCAsBM1B,EAAQA,YACK2B,EAAAA,eAEbvB,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CG,QAAQ,GAIhB,wBAsDM,SAAwBC,GAChB,MAARA,IAAaA,EAAM,QACX,MAARA,IAAaA,EAAM,SACvBzB,EAAAA,MAAMgB,SAASC,OAAOS,yBAAyB,CAAEC,IAAKC,UAAW,QAAQjB,OAAAc,KAC3E,uCAjFM7B,EAAQA,YACMiC,EAAAA,gBAEd7B,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CC,OAAO,GAIf,wCAsBM1B,EAAQA,YACOkC,EAAAA,iBAEf9B,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CG,QAAQ,GAIhB"}
1
+ {"version":3,"file":"call.js","sources":["../../../src/lib/phone/call.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { getSupportedDevices } from '../devices/devices'\nimport Janus from '../webrtc/janus'\nimport {\n call,\n hangup,\n decline,\n answerWebRTC,\n muteWebRTC,\n unmuteWebRTC,\n pauseWebRTC,\n unpauseWebRTC,\n} from '../webrtc/messages'\nimport { store } from '../../store'\nimport { isWebRTC } from '../user/default_device'\nimport {\n blindTransfer as blindTransferRequest,\n attendedTransfer as attendedTransferRequest,\n} from '../../services/astproxy'\nimport dtmfAudios from '../../static/dtmf'\n\n/**\n * Starts a call to a number\n * @param number The number string\n */\nexport function callNumber(number: string) {\n const BASE_HOST_URL: string = '127.0.0.1'\n const sipURI = `sip:${number}@${BASE_HOST_URL}`\n callSipURI(sipURI)\n}\n\n/**\n * Starts a call to a SIP URI\n *\n * @param sipURI The SIP URI string\n */\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n await call(sipURI, {\n audio: {\n mandatory: {\n echoCancellation: false,\n googEchoCancellation: false,\n googAutoGainControl: false,\n googAutoGainControl2: false,\n googNoiseSuppression: false,\n googHighpassFilter: false,\n googTypingNoiseDetection: false,\n },\n },\n audioSend: true,\n audioRecv: true,\n videoSend: false,\n videoRecv: false,\n })\n })\n}\n\n/**\n * Answer incoming call\n */\nexport function answerIncomingCall() {\n if (isWebRTC()) {\n answerWebRTC()\n }\n}\n\n/**\n * Hangup current call\n */\nexport function hangupCurrentCall() {\n const { outgoing, accepted } = store.getState().currentCall\n if (outgoing || accepted) {\n hangup()\n } else {\n decline()\n }\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.currentCall.reset()\n}\n\n/**\n * Mute the current call\n */\nexport function muteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const muted = muteWebRTC()\n if (muted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: true,\n })\n }\n }\n}\n\n/**\n * Unmute the current call\n */\nexport function unmuteCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unmuted = unmuteWebRTC()\n if (unmuted) {\n store.dispatch.currentCall.updateCurrentCall({\n muted: false,\n })\n }\n }\n}\n\n/**\n * Pause the current call\n */\nexport function pauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const paused = pauseWebRTC()\n if (paused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: true,\n })\n // Pause remote audio\n store.dispatch.player.pauseRemoteAudio()\n }\n }\n}\n\n/**\n * Unpause the current call\n */\nexport function unpauseCurrentCall() {\n // Check the current user default device\n if (isWebRTC()) {\n const unpaused = unpauseWebRTC()\n if (unpaused) {\n store.dispatch.currentCall.updateCurrentCall({\n paused: false,\n })\n // Play remote audio\n store.dispatch.player.playRemoteAudio()\n }\n }\n}\n\n/**\n * Transfer the current call through a blind transfer\n */\nexport async function blindTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through blind transfer\n if (conversationId && default_device?.id && number) {\n return await blindTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Transfer the current call through a attended transfer\n */\nexport async function attendedTransfer(number: string) {\n // Retrieve current conversation info\n const { conversationId } = store.getState().currentCall\n const { default_device } = store.getState().currentUser\n // Transfer the call through attended transfer\n if (conversationId && default_device?.id && number) {\n return await attendedTransferRequest({\n convid: conversationId,\n to: number,\n endpointId: default_device.id,\n })\n }\n}\n\n/**\n * Play the dtmf audio files\n */\nexport function playDtmfAudio(key: string) {\n if (key === '*') key = 'star'\n if (key === '#') key = 'pound'\n store.dispatch.player.updateAndPlayAudioPlayer({ src: dtmfAudios[`dtmf_${key}`] })\n}\n"],"names":["callSipURI","sipURI","_this","this","getSupportedDevices","__awaiter","Janus","log","call","audio","mandatory","echoCancellation","googEchoCancellation","googAutoGainControl","googAutoGainControl2","googNoiseSuppression","googHighpassFilter","googTypingNoiseDetection","audioSend","audioRecv","videoSend","videoRecv","_a","sent","isWebRTC","answerWebRTC","number","conversationId","store","getState","currentCall","default_device","currentUser","id","attendedTransferRequest","convid","to","endpointId","blindTransferRequest","concat","outgoing","accepted","hangup","decline","dispatch","player","stopAudioPlayer","reset","muteWebRTC","updateCurrentCall","muted","pauseWebRTC","paused","pauseRemoteAudio","key","updateAndPlayAudioPlayer","src","dtmfAudios","unmuteWebRTC","unpauseWebRTC","playRemoteAudio"],"mappings":"0XAsCM,SAAUA,EAAWC,GAA3B,IAsBCC,EAAAC,KArBCC,EAAmBA,qBAAC,WAAA,OAAAC,EAAAA,UAAAH,OAAA,OAAA,GAAA,yEAGlB,OADAI,UAAMC,IAAI,sBACJ,CAAA,EAAAC,EAAIA,KAACP,EAAQ,CACjBQ,MAAO,CACLC,UAAW,CACTC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,sBAAsB,EACtBC,sBAAsB,EACtBC,oBAAoB,EACpBC,0BAA0B,IAG9BC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,mBAfbC,EAAAC,cAiBD,GAAA,GACH,uCAMMC,EAAQA,YACVC,EAAAA,cAEJ,2BAoGM,SAAiCC,2HAKjC,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMQ,mBAAwB,CACnCC,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,wBA7BK,SAA8BI,2HAK9B,OAHIC,EAAmBC,EAAAA,MAAMC,WAAWC,2BACpCC,EAAmBH,EAAAA,MAAMC,WAAWG,2BAExCL,IAAkBI,aAAA,EAAAA,EAAgBE,KAAMP,EACnC,CAAA,EAAMY,gBAAqB,CAChCH,OAAQR,EACRS,GAAIV,EACJW,WAAYN,EAAeE,MAJmB,CAAA,EAAA,GAChD,KAAA,EAAA,MAAA,CAAA,EAAOX,iCAMV,qBAzIK,SAAqBI,GAGzB1B,EADe,OAAAuC,OAAOb,EAAU,KAAAa,OADF,aAGhC,4DA4CQ,IAAAjB,EAAyBM,EAAAA,MAAMC,WAAWC,YAAxCU,EAAQlB,EAAAkB,SAAEC,aACdD,GAAYC,EACdC,EAAAA,SAEAC,EAAAA,UAEFf,EAAAA,MAAMgB,SAASC,OAAOC,kBACtBlB,EAAAA,MAAMgB,SAASd,YAAYiB,OAC7B,qCAOMvB,EAAQA,YACIwB,EAAAA,cAEZpB,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CC,OAAO,GAIf,sCAsBM1B,EAAQA,YACK2B,EAAAA,gBAEbvB,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CG,QAAQ,IAGVxB,EAAAA,MAAMgB,SAASC,OAAOQ,mBAG5B,wBAwDM,SAAwBC,GAChB,MAARA,IAAaA,EAAM,QACX,MAARA,IAAaA,EAAM,SACvB1B,EAAAA,MAAMgB,SAASC,OAAOU,yBAAyB,CAAEC,IAAKC,UAAW,QAAQlB,OAAAe,KAC3E,uCArFM9B,EAAQA,YACMkC,EAAAA,gBAEd9B,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CC,OAAO,GAIf,wCAwBM1B,EAAQA,YACOmC,EAAAA,kBAEf/B,QAAMgB,SAASd,YAAYmB,kBAAkB,CAC3CG,QAAQ,IAGVxB,EAAAA,MAAMgB,SAASC,OAAOe,kBAG5B"}
@@ -48,6 +48,8 @@ export declare const player: {
48
48
  localVideo: HTMLVideoElement | null;
49
49
  remoteVideo: HTMLVideoElement | null;
50
50
  };
51
+ playRemoteAudio: (state: PlayerTypes) => void;
52
+ pauseRemoteAudio: (state: PlayerTypes) => void;
51
53
  reset: () => PlayerTypes;
52
54
  };
53
55
  } & ({} | {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),a=require("../node_modules/@rematch/core/dist/core.esm.js"),r=require("../lib/phone/audio.js"),o={audioPlayer:null,audioPlayerPlaying:!1,audioPlayerLoop:!1,localAudio:null,remoteAudio:null,localVideo:null,remoteVideo:null},u=a.createModel()({state:o,reducers:{updatePlayer:function(a,r){return e.__assign(e.__assign({},a),r)},updateAudioPlayer:function(e,a){return e.audioPlayer&&(e.audioPlayer.src="data:audio/ogg;base64, ".concat(a.src)),e},playAudioPlayer:function(a){if(a.audioPlayer)return a.audioPlayer.paused||(a.audioPlayer.pause(),a.audioPlayer.currentTime=0),a.audioPlayer.play(),e.__assign(e.__assign({},a),{audioPlayerPlaying:!0})},stopAudioPlayer:function(a){if(a.audioPlayer)return a.audioPlayer.pause(),a.audioPlayer.currentTime=0,e.__assign(e.__assign({},a),{audioPlayerPlaying:!1})},setAudioPlayerLoop:function(a,r){return e.__assign(e.__assign({},a),{audioPlayerLoop:r})},reset:function(){return o}},effects:function(a){return{updateAndPlayAudioPlayer:function(o){var u=o.src,i=o.loop,l=void 0!==i&&i;return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return a.player.setAudioPlayerLoop(l),[4,r.updateAudioPlayerSource({src:u})];case 1:return e.sent(),a.player.playAudioPlayer(),[2]}}))}))}}}});exports.player=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),a=require("../node_modules/@rematch/core/dist/core.esm.js"),r=require("../lib/phone/audio.js"),o={audioPlayer:null,audioPlayerPlaying:!1,audioPlayerLoop:!1,localAudio:null,remoteAudio:null,localVideo:null,remoteVideo:null},u=a.createModel()({state:o,reducers:{updatePlayer:function(a,r){return e.__assign(e.__assign({},a),r)},updateAudioPlayer:function(e,a){return e.audioPlayer&&(e.audioPlayer.src="data:audio/ogg;base64, ".concat(a.src)),e},playAudioPlayer:function(a){if(a.audioPlayer)return a.audioPlayer.paused||(a.audioPlayer.pause(),a.audioPlayer.currentTime=0),a.audioPlayer.play(),e.__assign(e.__assign({},a),{audioPlayerPlaying:!0})},stopAudioPlayer:function(a){if(a.audioPlayer)return a.audioPlayer.pause(),a.audioPlayer.currentTime=0,e.__assign(e.__assign({},a),{audioPlayerPlaying:!1})},setAudioPlayerLoop:function(a,r){return e.__assign(e.__assign({},a),{audioPlayerLoop:r})},playRemoteAudio:function(e){var a;null===(a=e.remoteAudio)||void 0===a||a.play()},pauseRemoteAudio:function(e){var a;null===(a=e.remoteAudio)||void 0===a||a.pause()},reset:function(){return o}},effects:function(a){return{updateAndPlayAudioPlayer:function(o){var u=o.src,i=o.loop,l=void 0!==i&&i;return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return a.player.setAudioPlayerLoop(l),[4,r.updateAudioPlayerSource({src:u})];case 1:return e.sent(),a.player.playAudioPlayer(),[2]}}))}))}}}});exports.player=u;
2
2
  //# sourceMappingURL=player.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","sources":["../../src/models/player.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { updateAudioPlayerSource } from '../lib/phone/audio'\n\nconst defaultState: PlayerTypes = {\n audioPlayer: null,\n audioPlayerPlaying: false,\n audioPlayerLoop: false,\n localAudio: null,\n remoteAudio: null,\n localVideo: null,\n remoteVideo: null,\n}\n\nexport const player = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updatePlayer: (state, payload: PlayerTypes) => {\n return {\n ...state,\n ...payload,\n }\n },\n updateAudioPlayer: (state, payload: UpdateAudioSourceTypes) => {\n if (state.audioPlayer) {\n state.audioPlayer.src = `data:audio/ogg;base64, ${payload.src}`\n }\n return state\n },\n playAudioPlayer: (state) => {\n if (state.audioPlayer) {\n // Check if is playing\n if (!state.audioPlayer.paused) {\n state.audioPlayer.pause()\n state.audioPlayer.currentTime = 0\n }\n // Play the audio\n state.audioPlayer.play()\n return {\n ...state,\n audioPlayerPlaying: true,\n }\n }\n },\n stopAudioPlayer: (state) => {\n if (state.audioPlayer) {\n // Pause audio\n state.audioPlayer.pause()\n state.audioPlayer.currentTime = 0\n return {\n ...state,\n audioPlayerPlaying: false,\n }\n }\n },\n setAudioPlayerLoop: (state, payload: boolean) => ({\n ...state,\n audioPlayerLoop: payload,\n }),\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n // This function is recommended for playing audio\n updateAndPlayAudioPlayer: async ({ src, loop = false }: { src: string; loop?: boolean }) => {\n dispatch.player.setAudioPlayerLoop(loop)\n // Update the audio source\n await updateAudioPlayerSource({\n src: src,\n })\n // Play the outgoing ringtone when ready\n dispatch.player.playAudioPlayer()\n },\n }),\n})\n\ninterface UpdateAudioSourceTypes {\n src: string\n}\n\ninterface PlayerTypes {\n audioPlayer: HTMLAudioElement | null\n audioPlayerPlaying?: boolean\n audioPlayerLoop?: boolean\n localAudio: HTMLAudioElement | null\n remoteAudio: HTMLAudioElement | null\n localVideo: HTMLVideoElement | null\n remoteVideo: HTMLVideoElement | null\n}\n"],"names":["defaultState","audioPlayer","audioPlayerPlaying","audioPlayerLoop","localAudio","remoteAudio","localVideo","remoteVideo","player","createModel","state","reducers","updatePlayer","payload","__assign","updateAudioPlayer","src","playAudioPlayer","paused","pause","currentTime","play","stopAudioPlayer","setAudioPlayerLoop","reset","effects","dispatch","updateAndPlayAudioPlayer","_a","_b","loop","updateAudioPlayerSource","_c","sent"],"mappings":"uNAOMA,EAA4B,CAChCC,YAAa,KACbC,oBAAoB,EACpBC,iBAAiB,EACjBC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,MAGFC,EAASC,EAAWA,aAAXA,CAAyB,CAC7CC,MAAOV,EACPW,SAAU,CACRC,aAAc,SAACF,EAAOG,GACpB,OACKC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,GACAG,EAEN,EACDE,kBAAmB,SAACL,EAAOG,GAIzB,OAHIH,EAAMT,cACRS,EAAMT,YAAYe,IAAM,iCAA0BH,EAAQG,MAErDN,CACR,EACDO,gBAAiB,SAACP,GAChB,GAAIA,EAAMT,YAQR,OANKS,EAAMT,YAAYiB,SACrBR,EAAMT,YAAYkB,QAClBT,EAAMT,YAAYmB,YAAc,GAGlCV,EAAMT,YAAYoB,OAClBP,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRR,oBAAoB,GAGzB,EACDoB,gBAAiB,SAACZ,GAChB,GAAIA,EAAMT,YAIR,OAFAS,EAAMT,YAAYkB,QAClBT,EAAMT,YAAYmB,YAAc,EAChCN,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRR,oBAAoB,GAGzB,EACDqB,mBAAoB,SAACb,EAAOG,GAAqB,OAC5CC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHP,gBAAiBU,GACjB,EACFW,MAAO,WACL,OAAOxB,CACR,GAEHyB,QAAS,SAACC,GAAa,MAAC,CAEtBC,yBAA0B,SAAOC,GAAE,IAAAZ,QAAKa,EAAAD,EAAAE,KAAAA,OAAI,IAAAD,GAAQA,oHAGlD,OAFAH,EAASlB,OAAOe,mBAAmBO,GAEnC,CAAA,EAAMC,0BAAwB,CAC5Bf,IAAKA,mBADPgB,EAAAC,OAIAP,EAASlB,OAAOS,4BACjB,EACD"}
1
+ {"version":3,"file":"player.js","sources":["../../src/models/player.ts"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { updateAudioPlayerSource } from '../lib/phone/audio'\n\nconst defaultState: PlayerTypes = {\n audioPlayer: null,\n audioPlayerPlaying: false,\n audioPlayerLoop: false,\n localAudio: null,\n remoteAudio: null,\n localVideo: null,\n remoteVideo: null,\n}\n\nexport const player = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updatePlayer: (state, payload: PlayerTypes) => {\n return {\n ...state,\n ...payload,\n }\n },\n updateAudioPlayer: (state, payload: UpdateAudioSourceTypes) => {\n if (state.audioPlayer) {\n state.audioPlayer.src = `data:audio/ogg;base64, ${payload.src}`\n }\n return state\n },\n playAudioPlayer: (state) => {\n if (state.audioPlayer) {\n // Check if is playing\n if (!state.audioPlayer.paused) {\n state.audioPlayer.pause()\n state.audioPlayer.currentTime = 0\n }\n // Play the audio\n state.audioPlayer.play()\n return {\n ...state,\n audioPlayerPlaying: true,\n }\n }\n },\n stopAudioPlayer: (state) => {\n if (state.audioPlayer) {\n // Pause audio\n state.audioPlayer.pause()\n state.audioPlayer.currentTime = 0\n return {\n ...state,\n audioPlayerPlaying: false,\n }\n }\n },\n setAudioPlayerLoop: (state, payload: boolean) => ({\n ...state,\n audioPlayerLoop: payload,\n }),\n playRemoteAudio: (state) => {\n state.remoteAudio?.play()\n },\n pauseRemoteAudio: (state) => {\n state.remoteAudio?.pause()\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n // This function is recommended for playing audio\n updateAndPlayAudioPlayer: async ({ src, loop = false }: { src: string; loop?: boolean }) => {\n dispatch.player.setAudioPlayerLoop(loop)\n // Update the audio source\n await updateAudioPlayerSource({\n src: src,\n })\n // Play the outgoing ringtone when ready\n dispatch.player.playAudioPlayer()\n },\n }),\n})\n\ninterface UpdateAudioSourceTypes {\n src: string\n}\n\ninterface PlayerTypes {\n audioPlayer: HTMLAudioElement | null\n audioPlayerPlaying?: boolean\n audioPlayerLoop?: boolean\n localAudio: HTMLAudioElement | null\n remoteAudio: HTMLAudioElement | null\n localVideo: HTMLVideoElement | null\n remoteVideo: HTMLVideoElement | null\n}\n"],"names":["defaultState","audioPlayer","audioPlayerPlaying","audioPlayerLoop","localAudio","remoteAudio","localVideo","remoteVideo","player","createModel","state","reducers","updatePlayer","payload","__assign","updateAudioPlayer","src","playAudioPlayer","paused","pause","currentTime","play","stopAudioPlayer","setAudioPlayerLoop","playRemoteAudio","_a","pauseRemoteAudio","reset","effects","dispatch","updateAndPlayAudioPlayer","_b","loop","updateAudioPlayerSource","_c","sent"],"mappings":"uNAOMA,EAA4B,CAChCC,YAAa,KACbC,oBAAoB,EACpBC,iBAAiB,EACjBC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,MAGFC,EAASC,EAAWA,aAAXA,CAAyB,CAC7CC,MAAOV,EACPW,SAAU,CACRC,aAAc,SAACF,EAAOG,GACpB,OACKC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,GACAG,EAEN,EACDE,kBAAmB,SAACL,EAAOG,GAIzB,OAHIH,EAAMT,cACRS,EAAMT,YAAYe,IAAM,iCAA0BH,EAAQG,MAErDN,CACR,EACDO,gBAAiB,SAACP,GAChB,GAAIA,EAAMT,YAQR,OANKS,EAAMT,YAAYiB,SACrBR,EAAMT,YAAYkB,QAClBT,EAAMT,YAAYmB,YAAc,GAGlCV,EAAMT,YAAYoB,OAClBP,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRR,oBAAoB,GAGzB,EACDoB,gBAAiB,SAACZ,GAChB,GAAIA,EAAMT,YAIR,OAFAS,EAAMT,YAAYkB,QAClBT,EAAMT,YAAYmB,YAAc,EAChCN,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRR,oBAAoB,GAGzB,EACDqB,mBAAoB,SAACb,EAAOG,GAAqB,OAC5CC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHP,gBAAiBU,GACjB,EACFW,gBAAiB,SAACd,SACG,QAAnBe,EAAAf,EAAML,mBAAa,IAAAoB,GAAAA,EAAAJ,MACpB,EACDK,iBAAkB,SAAChB,SACE,QAAnBe,EAAAf,EAAML,mBAAa,IAAAoB,GAAAA,EAAAN,OACpB,EACDQ,MAAO,WACL,OAAO3B,CACR,GAEH4B,QAAS,SAACC,GAAa,MAAC,CAEtBC,yBAA0B,SAAOL,GAAE,IAAAT,QAAKe,EAAAN,EAAAO,KAAAA,OAAI,IAAAD,GAAQA,oHAGlD,OAFAF,EAASrB,OAAOe,mBAAmBS,GAEnC,CAAA,EAAMC,0BAAwB,CAC5BjB,IAAKA,mBADPkB,EAAAC,OAIAN,EAASrB,OAAOS,4BACjB,EACD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nethesis/phone-island",
3
3
  "author": "Nethesis",
4
- "version": "0.7.69",
4
+ "version": "0.7.71",
5
5
  "description": "NethVoice CTI Phone Island",
6
6
  "keywords": [
7
7
  "nethserver",