Built motion from commit (unavailable).|2.5.31
[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 _0x31cc=['variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','destination','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','Queue','lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','set','toLowerCase','cdr','appdata','split','lastIndexOf','includes','noop','execif','lodash','util','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','blinds','uniqueid','transfereeuniqueid','info','format','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','UserId','request','CreateVoiceCallReport','[%s][calls][newchannel]','OutgoingSpoolFailed','context','exten','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','hangup','debug','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','transfertargetchannel','origtransfererchannel','userfield','_attended','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','[%s][calls][musiconholdstop]','varset'];(function(_0x54d9fd,_0x3d2f76){var _0x5370e1=function(_0x434561){while(--_0x434561){_0x54d9fd['push'](_0x54d9fd['shift']());}};_0x5370e1(++_0x3d2f76);}(_0x31cc,0xf8));var _0xc31c=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0x31cc[_0x1ccdf7];return _0x52a0ae;};'use strict';var _=require(_0xc31c('0x0'));var util=require(_0xc31c('0x1'));var utils=require('./utils');var transfers=require(_0xc31c('0x2'));var dispositions=['NO\x20ANSWER',_0xc31c('0x3'),_0xc31c('0x3'),_0xc31c('0x4'),_0xc31c('0x4'),_0xc31c('0x4'),_0xc31c('0x5'),'BUSY',_0xc31c('0x3'),_0xc31c('0x3'),_0xc31c('0x3')];var channels={};function writeDB(_0x9fa4fc){var _0x369122;if(transfers[_0xc31c('0x6')][_0x9fa4fc[_0xc31c('0x7')]]){_0x369122=_0x9fa4fc[_0xc31c('0x7')];_0x9fa4fc[_0xc31c('0x7')]=transfers[_0xc31c('0x6')][_0x9fa4fc[_0xc31c('0x7')]][_0xc31c('0x8')];}utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x9fa4fc[_0xc31c('0x7')],_0x9fa4fc[_0xc31c('0xb')],_0x9fa4fc[_0xc31c('0xc')],_0x9fa4fc[_0xc31c('0xd')],_0x9fa4fc[_0xc31c('0xe')],_0x9fa4fc[_0xc31c('0xf')],_0x9fa4fc[_0xc31c('0x10')],_0x9fa4fc[_0xc31c('0x11')]));if(_0x9fa4fc[_0xc31c('0x12')]){utils['getUserByInternal'](_0x9fa4fc[_0xc31c('0x12')])['then'](function(_0x2535e4){if(_0x2535e4){_0x9fa4fc[_0xc31c('0x13')]=_0x2535e4['id'];}utils[_0xc31c('0x14')]('CreateVoiceCallReport',_0x9fa4fc);});}else{utils[_0xc31c('0x14')](_0xc31c('0x15'),_0x9fa4fc);}if(channels[_0x9fa4fc['uniqueid']]){delete channels[_0x9fa4fc[_0xc31c('0x7')]];}else if(_0x369122&&channels[_0x369122]){delete transfers[_0xc31c('0x6')][_0x369122];delete channels[_0x369122];}}exports['newchannel']=function(_0xcbcbda){try{utils['debug'](util[_0xc31c('0xa')](_0xc31c('0x16'),_0xcbcbda['uniqueid']),_0xcbcbda);if(_0xcbcbda[_0xc31c('0x7')]==_0xcbcbda['linkedid']&&_0xcbcbda['channel']!=_0xc31c('0x17')){utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0xcbcbda[_0xc31c('0x7')],_0xcbcbda[_0xc31c('0x18')],_0xcbcbda[_0xc31c('0x19')]));channels[_0xcbcbda[_0xc31c('0x7')]]={'uniqueid':_0xcbcbda['uniqueid'],'accountcode':_0xcbcbda[_0xc31c('0x12')],'source':_0xcbcbda[_0xc31c('0xf')],'destination':_0xcbcbda[_0xc31c('0x19')],'destinationcontext':_0xcbcbda['context'],'channel':_0xcbcbda[_0xc31c('0xb')],'starttime':utils[_0xc31c('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xc31c('0x1b')};}}catch(_0x6f1d1c){utils[_0xc31c('0x1c')](util[_0xc31c('0xa')](_0xc31c('0x16'),_0xcbcbda[_0xc31c('0x7')]),_0x6f1d1c);}};exports[_0xc31c('0x1d')]=function(_0x2a44c0){try{utils['debug'](util[_0xc31c('0xa')](_0xc31c('0x1e'),_0x2a44c0['uniqueid']),_0x2a44c0);if(!_[_0xc31c('0x1f')](channels[_0x2a44c0[_0xc31c('0x7')]])&&_0x2a44c0[_0xc31c('0x20')]==0x6){utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x2a44c0[_0xc31c('0x7')],_0x2a44c0[_0xc31c('0x18')],_0x2a44c0[_0xc31c('0xb')]));if(_[_0xc31c('0x1f')](channels[_0x2a44c0[_0xc31c('0x7')]][_0xc31c('0x21')])){channels[_0x2a44c0['uniqueid']]['systemanswertime']=utils[_0xc31c('0x1a')]();}}else if(!_[_0xc31c('0x1f')](channels[_0x2a44c0[_0xc31c('0x22')]])&&_0x2a44c0[_0xc31c('0x20')]==0x6&&_0x2a44c0[_0xc31c('0x18')]!=_0xc31c('0x23')){utils[_0xc31c('0x9')](util['format'](_0xc31c('0x24'),_0x2a44c0['uniqueid'],_0x2a44c0[_0xc31c('0x22')],_0x2a44c0[_0xc31c('0x18')],_0x2a44c0[_0xc31c('0xb')]));channels[_0x2a44c0[_0xc31c('0x22')]][_0xc31c('0x12')]=_0x2a44c0[_0xc31c('0x12')];channels[_0x2a44c0[_0xc31c('0x22')]][_0xc31c('0x25')]=_0x2a44c0[_0xc31c('0xb')];if(_[_0xc31c('0x1f')](channels[_0x2a44c0['linkedid']][_0xc31c('0x26')])){channels[_0x2a44c0[_0xc31c('0x22')]][_0xc31c('0x26')]=utils[_0xc31c('0x1a')]();}channels[_0x2a44c0[_0xc31c('0x22')]][_0xc31c('0x27')]=dispositions[_['toNumber'](_0x2a44c0[_0xc31c('0x20')])]||_0xc31c('0x5');}}catch(_0x3bc033){utils[_0xc31c('0x1c')](util[_0xc31c('0xa')](_0xc31c('0x1e'),_0x2a44c0['uniqueid']),_0x3bc033);}};exports[_0xc31c('0x28')]=function(_0x128ff0){try{if(!_[_0xc31c('0x1f')](channels[_0x128ff0['uniqueid']])){utils[_0xc31c('0x29')](util['format'](_0xc31c('0x2a'),_0x128ff0[_0xc31c('0x7')]),_0x128ff0);if(_['isNil'](channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x2b')])){channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x2b')]=_0x128ff0[_0xc31c('0x2c')]+'\x20<'+_0x128ff0[_0xc31c('0xf')]+'>';}utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x2d'),_0x128ff0[_0xc31c('0x7')],channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x2b')],_0x128ff0[_0xc31c('0x2e')]));channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x2f')]=utils['now']();channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x30')]=utils[_0xc31c('0x31')](channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x2f')],channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x32')]);channels[_0x128ff0[_0xc31c('0x7')]]['billableseconds']=channels[_0x128ff0[_0xc31c('0x7')]][_0xc31c('0x26')]?utils[_0xc31c('0x31')](channels[_0x128ff0[_0xc31c('0x7')]]['endtime'],channels[_0x128ff0['uniqueid']][_0xc31c('0x26')]):0x0;writeDB(channels[_0x128ff0['uniqueid']]);}}catch(_0x3c9feb){utils[_0xc31c('0x1c')](util['format'](_0xc31c('0x2a'),_0x128ff0[_0xc31c('0x7')]),_0x3c9feb);}};exports[_0xc31c('0x33')]=function(_0xaef335){try{if(!_['isNil'](channels[_0xaef335[_0xc31c('0x34')]])){utils[_0xc31c('0x29')](util['format'](_0xc31c('0x35'),_0xaef335[_0xc31c('0x36')]),_0xaef335);if(channels[_0xaef335[_0xc31c('0x34')]]['channel']==_0xaef335[_0xc31c('0x37')]){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x38'),_0xaef335[_0xc31c('0x36')],_0xaef335[_0xc31c('0x34')],_0xaef335[_0xc31c('0x39')]));channels[_0xaef335[_0xc31c('0x34')]][_0xc31c('0x25')]=_0xaef335[_0xc31c('0x39')];channels[_0xaef335[_0xc31c('0x34')]]['userfield']='_attended';}else if(channels[_0xaef335['localtwolinkedid']]['channel']=_0xaef335[_0xc31c('0x3a')]){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x38'),_0xaef335[_0xc31c('0x36')],_0xaef335[_0xc31c('0x34')],_0xaef335[_0xc31c('0x3b')]));channels[_0xaef335['localtwolinkedid']]['destinationchannel']=_0xaef335[_0xc31c('0x3b')];channels[_0xaef335[_0xc31c('0x34')]][_0xc31c('0x3c')]=_0xc31c('0x3d');}}}catch(_0x547721){utils[_0xc31c('0x1c')](util[_0xc31c('0xa')](_0xc31c('0x35'),_0xaef335[_0xc31c('0x36')]),_0x547721);}};exports[_0xc31c('0x3e')]=function(_0x50ade8){try{if(!_[_0xc31c('0x1f')](channels[_0x50ade8[_0xc31c('0x7')]])){utils['debug'](util[_0xc31c('0xa')](_0xc31c('0x3f'),_0x50ade8['uniqueid']),_0x50ade8);channels[_0x50ade8[_0xc31c('0x7')]][_0xc31c('0x40')]=utils[_0xc31c('0x1a')]();utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x50ade8[_0xc31c('0x7')],channels[_0x50ade8['uniqueid']]['musiconholdstartAt']));}}catch(_0x44f395){utils['error'](util[_0xc31c('0xa')]('[%s][calls][musiconholdstart]',_0x50ade8[_0xc31c('0x7')]),_0x44f395);}};exports[_0xc31c('0x41')]=function(_0x3ce123){try{if(!_[_0xc31c('0x1f')](channels[_0x3ce123['uniqueid']])){utils['debug'](util[_0xc31c('0xa')]('[%s][calls][musiconholdstop]',_0x3ce123[_0xc31c('0x7')]),_0x3ce123);if(!_[_0xc31c('0x1f')](channels[_0x3ce123['uniqueid']][_0xc31c('0x40')])){channels[_0x3ce123['uniqueid']]['mohtime']+=utils[_0xc31c('0x31')](utils[_0xc31c('0x1a')](),channels[_0x3ce123['uniqueid']][_0xc31c('0x40')]);utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x42'),_0x3ce123[_0xc31c('0x7')],channels[_0x3ce123[_0xc31c('0x7')]][_0xc31c('0x43')]));delete channels[_0x3ce123['uniqueid']][_0xc31c('0x40')];}}}catch(_0x11c50b){utils[_0xc31c('0x1c')](util[_0xc31c('0xa')](_0xc31c('0x44'),_0x3ce123['uniqueid']),_0x11c50b);}};exports[_0xc31c('0x45')]=function(_0x26846b){try{if(!_[_0xc31c('0x1f')](channels[_0x26846b[_0xc31c('0x7')]])){utils[_0xc31c('0x29')](util[_0xc31c('0xa')]('[%s][calls][varset]',_0x26846b[_0xc31c('0x7')]),_0x26846b);if(!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')]['xmd-originatecalleridnum'])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x47'),_0x26846b[_0xc31c('0x7')],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x49')]=_0x26846b[_0xc31c('0x48')];}if(!_[_0xc31c('0x1f')](_0x26846b['variable']['xmd-phone'])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x26846b[_0xc31c('0x7')],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x4a')]=_0x26846b[_0xc31c('0x48')];channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x2b')]='\x22'+_0x26846b[_0xc31c('0x48')]+'\x22\x20<'+_0x26846b[_0xc31c('0x48')]+'>';}if(!_[_0xc31c('0x1f')](_0x26846b['variable'][_0xc31c('0x4b')])||!_[_0xc31c('0x1f')](_0x26846b['variable'][_0xc31c('0x4c')])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x26846b[_0xc31c('0x7')],!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x4b')])?_0xc31c('0x4b'):_0xc31c('0x4c'),_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x2b')]=_0x26846b[_0xc31c('0x48')];}if(!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x4d')])||!_['isNil'](_0x26846b[_0xc31c('0x46')][_0xc31c('0x4e')])){utils['info'](util[_0xc31c('0xa')](_0xc31c('0x4f'),_0x26846b['uniqueid'],!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x4d')])?'xmd-queue':'xmcs-queue',_0x26846b['value']));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x50')]=_0xc31c('0x51');channels[_0x26846b['uniqueid']][_0xc31c('0x52')]=_0x26846b[_0xc31c('0x48')];channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0xc')]=!![];}if(!_['isNil'](_0x26846b['variable']['xmd-contactid'])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x53'),_0x26846b['uniqueid'],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x54')]=_0x26846b[_0xc31c('0x48')];}if(!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x55')])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x56'),_0x26846b['uniqueid'],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]]['type']=_0x26846b[_0xc31c('0x48')];}if(!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x57')])){utils[_0xc31c('0x9')](util['format'](_0xc31c('0x58'),_0x26846b[_0xc31c('0x7')],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x59')]=_0x26846b[_0xc31c('0x48')];}if(!_[_0xc31c('0x1f')](_0x26846b[_0xc31c('0x46')][_0xc31c('0x5a')])){utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x5b'),_0x26846b[_0xc31c('0x7')],_0x26846b[_0xc31c('0x48')]));channels[_0x26846b[_0xc31c('0x7')]][_0xc31c('0x5a')]=_0x26846b[_0xc31c('0x48')];}}}catch(_0x4da962){utils[_0xc31c('0x1c')](util[_0xc31c('0xa')](_0xc31c('0x5c'),_0x26846b['uniqueid']),_0x4da962);}};exports[_0xc31c('0x5d')]=function(_0x2a482d){try{if(!_['isNil'](channels[_0x2a482d[_0xc31c('0x7')]])){utils[_0xc31c('0x29')](util['format'](_0xc31c('0x5e'),_0x2a482d[_0xc31c('0x7')]),_0x2a482d);utils[_0xc31c('0x9')](util[_0xc31c('0xa')](_0xc31c('0x5f'),_0x2a482d[_0xc31c('0x7')],_0x2a482d[_0xc31c('0x60')],_0x2a482d['appdata']));if(_0x2a482d[_0xc31c('0x60')]['toLowerCase']()==_0xc31c('0x61')&&_['startsWith'](_0x2a482d['appdata'][_0xc31c('0x62')](),_0xc31c('0x63'))){var _0x5d3028=_0x2a482d[_0xc31c('0x64')][_0xc31c('0x65')]('=');var _0x51bd31=_0x5d3028[0x0]['substring'](_0x5d3028[0x0][_0xc31c('0x66')]('(')+0x1,_0x5d3028[0x0]['lastIndexOf'](')'));var _0x5b8f73=_0x5d3028[0x1];channels[_0x2a482d[_0xc31c('0x7')]][_0x51bd31]=_0x5b8f73;}if(!_[_0xc31c('0x67')](['hangup',_0xc31c('0x68'),_0xc31c('0x69'),_0xc31c('0x61'),'gotoif'],_0x2a482d[_0xc31c('0x60')][_0xc31c('0x62')]())){channels[_0x2a482d[_0xc31c('0x7')]][_0xc31c('0x50')]=_0x2a482d['application'];channels[_0x2a482d[_0xc31c('0x7')]][_0xc31c('0x52')]=_0x2a482d[_0xc31c('0x64')];}}}catch(_0x14884d){utils['error'](util['format'](_0xc31c('0x5e'),_0x2a482d[_0xc31c('0x7')]),_0x14884d);}};