1904d3f8c2b66e1e34a0f1905a14535cbde4a9b7
[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 _0x9df9=['[%s][members][writeDB]','some','startsWith','devicestatechange','debug','device','info','state','INUSE','BUSY','voice','TALKING','NOT_INUSE','isNil','exitAt','now','duration','diffTime','[%s][members][devicestatechange]','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','channel','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','[%s][members][cdr]','util','Local/_attended@transfer','Queue:','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','data2','membername','type','getUserByInterface','name','internal','CreateMemberReport','split','then','request','catch','error'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x9df9,0xf1));var _0x99df=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0x9df9[_0xaa1b3e];return _0x454d7d;};'use strict';var _=require('lodash');var util=require(_0x99df('0x0'));var utils=require('./utils');var members={};var exclude=[_0x99df('0x1'),_0x99df('0x2')];function writeDB(_0x52bf9e){utils['info'](util[_0x99df('0x3')](_0x99df('0x4'),_0x52bf9e[_0x99df('0x5')],_0x52bf9e[_0x99df('0x6')],_0x52bf9e['channel'],_0x52bf9e[_0x99df('0x7')],_0x52bf9e[_0x99df('0x8')],_0x52bf9e[_0x99df('0x9')]));if(_0x52bf9e[_0x99df('0x6')]){utils[_0x99df('0xa')](_0x52bf9e[_0x99df('0x6')])['then'](function(_0x2b9e6b){if(_0x2b9e6b){_0x52bf9e[_0x99df('0x8')]=_0x2b9e6b[_0x99df('0xb')];_0x52bf9e[_0x99df('0xc')]=_0x2b9e6b[_0x99df('0xc')];utils['request'](_0x99df('0xd'),_0x52bf9e);}else{utils['getUserByName'](_0x52bf9e[_0x99df('0x6')][_0x99df('0xe')]('/')[0x1])[_0x99df('0xf')](function(_0x2fa43b){if(_0x2fa43b){_0x52bf9e[_0x99df('0x8')]=_0x2fa43b[_0x99df('0xb')];_0x52bf9e['internal']=_0x2fa43b[_0x99df('0xc')];utils[_0x99df('0x10')]('CreateMemberReport',_0x52bf9e);}});}})[_0x99df('0x11')](function(_0x25572c){utils[_0x99df('0x12')](util['format'](_0x99df('0x13'),_0x52bf9e[_0x99df('0x5')]),_0x25572c);});}delete members[_0x52bf9e[_0x99df('0x6')]];}function startsWith(_0x1de805,_0xcec067){return _[_0x99df('0x14')](_0x1de805,function(_0x367af2){return _[_0x99df('0x15')](_0xcec067,_0x367af2);});}exports[_0x99df('0x16')]=function(_0x44ca19){try{utils[_0x99df('0x17')](util[_0x99df('0x3')]('[%s][members][devicestatechange]',members[_0x44ca19[_0x99df('0x18')]]?members[_0x44ca19[_0x99df('0x18')]][_0x99df('0x5')]:_0x44ca19[_0x99df('0x18')]),_0x44ca19);utils[_0x99df('0x19')](util[_0x99df('0x3')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x44ca19[_0x99df('0x18')]]?members[_0x44ca19[_0x99df('0x18')]][_0x99df('0x5')]:_0x44ca19[_0x99df('0x18')],_0x44ca19[_0x99df('0x1a')],_0x44ca19[_0x99df('0x18')]));switch(_0x44ca19['state']){case _0x99df('0x1b'):case _0x99df('0x1c'):if(!startsWith(exclude,_0x44ca19['device'])){members[_0x44ca19[_0x99df('0x18')]]={'channel':_0x99df('0x1d'),'interface':_0x44ca19[_0x99df('0x18')],'type':_0x99df('0x1e'),'enterAt':utils['now'](),'role':'agent'};}break;case _0x99df('0x1f'):if(!_[_0x99df('0x20')](members[_0x44ca19[_0x99df('0x18')]])){members[_0x44ca19[_0x99df('0x18')]][_0x99df('0x21')]=utils[_0x99df('0x22')]();members[_0x44ca19[_0x99df('0x18')]][_0x99df('0x23')]=utils[_0x99df('0x24')](members[_0x44ca19['device']][_0x99df('0x21')],members[_0x44ca19[_0x99df('0x18')]]['enterAt']);if(members[_0x44ca19[_0x99df('0x18')]][_0x99df('0x5')]){writeDB(members[_0x44ca19['device']]);}}break;default:break;}}catch(_0x2f942e){utils[_0x99df('0x12')](util[_0x99df('0x3')](_0x99df('0x25'),members[_0x44ca19[_0x99df('0x18')]]?members[_0x44ca19['device']][_0x99df('0x5')]:_0x44ca19[_0x99df('0x18')]),_0x2f942e);}};exports[_0x99df('0x26')]=function(_0x3f9916){try{if(!_[_0x99df('0x20')](members[_0x3f9916['interface']])){utils['debug'](util[_0x99df('0x3')](_0x99df('0x27'),_0x3f9916['uniqueid']),_0x3f9916);utils['info'](util[_0x99df('0x3')](_0x99df('0x28'),_0x3f9916[_0x99df('0x5')],_0x3f9916[_0x99df('0x6')],_0x3f9916[_0x99df('0x29')]));members[_0x3f9916[_0x99df('0x6')]]=_[_0x99df('0x2a')](members[_0x3f9916[_0x99df('0x6')]],{'data4':_0x3f9916['queue'],'uniqueid':_0x3f9916['uniqueid']});}}catch(_0x152e81){utils[_0x99df('0x12')](util[_0x99df('0x3')](_0x99df('0x27'),_0x3f9916[_0x99df('0x5')]),_0x152e81);}};exports[_0x99df('0x2b')]=function(_0x16988e){try{utils[_0x99df('0x17')](util['format']('[%s][members][cdr]',_0x16988e['uniqueid']),_0x16988e);if(_0x16988e[_0x99df('0x2c')]){var _0x302782=_0x16988e[_0x99df('0x2c')][_0x99df('0xe')]('-')[0x0];if(!_[_0x99df('0x20')](members[_0x302782])){members[_0x302782]=_[_0x99df('0x2a')](members[_0x302782],{'data1':members[_0x302782][_0x99df('0x2d')]||_0x16988e[_0x99df('0x9')],'data2':members[_0x302782]['data2']||_0x16988e[_0x99df('0x2e')],'data3':members[_0x302782][_0x99df('0x2f')]||_0x16988e[_0x99df('0x30')],'uniqueid':members[_0x302782][_0x99df('0x5')]||_0x16988e[_0x99df('0x5')]});utils[_0x99df('0x19')](util[_0x99df('0x3')](_0x99df('0x31'),_0x16988e[_0x99df('0x5')],members[_0x302782]['data1'],members[_0x302782][_0x99df('0x7')],members[_0x302782][_0x99df('0x2f')]));if(members[_0x302782]['exitAt']){writeDB(members[_0x302782]);}}}if(_0x16988e[_0x99df('0x32')]){var _0x261913=_0x16988e[_0x99df('0x32')][_0x99df('0xe')]('-')[0x0];if(!_['isNil'](members[_0x261913])){members[_0x261913]=_[_0x99df('0x2a')](members[_0x261913],{'data1':members[_0x261913]['data1']||_0x16988e[_0x99df('0x9')],'data2':members[_0x261913][_0x99df('0x7')]||_0x16988e[_0x99df('0x2e')],'data3':members[_0x261913][_0x99df('0x2f')]||_0x16988e[_0x99df('0x30')],'uniqueid':members[_0x261913][_0x99df('0x5')]||_0x16988e[_0x99df('0x5')]});utils['info'](util[_0x99df('0x3')](_0x99df('0x31'),_0x16988e[_0x99df('0x5')],members[_0x261913][_0x99df('0x2d')],members[_0x261913][_0x99df('0x7')],members[_0x261913][_0x99df('0x2f')]));if(members[_0x261913][_0x99df('0x21')]){writeDB(members[_0x261913]);}}}}catch(_0x39fe83){utils[_0x99df('0x12')](util[_0x99df('0x3')](_0x99df('0x33'),_0x16988e[_0x99df('0x5')]),_0x39fe83);}};