6f2b19bec23f9d7cab83450bf09ce0519730c3ea
[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 _0x792f=['[%s][members][writeDB]','some','startsWith','format','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','TALKING','NOT_INUSE','exitAt','now','diffTime','enterAt','isNil','interface','debug','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign','cdr','[%s][members][cdr]','data1','source','data3','destinationchannel','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','lodash','util','./utils','Local/_attended@transfer','Queue:','info','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','channel','data2','membername','type','getUserByInterface','name','internal','request','CreateMemberReport','getUserByName','split','then','catch','error'];(function(_0x7c9cdd,_0x33d2b6){var _0x3e5818=function(_0x4da8af){while(--_0x4da8af){_0x7c9cdd['push'](_0x7c9cdd['shift']());}};_0x3e5818(++_0x33d2b6);}(_0x792f,0x15d));var _0xf792=function(_0x16629d,_0x492375){_0x16629d=_0x16629d-0x0;var _0x56ccee=_0x792f[_0x16629d];return _0x56ccee;};'use strict';var _=require(_0xf792('0x0'));var util=require(_0xf792('0x1'));var utils=require(_0xf792('0x2'));var members={};var exclude=[_0xf792('0x3'),_0xf792('0x4')];function writeDB(_0x4c9fc0){utils[_0xf792('0x5')](util['format'](_0xf792('0x6'),_0x4c9fc0[_0xf792('0x7')],_0x4c9fc0['interface'],_0x4c9fc0[_0xf792('0x8')],_0x4c9fc0[_0xf792('0x9')],_0x4c9fc0[_0xf792('0xa')],_0x4c9fc0[_0xf792('0xb')]));if(_0x4c9fc0['interface']){utils[_0xf792('0xc')](_0x4c9fc0['interface'])['then'](function(_0x171498){if(_0x171498){_0x4c9fc0[_0xf792('0xa')]=_0x171498[_0xf792('0xd')];_0x4c9fc0[_0xf792('0xe')]=_0x171498[_0xf792('0xe')];utils[_0xf792('0xf')](_0xf792('0x10'),_0x4c9fc0);}else{utils[_0xf792('0x11')](_0x4c9fc0['interface'][_0xf792('0x12')]('/')[0x1])[_0xf792('0x13')](function(_0x3f504c){if(_0x3f504c){_0x4c9fc0['membername']=_0x3f504c[_0xf792('0xd')];_0x4c9fc0[_0xf792('0xe')]=_0x3f504c[_0xf792('0xe')];utils[_0xf792('0xf')](_0xf792('0x10'),_0x4c9fc0);}});}})[_0xf792('0x14')](function(_0x6a2cf9){utils[_0xf792('0x15')](util['format'](_0xf792('0x16'),_0x4c9fc0[_0xf792('0x7')]),_0x6a2cf9);});}delete members[_0x4c9fc0['interface']];}function startsWith(_0x28021f,_0x1737d5){return _[_0xf792('0x17')](_0x28021f,function(_0x4ea40d){return _[_0xf792('0x18')](_0x1737d5,_0x4ea40d);});}exports['devicestatechange']=function(_0x30452d){try{utils['debug'](util[_0xf792('0x19')](_0xf792('0x1a'),members[_0x30452d[_0xf792('0x1b')]]?members[_0x30452d['device']][_0xf792('0x7')]:_0x30452d[_0xf792('0x1b')]),_0x30452d);utils[_0xf792('0x5')](util[_0xf792('0x19')](_0xf792('0x1c'),members[_0x30452d[_0xf792('0x1b')]]?members[_0x30452d[_0xf792('0x1b')]][_0xf792('0x7')]:_0x30452d[_0xf792('0x1b')],_0x30452d[_0xf792('0x1d')],_0x30452d[_0xf792('0x1b')]));switch(_0x30452d[_0xf792('0x1d')]){case _0xf792('0x1e'):case _0xf792('0x1f'):if(!startsWith(exclude,_0x30452d[_0xf792('0x1b')])){members[_0x30452d[_0xf792('0x1b')]]={'channel':_0xf792('0x20'),'interface':_0x30452d[_0xf792('0x1b')],'type':_0xf792('0x21'),'enterAt':utils['now'](),'role':'agent'};}break;case _0xf792('0x22'):if(!_['isNil'](members[_0x30452d[_0xf792('0x1b')]])){members[_0x30452d[_0xf792('0x1b')]][_0xf792('0x23')]=utils[_0xf792('0x24')]();members[_0x30452d['device']]['duration']=utils[_0xf792('0x25')](members[_0x30452d[_0xf792('0x1b')]][_0xf792('0x23')],members[_0x30452d[_0xf792('0x1b')]][_0xf792('0x26')]);if(members[_0x30452d[_0xf792('0x1b')]]['uniqueid']){writeDB(members[_0x30452d[_0xf792('0x1b')]]);}}break;default:break;}}catch(_0x4c0ae2){utils[_0xf792('0x15')](util[_0xf792('0x19')](_0xf792('0x1a'),members[_0x30452d[_0xf792('0x1b')]]?members[_0x30452d[_0xf792('0x1b')]][_0xf792('0x7')]:_0x30452d[_0xf792('0x1b')]),_0x4c0ae2);}};exports['agentcomplete']=function(_0x47912a){try{if(!_[_0xf792('0x27')](members[_0x47912a[_0xf792('0x28')]])){utils[_0xf792('0x29')](util['format'](_0xf792('0x2a'),_0x47912a[_0xf792('0x7')]),_0x47912a);utils[_0xf792('0x5')](util[_0xf792('0x19')](_0xf792('0x2b'),_0x47912a[_0xf792('0x7')],_0x47912a[_0xf792('0x28')],_0x47912a['queue']));members[_0x47912a[_0xf792('0x28')]]=_[_0xf792('0x2c')](members[_0x47912a['interface']],{'data4':_0x47912a['queue'],'uniqueid':_0x47912a[_0xf792('0x7')]});}}catch(_0x2a0ebc){utils['error'](util['format']('[%s][members][agentcomplete]',_0x47912a[_0xf792('0x7')]),_0x2a0ebc);}};exports[_0xf792('0x2d')]=function(_0x4dae77){try{utils['debug'](util[_0xf792('0x19')](_0xf792('0x2e'),_0x4dae77[_0xf792('0x7')]),_0x4dae77);if(_0x4dae77['channel']){var _0x44c379=_0x4dae77[_0xf792('0x8')][_0xf792('0x12')]('-')[0x0];if(!_[_0xf792('0x27')](members[_0x44c379])){members[_0x44c379]=_[_0xf792('0x2c')](members[_0x44c379],{'data1':members[_0x44c379][_0xf792('0x2f')]||_0x4dae77[_0xf792('0xb')],'data2':members[_0x44c379][_0xf792('0x9')]||_0x4dae77[_0xf792('0x30')],'data3':members[_0x44c379]['data3']||_0x4dae77['destination'],'uniqueid':members[_0x44c379][_0xf792('0x7')]||_0x4dae77[_0xf792('0x7')]});utils[_0xf792('0x5')](util['format']('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x4dae77['uniqueid'],members[_0x44c379][_0xf792('0x2f')],members[_0x44c379][_0xf792('0x9')],members[_0x44c379][_0xf792('0x31')]));if(members[_0x44c379][_0xf792('0x23')]){writeDB(members[_0x44c379]);}}}if(_0x4dae77[_0xf792('0x32')]){var _0x4c6e5d=_0x4dae77['destinationchannel']['split']('-')[0x0];if(!_[_0xf792('0x27')](members[_0x4c6e5d])){members[_0x4c6e5d]=_[_0xf792('0x2c')](members[_0x4c6e5d],{'data1':members[_0x4c6e5d][_0xf792('0x2f')]||_0x4dae77[_0xf792('0xb')],'data2':members[_0x4c6e5d][_0xf792('0x9')]||_0x4dae77[_0xf792('0x30')],'data3':members[_0x4c6e5d]['data3']||_0x4dae77[_0xf792('0x33')],'uniqueid':members[_0x4c6e5d][_0xf792('0x7')]||_0x4dae77[_0xf792('0x7')]});utils[_0xf792('0x5')](util[_0xf792('0x19')](_0xf792('0x34'),_0x4dae77[_0xf792('0x7')],members[_0x4c6e5d][_0xf792('0x2f')],members[_0x4c6e5d][_0xf792('0x9')],members[_0x4c6e5d][_0xf792('0x31')]));if(members[_0x4c6e5d]['exitAt']){writeDB(members[_0x4c6e5d]);}}}}catch(_0x2a0707){utils[_0xf792('0x15')](util['format']('[%s][members][cdr]',_0x4dae77[_0xf792('0x7')]),_0x2a0707);}};