05f7ca3a82df0f53519cdc94e561eaa2ae0b1fad
[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 _0xb2b4=['uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','connectedlinenum','lastevent','accountcode','UserId','request','CreateVoiceCallReport','recording','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','error','newstate','[%s][calls][newstate]','channelstate','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','calleridnum','cause-txt','endtime','duration','diffTime','attendedtransfer','localtwolinkedid','debug','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','xmd-contactid','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds'];(function(_0xed53c8,_0x4d7d40){var _0x3a75f9=function(_0x2b9b3f){while(--_0x2b9b3f){_0xed53c8['push'](_0xed53c8['shift']());}};_0x3a75f9(++_0x4d7d40);}(_0xb2b4,0x141));var _0x4b2b=function(_0x59b439,_0x14ae7b){_0x59b439=_0x59b439-0x0;var _0x521ea3=_0xb2b4[_0x59b439];return _0x521ea3;};'use strict';var _=require(_0x4b2b('0x0'));var util=require(_0x4b2b('0x1'));var utils=require(_0x4b2b('0x2'));var transfers=require(_0x4b2b('0x3'));var dispositions=[_0x4b2b('0x4'),'FAILED',_0x4b2b('0x5'),_0x4b2b('0x4'),_0x4b2b('0x4'),_0x4b2b('0x4'),_0x4b2b('0x6'),_0x4b2b('0x7'),_0x4b2b('0x5'),_0x4b2b('0x5'),_0x4b2b('0x5')];var channels={};function writeDB(_0x232106){var _0x4f2596;if(transfers[_0x4b2b('0x8')][_0x232106[_0x4b2b('0x9')]]){_0x4f2596=_0x232106[_0x4b2b('0x9')];_0x232106['uniqueid']=transfers[_0x4b2b('0x8')][_0x232106[_0x4b2b('0x9')]][_0x4b2b('0xa')];}utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0xd'),_0x232106['uniqueid'],_0x232106[_0x4b2b('0xe')],_0x232106[_0x4b2b('0xf')],_0x232106[_0x4b2b('0x10')],_0x232106[_0x4b2b('0x11')],_0x232106['calleridnum'],_0x232106[_0x4b2b('0x12')],_0x232106[_0x4b2b('0x13')]));if(_0x232106[_0x4b2b('0x14')]){utils['getUserByInternal'](_0x232106[_0x4b2b('0x14')])['then'](function(_0x904f80){if(_0x904f80){_0x232106[_0x4b2b('0x15')]=_0x904f80['id'];}utils[_0x4b2b('0x16')](_0x4b2b('0x17'),_0x232106);});}else{utils[_0x4b2b('0x16')](_0x4b2b('0x17'),_0x232106);}if(channels[_0x232106['uniqueid']]){delete channels[_0x232106[_0x4b2b('0x9')]];}else if(_0x4f2596&&channels[_0x4f2596]){if(!transfers[_0x4b2b('0x8')][_0x4f2596][_0x4b2b('0x18')])delete transfers[_0x4b2b('0x8')][_0x4f2596];delete channels[_0x4f2596];}}exports[_0x4b2b('0x19')]=function(_0x18611d){try{utils['debug'](util[_0x4b2b('0xc')](_0x4b2b('0x1a'),_0x18611d[_0x4b2b('0x9')]),_0x18611d);if(_0x18611d[_0x4b2b('0x9')]==_0x18611d[_0x4b2b('0x1b')]&&_0x18611d[_0x4b2b('0xe')]!=_0x4b2b('0x1c')){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x1d'),_0x18611d['uniqueid'],_0x18611d[_0x4b2b('0x1e')],_0x18611d['exten']));channels[_0x18611d[_0x4b2b('0x9')]]={'uniqueid':_0x18611d[_0x4b2b('0x9')],'accountcode':_0x18611d[_0x4b2b('0x14')],'source':_0x18611d['calleridnum'],'destination':_0x18611d[_0x4b2b('0x1f')],'destinationcontext':_0x18611d['context'],'channel':_0x18611d[_0x4b2b('0xe')],'starttime':utils[_0x4b2b('0x20')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x4b2b('0x4'),'amaflags':'DOCUMENTATION'};}}catch(_0x24f538){utils[_0x4b2b('0x21')](util[_0x4b2b('0xc')](_0x4b2b('0x1a'),_0x18611d[_0x4b2b('0x9')]),_0x24f538);}};exports[_0x4b2b('0x22')]=function(_0x30bba8){try{utils['debug'](util[_0x4b2b('0xc')](_0x4b2b('0x23'),_0x30bba8[_0x4b2b('0x9')]),_0x30bba8);if(!_['isNil'](channels[_0x30bba8[_0x4b2b('0x9')]])&&_0x30bba8[_0x4b2b('0x24')]==0x6){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x30bba8[_0x4b2b('0x9')],_0x30bba8['context'],_0x30bba8['channel']));if(_[_0x4b2b('0x25')](channels[_0x30bba8[_0x4b2b('0x9')]]['systemanswertime'])){channels[_0x30bba8[_0x4b2b('0x9')]][_0x4b2b('0x26')]=utils[_0x4b2b('0x20')]();}}else if(!_[_0x4b2b('0x25')](channels[_0x30bba8[_0x4b2b('0x1b')]])&&_0x30bba8['channelstate']==0x6&&_0x30bba8[_0x4b2b('0x1e')]!=_0x4b2b('0x27')){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x28'),_0x30bba8[_0x4b2b('0x9')],_0x30bba8['linkedid'],_0x30bba8[_0x4b2b('0x1e')],_0x30bba8[_0x4b2b('0xe')]));channels[_0x30bba8[_0x4b2b('0x1b')]][_0x4b2b('0x14')]=_0x30bba8[_0x4b2b('0x14')];channels[_0x30bba8[_0x4b2b('0x1b')]]['destinationchannel']=_0x30bba8[_0x4b2b('0xe')];if(_[_0x4b2b('0x25')](channels[_0x30bba8[_0x4b2b('0x1b')]][_0x4b2b('0x29')])){channels[_0x30bba8[_0x4b2b('0x1b')]][_0x4b2b('0x29')]=utils[_0x4b2b('0x20')]();}channels[_0x30bba8['linkedid']][_0x4b2b('0x2a')]=dispositions[_[_0x4b2b('0x2b')](_0x30bba8[_0x4b2b('0x24')])]||_0x4b2b('0x6');}}catch(_0x419ce5){utils['error'](util[_0x4b2b('0xc')](_0x4b2b('0x23'),_0x30bba8[_0x4b2b('0x9')]),_0x419ce5);}};exports[_0x4b2b('0x2c')]=function(_0x3d18ff){try{if(!_[_0x4b2b('0x25')](channels[_0x3d18ff['uniqueid']])){utils['debug'](util[_0x4b2b('0xc')](_0x4b2b('0x2d'),_0x3d18ff['uniqueid']),_0x3d18ff);if(_[_0x4b2b('0x25')](channels[_0x3d18ff['uniqueid']][_0x4b2b('0x2e')])){channels[_0x3d18ff[_0x4b2b('0x9')]]['callerid']=_0x3d18ff[_0x4b2b('0x2f')]+'\x20<'+_0x3d18ff[_0x4b2b('0x30')]+'>';}utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x3d18ff['uniqueid'],channels[_0x3d18ff[_0x4b2b('0x9')]][_0x4b2b('0x2e')],_0x3d18ff[_0x4b2b('0x31')]));channels[_0x3d18ff['uniqueid']][_0x4b2b('0x32')]=utils[_0x4b2b('0x20')]();channels[_0x3d18ff[_0x4b2b('0x9')]][_0x4b2b('0x33')]=utils['diffTime'](channels[_0x3d18ff[_0x4b2b('0x9')]][_0x4b2b('0x32')],channels[_0x3d18ff[_0x4b2b('0x9')]]['starttime']);channels[_0x3d18ff['uniqueid']]['billableseconds']=channels[_0x3d18ff[_0x4b2b('0x9')]][_0x4b2b('0x29')]?utils[_0x4b2b('0x34')](channels[_0x3d18ff['uniqueid']][_0x4b2b('0x32')],channels[_0x3d18ff['uniqueid']][_0x4b2b('0x29')]):0x0;writeDB(channels[_0x3d18ff[_0x4b2b('0x9')]]);}}catch(_0x59ade0){utils['error'](util['format'](_0x4b2b('0x2d'),_0x3d18ff[_0x4b2b('0x9')]),_0x59ade0);}};exports[_0x4b2b('0x35')]=function(_0x475b65){try{if(!_[_0x4b2b('0x25')](channels[_0x475b65[_0x4b2b('0x36')]])){utils[_0x4b2b('0x37')](util['format'](_0x4b2b('0x38'),_0x475b65[_0x4b2b('0x39')]),_0x475b65);if(channels[_0x475b65[_0x4b2b('0x36')]][_0x4b2b('0xe')]==_0x475b65['transfereechannel']){utils[_0x4b2b('0xb')](util['format'](_0x4b2b('0x3a'),_0x475b65[_0x4b2b('0x39')],_0x475b65['localtwolinkedid'],_0x475b65[_0x4b2b('0x3b')]));channels[_0x475b65[_0x4b2b('0x36')]]['destinationchannel']=_0x475b65[_0x4b2b('0x3b')];channels[_0x475b65[_0x4b2b('0x36')]][_0x4b2b('0x3c')]=_0x4b2b('0x3d');}else if(channels[_0x475b65[_0x4b2b('0x36')]][_0x4b2b('0xe')]=_0x475b65['transfertargetchannel']){utils[_0x4b2b('0xb')](util['format'](_0x4b2b('0x3a'),_0x475b65['origtransfereruniqueid'],_0x475b65[_0x4b2b('0x36')],_0x475b65[_0x4b2b('0x3e')]));channels[_0x475b65[_0x4b2b('0x36')]]['destinationchannel']=_0x475b65[_0x4b2b('0x3e')];channels[_0x475b65['localtwolinkedid']][_0x4b2b('0x3c')]=_0x4b2b('0x3d');}}}catch(_0x3d8540){utils['error'](util[_0x4b2b('0xc')](_0x4b2b('0x38'),_0x475b65['origtransfereruniqueid']),_0x3d8540);}};exports[_0x4b2b('0x3f')]=function(_0x19cf3a){try{if(!_[_0x4b2b('0x25')](channels[_0x19cf3a[_0x4b2b('0x9')]])){utils[_0x4b2b('0x37')](util['format'](_0x4b2b('0x40'),_0x19cf3a[_0x4b2b('0x9')]),_0x19cf3a);channels[_0x19cf3a[_0x4b2b('0x9')]][_0x4b2b('0x41')]=utils[_0x4b2b('0x20')]();utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x42'),_0x19cf3a[_0x4b2b('0x9')],channels[_0x19cf3a['uniqueid']][_0x4b2b('0x41')]));}}catch(_0x5bbf33){utils[_0x4b2b('0x21')](util[_0x4b2b('0xc')](_0x4b2b('0x40'),_0x19cf3a['uniqueid']),_0x5bbf33);}};exports[_0x4b2b('0x43')]=function(_0xde77e){try{if(!_['isNil'](channels[_0xde77e['uniqueid']])){utils[_0x4b2b('0x37')](util[_0x4b2b('0xc')](_0x4b2b('0x44'),_0xde77e['uniqueid']),_0xde77e);if(!_[_0x4b2b('0x25')](channels[_0xde77e[_0x4b2b('0x9')]][_0x4b2b('0x41')])){channels[_0xde77e[_0x4b2b('0x9')]]['mohtime']+=utils[_0x4b2b('0x34')](utils['now'](),channels[_0xde77e[_0x4b2b('0x9')]][_0x4b2b('0x41')]);utils['info'](util[_0x4b2b('0xc')](_0x4b2b('0x45'),_0xde77e[_0x4b2b('0x9')],channels[_0xde77e[_0x4b2b('0x9')]][_0x4b2b('0x46')]));delete channels[_0xde77e[_0x4b2b('0x9')]][_0x4b2b('0x41')];}}}catch(_0x12a653){utils[_0x4b2b('0x21')](util['format'](_0x4b2b('0x44'),_0xde77e['uniqueid']),_0x12a653);}};exports['varset']=function(_0x361346){try{if(!_[_0x4b2b('0x25')](channels[_0x361346[_0x4b2b('0x9')]])){utils[_0x4b2b('0x37')](util['format'](_0x4b2b('0x47'),_0x361346[_0x4b2b('0x9')]),_0x361346);if(!_['isNil'](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x49')])){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x4a'),_0x361346['uniqueid'],_0x361346[_0x4b2b('0x4b')]));channels[_0x361346[_0x4b2b('0x9')]]['source']=_0x361346[_0x4b2b('0x4b')];}if(!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x4c')])){utils['info'](util[_0x4b2b('0xc')](_0x4b2b('0x4d'),_0x361346['uniqueid'],_0x361346[_0x4b2b('0x4b')]));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x4e')]=_0x361346[_0x4b2b('0x4b')];channels[_0x361346['uniqueid']][_0x4b2b('0x2e')]='\x22'+_0x361346[_0x4b2b('0x4b')]+'\x22\x20<'+_0x361346[_0x4b2b('0x4b')]+'>';}if(!_[_0x4b2b('0x25')](_0x361346['variable'][_0x4b2b('0x4f')])||!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x50')])){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x51'),_0x361346[_0x4b2b('0x9')],!_['isNil'](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x4f')])?_0x4b2b('0x4f'):_0x4b2b('0x50'),_0x361346[_0x4b2b('0x4b')]));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x2e')]=_0x361346['value'];}if(!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x52')])||!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x53')])){utils['info'](util[_0x4b2b('0xc')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x361346['uniqueid'],!_['isNil'](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x52')])?_0x4b2b('0x52'):_0x4b2b('0x53'),_0x361346['value']));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x54')]=_0x4b2b('0x55');channels[_0x361346[_0x4b2b('0x9')]]['lastdata']=_0x361346[_0x4b2b('0x4b')];channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0xf')]=!![];}if(!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x56')])){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x361346[_0x4b2b('0x9')],_0x361346['value']));channels[_0x361346['uniqueid']][_0x4b2b('0x57')]=_0x361346[_0x4b2b('0x4b')];}if(!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')]['xmd-cdrtype'])){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x58'),_0x361346[_0x4b2b('0x9')],_0x361346['value']));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x59')]=_0x361346[_0x4b2b('0x4b')];}if(!_[_0x4b2b('0x25')](_0x361346['variable'][_0x4b2b('0x5a')])){utils['info'](util[_0x4b2b('0xc')](_0x4b2b('0x5b'),_0x361346[_0x4b2b('0x9')],_0x361346['value']));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x5c')]=_0x361346[_0x4b2b('0x4b')];}if(!_[_0x4b2b('0x25')](_0x361346[_0x4b2b('0x48')][_0x4b2b('0x5d')])){utils[_0x4b2b('0xb')](util[_0x4b2b('0xc')](_0x4b2b('0x5e'),_0x361346['uniqueid'],_0x361346[_0x4b2b('0x4b')]));channels[_0x361346[_0x4b2b('0x9')]][_0x4b2b('0x5d')]=_0x361346[_0x4b2b('0x4b')];}}}catch(_0x3f6fd3){utils[_0x4b2b('0x21')](util[_0x4b2b('0xc')](_0x4b2b('0x47'),_0x361346[_0x4b2b('0x9')]),_0x3f6fd3);}};exports[_0x4b2b('0x5f')]=function(_0x2e3ae3){try{if(!_['isNil'](channels[_0x2e3ae3[_0x4b2b('0x9')]])){utils[_0x4b2b('0x37')](util[_0x4b2b('0xc')](_0x4b2b('0x60'),_0x2e3ae3[_0x4b2b('0x9')]),_0x2e3ae3);utils['info'](util[_0x4b2b('0xc')](_0x4b2b('0x61'),_0x2e3ae3[_0x4b2b('0x9')],_0x2e3ae3[_0x4b2b('0x62')],_0x2e3ae3[_0x4b2b('0x63')]));if(_0x2e3ae3['application'][_0x4b2b('0x64')]()==_0x4b2b('0x65')&&_[_0x4b2b('0x66')](_0x2e3ae3[_0x4b2b('0x63')][_0x4b2b('0x64')](),_0x4b2b('0x67'))){var _0x36ec99=_0x2e3ae3[_0x4b2b('0x63')][_0x4b2b('0x68')]('=');var _0x2c5f41=_0x36ec99[0x0]['substring'](_0x36ec99[0x0]['lastIndexOf']('(')+0x1,_0x36ec99[0x0][_0x4b2b('0x69')](')'));var _0x5d4a94=_0x36ec99[0x1];channels[_0x2e3ae3[_0x4b2b('0x9')]][_0x2c5f41]=_0x5d4a94;}if(!_[_0x4b2b('0x6a')](['hangup',_0x4b2b('0x6b'),_0x4b2b('0x6c'),_0x4b2b('0x65'),_0x4b2b('0x6d')],_0x2e3ae3[_0x4b2b('0x62')][_0x4b2b('0x64')]())){channels[_0x2e3ae3[_0x4b2b('0x9')]][_0x4b2b('0x54')]=_0x2e3ae3[_0x4b2b('0x62')];channels[_0x2e3ae3[_0x4b2b('0x9')]]['lastdata']=_0x2e3ae3[_0x4b2b('0x63')];}}}catch(_0x19538e){utils['error'](util[_0x4b2b('0xc')]('[%s][calls][newexten]',_0x2e3ae3[_0x4b2b('0x9')]),_0x19538e);}};