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