4fb73ba6af09ec1222228fd7e906731a65c2d006
[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 _0x8208=['FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','interface','calleridnum','connectedlinenum','lastevent','accountcode','then','UserId','request','CreateVoiceCallReport','recording','newchannel','debug','format','OutgoingSpoolFailed','context','exten','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','diffTime','endtime','starttime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','now','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','varset','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','destination','xmd-callerid-preview','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid','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','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','[%s][calls][varset]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','[%s][calls][newexten]','lodash','util','./utils','./transfers.controller','NO\x20ANSWER'];(function(_0x505fbf,_0x33e41d){var _0x4cc28c=function(_0x1120da){while(--_0x1120da){_0x505fbf['push'](_0x505fbf['shift']());}};_0x4cc28c(++_0x33e41d);}(_0x8208,0x14b));var _0x8820=function(_0x1699c0,_0x56b5fe){_0x1699c0=_0x1699c0-0x0;var _0x9941c1=_0x8208[_0x1699c0];return _0x9941c1;};'use strict';var _=require(_0x8820('0x0'));var util=require(_0x8820('0x1'));var utils=require(_0x8820('0x2'));var transfers=require(_0x8820('0x3'));var dispositions=[_0x8820('0x4'),_0x8820('0x5'),_0x8820('0x5'),_0x8820('0x4'),_0x8820('0x4'),'NO\x20ANSWER',_0x8820('0x6'),_0x8820('0x7'),_0x8820('0x5'),_0x8820('0x5'),_0x8820('0x5')];var channels={};function writeDB(_0x23ace5){var _0x4ce495;if(transfers[_0x8820('0x8')][_0x23ace5[_0x8820('0x9')]]){_0x4ce495=_0x23ace5['uniqueid'];_0x23ace5[_0x8820('0x9')]=transfers['blinds'][_0x23ace5['uniqueid']][_0x8820('0xa')];}utils[_0x8820('0xb')](util['format'](_0x8820('0xc'),_0x23ace5['uniqueid'],_0x23ace5[_0x8820('0xd')],_0x23ace5['queue'],_0x23ace5['membername'],_0x23ace5[_0x8820('0xe')],_0x23ace5[_0x8820('0xf')],_0x23ace5[_0x8820('0x10')],_0x23ace5[_0x8820('0x11')]));if(_0x23ace5[_0x8820('0x12')]){utils['getUserByInternal'](_0x23ace5[_0x8820('0x12')])[_0x8820('0x13')](function(_0x3887d5){if(_0x3887d5){_0x23ace5[_0x8820('0x14')]=_0x3887d5['id'];}utils[_0x8820('0x15')](_0x8820('0x16'),_0x23ace5);});}else{utils['request'](_0x8820('0x16'),_0x23ace5);}if(channels[_0x23ace5['uniqueid']]){delete channels[_0x23ace5[_0x8820('0x9')]];}else if(_0x4ce495&&channels[_0x4ce495]){if(!transfers[_0x8820('0x8')][_0x4ce495][_0x8820('0x17')])delete transfers[_0x8820('0x8')][_0x4ce495];delete channels[_0x4ce495];}}exports[_0x8820('0x18')]=function(_0xeda9e7){try{utils[_0x8820('0x19')](util[_0x8820('0x1a')]('[%s][calls][newchannel]',_0xeda9e7[_0x8820('0x9')]),_0xeda9e7);if(_0xeda9e7[_0x8820('0x9')]==_0xeda9e7['linkedid']&&_0xeda9e7['channel']!=_0x8820('0x1b')){utils['info'](util[_0x8820('0x1a')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0xeda9e7[_0x8820('0x9')],_0xeda9e7[_0x8820('0x1c')],_0xeda9e7[_0x8820('0x1d')]));channels[_0xeda9e7[_0x8820('0x9')]]={'uniqueid':_0xeda9e7['uniqueid'],'accountcode':_0xeda9e7['accountcode'],'source':_0xeda9e7[_0x8820('0xf')],'destination':_0xeda9e7['exten'],'destinationcontext':_0xeda9e7['context'],'channel':_0xeda9e7[_0x8820('0xd')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x8820('0x1e')};}}catch(_0x5e6650){utils[_0x8820('0x1f')](util[_0x8820('0x1a')]('[%s][calls][newchannel]',_0xeda9e7[_0x8820('0x9')]),_0x5e6650);}};exports[_0x8820('0x20')]=function(_0x10c5d9){try{utils['debug'](util[_0x8820('0x1a')](_0x8820('0x21'),_0x10c5d9[_0x8820('0x9')]),_0x10c5d9);if(!_[_0x8820('0x22')](channels[_0x10c5d9['uniqueid']])&&_0x10c5d9[_0x8820('0x23')]==0x6){utils['info'](util[_0x8820('0x1a')](_0x8820('0x24'),_0x10c5d9[_0x8820('0x9')],_0x10c5d9[_0x8820('0x1c')],_0x10c5d9[_0x8820('0xd')]));if(_['isNil'](channels[_0x10c5d9[_0x8820('0x9')]][_0x8820('0x25')])){channels[_0x10c5d9['uniqueid']][_0x8820('0x25')]=utils['now']();}}else if(!_[_0x8820('0x22')](channels[_0x10c5d9[_0x8820('0x26')]])&&_0x10c5d9[_0x8820('0x23')]==0x6&&_0x10c5d9[_0x8820('0x1c')]!='transfer'){utils['info'](util['format'](_0x8820('0x27'),_0x10c5d9['uniqueid'],_0x10c5d9[_0x8820('0x26')],_0x10c5d9[_0x8820('0x1c')],_0x10c5d9[_0x8820('0xd')]));channels[_0x10c5d9[_0x8820('0x26')]]['accountcode']=_0x10c5d9[_0x8820('0x12')];channels[_0x10c5d9['linkedid']][_0x8820('0x28')]=_0x10c5d9['channel'];if(_['isNil'](channels[_0x10c5d9[_0x8820('0x26')]]['answertime'])){channels[_0x10c5d9['linkedid']][_0x8820('0x29')]=utils['now']();}channels[_0x10c5d9[_0x8820('0x26')]][_0x8820('0x2a')]=dispositions[_[_0x8820('0x2b')](_0x10c5d9[_0x8820('0x23')])]||_0x8820('0x6');}}catch(_0x191f86){utils[_0x8820('0x1f')](util[_0x8820('0x1a')](_0x8820('0x21'),_0x10c5d9['uniqueid']),_0x191f86);}};exports[_0x8820('0x2c')]=function(_0xf34947){try{if(!_[_0x8820('0x22')](channels[_0xf34947['uniqueid']])){utils[_0x8820('0x19')](util[_0x8820('0x1a')](_0x8820('0x2d'),_0xf34947[_0x8820('0x9')]),_0xf34947);if(_[_0x8820('0x22')](channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x2e')])){channels[_0xf34947[_0x8820('0x9')]]['callerid']=_0xf34947[_0x8820('0x2f')]+'\x20<'+_0xf34947['calleridnum']+'>';}utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x30'),_0xf34947[_0x8820('0x9')],channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x2e')],_0xf34947[_0x8820('0x31')]));channels[_0xf34947['uniqueid']]['endtime']=utils['now']();channels[_0xf34947['uniqueid']][_0x8820('0x32')]=utils[_0x8820('0x33')](channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x34')],channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x35')]);channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x36')]=channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x29')]?utils[_0x8820('0x33')](channels[_0xf34947['uniqueid']][_0x8820('0x34')],channels[_0xf34947[_0x8820('0x9')]][_0x8820('0x29')]):0x0;writeDB(channels[_0xf34947[_0x8820('0x9')]]);}}catch(_0x2c964b){utils[_0x8820('0x1f')](util['format']('[%s][calls][hangup]',_0xf34947[_0x8820('0x9')]),_0x2c964b);}};exports[_0x8820('0x37')]=function(_0x253e08){try{if(!_[_0x8820('0x22')](channels[_0x253e08[_0x8820('0x38')]])){utils[_0x8820('0x19')](util['format']('[%s][calls][attendedtransfer]',_0x253e08['origtransfereruniqueid']),_0x253e08);if(channels[_0x253e08[_0x8820('0x38')]][_0x8820('0xd')]==_0x253e08[_0x8820('0x39')]){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x3a'),_0x253e08[_0x8820('0x3b')],_0x253e08[_0x8820('0x38')],_0x253e08[_0x8820('0x3c')]));channels[_0x253e08['localtwolinkedid']][_0x8820('0x28')]=_0x253e08[_0x8820('0x3c')];channels[_0x253e08[_0x8820('0x38')]][_0x8820('0x3d')]=_0x8820('0x3e');}else if(channels[_0x253e08[_0x8820('0x38')]][_0x8820('0xd')]=_0x253e08[_0x8820('0x3f')]){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x3a'),_0x253e08['origtransfereruniqueid'],_0x253e08[_0x8820('0x38')],_0x253e08[_0x8820('0x40')]));channels[_0x253e08['localtwolinkedid']][_0x8820('0x28')]=_0x253e08[_0x8820('0x40')];channels[_0x253e08['localtwolinkedid']]['userfield']=_0x8820('0x3e');}}}catch(_0x26d532){utils[_0x8820('0x1f')](util[_0x8820('0x1a')](_0x8820('0x41'),_0x253e08[_0x8820('0x3b')]),_0x26d532);}};exports[_0x8820('0x42')]=function(_0x2fbfe8){try{if(!_[_0x8820('0x22')](channels[_0x2fbfe8[_0x8820('0x9')]])){utils['debug'](util[_0x8820('0x1a')](_0x8820('0x43'),_0x2fbfe8['uniqueid']),_0x2fbfe8);channels[_0x2fbfe8[_0x8820('0x9')]][_0x8820('0x44')]=utils[_0x8820('0x45')]();utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x46'),_0x2fbfe8['uniqueid'],channels[_0x2fbfe8[_0x8820('0x9')]][_0x8820('0x44')]));}}catch(_0x2dcd7a){utils[_0x8820('0x1f')](util['format'](_0x8820('0x43'),_0x2fbfe8[_0x8820('0x9')]),_0x2dcd7a);}};exports['musiconholdstop']=function(_0x1970db){try{if(!_['isNil'](channels[_0x1970db[_0x8820('0x9')]])){utils[_0x8820('0x19')](util['format']('[%s][calls][musiconholdstop]',_0x1970db['uniqueid']),_0x1970db);if(!_[_0x8820('0x22')](channels[_0x1970db['uniqueid']]['musiconholdstartAt'])){channels[_0x1970db['uniqueid']][_0x8820('0x47')]+=utils[_0x8820('0x33')](utils[_0x8820('0x45')](),channels[_0x1970db[_0x8820('0x9')]][_0x8820('0x44')]);utils['info'](util[_0x8820('0x1a')](_0x8820('0x48'),_0x1970db['uniqueid'],channels[_0x1970db[_0x8820('0x9')]]['mohtime']));delete channels[_0x1970db[_0x8820('0x9')]][_0x8820('0x44')];}}}catch(_0x1c037d){utils['error'](util[_0x8820('0x1a')](_0x8820('0x49'),_0x1970db[_0x8820('0x9')]),_0x1c037d);}};exports[_0x8820('0x4a')]=function(_0x5a8551){try{if(!_[_0x8820('0x22')](channels[_0x5a8551[_0x8820('0x9')]])){utils[_0x8820('0x19')](util['format']('[%s][calls][varset]',_0x5a8551['uniqueid']),_0x5a8551);if(!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')][_0x8820('0x4c')])){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x4d'),_0x5a8551[_0x8820('0x9')],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]][_0x8820('0x4f')]=_0x5a8551[_0x8820('0x4e')];}if(!_[_0x8820('0x22')](_0x5a8551['variable'][_0x8820('0x50')])){utils[_0x8820('0xb')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x5a8551['uniqueid'],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]][_0x8820('0x51')]=_0x5a8551[_0x8820('0x4e')];channels[_0x5a8551[_0x8820('0x9')]]['callerid']='\x22'+_0x5a8551[_0x8820('0x4e')]+'\x22\x20<'+_0x5a8551[_0x8820('0x4e')]+'>';}if(!_['isNil'](_0x5a8551['variable'][_0x8820('0x52')])||!_['isNil'](_0x5a8551[_0x8820('0x4b')]['xmd-callerid'])){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x53'),_0x5a8551[_0x8820('0x9')],!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')][_0x8820('0x52')])?'xmd-callerid-preview':_0x8820('0x54'),_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]]['callerid']=_0x5a8551[_0x8820('0x4e')];}if(!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')][_0x8820('0x55')])||!_['isNil'](_0x5a8551[_0x8820('0x4b')][_0x8820('0x56')])){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x53'),_0x5a8551[_0x8820('0x9')],!_[_0x8820('0x22')](_0x5a8551['variable'][_0x8820('0x55')])?'xmd-queue':_0x8820('0x56'),_0x5a8551['value']));channels[_0x5a8551[_0x8820('0x9')]]['lastapplication']='Queue';channels[_0x5a8551[_0x8820('0x9')]][_0x8820('0x57')]=_0x5a8551['value'];channels[_0x5a8551[_0x8820('0x9')]]['queue']=!![];}if(!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')][_0x8820('0x58')])){utils['info'](util['format'](_0x8820('0x59'),_0x5a8551[_0x8820('0x9')],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551['uniqueid']][_0x8820('0x5a')]=_0x5a8551[_0x8820('0x4e')];}if(!_[_0x8820('0x22')](_0x5a8551['variable'][_0x8820('0x5b')])){utils['info'](util[_0x8820('0x1a')](_0x8820('0x5c'),_0x5a8551[_0x8820('0x9')],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]][_0x8820('0x5d')]=_0x5a8551[_0x8820('0x4e')];}if(!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')][_0x8820('0x5e')])){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x5f'),_0x5a8551[_0x8820('0x9')],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]]['routeid']=_0x5a8551[_0x8820('0x4e')];}if(!_[_0x8820('0x22')](_0x5a8551[_0x8820('0x4b')]['sipcallid'])){utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x60'),_0x5a8551[_0x8820('0x9')],_0x5a8551[_0x8820('0x4e')]));channels[_0x5a8551[_0x8820('0x9')]][_0x8820('0x61')]=_0x5a8551[_0x8820('0x4e')];}}}catch(_0x366744){utils[_0x8820('0x1f')](util[_0x8820('0x1a')](_0x8820('0x62'),_0x5a8551[_0x8820('0x9')]),_0x366744);}};exports['newexten']=function(_0x28ad15){try{if(!_[_0x8820('0x22')](channels[_0x28ad15['uniqueid']])){utils['debug'](util['format']('[%s][calls][newexten]',_0x28ad15[_0x8820('0x9')]),_0x28ad15);utils[_0x8820('0xb')](util[_0x8820('0x1a')](_0x8820('0x63'),_0x28ad15[_0x8820('0x9')],_0x28ad15[_0x8820('0x64')],_0x28ad15[_0x8820('0x65')]));if(_0x28ad15[_0x8820('0x64')]['toLowerCase']()==_0x8820('0x66')&&_['startsWith'](_0x28ad15[_0x8820('0x65')]['toLowerCase'](),_0x8820('0x67'))){var _0x53256f=_0x28ad15['appdata'][_0x8820('0x68')]('=');var _0x443b3e=_0x53256f[0x0][_0x8820('0x69')](_0x53256f[0x0]['lastIndexOf']('(')+0x1,_0x53256f[0x0][_0x8820('0x6a')](')'));var _0x5d3857=_0x53256f[0x1];channels[_0x28ad15['uniqueid']][_0x443b3e]=_0x5d3857;}if(!_[_0x8820('0x6b')]([_0x8820('0x2c'),_0x8820('0x6c'),_0x8820('0x6d'),_0x8820('0x66'),_0x8820('0x6e')],_0x28ad15[_0x8820('0x64')]['toLowerCase']())){channels[_0x28ad15['uniqueid']]['lastapplication']=_0x28ad15[_0x8820('0x64')];channels[_0x28ad15[_0x8820('0x9')]]['lastdata']=_0x28ad15[_0x8820('0x65')];}}}catch(_0x5b3c81){utils[_0x8820('0x1f')](util['format'](_0x8820('0x6f'),_0x28ad15[_0x8820('0x9')]),_0x5b3c81);}};