4fc4e6c7b6f4a21332564816848cf399facae655
[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 _0xeccc=['ContactId','xmd-cdrtype','type','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr','split','lastIndexOf','includes','execif','set','gotoif','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','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','context','exten','now','error','newstate','debug','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','info','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','userfield','_attended','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','destination','\x22\x20<','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s'];(function(_0x8a30cf,_0x40f19b){var _0x20f439=function(_0x157a5d){while(--_0x157a5d){_0x8a30cf['push'](_0x8a30cf['shift']());}};_0x20f439(++_0x40f19b);}(_0xeccc,0x15b));var _0xcecc=function(_0xdcda3,_0x4252fb){_0xdcda3=_0xdcda3-0x0;var _0x2bec82=_0xeccc[_0xdcda3];return _0x2bec82;};'use strict';var _=require('lodash');var util=require(_0xcecc('0x0'));var utils=require(_0xcecc('0x1'));var dispositions=[_0xcecc('0x2'),'FAILED',_0xcecc('0x3'),_0xcecc('0x2'),_0xcecc('0x2'),_0xcecc('0x2'),_0xcecc('0x4'),_0xcecc('0x5'),_0xcecc('0x3'),_0xcecc('0x3'),_0xcecc('0x3')];var channels={};function writeDB(_0x1843ab){utils['info'](util[_0xcecc('0x6')](_0xcecc('0x7'),_0x1843ab[_0xcecc('0x8')],_0x1843ab[_0xcecc('0x9')],_0x1843ab[_0xcecc('0xa')],_0x1843ab[_0xcecc('0xb')],_0x1843ab[_0xcecc('0xc')],_0x1843ab[_0xcecc('0xd')],_0x1843ab[_0xcecc('0xe')],_0x1843ab[_0xcecc('0xf')]));if(_0x1843ab[_0xcecc('0x10')]){utils[_0xcecc('0x11')](_0x1843ab[_0xcecc('0x10')])[_0xcecc('0x12')](function(_0x4b53c9){if(_0x4b53c9){_0x1843ab['UserId']=_0x4b53c9['id'];}utils[_0xcecc('0x13')](_0xcecc('0x14'),_0x1843ab);});}else{utils[_0xcecc('0x13')](_0xcecc('0x14'),_0x1843ab);}if(channels[_0x1843ab[_0xcecc('0x8')]]){delete channels[_0x1843ab['uniqueid']];}}exports[_0xcecc('0x15')]=function(_0x812726){try{utils['debug'](util['format'](_0xcecc('0x16'),_0x812726[_0xcecc('0x8')]),_0x812726);if(_0x812726[_0xcecc('0x8')]==_0x812726[_0xcecc('0x17')]&&_0x812726[_0xcecc('0x9')]!=_0xcecc('0x18')){utils['info'](util[_0xcecc('0x6')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x812726[_0xcecc('0x8')],_0x812726[_0xcecc('0x19')],_0x812726[_0xcecc('0x1a')]));channels[_0x812726['uniqueid']]={'uniqueid':_0x812726[_0xcecc('0x8')],'accountcode':_0x812726['accountcode'],'source':_0x812726[_0xcecc('0xd')],'destination':_0x812726[_0xcecc('0x1a')],'destinationcontext':_0x812726[_0xcecc('0x19')],'channel':_0x812726[_0xcecc('0x9')],'starttime':utils[_0xcecc('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':'DOCUMENTATION'};}}catch(_0x2f803c){utils[_0xcecc('0x1c')](util[_0xcecc('0x6')](_0xcecc('0x16'),_0x812726['uniqueid']),_0x2f803c);}};exports[_0xcecc('0x1d')]=function(_0x5d118f){try{utils[_0xcecc('0x1e')](util[_0xcecc('0x6')](_0xcecc('0x1f'),_0x5d118f[_0xcecc('0x8')]),_0x5d118f);if(!_[_0xcecc('0x20')](channels[_0x5d118f[_0xcecc('0x8')]])&&_0x5d118f[_0xcecc('0x21')]==0x6){utils['info'](util[_0xcecc('0x6')](_0xcecc('0x22'),_0x5d118f['uniqueid'],_0x5d118f[_0xcecc('0x19')],_0x5d118f['channel']));if(_['isNil'](channels[_0x5d118f[_0xcecc('0x8')]][_0xcecc('0x23')])){channels[_0x5d118f[_0xcecc('0x8')]]['systemanswertime']=utils[_0xcecc('0x1b')]();}}else if(!_[_0xcecc('0x20')](channels[_0x5d118f[_0xcecc('0x17')]])&&_0x5d118f[_0xcecc('0x21')]==0x6&&_0x5d118f[_0xcecc('0x19')]!=_0xcecc('0x24')){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x26'),_0x5d118f[_0xcecc('0x8')],_0x5d118f[_0xcecc('0x17')],_0x5d118f[_0xcecc('0x19')],_0x5d118f[_0xcecc('0x9')]));channels[_0x5d118f[_0xcecc('0x17')]]['accountcode']=_0x5d118f[_0xcecc('0x10')];channels[_0x5d118f[_0xcecc('0x17')]][_0xcecc('0x27')]=_0x5d118f[_0xcecc('0x9')];if(_['isNil'](channels[_0x5d118f['linkedid']][_0xcecc('0x28')])){channels[_0x5d118f[_0xcecc('0x17')]][_0xcecc('0x28')]=utils[_0xcecc('0x1b')]();}channels[_0x5d118f[_0xcecc('0x17')]][_0xcecc('0x29')]=dispositions[_[_0xcecc('0x2a')](_0x5d118f[_0xcecc('0x21')])]||_0xcecc('0x4');}}catch(_0x78e9fc){utils[_0xcecc('0x1c')](util[_0xcecc('0x6')]('[%s][calls][newstate]',_0x5d118f[_0xcecc('0x8')]),_0x78e9fc);}};exports[_0xcecc('0x2b')]=function(_0x28c167){try{if(!_[_0xcecc('0x20')](channels[_0x28c167[_0xcecc('0x8')]])){utils[_0xcecc('0x1e')](util[_0xcecc('0x6')](_0xcecc('0x2c'),_0x28c167[_0xcecc('0x8')]),_0x28c167);if(_[_0xcecc('0x20')](channels[_0x28c167['uniqueid']][_0xcecc('0x2d')])){channels[_0x28c167['uniqueid']][_0xcecc('0x2d')]=_0x28c167[_0xcecc('0x2e')]+'\x20<'+_0x28c167[_0xcecc('0xd')]+'>';}utils[_0xcecc('0x25')](util[_0xcecc('0x6')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x28c167[_0xcecc('0x8')],channels[_0x28c167[_0xcecc('0x8')]]['callerid'],_0x28c167[_0xcecc('0x2f')]));channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x30')]=utils['now']();channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x31')]=utils[_0xcecc('0x32')](channels[_0x28c167[_0xcecc('0x8')]]['endtime'],channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x33')]);channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x34')]=channels[_0x28c167['uniqueid']][_0xcecc('0x28')]?utils['diffTime'](channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x30')],channels[_0x28c167[_0xcecc('0x8')]][_0xcecc('0x28')]):0x0;writeDB(channels[_0x28c167[_0xcecc('0x8')]]);}}catch(_0xc9776b){utils[_0xcecc('0x1c')](util['format'](_0xcecc('0x2c'),_0x28c167[_0xcecc('0x8')]),_0xc9776b);}};exports[_0xcecc('0x35')]=function(_0x22a7dc){try{if(!_[_0xcecc('0x20')](channels[_0x22a7dc['localtwolinkedid']])){utils[_0xcecc('0x1e')](util[_0xcecc('0x6')](_0xcecc('0x36'),_0x22a7dc[_0xcecc('0x37')]),_0x22a7dc);if(channels[_0x22a7dc[_0xcecc('0x38')]][_0xcecc('0x9')]==_0x22a7dc[_0xcecc('0x39')]){utils[_0xcecc('0x25')](util['format'](_0xcecc('0x3a'),_0x22a7dc[_0xcecc('0x37')],_0x22a7dc['localtwolinkedid'],_0x22a7dc['secondtransfererchannel']));channels[_0x22a7dc['localtwolinkedid']][_0xcecc('0x27')]=_0x22a7dc['secondtransfererchannel'];channels[_0x22a7dc['localtwolinkedid']][_0xcecc('0x3b')]=_0xcecc('0x3c');}else if(channels[_0x22a7dc[_0xcecc('0x38')]]['channel']=_0x22a7dc['transfertargetchannel']){utils['info'](util['format'](_0xcecc('0x3a'),_0x22a7dc['origtransfereruniqueid'],_0x22a7dc['localtwolinkedid'],_0x22a7dc[_0xcecc('0x3d')]));channels[_0x22a7dc[_0xcecc('0x38')]][_0xcecc('0x27')]=_0x22a7dc[_0xcecc('0x3d')];channels[_0x22a7dc['localtwolinkedid']]['userfield']=_0xcecc('0x3c');}}}catch(_0x246365){utils[_0xcecc('0x1c')](util[_0xcecc('0x6')]('[%s][calls][attendedtransfer]',_0x22a7dc[_0xcecc('0x37')]),_0x246365);}};exports['musiconholdstart']=function(_0x20a691){try{if(!_['isNil'](channels[_0x20a691[_0xcecc('0x8')]])){utils[_0xcecc('0x1e')](util[_0xcecc('0x6')](_0xcecc('0x3e'),_0x20a691['uniqueid']),_0x20a691);channels[_0x20a691['uniqueid']][_0xcecc('0x3f')]=utils[_0xcecc('0x1b')]();utils['info'](util[_0xcecc('0x6')](_0xcecc('0x40'),_0x20a691[_0xcecc('0x8')],channels[_0x20a691[_0xcecc('0x8')]]['musiconholdstartAt']));}}catch(_0x4c22e5){utils[_0xcecc('0x1c')](util[_0xcecc('0x6')](_0xcecc('0x3e'),_0x20a691[_0xcecc('0x8')]),_0x4c22e5);}};exports[_0xcecc('0x41')]=function(_0x25730c){try{if(!_[_0xcecc('0x20')](channels[_0x25730c[_0xcecc('0x8')]])){utils[_0xcecc('0x1e')](util[_0xcecc('0x6')]('[%s][calls][musiconholdstop]',_0x25730c['uniqueid']),_0x25730c);if(!_[_0xcecc('0x20')](channels[_0x25730c[_0xcecc('0x8')]][_0xcecc('0x3f')])){channels[_0x25730c[_0xcecc('0x8')]][_0xcecc('0x42')]+=utils['diffTime'](utils[_0xcecc('0x1b')](),channels[_0x25730c[_0xcecc('0x8')]][_0xcecc('0x3f')]);utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x43'),_0x25730c[_0xcecc('0x8')],channels[_0x25730c[_0xcecc('0x8')]][_0xcecc('0x42')]));delete channels[_0x25730c[_0xcecc('0x8')]]['musiconholdstartAt'];}}}catch(_0x5b62ae){utils[_0xcecc('0x1c')](util[_0xcecc('0x6')](_0xcecc('0x44'),_0x25730c[_0xcecc('0x8')]),_0x5b62ae);}};exports[_0xcecc('0x45')]=function(_0x3b12e2){try{if(!_[_0xcecc('0x20')](channels[_0x3b12e2[_0xcecc('0x8')]])){utils[_0xcecc('0x1e')](util[_0xcecc('0x6')](_0xcecc('0x46'),_0x3b12e2[_0xcecc('0x8')]),_0x3b12e2);if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x48')])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x49'),_0x3b12e2[_0xcecc('0x8')],_0x3b12e2[_0xcecc('0x4a')]));channels[_0x3b12e2['uniqueid']][_0xcecc('0x4b')]=_0x3b12e2[_0xcecc('0x4a')];}if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x4c')])){utils[_0xcecc('0x25')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x3b12e2[_0xcecc('0x8')],_0x3b12e2['value']));channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x4d')]=_0x3b12e2[_0xcecc('0x4a')];channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x2d')]='\x22'+_0x3b12e2[_0xcecc('0x4a')]+_0xcecc('0x4e')+_0x3b12e2[_0xcecc('0x4a')]+'>';}if(!_[_0xcecc('0x20')](_0x3b12e2['variable']['xmd-callerid-preview'])||!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x4f')])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x50'),_0x3b12e2[_0xcecc('0x8')],!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x51')])?'xmd-callerid-preview':'xmd-callerid',_0x3b12e2[_0xcecc('0x4a')]));channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x2d')]=_0x3b12e2['value'];}if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x52')])||!_['isNil'](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x53')])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x50'),_0x3b12e2['uniqueid'],!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x52')])?_0xcecc('0x52'):'xmcs-queue',_0x3b12e2[_0xcecc('0x4a')]));channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x54')]=_0xcecc('0x55');channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x56')]=_0x3b12e2[_0xcecc('0x4a')];channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0xa')]=!![];}if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')][_0xcecc('0x57')])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x58'),_0x3b12e2[_0xcecc('0x8')],_0x3b12e2['value']));channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x59')]=_0x3b12e2[_0xcecc('0x4a')];}if(!_[_0xcecc('0x20')](_0x3b12e2['variable'][_0xcecc('0x5a')])){utils[_0xcecc('0x25')](util['format']('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x3b12e2[_0xcecc('0x8')],_0x3b12e2[_0xcecc('0x4a')]));channels[_0x3b12e2['uniqueid']][_0xcecc('0x5b')]=_0x3b12e2['value'];}if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')]['outboundrouteid'])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x5c'),_0x3b12e2[_0xcecc('0x8')],_0x3b12e2['value']));channels[_0x3b12e2['uniqueid']][_0xcecc('0x5d')]=_0x3b12e2[_0xcecc('0x4a')];}if(!_[_0xcecc('0x20')](_0x3b12e2[_0xcecc('0x47')]['sipcallid'])){utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x5e'),_0x3b12e2[_0xcecc('0x8')],_0x3b12e2[_0xcecc('0x4a')]));channels[_0x3b12e2[_0xcecc('0x8')]][_0xcecc('0x5f')]=_0x3b12e2[_0xcecc('0x4a')];}}}catch(_0x310728){utils[_0xcecc('0x1c')](util['format'](_0xcecc('0x46'),_0x3b12e2[_0xcecc('0x8')]),_0x310728);}};exports['newexten']=function(_0x12c3f2){try{if(!_[_0xcecc('0x20')](channels[_0x12c3f2[_0xcecc('0x8')]])){utils['debug'](util[_0xcecc('0x6')](_0xcecc('0x60'),_0x12c3f2['uniqueid']),_0x12c3f2);utils[_0xcecc('0x25')](util[_0xcecc('0x6')](_0xcecc('0x61'),_0x12c3f2[_0xcecc('0x8')],_0x12c3f2[_0xcecc('0x62')],_0x12c3f2[_0xcecc('0x63')]));if(_0x12c3f2[_0xcecc('0x62')][_0xcecc('0x64')]()=='set'&&_[_0xcecc('0x65')](_0x12c3f2[_0xcecc('0x63')]['toLowerCase'](),_0xcecc('0x66'))){var _0x5e20c8=_0x12c3f2[_0xcecc('0x63')][_0xcecc('0x67')]('=');var _0x4c009f=_0x5e20c8[0x0]['substring'](_0x5e20c8[0x0][_0xcecc('0x68')]('(')+0x1,_0x5e20c8[0x0][_0xcecc('0x68')](')'));var _0x545b9c=_0x5e20c8[0x1];channels[_0x12c3f2[_0xcecc('0x8')]][_0x4c009f]=_0x545b9c;}if(!_[_0xcecc('0x69')]([_0xcecc('0x2b'),'noop',_0xcecc('0x6a'),_0xcecc('0x6b'),_0xcecc('0x6c')],_0x12c3f2['application']['toLowerCase']())){channels[_0x12c3f2[_0xcecc('0x8')]][_0xcecc('0x54')]=_0x12c3f2[_0xcecc('0x62')];channels[_0x12c3f2['uniqueid']][_0xcecc('0x56')]=_0x12c3f2[_0xcecc('0x63')];}}}catch(_0x450482){utils['error'](util['format'](_0xcecc('0x60'),_0x12c3f2[_0xcecc('0x8')]),_0x450482);}};