Built motion from commit 19a84241.|2.5.34
[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 _0xab26=['[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][newexten]','application','appdata','toLowerCase','set','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','info','format','queue','membername','interface','calleridnum','connectedlinenum','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','channel','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','DOCUMENTATION','newstate','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','answertime','now','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','cause-txt','diffTime','starttime','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','destinationchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','error','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','lastdata'];(function(_0x278b5c,_0xe74300){var _0x17d7fc=function(_0x5ab88f){while(--_0x5ab88f){_0x278b5c['push'](_0x278b5c['shift']());}};_0x17d7fc(++_0xe74300);}(_0xab26,0x148));var _0x6ab2=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xab26[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0x6ab2('0x0'));var util=require('util');var utils=require(_0x6ab2('0x1'));var transfers=require('./transfers.controller');var dispositions=[_0x6ab2('0x2'),_0x6ab2('0x3'),_0x6ab2('0x3'),_0x6ab2('0x2'),_0x6ab2('0x2'),_0x6ab2('0x2'),_0x6ab2('0x4'),_0x6ab2('0x5'),'FAILED',_0x6ab2('0x3'),_0x6ab2('0x3')];var channels={};function writeDB(_0x4750de){var _0x369022;if(transfers[_0x6ab2('0x6')][_0x4750de[_0x6ab2('0x7')]]){_0x369022=_0x4750de['uniqueid'];_0x4750de[_0x6ab2('0x7')]=transfers['blinds'][_0x4750de[_0x6ab2('0x7')]]['transfereeuniqueid'];}utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x4750de[_0x6ab2('0x7')],_0x4750de['channel'],_0x4750de[_0x6ab2('0xa')],_0x4750de[_0x6ab2('0xb')],_0x4750de[_0x6ab2('0xc')],_0x4750de[_0x6ab2('0xd')],_0x4750de[_0x6ab2('0xe')],_0x4750de['lastevent']));if(_0x4750de[_0x6ab2('0xf')]){utils[_0x6ab2('0x10')](_0x4750de[_0x6ab2('0xf')])[_0x6ab2('0x11')](function(_0x2cd8df){if(_0x2cd8df){_0x4750de['UserId']=_0x2cd8df['id'];}utils[_0x6ab2('0x12')](_0x6ab2('0x13'),_0x4750de);});}else{utils[_0x6ab2('0x12')](_0x6ab2('0x13'),_0x4750de);}if(channels[_0x4750de['uniqueid']]){delete channels[_0x4750de[_0x6ab2('0x7')]];}else if(_0x369022&&channels[_0x369022]){delete transfers['blinds'][_0x369022];delete channels[_0x369022];}}exports[_0x6ab2('0x14')]=function(_0x55982a){try{utils[_0x6ab2('0x15')](util[_0x6ab2('0x9')](_0x6ab2('0x16'),_0x55982a[_0x6ab2('0x7')]),_0x55982a);if(_0x55982a[_0x6ab2('0x7')]==_0x55982a[_0x6ab2('0x17')]&&_0x55982a[_0x6ab2('0x18')]!=_0x6ab2('0x19')){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x1a'),_0x55982a['uniqueid'],_0x55982a['context'],_0x55982a[_0x6ab2('0x1b')]));channels[_0x55982a[_0x6ab2('0x7')]]={'uniqueid':_0x55982a[_0x6ab2('0x7')],'accountcode':_0x55982a[_0x6ab2('0xf')],'source':_0x55982a[_0x6ab2('0xd')],'destination':_0x55982a['exten'],'destinationcontext':_0x55982a[_0x6ab2('0x1c')],'channel':_0x55982a[_0x6ab2('0x18')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x6ab2('0x2'),'amaflags':_0x6ab2('0x1d')};}}catch(_0x1249f5){utils['error'](util[_0x6ab2('0x9')](_0x6ab2('0x16'),_0x55982a[_0x6ab2('0x7')]),_0x1249f5);}};exports[_0x6ab2('0x1e')]=function(_0x236828){try{utils[_0x6ab2('0x15')](util[_0x6ab2('0x9')]('[%s][calls][newstate]',_0x236828[_0x6ab2('0x7')]),_0x236828);if(!_[_0x6ab2('0x1f')](channels[_0x236828[_0x6ab2('0x7')]])&&_0x236828[_0x6ab2('0x20')]==0x6){utils[_0x6ab2('0x8')](util['format'](_0x6ab2('0x21'),_0x236828['uniqueid'],_0x236828[_0x6ab2('0x1c')],_0x236828['channel']));if(_['isNil'](channels[_0x236828[_0x6ab2('0x7')]][_0x6ab2('0x22')])){channels[_0x236828[_0x6ab2('0x7')]]['systemanswertime']=utils['now']();}}else if(!_['isNil'](channels[_0x236828[_0x6ab2('0x17')]])&&_0x236828['channelstate']==0x6&&_0x236828[_0x6ab2('0x1c')]!='transfer'){utils[_0x6ab2('0x8')](util['format']('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x236828[_0x6ab2('0x7')],_0x236828['linkedid'],_0x236828[_0x6ab2('0x1c')],_0x236828[_0x6ab2('0x18')]));channels[_0x236828[_0x6ab2('0x17')]][_0x6ab2('0xf')]=_0x236828[_0x6ab2('0xf')];channels[_0x236828[_0x6ab2('0x17')]]['destinationchannel']=_0x236828[_0x6ab2('0x18')];if(_['isNil'](channels[_0x236828[_0x6ab2('0x17')]]['answertime'])){channels[_0x236828[_0x6ab2('0x17')]][_0x6ab2('0x23')]=utils[_0x6ab2('0x24')]();}channels[_0x236828['linkedid']]['disposition']=dispositions[_['toNumber'](_0x236828['channelstate'])]||_0x6ab2('0x4');}}catch(_0x1ac877){utils['error'](util[_0x6ab2('0x9')](_0x6ab2('0x25'),_0x236828[_0x6ab2('0x7')]),_0x1ac877);}};exports[_0x6ab2('0x26')]=function(_0x319b16){try{if(!_[_0x6ab2('0x1f')](channels[_0x319b16[_0x6ab2('0x7')]])){utils[_0x6ab2('0x15')](util['format'](_0x6ab2('0x27'),_0x319b16[_0x6ab2('0x7')]),_0x319b16);if(_[_0x6ab2('0x1f')](channels[_0x319b16[_0x6ab2('0x7')]][_0x6ab2('0x28')])){channels[_0x319b16[_0x6ab2('0x7')]][_0x6ab2('0x28')]=_0x319b16['calleridname']+'\x20<'+_0x319b16[_0x6ab2('0xd')]+'>';}utils['info'](util['format']('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x319b16[_0x6ab2('0x7')],channels[_0x319b16[_0x6ab2('0x7')]][_0x6ab2('0x28')],_0x319b16[_0x6ab2('0x29')]));channels[_0x319b16['uniqueid']]['endtime']=utils[_0x6ab2('0x24')]();channels[_0x319b16[_0x6ab2('0x7')]]['duration']=utils[_0x6ab2('0x2a')](channels[_0x319b16[_0x6ab2('0x7')]]['endtime'],channels[_0x319b16[_0x6ab2('0x7')]][_0x6ab2('0x2b')]);channels[_0x319b16[_0x6ab2('0x7')]]['billableseconds']=channels[_0x319b16[_0x6ab2('0x7')]]['answertime']?utils[_0x6ab2('0x2a')](channels[_0x319b16['uniqueid']]['endtime'],channels[_0x319b16['uniqueid']][_0x6ab2('0x23')]):0x0;writeDB(channels[_0x319b16[_0x6ab2('0x7')]]);}}catch(_0x133ae6){utils['error'](util['format'](_0x6ab2('0x27'),_0x319b16[_0x6ab2('0x7')]),_0x133ae6);}};exports[_0x6ab2('0x2c')]=function(_0x29de5d){try{if(!_[_0x6ab2('0x1f')](channels[_0x29de5d['localtwolinkedid']])){utils['debug'](util[_0x6ab2('0x9')](_0x6ab2('0x2d'),_0x29de5d[_0x6ab2('0x2e')]),_0x29de5d);if(channels[_0x29de5d[_0x6ab2('0x2f')]][_0x6ab2('0x18')]==_0x29de5d[_0x6ab2('0x30')]){utils['info'](util[_0x6ab2('0x9')](_0x6ab2('0x31'),_0x29de5d[_0x6ab2('0x2e')],_0x29de5d[_0x6ab2('0x2f')],_0x29de5d[_0x6ab2('0x32')]));channels[_0x29de5d[_0x6ab2('0x2f')]][_0x6ab2('0x33')]=_0x29de5d[_0x6ab2('0x32')];channels[_0x29de5d[_0x6ab2('0x2f')]][_0x6ab2('0x34')]=_0x6ab2('0x35');}else if(channels[_0x29de5d[_0x6ab2('0x2f')]][_0x6ab2('0x18')]=_0x29de5d[_0x6ab2('0x36')]){utils[_0x6ab2('0x8')](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x29de5d[_0x6ab2('0x2e')],_0x29de5d['localtwolinkedid'],_0x29de5d[_0x6ab2('0x37')]));channels[_0x29de5d[_0x6ab2('0x2f')]]['destinationchannel']=_0x29de5d[_0x6ab2('0x37')];channels[_0x29de5d['localtwolinkedid']]['userfield']='_attended';}}}catch(_0x559586){utils[_0x6ab2('0x38')](util[_0x6ab2('0x9')](_0x6ab2('0x2d'),_0x29de5d[_0x6ab2('0x2e')]),_0x559586);}};exports['musiconholdstart']=function(_0xabf732){try{if(!_['isNil'](channels[_0xabf732[_0x6ab2('0x7')]])){utils[_0x6ab2('0x15')](util[_0x6ab2('0x9')](_0x6ab2('0x39'),_0xabf732[_0x6ab2('0x7')]),_0xabf732);channels[_0xabf732[_0x6ab2('0x7')]][_0x6ab2('0x3a')]=utils['now']();utils['info'](util[_0x6ab2('0x9')](_0x6ab2('0x3b'),_0xabf732[_0x6ab2('0x7')],channels[_0xabf732[_0x6ab2('0x7')]]['musiconholdstartAt']));}}catch(_0x5928f8){utils['error'](util[_0x6ab2('0x9')](_0x6ab2('0x39'),_0xabf732[_0x6ab2('0x7')]),_0x5928f8);}};exports['musiconholdstop']=function(_0x2d83c0){try{if(!_[_0x6ab2('0x1f')](channels[_0x2d83c0[_0x6ab2('0x7')]])){utils[_0x6ab2('0x15')](util[_0x6ab2('0x9')]('[%s][calls][musiconholdstop]',_0x2d83c0['uniqueid']),_0x2d83c0);if(!_[_0x6ab2('0x1f')](channels[_0x2d83c0[_0x6ab2('0x7')]]['musiconholdstartAt'])){channels[_0x2d83c0[_0x6ab2('0x7')]][_0x6ab2('0x3c')]+=utils['diffTime'](utils['now'](),channels[_0x2d83c0[_0x6ab2('0x7')]][_0x6ab2('0x3a')]);utils['info'](util[_0x6ab2('0x9')](_0x6ab2('0x3d'),_0x2d83c0[_0x6ab2('0x7')],channels[_0x2d83c0[_0x6ab2('0x7')]][_0x6ab2('0x3c')]));delete channels[_0x2d83c0[_0x6ab2('0x7')]][_0x6ab2('0x3a')];}}}catch(_0x1561b6){utils[_0x6ab2('0x38')](util[_0x6ab2('0x9')](_0x6ab2('0x3e'),_0x2d83c0['uniqueid']),_0x1561b6);}};exports[_0x6ab2('0x3f')]=function(_0x1a1cd1){try{if(!_[_0x6ab2('0x1f')](channels[_0x1a1cd1[_0x6ab2('0x7')]])){utils[_0x6ab2('0x15')](util[_0x6ab2('0x9')](_0x6ab2('0x40'),_0x1a1cd1[_0x6ab2('0x7')]),_0x1a1cd1);if(!_['isNil'](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x42')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x43'),_0x1a1cd1['uniqueid'],_0x1a1cd1['value']));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x44')]=_0x1a1cd1['value'];}if(!_[_0x6ab2('0x1f')](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x45')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x46'),_0x1a1cd1[_0x6ab2('0x7')],_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x48')]=_0x1a1cd1[_0x6ab2('0x47')];channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x28')]='\x22'+_0x1a1cd1[_0x6ab2('0x47')]+'\x22\x20<'+_0x1a1cd1['value']+'>';}if(!_[_0x6ab2('0x1f')](_0x1a1cd1['variable']['xmd-callerid-preview'])||!_[_0x6ab2('0x1f')](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x49')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x4a'),_0x1a1cd1[_0x6ab2('0x7')],!_['isNil'](_0x1a1cd1['variable'][_0x6ab2('0x4b')])?_0x6ab2('0x4b'):_0x6ab2('0x49'),_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x28')]=_0x1a1cd1[_0x6ab2('0x47')];}if(!_[_0x6ab2('0x1f')](_0x1a1cd1['variable'][_0x6ab2('0x4c')])||!_[_0x6ab2('0x1f')](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x4d')])){utils['info'](util[_0x6ab2('0x9')](_0x6ab2('0x4a'),_0x1a1cd1[_0x6ab2('0x7')],!_[_0x6ab2('0x1f')](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x4c')])?'xmd-queue':_0x6ab2('0x4d'),_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x4e')]='Queue';channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x4f')]=_0x1a1cd1['value'];channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0xa')]=!![];}if(!_[_0x6ab2('0x1f')](_0x1a1cd1['variable']['xmd-contactid'])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x50'),_0x1a1cd1[_0x6ab2('0x7')],_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x51')]=_0x1a1cd1[_0x6ab2('0x47')];}if(!_[_0x6ab2('0x1f')](_0x1a1cd1['variable'][_0x6ab2('0x52')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x1a1cd1[_0x6ab2('0x7')],_0x1a1cd1['value']));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x53')]=_0x1a1cd1[_0x6ab2('0x47')];}if(!_[_0x6ab2('0x1f')](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x54')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x55'),_0x1a1cd1[_0x6ab2('0x7')],_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]][_0x6ab2('0x56')]=_0x1a1cd1[_0x6ab2('0x47')];}if(!_['isNil'](_0x1a1cd1[_0x6ab2('0x41')][_0x6ab2('0x57')])){utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')](_0x6ab2('0x58'),_0x1a1cd1['uniqueid'],_0x1a1cd1[_0x6ab2('0x47')]));channels[_0x1a1cd1[_0x6ab2('0x7')]]['sipcallid']=_0x1a1cd1['value'];}}}catch(_0x46d3de){utils['error'](util[_0x6ab2('0x9')]('[%s][calls][varset]',_0x1a1cd1[_0x6ab2('0x7')]),_0x46d3de);}};exports['newexten']=function(_0x249304){try{if(!_[_0x6ab2('0x1f')](channels[_0x249304[_0x6ab2('0x7')]])){utils[_0x6ab2('0x15')](util['format'](_0x6ab2('0x59'),_0x249304['uniqueid']),_0x249304);utils[_0x6ab2('0x8')](util[_0x6ab2('0x9')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x249304[_0x6ab2('0x7')],_0x249304[_0x6ab2('0x5a')],_0x249304[_0x6ab2('0x5b')]));if(_0x249304[_0x6ab2('0x5a')][_0x6ab2('0x5c')]()==_0x6ab2('0x5d')&&_['startsWith'](_0x249304['appdata'][_0x6ab2('0x5c')](),_0x6ab2('0x5e'))){var _0x40537e=_0x249304[_0x6ab2('0x5b')][_0x6ab2('0x5f')]('=');var _0x4820e3=_0x40537e[0x0][_0x6ab2('0x60')](_0x40537e[0x0][_0x6ab2('0x61')]('(')+0x1,_0x40537e[0x0][_0x6ab2('0x61')](')'));var _0xb6f71a=_0x40537e[0x1];channels[_0x249304['uniqueid']][_0x4820e3]=_0xb6f71a;}if(!_[_0x6ab2('0x62')]([_0x6ab2('0x26'),_0x6ab2('0x63'),_0x6ab2('0x64'),_0x6ab2('0x5d'),_0x6ab2('0x65')],_0x249304['application'][_0x6ab2('0x5c')]())){channels[_0x249304[_0x6ab2('0x7')]][_0x6ab2('0x4e')]=_0x249304['application'];channels[_0x249304[_0x6ab2('0x7')]][_0x6ab2('0x4f')]=_0x249304[_0x6ab2('0x5b')];}}}catch(_0x598b4f){utils['error'](util[_0x6ab2('0x9')]('[%s][calls][newexten]',_0x249304[_0x6ab2('0x7')]),_0x598b4f);}};