Built motion from commit b5996064.|2.6.21
[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 _0x21a3=['type','data3','destination','destinationchannel','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','[%s][members][cdr]','lodash','./utils','Local/_attended@transfer','Queue:','info','format','interface','channel','data2','membername','getUserByInterface','then','name','internal','request','CreateMemberReport','getUserByName','split','error','[%s][members][writeDB]','uniqueid','startsWith','debug','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','now','agent','NOT_INUSE','diffTime','exitAt','enterAt','agentcomplete','isNil','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','data1'];(function(_0x63229e,_0x5b5859){var _0xa8f3ca=function(_0x489fcf){while(--_0x489fcf){_0x63229e['push'](_0x63229e['shift']());}};_0xa8f3ca(++_0x5b5859);}(_0x21a3,0x66));var _0x321a=function(_0x27c068,_0x342981){_0x27c068=_0x27c068-0x0;var _0xe5a67f=_0x21a3[_0x27c068];return _0xe5a67f;};'use strict';var _=require(_0x321a('0x0'));var util=require('util');var utils=require(_0x321a('0x1'));var members={};var exclude=[_0x321a('0x2'),_0x321a('0x3')];function writeDB(_0x401ef1){utils[_0x321a('0x4')](util[_0x321a('0x5')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x401ef1['uniqueid'],_0x401ef1[_0x321a('0x6')],_0x401ef1[_0x321a('0x7')],_0x401ef1[_0x321a('0x8')],_0x401ef1[_0x321a('0x9')],_0x401ef1['type']));if(_0x401ef1[_0x321a('0x6')]){utils[_0x321a('0xa')](_0x401ef1[_0x321a('0x6')])[_0x321a('0xb')](function(_0x4635cd){if(_0x4635cd){_0x401ef1[_0x321a('0x9')]=_0x4635cd[_0x321a('0xc')];_0x401ef1[_0x321a('0xd')]=_0x4635cd[_0x321a('0xd')];utils[_0x321a('0xe')](_0x321a('0xf'),_0x401ef1);}else{utils[_0x321a('0x10')](_0x401ef1['interface'][_0x321a('0x11')]('/')[0x1])[_0x321a('0xb')](function(_0x52081e){if(_0x52081e){_0x401ef1['membername']=_0x52081e[_0x321a('0xc')];_0x401ef1['internal']=_0x52081e[_0x321a('0xd')];utils[_0x321a('0xe')]('CreateMemberReport',_0x401ef1);}});}})['catch'](function(_0x91c5c7){utils[_0x321a('0x12')](util[_0x321a('0x5')](_0x321a('0x13'),_0x401ef1[_0x321a('0x14')]),_0x91c5c7);});}delete members[_0x401ef1[_0x321a('0x6')]];}function startsWith(_0x14044b,_0xfe6906){return _['some'](_0x14044b,function(_0x11d623){return _[_0x321a('0x15')](_0xfe6906,_0x11d623);});}exports['devicestatechange']=function(_0x45ceb2){try{utils[_0x321a('0x16')](util[_0x321a('0x5')]('[%s][members][devicestatechange]',members[_0x45ceb2['device']]?members[_0x45ceb2[_0x321a('0x17')]][_0x321a('0x14')]:_0x45ceb2['device']),_0x45ceb2);utils[_0x321a('0x4')](util[_0x321a('0x5')](_0x321a('0x18'),members[_0x45ceb2['device']]?members[_0x45ceb2[_0x321a('0x17')]][_0x321a('0x14')]:_0x45ceb2[_0x321a('0x17')],_0x45ceb2[_0x321a('0x19')],_0x45ceb2[_0x321a('0x17')]));switch(_0x45ceb2[_0x321a('0x19')]){case _0x321a('0x1a'):case _0x321a('0x1b'):if(!startsWith(exclude,_0x45ceb2[_0x321a('0x17')])){members[_0x45ceb2[_0x321a('0x17')]]={'channel':_0x321a('0x1c'),'interface':_0x45ceb2[_0x321a('0x17')],'type':'TALKING','enterAt':utils[_0x321a('0x1d')](),'role':_0x321a('0x1e')};}break;case _0x321a('0x1f'):if(!_['isNil'](members[_0x45ceb2[_0x321a('0x17')]])){members[_0x45ceb2[_0x321a('0x17')]]['exitAt']=utils['now']();members[_0x45ceb2[_0x321a('0x17')]]['duration']=utils[_0x321a('0x20')](members[_0x45ceb2[_0x321a('0x17')]][_0x321a('0x21')],members[_0x45ceb2[_0x321a('0x17')]][_0x321a('0x22')]);if(members[_0x45ceb2[_0x321a('0x17')]]['uniqueid']){writeDB(members[_0x45ceb2['device']]);}}break;default:break;}}catch(_0x2cb820){utils[_0x321a('0x12')](util[_0x321a('0x5')]('[%s][members][devicestatechange]',members[_0x45ceb2[_0x321a('0x17')]]?members[_0x45ceb2[_0x321a('0x17')]][_0x321a('0x14')]:_0x45ceb2['device']),_0x2cb820);}};exports[_0x321a('0x23')]=function(_0x2a4543){try{if(!_[_0x321a('0x24')](members[_0x2a4543[_0x321a('0x6')]])){utils[_0x321a('0x16')](util[_0x321a('0x5')](_0x321a('0x25'),_0x2a4543[_0x321a('0x14')]),_0x2a4543);utils[_0x321a('0x4')](util['format'](_0x321a('0x26'),_0x2a4543[_0x321a('0x14')],_0x2a4543[_0x321a('0x6')],_0x2a4543[_0x321a('0x27')]));members[_0x2a4543[_0x321a('0x6')]]=_[_0x321a('0x28')](members[_0x2a4543['interface']],{'data4':_0x2a4543['queue'],'uniqueid':_0x2a4543[_0x321a('0x14')]});}}catch(_0x5e6e5e){utils[_0x321a('0x12')](util[_0x321a('0x5')](_0x321a('0x25'),_0x2a4543['uniqueid']),_0x5e6e5e);}};exports['cdr']=function(_0x27fcbf){try{utils['debug'](util[_0x321a('0x5')]('[%s][members][cdr]',_0x27fcbf['uniqueid']),_0x27fcbf);if(_0x27fcbf[_0x321a('0x7')]){var _0x16bb91=_0x27fcbf[_0x321a('0x7')]['split']('-')[0x0];if(!_['isNil'](members[_0x16bb91])){members[_0x16bb91]=_['assign'](members[_0x16bb91],{'data1':members[_0x16bb91][_0x321a('0x29')]||_0x27fcbf[_0x321a('0x2a')],'data2':members[_0x16bb91]['data2']||_0x27fcbf['source'],'data3':members[_0x16bb91][_0x321a('0x2b')]||_0x27fcbf[_0x321a('0x2c')],'uniqueid':members[_0x16bb91][_0x321a('0x14')]||_0x27fcbf[_0x321a('0x14')]});utils[_0x321a('0x4')](util[_0x321a('0x5')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x27fcbf[_0x321a('0x14')],members[_0x16bb91][_0x321a('0x29')],members[_0x16bb91][_0x321a('0x8')],members[_0x16bb91][_0x321a('0x2b')]));if(members[_0x16bb91]['exitAt']){writeDB(members[_0x16bb91]);}}}if(_0x27fcbf[_0x321a('0x2d')]){var _0x50ffb9=_0x27fcbf['destinationchannel'][_0x321a('0x11')]('-')[0x0];if(!_[_0x321a('0x24')](members[_0x50ffb9])){members[_0x50ffb9]=_['assign'](members[_0x50ffb9],{'data1':members[_0x50ffb9][_0x321a('0x29')]||_0x27fcbf[_0x321a('0x2a')],'data2':members[_0x50ffb9][_0x321a('0x8')]||_0x27fcbf['source'],'data3':members[_0x50ffb9][_0x321a('0x2b')]||_0x27fcbf[_0x321a('0x2c')],'uniqueid':members[_0x50ffb9]['uniqueid']||_0x27fcbf['uniqueid']});utils[_0x321a('0x4')](util[_0x321a('0x5')](_0x321a('0x2e'),_0x27fcbf['uniqueid'],members[_0x50ffb9][_0x321a('0x29')],members[_0x50ffb9][_0x321a('0x8')],members[_0x50ffb9][_0x321a('0x2b')]));if(members[_0x50ffb9][_0x321a('0x21')]){writeDB(members[_0x50ffb9]);}}}}catch(_0x19fbbe){utils[_0x321a('0x12')](util[_0x321a('0x5')](_0x321a('0x2f'),_0x27fcbf[_0x321a('0x14')]),_0x19fbbe);}};