8038de87059ccf2680a816ad17ea2cfe90926b0a
[motion2.git] / server / services / xdr / calls.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 _0x4682=['calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','endtime','starttime','diffTime','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','_attended','origtransfererchannel','destinationchannel','userfield','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','variable','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','queue','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','application','appdata','toLowerCase','startsWith','cdr','substring','lastIndexOf','noop','execif','gotoif','lodash','util','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','uniqueid','newchannel','debug','[%s][calls][newchannel]','channel','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','toNumber','hangup','[%s][calls][hangup]','callerid'];(function(_0x4e2d7f,_0x3c6173){var _0x3f7f62=function(_0x46b40a){while(--_0x46b40a){_0x4e2d7f['push'](_0x4e2d7f['shift']());}};_0x3f7f62(++_0x3c6173);}(_0x4682,0x17d));var _0x2468=function(_0x1147ab,_0x10e72b){_0x1147ab=_0x1147ab-0x0;var _0x55cb5a=_0x4682[_0x1147ab];return _0x55cb5a;};'use strict';var _=require(_0x2468('0x0'));var util=require(_0x2468('0x1'));var utils=require('./utils');var dispositions=[_0x2468('0x2'),'FAILED',_0x2468('0x3'),_0x2468('0x2'),_0x2468('0x2'),_0x2468('0x2'),_0x2468('0x4'),_0x2468('0x5'),_0x2468('0x3'),'FAILED',_0x2468('0x3')];var channels={};function writeDB(_0x4b9dd4){utils[_0x2468('0x6')](util[_0x2468('0x7')](_0x2468('0x8'),_0x4b9dd4['uniqueid'],_0x4b9dd4['channel'],_0x4b9dd4['queue'],_0x4b9dd4[_0x2468('0x9')],_0x4b9dd4[_0x2468('0xa')],_0x4b9dd4[_0x2468('0xb')],_0x4b9dd4[_0x2468('0xc')],_0x4b9dd4[_0x2468('0xd')]));if(_0x4b9dd4[_0x2468('0xe')]){utils[_0x2468('0xf')](_0x4b9dd4[_0x2468('0xe')])[_0x2468('0x10')](function(_0xd959e7){if(_0xd959e7){_0x4b9dd4['UserId']=_0xd959e7['id'];}utils[_0x2468('0x11')](_0x2468('0x12'),_0x4b9dd4);});}else{utils[_0x2468('0x11')](_0x2468('0x12'),_0x4b9dd4);}if(channels[_0x4b9dd4[_0x2468('0x13')]]){delete channels[_0x4b9dd4['uniqueid']];}}exports[_0x2468('0x14')]=function(_0x46fe41){try{utils[_0x2468('0x15')](util['format'](_0x2468('0x16'),_0x46fe41[_0x2468('0x13')]),_0x46fe41);if(_0x46fe41[_0x2468('0x13')]==_0x46fe41['linkedid']&&_0x46fe41[_0x2468('0x17')]!='OutgoingSpoolFailed'){utils['info'](util[_0x2468('0x7')](_0x2468('0x18'),_0x46fe41[_0x2468('0x13')],_0x46fe41[_0x2468('0x19')],_0x46fe41[_0x2468('0x1a')]));channels[_0x46fe41[_0x2468('0x13')]]={'uniqueid':_0x46fe41['uniqueid'],'accountcode':_0x46fe41['accountcode'],'source':_0x46fe41[_0x2468('0xb')],'destination':_0x46fe41[_0x2468('0x1a')],'destinationcontext':_0x46fe41[_0x2468('0x19')],'channel':_0x46fe41[_0x2468('0x17')],'starttime':utils[_0x2468('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x2468('0x1c')};}}catch(_0x3eb5f4){utils[_0x2468('0x1d')](util[_0x2468('0x7')](_0x2468('0x16'),_0x46fe41['uniqueid']),_0x3eb5f4);}};exports['newstate']=function(_0x339341){try{utils[_0x2468('0x15')](util[_0x2468('0x7')](_0x2468('0x1e'),_0x339341[_0x2468('0x13')]),_0x339341);if(!_[_0x2468('0x1f')](channels[_0x339341[_0x2468('0x13')]])&&_0x339341[_0x2468('0x20')]==0x6){utils[_0x2468('0x6')](util[_0x2468('0x7')](_0x2468('0x21'),_0x339341[_0x2468('0x13')],_0x339341[_0x2468('0x19')],_0x339341[_0x2468('0x17')]));if(_['isNil'](channels[_0x339341[_0x2468('0x13')]]['systemanswertime'])){channels[_0x339341[_0x2468('0x13')]][_0x2468('0x22')]=utils[_0x2468('0x1b')]();}}else if(!_[_0x2468('0x1f')](channels[_0x339341[_0x2468('0x23')]])&&_0x339341['channelstate']==0x6&&_0x339341[_0x2468('0x19')]!=_0x2468('0x24')){utils[_0x2468('0x6')](util[_0x2468('0x7')](_0x2468('0x25'),_0x339341['uniqueid'],_0x339341[_0x2468('0x23')],_0x339341[_0x2468('0x19')],_0x339341[_0x2468('0x17')]));channels[_0x339341[_0x2468('0x23')]][_0x2468('0xe')]=_0x339341[_0x2468('0xe')];channels[_0x339341[_0x2468('0x23')]]['destinationchannel']=_0x339341['channel'];if(_[_0x2468('0x1f')](channels[_0x339341[_0x2468('0x23')]][_0x2468('0x26')])){channels[_0x339341[_0x2468('0x23')]][_0x2468('0x26')]=utils['now']();}channels[_0x339341[_0x2468('0x23')]]['disposition']=dispositions[_[_0x2468('0x27')](_0x339341[_0x2468('0x20')])]||_0x2468('0x4');}}catch(_0x158d54){utils[_0x2468('0x1d')](util[_0x2468('0x7')]('[%s][calls][newstate]',_0x339341[_0x2468('0x13')]),_0x158d54);}};exports[_0x2468('0x28')]=function(_0x520a38){try{if(!_[_0x2468('0x1f')](channels[_0x520a38[_0x2468('0x13')]])){utils[_0x2468('0x15')](util[_0x2468('0x7')](_0x2468('0x29'),_0x520a38['uniqueid']),_0x520a38);if(_[_0x2468('0x1f')](channels[_0x520a38[_0x2468('0x13')]][_0x2468('0x2a')])){channels[_0x520a38[_0x2468('0x13')]][_0x2468('0x2a')]=_0x520a38[_0x2468('0x2b')]+'\x20<'+_0x520a38['calleridnum']+'>';}utils[_0x2468('0x6')](util['format'](_0x2468('0x2c'),_0x520a38[_0x2468('0x13')],channels[_0x520a38['uniqueid']][_0x2468('0x2a')],_0x520a38[_0x2468('0x2d')]));channels[_0x520a38[_0x2468('0x13')]]['endtime']=utils[_0x2468('0x1b')]();channels[_0x520a38[_0x2468('0x13')]][_0x2468('0x2e')]=utils['diffTime'](channels[_0x520a38['uniqueid']][_0x2468('0x2f')],channels[_0x520a38[_0x2468('0x13')]][_0x2468('0x30')]);channels[_0x520a38[_0x2468('0x13')]]['billableseconds']=channels[_0x520a38[_0x2468('0x13')]]['answertime']?utils[_0x2468('0x31')](channels[_0x520a38[_0x2468('0x13')]][_0x2468('0x2f')],channels[_0x520a38[_0x2468('0x13')]]['answertime']):0x0;writeDB(channels[_0x520a38[_0x2468('0x13')]]);}}catch(_0x5c1d6d){utils[_0x2468('0x1d')](util[_0x2468('0x7')](_0x2468('0x29'),_0x520a38[_0x2468('0x13')]),_0x5c1d6d);}};exports['attendedtransfer']=function(_0xf548c5){try{if(!_[_0x2468('0x1f')](channels[_0xf548c5[_0x2468('0x32')]])){utils[_0x2468('0x15')](util[_0x2468('0x7')](_0x2468('0x33'),_0xf548c5['origtransfereruniqueid']),_0xf548c5);if(channels[_0xf548c5['localtwolinkedid']][_0x2468('0x17')]==_0xf548c5[_0x2468('0x34')]){utils[_0x2468('0x6')](util['format'](_0x2468('0x35'),_0xf548c5[_0x2468('0x36')],_0xf548c5[_0x2468('0x32')],_0xf548c5[_0x2468('0x37')]));channels[_0xf548c5[_0x2468('0x32')]]['destinationchannel']=_0xf548c5[_0x2468('0x37')];channels[_0xf548c5['localtwolinkedid']]['userfield']=_0x2468('0x38');}else if(channels[_0xf548c5[_0x2468('0x32')]]['channel']=_0xf548c5['transfertargetchannel']){utils[_0x2468('0x6')](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xf548c5[_0x2468('0x36')],_0xf548c5[_0x2468('0x32')],_0xf548c5[_0x2468('0x39')]));channels[_0xf548c5[_0x2468('0x32')]][_0x2468('0x3a')]=_0xf548c5[_0x2468('0x39')];channels[_0xf548c5['localtwolinkedid']][_0x2468('0x3b')]=_0x2468('0x38');}}}catch(_0x388e94){utils[_0x2468('0x1d')](util[_0x2468('0x7')](_0x2468('0x33'),_0xf548c5[_0x2468('0x36')]),_0x388e94);}};exports[_0x2468('0x3c')]=function(_0x5e4b74){try{if(!_[_0x2468('0x1f')](channels[_0x5e4b74[_0x2468('0x13')]])){utils[_0x2468('0x15')](util[_0x2468('0x7')](_0x2468('0x3d'),_0x5e4b74[_0x2468('0x13')]),_0x5e4b74);channels[_0x5e4b74['uniqueid']][_0x2468('0x3e')]=utils['now']();utils[_0x2468('0x6')](util['format'](_0x2468('0x3f'),_0x5e4b74[_0x2468('0x13')],channels[_0x5e4b74[_0x2468('0x13')]][_0x2468('0x3e')]));}}catch(_0x267842){utils[_0x2468('0x1d')](util[_0x2468('0x7')](_0x2468('0x3d'),_0x5e4b74[_0x2468('0x13')]),_0x267842);}};exports[_0x2468('0x40')]=function(_0x4ba6a8){try{if(!_[_0x2468('0x1f')](channels[_0x4ba6a8[_0x2468('0x13')]])){utils[_0x2468('0x15')](util[_0x2468('0x7')]('[%s][calls][musiconholdstop]',_0x4ba6a8[_0x2468('0x13')]),_0x4ba6a8);if(!_['isNil'](channels[_0x4ba6a8[_0x2468('0x13')]][_0x2468('0x3e')])){channels[_0x4ba6a8['uniqueid']]['mohtime']+=utils[_0x2468('0x31')](utils[_0x2468('0x1b')](),channels[_0x4ba6a8[_0x2468('0x13')]]['musiconholdstartAt']);utils['info'](util[_0x2468('0x7')](_0x2468('0x41'),_0x4ba6a8[_0x2468('0x13')],channels[_0x4ba6a8[_0x2468('0x13')]][_0x2468('0x42')]));delete channels[_0x4ba6a8[_0x2468('0x13')]][_0x2468('0x3e')];}}}catch(_0x4e3d0c){utils['error'](util[_0x2468('0x7')](_0x2468('0x43'),_0x4ba6a8[_0x2468('0x13')]),_0x4e3d0c);}};exports[_0x2468('0x44')]=function(_0x592654){try{if(!_[_0x2468('0x1f')](channels[_0x592654['uniqueid']])){utils['debug'](util[_0x2468('0x7')](_0x2468('0x45'),_0x592654[_0x2468('0x13')]),_0x592654);if(!_[_0x2468('0x1f')](_0x592654['variable'][_0x2468('0x46')])){utils['info'](util[_0x2468('0x7')](_0x2468('0x47'),_0x592654[_0x2468('0x13')],_0x592654[_0x2468('0x48')]));channels[_0x592654[_0x2468('0x13')]]['source']=_0x592654['value'];}if(!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x4a')])){utils[_0x2468('0x6')](util[_0x2468('0x7')](_0x2468('0x4b'),_0x592654[_0x2468('0x13')],_0x592654[_0x2468('0x48')]));channels[_0x592654['uniqueid']][_0x2468('0x4c')]=_0x592654[_0x2468('0x48')];channels[_0x592654[_0x2468('0x13')]][_0x2468('0x2a')]='\x22'+_0x592654[_0x2468('0x48')]+'\x22\x20<'+_0x592654[_0x2468('0x48')]+'>';}if(!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x4d')])||!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x4e')])){utils[_0x2468('0x6')](util[_0x2468('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x592654['uniqueid'],!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')]['xmd-callerid-preview'])?_0x2468('0x4d'):_0x2468('0x4e'),_0x592654[_0x2468('0x48')]));channels[_0x592654[_0x2468('0x13')]][_0x2468('0x2a')]=_0x592654['value'];}if(!_['isNil'](_0x592654[_0x2468('0x49')][_0x2468('0x4f')])||!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x50')])){utils[_0x2468('0x6')](util[_0x2468('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x592654['uniqueid'],!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x4f')])?_0x2468('0x4f'):_0x2468('0x50'),_0x592654[_0x2468('0x48')]));channels[_0x592654['uniqueid']][_0x2468('0x51')]=_0x2468('0x52');channels[_0x592654[_0x2468('0x13')]][_0x2468('0x53')]=_0x592654[_0x2468('0x48')];channels[_0x592654[_0x2468('0x13')]][_0x2468('0x54')]=!![];}if(!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')]['xmd-contactid'])){utils[_0x2468('0x6')](util['format'](_0x2468('0x55'),_0x592654[_0x2468('0x13')],_0x592654[_0x2468('0x48')]));channels[_0x592654[_0x2468('0x13')]][_0x2468('0x56')]=_0x592654[_0x2468('0x48')];}if(!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x57')])){utils[_0x2468('0x6')](util['format'](_0x2468('0x58'),_0x592654['uniqueid'],_0x592654[_0x2468('0x48')]));channels[_0x592654[_0x2468('0x13')]][_0x2468('0x59')]=_0x592654['value'];}if(!_[_0x2468('0x1f')](_0x592654[_0x2468('0x49')][_0x2468('0x5a')])){utils[_0x2468('0x6')](util[_0x2468('0x7')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x592654[_0x2468('0x13')],_0x592654['value']));channels[_0x592654['uniqueid']][_0x2468('0x5b')]=_0x592654[_0x2468('0x48')];}if(!_[_0x2468('0x1f')](_0x592654['variable'][_0x2468('0x5c')])){utils['info'](util[_0x2468('0x7')](_0x2468('0x5d'),_0x592654['uniqueid'],_0x592654[_0x2468('0x48')]));channels[_0x592654[_0x2468('0x13')]][_0x2468('0x5c')]=_0x592654[_0x2468('0x48')];}}}catch(_0x3833c5){utils[_0x2468('0x1d')](util[_0x2468('0x7')]('[%s][calls][varset]',_0x592654[_0x2468('0x13')]),_0x3833c5);}};exports[_0x2468('0x5e')]=function(_0x2f06d6){try{if(!_['isNil'](channels[_0x2f06d6['uniqueid']])){utils[_0x2468('0x15')](util[_0x2468('0x7')](_0x2468('0x5f'),_0x2f06d6['uniqueid']),_0x2f06d6);utils[_0x2468('0x6')](util[_0x2468('0x7')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x2f06d6['uniqueid'],_0x2f06d6[_0x2468('0x60')],_0x2f06d6[_0x2468('0x61')]));if(_0x2f06d6[_0x2468('0x60')][_0x2468('0x62')]()=='set'&&_[_0x2468('0x63')](_0x2f06d6[_0x2468('0x61')][_0x2468('0x62')](),_0x2468('0x64'))){var _0x20bd41=_0x2f06d6[_0x2468('0x61')]['split']('=');var _0x327739=_0x20bd41[0x0][_0x2468('0x65')](_0x20bd41[0x0]['lastIndexOf']('(')+0x1,_0x20bd41[0x0][_0x2468('0x66')](')'));var _0x2236ea=_0x20bd41[0x1];channels[_0x2f06d6['uniqueid']][_0x327739]=_0x2236ea;}if(!_['includes']([_0x2468('0x28'),_0x2468('0x67'),_0x2468('0x68'),'set',_0x2468('0x69')],_0x2f06d6[_0x2468('0x60')]['toLowerCase']())){channels[_0x2f06d6[_0x2468('0x13')]][_0x2468('0x51')]=_0x2f06d6[_0x2468('0x60')];channels[_0x2f06d6[_0x2468('0x13')]][_0x2468('0x53')]=_0x2f06d6['appdata'];}}}catch(_0x264805){utils[_0x2468('0x1d')](util[_0x2468('0x7')](_0x2468('0x5f'),_0x2f06d6[_0x2468('0x13')]),_0x264805);}};