Built motion from commit 3c2ce842.|2.6.31
[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 _0x0e27=['_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]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','variable','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','Queue','xmd-contactid','ContactId','xmd-cdrtype','outboundrouteid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','lastIndexOf','noop','gotoif','lastdata','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','calleridnum','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','format','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','newstate','[%s][calls][newstate]','isNil','channelstate','systemanswertime','transfer','answertime','hangup','debug','[%s][calls][hangup]','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','callerid','endtime','now','starttime','billableseconds','diffTime','error','attendedtransfer','localtwolinkedid','transfereechannel','origtransfereruniqueid','secondtransfererchannel','destinationchannel','userfield'];(function(_0x44a64f,_0x38475c){var _0x52024b=function(_0x2cd055){while(--_0x2cd055){_0x44a64f['push'](_0x44a64f['shift']());}};_0x52024b(++_0x38475c);}(_0x0e27,0x163));var _0x70e2=function(_0x101a01,_0x18bd83){_0x101a01=_0x101a01-0x0;var _0x538e92=_0x0e27[_0x101a01];return _0x538e92;};'use strict';var _=require(_0x70e2('0x0'));var util=require(_0x70e2('0x1'));var utils=require(_0x70e2('0x2'));var dispositions=[_0x70e2('0x3'),_0x70e2('0x4'),_0x70e2('0x4'),_0x70e2('0x3'),_0x70e2('0x3'),_0x70e2('0x3'),_0x70e2('0x5'),'BUSY',_0x70e2('0x4'),_0x70e2('0x4'),_0x70e2('0x4')];var channels={};function writeDB(_0x46d506){utils[_0x70e2('0x6')](util['format'](_0x70e2('0x7'),_0x46d506[_0x70e2('0x8')],_0x46d506[_0x70e2('0x9')],_0x46d506[_0x70e2('0xa')],_0x46d506[_0x70e2('0xb')],_0x46d506['interface'],_0x46d506[_0x70e2('0xc')],_0x46d506['connectedlinenum'],_0x46d506['lastevent']));if(_0x46d506[_0x70e2('0xd')]){utils[_0x70e2('0xe')](_0x46d506[_0x70e2('0xd')])[_0x70e2('0xf')](function(_0x1fa0cd){if(_0x1fa0cd){_0x46d506[_0x70e2('0x10')]=_0x1fa0cd['id'];}utils[_0x70e2('0x11')]('CreateVoiceCallReport',_0x46d506);});}else{utils[_0x70e2('0x11')](_0x70e2('0x12'),_0x46d506);}if(channels[_0x46d506['uniqueid']]){delete channels[_0x46d506['uniqueid']];}}exports[_0x70e2('0x13')]=function(_0x4cb2bc){try{utils['debug'](util['format'](_0x70e2('0x14'),_0x4cb2bc['uniqueid']),_0x4cb2bc);if(_0x4cb2bc[_0x70e2('0x8')]==_0x4cb2bc[_0x70e2('0x15')]&&_0x4cb2bc[_0x70e2('0x9')]!=_0x70e2('0x16')){utils['info'](util[_0x70e2('0x17')](_0x70e2('0x18'),_0x4cb2bc[_0x70e2('0x8')],_0x4cb2bc[_0x70e2('0x19')],_0x4cb2bc['exten']));channels[_0x4cb2bc[_0x70e2('0x8')]]={'uniqueid':_0x4cb2bc[_0x70e2('0x8')],'accountcode':_0x4cb2bc['accountcode'],'source':_0x4cb2bc['calleridnum'],'destination':_0x4cb2bc[_0x70e2('0x1a')],'destinationcontext':_0x4cb2bc[_0x70e2('0x19')],'channel':_0x4cb2bc[_0x70e2('0x9')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':'DOCUMENTATION'};}}catch(_0x900d2f){utils['error'](util[_0x70e2('0x17')](_0x70e2('0x14'),_0x4cb2bc[_0x70e2('0x8')]),_0x900d2f);}};exports[_0x70e2('0x1b')]=function(_0x4ff864){try{utils['debug'](util[_0x70e2('0x17')](_0x70e2('0x1c'),_0x4ff864[_0x70e2('0x8')]),_0x4ff864);if(!_[_0x70e2('0x1d')](channels[_0x4ff864[_0x70e2('0x8')]])&&_0x4ff864[_0x70e2('0x1e')]==0x6){utils[_0x70e2('0x6')](util[_0x70e2('0x17')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x4ff864[_0x70e2('0x8')],_0x4ff864[_0x70e2('0x19')],_0x4ff864['channel']));if(_[_0x70e2('0x1d')](channels[_0x4ff864[_0x70e2('0x8')]][_0x70e2('0x1f')])){channels[_0x4ff864[_0x70e2('0x8')]][_0x70e2('0x1f')]=utils['now']();}}else if(!_[_0x70e2('0x1d')](channels[_0x4ff864[_0x70e2('0x15')]])&&_0x4ff864[_0x70e2('0x1e')]==0x6&&_0x4ff864[_0x70e2('0x19')]!=_0x70e2('0x20')){utils['info'](util[_0x70e2('0x17')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x4ff864[_0x70e2('0x8')],_0x4ff864[_0x70e2('0x15')],_0x4ff864[_0x70e2('0x19')],_0x4ff864[_0x70e2('0x9')]));channels[_0x4ff864['linkedid']]['accountcode']=_0x4ff864['accountcode'];channels[_0x4ff864['linkedid']]['destinationchannel']=_0x4ff864[_0x70e2('0x9')];if(_[_0x70e2('0x1d')](channels[_0x4ff864[_0x70e2('0x15')]][_0x70e2('0x21')])){channels[_0x4ff864['linkedid']]['answertime']=utils['now']();}channels[_0x4ff864[_0x70e2('0x15')]]['disposition']=dispositions[_['toNumber'](_0x4ff864['channelstate'])]||_0x70e2('0x5');}}catch(_0x18712a){utils['error'](util[_0x70e2('0x17')](_0x70e2('0x1c'),_0x4ff864['uniqueid']),_0x18712a);}};exports[_0x70e2('0x22')]=function(_0x4c5d8b){try{if(!_[_0x70e2('0x1d')](channels[_0x4c5d8b[_0x70e2('0x8')]])){utils[_0x70e2('0x23')](util[_0x70e2('0x17')](_0x70e2('0x24'),_0x4c5d8b[_0x70e2('0x8')]),_0x4c5d8b);if(_[_0x70e2('0x1d')](channels[_0x4c5d8b[_0x70e2('0x8')]]['callerid'])){channels[_0x4c5d8b[_0x70e2('0x8')]]['callerid']=_0x4c5d8b[_0x70e2('0x25')]+'\x20<'+_0x4c5d8b[_0x70e2('0xc')]+'>';}utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x26'),_0x4c5d8b['uniqueid'],channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x27')],_0x4c5d8b['cause-txt']));channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x28')]=utils[_0x70e2('0x29')]();channels[_0x4c5d8b[_0x70e2('0x8')]]['duration']=utils['diffTime'](channels[_0x4c5d8b[_0x70e2('0x8')]]['endtime'],channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x2a')]);channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x2b')]=channels[_0x4c5d8b['uniqueid']][_0x70e2('0x21')]?utils[_0x70e2('0x2c')](channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x28')],channels[_0x4c5d8b[_0x70e2('0x8')]][_0x70e2('0x21')]):0x0;writeDB(channels[_0x4c5d8b[_0x70e2('0x8')]]);}}catch(_0x3569ec){utils[_0x70e2('0x2d')](util[_0x70e2('0x17')](_0x70e2('0x24'),_0x4c5d8b[_0x70e2('0x8')]),_0x3569ec);}};exports[_0x70e2('0x2e')]=function(_0xfa9688){try{if(!_[_0x70e2('0x1d')](channels[_0xfa9688['localtwolinkedid']])){utils[_0x70e2('0x23')](util[_0x70e2('0x17')]('[%s][calls][attendedtransfer]',_0xfa9688['origtransfereruniqueid']),_0xfa9688);if(channels[_0xfa9688[_0x70e2('0x2f')]][_0x70e2('0x9')]==_0xfa9688[_0x70e2('0x30')]){utils[_0x70e2('0x6')](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xfa9688[_0x70e2('0x31')],_0xfa9688['localtwolinkedid'],_0xfa9688[_0x70e2('0x32')]));channels[_0xfa9688[_0x70e2('0x2f')]][_0x70e2('0x33')]=_0xfa9688[_0x70e2('0x32')];channels[_0xfa9688[_0x70e2('0x2f')]][_0x70e2('0x34')]=_0x70e2('0x35');}else if(channels[_0xfa9688[_0x70e2('0x2f')]][_0x70e2('0x9')]=_0xfa9688[_0x70e2('0x36')]){utils['info'](util[_0x70e2('0x17')](_0x70e2('0x37'),_0xfa9688[_0x70e2('0x31')],_0xfa9688['localtwolinkedid'],_0xfa9688[_0x70e2('0x38')]));channels[_0xfa9688[_0x70e2('0x2f')]][_0x70e2('0x33')]=_0xfa9688[_0x70e2('0x38')];channels[_0xfa9688['localtwolinkedid']]['userfield']=_0x70e2('0x35');}}}catch(_0x327953){utils[_0x70e2('0x2d')](util[_0x70e2('0x17')](_0x70e2('0x39'),_0xfa9688[_0x70e2('0x31')]),_0x327953);}};exports[_0x70e2('0x3a')]=function(_0x5bc249){try{if(!_[_0x70e2('0x1d')](channels[_0x5bc249['uniqueid']])){utils[_0x70e2('0x23')](util['format'](_0x70e2('0x3b'),_0x5bc249[_0x70e2('0x8')]),_0x5bc249);channels[_0x5bc249['uniqueid']][_0x70e2('0x3c')]=utils[_0x70e2('0x29')]();utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x3d'),_0x5bc249[_0x70e2('0x8')],channels[_0x5bc249[_0x70e2('0x8')]][_0x70e2('0x3c')]));}}catch(_0x3eb1ae){utils[_0x70e2('0x2d')](util[_0x70e2('0x17')](_0x70e2('0x3b'),_0x5bc249[_0x70e2('0x8')]),_0x3eb1ae);}};exports['musiconholdstop']=function(_0x3b4227){try{if(!_[_0x70e2('0x1d')](channels[_0x3b4227['uniqueid']])){utils['debug'](util['format'](_0x70e2('0x3e'),_0x3b4227['uniqueid']),_0x3b4227);if(!_[_0x70e2('0x1d')](channels[_0x3b4227[_0x70e2('0x8')]]['musiconholdstartAt'])){channels[_0x3b4227[_0x70e2('0x8')]][_0x70e2('0x3f')]+=utils[_0x70e2('0x2c')](utils[_0x70e2('0x29')](),channels[_0x3b4227[_0x70e2('0x8')]]['musiconholdstartAt']);utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x40'),_0x3b4227[_0x70e2('0x8')],channels[_0x3b4227['uniqueid']][_0x70e2('0x3f')]));delete channels[_0x3b4227[_0x70e2('0x8')]][_0x70e2('0x3c')];}}}catch(_0xce16ad){utils[_0x70e2('0x2d')](util[_0x70e2('0x17')](_0x70e2('0x3e'),_0x3b4227[_0x70e2('0x8')]),_0xce16ad);}};exports[_0x70e2('0x41')]=function(_0x13ea64){try{if(!_[_0x70e2('0x1d')](channels[_0x13ea64[_0x70e2('0x8')]])){utils[_0x70e2('0x23')](util[_0x70e2('0x17')](_0x70e2('0x42'),_0x13ea64[_0x70e2('0x8')]),_0x13ea64);if(!_[_0x70e2('0x1d')](_0x13ea64['variable'][_0x70e2('0x43')])){utils['info'](util[_0x70e2('0x17')](_0x70e2('0x44'),_0x13ea64[_0x70e2('0x8')],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64[_0x70e2('0x8')]][_0x70e2('0x46')]=_0x13ea64[_0x70e2('0x45')];}if(!_['isNil'](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x48')])){utils['info'](util['format'](_0x70e2('0x49'),_0x13ea64[_0x70e2('0x8')],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64[_0x70e2('0x8')]][_0x70e2('0x4a')]=_0x13ea64[_0x70e2('0x45')];channels[_0x13ea64['uniqueid']][_0x70e2('0x27')]='\x22'+_0x13ea64['value']+_0x70e2('0x4b')+_0x13ea64['value']+'>';}if(!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')]['xmd-callerid-preview'])||!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x4c')])){utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x4d'),_0x13ea64['uniqueid'],!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')]['xmd-callerid-preview'])?_0x70e2('0x4e'):_0x70e2('0x4c'),_0x13ea64['value']));channels[_0x13ea64[_0x70e2('0x8')]][_0x70e2('0x27')]=_0x13ea64[_0x70e2('0x45')];}if(!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x4f')])||!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')]['xmcs-queue'])){utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x4d'),_0x13ea64[_0x70e2('0x8')],!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')]['xmd-queue'])?_0x70e2('0x4f'):_0x70e2('0x50'),_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64['uniqueid']][_0x70e2('0x51')]=_0x70e2('0x52');channels[_0x13ea64['uniqueid']]['lastdata']=_0x13ea64['value'];channels[_0x13ea64[_0x70e2('0x8')]][_0x70e2('0xa')]=!![];}if(!_['isNil'](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x53')])){utils[_0x70e2('0x6')](util[_0x70e2('0x17')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x13ea64[_0x70e2('0x8')],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64['uniqueid']][_0x70e2('0x54')]=_0x13ea64[_0x70e2('0x45')];}if(!_['isNil'](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x55')])){utils[_0x70e2('0x6')](util[_0x70e2('0x17')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x13ea64[_0x70e2('0x8')],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64['uniqueid']]['type']=_0x13ea64['value'];}if(!_['isNil'](_0x13ea64['variable'][_0x70e2('0x56')])){utils[_0x70e2('0x6')](util[_0x70e2('0x17')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x13ea64['uniqueid'],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64[_0x70e2('0x8')]]['routeid']=_0x13ea64[_0x70e2('0x45')];}if(!_[_0x70e2('0x1d')](_0x13ea64[_0x70e2('0x47')][_0x70e2('0x57')])){utils[_0x70e2('0x6')](util['format'](_0x70e2('0x58'),_0x13ea64[_0x70e2('0x8')],_0x13ea64[_0x70e2('0x45')]));channels[_0x13ea64[_0x70e2('0x8')]][_0x70e2('0x57')]=_0x13ea64['value'];}}}catch(_0x3ff2ed){utils[_0x70e2('0x2d')](util['format']('[%s][calls][varset]',_0x13ea64[_0x70e2('0x8')]),_0x3ff2ed);}};exports['newexten']=function(_0x3316d6){try{if(!_[_0x70e2('0x1d')](channels[_0x3316d6[_0x70e2('0x8')]])){utils[_0x70e2('0x23')](util[_0x70e2('0x17')](_0x70e2('0x59'),_0x3316d6['uniqueid']),_0x3316d6);utils[_0x70e2('0x6')](util[_0x70e2('0x17')](_0x70e2('0x5a'),_0x3316d6[_0x70e2('0x8')],_0x3316d6[_0x70e2('0x5b')],_0x3316d6[_0x70e2('0x5c')]));if(_0x3316d6[_0x70e2('0x5b')][_0x70e2('0x5d')]()==_0x70e2('0x5e')&&_[_0x70e2('0x5f')](_0x3316d6[_0x70e2('0x5c')][_0x70e2('0x5d')](),_0x70e2('0x60'))){var _0x19971c=_0x3316d6[_0x70e2('0x5c')][_0x70e2('0x61')]('=');var _0x5b2c5e=_0x19971c[0x0]['substring'](_0x19971c[0x0][_0x70e2('0x62')]('(')+0x1,_0x19971c[0x0][_0x70e2('0x62')](')'));var _0x225e16=_0x19971c[0x1];channels[_0x3316d6['uniqueid']][_0x5b2c5e]=_0x225e16;}if(!_['includes']([_0x70e2('0x22'),_0x70e2('0x63'),'execif','set',_0x70e2('0x64')],_0x3316d6[_0x70e2('0x5b')]['toLowerCase']())){channels[_0x3316d6[_0x70e2('0x8')]]['lastapplication']=_0x3316d6[_0x70e2('0x5b')];channels[_0x3316d6[_0x70e2('0x8')]][_0x70e2('0x65')]=_0x3316d6['appdata'];}}}catch(_0x12f7e5){utils[_0x70e2('0x2d')](util[_0x70e2('0x17')](_0x70e2('0x59'),_0x3316d6[_0x70e2('0x8')]),_0x12f7e5);}};