a5f40d1de6e111f79227d1a956de7775ef3b4dad
[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 _0x1fe6=['getUserByInternal','UserId','request','CreateVoiceCallReport','uniqueid','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','DOCUMENTATION','format','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','channelstate','destinationchannel','answertime','disposition','toNumber','error','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','variable','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','application','toLowerCase','set','startsWith','appdata','cdr','split','substring','lastIndexOf','hangup','noop','gotoif','lastapplication','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode'];(function(_0x27b406,_0x5d2175){var _0xd93c4a=function(_0x560ff7){while(--_0x560ff7){_0x27b406['push'](_0x27b406['shift']());}};_0xd93c4a(++_0x5d2175);}(_0x1fe6,0xc5));var _0x61fe=function(_0x13e5e5,_0x2fa106){_0x13e5e5=_0x13e5e5-0x0;var _0x360220=_0x1fe6[_0x13e5e5];return _0x360220;};'use strict';var _=require(_0x61fe('0x0'));var util=require(_0x61fe('0x1'));var utils=require(_0x61fe('0x2'));var dispositions=[_0x61fe('0x3'),_0x61fe('0x4'),'FAILED','NO\x20ANSWER','NO\x20ANSWER',_0x61fe('0x3'),_0x61fe('0x5'),_0x61fe('0x6'),_0x61fe('0x4'),_0x61fe('0x4'),_0x61fe('0x4')];var channels={};function writeDB(_0x586996){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x8'),_0x586996['uniqueid'],_0x586996[_0x61fe('0x9')],_0x586996[_0x61fe('0xa')],_0x586996[_0x61fe('0xb')],_0x586996[_0x61fe('0xc')],_0x586996[_0x61fe('0xd')],_0x586996[_0x61fe('0xe')],_0x586996[_0x61fe('0xf')]));if(_0x586996[_0x61fe('0x10')]){utils[_0x61fe('0x11')](_0x586996[_0x61fe('0x10')])['then'](function(_0x2c7cae){if(_0x2c7cae){_0x586996[_0x61fe('0x12')]=_0x2c7cae['id'];}utils[_0x61fe('0x13')]('CreateVoiceCallReport',_0x586996);});}else{utils[_0x61fe('0x13')](_0x61fe('0x14'),_0x586996);}if(channels[_0x586996[_0x61fe('0x15')]]){delete channels[_0x586996[_0x61fe('0x15')]];}}exports['newchannel']=function(_0x225b8c){try{utils[_0x61fe('0x16')](util['format'](_0x61fe('0x17'),_0x225b8c[_0x61fe('0x15')]),_0x225b8c);if(_0x225b8c['uniqueid']==_0x225b8c[_0x61fe('0x18')]&&_0x225b8c['channel']!=_0x61fe('0x19')){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x1a'),_0x225b8c['uniqueid'],_0x225b8c[_0x61fe('0x1b')],_0x225b8c[_0x61fe('0x1c')]));channels[_0x225b8c[_0x61fe('0x15')]]={'uniqueid':_0x225b8c[_0x61fe('0x15')],'accountcode':_0x225b8c[_0x61fe('0x10')],'source':_0x225b8c[_0x61fe('0xd')],'destination':_0x225b8c[_0x61fe('0x1c')],'destinationcontext':_0x225b8c[_0x61fe('0x1b')],'channel':_0x225b8c[_0x61fe('0x9')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x61fe('0x3'),'amaflags':_0x61fe('0x1d')};}}catch(_0x341365){utils['error'](util[_0x61fe('0x1e')](_0x61fe('0x17'),_0x225b8c['uniqueid']),_0x341365);}};exports['newstate']=function(_0xbcc466){try{utils[_0x61fe('0x16')](util['format'](_0x61fe('0x1f'),_0xbcc466[_0x61fe('0x15')]),_0xbcc466);if(!_[_0x61fe('0x20')](channels[_0xbcc466[_0x61fe('0x15')]])&&_0xbcc466['channelstate']==0x6){utils[_0x61fe('0x7')](util[_0x61fe('0x1e')](_0x61fe('0x21'),_0xbcc466[_0x61fe('0x15')],_0xbcc466[_0x61fe('0x1b')],_0xbcc466[_0x61fe('0x9')]));if(_[_0x61fe('0x20')](channels[_0xbcc466['uniqueid']]['systemanswertime'])){channels[_0xbcc466['uniqueid']][_0x61fe('0x22')]=utils[_0x61fe('0x23')]();}}else if(!_[_0x61fe('0x20')](channels[_0xbcc466[_0x61fe('0x18')]])&&_0xbcc466[_0x61fe('0x24')]==0x6&&_0xbcc466[_0x61fe('0x1b')]!='transfer'){utils['info'](util[_0x61fe('0x1e')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0xbcc466[_0x61fe('0x15')],_0xbcc466[_0x61fe('0x18')],_0xbcc466[_0x61fe('0x1b')],_0xbcc466[_0x61fe('0x9')]));channels[_0xbcc466[_0x61fe('0x18')]][_0x61fe('0x10')]=_0xbcc466[_0x61fe('0x10')];channels[_0xbcc466['linkedid']][_0x61fe('0x25')]=_0xbcc466['channel'];if(_[_0x61fe('0x20')](channels[_0xbcc466['linkedid']][_0x61fe('0x26')])){channels[_0xbcc466[_0x61fe('0x18')]][_0x61fe('0x26')]=utils['now']();}channels[_0xbcc466[_0x61fe('0x18')]][_0x61fe('0x27')]=dispositions[_[_0x61fe('0x28')](_0xbcc466[_0x61fe('0x24')])]||'ANSWERED';}}catch(_0x929233){utils[_0x61fe('0x29')](util[_0x61fe('0x1e')](_0x61fe('0x1f'),_0xbcc466['uniqueid']),_0x929233);}};exports['hangup']=function(_0x433896){try{if(!_[_0x61fe('0x20')](channels[_0x433896[_0x61fe('0x15')]])){utils[_0x61fe('0x16')](util[_0x61fe('0x1e')](_0x61fe('0x2a'),_0x433896[_0x61fe('0x15')]),_0x433896);if(_[_0x61fe('0x20')](channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x2b')])){channels[_0x433896[_0x61fe('0x15')]]['callerid']=_0x433896['calleridname']+'\x20<'+_0x433896[_0x61fe('0xd')]+'>';}utils[_0x61fe('0x7')](util['format'](_0x61fe('0x2c'),_0x433896[_0x61fe('0x15')],channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x2b')],_0x433896[_0x61fe('0x2d')]));channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x2e')]=utils[_0x61fe('0x23')]();channels[_0x433896['uniqueid']][_0x61fe('0x2f')]=utils[_0x61fe('0x30')](channels[_0x433896['uniqueid']]['endtime'],channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x31')]);channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x32')]=channels[_0x433896[_0x61fe('0x15')]]['answertime']?utils['diffTime'](channels[_0x433896[_0x61fe('0x15')]][_0x61fe('0x2e')],channels[_0x433896[_0x61fe('0x15')]]['answertime']):0x0;writeDB(channels[_0x433896[_0x61fe('0x15')]]);}}catch(_0x2d4da5){utils[_0x61fe('0x29')](util[_0x61fe('0x1e')](_0x61fe('0x2a'),_0x433896[_0x61fe('0x15')]),_0x2d4da5);}};exports[_0x61fe('0x33')]=function(_0x14ad6d){try{if(!_[_0x61fe('0x20')](channels[_0x14ad6d['localtwolinkedid']])){utils[_0x61fe('0x16')](util['format'](_0x61fe('0x34'),_0x14ad6d[_0x61fe('0x35')]),_0x14ad6d);if(channels[_0x14ad6d[_0x61fe('0x36')]][_0x61fe('0x9')]==_0x14ad6d['transfereechannel']){utils[_0x61fe('0x7')](util[_0x61fe('0x1e')](_0x61fe('0x37'),_0x14ad6d[_0x61fe('0x35')],_0x14ad6d[_0x61fe('0x36')],_0x14ad6d[_0x61fe('0x38')]));channels[_0x14ad6d[_0x61fe('0x36')]][_0x61fe('0x25')]=_0x14ad6d['secondtransfererchannel'];channels[_0x14ad6d[_0x61fe('0x36')]][_0x61fe('0x39')]='_attended';}else if(channels[_0x14ad6d[_0x61fe('0x36')]][_0x61fe('0x9')]=_0x14ad6d[_0x61fe('0x3a')]){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x37'),_0x14ad6d[_0x61fe('0x35')],_0x14ad6d[_0x61fe('0x36')],_0x14ad6d['origtransfererchannel']));channels[_0x14ad6d['localtwolinkedid']][_0x61fe('0x25')]=_0x14ad6d[_0x61fe('0x3b')];channels[_0x14ad6d['localtwolinkedid']][_0x61fe('0x39')]=_0x61fe('0x3c');}}}catch(_0x46e63c){utils[_0x61fe('0x29')](util['format'](_0x61fe('0x34'),_0x14ad6d['origtransfereruniqueid']),_0x46e63c);}};exports['musiconholdstart']=function(_0x1da127){try{if(!_[_0x61fe('0x20')](channels[_0x1da127[_0x61fe('0x15')]])){utils[_0x61fe('0x16')](util['format'](_0x61fe('0x3d'),_0x1da127['uniqueid']),_0x1da127);channels[_0x1da127['uniqueid']][_0x61fe('0x3e')]=utils[_0x61fe('0x23')]();utils['info'](util[_0x61fe('0x1e')](_0x61fe('0x3f'),_0x1da127[_0x61fe('0x15')],channels[_0x1da127['uniqueid']][_0x61fe('0x3e')]));}}catch(_0x3ceb64){utils[_0x61fe('0x29')](util['format']('[%s][calls][musiconholdstart]',_0x1da127['uniqueid']),_0x3ceb64);}};exports[_0x61fe('0x40')]=function(_0x1ef8bd){try{if(!_[_0x61fe('0x20')](channels[_0x1ef8bd[_0x61fe('0x15')]])){utils[_0x61fe('0x16')](util[_0x61fe('0x1e')](_0x61fe('0x41'),_0x1ef8bd[_0x61fe('0x15')]),_0x1ef8bd);if(!_[_0x61fe('0x20')](channels[_0x1ef8bd['uniqueid']]['musiconholdstartAt'])){channels[_0x1ef8bd[_0x61fe('0x15')]][_0x61fe('0x42')]+=utils[_0x61fe('0x30')](utils[_0x61fe('0x23')](),channels[_0x1ef8bd[_0x61fe('0x15')]][_0x61fe('0x3e')]);utils[_0x61fe('0x7')](util[_0x61fe('0x1e')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x1ef8bd[_0x61fe('0x15')],channels[_0x1ef8bd[_0x61fe('0x15')]]['mohtime']));delete channels[_0x1ef8bd[_0x61fe('0x15')]][_0x61fe('0x3e')];}}}catch(_0x142e96){utils[_0x61fe('0x29')](util['format']('[%s][calls][musiconholdstop]',_0x1ef8bd[_0x61fe('0x15')]),_0x142e96);}};exports[_0x61fe('0x43')]=function(_0x4f0820){try{if(!_[_0x61fe('0x20')](channels[_0x4f0820[_0x61fe('0x15')]])){utils['debug'](util[_0x61fe('0x1e')](_0x61fe('0x44'),_0x4f0820[_0x61fe('0x15')]),_0x4f0820);if(!_['isNil'](_0x4f0820['variable'][_0x61fe('0x45')])){utils[_0x61fe('0x7')](util[_0x61fe('0x1e')](_0x61fe('0x46'),_0x4f0820[_0x61fe('0x15')],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x48')]=_0x4f0820[_0x61fe('0x47')];}if(!_[_0x61fe('0x20')](_0x4f0820['variable']['xmd-phone'])){utils[_0x61fe('0x7')](util[_0x61fe('0x1e')](_0x61fe('0x49'),_0x4f0820[_0x61fe('0x15')],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x4a')]=_0x4f0820['value'];channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x2b')]='\x22'+_0x4f0820[_0x61fe('0x47')]+'\x22\x20<'+_0x4f0820[_0x61fe('0x47')]+'>';}if(!_[_0x61fe('0x20')](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x4c')])||!_[_0x61fe('0x20')](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x4d')])){utils['info'](util[_0x61fe('0x1e')](_0x61fe('0x4e'),_0x4f0820[_0x61fe('0x15')],!_['isNil'](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x4c')])?_0x61fe('0x4c'):_0x61fe('0x4d'),_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x2b')]=_0x4f0820[_0x61fe('0x47')];}if(!_[_0x61fe('0x20')](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x4f')])||!_[_0x61fe('0x20')](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x50')])){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x4e'),_0x4f0820['uniqueid'],!_[_0x61fe('0x20')](_0x4f0820['variable']['xmd-queue'])?_0x61fe('0x4f'):'xmcs-queue',_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]]['lastapplication']='Queue';channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x51')]=_0x4f0820['value'];channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0xa')]=!![];}if(!_['isNil'](_0x4f0820['variable'][_0x61fe('0x52')])){utils[_0x61fe('0x7')](util[_0x61fe('0x1e')](_0x61fe('0x53'),_0x4f0820[_0x61fe('0x15')],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x54')]=_0x4f0820[_0x61fe('0x47')];}if(!_['isNil'](_0x4f0820[_0x61fe('0x4b')][_0x61fe('0x55')])){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x56'),_0x4f0820[_0x61fe('0x15')],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820['uniqueid']][_0x61fe('0x57')]=_0x4f0820['value'];}if(!_['isNil'](_0x4f0820[_0x61fe('0x4b')]['outboundrouteid'])){utils['info'](util[_0x61fe('0x1e')](_0x61fe('0x58'),_0x4f0820['uniqueid'],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x59')]=_0x4f0820[_0x61fe('0x47')];}if(!_[_0x61fe('0x20')](_0x4f0820[_0x61fe('0x4b')]['sipcallid'])){utils[_0x61fe('0x7')](util['format'](_0x61fe('0x5a'),_0x4f0820['uniqueid'],_0x4f0820[_0x61fe('0x47')]));channels[_0x4f0820[_0x61fe('0x15')]][_0x61fe('0x5b')]=_0x4f0820[_0x61fe('0x47')];}}}catch(_0x1b20c0){utils[_0x61fe('0x29')](util[_0x61fe('0x1e')]('[%s][calls][varset]',_0x4f0820[_0x61fe('0x15')]),_0x1b20c0);}};exports[_0x61fe('0x5c')]=function(_0x1e24cf){try{if(!_['isNil'](channels[_0x1e24cf['uniqueid']])){utils['debug'](util[_0x61fe('0x1e')](_0x61fe('0x5d'),_0x1e24cf['uniqueid']),_0x1e24cf);utils[_0x61fe('0x7')](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x1e24cf[_0x61fe('0x15')],_0x1e24cf[_0x61fe('0x5e')],_0x1e24cf['appdata']));if(_0x1e24cf[_0x61fe('0x5e')][_0x61fe('0x5f')]()==_0x61fe('0x60')&&_[_0x61fe('0x61')](_0x1e24cf[_0x61fe('0x62')][_0x61fe('0x5f')](),_0x61fe('0x63'))){var _0x576793=_0x1e24cf['appdata'][_0x61fe('0x64')]('=');var _0x1a15ef=_0x576793[0x0][_0x61fe('0x65')](_0x576793[0x0][_0x61fe('0x66')]('(')+0x1,_0x576793[0x0]['lastIndexOf'](')'));var _0x14f43c=_0x576793[0x1];channels[_0x1e24cf['uniqueid']][_0x1a15ef]=_0x14f43c;}if(!_['includes']([_0x61fe('0x67'),_0x61fe('0x68'),'execif',_0x61fe('0x60'),_0x61fe('0x69')],_0x1e24cf['application'][_0x61fe('0x5f')]())){channels[_0x1e24cf[_0x61fe('0x15')]][_0x61fe('0x6a')]=_0x1e24cf[_0x61fe('0x5e')];channels[_0x1e24cf['uniqueid']][_0x61fe('0x51')]=_0x1e24cf['appdata'];}}}catch(_0x3174ce){utils[_0x61fe('0x29')](util['format'](_0x61fe('0x5d'),_0x1e24cf[_0x61fe('0x15')]),_0x3174ce);}};