Built motion from commit (unavailable).|2.3.4
[motion2.git] / server / services / xdr / queues.controller.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 _0x4a7c=['extension','BLINDTRANSFER','attendedtransfer','forIn','transfertargetchannel','transfertargetcalleridname','transfertargetcalleridnum','ATTENDED','origtransfererexten','origtransfereruniqueid','origtransfererchannel','transfereecalleridname','transfereecalleridnum','secondtransfererexten','secondtransfereruniqueid','secondtransfererchannel','musiconholdstart','musiconholdstop','musiconholdstartAt','cdr','COMPLETED','lodash','util','./utils','format','queue','lastAssignedTo','queuecallerexitreason','getVoiceQueueByName','then','type','CreateVoiceQueueReport','request','channel','isNil','clone','position','now','varset','variable','queuestatus','CONTINUE','value','toUpperCase','queuecallerabandon','ABANDONED','assign','queuecallerleave','diffTime','queuecallerjoinAt','agentconnect','connectedlinenum','connectedlinename','membername','agentcomplete','reason','transfer','COMPLETEDBY','blindtransfer','transfereechannel','BLIND'];(function(_0x32a552,_0x32af32){var _0xa2c2b9=function(_0x39f2b5){while(--_0x39f2b5){_0x32a552['push'](_0x32a552['shift']());}};_0xa2c2b9(++_0x32af32);}(_0x4a7c,0x183));var _0xc4a7=function(_0x292818,_0x190de0){_0x292818=_0x292818-0x0;var _0x146eb6=_0x4a7c[_0x292818];return _0x146eb6;};'use strict';var _=require(_0xc4a7('0x0'));var util=require(_0xc4a7('0x1'));var utils=require(_0xc4a7('0x2'));var queues={};var transfers={};function writeDB(_0x18331a,_0x568524){utils['info'](util[_0xc4a7('0x3')]('QUEUE|%s|%s|%s|%s|%s|%s|%s',_0x18331a['uniqueid'],_0x18331a['channel'],_0x18331a[_0xc4a7('0x4')],_0x18331a[_0xc4a7('0x5')],_0x18331a['calleridnum'],_0x18331a['accountcode'],_0x18331a[_0xc4a7('0x6')]));if(_0x18331a[_0xc4a7('0x4')]){utils[_0xc4a7('0x7')](_0x18331a[_0xc4a7('0x4')])[_0xc4a7('0x8')](function(_0x5bd81a){if(_0x5bd81a){_0x18331a[_0xc4a7('0x9')]=_0x5bd81a[_0xc4a7('0x9')];}utils['request'](_0xc4a7('0xa'),_0x18331a);});}else{utils[_0xc4a7('0xb')](_0xc4a7('0xa'),_0x18331a);}if(_0x568524){delete queues[_0x18331a[_0xc4a7('0xc')]];}}exports['queuecallerjoin']=function(_0x2ca8af){if(!_[_0xc4a7('0xd')](queues[_0x2ca8af['channel']])){writeDB(_[_0xc4a7('0xe')](queues[_0x2ca8af['channel']]),![]);}queues[_0x2ca8af['channel']]=_['assign'](_0x2ca8af,{'originalposition':_0x2ca8af[_0xc4a7('0xf')],'queuecallerjoinAt':utils[_0xc4a7('0x10')](),'mohtime':0x0});};exports[_0xc4a7('0x11')]=function(_0x1ebc09){if(!_[_0xc4a7('0xd')](queues[_0x1ebc09[_0xc4a7('0xc')]])){if(!_['isNil'](_0x1ebc09[_0xc4a7('0x12')][_0xc4a7('0x13')])){if(_0x1ebc09['value']!=_0xc4a7('0x14')){queues[_0x1ebc09['channel']]=_['assign'](queues[_0x1ebc09[_0xc4a7('0xc')]],{'queuecallerabandon':![],'queuecallerabandonAt':null,'queuecallerexit':!![],'queuecallerexitAt':utils[_0xc4a7('0x10')](),'queuecallerexitreason':_0x1ebc09[_0xc4a7('0x15')][_0xc4a7('0x16')]()});}}}};exports[_0xc4a7('0x17')]=function(_0x462bbf){var _0x547fe8={'queuecallerabandon':!![],'queuecallerabandonAt':utils[_0xc4a7('0x10')](),'queuecallerexitreason':_0xc4a7('0x18')};if(!_['isNil'](queues[_0x462bbf[_0xc4a7('0xc')]])){queues[_0x462bbf[_0xc4a7('0xc')]]=_['assign'](queues[_0x462bbf[_0xc4a7('0xc')]],_0x547fe8);}if(!_[_0xc4a7('0xd')](transfers[_0x462bbf['channel']])){transfers[_0x462bbf['channel']]=_[_0xc4a7('0x19')](transfers[_0x462bbf[_0xc4a7('0xc')]],_0x547fe8);}};exports[_0xc4a7('0x1a')]=function(_0x4ae23c){if(!_['isNil'](queues[_0x4ae23c[_0xc4a7('0xc')]])){queues[_0x4ae23c[_0xc4a7('0xc')]]=_[_0xc4a7('0x19')](queues[_0x4ae23c['channel']],{'queuecallerleave':!![],'queuecallerleaveAt':utils['now'](),'holdtime':utils[_0xc4a7('0x1b')](utils['now'](),queues[_0x4ae23c[_0xc4a7('0xc')]]['queuecallerjoinAt'])});}if(!_[_0xc4a7('0xd')](transfers[_0x4ae23c[_0xc4a7('0xc')]])){transfers[_0x4ae23c[_0xc4a7('0xc')]]=_[_0xc4a7('0x19')](transfers[_0x4ae23c['channel']],{'queuecallerleave':!![],'queuecallerleaveAt':utils[_0xc4a7('0x10')](),'holdtime':utils[_0xc4a7('0x1b')](utils[_0xc4a7('0x10')](),transfers[_0x4ae23c['channel']][_0xc4a7('0x1c')])});}};exports[_0xc4a7('0x1d')]=function(_0x2e7aa9){var _0x3740ec={'connectedlinenum':_0x2e7aa9[_0xc4a7('0x1e')],'connectedlinename':_0x2e7aa9[_0xc4a7('0x1f')],'assigned':!![],'lastAssignedTo':_0x2e7aa9[_0xc4a7('0x20')]};if(!_['isNil'](queues[_0x2e7aa9[_0xc4a7('0xc')]])){queues[_0x2e7aa9[_0xc4a7('0xc')]]=_[_0xc4a7('0x19')](queues[_0x2e7aa9[_0xc4a7('0xc')]],_0x3740ec);}if(!_['isNil'](transfers[_0x2e7aa9['channel']])){transfers[_0x2e7aa9[_0xc4a7('0xc')]]=_[_0xc4a7('0x19')](transfers[_0x2e7aa9[_0xc4a7('0xc')]],_0x3740ec);}};exports[_0xc4a7('0x21')]=function(_0x195fa2){var _0x3d9c24={'queuecallercomplete':!![],'queuecallercompleteAt':utils['now']()};if(_0x195fa2[_0xc4a7('0x22')]!=_0xc4a7('0x23')){_0x3d9c24[_0xc4a7('0x6')]=_0xc4a7('0x24')+_0x195fa2[_0xc4a7('0x22')][_0xc4a7('0x16')]();}if(!_[_0xc4a7('0xd')](queues[_0x195fa2[_0xc4a7('0xc')]])){queues[_0x195fa2[_0xc4a7('0xc')]]=_['assign'](queues[_0x195fa2[_0xc4a7('0xc')]],_0x3d9c24);writeDB(queues[_0x195fa2[_0xc4a7('0xc')]],!![]);}};exports[_0xc4a7('0x25')]=function(_0x573624){if(!_[_0xc4a7('0xd')](queues[_0x573624[_0xc4a7('0x26')]])){queues[_0x573624[_0xc4a7('0x26')]]=_[_0xc4a7('0x19')](queues[_0x573624[_0xc4a7('0x26')]],{'transfer':!![],'transfertype':_0xc4a7('0x27'),'transferexten':_0x573624[_0xc4a7('0x28')],'transferuniqueid':_0x573624['transfereeuniqueid'],'queuecallerexitreason':_0xc4a7('0x29')});}};exports[_0xc4a7('0x2a')]=function(_0x437cb7){_[_0xc4a7('0x2b')](queues,function(_0x59b703){if(_0x59b703[_0xc4a7('0xc')]==_0x437cb7['origtransfererchannel']){transfers[_0x437cb7[_0xc4a7('0x2c')]]=_['clone'](_0x59b703);transfers[_0x437cb7['transfertargetchannel']]=_[_0xc4a7('0x19')](transfers[_0x437cb7[_0xc4a7('0x2c')]],{'queuecallerjoinAt':utils[_0xc4a7('0x10')](),'queuecallerleaveAt':utils['now'](),'channel':_0x437cb7[_0xc4a7('0x2c')],'calleridname':_0x437cb7[_0xc4a7('0x2d')],'calleridnum':_0x437cb7[_0xc4a7('0x2e')],'queuecallerenterreason':0x2});queues[_0x437cb7[_0xc4a7('0x2c')]]=_[_0xc4a7('0x19')](queues[_0x437cb7['transfertargetchannel']],{'transfer':!![],'transfertype':_0xc4a7('0x2f'),'queuecallerexitreason':'ATTENDEDTRANSFER','transferexten':_0x437cb7[_0xc4a7('0x30')],'transferuniqueid':_0x437cb7[_0xc4a7('0x31')]});queues[_0x437cb7['origtransfererchannel']]=_['assign'](queues[_0x437cb7[_0xc4a7('0x32')]],{'queuecallerexitreason':'ATTENDED','queuecallerenterreason':0x1});}else if(_0x59b703[_0xc4a7('0xc')]==_0x437cb7['secondtransfererchannel']){transfers[_0x437cb7[_0xc4a7('0x26')]]=_['clone'](_0x59b703);transfers[_0x437cb7[_0xc4a7('0x26')]]=_[_0xc4a7('0x19')](transfers[_0x437cb7[_0xc4a7('0x26')]],{'queuecallerjoinAt':utils[_0xc4a7('0x10')](),'queuecallerleaveAt':utils[_0xc4a7('0x10')](),'channel':_0x437cb7[_0xc4a7('0x26')],'calleridname':_0x437cb7[_0xc4a7('0x33')],'calleridnum':_0x437cb7[_0xc4a7('0x34')],'queuecallerenterreason':0x2});queues[_0x437cb7[_0xc4a7('0x26')]]=_[_0xc4a7('0x19')](queues[_0x437cb7[_0xc4a7('0x26')]],{'transfer':!![],'transfertype':'ATTENDED','queuecallerexitreason':'ATTENDEDTRANSFER','transferexten':_0x437cb7[_0xc4a7('0x35')],'transferuniqueid':_0x437cb7[_0xc4a7('0x36')]});queues[_0x437cb7[_0xc4a7('0x37')]]=_['assign'](queues[_0x437cb7[_0xc4a7('0x37')]],{'queuecallerexitreason':_0xc4a7('0x2f'),'queuecallerenterreason':0x1});}});};exports[_0xc4a7('0x38')]=function(_0x5f2dd4){if(!_[_0xc4a7('0xd')](queues[_0x5f2dd4[_0xc4a7('0xc')]])){queues[_0x5f2dd4['channel']]['musiconholdstartAt']=utils[_0xc4a7('0x10')]();}};exports[_0xc4a7('0x39')]=function(_0xac240b){if(!_['isNil'](queues[_0xac240b['channel']])){if(!_[_0xc4a7('0xd')](queues[_0xac240b[_0xc4a7('0xc')]][_0xc4a7('0x3a')])){queues[_0xac240b[_0xc4a7('0xc')]]['mohtime']+=utils[_0xc4a7('0x1b')](utils[_0xc4a7('0x10')](),queues[_0xac240b[_0xc4a7('0xc')]]['musiconholdstartAt']);delete queues[_0xac240b['channel']]['musiconholdstartAt'];}}};exports[_0xc4a7('0x3b')]=function(_0x5e023d){if(!_[_0xc4a7('0xd')](queues[_0x5e023d[_0xc4a7('0xc')]])){writeDB(queues[_0x5e023d[_0xc4a7('0xc')]],!![]);}if(!_[_0xc4a7('0xd')](transfers[_0x5e023d[_0xc4a7('0xc')]])){if(transfers[_0x5e023d['channel']]['assigned']){transfers[_0x5e023d['channel']]=_[_0xc4a7('0x19')](transfers[_0x5e023d[_0xc4a7('0xc')]],{'queuecallercomplete':!![],'queuecallercompleteAt':utils['now'](),'queuecallerexitreason':_0xc4a7('0x3c')});}writeDB(transfers[_0x5e023d[_0xc4a7('0xc')]],![]);delete transfers[_0x5e023d[_0xc4a7('0xc')]];}};