Built motion from commit 44377920.|2.6.11
[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 _0xa0e7=['debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','TALKING','now','agent','NOT_INUSE','isNil','duration','diffTime','exitAt','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign','queue','[%s][members][agentcomplete]','cdr','[%s][members][cdr]','channel','data1','data3','destination','info','destinationchannel','source','lodash','util','Local/_attended@transfer','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','data2','membername','type','interface','getUserByInterface','name','internal','request','CreateMemberReport','getUserByName','split','then','catch','error','format','[%s][members][writeDB]','uniqueid','startsWith'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xa0e7,0xaa));var _0x7a0e=function(_0x4bc42a,_0x50056a){_0x4bc42a=_0x4bc42a-0x0;var _0x57287a=_0xa0e7[_0x4bc42a];return _0x57287a;};'use strict';var _=require(_0x7a0e('0x0'));var util=require(_0x7a0e('0x1'));var utils=require('./utils');var members={};var exclude=[_0x7a0e('0x2'),'Queue:'];function writeDB(_0x7a2f30){utils['info'](util['format'](_0x7a0e('0x3'),_0x7a2f30['uniqueid'],_0x7a2f30['interface'],_0x7a2f30['channel'],_0x7a2f30[_0x7a0e('0x4')],_0x7a2f30[_0x7a0e('0x5')],_0x7a2f30[_0x7a0e('0x6')]));if(_0x7a2f30[_0x7a0e('0x7')]){utils[_0x7a0e('0x8')](_0x7a2f30['interface'])['then'](function(_0x17b670){if(_0x17b670){_0x7a2f30['membername']=_0x17b670[_0x7a0e('0x9')];_0x7a2f30[_0x7a0e('0xa')]=_0x17b670[_0x7a0e('0xa')];utils[_0x7a0e('0xb')](_0x7a0e('0xc'),_0x7a2f30);}else{utils[_0x7a0e('0xd')](_0x7a2f30[_0x7a0e('0x7')][_0x7a0e('0xe')]('/')[0x1])[_0x7a0e('0xf')](function(_0x40ada9){if(_0x40ada9){_0x7a2f30[_0x7a0e('0x5')]=_0x40ada9[_0x7a0e('0x9')];_0x7a2f30['internal']=_0x40ada9[_0x7a0e('0xa')];utils['request'](_0x7a0e('0xc'),_0x7a2f30);}});}})[_0x7a0e('0x10')](function(_0x25b29d){utils[_0x7a0e('0x11')](util[_0x7a0e('0x12')](_0x7a0e('0x13'),_0x7a2f30[_0x7a0e('0x14')]),_0x25b29d);});}delete members[_0x7a2f30[_0x7a0e('0x7')]];}function startsWith(_0x1f9c5d,_0x1a127b){return _['some'](_0x1f9c5d,function(_0x47257b){return _[_0x7a0e('0x15')](_0x1a127b,_0x47257b);});}exports['devicestatechange']=function(_0x489c0c){try{utils[_0x7a0e('0x16')](util[_0x7a0e('0x12')](_0x7a0e('0x17'),members[_0x489c0c['device']]?members[_0x489c0c[_0x7a0e('0x18')]][_0x7a0e('0x14')]:_0x489c0c['device']),_0x489c0c);utils['info'](util[_0x7a0e('0x12')](_0x7a0e('0x19'),members[_0x489c0c[_0x7a0e('0x18')]]?members[_0x489c0c[_0x7a0e('0x18')]][_0x7a0e('0x14')]:_0x489c0c[_0x7a0e('0x18')],_0x489c0c[_0x7a0e('0x1a')],_0x489c0c['device']));switch(_0x489c0c[_0x7a0e('0x1a')]){case'INUSE':case'BUSY':if(!startsWith(exclude,_0x489c0c['device'])){members[_0x489c0c[_0x7a0e('0x18')]]={'channel':'voice','interface':_0x489c0c[_0x7a0e('0x18')],'type':_0x7a0e('0x1b'),'enterAt':utils[_0x7a0e('0x1c')](),'role':_0x7a0e('0x1d')};}break;case _0x7a0e('0x1e'):if(!_[_0x7a0e('0x1f')](members[_0x489c0c[_0x7a0e('0x18')]])){members[_0x489c0c['device']]['exitAt']=utils[_0x7a0e('0x1c')]();members[_0x489c0c[_0x7a0e('0x18')]][_0x7a0e('0x20')]=utils[_0x7a0e('0x21')](members[_0x489c0c['device']][_0x7a0e('0x22')],members[_0x489c0c[_0x7a0e('0x18')]]['enterAt']);if(members[_0x489c0c[_0x7a0e('0x18')]][_0x7a0e('0x14')]){writeDB(members[_0x489c0c[_0x7a0e('0x18')]]);}}break;default:break;}}catch(_0x10e209){utils['error'](util['format']('[%s][members][devicestatechange]',members[_0x489c0c[_0x7a0e('0x18')]]?members[_0x489c0c[_0x7a0e('0x18')]][_0x7a0e('0x14')]:_0x489c0c[_0x7a0e('0x18')]),_0x10e209);}};exports['agentcomplete']=function(_0x5c2db5){try{if(!_[_0x7a0e('0x1f')](members[_0x5c2db5['interface']])){utils['debug'](util['format']('[%s][members][agentcomplete]',_0x5c2db5[_0x7a0e('0x14')]),_0x5c2db5);utils['info'](util[_0x7a0e('0x12')](_0x7a0e('0x23'),_0x5c2db5[_0x7a0e('0x14')],_0x5c2db5[_0x7a0e('0x7')],_0x5c2db5['queue']));members[_0x5c2db5['interface']]=_[_0x7a0e('0x24')](members[_0x5c2db5[_0x7a0e('0x7')]],{'data4':_0x5c2db5[_0x7a0e('0x25')],'uniqueid':_0x5c2db5[_0x7a0e('0x14')]});}}catch(_0x378640){utils[_0x7a0e('0x11')](util[_0x7a0e('0x12')](_0x7a0e('0x26'),_0x5c2db5[_0x7a0e('0x14')]),_0x378640);}};exports[_0x7a0e('0x27')]=function(_0x60e55c){try{utils[_0x7a0e('0x16')](util['format'](_0x7a0e('0x28'),_0x60e55c[_0x7a0e('0x14')]),_0x60e55c);if(_0x60e55c[_0x7a0e('0x29')]){var _0x4c348c=_0x60e55c['channel'][_0x7a0e('0xe')]('-')[0x0];if(!_[_0x7a0e('0x1f')](members[_0x4c348c])){members[_0x4c348c]=_[_0x7a0e('0x24')](members[_0x4c348c],{'data1':members[_0x4c348c][_0x7a0e('0x2a')]||_0x60e55c[_0x7a0e('0x6')],'data2':members[_0x4c348c][_0x7a0e('0x4')]||_0x60e55c['source'],'data3':members[_0x4c348c][_0x7a0e('0x2b')]||_0x60e55c[_0x7a0e('0x2c')],'uniqueid':members[_0x4c348c][_0x7a0e('0x14')]||_0x60e55c[_0x7a0e('0x14')]});utils[_0x7a0e('0x2d')](util[_0x7a0e('0x12')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x60e55c[_0x7a0e('0x14')],members[_0x4c348c][_0x7a0e('0x2a')],members[_0x4c348c][_0x7a0e('0x4')],members[_0x4c348c][_0x7a0e('0x2b')]));if(members[_0x4c348c][_0x7a0e('0x22')]){writeDB(members[_0x4c348c]);}}}if(_0x60e55c[_0x7a0e('0x2e')]){var _0x133f5e=_0x60e55c['destinationchannel'][_0x7a0e('0xe')]('-')[0x0];if(!_[_0x7a0e('0x1f')](members[_0x133f5e])){members[_0x133f5e]=_[_0x7a0e('0x24')](members[_0x133f5e],{'data1':members[_0x133f5e][_0x7a0e('0x2a')]||_0x60e55c['type'],'data2':members[_0x133f5e][_0x7a0e('0x4')]||_0x60e55c[_0x7a0e('0x2f')],'data3':members[_0x133f5e]['data3']||_0x60e55c['destination'],'uniqueid':members[_0x133f5e]['uniqueid']||_0x60e55c[_0x7a0e('0x14')]});utils[_0x7a0e('0x2d')](util[_0x7a0e('0x12')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x60e55c[_0x7a0e('0x14')],members[_0x133f5e][_0x7a0e('0x2a')],members[_0x133f5e][_0x7a0e('0x4')],members[_0x133f5e][_0x7a0e('0x2b')]));if(members[_0x133f5e][_0x7a0e('0x22')]){writeDB(members[_0x133f5e]);}}}}catch(_0x3a27b1){utils[_0x7a0e('0x11')](util['format']('[%s][members][cdr]',_0x60e55c[_0x7a0e('0x14')]),_0x3a27b1);}};