46da40229ac64dc12ef9c07198812228143e30b3
[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 _0x51b9=['type','getUserByInterface','then','internal','CreateMemberReport','getUserByName','split','name','[%s][members][writeDB]','some','startsWith','devicestatechange','debug','[%s][members][devicestatechange]','device','state','INUSE','TALKING','now','NOT_INUSE','duration','diffTime','exitAt','error','agentcomplete','isNil','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','cdr','[%s][members][cdr]','assign','data1','source','data3','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','destination','lodash','Local/_attended@transfer','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername'];(function(_0x169906,_0x321d74){var _0x54592f=function(_0x45cbf4){while(--_0x45cbf4){_0x169906['push'](_0x169906['shift']());}};_0x54592f(++_0x321d74);}(_0x51b9,0x11b));var _0x951b=function(_0x3af4ba,_0x22b29e){_0x3af4ba=_0x3af4ba-0x0;var _0x44a185=_0x51b9[_0x3af4ba];return _0x44a185;};'use strict';var _=require(_0x951b('0x0'));var util=require('util');var utils=require('./utils');var members={};var exclude=[_0x951b('0x1'),_0x951b('0x2')];function writeDB(_0x25b9b1){utils[_0x951b('0x3')](util[_0x951b('0x4')](_0x951b('0x5'),_0x25b9b1[_0x951b('0x6')],_0x25b9b1[_0x951b('0x7')],_0x25b9b1[_0x951b('0x8')],_0x25b9b1[_0x951b('0x9')],_0x25b9b1[_0x951b('0xa')],_0x25b9b1[_0x951b('0xb')]));if(_0x25b9b1[_0x951b('0x7')]){utils[_0x951b('0xc')](_0x25b9b1['interface'])[_0x951b('0xd')](function(_0x5967ea){if(_0x5967ea){_0x25b9b1['membername']=_0x5967ea['name'];_0x25b9b1['internal']=_0x5967ea[_0x951b('0xe')];utils['request'](_0x951b('0xf'),_0x25b9b1);}else{utils[_0x951b('0x10')](_0x25b9b1['interface'][_0x951b('0x11')]('/')[0x1])['then'](function(_0x20857e){if(_0x20857e){_0x25b9b1[_0x951b('0xa')]=_0x20857e[_0x951b('0x12')];_0x25b9b1['internal']=_0x20857e[_0x951b('0xe')];utils['request'](_0x951b('0xf'),_0x25b9b1);}});}})['catch'](function(_0x295171){utils['error'](util[_0x951b('0x4')](_0x951b('0x13'),_0x25b9b1[_0x951b('0x6')]),_0x295171);});}delete members[_0x25b9b1[_0x951b('0x7')]];}function startsWith(_0x5cc55a,_0x53ff4e){return _[_0x951b('0x14')](_0x5cc55a,function(_0x4f77bd){return _[_0x951b('0x15')](_0x53ff4e,_0x4f77bd);});}exports[_0x951b('0x16')]=function(_0x5511fd){try{utils[_0x951b('0x17')](util[_0x951b('0x4')](_0x951b('0x18'),members[_0x5511fd['device']]?members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x6')]:_0x5511fd['device']),_0x5511fd);utils['info'](util[_0x951b('0x4')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x5511fd['device']]?members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x6')]:_0x5511fd[_0x951b('0x19')],_0x5511fd[_0x951b('0x1a')],_0x5511fd[_0x951b('0x19')]));switch(_0x5511fd[_0x951b('0x1a')]){case _0x951b('0x1b'):case'BUSY':if(!startsWith(exclude,_0x5511fd[_0x951b('0x19')])){members[_0x5511fd[_0x951b('0x19')]]={'channel':'voice','interface':_0x5511fd[_0x951b('0x19')],'type':_0x951b('0x1c'),'enterAt':utils[_0x951b('0x1d')](),'role':'agent'};}break;case _0x951b('0x1e'):if(!_['isNil'](members[_0x5511fd['device']])){members[_0x5511fd[_0x951b('0x19')]]['exitAt']=utils[_0x951b('0x1d')]();members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x1f')]=utils[_0x951b('0x20')](members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x21')],members[_0x5511fd[_0x951b('0x19')]]['enterAt']);if(members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x6')]){writeDB(members[_0x5511fd[_0x951b('0x19')]]);}}break;default:break;}}catch(_0x5efc71){utils[_0x951b('0x22')](util[_0x951b('0x4')](_0x951b('0x18'),members[_0x5511fd[_0x951b('0x19')]]?members[_0x5511fd[_0x951b('0x19')]][_0x951b('0x6')]:_0x5511fd[_0x951b('0x19')]),_0x5efc71);}};exports[_0x951b('0x23')]=function(_0x376299){try{if(!_[_0x951b('0x24')](members[_0x376299[_0x951b('0x7')]])){utils[_0x951b('0x17')](util['format'](_0x951b('0x25'),_0x376299[_0x951b('0x6')]),_0x376299);utils[_0x951b('0x3')](util[_0x951b('0x4')](_0x951b('0x26'),_0x376299['uniqueid'],_0x376299['interface'],_0x376299[_0x951b('0x27')]));members[_0x376299[_0x951b('0x7')]]=_['assign'](members[_0x376299['interface']],{'data4':_0x376299[_0x951b('0x27')],'uniqueid':_0x376299['uniqueid']});}}catch(_0x234da0){utils[_0x951b('0x22')](util['format'](_0x951b('0x25'),_0x376299[_0x951b('0x6')]),_0x234da0);}};exports[_0x951b('0x28')]=function(_0x459a19){try{utils['debug'](util[_0x951b('0x4')](_0x951b('0x29'),_0x459a19[_0x951b('0x6')]),_0x459a19);if(_0x459a19[_0x951b('0x8')]){var _0x29686a=_0x459a19['channel'][_0x951b('0x11')]('-')[0x0];if(!_[_0x951b('0x24')](members[_0x29686a])){members[_0x29686a]=_[_0x951b('0x2a')](members[_0x29686a],{'data1':members[_0x29686a][_0x951b('0x2b')]||_0x459a19['type'],'data2':members[_0x29686a][_0x951b('0x9')]||_0x459a19[_0x951b('0x2c')],'data3':members[_0x29686a][_0x951b('0x2d')]||_0x459a19['destination'],'uniqueid':members[_0x29686a][_0x951b('0x6')]||_0x459a19[_0x951b('0x6')]});utils[_0x951b('0x3')](util[_0x951b('0x4')](_0x951b('0x2e'),_0x459a19[_0x951b('0x6')],members[_0x29686a][_0x951b('0x2b')],members[_0x29686a]['data2'],members[_0x29686a][_0x951b('0x2d')]));if(members[_0x29686a][_0x951b('0x21')]){writeDB(members[_0x29686a]);}}}if(_0x459a19['destinationchannel']){var _0x2f65a8=_0x459a19[_0x951b('0x2f')][_0x951b('0x11')]('-')[0x0];if(!_[_0x951b('0x24')](members[_0x2f65a8])){members[_0x2f65a8]=_['assign'](members[_0x2f65a8],{'data1':members[_0x2f65a8][_0x951b('0x2b')]||_0x459a19[_0x951b('0xb')],'data2':members[_0x2f65a8][_0x951b('0x9')]||_0x459a19[_0x951b('0x2c')],'data3':members[_0x2f65a8][_0x951b('0x2d')]||_0x459a19[_0x951b('0x30')],'uniqueid':members[_0x2f65a8]['uniqueid']||_0x459a19[_0x951b('0x6')]});utils['info'](util[_0x951b('0x4')](_0x951b('0x2e'),_0x459a19[_0x951b('0x6')],members[_0x2f65a8][_0x951b('0x2b')],members[_0x2f65a8][_0x951b('0x9')],members[_0x2f65a8]['data3']));if(members[_0x2f65a8]['exitAt']){writeDB(members[_0x2f65a8]);}}}}catch(_0x70f200){utils[_0x951b('0x22')](util['format'](_0x951b('0x29'),_0x459a19[_0x951b('0x6')]),_0x70f200);}};