0798f28c54e9be552b35186e0e0b3d7d050d9f7a
[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 _0x106b=['lodash','util','./utils','Local/_attended@transfer','Queue:','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','data2','type','interface','getUserByInterface','then','name','internal','request','CreateMemberReport','getUserByName','membername','catch','error','[%s][members][writeDB]','some','startsWith','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','BUSY','voice','TALKING','now','NOT_INUSE','isNil','exitAt','duration','diffTime','enterAt','[%s][members][devicestatechange]','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','channel','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','destinationchannel','split','[%s][members][cdr]'];(function(_0x67d1e9,_0x543334){var _0x548592=function(_0x2debb1){while(--_0x2debb1){_0x67d1e9['push'](_0x67d1e9['shift']());}};_0x548592(++_0x543334);}(_0x106b,0xa2));var _0xb106=function(_0x2136d5,_0x4b0479){_0x2136d5=_0x2136d5-0x0;var _0x3bee2e=_0x106b[_0x2136d5];return _0x3bee2e;};'use strict';var _=require(_0xb106('0x0'));var util=require(_0xb106('0x1'));var utils=require(_0xb106('0x2'));var members={};var exclude=[_0xb106('0x3'),_0xb106('0x4')];function writeDB(_0x194a38){utils['info'](util[_0xb106('0x5')](_0xb106('0x6'),_0x194a38[_0xb106('0x7')],_0x194a38['interface'],_0x194a38['channel'],_0x194a38[_0xb106('0x8')],_0x194a38['membername'],_0x194a38[_0xb106('0x9')]));if(_0x194a38[_0xb106('0xa')]){utils[_0xb106('0xb')](_0x194a38[_0xb106('0xa')])[_0xb106('0xc')](function(_0x30c8c0){if(_0x30c8c0){_0x194a38['membername']=_0x30c8c0[_0xb106('0xd')];_0x194a38[_0xb106('0xe')]=_0x30c8c0[_0xb106('0xe')];utils[_0xb106('0xf')](_0xb106('0x10'),_0x194a38);}else{utils[_0xb106('0x11')](_0x194a38[_0xb106('0xa')]['split']('/')[0x1])[_0xb106('0xc')](function(_0x277ac8){if(_0x277ac8){_0x194a38[_0xb106('0x12')]=_0x277ac8[_0xb106('0xd')];_0x194a38[_0xb106('0xe')]=_0x277ac8[_0xb106('0xe')];utils[_0xb106('0xf')]('CreateMemberReport',_0x194a38);}});}})[_0xb106('0x13')](function(_0x5b45e8){utils[_0xb106('0x14')](util[_0xb106('0x5')](_0xb106('0x15'),_0x194a38[_0xb106('0x7')]),_0x5b45e8);});}delete members[_0x194a38[_0xb106('0xa')]];}function startsWith(_0x431c2d,_0x236e3a){return _[_0xb106('0x16')](_0x431c2d,function(_0x3c55c7){return _[_0xb106('0x17')](_0x236e3a,_0x3c55c7);});}exports['devicestatechange']=function(_0x5175e8){try{utils['debug'](util['format']('[%s][members][devicestatechange]',members[_0x5175e8[_0xb106('0x18')]]?members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x7')]:_0x5175e8[_0xb106('0x18')]),_0x5175e8);utils[_0xb106('0x19')](util[_0xb106('0x5')](_0xb106('0x1a'),members[_0x5175e8['device']]?members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x7')]:_0x5175e8['device'],_0x5175e8['state'],_0x5175e8[_0xb106('0x18')]));switch(_0x5175e8[_0xb106('0x1b')]){case'INUSE':case _0xb106('0x1c'):if(!startsWith(exclude,_0x5175e8[_0xb106('0x18')])){members[_0x5175e8[_0xb106('0x18')]]={'channel':_0xb106('0x1d'),'interface':_0x5175e8[_0xb106('0x18')],'type':_0xb106('0x1e'),'enterAt':utils[_0xb106('0x1f')](),'role':'agent'};}break;case _0xb106('0x20'):if(!_[_0xb106('0x21')](members[_0x5175e8['device']])){members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x22')]=utils['now']();members[_0x5175e8['device']][_0xb106('0x23')]=utils[_0xb106('0x24')](members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x22')],members[_0x5175e8['device']][_0xb106('0x25')]);if(members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x7')]){writeDB(members[_0x5175e8[_0xb106('0x18')]]);}}break;default:break;}}catch(_0x339ad1){utils[_0xb106('0x14')](util[_0xb106('0x5')](_0xb106('0x26'),members[_0x5175e8[_0xb106('0x18')]]?members[_0x5175e8[_0xb106('0x18')]][_0xb106('0x7')]:_0x5175e8[_0xb106('0x18')]),_0x339ad1);}};exports[_0xb106('0x27')]=function(_0x33fb20){try{if(!_[_0xb106('0x21')](members[_0x33fb20['interface']])){utils['debug'](util['format'](_0xb106('0x28'),_0x33fb20[_0xb106('0x7')]),_0x33fb20);utils[_0xb106('0x19')](util[_0xb106('0x5')](_0xb106('0x29'),_0x33fb20[_0xb106('0x7')],_0x33fb20[_0xb106('0xa')],_0x33fb20[_0xb106('0x2a')]));members[_0x33fb20[_0xb106('0xa')]]=_[_0xb106('0x2b')](members[_0x33fb20[_0xb106('0xa')]],{'data4':_0x33fb20[_0xb106('0x2a')],'uniqueid':_0x33fb20[_0xb106('0x7')]});}}catch(_0x498a32){utils[_0xb106('0x14')](util['format'](_0xb106('0x28'),_0x33fb20[_0xb106('0x7')]),_0x498a32);}};exports[_0xb106('0x2c')]=function(_0x2f99b9){try{utils['debug'](util[_0xb106('0x5')]('[%s][members][cdr]',_0x2f99b9[_0xb106('0x7')]),_0x2f99b9);if(_0x2f99b9[_0xb106('0x2d')]){var _0x4d1699=_0x2f99b9[_0xb106('0x2d')]['split']('-')[0x0];if(!_[_0xb106('0x21')](members[_0x4d1699])){members[_0x4d1699]=_[_0xb106('0x2b')](members[_0x4d1699],{'data1':members[_0x4d1699]['data1']||_0x2f99b9[_0xb106('0x9')],'data2':members[_0x4d1699][_0xb106('0x8')]||_0x2f99b9[_0xb106('0x2e')],'data3':members[_0x4d1699][_0xb106('0x2f')]||_0x2f99b9[_0xb106('0x30')],'uniqueid':members[_0x4d1699]['uniqueid']||_0x2f99b9[_0xb106('0x7')]});utils[_0xb106('0x19')](util['format'](_0xb106('0x31'),_0x2f99b9[_0xb106('0x7')],members[_0x4d1699][_0xb106('0x32')],members[_0x4d1699]['data2'],members[_0x4d1699][_0xb106('0x2f')]));if(members[_0x4d1699][_0xb106('0x22')]){writeDB(members[_0x4d1699]);}}}if(_0x2f99b9['destinationchannel']){var _0x490093=_0x2f99b9[_0xb106('0x33')][_0xb106('0x34')]('-')[0x0];if(!_['isNil'](members[_0x490093])){members[_0x490093]=_[_0xb106('0x2b')](members[_0x490093],{'data1':members[_0x490093][_0xb106('0x32')]||_0x2f99b9[_0xb106('0x9')],'data2':members[_0x490093][_0xb106('0x8')]||_0x2f99b9[_0xb106('0x2e')],'data3':members[_0x490093][_0xb106('0x2f')]||_0x2f99b9[_0xb106('0x30')],'uniqueid':members[_0x490093]['uniqueid']||_0x2f99b9[_0xb106('0x7')]});utils[_0xb106('0x19')](util[_0xb106('0x5')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x2f99b9['uniqueid'],members[_0x490093]['data1'],members[_0x490093]['data2'],members[_0x490093][_0xb106('0x2f')]));if(members[_0x490093][_0xb106('0x22')]){writeDB(members[_0x490093]);}}}}catch(_0x5103ae){utils['error'](util[_0xb106('0x5')](_0xb106('0x35'),_0x2f99b9['uniqueid']),_0x5103ae);}};