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