1ac5690c298a50d59572026c2ad1e574c8d01484
[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 _0x37b4=['[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','data2','type','getUserByInterface','then','name','internal','request','interface','split','CreateMemberReport','catch','some','startsWith','devicestatechange','debug','[%s][members][devicestatechange]','device','INUSE','BUSY','TALKING','now','agent','NOT_INUSE','isNil','exitAt','duration','enterAt','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','[%s][members][cdr]','channel','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','error','lodash','./utils','Local/_attended@transfer','Queue:','info','format'];(function(_0x22e751,_0x401a18){var _0x12db93=function(_0x5567f3){while(--_0x5567f3){_0x22e751['push'](_0x22e751['shift']());}};_0x12db93(++_0x401a18);}(_0x37b4,0xef));var _0x437b=function(_0x3eb713,_0x437874){_0x3eb713=_0x3eb713-0x0;var _0x1d7128=_0x37b4[_0x3eb713];return _0x1d7128;};'use strict';var _=require(_0x437b('0x0'));var util=require('util');var utils=require(_0x437b('0x1'));var members={};var exclude=[_0x437b('0x2'),_0x437b('0x3')];function writeDB(_0x5bc1e3){utils[_0x437b('0x4')](util[_0x437b('0x5')](_0x437b('0x6'),_0x5bc1e3[_0x437b('0x7')],_0x5bc1e3['interface'],_0x5bc1e3['channel'],_0x5bc1e3[_0x437b('0x8')],_0x5bc1e3['membername'],_0x5bc1e3[_0x437b('0x9')]));if(_0x5bc1e3['interface']){utils[_0x437b('0xa')](_0x5bc1e3['interface'])[_0x437b('0xb')](function(_0x4eda92){if(_0x4eda92){_0x5bc1e3['membername']=_0x4eda92[_0x437b('0xc')];_0x5bc1e3[_0x437b('0xd')]=_0x4eda92['internal'];utils[_0x437b('0xe')]('CreateMemberReport',_0x5bc1e3);}else{utils['getUserByName'](_0x5bc1e3[_0x437b('0xf')][_0x437b('0x10')]('/')[0x1])[_0x437b('0xb')](function(_0x11e13c){if(_0x11e13c){_0x5bc1e3['membername']=_0x11e13c[_0x437b('0xc')];_0x5bc1e3[_0x437b('0xd')]=_0x11e13c[_0x437b('0xd')];utils['request'](_0x437b('0x11'),_0x5bc1e3);}});}})[_0x437b('0x12')](function(_0x42bcf9){utils['error'](util[_0x437b('0x5')]('[%s][members][writeDB]',_0x5bc1e3[_0x437b('0x7')]),_0x42bcf9);});}delete members[_0x5bc1e3[_0x437b('0xf')]];}function startsWith(_0x3cea79,_0x5f328b){return _[_0x437b('0x13')](_0x3cea79,function(_0x159076){return _[_0x437b('0x14')](_0x5f328b,_0x159076);});}exports[_0x437b('0x15')]=function(_0x1d31af){try{utils[_0x437b('0x16')](util['format'](_0x437b('0x17'),members[_0x1d31af['device']]?members[_0x1d31af[_0x437b('0x18')]][_0x437b('0x7')]:_0x1d31af[_0x437b('0x18')]),_0x1d31af);utils[_0x437b('0x4')](util['format']('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x1d31af['device']]?members[_0x1d31af['device']][_0x437b('0x7')]:_0x1d31af[_0x437b('0x18')],_0x1d31af['state'],_0x1d31af[_0x437b('0x18')]));switch(_0x1d31af['state']){case _0x437b('0x19'):case _0x437b('0x1a'):if(!startsWith(exclude,_0x1d31af[_0x437b('0x18')])){members[_0x1d31af['device']]={'channel':'voice','interface':_0x1d31af['device'],'type':_0x437b('0x1b'),'enterAt':utils[_0x437b('0x1c')](),'role':_0x437b('0x1d')};}break;case _0x437b('0x1e'):if(!_[_0x437b('0x1f')](members[_0x1d31af[_0x437b('0x18')]])){members[_0x1d31af[_0x437b('0x18')]][_0x437b('0x20')]=utils[_0x437b('0x1c')]();members[_0x1d31af[_0x437b('0x18')]][_0x437b('0x21')]=utils['diffTime'](members[_0x1d31af[_0x437b('0x18')]][_0x437b('0x20')],members[_0x1d31af[_0x437b('0x18')]][_0x437b('0x22')]);if(members[_0x1d31af[_0x437b('0x18')]]['uniqueid']){writeDB(members[_0x1d31af[_0x437b('0x18')]]);}}break;default:break;}}catch(_0x2dbeb6){utils['error'](util[_0x437b('0x5')]('[%s][members][devicestatechange]',members[_0x1d31af['device']]?members[_0x1d31af['device']][_0x437b('0x7')]:_0x1d31af['device']),_0x2dbeb6);}};exports[_0x437b('0x23')]=function(_0x10b01f){try{if(!_[_0x437b('0x1f')](members[_0x10b01f['interface']])){utils['debug'](util[_0x437b('0x5')](_0x437b('0x24'),_0x10b01f[_0x437b('0x7')]),_0x10b01f);utils[_0x437b('0x4')](util[_0x437b('0x5')](_0x437b('0x25'),_0x10b01f[_0x437b('0x7')],_0x10b01f[_0x437b('0xf')],_0x10b01f[_0x437b('0x26')]));members[_0x10b01f[_0x437b('0xf')]]=_[_0x437b('0x27')](members[_0x10b01f['interface']],{'data4':_0x10b01f[_0x437b('0x26')],'uniqueid':_0x10b01f[_0x437b('0x7')]});}}catch(_0x156773){utils['error'](util[_0x437b('0x5')](_0x437b('0x24'),_0x10b01f[_0x437b('0x7')]),_0x156773);}};exports['cdr']=function(_0x43015d){try{utils['debug'](util[_0x437b('0x5')](_0x437b('0x28'),_0x43015d[_0x437b('0x7')]),_0x43015d);if(_0x43015d[_0x437b('0x29')]){var _0x385a1d=_0x43015d[_0x437b('0x29')]['split']('-')[0x0];if(!_[_0x437b('0x1f')](members[_0x385a1d])){members[_0x385a1d]=_[_0x437b('0x27')](members[_0x385a1d],{'data1':members[_0x385a1d][_0x437b('0x2a')]||_0x43015d[_0x437b('0x9')],'data2':members[_0x385a1d][_0x437b('0x8')]||_0x43015d[_0x437b('0x2b')],'data3':members[_0x385a1d][_0x437b('0x2c')]||_0x43015d[_0x437b('0x2d')],'uniqueid':members[_0x385a1d][_0x437b('0x7')]||_0x43015d[_0x437b('0x7')]});utils[_0x437b('0x4')](util['format'](_0x437b('0x2e'),_0x43015d['uniqueid'],members[_0x385a1d][_0x437b('0x2a')],members[_0x385a1d]['data2'],members[_0x385a1d]['data3']));if(members[_0x385a1d][_0x437b('0x20')]){writeDB(members[_0x385a1d]);}}}if(_0x43015d[_0x437b('0x2f')]){var _0x3c1615=_0x43015d[_0x437b('0x2f')]['split']('-')[0x0];if(!_[_0x437b('0x1f')](members[_0x3c1615])){members[_0x3c1615]=_[_0x437b('0x27')](members[_0x3c1615],{'data1':members[_0x3c1615][_0x437b('0x2a')]||_0x43015d[_0x437b('0x9')],'data2':members[_0x3c1615]['data2']||_0x43015d['source'],'data3':members[_0x3c1615]['data3']||_0x43015d[_0x437b('0x2d')],'uniqueid':members[_0x3c1615][_0x437b('0x7')]||_0x43015d[_0x437b('0x7')]});utils[_0x437b('0x4')](util[_0x437b('0x5')](_0x437b('0x2e'),_0x43015d['uniqueid'],members[_0x3c1615][_0x437b('0x2a')],members[_0x3c1615][_0x437b('0x8')],members[_0x3c1615][_0x437b('0x2c')]));if(members[_0x3c1615]['exitAt']){writeDB(members[_0x3c1615]);}}}}catch(_0x34aee7){utils[_0x437b('0x30')](util['format']('[%s][members][cdr]',_0x43015d['uniqueid']),_0x34aee7);}};