28b0ccb2a7085d532cc88893c4294d2cbe9503c3
[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 _0xc8fd=['[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','data1','[%s][members][cdr]','util','./utils','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','channel','data2','type','getUserByInterface','interface','then','membername','name','split','request','CreateMemberReport','catch','[%s][members][writeDB]','some','startsWith','devicestatechange','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','now','isNil','exitAt','duration','diffTime','enterAt','error'];(function(_0x7f8164,_0x5b11db){var _0x161404=function(_0x2e17b3){while(--_0x2e17b3){_0x7f8164['push'](_0x7f8164['shift']());}};_0x161404(++_0x5b11db);}(_0xc8fd,0x162));var _0xdc8f=function(_0x11a2b1,_0x43f911){_0x11a2b1=_0x11a2b1-0x0;var _0x53f4d0=_0xc8fd[_0x11a2b1];return _0x53f4d0;};'use strict';var _=require('lodash');var util=require(_0xdc8f('0x0'));var utils=require(_0xdc8f('0x1'));var members={};var exclude=['Local/_attended@transfer',_0xdc8f('0x2')];function writeDB(_0x5020f4){utils[_0xdc8f('0x3')](util[_0xdc8f('0x4')](_0xdc8f('0x5'),_0x5020f4[_0xdc8f('0x6')],_0x5020f4['interface'],_0x5020f4[_0xdc8f('0x7')],_0x5020f4[_0xdc8f('0x8')],_0x5020f4['membername'],_0x5020f4[_0xdc8f('0x9')]));if(_0x5020f4['interface']){utils[_0xdc8f('0xa')](_0x5020f4[_0xdc8f('0xb')])[_0xdc8f('0xc')](function(_0x1641c0){if(_0x1641c0){_0x5020f4[_0xdc8f('0xd')]=_0x1641c0[_0xdc8f('0xe')];_0x5020f4['internal']=_0x1641c0['internal'];utils['request']('CreateMemberReport',_0x5020f4);}else{utils['getUserByName'](_0x5020f4['interface'][_0xdc8f('0xf')]('/')[0x1])[_0xdc8f('0xc')](function(_0x1a7b1e){if(_0x1a7b1e){_0x5020f4[_0xdc8f('0xd')]=_0x1a7b1e[_0xdc8f('0xe')];_0x5020f4['internal']=_0x1a7b1e['internal'];utils[_0xdc8f('0x10')](_0xdc8f('0x11'),_0x5020f4);}});}})[_0xdc8f('0x12')](function(_0x1cc993){utils['error'](util[_0xdc8f('0x4')](_0xdc8f('0x13'),_0x5020f4['uniqueid']),_0x1cc993);});}delete members[_0x5020f4[_0xdc8f('0xb')]];}function startsWith(_0x23b68c,_0x5e49af){return _[_0xdc8f('0x14')](_0x23b68c,function(_0x366b95){return _[_0xdc8f('0x15')](_0x5e49af,_0x366b95);});}exports[_0xdc8f('0x16')]=function(_0xcc167e){try{utils[_0xdc8f('0x17')](util[_0xdc8f('0x4')](_0xdc8f('0x18'),members[_0xcc167e[_0xdc8f('0x19')]]?members[_0xcc167e[_0xdc8f('0x19')]]['uniqueid']:_0xcc167e[_0xdc8f('0x19')]),_0xcc167e);utils['info'](util[_0xdc8f('0x4')](_0xdc8f('0x1a'),members[_0xcc167e[_0xdc8f('0x19')]]?members[_0xcc167e[_0xdc8f('0x19')]][_0xdc8f('0x6')]:_0xcc167e[_0xdc8f('0x19')],_0xcc167e[_0xdc8f('0x1b')],_0xcc167e['device']));switch(_0xcc167e[_0xdc8f('0x1b')]){case _0xdc8f('0x1c'):case _0xdc8f('0x1d'):if(!startsWith(exclude,_0xcc167e[_0xdc8f('0x19')])){members[_0xcc167e[_0xdc8f('0x19')]]={'channel':_0xdc8f('0x1e'),'interface':_0xcc167e[_0xdc8f('0x19')],'type':'TALKING','enterAt':utils[_0xdc8f('0x1f')](),'role':'agent'};}break;case'NOT_INUSE':if(!_[_0xdc8f('0x20')](members[_0xcc167e[_0xdc8f('0x19')]])){members[_0xcc167e['device']][_0xdc8f('0x21')]=utils[_0xdc8f('0x1f')]();members[_0xcc167e[_0xdc8f('0x19')]][_0xdc8f('0x22')]=utils[_0xdc8f('0x23')](members[_0xcc167e[_0xdc8f('0x19')]][_0xdc8f('0x21')],members[_0xcc167e[_0xdc8f('0x19')]][_0xdc8f('0x24')]);if(members[_0xcc167e[_0xdc8f('0x19')]][_0xdc8f('0x6')]){writeDB(members[_0xcc167e[_0xdc8f('0x19')]]);}}break;default:break;}}catch(_0xa7cf77){utils[_0xdc8f('0x25')](util[_0xdc8f('0x4')]('[%s][members][devicestatechange]',members[_0xcc167e['device']]?members[_0xcc167e[_0xdc8f('0x19')]]['uniqueid']:_0xcc167e[_0xdc8f('0x19')]),_0xa7cf77);}};exports['agentcomplete']=function(_0x453b6d){try{if(!_[_0xdc8f('0x20')](members[_0x453b6d[_0xdc8f('0xb')]])){utils[_0xdc8f('0x17')](util[_0xdc8f('0x4')](_0xdc8f('0x26'),_0x453b6d[_0xdc8f('0x6')]),_0x453b6d);utils[_0xdc8f('0x3')](util[_0xdc8f('0x4')](_0xdc8f('0x27'),_0x453b6d[_0xdc8f('0x6')],_0x453b6d[_0xdc8f('0xb')],_0x453b6d[_0xdc8f('0x28')]));members[_0x453b6d[_0xdc8f('0xb')]]=_[_0xdc8f('0x29')](members[_0x453b6d[_0xdc8f('0xb')]],{'data4':_0x453b6d[_0xdc8f('0x28')],'uniqueid':_0x453b6d[_0xdc8f('0x6')]});}}catch(_0x41d348){utils[_0xdc8f('0x25')](util['format']('[%s][members][agentcomplete]',_0x453b6d[_0xdc8f('0x6')]),_0x41d348);}};exports['cdr']=function(_0x147e2c){try{utils[_0xdc8f('0x17')](util[_0xdc8f('0x4')]('[%s][members][cdr]',_0x147e2c[_0xdc8f('0x6')]),_0x147e2c);if(_0x147e2c['channel']){var _0x162c60=_0x147e2c['channel'][_0xdc8f('0xf')]('-')[0x0];if(!_[_0xdc8f('0x20')](members[_0x162c60])){members[_0x162c60]=_[_0xdc8f('0x29')](members[_0x162c60],{'data1':members[_0x162c60]['data1']||_0x147e2c[_0xdc8f('0x9')],'data2':members[_0x162c60][_0xdc8f('0x8')]||_0x147e2c[_0xdc8f('0x2a')],'data3':members[_0x162c60][_0xdc8f('0x2b')]||_0x147e2c[_0xdc8f('0x2c')],'uniqueid':members[_0x162c60][_0xdc8f('0x6')]||_0x147e2c['uniqueid']});utils[_0xdc8f('0x3')](util[_0xdc8f('0x4')](_0xdc8f('0x2d'),_0x147e2c['uniqueid'],members[_0x162c60]['data1'],members[_0x162c60][_0xdc8f('0x8')],members[_0x162c60][_0xdc8f('0x2b')]));if(members[_0x162c60][_0xdc8f('0x21')]){writeDB(members[_0x162c60]);}}}if(_0x147e2c['destinationchannel']){var _0x5d3a69=_0x147e2c[_0xdc8f('0x2e')][_0xdc8f('0xf')]('-')[0x0];if(!_[_0xdc8f('0x20')](members[_0x5d3a69])){members[_0x5d3a69]=_[_0xdc8f('0x29')](members[_0x5d3a69],{'data1':members[_0x5d3a69][_0xdc8f('0x2f')]||_0x147e2c[_0xdc8f('0x9')],'data2':members[_0x5d3a69]['data2']||_0x147e2c[_0xdc8f('0x2a')],'data3':members[_0x5d3a69]['data3']||_0x147e2c['destination'],'uniqueid':members[_0x5d3a69]['uniqueid']||_0x147e2c['uniqueid']});utils['info'](util['format'](_0xdc8f('0x2d'),_0x147e2c[_0xdc8f('0x6')],members[_0x5d3a69][_0xdc8f('0x2f')],members[_0x5d3a69][_0xdc8f('0x8')],members[_0x5d3a69][_0xdc8f('0x2b')]));if(members[_0x5d3a69][_0xdc8f('0x21')]){writeDB(members[_0x5d3a69]);}}}}catch(_0x5cf467){utils[_0xdc8f('0x25')](util['format'](_0xdc8f('0x30'),_0x147e2c[_0xdc8f('0x6')]),_0x5cf467);}};