Built motion from commit 497d3d92.|2.5.43
[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 _0xd33b=['util','Local/_attended@transfer','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','interface','channel','data2','membername','then','name','internal','CreateMemberReport','getUserByName','split','request','catch','[%s][members][writeDB]','uniqueid','startsWith','debug','[%s][members][devicestatechange]','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','now','agent','NOT_INUSE','isNil','duration','diffTime','exitAt','enterAt','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','error','cdr','[%s][members][cdr]','data1','type','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','lodash'];(function(_0x51c129,_0x58c2b3){var _0x5176dc=function(_0x37aef9){while(--_0x37aef9){_0x51c129['push'](_0x51c129['shift']());}};_0x5176dc(++_0x58c2b3);}(_0xd33b,0x1af));var _0xbd33=function(_0x1ce881,_0x179522){_0x1ce881=_0x1ce881-0x0;var _0x69db6b=_0xd33b[_0x1ce881];return _0x69db6b;};'use strict';var _=require(_0xbd33('0x0'));var util=require(_0xbd33('0x1'));var utils=require('./utils');var members={};var exclude=[_0xbd33('0x2'),'Queue:'];function writeDB(_0x51c467){utils['info'](util[_0xbd33('0x3')](_0xbd33('0x4'),_0x51c467['uniqueid'],_0x51c467[_0xbd33('0x5')],_0x51c467[_0xbd33('0x6')],_0x51c467[_0xbd33('0x7')],_0x51c467[_0xbd33('0x8')],_0x51c467['type']));if(_0x51c467[_0xbd33('0x5')]){utils['getUserByInterface'](_0x51c467[_0xbd33('0x5')])[_0xbd33('0x9')](function(_0x281b82){if(_0x281b82){_0x51c467[_0xbd33('0x8')]=_0x281b82[_0xbd33('0xa')];_0x51c467[_0xbd33('0xb')]=_0x281b82[_0xbd33('0xb')];utils['request'](_0xbd33('0xc'),_0x51c467);}else{utils[_0xbd33('0xd')](_0x51c467['interface'][_0xbd33('0xe')]('/')[0x1])[_0xbd33('0x9')](function(_0x26da18){if(_0x26da18){_0x51c467['membername']=_0x26da18[_0xbd33('0xa')];_0x51c467[_0xbd33('0xb')]=_0x26da18[_0xbd33('0xb')];utils[_0xbd33('0xf')](_0xbd33('0xc'),_0x51c467);}});}})[_0xbd33('0x10')](function(_0xf28355){utils['error'](util[_0xbd33('0x3')](_0xbd33('0x11'),_0x51c467[_0xbd33('0x12')]),_0xf28355);});}delete members[_0x51c467['interface']];}function startsWith(_0x5130a0,_0x576356){return _['some'](_0x5130a0,function(_0x3f5964){return _[_0xbd33('0x13')](_0x576356,_0x3f5964);});}exports['devicestatechange']=function(_0x296391){try{utils[_0xbd33('0x14')](util['format'](_0xbd33('0x15'),members[_0x296391[_0xbd33('0x16')]]?members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x12')]:_0x296391['device']),_0x296391);utils[_0xbd33('0x17')](util[_0xbd33('0x3')](_0xbd33('0x18'),members[_0x296391[_0xbd33('0x16')]]?members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x12')]:_0x296391['device'],_0x296391['state'],_0x296391['device']));switch(_0x296391[_0xbd33('0x19')]){case _0xbd33('0x1a'):case'BUSY':if(!startsWith(exclude,_0x296391['device'])){members[_0x296391['device']]={'channel':'voice','interface':_0x296391[_0xbd33('0x16')],'type':'TALKING','enterAt':utils[_0xbd33('0x1b')](),'role':_0xbd33('0x1c')};}break;case _0xbd33('0x1d'):if(!_[_0xbd33('0x1e')](members[_0x296391[_0xbd33('0x16')]])){members[_0x296391['device']]['exitAt']=utils[_0xbd33('0x1b')]();members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x1f')]=utils[_0xbd33('0x20')](members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x21')],members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x22')]);if(members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x12')]){writeDB(members[_0x296391['device']]);}}break;default:break;}}catch(_0x5d51ab){utils['error'](util[_0xbd33('0x3')](_0xbd33('0x15'),members[_0x296391[_0xbd33('0x16')]]?members[_0x296391[_0xbd33('0x16')]][_0xbd33('0x12')]:_0x296391[_0xbd33('0x16')]),_0x5d51ab);}};exports['agentcomplete']=function(_0x30848c){try{if(!_[_0xbd33('0x1e')](members[_0x30848c[_0xbd33('0x5')]])){utils[_0xbd33('0x14')](util[_0xbd33('0x3')](_0xbd33('0x23'),_0x30848c['uniqueid']),_0x30848c);utils['info'](util['format'](_0xbd33('0x24'),_0x30848c['uniqueid'],_0x30848c[_0xbd33('0x5')],_0x30848c[_0xbd33('0x25')]));members[_0x30848c[_0xbd33('0x5')]]=_[_0xbd33('0x26')](members[_0x30848c['interface']],{'data4':_0x30848c[_0xbd33('0x25')],'uniqueid':_0x30848c[_0xbd33('0x12')]});}}catch(_0x52eeda){utils[_0xbd33('0x27')](util['format'](_0xbd33('0x23'),_0x30848c[_0xbd33('0x12')]),_0x52eeda);}};exports[_0xbd33('0x28')]=function(_0x2aba2c){try{utils[_0xbd33('0x14')](util['format'](_0xbd33('0x29'),_0x2aba2c['uniqueid']),_0x2aba2c);if(_0x2aba2c[_0xbd33('0x6')]){var _0x3c04d6=_0x2aba2c[_0xbd33('0x6')][_0xbd33('0xe')]('-')[0x0];if(!_[_0xbd33('0x1e')](members[_0x3c04d6])){members[_0x3c04d6]=_[_0xbd33('0x26')](members[_0x3c04d6],{'data1':members[_0x3c04d6][_0xbd33('0x2a')]||_0x2aba2c[_0xbd33('0x2b')],'data2':members[_0x3c04d6][_0xbd33('0x7')]||_0x2aba2c[_0xbd33('0x2c')],'data3':members[_0x3c04d6][_0xbd33('0x2d')]||_0x2aba2c[_0xbd33('0x2e')],'uniqueid':members[_0x3c04d6][_0xbd33('0x12')]||_0x2aba2c['uniqueid']});utils[_0xbd33('0x17')](util[_0xbd33('0x3')](_0xbd33('0x2f'),_0x2aba2c[_0xbd33('0x12')],members[_0x3c04d6]['data1'],members[_0x3c04d6][_0xbd33('0x7')],members[_0x3c04d6][_0xbd33('0x2d')]));if(members[_0x3c04d6][_0xbd33('0x21')]){writeDB(members[_0x3c04d6]);}}}if(_0x2aba2c['destinationchannel']){var _0x459aed=_0x2aba2c['destinationchannel']['split']('-')[0x0];if(!_[_0xbd33('0x1e')](members[_0x459aed])){members[_0x459aed]=_[_0xbd33('0x26')](members[_0x459aed],{'data1':members[_0x459aed][_0xbd33('0x2a')]||_0x2aba2c[_0xbd33('0x2b')],'data2':members[_0x459aed]['data2']||_0x2aba2c[_0xbd33('0x2c')],'data3':members[_0x459aed][_0xbd33('0x2d')]||_0x2aba2c[_0xbd33('0x2e')],'uniqueid':members[_0x459aed][_0xbd33('0x12')]||_0x2aba2c[_0xbd33('0x12')]});utils[_0xbd33('0x17')](util[_0xbd33('0x3')](_0xbd33('0x2f'),_0x2aba2c['uniqueid'],members[_0x459aed][_0xbd33('0x2a')],members[_0x459aed]['data2'],members[_0x459aed][_0xbd33('0x2d')]));if(members[_0x459aed][_0xbd33('0x21')]){writeDB(members[_0x459aed]);}}}}catch(_0x2fee2b){utils[_0xbd33('0x27')](util[_0xbd33('0x3')]('[%s][members][cdr]',_0x2aba2c[_0xbd33('0x12')]),_0x2fee2b);}};