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