73b51665e014648018fbc65103a8515343a13b7c
[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 _0x2180=['debug','[%s][members][devicestatechange]','device','info','format','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','voice','TALKING','agent','exitAt','now','duration','diffTime','[%s][members][agentcomplete]','queue','cdr','[%s][members][cdr]','isNil','assign','data1','source','destination','data3','destinationchannel','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','util','Queue:','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername','getUserByInterface','then','internal','request','CreateMemberReport','split','name','error','[%s][members][writeDB]','some','startsWith','devicestatechange'];(function(_0x1639be,_0x4ac980){var _0x4af3e1=function(_0x1a24cb){while(--_0x1a24cb){_0x1639be['push'](_0x1639be['shift']());}};_0x4af3e1(++_0x4ac980);}(_0x2180,0xa0));var _0x0218=function(_0x5f4cd7,_0x459c44){_0x5f4cd7=_0x5f4cd7-0x0;var _0x47c93f=_0x2180[_0x5f4cd7];return _0x47c93f;};'use strict';var _=require('lodash');var util=require(_0x0218('0x0'));var utils=require('./utils');var members={};var exclude=['Local/_attended@transfer',_0x0218('0x1')];function writeDB(_0x272626){utils['info'](util['format'](_0x0218('0x2'),_0x272626[_0x0218('0x3')],_0x272626[_0x0218('0x4')],_0x272626[_0x0218('0x5')],_0x272626[_0x0218('0x6')],_0x272626[_0x0218('0x7')],_0x272626['type']));if(_0x272626['interface']){utils[_0x0218('0x8')](_0x272626[_0x0218('0x4')])[_0x0218('0x9')](function(_0x169ef0){if(_0x169ef0){_0x272626[_0x0218('0x7')]=_0x169ef0['name'];_0x272626['internal']=_0x169ef0[_0x0218('0xa')];utils[_0x0218('0xb')](_0x0218('0xc'),_0x272626);}else{utils['getUserByName'](_0x272626[_0x0218('0x4')][_0x0218('0xd')]('/')[0x1])[_0x0218('0x9')](function(_0x2931ed){if(_0x2931ed){_0x272626[_0x0218('0x7')]=_0x2931ed[_0x0218('0xe')];_0x272626[_0x0218('0xa')]=_0x2931ed[_0x0218('0xa')];utils['request'](_0x0218('0xc'),_0x272626);}});}})['catch'](function(_0x8a9131){utils[_0x0218('0xf')](util['format'](_0x0218('0x10'),_0x272626[_0x0218('0x3')]),_0x8a9131);});}delete members[_0x272626[_0x0218('0x4')]];}function startsWith(_0x5707bf,_0x43d2c8){return _[_0x0218('0x11')](_0x5707bf,function(_0x3beaf5){return _[_0x0218('0x12')](_0x43d2c8,_0x3beaf5);});}exports[_0x0218('0x13')]=function(_0x1436d4){try{utils[_0x0218('0x14')](util['format'](_0x0218('0x15'),members[_0x1436d4['device']]?members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x3')]:_0x1436d4[_0x0218('0x16')]),_0x1436d4);utils[_0x0218('0x17')](util[_0x0218('0x18')](_0x0218('0x19'),members[_0x1436d4['device']]?members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x3')]:_0x1436d4['device'],_0x1436d4['state'],_0x1436d4[_0x0218('0x16')]));switch(_0x1436d4['state']){case'INUSE':case'BUSY':if(!startsWith(exclude,_0x1436d4['device'])){members[_0x1436d4[_0x0218('0x16')]]={'channel':_0x0218('0x1a'),'interface':_0x1436d4['device'],'type':_0x0218('0x1b'),'enterAt':utils['now'](),'role':_0x0218('0x1c')};}break;case'NOT_INUSE':if(!_['isNil'](members[_0x1436d4['device']])){members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x1d')]=utils[_0x0218('0x1e')]();members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x1f')]=utils[_0x0218('0x20')](members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x1d')],members[_0x1436d4[_0x0218('0x16')]]['enterAt']);if(members[_0x1436d4[_0x0218('0x16')]]['uniqueid']){writeDB(members[_0x1436d4[_0x0218('0x16')]]);}}break;default:break;}}catch(_0x41624a){utils[_0x0218('0xf')](util[_0x0218('0x18')](_0x0218('0x15'),members[_0x1436d4['device']]?members[_0x1436d4[_0x0218('0x16')]][_0x0218('0x3')]:_0x1436d4[_0x0218('0x16')]),_0x41624a);}};exports['agentcomplete']=function(_0x4d80ac){try{if(!_['isNil'](members[_0x4d80ac[_0x0218('0x4')]])){utils[_0x0218('0x14')](util['format'](_0x0218('0x21'),_0x4d80ac[_0x0218('0x3')]),_0x4d80ac);utils['info'](util[_0x0218('0x18')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x4d80ac['uniqueid'],_0x4d80ac['interface'],_0x4d80ac[_0x0218('0x22')]));members[_0x4d80ac[_0x0218('0x4')]]=_['assign'](members[_0x4d80ac[_0x0218('0x4')]],{'data4':_0x4d80ac[_0x0218('0x22')],'uniqueid':_0x4d80ac['uniqueid']});}}catch(_0x44539e){utils[_0x0218('0xf')](util[_0x0218('0x18')]('[%s][members][agentcomplete]',_0x4d80ac[_0x0218('0x3')]),_0x44539e);}};exports[_0x0218('0x23')]=function(_0x21c992){try{utils[_0x0218('0x14')](util['format'](_0x0218('0x24'),_0x21c992[_0x0218('0x3')]),_0x21c992);if(_0x21c992[_0x0218('0x5')]){var _0xa78a99=_0x21c992['channel'][_0x0218('0xd')]('-')[0x0];if(!_[_0x0218('0x25')](members[_0xa78a99])){members[_0xa78a99]=_[_0x0218('0x26')](members[_0xa78a99],{'data1':members[_0xa78a99][_0x0218('0x27')]||_0x21c992['type'],'data2':members[_0xa78a99][_0x0218('0x6')]||_0x21c992[_0x0218('0x28')],'data3':members[_0xa78a99]['data3']||_0x21c992[_0x0218('0x29')],'uniqueid':members[_0xa78a99][_0x0218('0x3')]||_0x21c992[_0x0218('0x3')]});utils[_0x0218('0x17')](util[_0x0218('0x18')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x21c992[_0x0218('0x3')],members[_0xa78a99]['data1'],members[_0xa78a99]['data2'],members[_0xa78a99][_0x0218('0x2a')]));if(members[_0xa78a99][_0x0218('0x1d')]){writeDB(members[_0xa78a99]);}}}if(_0x21c992['destinationchannel']){var _0x497227=_0x21c992[_0x0218('0x2b')][_0x0218('0xd')]('-')[0x0];if(!_[_0x0218('0x25')](members[_0x497227])){members[_0x497227]=_[_0x0218('0x26')](members[_0x497227],{'data1':members[_0x497227][_0x0218('0x27')]||_0x21c992['type'],'data2':members[_0x497227][_0x0218('0x6')]||_0x21c992[_0x0218('0x28')],'data3':members[_0x497227][_0x0218('0x2a')]||_0x21c992[_0x0218('0x29')],'uniqueid':members[_0x497227]['uniqueid']||_0x21c992['uniqueid']});utils[_0x0218('0x17')](util['format'](_0x0218('0x2c'),_0x21c992[_0x0218('0x3')],members[_0x497227]['data1'],members[_0x497227][_0x0218('0x6')],members[_0x497227][_0x0218('0x2a')]));if(members[_0x497227][_0x0218('0x1d')]){writeDB(members[_0x497227]);}}}}catch(_0x1ae710){utils[_0x0218('0xf')](util['format'](_0x0218('0x24'),_0x21c992[_0x0218('0x3')]),_0x1ae710);}};