Built motion from commit 85328c08.|2.5.50
[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 _0xce92=['source','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data2','data3','destinationchannel','lodash','./utils','Local/_attended@transfer','Queue:','info','format','channel','membername','type','interface','getUserByInterface','then','internal','getUserByName','split','name','request','CreateMemberReport','catch','error','[%s][members][writeDB]','uniqueid','some','devicestatechange','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','BUSY','TALKING','now','agent','NOT_INUSE','exitAt','enterAt','agentcomplete','isNil','[%s][members][agentcomplete]','queue','assign','data1'];(function(_0x538e11,_0x3c01f2){var _0xebfb03=function(_0x34f22f){while(--_0x34f22f){_0x538e11['push'](_0x538e11['shift']());}};_0xebfb03(++_0x3c01f2);}(_0xce92,0x186));var _0x2ce9=function(_0x5e1f24,_0x442000){_0x5e1f24=_0x5e1f24-0x0;var _0x53823d=_0xce92[_0x5e1f24];return _0x53823d;};'use strict';var _=require(_0x2ce9('0x0'));var util=require('util');var utils=require(_0x2ce9('0x1'));var members={};var exclude=[_0x2ce9('0x2'),_0x2ce9('0x3')];function writeDB(_0x203ff1){utils[_0x2ce9('0x4')](util[_0x2ce9('0x5')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x203ff1['uniqueid'],_0x203ff1['interface'],_0x203ff1[_0x2ce9('0x6')],_0x203ff1['data2'],_0x203ff1[_0x2ce9('0x7')],_0x203ff1[_0x2ce9('0x8')]));if(_0x203ff1[_0x2ce9('0x9')]){utils[_0x2ce9('0xa')](_0x203ff1[_0x2ce9('0x9')])[_0x2ce9('0xb')](function(_0xd1c721){if(_0xd1c721){_0x203ff1[_0x2ce9('0x7')]=_0xd1c721['name'];_0x203ff1[_0x2ce9('0xc')]=_0xd1c721[_0x2ce9('0xc')];utils['request']('CreateMemberReport',_0x203ff1);}else{utils[_0x2ce9('0xd')](_0x203ff1[_0x2ce9('0x9')][_0x2ce9('0xe')]('/')[0x1])[_0x2ce9('0xb')](function(_0x5b29f2){if(_0x5b29f2){_0x203ff1[_0x2ce9('0x7')]=_0x5b29f2[_0x2ce9('0xf')];_0x203ff1[_0x2ce9('0xc')]=_0x5b29f2[_0x2ce9('0xc')];utils[_0x2ce9('0x10')](_0x2ce9('0x11'),_0x203ff1);}});}})[_0x2ce9('0x12')](function(_0x589f20){utils[_0x2ce9('0x13')](util[_0x2ce9('0x5')](_0x2ce9('0x14'),_0x203ff1[_0x2ce9('0x15')]),_0x589f20);});}delete members[_0x203ff1[_0x2ce9('0x9')]];}function startsWith(_0x27841d,_0x5c9432){return _[_0x2ce9('0x16')](_0x27841d,function(_0x270828){return _['startsWith'](_0x5c9432,_0x270828);});}exports[_0x2ce9('0x17')]=function(_0x528818){try{utils[_0x2ce9('0x18')](util[_0x2ce9('0x5')](_0x2ce9('0x19'),members[_0x528818['device']]?members[_0x528818['device']]['uniqueid']:_0x528818[_0x2ce9('0x1a')]),_0x528818);utils['info'](util['format'](_0x2ce9('0x1b'),members[_0x528818['device']]?members[_0x528818[_0x2ce9('0x1a')]][_0x2ce9('0x15')]:_0x528818[_0x2ce9('0x1a')],_0x528818[_0x2ce9('0x1c')],_0x528818[_0x2ce9('0x1a')]));switch(_0x528818[_0x2ce9('0x1c')]){case'INUSE':case _0x2ce9('0x1d'):if(!startsWith(exclude,_0x528818[_0x2ce9('0x1a')])){members[_0x528818['device']]={'channel':'voice','interface':_0x528818[_0x2ce9('0x1a')],'type':_0x2ce9('0x1e'),'enterAt':utils[_0x2ce9('0x1f')](),'role':_0x2ce9('0x20')};}break;case _0x2ce9('0x21'):if(!_['isNil'](members[_0x528818[_0x2ce9('0x1a')]])){members[_0x528818['device']][_0x2ce9('0x22')]=utils['now']();members[_0x528818[_0x2ce9('0x1a')]]['duration']=utils['diffTime'](members[_0x528818[_0x2ce9('0x1a')]][_0x2ce9('0x22')],members[_0x528818[_0x2ce9('0x1a')]][_0x2ce9('0x23')]);if(members[_0x528818[_0x2ce9('0x1a')]][_0x2ce9('0x15')]){writeDB(members[_0x528818[_0x2ce9('0x1a')]]);}}break;default:break;}}catch(_0x4bc703){utils[_0x2ce9('0x13')](util[_0x2ce9('0x5')](_0x2ce9('0x19'),members[_0x528818[_0x2ce9('0x1a')]]?members[_0x528818['device']][_0x2ce9('0x15')]:_0x528818['device']),_0x4bc703);}};exports[_0x2ce9('0x24')]=function(_0x335a49){try{if(!_[_0x2ce9('0x25')](members[_0x335a49['interface']])){utils[_0x2ce9('0x18')](util['format'](_0x2ce9('0x26'),_0x335a49[_0x2ce9('0x15')]),_0x335a49);utils['info'](util[_0x2ce9('0x5')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x335a49['uniqueid'],_0x335a49[_0x2ce9('0x9')],_0x335a49[_0x2ce9('0x27')]));members[_0x335a49[_0x2ce9('0x9')]]=_['assign'](members[_0x335a49['interface']],{'data4':_0x335a49[_0x2ce9('0x27')],'uniqueid':_0x335a49[_0x2ce9('0x15')]});}}catch(_0x1b7424){utils[_0x2ce9('0x13')](util['format'](_0x2ce9('0x26'),_0x335a49[_0x2ce9('0x15')]),_0x1b7424);}};exports['cdr']=function(_0x4c8a7d){try{utils[_0x2ce9('0x18')](util[_0x2ce9('0x5')]('[%s][members][cdr]',_0x4c8a7d[_0x2ce9('0x15')]),_0x4c8a7d);if(_0x4c8a7d[_0x2ce9('0x6')]){var _0x265955=_0x4c8a7d[_0x2ce9('0x6')]['split']('-')[0x0];if(!_['isNil'](members[_0x265955])){members[_0x265955]=_[_0x2ce9('0x28')](members[_0x265955],{'data1':members[_0x265955][_0x2ce9('0x29')]||_0x4c8a7d[_0x2ce9('0x8')],'data2':members[_0x265955]['data2']||_0x4c8a7d[_0x2ce9('0x2a')],'data3':members[_0x265955]['data3']||_0x4c8a7d[_0x2ce9('0x2b')],'uniqueid':members[_0x265955]['uniqueid']||_0x4c8a7d[_0x2ce9('0x15')]});utils[_0x2ce9('0x4')](util[_0x2ce9('0x5')](_0x2ce9('0x2c'),_0x4c8a7d[_0x2ce9('0x15')],members[_0x265955][_0x2ce9('0x29')],members[_0x265955][_0x2ce9('0x2d')],members[_0x265955][_0x2ce9('0x2e')]));if(members[_0x265955][_0x2ce9('0x22')]){writeDB(members[_0x265955]);}}}if(_0x4c8a7d['destinationchannel']){var _0x20e61a=_0x4c8a7d[_0x2ce9('0x2f')]['split']('-')[0x0];if(!_[_0x2ce9('0x25')](members[_0x20e61a])){members[_0x20e61a]=_[_0x2ce9('0x28')](members[_0x20e61a],{'data1':members[_0x20e61a][_0x2ce9('0x29')]||_0x4c8a7d[_0x2ce9('0x8')],'data2':members[_0x20e61a]['data2']||_0x4c8a7d[_0x2ce9('0x2a')],'data3':members[_0x20e61a]['data3']||_0x4c8a7d['destination'],'uniqueid':members[_0x20e61a]['uniqueid']||_0x4c8a7d[_0x2ce9('0x15')]});utils[_0x2ce9('0x4')](util['format'](_0x2ce9('0x2c'),_0x4c8a7d[_0x2ce9('0x15')],members[_0x20e61a][_0x2ce9('0x29')],members[_0x20e61a][_0x2ce9('0x2d')],members[_0x20e61a][_0x2ce9('0x2e')]));if(members[_0x20e61a]['exitAt']){writeDB(members[_0x20e61a]);}}}}catch(_0x43bbe5){utils['error'](util[_0x2ce9('0x5')]('[%s][members][cdr]',_0x4c8a7d[_0x2ce9('0x15')]),_0x43bbe5);}};