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