Built motion from commit da24aabd.|2.6.20
[motion2.git] / server / components / realtime / queues.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xad0b=['pTalking','originated','message','statusMessage','dialActive','dialMethod','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','predictiveIntervalTotalCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','voice','request','then','error','format','result','catch','getRealtimeQueues','concat','map','get','waiting','merge','pick','initializeQueues','lodash','util','client','http','loggedIn','paused','busy','inUse','invalid','loggedInDb','notInUse','onHold','ringInUse','talking','unknown'];(function(_0x5c2da4,_0xf4a329){var _0x708e40=function(_0x1cedf2){while(--_0x1cedf2){_0x5c2da4['push'](_0x5c2da4['shift']());}};_0x708e40(++_0xf4a329);}(_0xad0b,0xa9));var _0xbad0=function(_0x4736c9,_0x3ac90c){_0x4736c9=_0x4736c9-0x0;var _0x2c2e80=_0xad0b[_0x4736c9];return _0x2c2e80;};'use strict';var _=require(_0xbad0('0x0'));var jayson=require('jayson/promise');var util=require(_0xbad0('0x1'));var amiClient=jayson[_0xbad0('0x2')][_0xbad0('0x3')]({'port':0x232a});var routingClient=jayson['client']['http']({'port':0x232c});var DEFAULT_QUEUE_ATTRIBUTES=['available',_0xbad0('0x4'),_0xbad0('0x5'),'waiting'];var VOICE_QUEUE_ATTRIBUTES=[_0xbad0('0x6'),_0xbad0('0x7'),_0xbad0('0x8'),_0xbad0('0x9'),_0xbad0('0xa'),_0xbad0('0xb'),'ringing',_0xbad0('0xc'),_0xbad0('0xd'),'unavailable',_0xbad0('0xe')];var OUTBOUND_QUEUE_ATTRIBUTES=[_0xbad0('0xf'),_0xbad0('0x10'),_0xbad0('0x11'),_0xbad0('0x12'),_0xbad0('0x13'),_0xbad0('0x14'),'Trunk','startPredictive','startProgressive',_0xbad0('0x15'),_0xbad0('0x16'),_0xbad0('0x17'),'erlangBusyFactor',_0xbad0('0x18'),_0xbad0('0x19'),_0xbad0('0x1a'),'predictiveIntervalAvailable',_0xbad0('0x1b'),'predictiveIntervalAnsweredCalls',_0xbad0('0x1c'),'predictiveIntervalDroppedCallsCallersExit',_0xbad0('0x1d'),_0xbad0('0x1e')];function getRealtimeQueues(_0x5ac50e,_0x18b07a){var _0x3fcbca=_0x18b07a===_0xbad0('0x1f')?amiClient:routingClient;return _0x3fcbca[_0xbad0('0x20')](_['startCase'](_0x18b07a)+'Queues',_0x5ac50e)[_0xbad0('0x21')](function(_0x382450){if(_0x382450[_0xbad0('0x22')])throw new Error(util[_0xbad0('0x23')]('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x18b07a));return _0x382450[_0xbad0('0x24')];})[_0xbad0('0x25')](function(_0x4ab611){throw _0x4ab611;});}exports[_0xbad0('0x26')]=getRealtimeQueues;function initializeQueues(_0x16f0f4,_0x39b7b6,_0x6a9603,_0x1b130f){var _0x587e20=DEFAULT_QUEUE_ATTRIBUTES;if(_0x6a9603==='voice'){if(_0x1b130f==='inbound'){_0x587e20=_0x587e20[_0xbad0('0x27')](VOICE_QUEUE_ATTRIBUTES);}else if(_0x1b130f==='outbound'){_0x587e20=_0x587e20[_0xbad0('0x27')](VOICE_QUEUE_ATTRIBUTES,OUTBOUND_QUEUE_ATTRIBUTES);}}return _0x16f0f4[_0xbad0('0x28')](function(_0x5917ed){var _0x808c4c=_0x5917ed[_0xbad0('0x29')]({'plain':!![]});_0x808c4c[_0xbad0('0x5')]=0x0;_0x808c4c[_0xbad0('0x9')]=0x0;_0x808c4c['loggedIn']=0x0;_0x808c4c['available']=0x0;_0x808c4c[_0xbad0('0x2a')]=0x0;if(_0x6a9603===_0xbad0('0x1f')){_0x808c4c['talking']=0x0;_0x808c4c['busy']=0x0;if(_0x1b130f==='outbound'){_0x808c4c['pTalking']=0x0;_0x808c4c[_0xbad0('0x10')]=0x0;}}var _0x34065d=_['find'](_0x39b7b6,['id',_0x808c4c['id']]);if(_0x34065d){_[_0xbad0('0x2b')](_0x808c4c,_[_0xbad0('0x2c')](_0x34065d,_0x587e20));}return _0x808c4c;});}exports[_0xbad0('0x2d')]=initializeQueues;