ad41a321fbf76f29b16718661172881c63e50a40
[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 _0x8ec7=['isNil','exitAt','duration','diffTime','debug','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','destinationchannel','type','source','[%s][members][cdr]','lodash','util','Local/_attended@transfer','info','format','uniqueid','interface','channel','data2','membername','then','name','internal','request','CreateMemberReport','split','catch','error','[%s][members][writeDB]','some','startsWith','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','BUSY','voice','TALKING','now','agent','NOT_INUSE'];(function(_0x30ae5e,_0x391fc4){var _0x1f2e93=function(_0x60307d){while(--_0x60307d){_0x30ae5e['push'](_0x30ae5e['shift']());}};_0x1f2e93(++_0x391fc4);}(_0x8ec7,0x1f1));var _0x78ec=function(_0x4dcc2d,_0x422839){_0x4dcc2d=_0x4dcc2d-0x0;var _0x1bbd79=_0x8ec7[_0x4dcc2d];return _0x1bbd79;};'use strict';var _=require(_0x78ec('0x0'));var util=require(_0x78ec('0x1'));var utils=require('./utils');var members={};var exclude=[_0x78ec('0x2'),'Queue:'];function writeDB(_0x47d4c9){utils[_0x78ec('0x3')](util[_0x78ec('0x4')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x47d4c9[_0x78ec('0x5')],_0x47d4c9[_0x78ec('0x6')],_0x47d4c9[_0x78ec('0x7')],_0x47d4c9[_0x78ec('0x8')],_0x47d4c9[_0x78ec('0x9')],_0x47d4c9['type']));if(_0x47d4c9[_0x78ec('0x6')]){utils['getUserByInterface'](_0x47d4c9[_0x78ec('0x6')])[_0x78ec('0xa')](function(_0x264abb){if(_0x264abb){_0x47d4c9['membername']=_0x264abb[_0x78ec('0xb')];_0x47d4c9[_0x78ec('0xc')]=_0x264abb[_0x78ec('0xc')];utils[_0x78ec('0xd')](_0x78ec('0xe'),_0x47d4c9);}else{utils['getUserByName'](_0x47d4c9['interface'][_0x78ec('0xf')]('/')[0x1])[_0x78ec('0xa')](function(_0x1a9060){if(_0x1a9060){_0x47d4c9['membername']=_0x1a9060[_0x78ec('0xb')];_0x47d4c9[_0x78ec('0xc')]=_0x1a9060[_0x78ec('0xc')];utils[_0x78ec('0xd')](_0x78ec('0xe'),_0x47d4c9);}});}})[_0x78ec('0x10')](function(_0x7f90e1){utils[_0x78ec('0x11')](util[_0x78ec('0x4')](_0x78ec('0x12'),_0x47d4c9[_0x78ec('0x5')]),_0x7f90e1);});}delete members[_0x47d4c9['interface']];}function startsWith(_0x1997ca,_0x275f7e){return _[_0x78ec('0x13')](_0x1997ca,function(_0x3855a4){return _[_0x78ec('0x14')](_0x275f7e,_0x3855a4);});}exports['devicestatechange']=function(_0x4f9ffd){try{utils['debug'](util['format'](_0x78ec('0x15'),members[_0x4f9ffd[_0x78ec('0x16')]]?members[_0x4f9ffd[_0x78ec('0x16')]][_0x78ec('0x5')]:_0x4f9ffd[_0x78ec('0x16')]),_0x4f9ffd);utils[_0x78ec('0x3')](util[_0x78ec('0x4')](_0x78ec('0x17'),members[_0x4f9ffd[_0x78ec('0x16')]]?members[_0x4f9ffd['device']][_0x78ec('0x5')]:_0x4f9ffd[_0x78ec('0x16')],_0x4f9ffd[_0x78ec('0x18')],_0x4f9ffd['device']));switch(_0x4f9ffd[_0x78ec('0x18')]){case'INUSE':case _0x78ec('0x19'):if(!startsWith(exclude,_0x4f9ffd[_0x78ec('0x16')])){members[_0x4f9ffd['device']]={'channel':_0x78ec('0x1a'),'interface':_0x4f9ffd['device'],'type':_0x78ec('0x1b'),'enterAt':utils[_0x78ec('0x1c')](),'role':_0x78ec('0x1d')};}break;case _0x78ec('0x1e'):if(!_[_0x78ec('0x1f')](members[_0x4f9ffd['device']])){members[_0x4f9ffd[_0x78ec('0x16')]][_0x78ec('0x20')]=utils[_0x78ec('0x1c')]();members[_0x4f9ffd[_0x78ec('0x16')]][_0x78ec('0x21')]=utils[_0x78ec('0x22')](members[_0x4f9ffd[_0x78ec('0x16')]][_0x78ec('0x20')],members[_0x4f9ffd['device']]['enterAt']);if(members[_0x4f9ffd[_0x78ec('0x16')]]['uniqueid']){writeDB(members[_0x4f9ffd[_0x78ec('0x16')]]);}}break;default:break;}}catch(_0x1f30c2){utils[_0x78ec('0x11')](util[_0x78ec('0x4')](_0x78ec('0x15'),members[_0x4f9ffd[_0x78ec('0x16')]]?members[_0x4f9ffd['device']]['uniqueid']:_0x4f9ffd[_0x78ec('0x16')]),_0x1f30c2);}};exports['agentcomplete']=function(_0x3a6c39){try{if(!_[_0x78ec('0x1f')](members[_0x3a6c39[_0x78ec('0x6')]])){utils[_0x78ec('0x23')](util[_0x78ec('0x4')](_0x78ec('0x24'),_0x3a6c39[_0x78ec('0x5')]),_0x3a6c39);utils[_0x78ec('0x3')](util[_0x78ec('0x4')](_0x78ec('0x25'),_0x3a6c39['uniqueid'],_0x3a6c39[_0x78ec('0x6')],_0x3a6c39[_0x78ec('0x26')]));members[_0x3a6c39[_0x78ec('0x6')]]=_[_0x78ec('0x27')](members[_0x3a6c39[_0x78ec('0x6')]],{'data4':_0x3a6c39[_0x78ec('0x26')],'uniqueid':_0x3a6c39[_0x78ec('0x5')]});}}catch(_0x4903a8){utils[_0x78ec('0x11')](util['format'](_0x78ec('0x24'),_0x3a6c39[_0x78ec('0x5')]),_0x4903a8);}};exports['cdr']=function(_0x219d4c){try{utils[_0x78ec('0x23')](util[_0x78ec('0x4')]('[%s][members][cdr]',_0x219d4c[_0x78ec('0x5')]),_0x219d4c);if(_0x219d4c[_0x78ec('0x7')]){var _0x295dd4=_0x219d4c[_0x78ec('0x7')][_0x78ec('0xf')]('-')[0x0];if(!_[_0x78ec('0x1f')](members[_0x295dd4])){members[_0x295dd4]=_[_0x78ec('0x27')](members[_0x295dd4],{'data1':members[_0x295dd4]['data1']||_0x219d4c['type'],'data2':members[_0x295dd4][_0x78ec('0x8')]||_0x219d4c['source'],'data3':members[_0x295dd4][_0x78ec('0x28')]||_0x219d4c[_0x78ec('0x29')],'uniqueid':members[_0x295dd4]['uniqueid']||_0x219d4c[_0x78ec('0x5')]});utils['info'](util['format'](_0x78ec('0x2a'),_0x219d4c[_0x78ec('0x5')],members[_0x295dd4][_0x78ec('0x2b')],members[_0x295dd4]['data2'],members[_0x295dd4][_0x78ec('0x28')]));if(members[_0x295dd4]['exitAt']){writeDB(members[_0x295dd4]);}}}if(_0x219d4c['destinationchannel']){var _0x443a7a=_0x219d4c[_0x78ec('0x2c')][_0x78ec('0xf')]('-')[0x0];if(!_[_0x78ec('0x1f')](members[_0x443a7a])){members[_0x443a7a]=_[_0x78ec('0x27')](members[_0x443a7a],{'data1':members[_0x443a7a][_0x78ec('0x2b')]||_0x219d4c[_0x78ec('0x2d')],'data2':members[_0x443a7a][_0x78ec('0x8')]||_0x219d4c[_0x78ec('0x2e')],'data3':members[_0x443a7a][_0x78ec('0x28')]||_0x219d4c[_0x78ec('0x29')],'uniqueid':members[_0x443a7a][_0x78ec('0x5')]||_0x219d4c[_0x78ec('0x5')]});utils['info'](util[_0x78ec('0x4')](_0x78ec('0x2a'),_0x219d4c[_0x78ec('0x5')],members[_0x443a7a][_0x78ec('0x2b')],members[_0x443a7a][_0x78ec('0x8')],members[_0x443a7a][_0x78ec('0x28')]));if(members[_0x443a7a]['exitAt']){writeDB(members[_0x443a7a]);}}}}catch(_0x2c8794){utils[_0x78ec('0x11')](util[_0x78ec('0x4')](_0x78ec('0x2f'),_0x219d4c[_0x78ec('0x5')]),_0x2c8794);}};