Built motion from commit 449495f6.|2.6.27
[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 _0xd433=['Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','type','getUserByInterface','membername','name','internal','request','CreateMemberReport','then','catch','error','[%s][members][writeDB]','some','debug','[%s][members][devicestatechange]','device','state','INUSE','BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','diffTime','exitAt','enterAt','agentcomplete','[%s][members][agentcomplete]','assign','queue','cdr','split','data1','source','data3','destination','destinationchannel','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','[%s][members][cdr]','lodash','util','Local/_attended@transfer'];(function(_0x4ca160,_0x14886c){var _0x303ae9=function(_0xa1d94c){while(--_0xa1d94c){_0x4ca160['push'](_0x4ca160['shift']());}};_0x303ae9(++_0x14886c);}(_0xd433,0x1c8));var _0x3d43=function(_0x63c9d4,_0x24cf44){_0x63c9d4=_0x63c9d4-0x0;var _0xc367cc=_0xd433[_0x63c9d4];return _0xc367cc;};'use strict';var _=require(_0x3d43('0x0'));var util=require(_0x3d43('0x1'));var utils=require('./utils');var members={};var exclude=[_0x3d43('0x2'),_0x3d43('0x3')];function writeDB(_0x9c4670){utils[_0x3d43('0x4')](util[_0x3d43('0x5')](_0x3d43('0x6'),_0x9c4670[_0x3d43('0x7')],_0x9c4670[_0x3d43('0x8')],_0x9c4670[_0x3d43('0x9')],_0x9c4670[_0x3d43('0xa')],_0x9c4670['membername'],_0x9c4670[_0x3d43('0xb')]));if(_0x9c4670[_0x3d43('0x8')]){utils[_0x3d43('0xc')](_0x9c4670[_0x3d43('0x8')])['then'](function(_0x16f08d){if(_0x16f08d){_0x9c4670[_0x3d43('0xd')]=_0x16f08d[_0x3d43('0xe')];_0x9c4670[_0x3d43('0xf')]=_0x16f08d[_0x3d43('0xf')];utils[_0x3d43('0x10')](_0x3d43('0x11'),_0x9c4670);}else{utils['getUserByName'](_0x9c4670['interface']['split']('/')[0x1])[_0x3d43('0x12')](function(_0x12fc91){if(_0x12fc91){_0x9c4670[_0x3d43('0xd')]=_0x12fc91['name'];_0x9c4670[_0x3d43('0xf')]=_0x12fc91[_0x3d43('0xf')];utils[_0x3d43('0x10')](_0x3d43('0x11'),_0x9c4670);}});}})[_0x3d43('0x13')](function(_0x24ade1){utils[_0x3d43('0x14')](util[_0x3d43('0x5')](_0x3d43('0x15'),_0x9c4670['uniqueid']),_0x24ade1);});}delete members[_0x9c4670[_0x3d43('0x8')]];}function startsWith(_0x112c27,_0x3c15ab){return _[_0x3d43('0x16')](_0x112c27,function(_0x478ce0){return _['startsWith'](_0x3c15ab,_0x478ce0);});}exports['devicestatechange']=function(_0x429478){try{utils[_0x3d43('0x17')](util[_0x3d43('0x5')](_0x3d43('0x18'),members[_0x429478[_0x3d43('0x19')]]?members[_0x429478['device']][_0x3d43('0x7')]:_0x429478[_0x3d43('0x19')]),_0x429478);utils['info'](util[_0x3d43('0x5')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x429478[_0x3d43('0x19')]]?members[_0x429478['device']]['uniqueid']:_0x429478[_0x3d43('0x19')],_0x429478['state'],_0x429478[_0x3d43('0x19')]));switch(_0x429478[_0x3d43('0x1a')]){case _0x3d43('0x1b'):case _0x3d43('0x1c'):if(!startsWith(exclude,_0x429478[_0x3d43('0x19')])){members[_0x429478[_0x3d43('0x19')]]={'channel':_0x3d43('0x1d'),'interface':_0x429478[_0x3d43('0x19')],'type':_0x3d43('0x1e'),'enterAt':utils[_0x3d43('0x1f')](),'role':_0x3d43('0x20')};}break;case _0x3d43('0x21'):if(!_[_0x3d43('0x22')](members[_0x429478[_0x3d43('0x19')]])){members[_0x429478['device']]['exitAt']=utils['now']();members[_0x429478[_0x3d43('0x19')]]['duration']=utils[_0x3d43('0x23')](members[_0x429478[_0x3d43('0x19')]][_0x3d43('0x24')],members[_0x429478[_0x3d43('0x19')]][_0x3d43('0x25')]);if(members[_0x429478[_0x3d43('0x19')]][_0x3d43('0x7')]){writeDB(members[_0x429478[_0x3d43('0x19')]]);}}break;default:break;}}catch(_0x4616cf){utils['error'](util[_0x3d43('0x5')](_0x3d43('0x18'),members[_0x429478['device']]?members[_0x429478['device']][_0x3d43('0x7')]:_0x429478['device']),_0x4616cf);}};exports[_0x3d43('0x26')]=function(_0x1a5093){try{if(!_['isNil'](members[_0x1a5093['interface']])){utils['debug'](util['format'](_0x3d43('0x27'),_0x1a5093[_0x3d43('0x7')]),_0x1a5093);utils[_0x3d43('0x4')](util['format']('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x1a5093[_0x3d43('0x7')],_0x1a5093['interface'],_0x1a5093['queue']));members[_0x1a5093[_0x3d43('0x8')]]=_[_0x3d43('0x28')](members[_0x1a5093[_0x3d43('0x8')]],{'data4':_0x1a5093[_0x3d43('0x29')],'uniqueid':_0x1a5093[_0x3d43('0x7')]});}}catch(_0x2bcabc){utils['error'](util[_0x3d43('0x5')](_0x3d43('0x27'),_0x1a5093[_0x3d43('0x7')]),_0x2bcabc);}};exports[_0x3d43('0x2a')]=function(_0x30c8a1){try{utils['debug'](util[_0x3d43('0x5')]('[%s][members][cdr]',_0x30c8a1['uniqueid']),_0x30c8a1);if(_0x30c8a1[_0x3d43('0x9')]){var _0x1a7047=_0x30c8a1[_0x3d43('0x9')][_0x3d43('0x2b')]('-')[0x0];if(!_[_0x3d43('0x22')](members[_0x1a7047])){members[_0x1a7047]=_[_0x3d43('0x28')](members[_0x1a7047],{'data1':members[_0x1a7047][_0x3d43('0x2c')]||_0x30c8a1['type'],'data2':members[_0x1a7047][_0x3d43('0xa')]||_0x30c8a1[_0x3d43('0x2d')],'data3':members[_0x1a7047][_0x3d43('0x2e')]||_0x30c8a1[_0x3d43('0x2f')],'uniqueid':members[_0x1a7047][_0x3d43('0x7')]||_0x30c8a1[_0x3d43('0x7')]});utils['info'](util[_0x3d43('0x5')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x30c8a1[_0x3d43('0x7')],members[_0x1a7047]['data1'],members[_0x1a7047][_0x3d43('0xa')],members[_0x1a7047][_0x3d43('0x2e')]));if(members[_0x1a7047][_0x3d43('0x24')]){writeDB(members[_0x1a7047]);}}}if(_0x30c8a1[_0x3d43('0x30')]){var _0x4aa6c2=_0x30c8a1[_0x3d43('0x30')]['split']('-')[0x0];if(!_[_0x3d43('0x22')](members[_0x4aa6c2])){members[_0x4aa6c2]=_[_0x3d43('0x28')](members[_0x4aa6c2],{'data1':members[_0x4aa6c2]['data1']||_0x30c8a1[_0x3d43('0xb')],'data2':members[_0x4aa6c2]['data2']||_0x30c8a1[_0x3d43('0x2d')],'data3':members[_0x4aa6c2][_0x3d43('0x2e')]||_0x30c8a1[_0x3d43('0x2f')],'uniqueid':members[_0x4aa6c2][_0x3d43('0x7')]||_0x30c8a1['uniqueid']});utils[_0x3d43('0x4')](util[_0x3d43('0x5')](_0x3d43('0x31'),_0x30c8a1[_0x3d43('0x7')],members[_0x4aa6c2]['data1'],members[_0x4aa6c2][_0x3d43('0xa')],members[_0x4aa6c2][_0x3d43('0x2e')]));if(members[_0x4aa6c2]['exitAt']){writeDB(members[_0x4aa6c2]);}}}}catch(_0x3e14f5){utils[_0x3d43('0x14')](util[_0x3d43('0x5')](_0x3d43('0x32'),_0x30c8a1[_0x3d43('0x7')]),_0x3e14f5);}};