Built motion from commit 9d7072cc.|2.5.39
[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 _0x11e5=['xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','cdr','lastIndexOf','includes','noop','execif','gotoif','lastapplication','lodash','./utils','./transfers.controller','FAILED','NO\x20ANSWER','blinds','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','queue','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','UserId','CreateVoiceCallReport','request','recording','newchannel','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','channel','now','DOCUMENTATION','error','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','ANSWERED','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','secondtransfererchannel','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','userfield','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','variable','[%s][calls][varset]\x20variable:%s\x20value:%s'];(function(_0x424a9a,_0x2dd9af){var _0xa7831c=function(_0x512534){while(--_0x512534){_0x424a9a['push'](_0x424a9a['shift']());}};_0xa7831c(++_0x2dd9af);}(_0x11e5,0x8b));var _0x511e=function(_0x25c662,_0x2a558f){_0x25c662=_0x25c662-0x0;var _0x1389a1=_0x11e5[_0x25c662];return _0x1389a1;};'use strict';var _=require(_0x511e('0x0'));var util=require('util');var utils=require(_0x511e('0x1'));var transfers=require(_0x511e('0x2'));var dispositions=['NO\x20ANSWER',_0x511e('0x3'),_0x511e('0x3'),_0x511e('0x4'),'NO\x20ANSWER',_0x511e('0x4'),'ANSWERED','BUSY',_0x511e('0x3'),_0x511e('0x3'),_0x511e('0x3')];var channels={};function writeDB(_0x57cac3){var _0x47cf56;if(transfers[_0x511e('0x5')][_0x57cac3[_0x511e('0x6')]]){_0x47cf56=_0x57cac3[_0x511e('0x6')];_0x57cac3[_0x511e('0x6')]=transfers[_0x511e('0x5')][_0x57cac3[_0x511e('0x6')]][_0x511e('0x7')];}utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0xa'),_0x57cac3[_0x511e('0x6')],_0x57cac3['channel'],_0x57cac3[_0x511e('0xb')],_0x57cac3['membername'],_0x57cac3['interface'],_0x57cac3[_0x511e('0xc')],_0x57cac3[_0x511e('0xd')],_0x57cac3[_0x511e('0xe')]));if(_0x57cac3[_0x511e('0xf')]){utils[_0x511e('0x10')](_0x57cac3[_0x511e('0xf')])['then'](function(_0xdd0dcd){if(_0xdd0dcd){_0x57cac3[_0x511e('0x11')]=_0xdd0dcd['id'];}utils['request'](_0x511e('0x12'),_0x57cac3);});}else{utils[_0x511e('0x13')]('CreateVoiceCallReport',_0x57cac3);}if(channels[_0x57cac3[_0x511e('0x6')]]){delete channels[_0x57cac3[_0x511e('0x6')]];}else if(_0x47cf56&&channels[_0x47cf56]){if(!transfers[_0x511e('0x5')][_0x47cf56][_0x511e('0x14')])delete transfers['blinds'][_0x47cf56];delete channels[_0x47cf56];}}exports[_0x511e('0x15')]=function(_0x2dd346){try{utils[_0x511e('0x16')](util['format'](_0x511e('0x17'),_0x2dd346['uniqueid']),_0x2dd346);if(_0x2dd346[_0x511e('0x6')]==_0x2dd346['linkedid']&&_0x2dd346['channel']!=_0x511e('0x18')){utils['info'](util[_0x511e('0x9')](_0x511e('0x19'),_0x2dd346[_0x511e('0x6')],_0x2dd346[_0x511e('0x1a')],_0x2dd346[_0x511e('0x1b')]));channels[_0x2dd346[_0x511e('0x6')]]={'uniqueid':_0x2dd346[_0x511e('0x6')],'accountcode':_0x2dd346[_0x511e('0xf')],'source':_0x2dd346['calleridnum'],'destination':_0x2dd346[_0x511e('0x1b')],'destinationcontext':_0x2dd346[_0x511e('0x1a')],'channel':_0x2dd346[_0x511e('0x1c')],'starttime':utils[_0x511e('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x511e('0x4'),'amaflags':_0x511e('0x1e')};}}catch(_0x886b6){utils[_0x511e('0x1f')](util[_0x511e('0x9')](_0x511e('0x17'),_0x2dd346['uniqueid']),_0x886b6);}};exports['newstate']=function(_0x3e1711){try{utils['debug'](util[_0x511e('0x9')]('[%s][calls][newstate]',_0x3e1711[_0x511e('0x6')]),_0x3e1711);if(!_[_0x511e('0x20')](channels[_0x3e1711[_0x511e('0x6')]])&&_0x3e1711[_0x511e('0x21')]==0x6){utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0x22'),_0x3e1711[_0x511e('0x6')],_0x3e1711[_0x511e('0x1a')],_0x3e1711[_0x511e('0x1c')]));if(_['isNil'](channels[_0x3e1711[_0x511e('0x6')]][_0x511e('0x23')])){channels[_0x3e1711[_0x511e('0x6')]][_0x511e('0x23')]=utils[_0x511e('0x1d')]();}}else if(!_['isNil'](channels[_0x3e1711[_0x511e('0x24')]])&&_0x3e1711['channelstate']==0x6&&_0x3e1711['context']!=_0x511e('0x25')){utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0x26'),_0x3e1711[_0x511e('0x6')],_0x3e1711['linkedid'],_0x3e1711[_0x511e('0x1a')],_0x3e1711[_0x511e('0x1c')]));channels[_0x3e1711[_0x511e('0x24')]][_0x511e('0xf')]=_0x3e1711[_0x511e('0xf')];channels[_0x3e1711['linkedid']][_0x511e('0x27')]=_0x3e1711[_0x511e('0x1c')];if(_[_0x511e('0x20')](channels[_0x3e1711[_0x511e('0x24')]][_0x511e('0x28')])){channels[_0x3e1711[_0x511e('0x24')]][_0x511e('0x28')]=utils[_0x511e('0x1d')]();}channels[_0x3e1711['linkedid']][_0x511e('0x29')]=dispositions[_[_0x511e('0x2a')](_0x3e1711[_0x511e('0x21')])]||_0x511e('0x2b');}}catch(_0x4d2bb8){utils['error'](util[_0x511e('0x9')]('[%s][calls][newstate]',_0x3e1711['uniqueid']),_0x4d2bb8);}};exports[_0x511e('0x2c')]=function(_0x319d87){try{if(!_[_0x511e('0x20')](channels[_0x319d87[_0x511e('0x6')]])){utils[_0x511e('0x16')](util['format'](_0x511e('0x2d'),_0x319d87[_0x511e('0x6')]),_0x319d87);if(_[_0x511e('0x20')](channels[_0x319d87['uniqueid']][_0x511e('0x2e')])){channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x2e')]=_0x319d87['calleridname']+'\x20<'+_0x319d87[_0x511e('0xc')]+'>';}utils[_0x511e('0x8')](util['format'](_0x511e('0x2f'),_0x319d87[_0x511e('0x6')],channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x2e')],_0x319d87[_0x511e('0x30')]));channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x31')]=utils[_0x511e('0x1d')]();channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x32')]=utils[_0x511e('0x33')](channels[_0x319d87['uniqueid']][_0x511e('0x31')],channels[_0x319d87['uniqueid']]['starttime']);channels[_0x319d87[_0x511e('0x6')]]['billableseconds']=channels[_0x319d87['uniqueid']][_0x511e('0x28')]?utils[_0x511e('0x33')](channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x31')],channels[_0x319d87[_0x511e('0x6')]][_0x511e('0x28')]):0x0;writeDB(channels[_0x319d87[_0x511e('0x6')]]);}}catch(_0x27a78a){utils[_0x511e('0x1f')](util[_0x511e('0x9')](_0x511e('0x2d'),_0x319d87[_0x511e('0x6')]),_0x27a78a);}};exports[_0x511e('0x34')]=function(_0x443908){try{if(!_['isNil'](channels[_0x443908['localtwolinkedid']])){utils[_0x511e('0x16')](util[_0x511e('0x9')](_0x511e('0x35'),_0x443908[_0x511e('0x36')]),_0x443908);if(channels[_0x443908[_0x511e('0x37')]]['channel']==_0x443908[_0x511e('0x38')]){utils[_0x511e('0x8')](util[_0x511e('0x9')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x443908['origtransfereruniqueid'],_0x443908['localtwolinkedid'],_0x443908[_0x511e('0x39')]));channels[_0x443908[_0x511e('0x37')]][_0x511e('0x27')]=_0x443908['secondtransfererchannel'];channels[_0x443908['localtwolinkedid']]['userfield']=_0x511e('0x3a');}else if(channels[_0x443908[_0x511e('0x37')]][_0x511e('0x1c')]=_0x443908[_0x511e('0x3b')]){utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0x3c'),_0x443908[_0x511e('0x36')],_0x443908[_0x511e('0x37')],_0x443908[_0x511e('0x3d')]));channels[_0x443908[_0x511e('0x37')]][_0x511e('0x27')]=_0x443908[_0x511e('0x3d')];channels[_0x443908[_0x511e('0x37')]][_0x511e('0x3e')]=_0x511e('0x3a');}}}catch(_0x15e6e8){utils[_0x511e('0x1f')](util[_0x511e('0x9')](_0x511e('0x35'),_0x443908[_0x511e('0x36')]),_0x15e6e8);}};exports[_0x511e('0x3f')]=function(_0x204783){try{if(!_[_0x511e('0x20')](channels[_0x204783[_0x511e('0x6')]])){utils[_0x511e('0x16')](util[_0x511e('0x9')](_0x511e('0x40'),_0x204783[_0x511e('0x6')]),_0x204783);channels[_0x204783[_0x511e('0x6')]][_0x511e('0x41')]=utils['now']();utils[_0x511e('0x8')](util['format'](_0x511e('0x42'),_0x204783[_0x511e('0x6')],channels[_0x204783[_0x511e('0x6')]]['musiconholdstartAt']));}}catch(_0x370126){utils[_0x511e('0x1f')](util[_0x511e('0x9')]('[%s][calls][musiconholdstart]',_0x204783[_0x511e('0x6')]),_0x370126);}};exports[_0x511e('0x43')]=function(_0x4a8e96){try{if(!_[_0x511e('0x20')](channels[_0x4a8e96[_0x511e('0x6')]])){utils[_0x511e('0x16')](util[_0x511e('0x9')]('[%s][calls][musiconholdstop]',_0x4a8e96[_0x511e('0x6')]),_0x4a8e96);if(!_['isNil'](channels[_0x4a8e96[_0x511e('0x6')]][_0x511e('0x41')])){channels[_0x4a8e96[_0x511e('0x6')]]['mohtime']+=utils[_0x511e('0x33')](utils['now'](),channels[_0x4a8e96[_0x511e('0x6')]][_0x511e('0x41')]);utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0x44'),_0x4a8e96['uniqueid'],channels[_0x4a8e96[_0x511e('0x6')]][_0x511e('0x45')]));delete channels[_0x4a8e96[_0x511e('0x6')]][_0x511e('0x41')];}}}catch(_0x1d8688){utils[_0x511e('0x1f')](util[_0x511e('0x9')](_0x511e('0x46'),_0x4a8e96['uniqueid']),_0x1d8688);}};exports[_0x511e('0x47')]=function(_0x2eb672){try{if(!_['isNil'](channels[_0x2eb672[_0x511e('0x6')]])){utils[_0x511e('0x16')](util[_0x511e('0x9')](_0x511e('0x48'),_0x2eb672[_0x511e('0x6')]),_0x2eb672);if(!_[_0x511e('0x20')](_0x2eb672['variable'][_0x511e('0x49')])){utils[_0x511e('0x8')](util['format'](_0x511e('0x4a'),_0x2eb672['uniqueid'],_0x2eb672[_0x511e('0x4b')]));channels[_0x2eb672[_0x511e('0x6')]]['source']=_0x2eb672['value'];}if(!_['isNil'](_0x2eb672['variable'][_0x511e('0x4c')])){utils['info'](util['format'](_0x511e('0x4d'),_0x2eb672[_0x511e('0x6')],_0x2eb672['value']));channels[_0x2eb672[_0x511e('0x6')]]['destination']=_0x2eb672[_0x511e('0x4b')];channels[_0x2eb672['uniqueid']]['callerid']='\x22'+_0x2eb672['value']+_0x511e('0x4e')+_0x2eb672[_0x511e('0x4b')]+'>';}if(!_['isNil'](_0x2eb672['variable']['xmd-callerid-preview'])||!_['isNil'](_0x2eb672[_0x511e('0x4f')]['xmd-callerid'])){utils[_0x511e('0x8')](util['format'](_0x511e('0x50'),_0x2eb672[_0x511e('0x6')],!_[_0x511e('0x20')](_0x2eb672[_0x511e('0x4f')]['xmd-callerid-preview'])?_0x511e('0x51'):_0x511e('0x52'),_0x2eb672[_0x511e('0x4b')]));channels[_0x2eb672[_0x511e('0x6')]][_0x511e('0x2e')]=_0x2eb672['value'];}if(!_['isNil'](_0x2eb672[_0x511e('0x4f')][_0x511e('0x53')])||!_[_0x511e('0x20')](_0x2eb672[_0x511e('0x4f')][_0x511e('0x54')])){utils[_0x511e('0x8')](util[_0x511e('0x9')](_0x511e('0x50'),_0x2eb672[_0x511e('0x6')],!_[_0x511e('0x20')](_0x2eb672['variable']['xmd-queue'])?'xmd-queue':_0x511e('0x54'),_0x2eb672['value']));channels[_0x2eb672[_0x511e('0x6')]]['lastapplication']=_0x511e('0x55');channels[_0x2eb672['uniqueid']][_0x511e('0x56')]=_0x2eb672[_0x511e('0x4b')];channels[_0x2eb672[_0x511e('0x6')]][_0x511e('0xb')]=!![];}if(!_[_0x511e('0x20')](_0x2eb672['variable'][_0x511e('0x57')])){utils['info'](util[_0x511e('0x9')](_0x511e('0x58'),_0x2eb672[_0x511e('0x6')],_0x2eb672['value']));channels[_0x2eb672[_0x511e('0x6')]][_0x511e('0x59')]=_0x2eb672[_0x511e('0x4b')];}if(!_[_0x511e('0x20')](_0x2eb672['variable']['xmd-cdrtype'])){utils[_0x511e('0x8')](util[_0x511e('0x9')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x2eb672[_0x511e('0x6')],_0x2eb672['value']));channels[_0x2eb672[_0x511e('0x6')]][_0x511e('0x5a')]=_0x2eb672['value'];}if(!_['isNil'](_0x2eb672[_0x511e('0x4f')][_0x511e('0x5b')])){utils[_0x511e('0x8')](util['format'](_0x511e('0x5c'),_0x2eb672[_0x511e('0x6')],_0x2eb672[_0x511e('0x4b')]));channels[_0x2eb672[_0x511e('0x6')]][_0x511e('0x5d')]=_0x2eb672[_0x511e('0x4b')];}if(!_[_0x511e('0x20')](_0x2eb672['variable'][_0x511e('0x5e')])){utils[_0x511e('0x8')](util['format']('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x2eb672[_0x511e('0x6')],_0x2eb672[_0x511e('0x4b')]));channels[_0x2eb672['uniqueid']][_0x511e('0x5e')]=_0x2eb672['value'];}}}catch(_0x21cb81){utils['error'](util['format'](_0x511e('0x48'),_0x2eb672[_0x511e('0x6')]),_0x21cb81);}};exports[_0x511e('0x5f')]=function(_0x3a0284){try{if(!_[_0x511e('0x20')](channels[_0x3a0284['uniqueid']])){utils['debug'](util[_0x511e('0x9')](_0x511e('0x60'),_0x3a0284[_0x511e('0x6')]),_0x3a0284);utils['info'](util[_0x511e('0x9')](_0x511e('0x61'),_0x3a0284['uniqueid'],_0x3a0284['application'],_0x3a0284[_0x511e('0x62')]));if(_0x3a0284[_0x511e('0x63')][_0x511e('0x64')]()==_0x511e('0x65')&&_[_0x511e('0x66')](_0x3a0284[_0x511e('0x62')]['toLowerCase'](),_0x511e('0x67'))){var _0x30b1b1=_0x3a0284['appdata']['split']('=');var _0x2490c9=_0x30b1b1[0x0]['substring'](_0x30b1b1[0x0][_0x511e('0x68')]('(')+0x1,_0x30b1b1[0x0]['lastIndexOf'](')'));var _0x4b01e2=_0x30b1b1[0x1];channels[_0x3a0284[_0x511e('0x6')]][_0x2490c9]=_0x4b01e2;}if(!_[_0x511e('0x69')]([_0x511e('0x2c'),_0x511e('0x6a'),_0x511e('0x6b'),_0x511e('0x65'),_0x511e('0x6c')],_0x3a0284[_0x511e('0x63')][_0x511e('0x64')]())){channels[_0x3a0284[_0x511e('0x6')]][_0x511e('0x6d')]=_0x3a0284[_0x511e('0x63')];channels[_0x3a0284[_0x511e('0x6')]][_0x511e('0x56')]=_0x3a0284[_0x511e('0x62')];}}}catch(_0x327516){utils['error'](util[_0x511e('0x9')](_0x511e('0x60'),_0x3a0284[_0x511e('0x6')]),_0x327516);}};