28462c3fa9c9de14fbcf1bc13eb37660b94dc018
[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 _0x6cb3=['transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','userfield','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','source','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','lastapplication','Queue','lastdata','xmd-contactid','type','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][newexten]','application','appdata','toLowerCase','set','startsWith','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','format','uniqueid','channel','queue','membername','interface','calleridnum','accountcode','getUserByInternal','UserId','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','info','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','channelstate','transfer','destinationchannel','answertime','disposition','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','secondtransfererchannel','_attended'];(function(_0xea2a48,_0x24e9b1){var _0x247239=function(_0x295966){while(--_0x295966){_0xea2a48['push'](_0xea2a48['shift']());}};_0x247239(++_0x24e9b1);}(_0x6cb3,0x1ce));var _0x36cb=function(_0x214173,_0x3ed015){_0x214173=_0x214173-0x0;var _0xb415de=_0x6cb3[_0x214173];return _0xb415de;};'use strict';var _=require(_0x36cb('0x0'));var util=require('util');var utils=require(_0x36cb('0x1'));var dispositions=[_0x36cb('0x2'),_0x36cb('0x3'),_0x36cb('0x3'),_0x36cb('0x2'),_0x36cb('0x2'),_0x36cb('0x2'),_0x36cb('0x4'),'BUSY',_0x36cb('0x3'),_0x36cb('0x3'),'FAILED'];var channels={};function writeDB(_0x3e8967){utils['info'](util[_0x36cb('0x5')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x3e8967[_0x36cb('0x6')],_0x3e8967[_0x36cb('0x7')],_0x3e8967[_0x36cb('0x8')],_0x3e8967[_0x36cb('0x9')],_0x3e8967[_0x36cb('0xa')],_0x3e8967[_0x36cb('0xb')],_0x3e8967['connectedlinenum'],_0x3e8967['lastevent']));if(_0x3e8967[_0x36cb('0xc')]){utils[_0x36cb('0xd')](_0x3e8967['accountcode'])['then'](function(_0x3f53e){if(_0x3f53e){_0x3e8967[_0x36cb('0xe')]=_0x3f53e['id'];}utils[_0x36cb('0xf')](_0x36cb('0x10'),_0x3e8967);});}else{utils['request'](_0x36cb('0x10'),_0x3e8967);}if(channels[_0x3e8967['uniqueid']]){delete channels[_0x3e8967[_0x36cb('0x6')]];}}exports[_0x36cb('0x11')]=function(_0x1a59be){try{utils[_0x36cb('0x12')](util[_0x36cb('0x5')](_0x36cb('0x13'),_0x1a59be[_0x36cb('0x6')]),_0x1a59be);if(_0x1a59be[_0x36cb('0x6')]==_0x1a59be[_0x36cb('0x14')]&&_0x1a59be['channel']!=_0x36cb('0x15')){utils['info'](util[_0x36cb('0x5')](_0x36cb('0x16'),_0x1a59be[_0x36cb('0x6')],_0x1a59be[_0x36cb('0x17')],_0x1a59be[_0x36cb('0x18')]));channels[_0x1a59be[_0x36cb('0x6')]]={'uniqueid':_0x1a59be[_0x36cb('0x6')],'accountcode':_0x1a59be[_0x36cb('0xc')],'source':_0x1a59be[_0x36cb('0xb')],'destination':_0x1a59be[_0x36cb('0x18')],'destinationcontext':_0x1a59be[_0x36cb('0x17')],'channel':_0x1a59be[_0x36cb('0x7')],'starttime':utils[_0x36cb('0x19')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x36cb('0x1a')};}}catch(_0x1ac2c7){utils[_0x36cb('0x1b')](util[_0x36cb('0x5')](_0x36cb('0x13'),_0x1a59be[_0x36cb('0x6')]),_0x1ac2c7);}};exports[_0x36cb('0x1c')]=function(_0x16923e){try{utils['debug'](util[_0x36cb('0x5')](_0x36cb('0x1d'),_0x16923e['uniqueid']),_0x16923e);if(!_[_0x36cb('0x1e')](channels[_0x16923e[_0x36cb('0x6')]])&&_0x16923e['channelstate']==0x6){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x20'),_0x16923e['uniqueid'],_0x16923e[_0x36cb('0x17')],_0x16923e['channel']));if(_['isNil'](channels[_0x16923e['uniqueid']][_0x36cb('0x21')])){channels[_0x16923e[_0x36cb('0x6')]][_0x36cb('0x21')]=utils[_0x36cb('0x19')]();}}else if(!_['isNil'](channels[_0x16923e['linkedid']])&&_0x16923e[_0x36cb('0x22')]==0x6&&_0x16923e[_0x36cb('0x17')]!=_0x36cb('0x23')){utils['info'](util['format']('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x16923e[_0x36cb('0x6')],_0x16923e['linkedid'],_0x16923e[_0x36cb('0x17')],_0x16923e['channel']));channels[_0x16923e[_0x36cb('0x14')]][_0x36cb('0xc')]=_0x16923e[_0x36cb('0xc')];channels[_0x16923e[_0x36cb('0x14')]][_0x36cb('0x24')]=_0x16923e[_0x36cb('0x7')];if(_[_0x36cb('0x1e')](channels[_0x16923e[_0x36cb('0x14')]]['answertime'])){channels[_0x16923e['linkedid']][_0x36cb('0x25')]=utils[_0x36cb('0x19')]();}channels[_0x16923e[_0x36cb('0x14')]][_0x36cb('0x26')]=dispositions[_[_0x36cb('0x27')](_0x16923e['channelstate'])]||_0x36cb('0x4');}}catch(_0x379bcf){utils[_0x36cb('0x1b')](util[_0x36cb('0x5')](_0x36cb('0x1d'),_0x16923e[_0x36cb('0x6')]),_0x379bcf);}};exports[_0x36cb('0x28')]=function(_0x1ba9fc){try{if(!_[_0x36cb('0x1e')](channels[_0x1ba9fc['uniqueid']])){utils[_0x36cb('0x12')](util[_0x36cb('0x5')]('[%s][calls][hangup]',_0x1ba9fc['uniqueid']),_0x1ba9fc);if(_['isNil'](channels[_0x1ba9fc['uniqueid']][_0x36cb('0x29')])){channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x29')]=_0x1ba9fc[_0x36cb('0x2a')]+'\x20<'+_0x1ba9fc[_0x36cb('0xb')]+'>';}utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x2b'),_0x1ba9fc[_0x36cb('0x6')],channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x29')],_0x1ba9fc[_0x36cb('0x2c')]));channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x2d')]=utils[_0x36cb('0x19')]();channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x2e')]=utils[_0x36cb('0x2f')](channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x2d')],channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x30')]);channels[_0x1ba9fc['uniqueid']][_0x36cb('0x31')]=channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x25')]?utils[_0x36cb('0x2f')](channels[_0x1ba9fc[_0x36cb('0x6')]]['endtime'],channels[_0x1ba9fc[_0x36cb('0x6')]][_0x36cb('0x25')]):0x0;writeDB(channels[_0x1ba9fc[_0x36cb('0x6')]]);}}catch(_0x463f20){utils[_0x36cb('0x1b')](util[_0x36cb('0x5')](_0x36cb('0x32'),_0x1ba9fc['uniqueid']),_0x463f20);}};exports[_0x36cb('0x33')]=function(_0x425a10){try{if(!_[_0x36cb('0x1e')](channels[_0x425a10[_0x36cb('0x34')]])){utils[_0x36cb('0x12')](util[_0x36cb('0x5')](_0x36cb('0x35'),_0x425a10[_0x36cb('0x36')]),_0x425a10);if(channels[_0x425a10[_0x36cb('0x34')]][_0x36cb('0x7')]==_0x425a10[_0x36cb('0x37')]){utils[_0x36cb('0x1f')](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x425a10[_0x36cb('0x36')],_0x425a10['localtwolinkedid'],_0x425a10[_0x36cb('0x38')]));channels[_0x425a10[_0x36cb('0x34')]][_0x36cb('0x24')]=_0x425a10['secondtransfererchannel'];channels[_0x425a10[_0x36cb('0x34')]]['userfield']=_0x36cb('0x39');}else if(channels[_0x425a10['localtwolinkedid']][_0x36cb('0x7')]=_0x425a10[_0x36cb('0x3a')]){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x3b'),_0x425a10[_0x36cb('0x36')],_0x425a10[_0x36cb('0x34')],_0x425a10[_0x36cb('0x3c')]));channels[_0x425a10[_0x36cb('0x34')]]['destinationchannel']=_0x425a10[_0x36cb('0x3c')];channels[_0x425a10['localtwolinkedid']][_0x36cb('0x3d')]=_0x36cb('0x39');}}}catch(_0x4d7794){utils['error'](util[_0x36cb('0x5')](_0x36cb('0x35'),_0x425a10[_0x36cb('0x36')]),_0x4d7794);}};exports[_0x36cb('0x3e')]=function(_0x4131e8){try{if(!_[_0x36cb('0x1e')](channels[_0x4131e8[_0x36cb('0x6')]])){utils[_0x36cb('0x12')](util[_0x36cb('0x5')](_0x36cb('0x3f'),_0x4131e8['uniqueid']),_0x4131e8);channels[_0x4131e8[_0x36cb('0x6')]]['musiconholdstartAt']=utils[_0x36cb('0x19')]();utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x40'),_0x4131e8['uniqueid'],channels[_0x4131e8[_0x36cb('0x6')]][_0x36cb('0x41')]));}}catch(_0x3e472f){utils['error'](util[_0x36cb('0x5')](_0x36cb('0x3f'),_0x4131e8['uniqueid']),_0x3e472f);}};exports[_0x36cb('0x42')]=function(_0x1de92b){try{if(!_[_0x36cb('0x1e')](channels[_0x1de92b[_0x36cb('0x6')]])){utils[_0x36cb('0x12')](util[_0x36cb('0x5')](_0x36cb('0x43'),_0x1de92b[_0x36cb('0x6')]),_0x1de92b);if(!_['isNil'](channels[_0x1de92b[_0x36cb('0x6')]][_0x36cb('0x41')])){channels[_0x1de92b[_0x36cb('0x6')]][_0x36cb('0x44')]+=utils['diffTime'](utils[_0x36cb('0x19')](),channels[_0x1de92b[_0x36cb('0x6')]][_0x36cb('0x41')]);utils[_0x36cb('0x1f')](util[_0x36cb('0x5')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x1de92b['uniqueid'],channels[_0x1de92b[_0x36cb('0x6')]][_0x36cb('0x44')]));delete channels[_0x1de92b[_0x36cb('0x6')]]['musiconholdstartAt'];}}}catch(_0x56e5bb){utils['error'](util[_0x36cb('0x5')](_0x36cb('0x43'),_0x1de92b[_0x36cb('0x6')]),_0x56e5bb);}};exports[_0x36cb('0x45')]=function(_0x3230fd){try{if(!_[_0x36cb('0x1e')](channels[_0x3230fd['uniqueid']])){utils[_0x36cb('0x12')](util['format'](_0x36cb('0x46'),_0x3230fd[_0x36cb('0x6')]),_0x3230fd);if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x48')])){utils['info'](util[_0x36cb('0x5')](_0x36cb('0x49'),_0x3230fd[_0x36cb('0x6')],_0x3230fd['value']));channels[_0x3230fd['uniqueid']][_0x36cb('0x4a')]=_0x3230fd[_0x36cb('0x4b')];}if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x4c')])){utils[_0x36cb('0x1f')](util['format'](_0x36cb('0x4d'),_0x3230fd[_0x36cb('0x6')],_0x3230fd[_0x36cb('0x4b')]));channels[_0x3230fd['uniqueid']][_0x36cb('0x4e')]=_0x3230fd[_0x36cb('0x4b')];channels[_0x3230fd['uniqueid']][_0x36cb('0x29')]='\x22'+_0x3230fd[_0x36cb('0x4b')]+'\x22\x20<'+_0x3230fd[_0x36cb('0x4b')]+'>';}if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x4f')])||!_['isNil'](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x50')])){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x3230fd['uniqueid'],!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x4f')])?'xmd-callerid-preview':_0x36cb('0x50'),_0x3230fd[_0x36cb('0x4b')]));channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x29')]=_0x3230fd[_0x36cb('0x4b')];}if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')]['xmd-queue'])||!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')]['xmcs-queue'])){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x51'),_0x3230fd[_0x36cb('0x6')],!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')]['xmd-queue'])?_0x36cb('0x52'):'xmcs-queue',_0x3230fd['value']));channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x53')]=_0x36cb('0x54');channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x55')]=_0x3230fd['value'];channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x8')]=!![];}if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x56')])){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x3230fd[_0x36cb('0x6')],_0x3230fd['value']));channels[_0x3230fd['uniqueid']]['ContactId']=_0x3230fd['value'];}if(!_['isNil'](_0x3230fd[_0x36cb('0x47')]['xmd-cdrtype'])){utils[_0x36cb('0x1f')](util['format']('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x3230fd['uniqueid'],_0x3230fd[_0x36cb('0x4b')]));channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x57')]=_0x3230fd[_0x36cb('0x4b')];}if(!_['isNil'](_0x3230fd['variable']['outboundrouteid'])){utils['info'](util[_0x36cb('0x5')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x3230fd['uniqueid'],_0x3230fd[_0x36cb('0x4b')]));channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x58')]=_0x3230fd[_0x36cb('0x4b')];}if(!_[_0x36cb('0x1e')](_0x3230fd[_0x36cb('0x47')][_0x36cb('0x59')])){utils[_0x36cb('0x1f')](util[_0x36cb('0x5')](_0x36cb('0x5a'),_0x3230fd[_0x36cb('0x6')],_0x3230fd[_0x36cb('0x4b')]));channels[_0x3230fd[_0x36cb('0x6')]][_0x36cb('0x59')]=_0x3230fd[_0x36cb('0x4b')];}}}catch(_0x1b5db7){utils[_0x36cb('0x1b')](util['format'](_0x36cb('0x46'),_0x3230fd[_0x36cb('0x6')]),_0x1b5db7);}};exports['newexten']=function(_0x4e3b4d){try{if(!_[_0x36cb('0x1e')](channels[_0x4e3b4d[_0x36cb('0x6')]])){utils[_0x36cb('0x12')](util['format'](_0x36cb('0x5b'),_0x4e3b4d[_0x36cb('0x6')]),_0x4e3b4d);utils['info'](util[_0x36cb('0x5')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x4e3b4d[_0x36cb('0x6')],_0x4e3b4d[_0x36cb('0x5c')],_0x4e3b4d[_0x36cb('0x5d')]));if(_0x4e3b4d[_0x36cb('0x5c')][_0x36cb('0x5e')]()==_0x36cb('0x5f')&&_[_0x36cb('0x60')](_0x4e3b4d[_0x36cb('0x5d')][_0x36cb('0x5e')](),'cdr')){var _0x171002=_0x4e3b4d[_0x36cb('0x5d')][_0x36cb('0x61')]('=');var _0x2ef265=_0x171002[0x0][_0x36cb('0x62')](_0x171002[0x0][_0x36cb('0x63')]('(')+0x1,_0x171002[0x0][_0x36cb('0x63')](')'));var _0x5dd675=_0x171002[0x1];channels[_0x4e3b4d[_0x36cb('0x6')]][_0x2ef265]=_0x5dd675;}if(!_[_0x36cb('0x64')]([_0x36cb('0x28'),_0x36cb('0x65'),_0x36cb('0x66'),_0x36cb('0x5f'),_0x36cb('0x67')],_0x4e3b4d[_0x36cb('0x5c')][_0x36cb('0x5e')]())){channels[_0x4e3b4d[_0x36cb('0x6')]]['lastapplication']=_0x4e3b4d['application'];channels[_0x4e3b4d[_0x36cb('0x6')]][_0x36cb('0x55')]=_0x4e3b4d['appdata'];}}}catch(_0x55fc00){utils[_0x36cb('0x1b')](util[_0x36cb('0x5')]('[%s][calls][newexten]',_0x4e3b4d[_0x36cb('0x6')]),_0x55fc00);}};