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