e3b0e082c3c7725068e9f3f81884f08c9cdb343e
[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 _0xcf09=['assign','split','data1','data3','destination','destinationchannel','source','lodash','util','./utils','Local/_attended@transfer','Queue:','info','format','uniqueid','interface','channel','data2','membername','type','then','name','internal','request','CreateMemberReport','getUserByName','catch','error','some','startsWith','INUSE','device','TALKING','now','agent','NOT_INUSE','isNil','exitAt','diffTime','enterAt','agentcomplete'];(function(_0x58a9dd,_0x58d549){var _0x5a01ce=function(_0x5e4128){while(--_0x5e4128){_0x58a9dd['push'](_0x58a9dd['shift']());}};_0x5a01ce(++_0x58d549);}(_0xcf09,0x14f));var _0x9cf0=function(_0x3bf239,_0x5027db){_0x3bf239=_0x3bf239-0x0;var _0x233335=_0xcf09[_0x3bf239];return _0x233335;};'use strict';var _=require(_0x9cf0('0x0'));var util=require(_0x9cf0('0x1'));var utils=require(_0x9cf0('0x2'));var members={};var exclude=[_0x9cf0('0x3'),_0x9cf0('0x4')];function writeDB(_0x4d3f86){utils[_0x9cf0('0x5')](util[_0x9cf0('0x6')]('MEMBER|%s|%s|%s|%s|%s|%s',_0x4d3f86[_0x9cf0('0x7')],_0x4d3f86[_0x9cf0('0x8')],_0x4d3f86[_0x9cf0('0x9')],_0x4d3f86[_0x9cf0('0xa')],_0x4d3f86[_0x9cf0('0xb')],_0x4d3f86[_0x9cf0('0xc')]));if(_0x4d3f86[_0x9cf0('0x8')]){utils['getUserByInterface'](_0x4d3f86[_0x9cf0('0x8')])[_0x9cf0('0xd')](function(_0x229b3a){if(_0x229b3a){_0x4d3f86[_0x9cf0('0xb')]=_0x229b3a[_0x9cf0('0xe')];_0x4d3f86[_0x9cf0('0xf')]=_0x229b3a[_0x9cf0('0xf')];utils[_0x9cf0('0x10')](_0x9cf0('0x11'),_0x4d3f86);}else{utils[_0x9cf0('0x12')](_0x4d3f86[_0x9cf0('0x8')]['split']('/')[0x1])[_0x9cf0('0xd')](function(_0x13d39e){if(_0x13d39e){_0x4d3f86[_0x9cf0('0xb')]=_0x13d39e[_0x9cf0('0xe')];_0x4d3f86[_0x9cf0('0xf')]=_0x13d39e['internal'];utils[_0x9cf0('0x10')]('CreateMemberReport',_0x4d3f86);}});}})[_0x9cf0('0x13')](function(_0x38448c){utils[_0x9cf0('0x14')](_0x38448c);});}delete members[_0x4d3f86[_0x9cf0('0x8')]];}function startsWith(_0x1c974e,_0x2cd021){return _[_0x9cf0('0x15')](_0x1c974e,function(_0x5b2824){return _[_0x9cf0('0x16')](_0x2cd021,_0x5b2824);});}exports['devicestatechange']=function(_0x468247){switch(_0x468247['state']){case _0x9cf0('0x17'):case'BUSY':if(!startsWith(exclude,_0x468247['device'])){members[_0x468247[_0x9cf0('0x18')]]={'channel':'voice','interface':_0x468247['device'],'type':_0x9cf0('0x19'),'enterAt':utils[_0x9cf0('0x1a')](),'role':_0x9cf0('0x1b')};}break;case _0x9cf0('0x1c'):if(!_[_0x9cf0('0x1d')](members[_0x468247[_0x9cf0('0x18')]])){members[_0x468247['device']][_0x9cf0('0x1e')]=utils[_0x9cf0('0x1a')]();members[_0x468247['device']]['duration']=utils[_0x9cf0('0x1f')](members[_0x468247[_0x9cf0('0x18')]]['exitAt'],members[_0x468247['device']][_0x9cf0('0x20')]);if(members[_0x468247[_0x9cf0('0x18')]]['uniqueid']){writeDB(members[_0x468247['device']]);}}default:break;}};exports[_0x9cf0('0x21')]=function(_0x38de55){if(!_[_0x9cf0('0x1d')](members[_0x38de55[_0x9cf0('0x8')]])){members[_0x38de55[_0x9cf0('0x8')]]=_[_0x9cf0('0x22')](members[_0x38de55[_0x9cf0('0x8')]],{'data4':_0x38de55['queue'],'uniqueid':_0x38de55[_0x9cf0('0x7')]});}};exports['cdr']=function(_0x3d6fda){if(_0x3d6fda['channel']){var _0x3a9de4=_0x3d6fda['channel'][_0x9cf0('0x23')]('-')[0x0];if(!_[_0x9cf0('0x1d')](members[_0x3a9de4])){members[_0x3a9de4]=_[_0x9cf0('0x22')](members[_0x3a9de4],{'data1':members[_0x3a9de4][_0x9cf0('0x24')]||_0x3d6fda[_0x9cf0('0xc')],'data2':members[_0x3a9de4][_0x9cf0('0xa')]||_0x3d6fda['source'],'data3':members[_0x3a9de4][_0x9cf0('0x25')]||_0x3d6fda[_0x9cf0('0x26')],'uniqueid':members[_0x3a9de4][_0x9cf0('0x7')]||_0x3d6fda[_0x9cf0('0x7')]});if(members[_0x3a9de4]['exitAt']){writeDB(members[_0x3a9de4]);}}}if(_0x3d6fda['destinationchannel']){var _0x2001bc=_0x3d6fda[_0x9cf0('0x27')][_0x9cf0('0x23')]('-')[0x0];if(!_[_0x9cf0('0x1d')](members[_0x2001bc])){members[_0x2001bc]=_[_0x9cf0('0x22')](members[_0x2001bc],{'data1':members[_0x2001bc]['data1']||_0x3d6fda[_0x9cf0('0xc')],'data2':members[_0x2001bc]['data2']||_0x3d6fda[_0x9cf0('0x28')],'data3':members[_0x2001bc][_0x9cf0('0x25')]||_0x3d6fda[_0x9cf0('0x26')],'uniqueid':members[_0x2001bc][_0x9cf0('0x7')]||_0x3d6fda[_0x9cf0('0x7')]});if(members[_0x2001bc]['exitAt']){writeDB(members[_0x2001bc]);}}}};