Built motion from commit (unavailable).|2.5.11
[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 _0xfb3f=['util','./utils','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','channel','queue','membername','interface','calleridnum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','newstate','debug','[%s][calls][newstate]','isNil','channelstate','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','toNumber','error','hangup','[%s][calls][hangup]','callerid','duration','diffTime','endtime','billableseconds','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','destinationchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','variable','xmd-originatecalleridnum','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','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','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','newexten','[%s][calls][newexten]','application','set','startsWith','cdr','appdata','split','lastIndexOf','includes','noop','execif','toLowerCase','lodash'];(function(_0x17197d,_0x25a479){var _0x3e0f44=function(_0x495142){while(--_0x495142){_0x17197d['push'](_0x17197d['shift']());}};_0x3e0f44(++_0x25a479);}(_0xfb3f,0x1a3));var _0xffb3=function(_0xd8d0be,_0x5ceb12){_0xd8d0be=_0xd8d0be-0x0;var _0x410c1d=_0xfb3f[_0xd8d0be];return _0x410c1d;};'use strict';var _=require(_0xffb3('0x0'));var util=require(_0xffb3('0x1'));var utils=require(_0xffb3('0x2'));var dispositions=[_0xffb3('0x3'),_0xffb3('0x4'),_0xffb3('0x4'),_0xffb3('0x3'),_0xffb3('0x3'),_0xffb3('0x3'),_0xffb3('0x5'),_0xffb3('0x6'),'FAILED',_0xffb3('0x4'),_0xffb3('0x4')];var channels={};function writeDB(_0x4d00ce){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x9'),_0x4d00ce[_0xffb3('0xa')],_0x4d00ce[_0xffb3('0xb')],_0x4d00ce[_0xffb3('0xc')],_0x4d00ce[_0xffb3('0xd')],_0x4d00ce[_0xffb3('0xe')],_0x4d00ce[_0xffb3('0xf')],_0x4d00ce['connectedlinenum'],_0x4d00ce[_0xffb3('0x10')]));if(_0x4d00ce[_0xffb3('0x11')]){utils[_0xffb3('0x12')](_0x4d00ce['accountcode'])[_0xffb3('0x13')](function(_0x28f05e){if(_0x28f05e){_0x4d00ce[_0xffb3('0x14')]=_0x28f05e['id'];}utils[_0xffb3('0x15')]('CreateVoiceCallReport',_0x4d00ce);});}else{utils[_0xffb3('0x15')](_0xffb3('0x16'),_0x4d00ce);}if(channels[_0x4d00ce['uniqueid']]){delete channels[_0x4d00ce[_0xffb3('0xa')]];}}exports[_0xffb3('0x17')]=function(_0x2c2694){try{utils['debug'](util['format'](_0xffb3('0x18'),_0x2c2694['uniqueid']),_0x2c2694);if(_0x2c2694['uniqueid']==_0x2c2694['linkedid']&&_0x2c2694['channel']!=_0xffb3('0x19')){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x1a'),_0x2c2694[_0xffb3('0xa')],_0x2c2694[_0xffb3('0x1b')],_0x2c2694['exten']));channels[_0x2c2694['uniqueid']]={'uniqueid':_0x2c2694['uniqueid'],'accountcode':_0x2c2694['accountcode'],'source':_0x2c2694[_0xffb3('0xf')],'destination':_0x2c2694[_0xffb3('0x1c')],'destinationcontext':_0x2c2694[_0xffb3('0x1b')],'channel':_0x2c2694[_0xffb3('0xb')],'starttime':utils[_0xffb3('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xffb3('0x3'),'amaflags':_0xffb3('0x1e')};}}catch(_0x297f3e){utils['error'](util[_0xffb3('0x8')](_0xffb3('0x18'),_0x2c2694[_0xffb3('0xa')]),_0x297f3e);}};exports[_0xffb3('0x1f')]=function(_0x18dd07){try{utils[_0xffb3('0x20')](util[_0xffb3('0x8')](_0xffb3('0x21'),_0x18dd07[_0xffb3('0xa')]),_0x18dd07);if(!_[_0xffb3('0x22')](channels[_0x18dd07['uniqueid']])&&_0x18dd07[_0xffb3('0x23')]==0x6){utils['info'](util[_0xffb3('0x8')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x18dd07[_0xffb3('0xa')],_0x18dd07[_0xffb3('0x1b')],_0x18dd07[_0xffb3('0xb')]));if(_[_0xffb3('0x22')](channels[_0x18dd07[_0xffb3('0xa')]][_0xffb3('0x24')])){channels[_0x18dd07[_0xffb3('0xa')]][_0xffb3('0x24')]=utils[_0xffb3('0x1d')]();}}else if(!_[_0xffb3('0x22')](channels[_0x18dd07[_0xffb3('0x25')]])&&_0x18dd07['channelstate']==0x6&&_0x18dd07[_0xffb3('0x1b')]!=_0xffb3('0x26')){utils['info'](util[_0xffb3('0x8')](_0xffb3('0x27'),_0x18dd07[_0xffb3('0xa')],_0x18dd07[_0xffb3('0x25')],_0x18dd07[_0xffb3('0x1b')],_0x18dd07[_0xffb3('0xb')]));channels[_0x18dd07[_0xffb3('0x25')]][_0xffb3('0x11')]=_0x18dd07['accountcode'];channels[_0x18dd07[_0xffb3('0x25')]]['destinationchannel']=_0x18dd07[_0xffb3('0xb')];if(_[_0xffb3('0x22')](channels[_0x18dd07['linkedid']][_0xffb3('0x28')])){channels[_0x18dd07[_0xffb3('0x25')]][_0xffb3('0x28')]=utils[_0xffb3('0x1d')]();}channels[_0x18dd07[_0xffb3('0x25')]]['disposition']=dispositions[_[_0xffb3('0x29')](_0x18dd07['channelstate'])]||_0xffb3('0x5');}}catch(_0x44fc1e){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')]('[%s][calls][newstate]',_0x18dd07[_0xffb3('0xa')]),_0x44fc1e);}};exports[_0xffb3('0x2b')]=function(_0x5ee8fe){try{if(!_[_0xffb3('0x22')](channels[_0x5ee8fe[_0xffb3('0xa')]])){utils[_0xffb3('0x20')](util[_0xffb3('0x8')](_0xffb3('0x2c'),_0x5ee8fe[_0xffb3('0xa')]),_0x5ee8fe);if(_[_0xffb3('0x22')](channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x2d')])){channels[_0x5ee8fe[_0xffb3('0xa')]]['callerid']=_0x5ee8fe['calleridname']+'\x20<'+_0x5ee8fe[_0xffb3('0xf')]+'>';}utils[_0xffb3('0x7')](util[_0xffb3('0x8')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x5ee8fe[_0xffb3('0xa')],channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x2d')],_0x5ee8fe['cause-txt']));channels[_0x5ee8fe[_0xffb3('0xa')]]['endtime']=utils[_0xffb3('0x1d')]();channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x2e')]=utils[_0xffb3('0x2f')](channels[_0x5ee8fe['uniqueid']][_0xffb3('0x30')],channels[_0x5ee8fe[_0xffb3('0xa')]]['starttime']);channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x31')]=channels[_0x5ee8fe['uniqueid']][_0xffb3('0x28')]?utils[_0xffb3('0x2f')](channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x30')],channels[_0x5ee8fe[_0xffb3('0xa')]][_0xffb3('0x28')]):0x0;writeDB(channels[_0x5ee8fe[_0xffb3('0xa')]]);}}catch(_0x2883e4){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')](_0xffb3('0x2c'),_0x5ee8fe[_0xffb3('0xa')]),_0x2883e4);}};exports['attendedtransfer']=function(_0x4090c5){try{if(!_[_0xffb3('0x22')](channels[_0x4090c5[_0xffb3('0x32')]])){utils[_0xffb3('0x20')](util[_0xffb3('0x8')]('[%s][calls][attendedtransfer]',_0x4090c5[_0xffb3('0x33')]),_0x4090c5);if(channels[_0x4090c5[_0xffb3('0x32')]][_0xffb3('0xb')]==_0x4090c5[_0xffb3('0x34')]){utils[_0xffb3('0x7')](util['format'](_0xffb3('0x35'),_0x4090c5[_0xffb3('0x33')],_0x4090c5['localtwolinkedid'],_0x4090c5[_0xffb3('0x36')]));channels[_0x4090c5['localtwolinkedid']][_0xffb3('0x37')]=_0x4090c5[_0xffb3('0x36')];channels[_0x4090c5[_0xffb3('0x32')]][_0xffb3('0x38')]=_0xffb3('0x39');}else if(channels[_0x4090c5[_0xffb3('0x32')]][_0xffb3('0xb')]=_0x4090c5[_0xffb3('0x3a')]){utils[_0xffb3('0x7')](util[_0xffb3('0x8')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x4090c5[_0xffb3('0x33')],_0x4090c5[_0xffb3('0x32')],_0x4090c5[_0xffb3('0x3b')]));channels[_0x4090c5[_0xffb3('0x32')]][_0xffb3('0x37')]=_0x4090c5[_0xffb3('0x3b')];channels[_0x4090c5[_0xffb3('0x32')]][_0xffb3('0x38')]=_0xffb3('0x39');}}}catch(_0xadf0b1){utils['error'](util[_0xffb3('0x8')]('[%s][calls][attendedtransfer]',_0x4090c5[_0xffb3('0x33')]),_0xadf0b1);}};exports['musiconholdstart']=function(_0x4b7fd2){try{if(!_[_0xffb3('0x22')](channels[_0x4b7fd2[_0xffb3('0xa')]])){utils[_0xffb3('0x20')](util[_0xffb3('0x8')](_0xffb3('0x3c'),_0x4b7fd2[_0xffb3('0xa')]),_0x4b7fd2);channels[_0x4b7fd2['uniqueid']][_0xffb3('0x3d')]=utils[_0xffb3('0x1d')]();utils['info'](util['format'](_0xffb3('0x3e'),_0x4b7fd2[_0xffb3('0xa')],channels[_0x4b7fd2[_0xffb3('0xa')]][_0xffb3('0x3d')]));}}catch(_0x581791){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')](_0xffb3('0x3c'),_0x4b7fd2[_0xffb3('0xa')]),_0x581791);}};exports[_0xffb3('0x3f')]=function(_0x3a953e){try{if(!_[_0xffb3('0x22')](channels[_0x3a953e[_0xffb3('0xa')]])){utils['debug'](util[_0xffb3('0x8')](_0xffb3('0x40'),_0x3a953e[_0xffb3('0xa')]),_0x3a953e);if(!_[_0xffb3('0x22')](channels[_0x3a953e[_0xffb3('0xa')]][_0xffb3('0x3d')])){channels[_0x3a953e[_0xffb3('0xa')]]['mohtime']+=utils['diffTime'](utils['now'](),channels[_0x3a953e[_0xffb3('0xa')]][_0xffb3('0x3d')]);utils['info'](util[_0xffb3('0x8')](_0xffb3('0x41'),_0x3a953e[_0xffb3('0xa')],channels[_0x3a953e[_0xffb3('0xa')]][_0xffb3('0x42')]));delete channels[_0x3a953e[_0xffb3('0xa')]][_0xffb3('0x3d')];}}}catch(_0x3cd346){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')](_0xffb3('0x40'),_0x3a953e[_0xffb3('0xa')]),_0x3cd346);}};exports[_0xffb3('0x43')]=function(_0xf59086){try{if(!_[_0xffb3('0x22')](channels[_0xf59086['uniqueid']])){utils[_0xffb3('0x20')](util[_0xffb3('0x8')]('[%s][calls][varset]',_0xf59086[_0xffb3('0xa')]),_0xf59086);if(!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')][_0xffb3('0x45')])){utils[_0xffb3('0x7')](util[_0xffb3('0x8')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x47')]=_0xf59086[_0xffb3('0x46')];}if(!_['isNil'](_0xf59086[_0xffb3('0x44')]['xmd-phone'])){utils['info'](util[_0xffb3('0x8')](_0xffb3('0x48'),_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x49')]=_0xf59086['value'];channels[_0xf59086['uniqueid']][_0xffb3('0x2d')]='\x22'+_0xf59086[_0xffb3('0x46')]+'\x22\x20<'+_0xf59086[_0xffb3('0x46')]+'>';}if(!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')][_0xffb3('0x4a')])||!_['isNil'](_0xf59086['variable'][_0xffb3('0x4b')])){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x4c'),_0xf59086[_0xffb3('0xa')],!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')]['xmd-callerid-preview'])?_0xffb3('0x4a'):'xmd-callerid',_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x2d')]=_0xf59086[_0xffb3('0x46')];}if(!_['isNil'](_0xf59086[_0xffb3('0x44')][_0xffb3('0x4d')])||!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')][_0xffb3('0x4e')])){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x4c'),_0xf59086[_0xffb3('0xa')],!_['isNil'](_0xf59086[_0xffb3('0x44')][_0xffb3('0x4d')])?_0xffb3('0x4d'):_0xffb3('0x4e'),_0xf59086[_0xffb3('0x46')]));channels[_0xf59086['uniqueid']][_0xffb3('0x4f')]=_0xffb3('0x50');channels[_0xf59086[_0xffb3('0xa')]]['lastdata']=_0xf59086[_0xffb3('0x46')];channels[_0xf59086[_0xffb3('0xa')]]['queue']=!![];}if(!_['isNil'](_0xf59086[_0xffb3('0x44')][_0xffb3('0x51')])){utils['info'](util['format'](_0xffb3('0x52'),_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x53')]=_0xf59086[_0xffb3('0x46')];}if(!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')][_0xffb3('0x54')])){utils['info'](util[_0xffb3('0x8')](_0xffb3('0x55'),_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x56')]=_0xf59086[_0xffb3('0x46')];}if(!_['isNil'](_0xf59086[_0xffb3('0x44')][_0xffb3('0x57')])){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x58'),_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]][_0xffb3('0x59')]=_0xf59086[_0xffb3('0x46')];}if(!_[_0xffb3('0x22')](_0xf59086[_0xffb3('0x44')]['sipcallid'])){utils[_0xffb3('0x7')](util[_0xffb3('0x8')](_0xffb3('0x5a'),_0xf59086[_0xffb3('0xa')],_0xf59086[_0xffb3('0x46')]));channels[_0xf59086[_0xffb3('0xa')]]['sipcallid']=_0xf59086[_0xffb3('0x46')];}}}catch(_0x62bdb3){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')](_0xffb3('0x5b'),_0xf59086[_0xffb3('0xa')]),_0x62bdb3);}};exports[_0xffb3('0x5c')]=function(_0x33f9d2){try{if(!_[_0xffb3('0x22')](channels[_0x33f9d2[_0xffb3('0xa')]])){utils[_0xffb3('0x20')](util[_0xffb3('0x8')](_0xffb3('0x5d'),_0x33f9d2[_0xffb3('0xa')]),_0x33f9d2);utils[_0xffb3('0x7')](util[_0xffb3('0x8')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x33f9d2[_0xffb3('0xa')],_0x33f9d2[_0xffb3('0x5e')],_0x33f9d2['appdata']));if(_0x33f9d2[_0xffb3('0x5e')]['toLowerCase']()==_0xffb3('0x5f')&&_[_0xffb3('0x60')](_0x33f9d2['appdata']['toLowerCase'](),_0xffb3('0x61'))){var _0x435d92=_0x33f9d2[_0xffb3('0x62')][_0xffb3('0x63')]('=');var _0x5b7bcc=_0x435d92[0x0]['substring'](_0x435d92[0x0][_0xffb3('0x64')]('(')+0x1,_0x435d92[0x0][_0xffb3('0x64')](')'));var _0x27a3a0=_0x435d92[0x1];channels[_0x33f9d2[_0xffb3('0xa')]][_0x5b7bcc]=_0x27a3a0;}if(!_[_0xffb3('0x65')]([_0xffb3('0x2b'),_0xffb3('0x66'),_0xffb3('0x67'),_0xffb3('0x5f'),'gotoif'],_0x33f9d2['application'][_0xffb3('0x68')]())){channels[_0x33f9d2[_0xffb3('0xa')]]['lastapplication']=_0x33f9d2['application'];channels[_0x33f9d2[_0xffb3('0xa')]]['lastdata']=_0x33f9d2[_0xffb3('0x62')];}}}catch(_0x5d05c0){utils[_0xffb3('0x2a')](util[_0xffb3('0x8')](_0xffb3('0x5d'),_0x33f9d2['uniqueid']),_0x5d05c0);}};