d1ab7d0e69792cb7293a2def8e9daf8cf756c6cc
[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 _0x6a17=['now','agent','NOT_INUSE','exitAt','duration','enterAt','agentcomplete','isNil','[%s][members][agentcomplete]','queue','assign','cdr','debug','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','destinationchannel','[%s][members][cdr]','lodash','util','./utils','Local/_attended@transfer','Queue:','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','type','getUserByInterface','membername','name','internal','request','getUserByName','split','then','CreateMemberReport','catch','error','some','startsWith','[%s][members][devicestatechange]','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','voice'];(function(_0x3ad6c3,_0x2f99a7){var _0x4123b9=function(_0x1824ad){while(--_0x1824ad){_0x3ad6c3['push'](_0x3ad6c3['shift']());}};_0x4123b9(++_0x2f99a7);}(_0x6a17,0x1e8));var _0x76a1=function(_0x7d653b,_0x3f3341){_0x7d653b=_0x7d653b-0x0;var _0x3a30e7=_0x6a17[_0x7d653b];return _0x3a30e7;};'use strict';var _=require(_0x76a1('0x0'));var util=require(_0x76a1('0x1'));var utils=require(_0x76a1('0x2'));var members={};var exclude=[_0x76a1('0x3'),_0x76a1('0x4')];function writeDB(_0x171415){utils['info'](util[_0x76a1('0x5')](_0x76a1('0x6'),_0x171415[_0x76a1('0x7')],_0x171415[_0x76a1('0x8')],_0x171415[_0x76a1('0x9')],_0x171415[_0x76a1('0xa')],_0x171415['membername'],_0x171415[_0x76a1('0xb')]));if(_0x171415[_0x76a1('0x8')]){utils[_0x76a1('0xc')](_0x171415['interface'])['then'](function(_0x286f7e){if(_0x286f7e){_0x171415[_0x76a1('0xd')]=_0x286f7e[_0x76a1('0xe')];_0x171415[_0x76a1('0xf')]=_0x286f7e['internal'];utils[_0x76a1('0x10')]('CreateMemberReport',_0x171415);}else{utils[_0x76a1('0x11')](_0x171415[_0x76a1('0x8')][_0x76a1('0x12')]('/')[0x1])[_0x76a1('0x13')](function(_0x4e5fb2){if(_0x4e5fb2){_0x171415['membername']=_0x4e5fb2['name'];_0x171415['internal']=_0x4e5fb2['internal'];utils[_0x76a1('0x10')](_0x76a1('0x14'),_0x171415);}});}})[_0x76a1('0x15')](function(_0x3be788){utils[_0x76a1('0x16')](util[_0x76a1('0x5')]('[%s][members][writeDB]',_0x171415['uniqueid']),_0x3be788);});}delete members[_0x171415[_0x76a1('0x8')]];}function startsWith(_0x2885b0,_0x1942d3){return _[_0x76a1('0x17')](_0x2885b0,function(_0x36fd74){return _[_0x76a1('0x18')](_0x1942d3,_0x36fd74);});}exports['devicestatechange']=function(_0x3a243e){try{utils['debug'](util[_0x76a1('0x5')](_0x76a1('0x19'),members[_0x3a243e[_0x76a1('0x1a')]]?members[_0x3a243e['device']]['uniqueid']:_0x3a243e[_0x76a1('0x1a')]),_0x3a243e);utils[_0x76a1('0x1b')](util['format'](_0x76a1('0x1c'),members[_0x3a243e[_0x76a1('0x1a')]]?members[_0x3a243e[_0x76a1('0x1a')]]['uniqueid']:_0x3a243e[_0x76a1('0x1a')],_0x3a243e[_0x76a1('0x1d')],_0x3a243e[_0x76a1('0x1a')]));switch(_0x3a243e['state']){case _0x76a1('0x1e'):case'BUSY':if(!startsWith(exclude,_0x3a243e[_0x76a1('0x1a')])){members[_0x3a243e['device']]={'channel':_0x76a1('0x1f'),'interface':_0x3a243e[_0x76a1('0x1a')],'type':'TALKING','enterAt':utils[_0x76a1('0x20')](),'role':_0x76a1('0x21')};}break;case _0x76a1('0x22'):if(!_['isNil'](members[_0x3a243e[_0x76a1('0x1a')]])){members[_0x3a243e['device']][_0x76a1('0x23')]=utils[_0x76a1('0x20')]();members[_0x3a243e[_0x76a1('0x1a')]][_0x76a1('0x24')]=utils['diffTime'](members[_0x3a243e[_0x76a1('0x1a')]][_0x76a1('0x23')],members[_0x3a243e[_0x76a1('0x1a')]][_0x76a1('0x25')]);if(members[_0x3a243e[_0x76a1('0x1a')]][_0x76a1('0x7')]){writeDB(members[_0x3a243e[_0x76a1('0x1a')]]);}}break;default:break;}}catch(_0x1dff36){utils[_0x76a1('0x16')](util[_0x76a1('0x5')](_0x76a1('0x19'),members[_0x3a243e[_0x76a1('0x1a')]]?members[_0x3a243e['device']][_0x76a1('0x7')]:_0x3a243e[_0x76a1('0x1a')]),_0x1dff36);}};exports[_0x76a1('0x26')]=function(_0x2d4edd){try{if(!_[_0x76a1('0x27')](members[_0x2d4edd[_0x76a1('0x8')]])){utils['debug'](util[_0x76a1('0x5')](_0x76a1('0x28'),_0x2d4edd[_0x76a1('0x7')]),_0x2d4edd);utils[_0x76a1('0x1b')](util[_0x76a1('0x5')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x2d4edd[_0x76a1('0x7')],_0x2d4edd[_0x76a1('0x8')],_0x2d4edd[_0x76a1('0x29')]));members[_0x2d4edd[_0x76a1('0x8')]]=_[_0x76a1('0x2a')](members[_0x2d4edd[_0x76a1('0x8')]],{'data4':_0x2d4edd['queue'],'uniqueid':_0x2d4edd[_0x76a1('0x7')]});}}catch(_0x44b72c){utils['error'](util['format']('[%s][members][agentcomplete]',_0x2d4edd['uniqueid']),_0x44b72c);}};exports[_0x76a1('0x2b')]=function(_0x5330e5){try{utils[_0x76a1('0x2c')](util[_0x76a1('0x5')]('[%s][members][cdr]',_0x5330e5['uniqueid']),_0x5330e5);if(_0x5330e5[_0x76a1('0x9')]){var _0x35b6a4=_0x5330e5[_0x76a1('0x9')]['split']('-')[0x0];if(!_[_0x76a1('0x27')](members[_0x35b6a4])){members[_0x35b6a4]=_['assign'](members[_0x35b6a4],{'data1':members[_0x35b6a4]['data1']||_0x5330e5['type'],'data2':members[_0x35b6a4][_0x76a1('0xa')]||_0x5330e5[_0x76a1('0x2d')],'data3':members[_0x35b6a4][_0x76a1('0x2e')]||_0x5330e5[_0x76a1('0x2f')],'uniqueid':members[_0x35b6a4][_0x76a1('0x7')]||_0x5330e5[_0x76a1('0x7')]});utils['info'](util[_0x76a1('0x5')](_0x76a1('0x30'),_0x5330e5[_0x76a1('0x7')],members[_0x35b6a4][_0x76a1('0x31')],members[_0x35b6a4][_0x76a1('0xa')],members[_0x35b6a4]['data3']));if(members[_0x35b6a4][_0x76a1('0x23')]){writeDB(members[_0x35b6a4]);}}}if(_0x5330e5[_0x76a1('0x32')]){var _0x422efa=_0x5330e5['destinationchannel'][_0x76a1('0x12')]('-')[0x0];if(!_[_0x76a1('0x27')](members[_0x422efa])){members[_0x422efa]=_[_0x76a1('0x2a')](members[_0x422efa],{'data1':members[_0x422efa][_0x76a1('0x31')]||_0x5330e5[_0x76a1('0xb')],'data2':members[_0x422efa][_0x76a1('0xa')]||_0x5330e5['source'],'data3':members[_0x422efa][_0x76a1('0x2e')]||_0x5330e5[_0x76a1('0x2f')],'uniqueid':members[_0x422efa][_0x76a1('0x7')]||_0x5330e5[_0x76a1('0x7')]});utils[_0x76a1('0x1b')](util[_0x76a1('0x5')](_0x76a1('0x30'),_0x5330e5[_0x76a1('0x7')],members[_0x422efa][_0x76a1('0x31')],members[_0x422efa][_0x76a1('0xa')],members[_0x422efa][_0x76a1('0x2e')]));if(members[_0x422efa][_0x76a1('0x23')]){writeDB(members[_0x422efa]);}}}}catch(_0x5e9e72){utils[_0x76a1('0x16')](util[_0x76a1('0x5')](_0x76a1('0x33'),_0x5330e5['uniqueid']),_0x5e9e72);}};