Built motion from commit 3c2ce842.|2.6.31
[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 _0xcd63=['BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','exitAt','duration','enterAt','uniqueid','[%s][members][devicestatechange]','agentcomplete','debug','queue','[%s][members][agentcomplete]','[%s][members][cdr]','assign','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','lodash','util','./utils','Local/_attended@transfer','Queue:','info','format','interface','channel','data2','type','getUserByInterface','name','internal','request','CreateMemberReport','getUserByName','split','catch','error','[%s][members][writeDB]','some','devicestatechange','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE'];(function(_0x961cb2,_0x420a66){var _0x4a9703=function(_0x15af80){while(--_0x15af80){_0x961cb2['push'](_0x961cb2['shift']());}};_0x4a9703(++_0x420a66);}(_0xcd63,0xe4));var _0x3cd6=function(_0x4d538f,_0x38e47b){_0x4d538f=_0x4d538f-0x0;var _0x42cbcd=_0xcd63[_0x4d538f];return _0x42cbcd;};'use strict';var _=require(_0x3cd6('0x0'));var util=require(_0x3cd6('0x1'));var utils=require(_0x3cd6('0x2'));var members={};var exclude=[_0x3cd6('0x3'),_0x3cd6('0x4')];function writeDB(_0x5ae7c0){utils[_0x3cd6('0x5')](util[_0x3cd6('0x6')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x5ae7c0['uniqueid'],_0x5ae7c0[_0x3cd6('0x7')],_0x5ae7c0[_0x3cd6('0x8')],_0x5ae7c0[_0x3cd6('0x9')],_0x5ae7c0['membername'],_0x5ae7c0[_0x3cd6('0xa')]));if(_0x5ae7c0[_0x3cd6('0x7')]){utils[_0x3cd6('0xb')](_0x5ae7c0[_0x3cd6('0x7')])['then'](function(_0x43d4b9){if(_0x43d4b9){_0x5ae7c0['membername']=_0x43d4b9[_0x3cd6('0xc')];_0x5ae7c0[_0x3cd6('0xd')]=_0x43d4b9[_0x3cd6('0xd')];utils[_0x3cd6('0xe')](_0x3cd6('0xf'),_0x5ae7c0);}else{utils[_0x3cd6('0x10')](_0x5ae7c0[_0x3cd6('0x7')][_0x3cd6('0x11')]('/')[0x1])['then'](function(_0x5e7424){if(_0x5e7424){_0x5ae7c0['membername']=_0x5e7424[_0x3cd6('0xc')];_0x5ae7c0[_0x3cd6('0xd')]=_0x5e7424[_0x3cd6('0xd')];utils[_0x3cd6('0xe')](_0x3cd6('0xf'),_0x5ae7c0);}});}})[_0x3cd6('0x12')](function(_0x16a015){utils[_0x3cd6('0x13')](util[_0x3cd6('0x6')](_0x3cd6('0x14'),_0x5ae7c0['uniqueid']),_0x16a015);});}delete members[_0x5ae7c0['interface']];}function startsWith(_0x2a1d88,_0x581247){return _[_0x3cd6('0x15')](_0x2a1d88,function(_0x812fe3){return _['startsWith'](_0x581247,_0x812fe3);});}exports[_0x3cd6('0x16')]=function(_0x4ba5cd){try{utils['debug'](util['format']('[%s][members][devicestatechange]',members[_0x4ba5cd['device']]?members[_0x4ba5cd['device']]['uniqueid']:_0x4ba5cd[_0x3cd6('0x17')]),_0x4ba5cd);utils[_0x3cd6('0x5')](util[_0x3cd6('0x6')](_0x3cd6('0x18'),members[_0x4ba5cd['device']]?members[_0x4ba5cd[_0x3cd6('0x17')]]['uniqueid']:_0x4ba5cd[_0x3cd6('0x17')],_0x4ba5cd['state'],_0x4ba5cd['device']));switch(_0x4ba5cd[_0x3cd6('0x19')]){case _0x3cd6('0x1a'):case _0x3cd6('0x1b'):if(!startsWith(exclude,_0x4ba5cd[_0x3cd6('0x17')])){members[_0x4ba5cd['device']]={'channel':_0x3cd6('0x1c'),'interface':_0x4ba5cd[_0x3cd6('0x17')],'type':_0x3cd6('0x1d'),'enterAt':utils[_0x3cd6('0x1e')](),'role':_0x3cd6('0x1f')};}break;case _0x3cd6('0x20'):if(!_[_0x3cd6('0x21')](members[_0x4ba5cd[_0x3cd6('0x17')]])){members[_0x4ba5cd[_0x3cd6('0x17')]][_0x3cd6('0x22')]=utils[_0x3cd6('0x1e')]();members[_0x4ba5cd['device']][_0x3cd6('0x23')]=utils['diffTime'](members[_0x4ba5cd[_0x3cd6('0x17')]][_0x3cd6('0x22')],members[_0x4ba5cd['device']][_0x3cd6('0x24')]);if(members[_0x4ba5cd[_0x3cd6('0x17')]][_0x3cd6('0x25')]){writeDB(members[_0x4ba5cd[_0x3cd6('0x17')]]);}}break;default:break;}}catch(_0x26fd00){utils['error'](util[_0x3cd6('0x6')](_0x3cd6('0x26'),members[_0x4ba5cd[_0x3cd6('0x17')]]?members[_0x4ba5cd[_0x3cd6('0x17')]]['uniqueid']:_0x4ba5cd[_0x3cd6('0x17')]),_0x26fd00);}};exports[_0x3cd6('0x27')]=function(_0x2c92fd){try{if(!_[_0x3cd6('0x21')](members[_0x2c92fd['interface']])){utils[_0x3cd6('0x28')](util[_0x3cd6('0x6')]('[%s][members][agentcomplete]',_0x2c92fd['uniqueid']),_0x2c92fd);utils[_0x3cd6('0x5')](util['format']('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x2c92fd[_0x3cd6('0x25')],_0x2c92fd['interface'],_0x2c92fd['queue']));members[_0x2c92fd['interface']]=_['assign'](members[_0x2c92fd[_0x3cd6('0x7')]],{'data4':_0x2c92fd[_0x3cd6('0x29')],'uniqueid':_0x2c92fd[_0x3cd6('0x25')]});}}catch(_0x2683fb){utils[_0x3cd6('0x13')](util['format'](_0x3cd6('0x2a'),_0x2c92fd[_0x3cd6('0x25')]),_0x2683fb);}};exports['cdr']=function(_0xd1e9e0){try{utils[_0x3cd6('0x28')](util[_0x3cd6('0x6')](_0x3cd6('0x2b'),_0xd1e9e0['uniqueid']),_0xd1e9e0);if(_0xd1e9e0['channel']){var _0x2b5748=_0xd1e9e0[_0x3cd6('0x8')][_0x3cd6('0x11')]('-')[0x0];if(!_['isNil'](members[_0x2b5748])){members[_0x2b5748]=_[_0x3cd6('0x2c')](members[_0x2b5748],{'data1':members[_0x2b5748][_0x3cd6('0x2d')]||_0xd1e9e0[_0x3cd6('0xa')],'data2':members[_0x2b5748][_0x3cd6('0x9')]||_0xd1e9e0[_0x3cd6('0x2e')],'data3':members[_0x2b5748][_0x3cd6('0x2f')]||_0xd1e9e0[_0x3cd6('0x30')],'uniqueid':members[_0x2b5748][_0x3cd6('0x25')]||_0xd1e9e0[_0x3cd6('0x25')]});utils[_0x3cd6('0x5')](util[_0x3cd6('0x6')](_0x3cd6('0x31'),_0xd1e9e0['uniqueid'],members[_0x2b5748][_0x3cd6('0x2d')],members[_0x2b5748]['data2'],members[_0x2b5748][_0x3cd6('0x2f')]));if(members[_0x2b5748][_0x3cd6('0x22')]){writeDB(members[_0x2b5748]);}}}if(_0xd1e9e0['destinationchannel']){var _0x1251d1=_0xd1e9e0[_0x3cd6('0x32')][_0x3cd6('0x11')]('-')[0x0];if(!_[_0x3cd6('0x21')](members[_0x1251d1])){members[_0x1251d1]=_[_0x3cd6('0x2c')](members[_0x1251d1],{'data1':members[_0x1251d1][_0x3cd6('0x2d')]||_0xd1e9e0[_0x3cd6('0xa')],'data2':members[_0x1251d1][_0x3cd6('0x9')]||_0xd1e9e0['source'],'data3':members[_0x1251d1][_0x3cd6('0x2f')]||_0xd1e9e0[_0x3cd6('0x30')],'uniqueid':members[_0x1251d1][_0x3cd6('0x25')]||_0xd1e9e0[_0x3cd6('0x25')]});utils[_0x3cd6('0x5')](util['format']('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0xd1e9e0[_0x3cd6('0x25')],members[_0x1251d1][_0x3cd6('0x2d')],members[_0x1251d1]['data2'],members[_0x1251d1][_0x3cd6('0x2f')]));if(members[_0x1251d1]['exitAt']){writeDB(members[_0x1251d1]);}}}}catch(_0x385d17){utils[_0x3cd6('0x13')](util['format'](_0x3cd6('0x2b'),_0xd1e9e0[_0x3cd6('0x25')]),_0x385d17);}};