e462ea5fe4a57c6755e621b2864555c6c0d686a2
[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 _0x8150=['queue','[%s][members][agentcomplete]','[%s][members][cdr]','data1','type','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','Local/_attended@transfer','Queue:','info','format','uniqueid','channel','data2','membername','interface','getUserByInterface','then','name','internal','request','CreateMemberReport','getUserByName','split','catch','error','[%s][members][writeDB]','some','startsWith','devicestatechange','debug','device','state','voice','now','agent','exitAt','duration','enterAt','[%s][members][devicestatechange]','agentcomplete','isNil','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign'];(function(_0x5a63a1,_0x4ef850){var _0x1f115d=function(_0x1e5bd1){while(--_0x1e5bd1){_0x5a63a1['push'](_0x5a63a1['shift']());}};_0x1f115d(++_0x4ef850);}(_0x8150,0x1a7));var _0x0815=function(_0x1bf2cc,_0x1bea91){_0x1bf2cc=_0x1bf2cc-0x0;var _0x3edcf1=_0x8150[_0x1bf2cc];return _0x3edcf1;};'use strict';var _=require('lodash');var util=require('util');var utils=require('./utils');var members={};var exclude=[_0x0815('0x0'),_0x0815('0x1')];function writeDB(_0x456b25){utils[_0x0815('0x2')](util[_0x0815('0x3')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x456b25[_0x0815('0x4')],_0x456b25['interface'],_0x456b25[_0x0815('0x5')],_0x456b25[_0x0815('0x6')],_0x456b25[_0x0815('0x7')],_0x456b25['type']));if(_0x456b25[_0x0815('0x8')]){utils[_0x0815('0x9')](_0x456b25[_0x0815('0x8')])[_0x0815('0xa')](function(_0x15a262){if(_0x15a262){_0x456b25[_0x0815('0x7')]=_0x15a262[_0x0815('0xb')];_0x456b25[_0x0815('0xc')]=_0x15a262[_0x0815('0xc')];utils[_0x0815('0xd')](_0x0815('0xe'),_0x456b25);}else{utils[_0x0815('0xf')](_0x456b25['interface'][_0x0815('0x10')]('/')[0x1])[_0x0815('0xa')](function(_0x551555){if(_0x551555){_0x456b25[_0x0815('0x7')]=_0x551555[_0x0815('0xb')];_0x456b25[_0x0815('0xc')]=_0x551555['internal'];utils[_0x0815('0xd')](_0x0815('0xe'),_0x456b25);}});}})[_0x0815('0x11')](function(_0x3b9e73){utils[_0x0815('0x12')](util['format'](_0x0815('0x13'),_0x456b25[_0x0815('0x4')]),_0x3b9e73);});}delete members[_0x456b25[_0x0815('0x8')]];}function startsWith(_0x34b746,_0x229719){return _[_0x0815('0x14')](_0x34b746,function(_0x1d8180){return _[_0x0815('0x15')](_0x229719,_0x1d8180);});}exports[_0x0815('0x16')]=function(_0x1eb43d){try{utils[_0x0815('0x17')](util[_0x0815('0x3')]('[%s][members][devicestatechange]',members[_0x1eb43d[_0x0815('0x18')]]?members[_0x1eb43d[_0x0815('0x18')]]['uniqueid']:_0x1eb43d[_0x0815('0x18')]),_0x1eb43d);utils[_0x0815('0x2')](util[_0x0815('0x3')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x1eb43d[_0x0815('0x18')]]?members[_0x1eb43d['device']][_0x0815('0x4')]:_0x1eb43d[_0x0815('0x18')],_0x1eb43d[_0x0815('0x19')],_0x1eb43d[_0x0815('0x18')]));switch(_0x1eb43d[_0x0815('0x19')]){case'INUSE':case'BUSY':if(!startsWith(exclude,_0x1eb43d[_0x0815('0x18')])){members[_0x1eb43d['device']]={'channel':_0x0815('0x1a'),'interface':_0x1eb43d[_0x0815('0x18')],'type':'TALKING','enterAt':utils[_0x0815('0x1b')](),'role':_0x0815('0x1c')};}break;case'NOT_INUSE':if(!_['isNil'](members[_0x1eb43d[_0x0815('0x18')]])){members[_0x1eb43d[_0x0815('0x18')]][_0x0815('0x1d')]=utils['now']();members[_0x1eb43d[_0x0815('0x18')]][_0x0815('0x1e')]=utils['diffTime'](members[_0x1eb43d[_0x0815('0x18')]][_0x0815('0x1d')],members[_0x1eb43d[_0x0815('0x18')]][_0x0815('0x1f')]);if(members[_0x1eb43d[_0x0815('0x18')]]['uniqueid']){writeDB(members[_0x1eb43d[_0x0815('0x18')]]);}}break;default:break;}}catch(_0x3bc37a){utils[_0x0815('0x12')](util[_0x0815('0x3')](_0x0815('0x20'),members[_0x1eb43d['device']]?members[_0x1eb43d[_0x0815('0x18')]]['uniqueid']:_0x1eb43d['device']),_0x3bc37a);}};exports[_0x0815('0x21')]=function(_0x3ae189){try{if(!_[_0x0815('0x22')](members[_0x3ae189[_0x0815('0x8')]])){utils[_0x0815('0x17')](util['format']('[%s][members][agentcomplete]',_0x3ae189[_0x0815('0x4')]),_0x3ae189);utils[_0x0815('0x2')](util['format'](_0x0815('0x23'),_0x3ae189[_0x0815('0x4')],_0x3ae189[_0x0815('0x8')],_0x3ae189['queue']));members[_0x3ae189[_0x0815('0x8')]]=_[_0x0815('0x24')](members[_0x3ae189[_0x0815('0x8')]],{'data4':_0x3ae189[_0x0815('0x25')],'uniqueid':_0x3ae189[_0x0815('0x4')]});}}catch(_0x2d74a1){utils[_0x0815('0x12')](util['format'](_0x0815('0x26'),_0x3ae189['uniqueid']),_0x2d74a1);}};exports['cdr']=function(_0x4c9927){try{utils[_0x0815('0x17')](util[_0x0815('0x3')](_0x0815('0x27'),_0x4c9927['uniqueid']),_0x4c9927);if(_0x4c9927[_0x0815('0x5')]){var _0xab3529=_0x4c9927[_0x0815('0x5')][_0x0815('0x10')]('-')[0x0];if(!_[_0x0815('0x22')](members[_0xab3529])){members[_0xab3529]=_[_0x0815('0x24')](members[_0xab3529],{'data1':members[_0xab3529][_0x0815('0x28')]||_0x4c9927[_0x0815('0x29')],'data2':members[_0xab3529][_0x0815('0x6')]||_0x4c9927[_0x0815('0x2a')],'data3':members[_0xab3529][_0x0815('0x2b')]||_0x4c9927[_0x0815('0x2c')],'uniqueid':members[_0xab3529]['uniqueid']||_0x4c9927[_0x0815('0x4')]});utils[_0x0815('0x2')](util[_0x0815('0x3')](_0x0815('0x2d'),_0x4c9927[_0x0815('0x4')],members[_0xab3529][_0x0815('0x28')],members[_0xab3529][_0x0815('0x6')],members[_0xab3529][_0x0815('0x2b')]));if(members[_0xab3529][_0x0815('0x1d')]){writeDB(members[_0xab3529]);}}}if(_0x4c9927['destinationchannel']){var _0x4d3337=_0x4c9927['destinationchannel']['split']('-')[0x0];if(!_['isNil'](members[_0x4d3337])){members[_0x4d3337]=_[_0x0815('0x24')](members[_0x4d3337],{'data1':members[_0x4d3337][_0x0815('0x28')]||_0x4c9927[_0x0815('0x29')],'data2':members[_0x4d3337][_0x0815('0x6')]||_0x4c9927[_0x0815('0x2a')],'data3':members[_0x4d3337]['data3']||_0x4c9927[_0x0815('0x2c')],'uniqueid':members[_0x4d3337][_0x0815('0x4')]||_0x4c9927['uniqueid']});utils[_0x0815('0x2')](util['format'](_0x0815('0x2d'),_0x4c9927[_0x0815('0x4')],members[_0x4d3337]['data1'],members[_0x4d3337][_0x0815('0x6')],members[_0x4d3337]['data3']));if(members[_0x4d3337][_0x0815('0x1d')]){writeDB(members[_0x4d3337]);}}}}catch(_0x2e5017){utils[_0x0815('0x12')](util['format']('[%s][members][cdr]',_0x4c9927[_0x0815('0x4')]),_0x2e5017);}};