Built motion from commit 14588770.|2.5.38
[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 _0xa7be=['Queue','lastdata','queue','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','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','startsWith','cdr','split','substring','lastIndexOf','includes','set','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','BUSY','FAILED','blinds','uniqueid','transfereeuniqueid','info','format','channel','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','UserId','CreateVoiceCallReport','request','recording','newchannel','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','DOCUMENTATION','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','isNil','linkedid','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','disposition','ANSWERED','error','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','diffTime','billableseconds','answertime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','secondtransfererchannel','userfield','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','destinationchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication'];(function(_0x4b69a4,_0x57e598){var _0x23fcb1=function(_0x152fca){while(--_0x152fca){_0x4b69a4['push'](_0x4b69a4['shift']());}};_0x23fcb1(++_0x57e598);}(_0xa7be,0xfd));var _0xea7b=function(_0x32955d,_0x598683){_0x32955d=_0x32955d-0x0;var _0x4e7974=_0xa7be[_0x32955d];return _0x4e7974;};'use strict';var _=require(_0xea7b('0x0'));var util=require(_0xea7b('0x1'));var utils=require(_0xea7b('0x2'));var transfers=require(_0xea7b('0x3'));var dispositions=[_0xea7b('0x4'),'FAILED','FAILED',_0xea7b('0x4'),_0xea7b('0x4'),_0xea7b('0x4'),'ANSWERED',_0xea7b('0x5'),_0xea7b('0x6'),_0xea7b('0x6'),_0xea7b('0x6')];var channels={};function writeDB(_0x25a8e9){var _0x3601b3;if(transfers[_0xea7b('0x7')][_0x25a8e9[_0xea7b('0x8')]]){_0x3601b3=_0x25a8e9[_0xea7b('0x8')];_0x25a8e9[_0xea7b('0x8')]=transfers['blinds'][_0x25a8e9[_0xea7b('0x8')]][_0xea7b('0x9')];}utils[_0xea7b('0xa')](util[_0xea7b('0xb')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x25a8e9[_0xea7b('0x8')],_0x25a8e9[_0xea7b('0xc')],_0x25a8e9['queue'],_0x25a8e9[_0xea7b('0xd')],_0x25a8e9[_0xea7b('0xe')],_0x25a8e9[_0xea7b('0xf')],_0x25a8e9[_0xea7b('0x10')],_0x25a8e9[_0xea7b('0x11')]));if(_0x25a8e9[_0xea7b('0x12')]){utils[_0xea7b('0x13')](_0x25a8e9[_0xea7b('0x12')])['then'](function(_0x5c518b){if(_0x5c518b){_0x25a8e9[_0xea7b('0x14')]=_0x5c518b['id'];}utils['request'](_0xea7b('0x15'),_0x25a8e9);});}else{utils[_0xea7b('0x16')]('CreateVoiceCallReport',_0x25a8e9);}if(channels[_0x25a8e9['uniqueid']]){delete channels[_0x25a8e9[_0xea7b('0x8')]];}else if(_0x3601b3&&channels[_0x3601b3]){if(!transfers['blinds'][_0x3601b3][_0xea7b('0x17')])delete transfers[_0xea7b('0x7')][_0x3601b3];delete channels[_0x3601b3];}}exports[_0xea7b('0x18')]=function(_0x125116){try{utils[_0xea7b('0x19')](util['format'](_0xea7b('0x1a'),_0x125116[_0xea7b('0x8')]),_0x125116);if(_0x125116[_0xea7b('0x8')]==_0x125116['linkedid']&&_0x125116[_0xea7b('0xc')]!=_0xea7b('0x1b')){utils['info'](util[_0xea7b('0xb')](_0xea7b('0x1c'),_0x125116[_0xea7b('0x8')],_0x125116['context'],_0x125116['exten']));channels[_0x125116[_0xea7b('0x8')]]={'uniqueid':_0x125116[_0xea7b('0x8')],'accountcode':_0x125116['accountcode'],'source':_0x125116[_0xea7b('0xf')],'destination':_0x125116[_0xea7b('0x1d')],'destinationcontext':_0x125116[_0xea7b('0x1e')],'channel':_0x125116['channel'],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xea7b('0x4'),'amaflags':_0xea7b('0x1f')};}}catch(_0x2489e1){utils['error'](util['format']('[%s][calls][newchannel]',_0x125116[_0xea7b('0x8')]),_0x2489e1);}};exports['newstate']=function(_0x5dc1e9){try{utils['debug'](util[_0xea7b('0xb')](_0xea7b('0x20'),_0x5dc1e9['uniqueid']),_0x5dc1e9);if(!_['isNil'](channels[_0x5dc1e9[_0xea7b('0x8')]])&&_0x5dc1e9[_0xea7b('0x21')]==0x6){utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x22'),_0x5dc1e9[_0xea7b('0x8')],_0x5dc1e9[_0xea7b('0x1e')],_0x5dc1e9[_0xea7b('0xc')]));if(_['isNil'](channels[_0x5dc1e9[_0xea7b('0x8')]][_0xea7b('0x23')])){channels[_0x5dc1e9[_0xea7b('0x8')]][_0xea7b('0x23')]=utils[_0xea7b('0x24')]();}}else if(!_[_0xea7b('0x25')](channels[_0x5dc1e9[_0xea7b('0x26')]])&&_0x5dc1e9[_0xea7b('0x21')]==0x6&&_0x5dc1e9[_0xea7b('0x1e')]!='transfer'){utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x27'),_0x5dc1e9[_0xea7b('0x8')],_0x5dc1e9[_0xea7b('0x26')],_0x5dc1e9[_0xea7b('0x1e')],_0x5dc1e9[_0xea7b('0xc')]));channels[_0x5dc1e9[_0xea7b('0x26')]]['accountcode']=_0x5dc1e9[_0xea7b('0x12')];channels[_0x5dc1e9[_0xea7b('0x26')]]['destinationchannel']=_0x5dc1e9[_0xea7b('0xc')];if(_[_0xea7b('0x25')](channels[_0x5dc1e9[_0xea7b('0x26')]]['answertime'])){channels[_0x5dc1e9[_0xea7b('0x26')]]['answertime']=utils['now']();}channels[_0x5dc1e9[_0xea7b('0x26')]][_0xea7b('0x28')]=dispositions[_['toNumber'](_0x5dc1e9[_0xea7b('0x21')])]||_0xea7b('0x29');}}catch(_0xb09c4c){utils[_0xea7b('0x2a')](util[_0xea7b('0xb')]('[%s][calls][newstate]',_0x5dc1e9[_0xea7b('0x8')]),_0xb09c4c);}};exports[_0xea7b('0x2b')]=function(_0x9aecd2){try{if(!_['isNil'](channels[_0x9aecd2['uniqueid']])){utils[_0xea7b('0x19')](util[_0xea7b('0xb')](_0xea7b('0x2c'),_0x9aecd2[_0xea7b('0x8')]),_0x9aecd2);if(_[_0xea7b('0x25')](channels[_0x9aecd2['uniqueid']][_0xea7b('0x2d')])){channels[_0x9aecd2[_0xea7b('0x8')]]['callerid']=_0x9aecd2[_0xea7b('0x2e')]+'\x20<'+_0x9aecd2[_0xea7b('0xf')]+'>';}utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x2f'),_0x9aecd2['uniqueid'],channels[_0x9aecd2[_0xea7b('0x8')]]['callerid'],_0x9aecd2[_0xea7b('0x30')]));channels[_0x9aecd2[_0xea7b('0x8')]][_0xea7b('0x31')]=utils[_0xea7b('0x24')]();channels[_0x9aecd2[_0xea7b('0x8')]]['duration']=utils[_0xea7b('0x32')](channels[_0x9aecd2[_0xea7b('0x8')]][_0xea7b('0x31')],channels[_0x9aecd2[_0xea7b('0x8')]]['starttime']);channels[_0x9aecd2[_0xea7b('0x8')]][_0xea7b('0x33')]=channels[_0x9aecd2['uniqueid']]['answertime']?utils[_0xea7b('0x32')](channels[_0x9aecd2[_0xea7b('0x8')]][_0xea7b('0x31')],channels[_0x9aecd2['uniqueid']][_0xea7b('0x34')]):0x0;writeDB(channels[_0x9aecd2['uniqueid']]);}}catch(_0x30fc41){utils[_0xea7b('0x2a')](util[_0xea7b('0xb')](_0xea7b('0x2c'),_0x9aecd2['uniqueid']),_0x30fc41);}};exports[_0xea7b('0x35')]=function(_0x3c4ea3){try{if(!_[_0xea7b('0x25')](channels[_0x3c4ea3[_0xea7b('0x36')]])){utils['debug'](util[_0xea7b('0xb')](_0xea7b('0x37'),_0x3c4ea3[_0xea7b('0x38')]),_0x3c4ea3);if(channels[_0x3c4ea3['localtwolinkedid']][_0xea7b('0xc')]==_0x3c4ea3[_0xea7b('0x39')]){utils['info'](util[_0xea7b('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x3c4ea3['origtransfereruniqueid'],_0x3c4ea3[_0xea7b('0x36')],_0x3c4ea3[_0xea7b('0x3a')]));channels[_0x3c4ea3['localtwolinkedid']]['destinationchannel']=_0x3c4ea3['secondtransfererchannel'];channels[_0x3c4ea3[_0xea7b('0x36')]][_0xea7b('0x3b')]='_attended';}else if(channels[_0x3c4ea3['localtwolinkedid']][_0xea7b('0xc')]=_0x3c4ea3[_0xea7b('0x3c')]){utils[_0xea7b('0xa')](util['format'](_0xea7b('0x3d'),_0x3c4ea3[_0xea7b('0x38')],_0x3c4ea3[_0xea7b('0x36')],_0x3c4ea3['origtransfererchannel']));channels[_0x3c4ea3[_0xea7b('0x36')]][_0xea7b('0x3e')]=_0x3c4ea3[_0xea7b('0x3f')];channels[_0x3c4ea3['localtwolinkedid']][_0xea7b('0x3b')]='_attended';}}}catch(_0x9fba5e){utils[_0xea7b('0x2a')](util['format'](_0xea7b('0x37'),_0x3c4ea3['origtransfereruniqueid']),_0x9fba5e);}};exports[_0xea7b('0x40')]=function(_0xec829a){try{if(!_[_0xea7b('0x25')](channels[_0xec829a[_0xea7b('0x8')]])){utils[_0xea7b('0x19')](util[_0xea7b('0xb')](_0xea7b('0x41'),_0xec829a[_0xea7b('0x8')]),_0xec829a);channels[_0xec829a[_0xea7b('0x8')]]['musiconholdstartAt']=utils[_0xea7b('0x24')]();utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x42'),_0xec829a[_0xea7b('0x8')],channels[_0xec829a[_0xea7b('0x8')]][_0xea7b('0x43')]));}}catch(_0x43cd97){utils[_0xea7b('0x2a')](util[_0xea7b('0xb')](_0xea7b('0x41'),_0xec829a[_0xea7b('0x8')]),_0x43cd97);}};exports[_0xea7b('0x44')]=function(_0x1d4e0b){try{if(!_[_0xea7b('0x25')](channels[_0x1d4e0b[_0xea7b('0x8')]])){utils['debug'](util[_0xea7b('0xb')](_0xea7b('0x45'),_0x1d4e0b['uniqueid']),_0x1d4e0b);if(!_[_0xea7b('0x25')](channels[_0x1d4e0b[_0xea7b('0x8')]][_0xea7b('0x43')])){channels[_0x1d4e0b[_0xea7b('0x8')]]['mohtime']+=utils[_0xea7b('0x32')](utils[_0xea7b('0x24')](),channels[_0x1d4e0b['uniqueid']][_0xea7b('0x43')]);utils['info'](util[_0xea7b('0xb')](_0xea7b('0x46'),_0x1d4e0b['uniqueid'],channels[_0x1d4e0b[_0xea7b('0x8')]]['mohtime']));delete channels[_0x1d4e0b['uniqueid']][_0xea7b('0x43')];}}}catch(_0x38741f){utils[_0xea7b('0x2a')](util[_0xea7b('0xb')]('[%s][calls][musiconholdstop]',_0x1d4e0b[_0xea7b('0x8')]),_0x38741f);}};exports['varset']=function(_0x59ac58){try{if(!_[_0xea7b('0x25')](channels[_0x59ac58[_0xea7b('0x8')]])){utils['debug'](util[_0xea7b('0xb')](_0xea7b('0x47'),_0x59ac58[_0xea7b('0x8')]),_0x59ac58);if(!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x49')])){utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x4a'),_0x59ac58[_0xea7b('0x8')],_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x4c')]=_0x59ac58[_0xea7b('0x4b')];}if(!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')]['xmd-phone'])){utils['info'](util['format'](_0xea7b('0x4d'),_0x59ac58['uniqueid'],_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x4e')]=_0x59ac58[_0xea7b('0x4b')];channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x2d')]='\x22'+_0x59ac58[_0xea7b('0x4b')]+_0xea7b('0x4f')+_0x59ac58['value']+'>';}if(!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')]['xmd-callerid-preview'])||!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x50')])){utils[_0xea7b('0xa')](util['format'](_0xea7b('0x51'),_0x59ac58[_0xea7b('0x8')],!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x52')])?_0xea7b('0x52'):_0xea7b('0x50'),_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x2d')]=_0x59ac58[_0xea7b('0x4b')];}if(!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x53')])||!_['isNil'](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x54')])){utils['info'](util[_0xea7b('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x59ac58[_0xea7b('0x8')],!_['isNil'](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x53')])?_0xea7b('0x53'):'xmcs-queue',_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58['uniqueid']][_0xea7b('0x55')]=_0xea7b('0x56');channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x57')]=_0x59ac58['value'];channels[_0x59ac58['uniqueid']][_0xea7b('0x58')]=!![];}if(!_['isNil'](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x59')])){utils[_0xea7b('0xa')](util['format'](_0xea7b('0x5a'),_0x59ac58[_0xea7b('0x8')],_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58['uniqueid']][_0xea7b('0x5b')]=_0x59ac58[_0xea7b('0x4b')];}if(!_['isNil'](_0x59ac58[_0xea7b('0x48')]['xmd-cdrtype'])){utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x5c'),_0x59ac58[_0xea7b('0x8')],_0x59ac58['value']));channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x5d')]=_0x59ac58[_0xea7b('0x4b')];}if(!_['isNil'](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x5e')])){utils['info'](util['format'](_0xea7b('0x5f'),_0x59ac58['uniqueid'],_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58[_0xea7b('0x8')]][_0xea7b('0x60')]=_0x59ac58['value'];}if(!_[_0xea7b('0x25')](_0x59ac58[_0xea7b('0x48')][_0xea7b('0x61')])){utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x62'),_0x59ac58['uniqueid'],_0x59ac58[_0xea7b('0x4b')]));channels[_0x59ac58['uniqueid']]['sipcallid']=_0x59ac58[_0xea7b('0x4b')];}}}catch(_0x32c1fe){utils['error'](util[_0xea7b('0xb')]('[%s][calls][varset]',_0x59ac58[_0xea7b('0x8')]),_0x32c1fe);}};exports[_0xea7b('0x63')]=function(_0x528357){try{if(!_[_0xea7b('0x25')](channels[_0x528357['uniqueid']])){utils[_0xea7b('0x19')](util[_0xea7b('0xb')](_0xea7b('0x64'),_0x528357[_0xea7b('0x8')]),_0x528357);utils[_0xea7b('0xa')](util[_0xea7b('0xb')](_0xea7b('0x65'),_0x528357['uniqueid'],_0x528357['application'],_0x528357[_0xea7b('0x66')]));if(_0x528357[_0xea7b('0x67')][_0xea7b('0x68')]()=='set'&&_[_0xea7b('0x69')](_0x528357[_0xea7b('0x66')][_0xea7b('0x68')](),_0xea7b('0x6a'))){var _0x843816=_0x528357[_0xea7b('0x66')][_0xea7b('0x6b')]('=');var _0x5152f8=_0x843816[0x0][_0xea7b('0x6c')](_0x843816[0x0][_0xea7b('0x6d')]('(')+0x1,_0x843816[0x0][_0xea7b('0x6d')](')'));var _0xbdd53d=_0x843816[0x1];channels[_0x528357[_0xea7b('0x8')]][_0x5152f8]=_0xbdd53d;}if(!_[_0xea7b('0x6e')]([_0xea7b('0x2b'),'noop','execif',_0xea7b('0x6f'),_0xea7b('0x70')],_0x528357[_0xea7b('0x67')][_0xea7b('0x68')]())){channels[_0x528357[_0xea7b('0x8')]][_0xea7b('0x55')]=_0x528357[_0xea7b('0x67')];channels[_0x528357[_0xea7b('0x8')]]['lastdata']=_0x528357[_0xea7b('0x66')];}}}catch(_0x2d0205){utils['error'](util[_0xea7b('0xb')]('[%s][calls][newexten]',_0x528357[_0xea7b('0x8')]),_0x2d0205);}};