49bb1536e5f22e54ccae4f0c2834456788fa8622
[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 _0x4f99=['attendedtransfer','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','userfield','_attended','origtransfererchannel','[%s][calls][attendedtransfer]','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','xmd-originatecalleridnum','value','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','variable','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','xmd-contactid','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','startsWith','cdr','split','lastIndexOf','includes','noop','set','gotoif','lastdata','[%s][calls][newexten]','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','interface','calleridnum','accountcode','then','UserId','request','CreateVoiceCallReport','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','debug','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','destinationchannel','answertime','disposition','toNumber','ANSWERED','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','starttime','billableseconds'];(function(_0x4eb7e6,_0x451464){var _0x3cf508=function(_0x462471){while(--_0x462471){_0x4eb7e6['push'](_0x4eb7e6['shift']());}};_0x3cf508(++_0x451464);}(_0x4f99,0x172));var _0x94f9=function(_0x56f3d4,_0xfc65dd){_0x56f3d4=_0x56f3d4-0x0;var _0x2c7ef0=_0x4f99[_0x56f3d4];return _0x2c7ef0;};'use strict';var _=require(_0x94f9('0x0'));var util=require(_0x94f9('0x1'));var utils=require(_0x94f9('0x2'));var dispositions=[_0x94f9('0x3'),_0x94f9('0x4'),_0x94f9('0x4'),'NO\x20ANSWER','NO\x20ANSWER',_0x94f9('0x3'),'ANSWERED',_0x94f9('0x5'),'FAILED','FAILED','FAILED'];var channels={};function writeDB(_0xb6f57e){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x8'),_0xb6f57e[_0x94f9('0x9')],_0xb6f57e[_0x94f9('0xa')],_0xb6f57e[_0x94f9('0xb')],_0xb6f57e['membername'],_0xb6f57e[_0x94f9('0xc')],_0xb6f57e[_0x94f9('0xd')],_0xb6f57e['connectedlinenum'],_0xb6f57e['lastevent']));if(_0xb6f57e[_0x94f9('0xe')]){utils['getUserByInternal'](_0xb6f57e[_0x94f9('0xe')])[_0x94f9('0xf')](function(_0x53710c){if(_0x53710c){_0xb6f57e[_0x94f9('0x10')]=_0x53710c['id'];}utils[_0x94f9('0x11')](_0x94f9('0x12'),_0xb6f57e);});}else{utils[_0x94f9('0x11')]('CreateVoiceCallReport',_0xb6f57e);}if(channels[_0xb6f57e[_0x94f9('0x9')]]){delete channels[_0xb6f57e['uniqueid']];}}exports[_0x94f9('0x13')]=function(_0x5ec306){try{utils['debug'](util[_0x94f9('0x7')](_0x94f9('0x14'),_0x5ec306['uniqueid']),_0x5ec306);if(_0x5ec306[_0x94f9('0x9')]==_0x5ec306[_0x94f9('0x15')]&&_0x5ec306[_0x94f9('0xa')]!=_0x94f9('0x16')){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x17'),_0x5ec306[_0x94f9('0x9')],_0x5ec306[_0x94f9('0x18')],_0x5ec306['exten']));channels[_0x5ec306['uniqueid']]={'uniqueid':_0x5ec306['uniqueid'],'accountcode':_0x5ec306[_0x94f9('0xe')],'source':_0x5ec306[_0x94f9('0xd')],'destination':_0x5ec306[_0x94f9('0x19')],'destinationcontext':_0x5ec306['context'],'channel':_0x5ec306[_0x94f9('0xa')],'starttime':utils[_0x94f9('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x94f9('0x3'),'amaflags':_0x94f9('0x1b')};}}catch(_0x937470){utils[_0x94f9('0x1c')](util[_0x94f9('0x7')]('[%s][calls][newchannel]',_0x5ec306[_0x94f9('0x9')]),_0x937470);}};exports['newstate']=function(_0xc529c1){try{utils[_0x94f9('0x1d')](util[_0x94f9('0x7')]('[%s][calls][newstate]',_0xc529c1[_0x94f9('0x9')]),_0xc529c1);if(!_[_0x94f9('0x1e')](channels[_0xc529c1['uniqueid']])&&_0xc529c1[_0x94f9('0x1f')]==0x6){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x20'),_0xc529c1[_0x94f9('0x9')],_0xc529c1[_0x94f9('0x18')],_0xc529c1[_0x94f9('0xa')]));if(_['isNil'](channels[_0xc529c1[_0x94f9('0x9')]]['systemanswertime'])){channels[_0xc529c1['uniqueid']][_0x94f9('0x21')]=utils[_0x94f9('0x1a')]();}}else if(!_[_0x94f9('0x1e')](channels[_0xc529c1['linkedid']])&&_0xc529c1[_0x94f9('0x1f')]==0x6&&_0xc529c1[_0x94f9('0x18')]!=_0x94f9('0x22')){utils[_0x94f9('0x6')](util[_0x94f9('0x7')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0xc529c1['uniqueid'],_0xc529c1[_0x94f9('0x15')],_0xc529c1[_0x94f9('0x18')],_0xc529c1['channel']));channels[_0xc529c1['linkedid']][_0x94f9('0xe')]=_0xc529c1[_0x94f9('0xe')];channels[_0xc529c1[_0x94f9('0x15')]][_0x94f9('0x23')]=_0xc529c1['channel'];if(_[_0x94f9('0x1e')](channels[_0xc529c1[_0x94f9('0x15')]][_0x94f9('0x24')])){channels[_0xc529c1['linkedid']]['answertime']=utils[_0x94f9('0x1a')]();}channels[_0xc529c1[_0x94f9('0x15')]][_0x94f9('0x25')]=dispositions[_[_0x94f9('0x26')](_0xc529c1[_0x94f9('0x1f')])]||_0x94f9('0x27');}}catch(_0x5a2c13){utils[_0x94f9('0x1c')](util[_0x94f9('0x7')](_0x94f9('0x28'),_0xc529c1['uniqueid']),_0x5a2c13);}};exports[_0x94f9('0x29')]=function(_0x4030ab){try{if(!_[_0x94f9('0x1e')](channels[_0x4030ab[_0x94f9('0x9')]])){utils[_0x94f9('0x1d')](util[_0x94f9('0x7')](_0x94f9('0x2a'),_0x4030ab['uniqueid']),_0x4030ab);if(_['isNil'](channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x2b')])){channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x2b')]=_0x4030ab['calleridname']+'\x20<'+_0x4030ab[_0x94f9('0xd')]+'>';}utils['info'](util[_0x94f9('0x7')](_0x94f9('0x2c'),_0x4030ab[_0x94f9('0x9')],channels[_0x4030ab[_0x94f9('0x9')]]['callerid'],_0x4030ab['cause-txt']));channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x2d')]=utils['now']();channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x2e')]=utils[_0x94f9('0x2f')](channels[_0x4030ab['uniqueid']][_0x94f9('0x2d')],channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x30')]);channels[_0x4030ab['uniqueid']][_0x94f9('0x31')]=channels[_0x4030ab[_0x94f9('0x9')]][_0x94f9('0x24')]?utils['diffTime'](channels[_0x4030ab['uniqueid']][_0x94f9('0x2d')],channels[_0x4030ab['uniqueid']]['answertime']):0x0;writeDB(channels[_0x4030ab[_0x94f9('0x9')]]);}}catch(_0x45e244){utils[_0x94f9('0x1c')](util[_0x94f9('0x7')](_0x94f9('0x2a'),_0x4030ab['uniqueid']),_0x45e244);}};exports[_0x94f9('0x32')]=function(_0x1705a0){try{if(!_[_0x94f9('0x1e')](channels[_0x1705a0[_0x94f9('0x33')]])){utils[_0x94f9('0x1d')](util['format']('[%s][calls][attendedtransfer]',_0x1705a0['origtransfereruniqueid']),_0x1705a0);if(channels[_0x1705a0[_0x94f9('0x33')]]['channel']==_0x1705a0[_0x94f9('0x34')]){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x35'),_0x1705a0[_0x94f9('0x36')],_0x1705a0['localtwolinkedid'],_0x1705a0[_0x94f9('0x37')]));channels[_0x1705a0[_0x94f9('0x33')]]['destinationchannel']=_0x1705a0[_0x94f9('0x37')];channels[_0x1705a0[_0x94f9('0x33')]][_0x94f9('0x38')]=_0x94f9('0x39');}else if(channels[_0x1705a0['localtwolinkedid']][_0x94f9('0xa')]=_0x1705a0['transfertargetchannel']){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x35'),_0x1705a0[_0x94f9('0x36')],_0x1705a0['localtwolinkedid'],_0x1705a0[_0x94f9('0x3a')]));channels[_0x1705a0['localtwolinkedid']][_0x94f9('0x23')]=_0x1705a0['origtransfererchannel'];channels[_0x1705a0[_0x94f9('0x33')]][_0x94f9('0x38')]=_0x94f9('0x39');}}}catch(_0x3ad66e){utils[_0x94f9('0x1c')](util['format'](_0x94f9('0x3b'),_0x1705a0[_0x94f9('0x36')]),_0x3ad66e);}};exports['musiconholdstart']=function(_0x307947){try{if(!_[_0x94f9('0x1e')](channels[_0x307947[_0x94f9('0x9')]])){utils[_0x94f9('0x1d')](util[_0x94f9('0x7')](_0x94f9('0x3c'),_0x307947[_0x94f9('0x9')]),_0x307947);channels[_0x307947[_0x94f9('0x9')]][_0x94f9('0x3d')]=utils[_0x94f9('0x1a')]();utils['info'](util[_0x94f9('0x7')](_0x94f9('0x3e'),_0x307947[_0x94f9('0x9')],channels[_0x307947[_0x94f9('0x9')]][_0x94f9('0x3d')]));}}catch(_0x1fc194){utils[_0x94f9('0x1c')](util['format'](_0x94f9('0x3c'),_0x307947[_0x94f9('0x9')]),_0x1fc194);}};exports['musiconholdstop']=function(_0x20b104){try{if(!_[_0x94f9('0x1e')](channels[_0x20b104[_0x94f9('0x9')]])){utils['debug'](util['format'](_0x94f9('0x3f'),_0x20b104[_0x94f9('0x9')]),_0x20b104);if(!_[_0x94f9('0x1e')](channels[_0x20b104[_0x94f9('0x9')]]['musiconholdstartAt'])){channels[_0x20b104['uniqueid']]['mohtime']+=utils['diffTime'](utils['now'](),channels[_0x20b104[_0x94f9('0x9')]][_0x94f9('0x3d')]);utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x40'),_0x20b104[_0x94f9('0x9')],channels[_0x20b104['uniqueid']]['mohtime']));delete channels[_0x20b104[_0x94f9('0x9')]][_0x94f9('0x3d')];}}}catch(_0x1aceca){utils['error'](util[_0x94f9('0x7')](_0x94f9('0x3f'),_0x20b104[_0x94f9('0x9')]),_0x1aceca);}};exports[_0x94f9('0x41')]=function(_0x3c9d88){try{if(!_[_0x94f9('0x1e')](channels[_0x3c9d88['uniqueid']])){utils[_0x94f9('0x1d')](util['format'](_0x94f9('0x42'),_0x3c9d88['uniqueid']),_0x3c9d88);if(!_['isNil'](_0x3c9d88['variable'][_0x94f9('0x43')])){utils[_0x94f9('0x6')](util[_0x94f9('0x7')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x3c9d88[_0x94f9('0x9')],_0x3c9d88[_0x94f9('0x44')]));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x45')]=_0x3c9d88['value'];}if(!_[_0x94f9('0x1e')](_0x3c9d88['variable'][_0x94f9('0x46')])){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x47'),_0x3c9d88['uniqueid'],_0x3c9d88['value']));channels[_0x3c9d88['uniqueid']][_0x94f9('0x48')]=_0x3c9d88[_0x94f9('0x44')];channels[_0x3c9d88['uniqueid']][_0x94f9('0x2b')]='\x22'+_0x3c9d88[_0x94f9('0x44')]+_0x94f9('0x49')+_0x3c9d88['value']+'>';}if(!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x4b')])||!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')]['xmd-callerid'])){utils[_0x94f9('0x6')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x3c9d88[_0x94f9('0x9')],!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x4b')])?_0x94f9('0x4b'):_0x94f9('0x4c'),_0x3c9d88['value']));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x2b')]=_0x3c9d88[_0x94f9('0x44')];}if(!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x4d')])||!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x4e')])){utils['info'](util[_0x94f9('0x7')](_0x94f9('0x4f'),_0x3c9d88[_0x94f9('0x9')],!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x4d')])?'xmd-queue':_0x94f9('0x4e'),_0x3c9d88[_0x94f9('0x44')]));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x50')]='Queue';channels[_0x3c9d88[_0x94f9('0x9')]]['lastdata']=_0x3c9d88[_0x94f9('0x44')];channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0xb')]=!![];}if(!_[_0x94f9('0x1e')](_0x3c9d88['variable'][_0x94f9('0x51')])){utils['info'](util['format']('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x3c9d88['uniqueid'],_0x3c9d88[_0x94f9('0x44')]));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x52')]=_0x3c9d88[_0x94f9('0x44')];}if(!_[_0x94f9('0x1e')](_0x3c9d88['variable']['xmd-cdrtype'])){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x53'),_0x3c9d88['uniqueid'],_0x3c9d88[_0x94f9('0x44')]));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x54')]=_0x3c9d88[_0x94f9('0x44')];}if(!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x55')])){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x56'),_0x3c9d88['uniqueid'],_0x3c9d88[_0x94f9('0x44')]));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x57')]=_0x3c9d88[_0x94f9('0x44')];}if(!_[_0x94f9('0x1e')](_0x3c9d88[_0x94f9('0x4a')][_0x94f9('0x58')])){utils[_0x94f9('0x6')](util[_0x94f9('0x7')](_0x94f9('0x59'),_0x3c9d88[_0x94f9('0x9')],_0x3c9d88['value']));channels[_0x3c9d88[_0x94f9('0x9')]][_0x94f9('0x58')]=_0x3c9d88['value'];}}}catch(_0x469c4c){utils[_0x94f9('0x1c')](util[_0x94f9('0x7')](_0x94f9('0x42'),_0x3c9d88[_0x94f9('0x9')]),_0x469c4c);}};exports[_0x94f9('0x5a')]=function(_0x4022df){try{if(!_['isNil'](channels[_0x4022df[_0x94f9('0x9')]])){utils['debug'](util['format']('[%s][calls][newexten]',_0x4022df['uniqueid']),_0x4022df);utils[_0x94f9('0x6')](util['format'](_0x94f9('0x5b'),_0x4022df['uniqueid'],_0x4022df['application'],_0x4022df[_0x94f9('0x5c')]));if(_0x4022df[_0x94f9('0x5d')][_0x94f9('0x5e')]()=='set'&&_[_0x94f9('0x5f')](_0x4022df[_0x94f9('0x5c')][_0x94f9('0x5e')](),_0x94f9('0x60'))){var _0x20b230=_0x4022df[_0x94f9('0x5c')][_0x94f9('0x61')]('=');var _0x4805b3=_0x20b230[0x0]['substring'](_0x20b230[0x0][_0x94f9('0x62')]('(')+0x1,_0x20b230[0x0]['lastIndexOf'](')'));var _0x4bebcf=_0x20b230[0x1];channels[_0x4022df['uniqueid']][_0x4805b3]=_0x4bebcf;}if(!_[_0x94f9('0x63')]([_0x94f9('0x29'),_0x94f9('0x64'),'execif',_0x94f9('0x65'),_0x94f9('0x66')],_0x4022df[_0x94f9('0x5d')][_0x94f9('0x5e')]())){channels[_0x4022df[_0x94f9('0x9')]][_0x94f9('0x50')]=_0x4022df['application'];channels[_0x4022df[_0x94f9('0x9')]][_0x94f9('0x67')]=_0x4022df['appdata'];}}}catch(_0x51169b){utils['error'](util['format'](_0x94f9('0x68'),_0x4022df[_0x94f9('0x9')]),_0x51169b);}};