ccbc40917e4f92d7f21f621767f22775dde827cd
[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 _0x7034=['diffTime','enterAt','isNil','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','debug','[%s][members][cdr]','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','lodash','./utils','Local/_attended@transfer','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername','type','then','request','CreateMemberReport','getUserByName','split','name','internal','catch','error','some','startsWith','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','TALKING','now','agent','NOT_INUSE','exitAt','duration'];(function(_0x45c3d7,_0x3852c7){var _0x3cafb0=function(_0x455e59){while(--_0x455e59){_0x45c3d7['push'](_0x45c3d7['shift']());}};_0x3cafb0(++_0x3852c7);}(_0x7034,0xac));var _0x4703=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x7034[_0x465a0c];return _0x1e202e;};'use strict';var _=require(_0x4703('0x0'));var util=require('util');var utils=require(_0x4703('0x1'));var members={};var exclude=[_0x4703('0x2'),_0x4703('0x3')];function writeDB(_0x4b4c31){utils[_0x4703('0x4')](util[_0x4703('0x5')](_0x4703('0x6'),_0x4b4c31[_0x4703('0x7')],_0x4b4c31[_0x4703('0x8')],_0x4b4c31[_0x4703('0x9')],_0x4b4c31[_0x4703('0xa')],_0x4b4c31[_0x4703('0xb')],_0x4b4c31[_0x4703('0xc')]));if(_0x4b4c31[_0x4703('0x8')]){utils['getUserByInterface'](_0x4b4c31[_0x4703('0x8')])[_0x4703('0xd')](function(_0x3a105e){if(_0x3a105e){_0x4b4c31['membername']=_0x3a105e['name'];_0x4b4c31['internal']=_0x3a105e['internal'];utils[_0x4703('0xe')](_0x4703('0xf'),_0x4b4c31);}else{utils[_0x4703('0x10')](_0x4b4c31[_0x4703('0x8')][_0x4703('0x11')]('/')[0x1])[_0x4703('0xd')](function(_0x1da4b6){if(_0x1da4b6){_0x4b4c31[_0x4703('0xb')]=_0x1da4b6[_0x4703('0x12')];_0x4b4c31['internal']=_0x1da4b6[_0x4703('0x13')];utils[_0x4703('0xe')](_0x4703('0xf'),_0x4b4c31);}});}})[_0x4703('0x14')](function(_0x4c7789){utils[_0x4703('0x15')](util[_0x4703('0x5')]('[%s][members][writeDB]',_0x4b4c31['uniqueid']),_0x4c7789);});}delete members[_0x4b4c31[_0x4703('0x8')]];}function startsWith(_0x591883,_0x5e633b){return _[_0x4703('0x16')](_0x591883,function(_0x3cac8c){return _[_0x4703('0x17')](_0x5e633b,_0x3cac8c);});}exports['devicestatechange']=function(_0x315fdf){try{utils['debug'](util[_0x4703('0x5')](_0x4703('0x18'),members[_0x315fdf[_0x4703('0x19')]]?members[_0x315fdf[_0x4703('0x19')]]['uniqueid']:_0x315fdf['device']),_0x315fdf);utils[_0x4703('0x4')](util['format'](_0x4703('0x1a'),members[_0x315fdf[_0x4703('0x19')]]?members[_0x315fdf['device']][_0x4703('0x7')]:_0x315fdf['device'],_0x315fdf[_0x4703('0x1b')],_0x315fdf[_0x4703('0x19')]));switch(_0x315fdf['state']){case _0x4703('0x1c'):case _0x4703('0x1d'):if(!startsWith(exclude,_0x315fdf['device'])){members[_0x315fdf['device']]={'channel':'voice','interface':_0x315fdf['device'],'type':_0x4703('0x1e'),'enterAt':utils[_0x4703('0x1f')](),'role':_0x4703('0x20')};}break;case _0x4703('0x21'):if(!_['isNil'](members[_0x315fdf[_0x4703('0x19')]])){members[_0x315fdf['device']][_0x4703('0x22')]=utils['now']();members[_0x315fdf[_0x4703('0x19')]][_0x4703('0x23')]=utils[_0x4703('0x24')](members[_0x315fdf['device']][_0x4703('0x22')],members[_0x315fdf['device']][_0x4703('0x25')]);if(members[_0x315fdf[_0x4703('0x19')]][_0x4703('0x7')]){writeDB(members[_0x315fdf[_0x4703('0x19')]]);}}break;default:break;}}catch(_0x25643c){utils[_0x4703('0x15')](util[_0x4703('0x5')](_0x4703('0x18'),members[_0x315fdf[_0x4703('0x19')]]?members[_0x315fdf[_0x4703('0x19')]][_0x4703('0x7')]:_0x315fdf['device']),_0x25643c);}};exports['agentcomplete']=function(_0x3bc4e7){try{if(!_[_0x4703('0x26')](members[_0x3bc4e7[_0x4703('0x8')]])){utils['debug'](util[_0x4703('0x5')](_0x4703('0x27'),_0x3bc4e7[_0x4703('0x7')]),_0x3bc4e7);utils['info'](util[_0x4703('0x5')](_0x4703('0x28'),_0x3bc4e7[_0x4703('0x7')],_0x3bc4e7[_0x4703('0x8')],_0x3bc4e7[_0x4703('0x29')]));members[_0x3bc4e7[_0x4703('0x8')]]=_[_0x4703('0x2a')](members[_0x3bc4e7['interface']],{'data4':_0x3bc4e7['queue'],'uniqueid':_0x3bc4e7[_0x4703('0x7')]});}}catch(_0x41b365){utils[_0x4703('0x15')](util['format'](_0x4703('0x27'),_0x3bc4e7[_0x4703('0x7')]),_0x41b365);}};exports[_0x4703('0x2b')]=function(_0x268042){try{utils[_0x4703('0x2c')](util[_0x4703('0x5')](_0x4703('0x2d'),_0x268042[_0x4703('0x7')]),_0x268042);if(_0x268042[_0x4703('0x9')]){var _0x4f484e=_0x268042[_0x4703('0x9')][_0x4703('0x11')]('-')[0x0];if(!_['isNil'](members[_0x4f484e])){members[_0x4f484e]=_[_0x4703('0x2a')](members[_0x4f484e],{'data1':members[_0x4f484e][_0x4703('0x2e')]||_0x268042['type'],'data2':members[_0x4f484e][_0x4703('0xa')]||_0x268042[_0x4703('0x2f')],'data3':members[_0x4f484e][_0x4703('0x30')]||_0x268042[_0x4703('0x31')],'uniqueid':members[_0x4f484e][_0x4703('0x7')]||_0x268042[_0x4703('0x7')]});utils[_0x4703('0x4')](util[_0x4703('0x5')](_0x4703('0x32'),_0x268042[_0x4703('0x7')],members[_0x4f484e][_0x4703('0x2e')],members[_0x4f484e]['data2'],members[_0x4f484e][_0x4703('0x30')]));if(members[_0x4f484e][_0x4703('0x22')]){writeDB(members[_0x4f484e]);}}}if(_0x268042['destinationchannel']){var _0x12910c=_0x268042[_0x4703('0x33')]['split']('-')[0x0];if(!_[_0x4703('0x26')](members[_0x12910c])){members[_0x12910c]=_[_0x4703('0x2a')](members[_0x12910c],{'data1':members[_0x12910c][_0x4703('0x2e')]||_0x268042[_0x4703('0xc')],'data2':members[_0x12910c][_0x4703('0xa')]||_0x268042[_0x4703('0x2f')],'data3':members[_0x12910c][_0x4703('0x30')]||_0x268042[_0x4703('0x31')],'uniqueid':members[_0x12910c][_0x4703('0x7')]||_0x268042[_0x4703('0x7')]});utils[_0x4703('0x4')](util[_0x4703('0x5')](_0x4703('0x32'),_0x268042[_0x4703('0x7')],members[_0x12910c][_0x4703('0x2e')],members[_0x12910c]['data2'],members[_0x12910c][_0x4703('0x30')]));if(members[_0x12910c][_0x4703('0x22')]){writeDB(members[_0x12910c]);}}}}catch(_0x2effd4){utils['error'](util[_0x4703('0x5')](_0x4703('0x2d'),_0x268042['uniqueid']),_0x2effd4);}};