84b354a3e5a8bebd20aa5420490ca4def87ad4b3
[motion2.git] / server / services / xdr / members.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 _0x9bcd=['device','state','INUSE','BUSY','voice','now','agent','NOT_INUSE','isNil','exitAt','duration','enterAt','[%s][members][devicestatechange]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','cdr','[%s][members][cdr]','source','data3','destinationchannel','data1','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','lodash','util','Local/_attended@transfer','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername','type','getUserByInterface','then','name','internal','request','split','CreateMemberReport','catch','error','[%s][members][writeDB]','startsWith','debug'];(function(_0x24d830,_0x1024a4){var _0x239cc0=function(_0x1dbae5){while(--_0x1dbae5){_0x24d830['push'](_0x24d830['shift']());}};_0x239cc0(++_0x1024a4);}(_0x9bcd,0x1c7));var _0xd9bc=function(_0x555208,_0x1a380a){_0x555208=_0x555208-0x0;var _0x668bbb=_0x9bcd[_0x555208];return _0x668bbb;};'use strict';var _=require(_0xd9bc('0x0'));var util=require(_0xd9bc('0x1'));var utils=require('./utils');var members={};var exclude=[_0xd9bc('0x2'),_0xd9bc('0x3')];function writeDB(_0x1f4929){utils[_0xd9bc('0x4')](util[_0xd9bc('0x5')](_0xd9bc('0x6'),_0x1f4929[_0xd9bc('0x7')],_0x1f4929[_0xd9bc('0x8')],_0x1f4929[_0xd9bc('0x9')],_0x1f4929[_0xd9bc('0xa')],_0x1f4929[_0xd9bc('0xb')],_0x1f4929[_0xd9bc('0xc')]));if(_0x1f4929[_0xd9bc('0x8')]){utils[_0xd9bc('0xd')](_0x1f4929[_0xd9bc('0x8')])[_0xd9bc('0xe')](function(_0x20b573){if(_0x20b573){_0x1f4929[_0xd9bc('0xb')]=_0x20b573[_0xd9bc('0xf')];_0x1f4929[_0xd9bc('0x10')]=_0x20b573[_0xd9bc('0x10')];utils[_0xd9bc('0x11')]('CreateMemberReport',_0x1f4929);}else{utils['getUserByName'](_0x1f4929[_0xd9bc('0x8')][_0xd9bc('0x12')]('/')[0x1])[_0xd9bc('0xe')](function(_0x630415){if(_0x630415){_0x1f4929[_0xd9bc('0xb')]=_0x630415[_0xd9bc('0xf')];_0x1f4929[_0xd9bc('0x10')]=_0x630415['internal'];utils['request'](_0xd9bc('0x13'),_0x1f4929);}});}})[_0xd9bc('0x14')](function(_0x4af610){utils[_0xd9bc('0x15')](util[_0xd9bc('0x5')](_0xd9bc('0x16'),_0x1f4929['uniqueid']),_0x4af610);});}delete members[_0x1f4929[_0xd9bc('0x8')]];}function startsWith(_0x4331ef,_0x25ba74){return _['some'](_0x4331ef,function(_0x12e5fc){return _[_0xd9bc('0x17')](_0x25ba74,_0x12e5fc);});}exports['devicestatechange']=function(_0x564356){try{utils[_0xd9bc('0x18')](util[_0xd9bc('0x5')]('[%s][members][devicestatechange]',members[_0x564356[_0xd9bc('0x19')]]?members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x7')]:_0x564356[_0xd9bc('0x19')]),_0x564356);utils['info'](util[_0xd9bc('0x5')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x564356[_0xd9bc('0x19')]]?members[_0x564356['device']]['uniqueid']:_0x564356[_0xd9bc('0x19')],_0x564356[_0xd9bc('0x1a')],_0x564356[_0xd9bc('0x19')]));switch(_0x564356['state']){case _0xd9bc('0x1b'):case _0xd9bc('0x1c'):if(!startsWith(exclude,_0x564356[_0xd9bc('0x19')])){members[_0x564356['device']]={'channel':_0xd9bc('0x1d'),'interface':_0x564356[_0xd9bc('0x19')],'type':'TALKING','enterAt':utils[_0xd9bc('0x1e')](),'role':_0xd9bc('0x1f')};}break;case _0xd9bc('0x20'):if(!_[_0xd9bc('0x21')](members[_0x564356['device']])){members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x22')]=utils[_0xd9bc('0x1e')]();members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x23')]=utils['diffTime'](members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x22')],members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x24')]);if(members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x7')]){writeDB(members[_0x564356['device']]);}}break;default:break;}}catch(_0x381c20){utils['error'](util['format'](_0xd9bc('0x25'),members[_0x564356['device']]?members[_0x564356[_0xd9bc('0x19')]][_0xd9bc('0x7')]:_0x564356[_0xd9bc('0x19')]),_0x381c20);}};exports['agentcomplete']=function(_0x3fb15d){try{if(!_[_0xd9bc('0x21')](members[_0x3fb15d['interface']])){utils[_0xd9bc('0x18')](util[_0xd9bc('0x5')]('[%s][members][agentcomplete]',_0x3fb15d[_0xd9bc('0x7')]),_0x3fb15d);utils[_0xd9bc('0x4')](util[_0xd9bc('0x5')](_0xd9bc('0x26'),_0x3fb15d['uniqueid'],_0x3fb15d['interface'],_0x3fb15d['queue']));members[_0x3fb15d['interface']]=_['assign'](members[_0x3fb15d[_0xd9bc('0x8')]],{'data4':_0x3fb15d[_0xd9bc('0x27')],'uniqueid':_0x3fb15d[_0xd9bc('0x7')]});}}catch(_0x12935e){utils[_0xd9bc('0x15')](util[_0xd9bc('0x5')]('[%s][members][agentcomplete]',_0x3fb15d[_0xd9bc('0x7')]),_0x12935e);}};exports[_0xd9bc('0x28')]=function(_0xd6f0a0){try{utils['debug'](util[_0xd9bc('0x5')](_0xd9bc('0x29'),_0xd6f0a0[_0xd9bc('0x7')]),_0xd6f0a0);if(_0xd6f0a0[_0xd9bc('0x9')]){var _0x13b843=_0xd6f0a0[_0xd9bc('0x9')][_0xd9bc('0x12')]('-')[0x0];if(!_[_0xd9bc('0x21')](members[_0x13b843])){members[_0x13b843]=_['assign'](members[_0x13b843],{'data1':members[_0x13b843]['data1']||_0xd6f0a0['type'],'data2':members[_0x13b843][_0xd9bc('0xa')]||_0xd6f0a0[_0xd9bc('0x2a')],'data3':members[_0x13b843][_0xd9bc('0x2b')]||_0xd6f0a0['destination'],'uniqueid':members[_0x13b843][_0xd9bc('0x7')]||_0xd6f0a0[_0xd9bc('0x7')]});utils[_0xd9bc('0x4')](util[_0xd9bc('0x5')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0xd6f0a0[_0xd9bc('0x7')],members[_0x13b843]['data1'],members[_0x13b843]['data2'],members[_0x13b843][_0xd9bc('0x2b')]));if(members[_0x13b843][_0xd9bc('0x22')]){writeDB(members[_0x13b843]);}}}if(_0xd6f0a0[_0xd9bc('0x2c')]){var _0x43ba3b=_0xd6f0a0['destinationchannel'][_0xd9bc('0x12')]('-')[0x0];if(!_[_0xd9bc('0x21')](members[_0x43ba3b])){members[_0x43ba3b]=_['assign'](members[_0x43ba3b],{'data1':members[_0x43ba3b][_0xd9bc('0x2d')]||_0xd6f0a0[_0xd9bc('0xc')],'data2':members[_0x43ba3b][_0xd9bc('0xa')]||_0xd6f0a0[_0xd9bc('0x2a')],'data3':members[_0x43ba3b]['data3']||_0xd6f0a0[_0xd9bc('0x2e')],'uniqueid':members[_0x43ba3b][_0xd9bc('0x7')]||_0xd6f0a0['uniqueid']});utils[_0xd9bc('0x4')](util[_0xd9bc('0x5')](_0xd9bc('0x2f'),_0xd6f0a0[_0xd9bc('0x7')],members[_0x43ba3b][_0xd9bc('0x2d')],members[_0x43ba3b][_0xd9bc('0xa')],members[_0x43ba3b][_0xd9bc('0x2b')]));if(members[_0x43ba3b][_0xd9bc('0x22')]){writeDB(members[_0x43ba3b]);}}}}catch(_0xfae0a4){utils[_0xd9bc('0x15')](util['format'](_0xd9bc('0x29'),_0xd6f0a0['uniqueid']),_0xfae0a4);}};