Built motion from commit ddca4d0d.|2.5.47
[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 _0xbb95=['devicestatechange','debug','device','uniqueid','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','voice','now','agent','isNil','duration','diffTime','exitAt','enterAt','[%s][members][devicestatechange]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','[%s][members][agentcomplete]','[%s][members][cdr]','split','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','destinationchannel','lodash','util','Queue:','format','channel','data2','type','interface','getUserByInterface','then','membername','name','internal','request','CreateMemberReport','getUserByName','error','[%s][members][writeDB]','some','startsWith'];(function(_0x294f4d,_0x35032d){var _0x3519ce=function(_0x3b2115){while(--_0x3b2115){_0x294f4d['push'](_0x294f4d['shift']());}};_0x3519ce(++_0x35032d);}(_0xbb95,0x7f));var _0x5bb9=function(_0x5331cb,_0x9bed06){_0x5331cb=_0x5331cb-0x0;var _0xf64f51=_0xbb95[_0x5331cb];return _0xf64f51;};'use strict';var _=require(_0x5bb9('0x0'));var util=require(_0x5bb9('0x1'));var utils=require('./utils');var members={};var exclude=['Local/_attended@transfer',_0x5bb9('0x2')];function writeDB(_0x2a9386){utils['info'](util[_0x5bb9('0x3')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x2a9386['uniqueid'],_0x2a9386['interface'],_0x2a9386[_0x5bb9('0x4')],_0x2a9386[_0x5bb9('0x5')],_0x2a9386['membername'],_0x2a9386[_0x5bb9('0x6')]));if(_0x2a9386[_0x5bb9('0x7')]){utils[_0x5bb9('0x8')](_0x2a9386['interface'])[_0x5bb9('0x9')](function(_0x2edf23){if(_0x2edf23){_0x2a9386[_0x5bb9('0xa')]=_0x2edf23[_0x5bb9('0xb')];_0x2a9386[_0x5bb9('0xc')]=_0x2edf23[_0x5bb9('0xc')];utils[_0x5bb9('0xd')](_0x5bb9('0xe'),_0x2a9386);}else{utils[_0x5bb9('0xf')](_0x2a9386[_0x5bb9('0x7')]['split']('/')[0x1])['then'](function(_0x1f84b6){if(_0x1f84b6){_0x2a9386[_0x5bb9('0xa')]=_0x1f84b6[_0x5bb9('0xb')];_0x2a9386[_0x5bb9('0xc')]=_0x1f84b6[_0x5bb9('0xc')];utils[_0x5bb9('0xd')](_0x5bb9('0xe'),_0x2a9386);}});}})['catch'](function(_0x4b553d){utils[_0x5bb9('0x10')](util[_0x5bb9('0x3')](_0x5bb9('0x11'),_0x2a9386['uniqueid']),_0x4b553d);});}delete members[_0x2a9386[_0x5bb9('0x7')]];}function startsWith(_0x1a382f,_0x582492){return _[_0x5bb9('0x12')](_0x1a382f,function(_0x29b45c){return _[_0x5bb9('0x13')](_0x582492,_0x29b45c);});}exports[_0x5bb9('0x14')]=function(_0x119092){try{utils[_0x5bb9('0x15')](util[_0x5bb9('0x3')]('[%s][members][devicestatechange]',members[_0x119092[_0x5bb9('0x16')]]?members[_0x119092['device']][_0x5bb9('0x17')]:_0x119092[_0x5bb9('0x16')]),_0x119092);utils[_0x5bb9('0x18')](util['format'](_0x5bb9('0x19'),members[_0x119092[_0x5bb9('0x16')]]?members[_0x119092[_0x5bb9('0x16')]][_0x5bb9('0x17')]:_0x119092[_0x5bb9('0x16')],_0x119092[_0x5bb9('0x1a')],_0x119092[_0x5bb9('0x16')]));switch(_0x119092[_0x5bb9('0x1a')]){case _0x5bb9('0x1b'):case'BUSY':if(!startsWith(exclude,_0x119092[_0x5bb9('0x16')])){members[_0x119092['device']]={'channel':_0x5bb9('0x1c'),'interface':_0x119092[_0x5bb9('0x16')],'type':'TALKING','enterAt':utils[_0x5bb9('0x1d')](),'role':_0x5bb9('0x1e')};}break;case'NOT_INUSE':if(!_[_0x5bb9('0x1f')](members[_0x119092['device']])){members[_0x119092[_0x5bb9('0x16')]]['exitAt']=utils['now']();members[_0x119092[_0x5bb9('0x16')]][_0x5bb9('0x20')]=utils[_0x5bb9('0x21')](members[_0x119092[_0x5bb9('0x16')]][_0x5bb9('0x22')],members[_0x119092[_0x5bb9('0x16')]][_0x5bb9('0x23')]);if(members[_0x119092['device']][_0x5bb9('0x17')]){writeDB(members[_0x119092[_0x5bb9('0x16')]]);}}break;default:break;}}catch(_0x478843){utils[_0x5bb9('0x10')](util[_0x5bb9('0x3')](_0x5bb9('0x24'),members[_0x119092['device']]?members[_0x119092['device']][_0x5bb9('0x17')]:_0x119092[_0x5bb9('0x16')]),_0x478843);}};exports['agentcomplete']=function(_0x27c84b){try{if(!_[_0x5bb9('0x1f')](members[_0x27c84b[_0x5bb9('0x7')]])){utils[_0x5bb9('0x15')](util['format']('[%s][members][agentcomplete]',_0x27c84b['uniqueid']),_0x27c84b);utils['info'](util['format'](_0x5bb9('0x25'),_0x27c84b[_0x5bb9('0x17')],_0x27c84b[_0x5bb9('0x7')],_0x27c84b[_0x5bb9('0x26')]));members[_0x27c84b['interface']]=_[_0x5bb9('0x27')](members[_0x27c84b[_0x5bb9('0x7')]],{'data4':_0x27c84b['queue'],'uniqueid':_0x27c84b[_0x5bb9('0x17')]});}}catch(_0x50d993){utils['error'](util[_0x5bb9('0x3')](_0x5bb9('0x28'),_0x27c84b['uniqueid']),_0x50d993);}};exports['cdr']=function(_0x57a7d2){try{utils[_0x5bb9('0x15')](util[_0x5bb9('0x3')](_0x5bb9('0x29'),_0x57a7d2[_0x5bb9('0x17')]),_0x57a7d2);if(_0x57a7d2[_0x5bb9('0x4')]){var _0x597931=_0x57a7d2[_0x5bb9('0x4')][_0x5bb9('0x2a')]('-')[0x0];if(!_['isNil'](members[_0x597931])){members[_0x597931]=_['assign'](members[_0x597931],{'data1':members[_0x597931]['data1']||_0x57a7d2['type'],'data2':members[_0x597931][_0x5bb9('0x5')]||_0x57a7d2[_0x5bb9('0x2b')],'data3':members[_0x597931][_0x5bb9('0x2c')]||_0x57a7d2[_0x5bb9('0x2d')],'uniqueid':members[_0x597931]['uniqueid']||_0x57a7d2[_0x5bb9('0x17')]});utils[_0x5bb9('0x18')](util[_0x5bb9('0x3')](_0x5bb9('0x2e'),_0x57a7d2['uniqueid'],members[_0x597931][_0x5bb9('0x2f')],members[_0x597931][_0x5bb9('0x5')],members[_0x597931][_0x5bb9('0x2c')]));if(members[_0x597931][_0x5bb9('0x22')]){writeDB(members[_0x597931]);}}}if(_0x57a7d2[_0x5bb9('0x30')]){var _0x55252f=_0x57a7d2[_0x5bb9('0x30')]['split']('-')[0x0];if(!_[_0x5bb9('0x1f')](members[_0x55252f])){members[_0x55252f]=_[_0x5bb9('0x27')](members[_0x55252f],{'data1':members[_0x55252f][_0x5bb9('0x2f')]||_0x57a7d2['type'],'data2':members[_0x55252f]['data2']||_0x57a7d2[_0x5bb9('0x2b')],'data3':members[_0x55252f]['data3']||_0x57a7d2[_0x5bb9('0x2d')],'uniqueid':members[_0x55252f][_0x5bb9('0x17')]||_0x57a7d2['uniqueid']});utils[_0x5bb9('0x18')](util['format'](_0x5bb9('0x2e'),_0x57a7d2[_0x5bb9('0x17')],members[_0x55252f][_0x5bb9('0x2f')],members[_0x55252f][_0x5bb9('0x5')],members[_0x55252f]['data3']));if(members[_0x55252f][_0x5bb9('0x22')]){writeDB(members[_0x55252f]);}}}}catch(_0x57f373){utils[_0x5bb9('0x10')](util[_0x5bb9('0x3')](_0x5bb9('0x29'),_0x57a7d2['uniqueid']),_0x57f373);}};