Built motion from commit (unavailable).|2.2.0
[motion2.git] / server / services / xdr / agents.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 _0x6cae=['CreateVoiceAgentReport','destchannel','agentringnoanswer','assign','now','called','isNil','rejected','queuecallerabandon','forIn','abandon','agentconnect','connect','answered_elsewhere','membername','complete','blindtransfer','transfererchannel','origtransfererchannel','transfertargetcalleridname','secondtransfererchannel','transfereechannel','transfereecalleridname','transfereeconnectedlinenum','cdr','destinationchannel','agentconnectAt','endtime','diffTime','agentcalledAt','agentringnoanswerAt','answertime','unknown','transfer','util','info','format','AGENT|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','queue','interface','calleridnum','connectedlinenum','lastevent','then','type','agentacw','agentcomplete','acw','acwtime','request'];(function(_0x1c3871,_0x290d71){var _0x40be9b=function(_0x5571b9){while(--_0x5571b9){_0x1c3871['push'](_0x1c3871['shift']());}};_0x40be9b(++_0x290d71);}(_0x6cae,0x1c2));var _0xe6ca=function(_0x165185,_0x4f5f34){_0x165185=_0x165185-0x0;var _0xf0cf4=_0x6cae[_0x165185];return _0xf0cf4;};'use strict';var _=require('lodash');var util=require(_0xe6ca('0x0'));var utils=require('./utils');var agents={};var transfers={};function writeDB(_0x283b28){utils[_0xe6ca('0x1')](util[_0xe6ca('0x2')](_0xe6ca('0x3'),_0x283b28[_0xe6ca('0x4')],_0x283b28[_0xe6ca('0x5')],_0x283b28[_0xe6ca('0x6')],_0x283b28['membername'],_0x283b28[_0xe6ca('0x7')],_0x283b28[_0xe6ca('0x8')],_0x283b28[_0xe6ca('0x9')],_0x283b28[_0xe6ca('0xa')]));if(_0x283b28[_0xe6ca('0x6')]){utils['getVoiceQueueByName'](_0x283b28[_0xe6ca('0x6')])[_0xe6ca('0xb')](function(_0x482d23){if(_0x482d23){_0x283b28[_0xe6ca('0xc')]=_0x482d23[_0xe6ca('0xc')];_0x283b28[_0xe6ca('0xd')]=_0x283b28[_0xe6ca('0xe')]?_0x482d23[_0xe6ca('0xf')]:![];_0x283b28[_0xe6ca('0x10')]=_0x283b28[_0xe6ca('0xd')]?_0x482d23['acwTimeout']:null;}utils[_0xe6ca('0x11')](_0xe6ca('0x12'),_0x283b28);});}else{utils['request'](_0xe6ca('0x12'),_0x283b28);}delete agents[_0x283b28[_0xe6ca('0x13')]];}function isClosed(_0x3b45e1){return _0x3b45e1[_0xe6ca('0x14')]||_0x3b45e1['agentconnect']||_0x3b45e1[_0xe6ca('0xe')];}exports['agentcalled']=function(_0x42ee5a){agents[_0x42ee5a[_0xe6ca('0x13')]]=_[_0xe6ca('0x15')](_0x42ee5a,{'agentcalled':!![],'agentcalledAt':utils[_0xe6ca('0x16')](),'lastevent':_0xe6ca('0x17')});};exports[_0xe6ca('0x14')]=function(_0x10377c){if(!_[_0xe6ca('0x18')](agents[_0x10377c[_0xe6ca('0x13')]])){agents[_0x10377c[_0xe6ca('0x13')]]=_[_0xe6ca('0x15')](agents[_0x10377c[_0xe6ca('0x13')]],_0x10377c,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0xe6ca('0x16')](),'lastevent':_0xe6ca('0x19'),'reason':_0xe6ca('0x19')});}};exports[_0xe6ca('0x1a')]=function(_0x473f83){_[_0xe6ca('0x1b')](agents,function(_0x3520d3,_0x3989af){if(_0x3520d3[_0xe6ca('0x5')]==_0x473f83[_0xe6ca('0x5')]){if(!isClosed(_0x3520d3)){_0x3520d3=_['assign'](_0x3520d3,{'agentringnoanswer':!![],'agentringnoanswerAt':utils['now'](),'lastevent':'abandon','reason':_0xe6ca('0x1c')});}}});};exports[_0xe6ca('0x1d')]=function(_0xe47761){if(!_[_0xe6ca('0x18')](agents[_0xe47761[_0xe6ca('0x13')]])){agents[_0xe47761['destchannel']]=_[_0xe6ca('0x15')](agents[_0xe47761[_0xe6ca('0x13')]],_0xe47761,{'agentconnect':!![],'agentconnectAt':utils['now'](),'lastevent':_0xe6ca('0x1e')});_[_0xe6ca('0x1b')](agents,function(_0x3631ea,_0x18209e){if(_0x3631ea[_0xe6ca('0x5')]==_0xe47761[_0xe6ca('0x5')]){if(!isClosed(_0x3631ea)){_0x3631ea=_['assign'](_0x3631ea,{'agentringnoanswer':!![],'agentringnoanswerAt':utils[_0xe6ca('0x16')](),'lastevent':_0xe6ca('0x1f'),'reason':_0xe6ca('0x1f'),'answeredelsewheredestinationuniqueid':_0xe47761['destuniqueid'],'answeredelsewheremembername':_0xe47761[_0xe6ca('0x20')]});}}});}};exports[_0xe6ca('0xe')]=function(_0x2d44af){if(!_['isNil'](agents[_0x2d44af[_0xe6ca('0x13')]])){agents[_0x2d44af[_0xe6ca('0x13')]]=_[_0xe6ca('0x15')](agents[_0x2d44af[_0xe6ca('0x13')]],_0x2d44af,{'agentcomplete':!![],'agentcompleteAt':utils[_0xe6ca('0x16')](),'lastevent':_0xe6ca('0x21')});}};exports[_0xe6ca('0x22')]=function(_0xbe578c){if(!_[_0xe6ca('0x18')](agents[_0xbe578c[_0xe6ca('0x23')]])){this['cdr']({'destinationchannel':_0xbe578c[_0xe6ca('0x23')]});}};exports['attendedtransfer']=function(_0x1f2695){_[_0xe6ca('0x1b')](agents,function(_0x20d872){if(_0x20d872['channel']==_0x1f2695[_0xe6ca('0x24')]){transfers[_0x20d872[_0xe6ca('0x13')]]=_['clone'](_0x20d872);transfers[_0x20d872[_0xe6ca('0x13')]]=_['assign'](transfers[_0x20d872[_0xe6ca('0x13')]],{'channel':_0x1f2695['transfertargetchannel'],'calleridname':_0x1f2695[_0xe6ca('0x25')],'calleridnum':_0x1f2695['transfertargetconnectedlinenum']});}else if(_0x20d872[_0xe6ca('0x5')]==_0x1f2695[_0xe6ca('0x26')]){transfers[_0x20d872[_0xe6ca('0x13')]]=_['clone'](_0x20d872);transfers[_0x20d872['destchannel']]=_[_0xe6ca('0x15')](transfers[_0x20d872[_0xe6ca('0x13')]],{'channel':_0x1f2695[_0xe6ca('0x27')],'calleridname':_0x1f2695[_0xe6ca('0x28')],'calleridnum':_0x1f2695[_0xe6ca('0x29')]});}});};exports[_0xe6ca('0x2a')]=function(_0x1f2026){if(!_[_0xe6ca('0x18')](agents[_0x1f2026[_0xe6ca('0x2b')]])){if(!_[_0xe6ca('0x18')](agents[_0x1f2026['destinationchannel']][_0xe6ca('0x2c')])){agents[_0x1f2026[_0xe6ca('0x2b')]]=_[_0xe6ca('0x15')](agents[_0x1f2026[_0xe6ca('0x2b')]],{'agentcomplete':!![],'agentcompleteAt':_0x1f2026[_0xe6ca('0x2d')],'holdtime':utils[_0xe6ca('0x2e')](agents[_0x1f2026[_0xe6ca('0x2b')]]['agentconnectAt'],agents[_0x1f2026['destinationchannel']][_0xe6ca('0x2f')]),'talktime':utils['diffTime'](_0x1f2026[_0xe6ca('0x2d')],agents[_0x1f2026[_0xe6ca('0x2b')]][_0xe6ca('0x2c')]),'lastevent':'complete'});}else if(_[_0xe6ca('0x18')](agents[_0x1f2026[_0xe6ca('0x2b')]][_0xe6ca('0x30')])){agents[_0x1f2026[_0xe6ca('0x2b')]]=_['assign'](agents[_0x1f2026[_0xe6ca('0x2b')]],{'agentringnoanswer':!![],'agentringnoanswerAt':_0x1f2026[_0xe6ca('0x31')]||_0x1f2026['starttime'],'reason':_0xe6ca('0x32')});}writeDB(agents[_0x1f2026['destinationchannel']]);if(!_[_0xe6ca('0x18')](transfers[_0x1f2026[_0xe6ca('0x2b')]])){agents[_0x1f2026[_0xe6ca('0x2b')]]=_[_0xe6ca('0x15')](transfers[_0x1f2026[_0xe6ca('0x2b')]],{'agentcalledAt':utils[_0xe6ca('0x16')](),'agentconnectAt':transfers[_0x1f2026[_0xe6ca('0x2b')]][_0xe6ca('0x1d')]?utils[_0xe6ca('0x16')]():null,'lastevent':_0xe6ca('0x1e'),'reason':_0xe6ca('0x33')});delete transfers[_0x1f2026[_0xe6ca('0x2b')]];}}};