Built motion from commit (unavailable).|2.5.18
[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 _0x3daa=['duration','diffTime','endtime','starttime','billableseconds','[%s][calls][hangup]','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','transfertargetchannel','origtransfereruniqueid','origtransfererchannel','destinationchannel','userfield','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','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr','split','substring','lastIndexOf','noop','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','debug','format','linkedid','OutgoingSpoolFailed','info','exten','context','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','isNil','answertime','disposition','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt'];(function(_0x297c55,_0x34fa75){var _0x120389=function(_0x595108){while(--_0x595108){_0x297c55['push'](_0x297c55['shift']());}};_0x120389(++_0x34fa75);}(_0x3daa,0x186));var _0xa3da=function(_0x21ecb2,_0x21bc57){_0x21ecb2=_0x21ecb2-0x0;var _0x4bcd0e=_0x3daa[_0x21ecb2];return _0x4bcd0e;};'use strict';var _=require(_0xa3da('0x0'));var util=require(_0xa3da('0x1'));var utils=require(_0xa3da('0x2'));var dispositions=[_0xa3da('0x3'),'FAILED',_0xa3da('0x4'),'NO\x20ANSWER',_0xa3da('0x3'),_0xa3da('0x3'),_0xa3da('0x5'),_0xa3da('0x6'),'FAILED','FAILED',_0xa3da('0x4')];var channels={};function writeDB(_0x498e8e){utils['info'](util['format'](_0xa3da('0x7'),_0x498e8e[_0xa3da('0x8')],_0x498e8e[_0xa3da('0x9')],_0x498e8e[_0xa3da('0xa')],_0x498e8e[_0xa3da('0xb')],_0x498e8e['interface'],_0x498e8e[_0xa3da('0xc')],_0x498e8e[_0xa3da('0xd')],_0x498e8e[_0xa3da('0xe')]));if(_0x498e8e[_0xa3da('0xf')]){utils[_0xa3da('0x10')](_0x498e8e['accountcode'])[_0xa3da('0x11')](function(_0x50032b){if(_0x50032b){_0x498e8e[_0xa3da('0x12')]=_0x50032b['id'];}utils[_0xa3da('0x13')](_0xa3da('0x14'),_0x498e8e);});}else{utils[_0xa3da('0x13')](_0xa3da('0x14'),_0x498e8e);}if(channels[_0x498e8e[_0xa3da('0x8')]]){delete channels[_0x498e8e['uniqueid']];}}exports[_0xa3da('0x15')]=function(_0x39b77b){try{utils[_0xa3da('0x16')](util[_0xa3da('0x17')]('[%s][calls][newchannel]',_0x39b77b['uniqueid']),_0x39b77b);if(_0x39b77b['uniqueid']==_0x39b77b[_0xa3da('0x18')]&&_0x39b77b[_0xa3da('0x9')]!=_0xa3da('0x19')){utils[_0xa3da('0x1a')](util['format']('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x39b77b[_0xa3da('0x8')],_0x39b77b['context'],_0x39b77b[_0xa3da('0x1b')]));channels[_0x39b77b[_0xa3da('0x8')]]={'uniqueid':_0x39b77b['uniqueid'],'accountcode':_0x39b77b['accountcode'],'source':_0x39b77b[_0xa3da('0xc')],'destination':_0x39b77b[_0xa3da('0x1b')],'destinationcontext':_0x39b77b[_0xa3da('0x1c')],'channel':_0x39b77b[_0xa3da('0x9')],'starttime':utils[_0xa3da('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa3da('0x3'),'amaflags':_0xa3da('0x1e')};}}catch(_0x5a6b7c){utils[_0xa3da('0x1f')](util[_0xa3da('0x17')]('[%s][calls][newchannel]',_0x39b77b[_0xa3da('0x8')]),_0x5a6b7c);}};exports[_0xa3da('0x20')]=function(_0x2a5926){try{utils[_0xa3da('0x16')](util['format'](_0xa3da('0x21'),_0x2a5926['uniqueid']),_0x2a5926);if(!_['isNil'](channels[_0x2a5926[_0xa3da('0x8')]])&&_0x2a5926[_0xa3da('0x22')]==0x6){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x23'),_0x2a5926[_0xa3da('0x8')],_0x2a5926[_0xa3da('0x1c')],_0x2a5926['channel']));if(_['isNil'](channels[_0x2a5926[_0xa3da('0x8')]]['systemanswertime'])){channels[_0x2a5926[_0xa3da('0x8')]][_0xa3da('0x24')]=utils[_0xa3da('0x1d')]();}}else if(!_[_0xa3da('0x25')](channels[_0x2a5926[_0xa3da('0x18')]])&&_0x2a5926[_0xa3da('0x22')]==0x6&&_0x2a5926[_0xa3da('0x1c')]!='transfer'){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x2a5926[_0xa3da('0x8')],_0x2a5926[_0xa3da('0x18')],_0x2a5926[_0xa3da('0x1c')],_0x2a5926[_0xa3da('0x9')]));channels[_0x2a5926[_0xa3da('0x18')]][_0xa3da('0xf')]=_0x2a5926['accountcode'];channels[_0x2a5926['linkedid']]['destinationchannel']=_0x2a5926[_0xa3da('0x9')];if(_[_0xa3da('0x25')](channels[_0x2a5926[_0xa3da('0x18')]]['answertime'])){channels[_0x2a5926['linkedid']][_0xa3da('0x26')]=utils[_0xa3da('0x1d')]();}channels[_0x2a5926['linkedid']][_0xa3da('0x27')]=dispositions[_[_0xa3da('0x28')](_0x2a5926[_0xa3da('0x22')])]||_0xa3da('0x5');}}catch(_0x2bfdd3){utils[_0xa3da('0x1f')](util['format']('[%s][calls][newstate]',_0x2a5926[_0xa3da('0x8')]),_0x2bfdd3);}};exports[_0xa3da('0x29')]=function(_0x16ff27){try{if(!_[_0xa3da('0x25')](channels[_0x16ff27[_0xa3da('0x8')]])){utils[_0xa3da('0x16')](util[_0xa3da('0x17')]('[%s][calls][hangup]',_0x16ff27[_0xa3da('0x8')]),_0x16ff27);if(_['isNil'](channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x2a')])){channels[_0x16ff27[_0xa3da('0x8')]]['callerid']=_0x16ff27[_0xa3da('0x2b')]+'\x20<'+_0x16ff27[_0xa3da('0xc')]+'>';}utils[_0xa3da('0x1a')](util['format'](_0xa3da('0x2c'),_0x16ff27[_0xa3da('0x8')],channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x2a')],_0x16ff27[_0xa3da('0x2d')]));channels[_0x16ff27['uniqueid']]['endtime']=utils[_0xa3da('0x1d')]();channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x2e')]=utils[_0xa3da('0x2f')](channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x30')],channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x31')]);channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x32')]=channels[_0x16ff27[_0xa3da('0x8')]]['answertime']?utils[_0xa3da('0x2f')](channels[_0x16ff27[_0xa3da('0x8')]]['endtime'],channels[_0x16ff27[_0xa3da('0x8')]][_0xa3da('0x26')]):0x0;writeDB(channels[_0x16ff27['uniqueid']]);}}catch(_0xb17515){utils['error'](util[_0xa3da('0x17')](_0xa3da('0x33'),_0x16ff27['uniqueid']),_0xb17515);}};exports['attendedtransfer']=function(_0xaf2f2b){try{if(!_[_0xa3da('0x25')](channels[_0xaf2f2b[_0xa3da('0x34')]])){utils['debug'](util[_0xa3da('0x17')](_0xa3da('0x35'),_0xaf2f2b['origtransfereruniqueid']),_0xaf2f2b);if(channels[_0xaf2f2b[_0xa3da('0x34')]][_0xa3da('0x9')]==_0xaf2f2b[_0xa3da('0x36')]){utils['info'](util[_0xa3da('0x17')](_0xa3da('0x37'),_0xaf2f2b['origtransfereruniqueid'],_0xaf2f2b['localtwolinkedid'],_0xaf2f2b[_0xa3da('0x38')]));channels[_0xaf2f2b[_0xa3da('0x34')]]['destinationchannel']=_0xaf2f2b['secondtransfererchannel'];channels[_0xaf2f2b[_0xa3da('0x34')]]['userfield']='_attended';}else if(channels[_0xaf2f2b[_0xa3da('0x34')]][_0xa3da('0x9')]=_0xaf2f2b[_0xa3da('0x39')]){utils[_0xa3da('0x1a')](util['format'](_0xa3da('0x37'),_0xaf2f2b[_0xa3da('0x3a')],_0xaf2f2b[_0xa3da('0x34')],_0xaf2f2b[_0xa3da('0x3b')]));channels[_0xaf2f2b[_0xa3da('0x34')]][_0xa3da('0x3c')]=_0xaf2f2b[_0xa3da('0x3b')];channels[_0xaf2f2b[_0xa3da('0x34')]][_0xa3da('0x3d')]='_attended';}}}catch(_0x2dd882){utils[_0xa3da('0x1f')](util[_0xa3da('0x17')]('[%s][calls][attendedtransfer]',_0xaf2f2b[_0xa3da('0x3a')]),_0x2dd882);}};exports[_0xa3da('0x3e')]=function(_0x465b86){try{if(!_[_0xa3da('0x25')](channels[_0x465b86[_0xa3da('0x8')]])){utils['debug'](util['format'](_0xa3da('0x3f'),_0x465b86['uniqueid']),_0x465b86);channels[_0x465b86[_0xa3da('0x8')]][_0xa3da('0x40')]=utils[_0xa3da('0x1d')]();utils['info'](util['format'](_0xa3da('0x41'),_0x465b86['uniqueid'],channels[_0x465b86[_0xa3da('0x8')]][_0xa3da('0x40')]));}}catch(_0x3fb237){utils[_0xa3da('0x1f')](util['format'](_0xa3da('0x3f'),_0x465b86[_0xa3da('0x8')]),_0x3fb237);}};exports[_0xa3da('0x42')]=function(_0xd3a848){try{if(!_[_0xa3da('0x25')](channels[_0xd3a848[_0xa3da('0x8')]])){utils[_0xa3da('0x16')](util[_0xa3da('0x17')](_0xa3da('0x43'),_0xd3a848[_0xa3da('0x8')]),_0xd3a848);if(!_['isNil'](channels[_0xd3a848[_0xa3da('0x8')]]['musiconholdstartAt'])){channels[_0xd3a848['uniqueid']][_0xa3da('0x44')]+=utils['diffTime'](utils['now'](),channels[_0xd3a848[_0xa3da('0x8')]]['musiconholdstartAt']);utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x45'),_0xd3a848[_0xa3da('0x8')],channels[_0xd3a848[_0xa3da('0x8')]][_0xa3da('0x44')]));delete channels[_0xd3a848[_0xa3da('0x8')]][_0xa3da('0x40')];}}}catch(_0x4004b9){utils[_0xa3da('0x1f')](util[_0xa3da('0x17')](_0xa3da('0x43'),_0xd3a848['uniqueid']),_0x4004b9);}};exports[_0xa3da('0x46')]=function(_0x2c17cc){try{if(!_[_0xa3da('0x25')](channels[_0x2c17cc[_0xa3da('0x8')]])){utils[_0xa3da('0x16')](util[_0xa3da('0x17')](_0xa3da('0x47'),_0x2c17cc[_0xa3da('0x8')]),_0x2c17cc);if(!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')][_0xa3da('0x49')])){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x4a'),_0x2c17cc[_0xa3da('0x8')],_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc['uniqueid']]['source']=_0x2c17cc[_0xa3da('0x4b')];}if(!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')][_0xa3da('0x4c')])){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x4d'),_0x2c17cc['uniqueid'],_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x4e')]=_0x2c17cc[_0xa3da('0x4b')];channels[_0x2c17cc[_0xa3da('0x8')]]['callerid']='\x22'+_0x2c17cc[_0xa3da('0x4b')]+_0xa3da('0x4f')+_0x2c17cc[_0xa3da('0x4b')]+'>';}if(!_[_0xa3da('0x25')](_0x2c17cc['variable'][_0xa3da('0x50')])||!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')][_0xa3da('0x51')])){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x52'),_0x2c17cc['uniqueid'],!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')]['xmd-callerid-preview'])?_0xa3da('0x50'):_0xa3da('0x51'),_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x2a')]=_0x2c17cc[_0xa3da('0x4b')];}if(!_['isNil'](_0x2c17cc[_0xa3da('0x48')][_0xa3da('0x53')])||!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')]['xmcs-queue'])){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x52'),_0x2c17cc[_0xa3da('0x8')],!_[_0xa3da('0x25')](_0x2c17cc['variable'][_0xa3da('0x53')])?_0xa3da('0x53'):_0xa3da('0x54'),_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc['uniqueid']][_0xa3da('0x55')]='Queue';channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x56')]=_0x2c17cc['value'];channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0xa')]=!![];}if(!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')][_0xa3da('0x57')])){utils[_0xa3da('0x1a')](util['format'](_0xa3da('0x58'),_0x2c17cc[_0xa3da('0x8')],_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x59')]=_0x2c17cc[_0xa3da('0x4b')];}if(!_['isNil'](_0x2c17cc['variable'][_0xa3da('0x5a')])){utils[_0xa3da('0x1a')](util['format'](_0xa3da('0x5b'),_0x2c17cc['uniqueid'],_0x2c17cc['value']));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x5c')]=_0x2c17cc['value'];}if(!_['isNil'](_0x2c17cc['variable']['outboundrouteid'])){utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x5d'),_0x2c17cc[_0xa3da('0x8')],_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x5e')]=_0x2c17cc[_0xa3da('0x4b')];}if(!_[_0xa3da('0x25')](_0x2c17cc[_0xa3da('0x48')]['sipcallid'])){utils[_0xa3da('0x1a')](util['format'](_0xa3da('0x5f'),_0x2c17cc[_0xa3da('0x8')],_0x2c17cc[_0xa3da('0x4b')]));channels[_0x2c17cc[_0xa3da('0x8')]][_0xa3da('0x60')]=_0x2c17cc['value'];}}}catch(_0x1cb6a9){utils['error'](util[_0xa3da('0x17')](_0xa3da('0x47'),_0x2c17cc[_0xa3da('0x8')]),_0x1cb6a9);}};exports[_0xa3da('0x61')]=function(_0x2f8887){try{if(!_[_0xa3da('0x25')](channels[_0x2f8887[_0xa3da('0x8')]])){utils[_0xa3da('0x16')](util[_0xa3da('0x17')](_0xa3da('0x62'),_0x2f8887[_0xa3da('0x8')]),_0x2f8887);utils[_0xa3da('0x1a')](util[_0xa3da('0x17')](_0xa3da('0x63'),_0x2f8887['uniqueid'],_0x2f8887[_0xa3da('0x64')],_0x2f8887[_0xa3da('0x65')]));if(_0x2f8887['application'][_0xa3da('0x66')]()=='set'&&_[_0xa3da('0x67')](_0x2f8887[_0xa3da('0x65')][_0xa3da('0x66')](),_0xa3da('0x68'))){var _0x1da48f=_0x2f8887[_0xa3da('0x65')][_0xa3da('0x69')]('=');var _0x1307f9=_0x1da48f[0x0][_0xa3da('0x6a')](_0x1da48f[0x0]['lastIndexOf']('(')+0x1,_0x1da48f[0x0][_0xa3da('0x6b')](')'));var _0x428ac8=_0x1da48f[0x1];channels[_0x2f8887[_0xa3da('0x8')]][_0x1307f9]=_0x428ac8;}if(!_['includes']([_0xa3da('0x29'),_0xa3da('0x6c'),'execif','set','gotoif'],_0x2f8887[_0xa3da('0x64')][_0xa3da('0x66')]())){channels[_0x2f8887[_0xa3da('0x8')]][_0xa3da('0x55')]=_0x2f8887[_0xa3da('0x64')];channels[_0x2f8887['uniqueid']][_0xa3da('0x56')]=_0x2f8887['appdata'];}}}catch(_0x498e1c){utils[_0xa3da('0x1f')](util['format']('[%s][calls][newexten]',_0x2f8887['uniqueid']),_0x498e1c);}};