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