Built motion from commit (unavailable).|2.5.25
[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 _0xa1e6=['[%s][calls][varset]\x20variable:%s\x20value:%s','xmcs-queue','xmd-queue','lastapplication','Queue','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','format','uniqueid','membername','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','linkedid','channel','OutgoingSpoolFailed','info','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','DOCUMENTATION','error','[%s][calls][newchannel]','newstate','debug','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','starttime','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','origtransfereruniqueid','secondtransfererchannel','destinationchannel','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid'];(function(_0xaa2729,_0x261e4e){var _0x4cbdbc=function(_0x3a06eb){while(--_0x3a06eb){_0xaa2729['push'](_0xaa2729['shift']());}};_0x4cbdbc(++_0x261e4e);}(_0xa1e6,0x8e));var _0x6a1e=function(_0x13e057,_0x38134b){_0x13e057=_0x13e057-0x0;var _0x2ed61e=_0xa1e6[_0x13e057];return _0x2ed61e;};'use strict';var _=require(_0x6a1e('0x0'));var util=require(_0x6a1e('0x1'));var utils=require(_0x6a1e('0x2'));var dispositions=[_0x6a1e('0x3'),_0x6a1e('0x4'),_0x6a1e('0x4'),_0x6a1e('0x3'),_0x6a1e('0x3'),_0x6a1e('0x3'),_0x6a1e('0x5'),_0x6a1e('0x6'),_0x6a1e('0x4'),_0x6a1e('0x4'),_0x6a1e('0x4')];var channels={};function writeDB(_0x5579e9){utils['info'](util[_0x6a1e('0x7')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x5579e9[_0x6a1e('0x8')],_0x5579e9['channel'],_0x5579e9['queue'],_0x5579e9[_0x6a1e('0x9')],_0x5579e9[_0x6a1e('0xa')],_0x5579e9['calleridnum'],_0x5579e9[_0x6a1e('0xb')],_0x5579e9[_0x6a1e('0xc')]));if(_0x5579e9[_0x6a1e('0xd')]){utils[_0x6a1e('0xe')](_0x5579e9[_0x6a1e('0xd')])[_0x6a1e('0xf')](function(_0x4cc03b){if(_0x4cc03b){_0x5579e9[_0x6a1e('0x10')]=_0x4cc03b['id'];}utils[_0x6a1e('0x11')](_0x6a1e('0x12'),_0x5579e9);});}else{utils[_0x6a1e('0x11')](_0x6a1e('0x12'),_0x5579e9);}if(channels[_0x5579e9[_0x6a1e('0x8')]]){delete channels[_0x5579e9[_0x6a1e('0x8')]];}}exports[_0x6a1e('0x13')]=function(_0x4a93f7){try{utils['debug'](util[_0x6a1e('0x7')]('[%s][calls][newchannel]',_0x4a93f7['uniqueid']),_0x4a93f7);if(_0x4a93f7[_0x6a1e('0x8')]==_0x4a93f7[_0x6a1e('0x14')]&&_0x4a93f7[_0x6a1e('0x15')]!=_0x6a1e('0x16')){utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x18'),_0x4a93f7['uniqueid'],_0x4a93f7[_0x6a1e('0x19')],_0x4a93f7[_0x6a1e('0x1a')]));channels[_0x4a93f7['uniqueid']]={'uniqueid':_0x4a93f7[_0x6a1e('0x8')],'accountcode':_0x4a93f7[_0x6a1e('0xd')],'source':_0x4a93f7[_0x6a1e('0x1b')],'destination':_0x4a93f7[_0x6a1e('0x1a')],'destinationcontext':_0x4a93f7[_0x6a1e('0x19')],'channel':_0x4a93f7[_0x6a1e('0x15')],'starttime':utils[_0x6a1e('0x1c')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x6a1e('0x3'),'amaflags':_0x6a1e('0x1d')};}}catch(_0x4bf9da){utils[_0x6a1e('0x1e')](util['format'](_0x6a1e('0x1f'),_0x4a93f7['uniqueid']),_0x4bf9da);}};exports[_0x6a1e('0x20')]=function(_0x30589a){try{utils[_0x6a1e('0x21')](util[_0x6a1e('0x7')](_0x6a1e('0x22'),_0x30589a[_0x6a1e('0x8')]),_0x30589a);if(!_[_0x6a1e('0x23')](channels[_0x30589a[_0x6a1e('0x8')]])&&_0x30589a[_0x6a1e('0x24')]==0x6){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x25'),_0x30589a['uniqueid'],_0x30589a['context'],_0x30589a[_0x6a1e('0x15')]));if(_['isNil'](channels[_0x30589a[_0x6a1e('0x8')]][_0x6a1e('0x26')])){channels[_0x30589a[_0x6a1e('0x8')]][_0x6a1e('0x26')]=utils['now']();}}else if(!_[_0x6a1e('0x23')](channels[_0x30589a[_0x6a1e('0x14')]])&&_0x30589a[_0x6a1e('0x24')]==0x6&&_0x30589a[_0x6a1e('0x19')]!=_0x6a1e('0x27')){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x28'),_0x30589a['uniqueid'],_0x30589a[_0x6a1e('0x14')],_0x30589a[_0x6a1e('0x19')],_0x30589a[_0x6a1e('0x15')]));channels[_0x30589a[_0x6a1e('0x14')]][_0x6a1e('0xd')]=_0x30589a[_0x6a1e('0xd')];channels[_0x30589a[_0x6a1e('0x14')]]['destinationchannel']=_0x30589a[_0x6a1e('0x15')];if(_[_0x6a1e('0x23')](channels[_0x30589a[_0x6a1e('0x14')]][_0x6a1e('0x29')])){channels[_0x30589a[_0x6a1e('0x14')]][_0x6a1e('0x29')]=utils[_0x6a1e('0x1c')]();}channels[_0x30589a['linkedid']]['disposition']=dispositions[_[_0x6a1e('0x2a')](_0x30589a['channelstate'])]||'ANSWERED';}}catch(_0x54a95e){utils[_0x6a1e('0x1e')](util[_0x6a1e('0x7')]('[%s][calls][newstate]',_0x30589a[_0x6a1e('0x8')]),_0x54a95e);}};exports[_0x6a1e('0x2b')]=function(_0x15dabe){try{if(!_['isNil'](channels[_0x15dabe[_0x6a1e('0x8')]])){utils[_0x6a1e('0x21')](util['format']('[%s][calls][hangup]',_0x15dabe[_0x6a1e('0x8')]),_0x15dabe);if(_['isNil'](channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x2c')])){channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x2c')]=_0x15dabe[_0x6a1e('0x2d')]+'\x20<'+_0x15dabe[_0x6a1e('0x1b')]+'>';}utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x2e'),_0x15dabe[_0x6a1e('0x8')],channels[_0x15dabe['uniqueid']][_0x6a1e('0x2c')],_0x15dabe['cause-txt']));channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x2f')]=utils[_0x6a1e('0x1c')]();channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x30')]=utils[_0x6a1e('0x31')](channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x2f')],channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x32')]);channels[_0x15dabe[_0x6a1e('0x8')]]['billableseconds']=channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x29')]?utils['diffTime'](channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x2f')],channels[_0x15dabe[_0x6a1e('0x8')]][_0x6a1e('0x29')]):0x0;writeDB(channels[_0x15dabe[_0x6a1e('0x8')]]);}}catch(_0x358273){utils[_0x6a1e('0x1e')](util['format'](_0x6a1e('0x33'),_0x15dabe[_0x6a1e('0x8')]),_0x358273);}};exports[_0x6a1e('0x34')]=function(_0x27401e){try{if(!_[_0x6a1e('0x23')](channels[_0x27401e[_0x6a1e('0x35')]])){utils[_0x6a1e('0x21')](util[_0x6a1e('0x7')](_0x6a1e('0x36'),_0x27401e['origtransfereruniqueid']),_0x27401e);if(channels[_0x27401e['localtwolinkedid']][_0x6a1e('0x15')]==_0x27401e[_0x6a1e('0x37')]){utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x27401e[_0x6a1e('0x38')],_0x27401e[_0x6a1e('0x35')],_0x27401e[_0x6a1e('0x39')]));channels[_0x27401e[_0x6a1e('0x35')]][_0x6a1e('0x3a')]=_0x27401e[_0x6a1e('0x39')];channels[_0x27401e[_0x6a1e('0x35')]]['userfield']=_0x6a1e('0x3b');}else if(channels[_0x27401e['localtwolinkedid']]['channel']=_0x27401e[_0x6a1e('0x3c')]){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x3d'),_0x27401e[_0x6a1e('0x38')],_0x27401e['localtwolinkedid'],_0x27401e[_0x6a1e('0x3e')]));channels[_0x27401e[_0x6a1e('0x35')]][_0x6a1e('0x3a')]=_0x27401e['origtransfererchannel'];channels[_0x27401e[_0x6a1e('0x35')]]['userfield']=_0x6a1e('0x3b');}}}catch(_0x18a784){utils[_0x6a1e('0x1e')](util['format'](_0x6a1e('0x36'),_0x27401e['origtransfereruniqueid']),_0x18a784);}};exports[_0x6a1e('0x3f')]=function(_0x22e29d){try{if(!_[_0x6a1e('0x23')](channels[_0x22e29d[_0x6a1e('0x8')]])){utils[_0x6a1e('0x21')](util[_0x6a1e('0x7')](_0x6a1e('0x40'),_0x22e29d[_0x6a1e('0x8')]),_0x22e29d);channels[_0x22e29d[_0x6a1e('0x8')]][_0x6a1e('0x41')]=utils['now']();utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x22e29d[_0x6a1e('0x8')],channels[_0x22e29d[_0x6a1e('0x8')]][_0x6a1e('0x41')]));}}catch(_0x447804){utils[_0x6a1e('0x1e')](util[_0x6a1e('0x7')]('[%s][calls][musiconholdstart]',_0x22e29d['uniqueid']),_0x447804);}};exports[_0x6a1e('0x42')]=function(_0x852382){try{if(!_[_0x6a1e('0x23')](channels[_0x852382['uniqueid']])){utils[_0x6a1e('0x21')](util[_0x6a1e('0x7')](_0x6a1e('0x43'),_0x852382[_0x6a1e('0x8')]),_0x852382);if(!_['isNil'](channels[_0x852382['uniqueid']][_0x6a1e('0x41')])){channels[_0x852382[_0x6a1e('0x8')]][_0x6a1e('0x44')]+=utils[_0x6a1e('0x31')](utils[_0x6a1e('0x1c')](),channels[_0x852382[_0x6a1e('0x8')]][_0x6a1e('0x41')]);utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x45'),_0x852382[_0x6a1e('0x8')],channels[_0x852382['uniqueid']][_0x6a1e('0x44')]));delete channels[_0x852382[_0x6a1e('0x8')]]['musiconholdstartAt'];}}}catch(_0x3d6ff2){utils[_0x6a1e('0x1e')](util[_0x6a1e('0x7')](_0x6a1e('0x43'),_0x852382[_0x6a1e('0x8')]),_0x3d6ff2);}};exports['varset']=function(_0x5b4001){try{if(!_[_0x6a1e('0x23')](channels[_0x5b4001['uniqueid']])){utils[_0x6a1e('0x21')](util[_0x6a1e('0x7')]('[%s][calls][varset]',_0x5b4001[_0x6a1e('0x8')]),_0x5b4001);if(!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x47')])){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x48'),_0x5b4001[_0x6a1e('0x8')],_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x4a')]=_0x5b4001[_0x6a1e('0x49')];}if(!_[_0x6a1e('0x23')](_0x5b4001['variable'][_0x6a1e('0x4b')])){utils[_0x6a1e('0x17')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x5b4001['uniqueid'],_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x4c')]=_0x5b4001[_0x6a1e('0x49')];channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x2c')]='\x22'+_0x5b4001['value']+_0x6a1e('0x4d')+_0x5b4001[_0x6a1e('0x49')]+'>';}if(!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x4e')])||!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x4f')])){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x50'),_0x5b4001[_0x6a1e('0x8')],!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x4e')])?'xmd-callerid-preview':_0x6a1e('0x4f'),_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x2c')]=_0x5b4001[_0x6a1e('0x49')];}if(!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')]['xmd-queue'])||!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x51')])){utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5b4001[_0x6a1e('0x8')],!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x52')])?_0x6a1e('0x52'):_0x6a1e('0x51'),_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x53')]=_0x6a1e('0x54');channels[_0x5b4001['uniqueid']][_0x6a1e('0x55')]=_0x5b4001[_0x6a1e('0x49')];channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x56')]=!![];}if(!_[_0x6a1e('0x23')](_0x5b4001['variable'][_0x6a1e('0x57')])){utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x58'),_0x5b4001[_0x6a1e('0x8')],_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]]['ContactId']=_0x5b4001[_0x6a1e('0x49')];}if(!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x59')])){utils[_0x6a1e('0x17')](util['format'](_0x6a1e('0x5a'),_0x5b4001[_0x6a1e('0x8')],_0x5b4001[_0x6a1e('0x49')]));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x5b')]=_0x5b4001['value'];}if(!_[_0x6a1e('0x23')](_0x5b4001['variable']['outboundrouteid'])){utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x5c'),_0x5b4001['uniqueid'],_0x5b4001['value']));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x5d')]=_0x5b4001[_0x6a1e('0x49')];}if(!_[_0x6a1e('0x23')](_0x5b4001[_0x6a1e('0x46')][_0x6a1e('0x5e')])){utils['info'](util[_0x6a1e('0x7')](_0x6a1e('0x5f'),_0x5b4001[_0x6a1e('0x8')],_0x5b4001['value']));channels[_0x5b4001[_0x6a1e('0x8')]][_0x6a1e('0x5e')]=_0x5b4001[_0x6a1e('0x49')];}}}catch(_0x6a6875){utils['error'](util['format'](_0x6a1e('0x60'),_0x5b4001[_0x6a1e('0x8')]),_0x6a6875);}};exports['newexten']=function(_0x4c0ecb){try{if(!_['isNil'](channels[_0x4c0ecb[_0x6a1e('0x8')]])){utils[_0x6a1e('0x21')](util['format'](_0x6a1e('0x61'),_0x4c0ecb[_0x6a1e('0x8')]),_0x4c0ecb);utils[_0x6a1e('0x17')](util[_0x6a1e('0x7')](_0x6a1e('0x62'),_0x4c0ecb['uniqueid'],_0x4c0ecb[_0x6a1e('0x63')],_0x4c0ecb[_0x6a1e('0x64')]));if(_0x4c0ecb['application'][_0x6a1e('0x65')]()==_0x6a1e('0x66')&&_[_0x6a1e('0x67')](_0x4c0ecb[_0x6a1e('0x64')]['toLowerCase'](),_0x6a1e('0x68'))){var _0x33647e=_0x4c0ecb['appdata'][_0x6a1e('0x69')]('=');var _0x3724e4=_0x33647e[0x0]['substring'](_0x33647e[0x0][_0x6a1e('0x6a')]('(')+0x1,_0x33647e[0x0][_0x6a1e('0x6a')](')'));var _0x5e4c20=_0x33647e[0x1];channels[_0x4c0ecb['uniqueid']][_0x3724e4]=_0x5e4c20;}if(!_[_0x6a1e('0x6b')](['hangup',_0x6a1e('0x6c'),_0x6a1e('0x6d'),_0x6a1e('0x66'),_0x6a1e('0x6e')],_0x4c0ecb[_0x6a1e('0x63')]['toLowerCase']())){channels[_0x4c0ecb[_0x6a1e('0x8')]]['lastapplication']=_0x4c0ecb['application'];channels[_0x4c0ecb[_0x6a1e('0x8')]][_0x6a1e('0x55')]=_0x4c0ecb[_0x6a1e('0x64')];}}}catch(_0x299550){utils['error'](util[_0x6a1e('0x7')](_0x6a1e('0x61'),_0x4c0ecb[_0x6a1e('0x8')]),_0x299550);}};