1a9e29603a628296a55f76e08173b5801e0fd5d3
[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 _0x23cd=['request','getUserByName','split','membername','CreateMemberReport','error','format','[%s][members][writeDB]','some','startsWith','devicestatechange','debug','device','state','INUSE','BUSY','voice','TALKING','now','NOT_INUSE','exitAt','duration','diffTime','enterAt','[%s][members][devicestatechange]','isNil','[%s][members][agentcomplete]','assign','queue','[%s][members][cdr]','data1','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','source','data3','destination','util','Local/_attended@transfer','Queue:','info','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','type','getUserByInterface','then','name','internal'];(function(_0x1fc2dd,_0x468741){var _0x281777=function(_0xee61a8){while(--_0xee61a8){_0x1fc2dd['push'](_0x1fc2dd['shift']());}};_0x281777(++_0x468741);}(_0x23cd,0x182));var _0xd23c=function(_0x483043,_0x18c2df){_0x483043=_0x483043-0x0;var _0x7a9f02=_0x23cd[_0x483043];return _0x7a9f02;};'use strict';var _=require('lodash');var util=require(_0xd23c('0x0'));var utils=require('./utils');var members={};var exclude=[_0xd23c('0x1'),_0xd23c('0x2')];function writeDB(_0x40d85a){utils[_0xd23c('0x3')](util['format'](_0xd23c('0x4'),_0x40d85a[_0xd23c('0x5')],_0x40d85a[_0xd23c('0x6')],_0x40d85a[_0xd23c('0x7')],_0x40d85a[_0xd23c('0x8')],_0x40d85a['membername'],_0x40d85a[_0xd23c('0x9')]));if(_0x40d85a[_0xd23c('0x6')]){utils[_0xd23c('0xa')](_0x40d85a['interface'])[_0xd23c('0xb')](function(_0xd070d9){if(_0xd070d9){_0x40d85a['membername']=_0xd070d9[_0xd23c('0xc')];_0x40d85a[_0xd23c('0xd')]=_0xd070d9[_0xd23c('0xd')];utils[_0xd23c('0xe')]('CreateMemberReport',_0x40d85a);}else{utils[_0xd23c('0xf')](_0x40d85a['interface'][_0xd23c('0x10')]('/')[0x1])[_0xd23c('0xb')](function(_0x334f9a){if(_0x334f9a){_0x40d85a[_0xd23c('0x11')]=_0x334f9a['name'];_0x40d85a[_0xd23c('0xd')]=_0x334f9a[_0xd23c('0xd')];utils[_0xd23c('0xe')](_0xd23c('0x12'),_0x40d85a);}});}})['catch'](function(_0x583fba){utils[_0xd23c('0x13')](util[_0xd23c('0x14')](_0xd23c('0x15'),_0x40d85a['uniqueid']),_0x583fba);});}delete members[_0x40d85a[_0xd23c('0x6')]];}function startsWith(_0x44757c,_0x40acc3){return _[_0xd23c('0x16')](_0x44757c,function(_0x6647d8){return _[_0xd23c('0x17')](_0x40acc3,_0x6647d8);});}exports[_0xd23c('0x18')]=function(_0xb4e29){try{utils[_0xd23c('0x19')](util['format']('[%s][members][devicestatechange]',members[_0xb4e29[_0xd23c('0x1a')]]?members[_0xb4e29['device']][_0xd23c('0x5')]:_0xb4e29['device']),_0xb4e29);utils['info'](util['format']('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0xb4e29['device']]?members[_0xb4e29[_0xd23c('0x1a')]][_0xd23c('0x5')]:_0xb4e29[_0xd23c('0x1a')],_0xb4e29[_0xd23c('0x1b')],_0xb4e29[_0xd23c('0x1a')]));switch(_0xb4e29['state']){case _0xd23c('0x1c'):case _0xd23c('0x1d'):if(!startsWith(exclude,_0xb4e29[_0xd23c('0x1a')])){members[_0xb4e29[_0xd23c('0x1a')]]={'channel':_0xd23c('0x1e'),'interface':_0xb4e29['device'],'type':_0xd23c('0x1f'),'enterAt':utils[_0xd23c('0x20')](),'role':'agent'};}break;case _0xd23c('0x21'):if(!_['isNil'](members[_0xb4e29[_0xd23c('0x1a')]])){members[_0xb4e29[_0xd23c('0x1a')]][_0xd23c('0x22')]=utils[_0xd23c('0x20')]();members[_0xb4e29[_0xd23c('0x1a')]][_0xd23c('0x23')]=utils[_0xd23c('0x24')](members[_0xb4e29[_0xd23c('0x1a')]]['exitAt'],members[_0xb4e29[_0xd23c('0x1a')]][_0xd23c('0x25')]);if(members[_0xb4e29[_0xd23c('0x1a')]]['uniqueid']){writeDB(members[_0xb4e29[_0xd23c('0x1a')]]);}}break;default:break;}}catch(_0x5f2e50){utils[_0xd23c('0x13')](util[_0xd23c('0x14')](_0xd23c('0x26'),members[_0xb4e29['device']]?members[_0xb4e29[_0xd23c('0x1a')]][_0xd23c('0x5')]:_0xb4e29[_0xd23c('0x1a')]),_0x5f2e50);}};exports['agentcomplete']=function(_0x36e7ac){try{if(!_[_0xd23c('0x27')](members[_0x36e7ac[_0xd23c('0x6')]])){utils['debug'](util[_0xd23c('0x14')](_0xd23c('0x28'),_0x36e7ac['uniqueid']),_0x36e7ac);utils[_0xd23c('0x3')](util[_0xd23c('0x14')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x36e7ac[_0xd23c('0x5')],_0x36e7ac[_0xd23c('0x6')],_0x36e7ac['queue']));members[_0x36e7ac[_0xd23c('0x6')]]=_[_0xd23c('0x29')](members[_0x36e7ac[_0xd23c('0x6')]],{'data4':_0x36e7ac[_0xd23c('0x2a')],'uniqueid':_0x36e7ac[_0xd23c('0x5')]});}}catch(_0x1b0383){utils[_0xd23c('0x13')](util[_0xd23c('0x14')]('[%s][members][agentcomplete]',_0x36e7ac['uniqueid']),_0x1b0383);}};exports['cdr']=function(_0xc75f0c){try{utils[_0xd23c('0x19')](util[_0xd23c('0x14')](_0xd23c('0x2b'),_0xc75f0c[_0xd23c('0x5')]),_0xc75f0c);if(_0xc75f0c['channel']){var _0x21fcba=_0xc75f0c[_0xd23c('0x7')][_0xd23c('0x10')]('-')[0x0];if(!_['isNil'](members[_0x21fcba])){members[_0x21fcba]=_[_0xd23c('0x29')](members[_0x21fcba],{'data1':members[_0x21fcba][_0xd23c('0x2c')]||_0xc75f0c[_0xd23c('0x9')],'data2':members[_0x21fcba][_0xd23c('0x8')]||_0xc75f0c['source'],'data3':members[_0x21fcba]['data3']||_0xc75f0c['destination'],'uniqueid':members[_0x21fcba][_0xd23c('0x5')]||_0xc75f0c[_0xd23c('0x5')]});utils[_0xd23c('0x3')](util[_0xd23c('0x14')](_0xd23c('0x2d'),_0xc75f0c[_0xd23c('0x5')],members[_0x21fcba][_0xd23c('0x2c')],members[_0x21fcba]['data2'],members[_0x21fcba]['data3']));if(members[_0x21fcba][_0xd23c('0x22')]){writeDB(members[_0x21fcba]);}}}if(_0xc75f0c[_0xd23c('0x2e')]){var _0x9ebe12=_0xc75f0c['destinationchannel'][_0xd23c('0x10')]('-')[0x0];if(!_['isNil'](members[_0x9ebe12])){members[_0x9ebe12]=_['assign'](members[_0x9ebe12],{'data1':members[_0x9ebe12][_0xd23c('0x2c')]||_0xc75f0c[_0xd23c('0x9')],'data2':members[_0x9ebe12]['data2']||_0xc75f0c[_0xd23c('0x2f')],'data3':members[_0x9ebe12][_0xd23c('0x30')]||_0xc75f0c[_0xd23c('0x31')],'uniqueid':members[_0x9ebe12]['uniqueid']||_0xc75f0c[_0xd23c('0x5')]});utils[_0xd23c('0x3')](util['format']('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0xc75f0c[_0xd23c('0x5')],members[_0x9ebe12]['data1'],members[_0x9ebe12]['data2'],members[_0x9ebe12]['data3']));if(members[_0x9ebe12]['exitAt']){writeDB(members[_0x9ebe12]);}}}}catch(_0x4795f3){utils[_0xd23c('0x13')](util[_0xd23c('0x14')](_0xd23c('0x2b'),_0xc75f0c['uniqueid']),_0x4795f3);}};