Built motion from commit (unavailable).|2.5.17
[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 _0x9a2f=['lastapplication','Queue','lastdata','ContactId','xmd-cdrtype','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','hangup','noop','execif','gotoif','lodash','util','./utils','NO\x20ANSWER','ANSWERED','BUSY','FAILED','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','calleridnum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','now','DOCUMENTATION','newstate','isNil','channelstate','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','error','[%s][calls][newstate]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','diffTime','endtime','starttime','billableseconds','[%s][calls][hangup]','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','userfield','_attended','origtransfererchannel','musiconholdstart','musiconholdstartAt','[%s][calls][musiconholdstart]','musiconholdstop','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','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','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue'];(function(_0x17a75c,_0x3f82fa){var _0x24ee5c=function(_0x5b34ae){while(--_0x5b34ae){_0x17a75c['push'](_0x17a75c['shift']());}};_0x24ee5c(++_0x3f82fa);}(_0x9a2f,0x14f));var _0xf9a2=function(_0x3b1caf,_0x8a35c5){_0x3b1caf=_0x3b1caf-0x0;var _0x416b17=_0x9a2f[_0x3b1caf];return _0x416b17;};'use strict';var _=require(_0xf9a2('0x0'));var util=require(_0xf9a2('0x1'));var utils=require(_0xf9a2('0x2'));var dispositions=[_0xf9a2('0x3'),'FAILED','FAILED',_0xf9a2('0x3'),_0xf9a2('0x3'),'NO\x20ANSWER',_0xf9a2('0x4'),_0xf9a2('0x5'),_0xf9a2('0x6'),'FAILED',_0xf9a2('0x6')];var channels={};function writeDB(_0x57ecd3){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')](_0xf9a2('0x9'),_0x57ecd3[_0xf9a2('0xa')],_0x57ecd3[_0xf9a2('0xb')],_0x57ecd3['queue'],_0x57ecd3[_0xf9a2('0xc')],_0x57ecd3['interface'],_0x57ecd3[_0xf9a2('0xd')],_0x57ecd3['connectedlinenum'],_0x57ecd3[_0xf9a2('0xe')]));if(_0x57ecd3[_0xf9a2('0xf')]){utils[_0xf9a2('0x10')](_0x57ecd3[_0xf9a2('0xf')])[_0xf9a2('0x11')](function(_0xf70c47){if(_0xf70c47){_0x57ecd3[_0xf9a2('0x12')]=_0xf70c47['id'];}utils[_0xf9a2('0x13')](_0xf9a2('0x14'),_0x57ecd3);});}else{utils['request'](_0xf9a2('0x14'),_0x57ecd3);}if(channels[_0x57ecd3['uniqueid']]){delete channels[_0x57ecd3['uniqueid']];}}exports[_0xf9a2('0x15')]=function(_0x2476c9){try{utils[_0xf9a2('0x16')](util[_0xf9a2('0x8')](_0xf9a2('0x17'),_0x2476c9['uniqueid']),_0x2476c9);if(_0x2476c9[_0xf9a2('0xa')]==_0x2476c9[_0xf9a2('0x18')]&&_0x2476c9[_0xf9a2('0xb')]!=_0xf9a2('0x19')){utils['info'](util[_0xf9a2('0x8')](_0xf9a2('0x1a'),_0x2476c9[_0xf9a2('0xa')],_0x2476c9[_0xf9a2('0x1b')],_0x2476c9['exten']));channels[_0x2476c9[_0xf9a2('0xa')]]={'uniqueid':_0x2476c9[_0xf9a2('0xa')],'accountcode':_0x2476c9[_0xf9a2('0xf')],'source':_0x2476c9[_0xf9a2('0xd')],'destination':_0x2476c9['exten'],'destinationcontext':_0x2476c9[_0xf9a2('0x1b')],'channel':_0x2476c9[_0xf9a2('0xb')],'starttime':utils[_0xf9a2('0x1c')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xf9a2('0x3'),'amaflags':_0xf9a2('0x1d')};}}catch(_0x498802){utils['error'](util['format']('[%s][calls][newchannel]',_0x2476c9[_0xf9a2('0xa')]),_0x498802);}};exports[_0xf9a2('0x1e')]=function(_0x761e52){try{utils[_0xf9a2('0x16')](util['format']('[%s][calls][newstate]',_0x761e52[_0xf9a2('0xa')]),_0x761e52);if(!_[_0xf9a2('0x1f')](channels[_0x761e52[_0xf9a2('0xa')]])&&_0x761e52[_0xf9a2('0x20')]==0x6){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x761e52[_0xf9a2('0xa')],_0x761e52['context'],_0x761e52['channel']));if(_[_0xf9a2('0x1f')](channels[_0x761e52['uniqueid']]['systemanswertime'])){channels[_0x761e52[_0xf9a2('0xa')]]['systemanswertime']=utils[_0xf9a2('0x1c')]();}}else if(!_[_0xf9a2('0x1f')](channels[_0x761e52[_0xf9a2('0x18')]])&&_0x761e52[_0xf9a2('0x20')]==0x6&&_0x761e52[_0xf9a2('0x1b')]!=_0xf9a2('0x21')){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')](_0xf9a2('0x22'),_0x761e52[_0xf9a2('0xa')],_0x761e52[_0xf9a2('0x18')],_0x761e52[_0xf9a2('0x1b')],_0x761e52[_0xf9a2('0xb')]));channels[_0x761e52[_0xf9a2('0x18')]][_0xf9a2('0xf')]=_0x761e52[_0xf9a2('0xf')];channels[_0x761e52[_0xf9a2('0x18')]][_0xf9a2('0x23')]=_0x761e52[_0xf9a2('0xb')];if(_[_0xf9a2('0x1f')](channels[_0x761e52[_0xf9a2('0x18')]]['answertime'])){channels[_0x761e52['linkedid']][_0xf9a2('0x24')]=utils['now']();}channels[_0x761e52[_0xf9a2('0x18')]][_0xf9a2('0x25')]=dispositions[_[_0xf9a2('0x26')](_0x761e52[_0xf9a2('0x20')])]||_0xf9a2('0x4');}}catch(_0x5ee337){utils[_0xf9a2('0x27')](util[_0xf9a2('0x8')](_0xf9a2('0x28'),_0x761e52['uniqueid']),_0x5ee337);}};exports['hangup']=function(_0x3efe53){try{if(!_[_0xf9a2('0x1f')](channels[_0x3efe53[_0xf9a2('0xa')]])){utils['debug'](util[_0xf9a2('0x8')]('[%s][calls][hangup]',_0x3efe53[_0xf9a2('0xa')]),_0x3efe53);if(_[_0xf9a2('0x1f')](channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x29')])){channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x29')]=_0x3efe53[_0xf9a2('0x2a')]+'\x20<'+_0x3efe53[_0xf9a2('0xd')]+'>';}utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')](_0xf9a2('0x2b'),_0x3efe53[_0xf9a2('0xa')],channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x29')],_0x3efe53[_0xf9a2('0x2c')]));channels[_0x3efe53[_0xf9a2('0xa')]]['endtime']=utils['now']();channels[_0x3efe53['uniqueid']][_0xf9a2('0x2d')]=utils[_0xf9a2('0x2e')](channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x2f')],channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x30')]);channels[_0x3efe53['uniqueid']][_0xf9a2('0x31')]=channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x24')]?utils[_0xf9a2('0x2e')](channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x2f')],channels[_0x3efe53[_0xf9a2('0xa')]][_0xf9a2('0x24')]):0x0;writeDB(channels[_0x3efe53[_0xf9a2('0xa')]]);}}catch(_0x3a26fa){utils['error'](util[_0xf9a2('0x8')](_0xf9a2('0x32'),_0x3efe53['uniqueid']),_0x3a26fa);}};exports[_0xf9a2('0x33')]=function(_0x162e31){try{if(!_[_0xf9a2('0x1f')](channels[_0x162e31['localtwolinkedid']])){utils[_0xf9a2('0x16')](util[_0xf9a2('0x8')](_0xf9a2('0x34'),_0x162e31[_0xf9a2('0x35')]),_0x162e31);if(channels[_0x162e31[_0xf9a2('0x36')]][_0xf9a2('0xb')]==_0x162e31[_0xf9a2('0x37')]){utils['info'](util[_0xf9a2('0x8')](_0xf9a2('0x38'),_0x162e31[_0xf9a2('0x35')],_0x162e31[_0xf9a2('0x36')],_0x162e31['secondtransfererchannel']));channels[_0x162e31[_0xf9a2('0x36')]][_0xf9a2('0x23')]=_0x162e31['secondtransfererchannel'];channels[_0x162e31[_0xf9a2('0x36')]][_0xf9a2('0x39')]=_0xf9a2('0x3a');}else if(channels[_0x162e31[_0xf9a2('0x36')]][_0xf9a2('0xb')]=_0x162e31['transfertargetchannel']){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x162e31[_0xf9a2('0x35')],_0x162e31[_0xf9a2('0x36')],_0x162e31[_0xf9a2('0x3b')]));channels[_0x162e31['localtwolinkedid']][_0xf9a2('0x23')]=_0x162e31['origtransfererchannel'];channels[_0x162e31[_0xf9a2('0x36')]][_0xf9a2('0x39')]=_0xf9a2('0x3a');}}}catch(_0x2bad10){utils[_0xf9a2('0x27')](util[_0xf9a2('0x8')](_0xf9a2('0x34'),_0x162e31[_0xf9a2('0x35')]),_0x2bad10);}};exports[_0xf9a2('0x3c')]=function(_0x287f03){try{if(!_[_0xf9a2('0x1f')](channels[_0x287f03[_0xf9a2('0xa')]])){utils['debug'](util[_0xf9a2('0x8')]('[%s][calls][musiconholdstart]',_0x287f03[_0xf9a2('0xa')]),_0x287f03);channels[_0x287f03[_0xf9a2('0xa')]][_0xf9a2('0x3d')]=utils[_0xf9a2('0x1c')]();utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x287f03[_0xf9a2('0xa')],channels[_0x287f03[_0xf9a2('0xa')]]['musiconholdstartAt']));}}catch(_0xeef95){utils[_0xf9a2('0x27')](util[_0xf9a2('0x8')](_0xf9a2('0x3e'),_0x287f03[_0xf9a2('0xa')]),_0xeef95);}};exports[_0xf9a2('0x3f')]=function(_0x37c9c9){try{if(!_[_0xf9a2('0x1f')](channels[_0x37c9c9[_0xf9a2('0xa')]])){utils[_0xf9a2('0x16')](util[_0xf9a2('0x8')]('[%s][calls][musiconholdstop]',_0x37c9c9['uniqueid']),_0x37c9c9);if(!_['isNil'](channels[_0x37c9c9[_0xf9a2('0xa')]]['musiconholdstartAt'])){channels[_0x37c9c9[_0xf9a2('0xa')]][_0xf9a2('0x40')]+=utils[_0xf9a2('0x2e')](utils[_0xf9a2('0x1c')](),channels[_0x37c9c9[_0xf9a2('0xa')]][_0xf9a2('0x3d')]);utils[_0xf9a2('0x7')](util['format'](_0xf9a2('0x41'),_0x37c9c9[_0xf9a2('0xa')],channels[_0x37c9c9['uniqueid']][_0xf9a2('0x40')]));delete channels[_0x37c9c9[_0xf9a2('0xa')]][_0xf9a2('0x3d')];}}}catch(_0xdaee8e){utils[_0xf9a2('0x27')](util['format'](_0xf9a2('0x42'),_0x37c9c9[_0xf9a2('0xa')]),_0xdaee8e);}};exports[_0xf9a2('0x43')]=function(_0x3dffad){try{if(!_[_0xf9a2('0x1f')](channels[_0x3dffad[_0xf9a2('0xa')]])){utils[_0xf9a2('0x16')](util['format'](_0xf9a2('0x44'),_0x3dffad['uniqueid']),_0x3dffad);if(!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x46')])){utils[_0xf9a2('0x7')](util['format'](_0xf9a2('0x47'),_0x3dffad[_0xf9a2('0xa')],_0x3dffad[_0xf9a2('0x48')]));channels[_0x3dffad[_0xf9a2('0xa')]]['source']=_0x3dffad[_0xf9a2('0x48')];}if(!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x49')])){utils[_0xf9a2('0x7')](util['format'](_0xf9a2('0x4a'),_0x3dffad[_0xf9a2('0xa')],_0x3dffad[_0xf9a2('0x48')]));channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x4b')]=_0x3dffad[_0xf9a2('0x48')];channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x29')]='\x22'+_0x3dffad[_0xf9a2('0x48')]+'\x22\x20<'+_0x3dffad[_0xf9a2('0x48')]+'>';}if(!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x4c')])||!_['isNil'](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x4d')])){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')](_0xf9a2('0x4e'),_0x3dffad['uniqueid'],!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')]['xmd-callerid-preview'])?'xmd-callerid-preview':_0xf9a2('0x4d'),_0x3dffad['value']));channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x29')]=_0x3dffad[_0xf9a2('0x48')];}if(!_[_0xf9a2('0x1f')](_0x3dffad['variable'][_0xf9a2('0x4f')])||!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x50')])){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')](_0xf9a2('0x4e'),_0x3dffad[_0xf9a2('0xa')],!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x4f')])?_0xf9a2('0x4f'):_0xf9a2('0x50'),_0x3dffad[_0xf9a2('0x48')]));channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x51')]=_0xf9a2('0x52');channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x53')]=_0x3dffad[_0xf9a2('0x48')];channels[_0x3dffad[_0xf9a2('0xa')]]['queue']=!![];}if(!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')]['xmd-contactid'])){utils['info'](util[_0xf9a2('0x8')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x3dffad['uniqueid'],_0x3dffad['value']));channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x54')]=_0x3dffad[_0xf9a2('0x48')];}if(!_[_0xf9a2('0x1f')](_0x3dffad['variable'][_0xf9a2('0x55')])){utils[_0xf9a2('0x7')](util[_0xf9a2('0x8')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x3dffad['uniqueid'],_0x3dffad[_0xf9a2('0x48')]));channels[_0x3dffad['uniqueid']]['type']=_0x3dffad[_0xf9a2('0x48')];}if(!_[_0xf9a2('0x1f')](_0x3dffad[_0xf9a2('0x45')][_0xf9a2('0x56')])){utils[_0xf9a2('0x7')](util['format'](_0xf9a2('0x57'),_0x3dffad[_0xf9a2('0xa')],_0x3dffad[_0xf9a2('0x48')]));channels[_0x3dffad[_0xf9a2('0xa')]][_0xf9a2('0x58')]=_0x3dffad[_0xf9a2('0x48')];}if(!_[_0xf9a2('0x1f')](_0x3dffad['variable'][_0xf9a2('0x59')])){utils[_0xf9a2('0x7')](util['format'](_0xf9a2('0x5a'),_0x3dffad['uniqueid'],_0x3dffad['value']));channels[_0x3dffad[_0xf9a2('0xa')]]['sipcallid']=_0x3dffad[_0xf9a2('0x48')];}}}catch(_0x20c0f5){utils['error'](util[_0xf9a2('0x8')](_0xf9a2('0x44'),_0x3dffad[_0xf9a2('0xa')]),_0x20c0f5);}};exports['newexten']=function(_0x42b798){try{if(!_[_0xf9a2('0x1f')](channels[_0x42b798[_0xf9a2('0xa')]])){utils[_0xf9a2('0x16')](util[_0xf9a2('0x8')](_0xf9a2('0x5b'),_0x42b798[_0xf9a2('0xa')]),_0x42b798);utils[_0xf9a2('0x7')](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x42b798[_0xf9a2('0xa')],_0x42b798[_0xf9a2('0x5c')],_0x42b798[_0xf9a2('0x5d')]));if(_0x42b798[_0xf9a2('0x5c')][_0xf9a2('0x5e')]()==_0xf9a2('0x5f')&&_['startsWith'](_0x42b798[_0xf9a2('0x5d')]['toLowerCase'](),_0xf9a2('0x60'))){var _0x413c8a=_0x42b798[_0xf9a2('0x5d')][_0xf9a2('0x61')]('=');var _0x55e422=_0x413c8a[0x0][_0xf9a2('0x62')](_0x413c8a[0x0][_0xf9a2('0x63')]('(')+0x1,_0x413c8a[0x0][_0xf9a2('0x63')](')'));var _0x480954=_0x413c8a[0x1];channels[_0x42b798['uniqueid']][_0x55e422]=_0x480954;}if(!_['includes']([_0xf9a2('0x64'),_0xf9a2('0x65'),_0xf9a2('0x66'),_0xf9a2('0x5f'),_0xf9a2('0x67')],_0x42b798[_0xf9a2('0x5c')][_0xf9a2('0x5e')]())){channels[_0x42b798['uniqueid']][_0xf9a2('0x51')]=_0x42b798[_0xf9a2('0x5c')];channels[_0x42b798['uniqueid']]['lastdata']=_0x42b798[_0xf9a2('0x5d')];}}}catch(_0xc8884f){utils[_0xf9a2('0x27')](util[_0xf9a2('0x8')]('[%s][calls][newexten]',_0x42b798[_0xf9a2('0xa')]),_0xc8884f);}};