b3dc218ca61afd2357f47523801ca6a89831e99c
[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 _0xdeb7=['agent','NOT_INUSE','isNil','exitAt','now','diffTime','enterAt','[%s][members][devicestatechange]','debug','queue','assign','cdr','[%s][members][cdr]','source','destination','data1','data3','destinationchannel','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','lodash','util','./utils','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','interface','channel','data2','membername','type','then','internal','CreateMemberReport','split','name','catch','error','[%s][members][writeDB]','uniqueid','some','startsWith','devicestatechange','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','TALKING'];(function(_0xaa6a4,_0x64b067){var _0xdc31a4=function(_0x4269d8){while(--_0x4269d8){_0xaa6a4['push'](_0xaa6a4['shift']());}};_0xdc31a4(++_0x64b067);}(_0xdeb7,0x77));var _0x7deb=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdeb7[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x7deb('0x0'));var util=require(_0x7deb('0x1'));var utils=require(_0x7deb('0x2'));var members={};var exclude=['Local/_attended@transfer',_0x7deb('0x3')];function writeDB(_0x161729){utils[_0x7deb('0x4')](util[_0x7deb('0x5')](_0x7deb('0x6'),_0x161729['uniqueid'],_0x161729[_0x7deb('0x7')],_0x161729[_0x7deb('0x8')],_0x161729[_0x7deb('0x9')],_0x161729[_0x7deb('0xa')],_0x161729[_0x7deb('0xb')]));if(_0x161729[_0x7deb('0x7')]){utils['getUserByInterface'](_0x161729[_0x7deb('0x7')])[_0x7deb('0xc')](function(_0x3cb5d4){if(_0x3cb5d4){_0x161729[_0x7deb('0xa')]=_0x3cb5d4['name'];_0x161729[_0x7deb('0xd')]=_0x3cb5d4['internal'];utils['request'](_0x7deb('0xe'),_0x161729);}else{utils['getUserByName'](_0x161729[_0x7deb('0x7')][_0x7deb('0xf')]('/')[0x1])[_0x7deb('0xc')](function(_0x52f80b){if(_0x52f80b){_0x161729[_0x7deb('0xa')]=_0x52f80b[_0x7deb('0x10')];_0x161729[_0x7deb('0xd')]=_0x52f80b[_0x7deb('0xd')];utils['request'](_0x7deb('0xe'),_0x161729);}});}})[_0x7deb('0x11')](function(_0xe8e818){utils[_0x7deb('0x12')](util[_0x7deb('0x5')](_0x7deb('0x13'),_0x161729[_0x7deb('0x14')]),_0xe8e818);});}delete members[_0x161729[_0x7deb('0x7')]];}function startsWith(_0x18957d,_0x405ae6){return _[_0x7deb('0x15')](_0x18957d,function(_0x4764e3){return _[_0x7deb('0x16')](_0x405ae6,_0x4764e3);});}exports[_0x7deb('0x17')]=function(_0xbe8e2a){try{utils['debug'](util[_0x7deb('0x5')]('[%s][members][devicestatechange]',members[_0xbe8e2a[_0x7deb('0x18')]]?members[_0xbe8e2a[_0x7deb('0x18')]]['uniqueid']:_0xbe8e2a[_0x7deb('0x18')]),_0xbe8e2a);utils[_0x7deb('0x4')](util[_0x7deb('0x5')](_0x7deb('0x19'),members[_0xbe8e2a[_0x7deb('0x18')]]?members[_0xbe8e2a[_0x7deb('0x18')]][_0x7deb('0x14')]:_0xbe8e2a[_0x7deb('0x18')],_0xbe8e2a[_0x7deb('0x1a')],_0xbe8e2a['device']));switch(_0xbe8e2a[_0x7deb('0x1a')]){case _0x7deb('0x1b'):case _0x7deb('0x1c'):if(!startsWith(exclude,_0xbe8e2a[_0x7deb('0x18')])){members[_0xbe8e2a[_0x7deb('0x18')]]={'channel':_0x7deb('0x1d'),'interface':_0xbe8e2a[_0x7deb('0x18')],'type':_0x7deb('0x1e'),'enterAt':utils['now'](),'role':_0x7deb('0x1f')};}break;case _0x7deb('0x20'):if(!_[_0x7deb('0x21')](members[_0xbe8e2a['device']])){members[_0xbe8e2a[_0x7deb('0x18')]][_0x7deb('0x22')]=utils[_0x7deb('0x23')]();members[_0xbe8e2a[_0x7deb('0x18')]]['duration']=utils[_0x7deb('0x24')](members[_0xbe8e2a[_0x7deb('0x18')]][_0x7deb('0x22')],members[_0xbe8e2a[_0x7deb('0x18')]][_0x7deb('0x25')]);if(members[_0xbe8e2a[_0x7deb('0x18')]][_0x7deb('0x14')]){writeDB(members[_0xbe8e2a[_0x7deb('0x18')]]);}}break;default:break;}}catch(_0x3b2fe6){utils[_0x7deb('0x12')](util[_0x7deb('0x5')](_0x7deb('0x26'),members[_0xbe8e2a[_0x7deb('0x18')]]?members[_0xbe8e2a[_0x7deb('0x18')]]['uniqueid']:_0xbe8e2a[_0x7deb('0x18')]),_0x3b2fe6);}};exports['agentcomplete']=function(_0x1ce28d){try{if(!_['isNil'](members[_0x1ce28d[_0x7deb('0x7')]])){utils[_0x7deb('0x27')](util['format']('[%s][members][agentcomplete]',_0x1ce28d[_0x7deb('0x14')]),_0x1ce28d);utils[_0x7deb('0x4')](util['format']('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x1ce28d[_0x7deb('0x14')],_0x1ce28d[_0x7deb('0x7')],_0x1ce28d[_0x7deb('0x28')]));members[_0x1ce28d[_0x7deb('0x7')]]=_[_0x7deb('0x29')](members[_0x1ce28d[_0x7deb('0x7')]],{'data4':_0x1ce28d[_0x7deb('0x28')],'uniqueid':_0x1ce28d[_0x7deb('0x14')]});}}catch(_0xe89d70){utils['error'](util[_0x7deb('0x5')]('[%s][members][agentcomplete]',_0x1ce28d[_0x7deb('0x14')]),_0xe89d70);}};exports[_0x7deb('0x2a')]=function(_0x16b8d4){try{utils[_0x7deb('0x27')](util[_0x7deb('0x5')](_0x7deb('0x2b'),_0x16b8d4[_0x7deb('0x14')]),_0x16b8d4);if(_0x16b8d4[_0x7deb('0x8')]){var _0x7efb29=_0x16b8d4[_0x7deb('0x8')]['split']('-')[0x0];if(!_[_0x7deb('0x21')](members[_0x7efb29])){members[_0x7efb29]=_[_0x7deb('0x29')](members[_0x7efb29],{'data1':members[_0x7efb29]['data1']||_0x16b8d4['type'],'data2':members[_0x7efb29]['data2']||_0x16b8d4[_0x7deb('0x2c')],'data3':members[_0x7efb29]['data3']||_0x16b8d4[_0x7deb('0x2d')],'uniqueid':members[_0x7efb29][_0x7deb('0x14')]||_0x16b8d4[_0x7deb('0x14')]});utils[_0x7deb('0x4')](util['format']('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x16b8d4['uniqueid'],members[_0x7efb29][_0x7deb('0x2e')],members[_0x7efb29][_0x7deb('0x9')],members[_0x7efb29][_0x7deb('0x2f')]));if(members[_0x7efb29][_0x7deb('0x22')]){writeDB(members[_0x7efb29]);}}}if(_0x16b8d4[_0x7deb('0x30')]){var _0x327091=_0x16b8d4['destinationchannel']['split']('-')[0x0];if(!_[_0x7deb('0x21')](members[_0x327091])){members[_0x327091]=_[_0x7deb('0x29')](members[_0x327091],{'data1':members[_0x327091]['data1']||_0x16b8d4[_0x7deb('0xb')],'data2':members[_0x327091]['data2']||_0x16b8d4[_0x7deb('0x2c')],'data3':members[_0x327091][_0x7deb('0x2f')]||_0x16b8d4[_0x7deb('0x2d')],'uniqueid':members[_0x327091][_0x7deb('0x14')]||_0x16b8d4[_0x7deb('0x14')]});utils[_0x7deb('0x4')](util['format'](_0x7deb('0x31'),_0x16b8d4[_0x7deb('0x14')],members[_0x327091][_0x7deb('0x2e')],members[_0x327091][_0x7deb('0x9')],members[_0x327091]['data3']));if(members[_0x327091][_0x7deb('0x22')]){writeDB(members[_0x327091]);}}}}catch(_0x50b7d2){utils['error'](util['format'](_0x7deb('0x2b'),_0x16b8d4[_0x7deb('0x14')]),_0x50b7d2);}};