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