Built motion from commit (unavailable).|2.5.23
[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 _0x50c8=['debug','[%s][calls][newchannel]','linkedid','context','exten','accountcode','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','diffTime','endtime','starttime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfereruniqueid','origtransfererchannel','_attended','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','variable','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid','xmd-callerid-preview','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','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','appdata','cdr','split','lastIndexOf','noop','gotoif','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','calleridnum','lastevent','getUserByInternal','then','request','CreateVoiceCallReport','uniqueid','newchannel'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x50c8,0x1f4));var _0x850c=function(_0x25bea7,_0x49ab45){_0x25bea7=_0x25bea7-0x0;var _0x175952=_0x50c8[_0x25bea7];return _0x175952;};'use strict';var _=require(_0x850c('0x0'));var util=require(_0x850c('0x1'));var utils=require(_0x850c('0x2'));var dispositions=[_0x850c('0x3'),_0x850c('0x4'),_0x850c('0x4'),_0x850c('0x3'),_0x850c('0x3'),_0x850c('0x3'),_0x850c('0x5'),'BUSY',_0x850c('0x4'),_0x850c('0x4'),_0x850c('0x4')];var channels={};function writeDB(_0xb7d438){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x8'),_0xb7d438['uniqueid'],_0xb7d438[_0x850c('0x9')],_0xb7d438[_0x850c('0xa')],_0xb7d438['membername'],_0xb7d438[_0x850c('0xb')],_0xb7d438[_0x850c('0xc')],_0xb7d438['connectedlinenum'],_0xb7d438[_0x850c('0xd')]));if(_0xb7d438['accountcode']){utils[_0x850c('0xe')](_0xb7d438['accountcode'])[_0x850c('0xf')](function(_0x21265f){if(_0x21265f){_0xb7d438['UserId']=_0x21265f['id'];}utils[_0x850c('0x10')](_0x850c('0x11'),_0xb7d438);});}else{utils['request']('CreateVoiceCallReport',_0xb7d438);}if(channels[_0xb7d438['uniqueid']]){delete channels[_0xb7d438[_0x850c('0x12')]];}}exports[_0x850c('0x13')]=function(_0x3594a1){try{utils[_0x850c('0x14')](util[_0x850c('0x7')](_0x850c('0x15'),_0x3594a1[_0x850c('0x12')]),_0x3594a1);if(_0x3594a1[_0x850c('0x12')]==_0x3594a1[_0x850c('0x16')]&&_0x3594a1[_0x850c('0x9')]!='OutgoingSpoolFailed'){utils[_0x850c('0x6')](util[_0x850c('0x7')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x3594a1[_0x850c('0x12')],_0x3594a1[_0x850c('0x17')],_0x3594a1[_0x850c('0x18')]));channels[_0x3594a1['uniqueid']]={'uniqueid':_0x3594a1[_0x850c('0x12')],'accountcode':_0x3594a1[_0x850c('0x19')],'source':_0x3594a1[_0x850c('0xc')],'destination':_0x3594a1[_0x850c('0x18')],'destinationcontext':_0x3594a1[_0x850c('0x17')],'channel':_0x3594a1[_0x850c('0x9')],'starttime':utils[_0x850c('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x850c('0x3'),'amaflags':_0x850c('0x1b')};}}catch(_0x3ccfbd){utils[_0x850c('0x1c')](util['format'](_0x850c('0x15'),_0x3594a1[_0x850c('0x12')]),_0x3ccfbd);}};exports[_0x850c('0x1d')]=function(_0x164817){try{utils[_0x850c('0x14')](util[_0x850c('0x7')](_0x850c('0x1e'),_0x164817['uniqueid']),_0x164817);if(!_[_0x850c('0x1f')](channels[_0x164817[_0x850c('0x12')]])&&_0x164817[_0x850c('0x20')]==0x6){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x21'),_0x164817[_0x850c('0x12')],_0x164817[_0x850c('0x17')],_0x164817[_0x850c('0x9')]));if(_[_0x850c('0x1f')](channels[_0x164817[_0x850c('0x12')]][_0x850c('0x22')])){channels[_0x164817[_0x850c('0x12')]][_0x850c('0x22')]=utils['now']();}}else if(!_[_0x850c('0x1f')](channels[_0x164817[_0x850c('0x16')]])&&_0x164817[_0x850c('0x20')]==0x6&&_0x164817[_0x850c('0x17')]!=_0x850c('0x23')){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x24'),_0x164817['uniqueid'],_0x164817[_0x850c('0x16')],_0x164817[_0x850c('0x17')],_0x164817[_0x850c('0x9')]));channels[_0x164817[_0x850c('0x16')]][_0x850c('0x19')]=_0x164817[_0x850c('0x19')];channels[_0x164817[_0x850c('0x16')]][_0x850c('0x25')]=_0x164817[_0x850c('0x9')];if(_[_0x850c('0x1f')](channels[_0x164817[_0x850c('0x16')]][_0x850c('0x26')])){channels[_0x164817[_0x850c('0x16')]]['answertime']=utils['now']();}channels[_0x164817[_0x850c('0x16')]][_0x850c('0x27')]=dispositions[_[_0x850c('0x28')](_0x164817['channelstate'])]||_0x850c('0x5');}}catch(_0x53f7bd){utils[_0x850c('0x1c')](util[_0x850c('0x7')](_0x850c('0x1e'),_0x164817['uniqueid']),_0x53f7bd);}};exports[_0x850c('0x29')]=function(_0x57b18e){try{if(!_[_0x850c('0x1f')](channels[_0x57b18e['uniqueid']])){utils[_0x850c('0x14')](util['format'](_0x850c('0x2a'),_0x57b18e[_0x850c('0x12')]),_0x57b18e);if(_[_0x850c('0x1f')](channels[_0x57b18e['uniqueid']][_0x850c('0x2b')])){channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x2b')]=_0x57b18e[_0x850c('0x2c')]+'\x20<'+_0x57b18e[_0x850c('0xc')]+'>';}utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x2d'),_0x57b18e[_0x850c('0x12')],channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x2b')],_0x57b18e[_0x850c('0x2e')]));channels[_0x57b18e[_0x850c('0x12')]]['endtime']=utils[_0x850c('0x1a')]();channels[_0x57b18e[_0x850c('0x12')]]['duration']=utils[_0x850c('0x2f')](channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x30')],channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x31')]);channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x32')]=channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x26')]?utils[_0x850c('0x2f')](channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x30')],channels[_0x57b18e[_0x850c('0x12')]][_0x850c('0x26')]):0x0;writeDB(channels[_0x57b18e['uniqueid']]);}}catch(_0x1ace7f){utils[_0x850c('0x1c')](util['format'](_0x850c('0x2a'),_0x57b18e['uniqueid']),_0x1ace7f);}};exports[_0x850c('0x33')]=function(_0x277d9f){try{if(!_['isNil'](channels[_0x277d9f[_0x850c('0x34')]])){utils['debug'](util['format'](_0x850c('0x35'),_0x277d9f['origtransfereruniqueid']),_0x277d9f);if(channels[_0x277d9f[_0x850c('0x34')]][_0x850c('0x9')]==_0x277d9f[_0x850c('0x36')]){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x37'),_0x277d9f['origtransfereruniqueid'],_0x277d9f[_0x850c('0x34')],_0x277d9f[_0x850c('0x38')]));channels[_0x277d9f['localtwolinkedid']]['destinationchannel']=_0x277d9f[_0x850c('0x38')];channels[_0x277d9f['localtwolinkedid']][_0x850c('0x39')]='_attended';}else if(channels[_0x277d9f[_0x850c('0x34')]][_0x850c('0x9')]=_0x277d9f[_0x850c('0x3a')]){utils[_0x850c('0x6')](util[_0x850c('0x7')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x277d9f[_0x850c('0x3b')],_0x277d9f['localtwolinkedid'],_0x277d9f[_0x850c('0x3c')]));channels[_0x277d9f[_0x850c('0x34')]][_0x850c('0x25')]=_0x277d9f[_0x850c('0x3c')];channels[_0x277d9f[_0x850c('0x34')]][_0x850c('0x39')]=_0x850c('0x3d');}}}catch(_0x31496a){utils['error'](util[_0x850c('0x7')](_0x850c('0x35'),_0x277d9f[_0x850c('0x3b')]),_0x31496a);}};exports['musiconholdstart']=function(_0x32b0be){try{if(!_[_0x850c('0x1f')](channels[_0x32b0be[_0x850c('0x12')]])){utils['debug'](util['format'](_0x850c('0x3e'),_0x32b0be[_0x850c('0x12')]),_0x32b0be);channels[_0x32b0be[_0x850c('0x12')]][_0x850c('0x3f')]=utils[_0x850c('0x1a')]();utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x40'),_0x32b0be[_0x850c('0x12')],channels[_0x32b0be[_0x850c('0x12')]]['musiconholdstartAt']));}}catch(_0x334e48){utils[_0x850c('0x1c')](util[_0x850c('0x7')](_0x850c('0x3e'),_0x32b0be['uniqueid']),_0x334e48);}};exports[_0x850c('0x41')]=function(_0x460683){try{if(!_[_0x850c('0x1f')](channels[_0x460683[_0x850c('0x12')]])){utils[_0x850c('0x14')](util[_0x850c('0x7')](_0x850c('0x42'),_0x460683[_0x850c('0x12')]),_0x460683);if(!_[_0x850c('0x1f')](channels[_0x460683['uniqueid']]['musiconholdstartAt'])){channels[_0x460683[_0x850c('0x12')]]['mohtime']+=utils[_0x850c('0x2f')](utils[_0x850c('0x1a')](),channels[_0x460683[_0x850c('0x12')]][_0x850c('0x3f')]);utils['info'](util[_0x850c('0x7')](_0x850c('0x43'),_0x460683[_0x850c('0x12')],channels[_0x460683[_0x850c('0x12')]]['mohtime']));delete channels[_0x460683[_0x850c('0x12')]]['musiconholdstartAt'];}}}catch(_0x3bd1af){utils[_0x850c('0x1c')](util[_0x850c('0x7')](_0x850c('0x42'),_0x460683[_0x850c('0x12')]),_0x3bd1af);}};exports['varset']=function(_0x595e79){try{if(!_[_0x850c('0x1f')](channels[_0x595e79[_0x850c('0x12')]])){utils[_0x850c('0x14')](util[_0x850c('0x7')](_0x850c('0x44'),_0x595e79[_0x850c('0x12')]),_0x595e79);if(!_[_0x850c('0x1f')](_0x595e79['variable'][_0x850c('0x45')])){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x46'),_0x595e79['uniqueid'],_0x595e79['value']));channels[_0x595e79['uniqueid']]['source']=_0x595e79[_0x850c('0x47')];}if(!_[_0x850c('0x1f')](_0x595e79[_0x850c('0x48')]['xmd-phone'])){utils[_0x850c('0x6')](util['format'](_0x850c('0x49'),_0x595e79[_0x850c('0x12')],_0x595e79[_0x850c('0x47')]));channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x4a')]=_0x595e79['value'];channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x2b')]='\x22'+_0x595e79[_0x850c('0x47')]+'\x22\x20<'+_0x595e79[_0x850c('0x47')]+'>';}if(!_[_0x850c('0x1f')](_0x595e79['variable']['xmd-callerid-preview'])||!_[_0x850c('0x1f')](_0x595e79['variable'][_0x850c('0x4b')])){utils[_0x850c('0x6')](util[_0x850c('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x595e79[_0x850c('0x12')],!_[_0x850c('0x1f')](_0x595e79[_0x850c('0x48')][_0x850c('0x4c')])?'xmd-callerid-preview':'xmd-callerid',_0x595e79['value']));channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x2b')]=_0x595e79[_0x850c('0x47')];}if(!_[_0x850c('0x1f')](_0x595e79[_0x850c('0x48')][_0x850c('0x4d')])||!_[_0x850c('0x1f')](_0x595e79['variable'][_0x850c('0x4e')])){utils['info'](util['format'](_0x850c('0x4f'),_0x595e79[_0x850c('0x12')],!_['isNil'](_0x595e79[_0x850c('0x48')]['xmd-queue'])?_0x850c('0x4d'):_0x850c('0x4e'),_0x595e79[_0x850c('0x47')]));channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x50')]=_0x850c('0x51');channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x52')]=_0x595e79[_0x850c('0x47')];channels[_0x595e79['uniqueid']][_0x850c('0xa')]=!![];}if(!_['isNil'](_0x595e79[_0x850c('0x48')]['xmd-contactid'])){utils['info'](util['format'](_0x850c('0x53'),_0x595e79[_0x850c('0x12')],_0x595e79[_0x850c('0x47')]));channels[_0x595e79[_0x850c('0x12')]][_0x850c('0x54')]=_0x595e79[_0x850c('0x47')];}if(!_[_0x850c('0x1f')](_0x595e79[_0x850c('0x48')][_0x850c('0x55')])){utils['info'](util[_0x850c('0x7')](_0x850c('0x56'),_0x595e79[_0x850c('0x12')],_0x595e79['value']));channels[_0x595e79[_0x850c('0x12')]]['type']=_0x595e79['value'];}if(!_['isNil'](_0x595e79['variable'][_0x850c('0x57')])){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x58'),_0x595e79[_0x850c('0x12')],_0x595e79[_0x850c('0x47')]));channels[_0x595e79['uniqueid']]['routeid']=_0x595e79[_0x850c('0x47')];}if(!_[_0x850c('0x1f')](_0x595e79['variable'][_0x850c('0x59')])){utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x5a'),_0x595e79[_0x850c('0x12')],_0x595e79[_0x850c('0x47')]));channels[_0x595e79['uniqueid']][_0x850c('0x59')]=_0x595e79[_0x850c('0x47')];}}}catch(_0x4a88f8){utils[_0x850c('0x1c')](util['format'](_0x850c('0x44'),_0x595e79[_0x850c('0x12')]),_0x4a88f8);}};exports[_0x850c('0x5b')]=function(_0x5eaf59){try{if(!_['isNil'](channels[_0x5eaf59[_0x850c('0x12')]])){utils['debug'](util[_0x850c('0x7')](_0x850c('0x5c'),_0x5eaf59[_0x850c('0x12')]),_0x5eaf59);utils[_0x850c('0x6')](util[_0x850c('0x7')](_0x850c('0x5d'),_0x5eaf59['uniqueid'],_0x5eaf59[_0x850c('0x5e')],_0x5eaf59['appdata']));if(_0x5eaf59['application'][_0x850c('0x5f')]()==_0x850c('0x60')&&_[_0x850c('0x61')](_0x5eaf59[_0x850c('0x62')][_0x850c('0x5f')](),_0x850c('0x63'))){var _0x4a8c63=_0x5eaf59[_0x850c('0x62')][_0x850c('0x64')]('=');var _0x4ed12f=_0x4a8c63[0x0]['substring'](_0x4a8c63[0x0][_0x850c('0x65')]('(')+0x1,_0x4a8c63[0x0]['lastIndexOf'](')'));var _0x38a7af=_0x4a8c63[0x1];channels[_0x5eaf59['uniqueid']][_0x4ed12f]=_0x38a7af;}if(!_['includes']([_0x850c('0x29'),_0x850c('0x66'),'execif',_0x850c('0x60'),_0x850c('0x67')],_0x5eaf59['application']['toLowerCase']())){channels[_0x5eaf59[_0x850c('0x12')]][_0x850c('0x50')]=_0x5eaf59[_0x850c('0x5e')];channels[_0x5eaf59[_0x850c('0x12')]][_0x850c('0x52')]=_0x5eaf59[_0x850c('0x62')];}}}catch(_0x2467f5){utils[_0x850c('0x1c')](util[_0x850c('0x7')](_0x850c('0x5c'),_0x5eaf59[_0x850c('0x12')]),_0x2467f5);}};