9122cbb16a7ce0d733ad015090c3fdd2fb36fccc
[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 _0xd8a5=['[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]','newexten','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr','substring','lastIndexOf','includes','noop','execif','gotoif','[%s][calls][newexten]','lodash','./utils','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','membername','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','recording','newchannel','debug','linkedid','OutgoingSpoolFailed','info','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','DOCUMENTATION','error','[%s][calls][newchannel]','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','now','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','localtwolinkedid','[%s][calls][attendedtransfer]','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','varset','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','destination','xmd-callerid','xmd-callerid-preview','xmd-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','xmcs-queue','lastapplication','lastdata','queue','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xd8a5,0x160));var _0x5d8a=function(_0x1a2a78,_0x433788){_0x1a2a78=_0x1a2a78-0x0;var _0x1d0614=_0xd8a5[_0x1a2a78];return _0x1d0614;};'use strict';var _=require(_0x5d8a('0x0'));var util=require('util');var utils=require(_0x5d8a('0x1'));var transfers=require(_0x5d8a('0x2'));var dispositions=['NO\x20ANSWER',_0x5d8a('0x3'),_0x5d8a('0x3'),_0x5d8a('0x4'),_0x5d8a('0x4'),_0x5d8a('0x4'),_0x5d8a('0x5'),_0x5d8a('0x6'),_0x5d8a('0x3'),_0x5d8a('0x3'),_0x5d8a('0x3')];var channels={};function writeDB(_0x441fb9){var _0x3514c5;if(transfers[_0x5d8a('0x7')][_0x441fb9['uniqueid']]){_0x3514c5=_0x441fb9[_0x5d8a('0x8')];_0x441fb9[_0x5d8a('0x8')]=transfers[_0x5d8a('0x7')][_0x441fb9[_0x5d8a('0x8')]][_0x5d8a('0x9')];}utils['info'](util[_0x5d8a('0xa')](_0x5d8a('0xb'),_0x441fb9[_0x5d8a('0x8')],_0x441fb9[_0x5d8a('0xc')],_0x441fb9['queue'],_0x441fb9[_0x5d8a('0xd')],_0x441fb9[_0x5d8a('0xe')],_0x441fb9['calleridnum'],_0x441fb9[_0x5d8a('0xf')],_0x441fb9[_0x5d8a('0x10')]));if(_0x441fb9[_0x5d8a('0x11')]){utils[_0x5d8a('0x12')](_0x441fb9[_0x5d8a('0x11')])[_0x5d8a('0x13')](function(_0x3727d3){if(_0x3727d3){_0x441fb9[_0x5d8a('0x14')]=_0x3727d3['id'];}utils[_0x5d8a('0x15')](_0x5d8a('0x16'),_0x441fb9);});}else{utils[_0x5d8a('0x15')](_0x5d8a('0x16'),_0x441fb9);}if(channels[_0x441fb9['uniqueid']]){delete channels[_0x441fb9['uniqueid']];}else if(_0x3514c5&&channels[_0x3514c5]){if(!transfers[_0x5d8a('0x7')][_0x3514c5][_0x5d8a('0x17')])delete transfers['blinds'][_0x3514c5];delete channels[_0x3514c5];}}exports[_0x5d8a('0x18')]=function(_0x119d08){try{utils[_0x5d8a('0x19')](util[_0x5d8a('0xa')]('[%s][calls][newchannel]',_0x119d08[_0x5d8a('0x8')]),_0x119d08);if(_0x119d08['uniqueid']==_0x119d08[_0x5d8a('0x1a')]&&_0x119d08[_0x5d8a('0xc')]!=_0x5d8a('0x1b')){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x1d'),_0x119d08[_0x5d8a('0x8')],_0x119d08['context'],_0x119d08[_0x5d8a('0x1e')]));channels[_0x119d08[_0x5d8a('0x8')]]={'uniqueid':_0x119d08[_0x5d8a('0x8')],'accountcode':_0x119d08[_0x5d8a('0x11')],'source':_0x119d08['calleridnum'],'destination':_0x119d08[_0x5d8a('0x1e')],'destinationcontext':_0x119d08[_0x5d8a('0x1f')],'channel':_0x119d08[_0x5d8a('0xc')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x5d8a('0x4'),'amaflags':_0x5d8a('0x20')};}}catch(_0x186aa9){utils[_0x5d8a('0x21')](util['format'](_0x5d8a('0x22'),_0x119d08[_0x5d8a('0x8')]),_0x186aa9);}};exports['newstate']=function(_0x93d735){try{utils['debug'](util[_0x5d8a('0xa')](_0x5d8a('0x23'),_0x93d735[_0x5d8a('0x8')]),_0x93d735);if(!_['isNil'](channels[_0x93d735[_0x5d8a('0x8')]])&&_0x93d735[_0x5d8a('0x24')]==0x6){utils['info'](util['format'](_0x5d8a('0x25'),_0x93d735[_0x5d8a('0x8')],_0x93d735[_0x5d8a('0x1f')],_0x93d735['channel']));if(_[_0x5d8a('0x26')](channels[_0x93d735[_0x5d8a('0x8')]]['systemanswertime'])){channels[_0x93d735[_0x5d8a('0x8')]][_0x5d8a('0x27')]=utils[_0x5d8a('0x28')]();}}else if(!_[_0x5d8a('0x26')](channels[_0x93d735[_0x5d8a('0x1a')]])&&_0x93d735['channelstate']==0x6&&_0x93d735[_0x5d8a('0x1f')]!=_0x5d8a('0x29')){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x2a'),_0x93d735[_0x5d8a('0x8')],_0x93d735[_0x5d8a('0x1a')],_0x93d735[_0x5d8a('0x1f')],_0x93d735['channel']));channels[_0x93d735[_0x5d8a('0x1a')]][_0x5d8a('0x11')]=_0x93d735[_0x5d8a('0x11')];channels[_0x93d735[_0x5d8a('0x1a')]][_0x5d8a('0x2b')]=_0x93d735[_0x5d8a('0xc')];if(_[_0x5d8a('0x26')](channels[_0x93d735[_0x5d8a('0x1a')]][_0x5d8a('0x2c')])){channels[_0x93d735[_0x5d8a('0x1a')]][_0x5d8a('0x2c')]=utils[_0x5d8a('0x28')]();}channels[_0x93d735['linkedid']][_0x5d8a('0x2d')]=dispositions[_[_0x5d8a('0x2e')](_0x93d735[_0x5d8a('0x24')])]||'ANSWERED';}}catch(_0x3d6b9c){utils['error'](util[_0x5d8a('0xa')]('[%s][calls][newstate]',_0x93d735['uniqueid']),_0x3d6b9c);}};exports[_0x5d8a('0x2f')]=function(_0x543f69){try{if(!_['isNil'](channels[_0x543f69[_0x5d8a('0x8')]])){utils[_0x5d8a('0x19')](util[_0x5d8a('0xa')](_0x5d8a('0x30'),_0x543f69[_0x5d8a('0x8')]),_0x543f69);if(_[_0x5d8a('0x26')](channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x31')])){channels[_0x543f69[_0x5d8a('0x8')]]['callerid']=_0x543f69['calleridname']+'\x20<'+_0x543f69['calleridnum']+'>';}utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x32'),_0x543f69[_0x5d8a('0x8')],channels[_0x543f69['uniqueid']]['callerid'],_0x543f69[_0x5d8a('0x33')]));channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x34')]=utils[_0x5d8a('0x28')]();channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x35')]=utils[_0x5d8a('0x36')](channels[_0x543f69['uniqueid']]['endtime'],channels[_0x543f69['uniqueid']][_0x5d8a('0x37')]);channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x38')]=channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x2c')]?utils[_0x5d8a('0x36')](channels[_0x543f69[_0x5d8a('0x8')]]['endtime'],channels[_0x543f69[_0x5d8a('0x8')]][_0x5d8a('0x2c')]):0x0;writeDB(channels[_0x543f69[_0x5d8a('0x8')]]);}}catch(_0x4c87ca){utils[_0x5d8a('0x21')](util[_0x5d8a('0xa')](_0x5d8a('0x30'),_0x543f69[_0x5d8a('0x8')]),_0x4c87ca);}};exports['attendedtransfer']=function(_0x58ea69){try{if(!_[_0x5d8a('0x26')](channels[_0x58ea69[_0x5d8a('0x39')]])){utils[_0x5d8a('0x19')](util['format'](_0x5d8a('0x3a'),_0x58ea69['origtransfereruniqueid']),_0x58ea69);if(channels[_0x58ea69[_0x5d8a('0x39')]][_0x5d8a('0xc')]==_0x58ea69['transfereechannel']){utils['info'](util[_0x5d8a('0xa')](_0x5d8a('0x3b'),_0x58ea69[_0x5d8a('0x3c')],_0x58ea69[_0x5d8a('0x39')],_0x58ea69[_0x5d8a('0x3d')]));channels[_0x58ea69[_0x5d8a('0x39')]][_0x5d8a('0x2b')]=_0x58ea69[_0x5d8a('0x3d')];channels[_0x58ea69[_0x5d8a('0x39')]][_0x5d8a('0x3e')]=_0x5d8a('0x3f');}else if(channels[_0x58ea69['localtwolinkedid']][_0x5d8a('0xc')]=_0x58ea69[_0x5d8a('0x40')]){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x3b'),_0x58ea69[_0x5d8a('0x3c')],_0x58ea69['localtwolinkedid'],_0x58ea69['origtransfererchannel']));channels[_0x58ea69[_0x5d8a('0x39')]][_0x5d8a('0x2b')]=_0x58ea69[_0x5d8a('0x41')];channels[_0x58ea69[_0x5d8a('0x39')]][_0x5d8a('0x3e')]=_0x5d8a('0x3f');}}}catch(_0x1d1d54){utils[_0x5d8a('0x21')](util['format'](_0x5d8a('0x3a'),_0x58ea69['origtransfereruniqueid']),_0x1d1d54);}};exports['musiconholdstart']=function(_0x37cd25){try{if(!_['isNil'](channels[_0x37cd25[_0x5d8a('0x8')]])){utils[_0x5d8a('0x19')](util[_0x5d8a('0xa')](_0x5d8a('0x42'),_0x37cd25['uniqueid']),_0x37cd25);channels[_0x37cd25['uniqueid']][_0x5d8a('0x43')]=utils[_0x5d8a('0x28')]();utils['info'](util[_0x5d8a('0xa')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x37cd25['uniqueid'],channels[_0x37cd25[_0x5d8a('0x8')]][_0x5d8a('0x43')]));}}catch(_0x513b8f){utils[_0x5d8a('0x21')](util['format'](_0x5d8a('0x42'),_0x37cd25[_0x5d8a('0x8')]),_0x513b8f);}};exports[_0x5d8a('0x44')]=function(_0x3543c2){try{if(!_[_0x5d8a('0x26')](channels[_0x3543c2[_0x5d8a('0x8')]])){utils[_0x5d8a('0x19')](util[_0x5d8a('0xa')]('[%s][calls][musiconholdstop]',_0x3543c2['uniqueid']),_0x3543c2);if(!_[_0x5d8a('0x26')](channels[_0x3543c2['uniqueid']]['musiconholdstartAt'])){channels[_0x3543c2[_0x5d8a('0x8')]][_0x5d8a('0x45')]+=utils['diffTime'](utils['now'](),channels[_0x3543c2[_0x5d8a('0x8')]]['musiconholdstartAt']);utils[_0x5d8a('0x1c')](util['format'](_0x5d8a('0x46'),_0x3543c2[_0x5d8a('0x8')],channels[_0x3543c2[_0x5d8a('0x8')]][_0x5d8a('0x45')]));delete channels[_0x3543c2[_0x5d8a('0x8')]][_0x5d8a('0x43')];}}}catch(_0x27ac14){utils['error'](util[_0x5d8a('0xa')](_0x5d8a('0x47'),_0x3543c2[_0x5d8a('0x8')]),_0x27ac14);}};exports[_0x5d8a('0x48')]=function(_0xf1ee00){try{if(!_['isNil'](channels[_0xf1ee00[_0x5d8a('0x8')]])){utils['debug'](util[_0x5d8a('0xa')]('[%s][calls][varset]',_0xf1ee00[_0x5d8a('0x8')]),_0xf1ee00);if(!_['isNil'](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x4a')])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x4b'),_0xf1ee00[_0x5d8a('0x8')],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x4d')]=_0xf1ee00[_0x5d8a('0x4c')];}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x4e')])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0xf1ee00[_0x5d8a('0x8')],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x4f')]=_0xf1ee00[_0x5d8a('0x4c')];channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x31')]='\x22'+_0xf1ee00['value']+'\x22\x20<'+_0xf1ee00[_0x5d8a('0x4c')]+'>';}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')]['xmd-callerid-preview'])||!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x50')])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0xf1ee00[_0x5d8a('0x8')],!_['isNil'](_0xf1ee00['variable'][_0x5d8a('0x51')])?_0x5d8a('0x51'):_0x5d8a('0x50'),_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]]['callerid']=_0xf1ee00[_0x5d8a('0x4c')];}if(!_[_0x5d8a('0x26')](_0xf1ee00['variable'][_0x5d8a('0x52')])||!_['isNil'](_0xf1ee00['variable']['xmcs-queue'])){utils[_0x5d8a('0x1c')](util['format'](_0x5d8a('0x53'),_0xf1ee00[_0x5d8a('0x8')],!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x52')])?'xmd-queue':_0x5d8a('0x54'),_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x55')]='Queue';channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x56')]=_0xf1ee00[_0x5d8a('0x4c')];channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x57')]=!![];}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')]['xmd-contactid'])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0xf1ee00['uniqueid'],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]][_0x5d8a('0x58')]=_0xf1ee00[_0x5d8a('0x4c')];}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x59')])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')](_0x5d8a('0x5a'),_0xf1ee00[_0x5d8a('0x8')],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]]['type']=_0xf1ee00[_0x5d8a('0x4c')];}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x5b')])){utils[_0x5d8a('0x1c')](util['format'](_0x5d8a('0x5c'),_0xf1ee00[_0x5d8a('0x8')],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00['uniqueid']][_0x5d8a('0x5d')]=_0xf1ee00[_0x5d8a('0x4c')];}if(!_[_0x5d8a('0x26')](_0xf1ee00[_0x5d8a('0x49')][_0x5d8a('0x5e')])){utils[_0x5d8a('0x1c')](util[_0x5d8a('0xa')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0xf1ee00[_0x5d8a('0x8')],_0xf1ee00[_0x5d8a('0x4c')]));channels[_0xf1ee00[_0x5d8a('0x8')]]['sipcallid']=_0xf1ee00[_0x5d8a('0x4c')];}}}catch(_0x40aab8){utils[_0x5d8a('0x21')](util[_0x5d8a('0xa')](_0x5d8a('0x5f'),_0xf1ee00['uniqueid']),_0x40aab8);}};exports[_0x5d8a('0x60')]=function(_0x1a3084){try{if(!_[_0x5d8a('0x26')](channels[_0x1a3084[_0x5d8a('0x8')]])){utils[_0x5d8a('0x19')](util[_0x5d8a('0xa')]('[%s][calls][newexten]',_0x1a3084[_0x5d8a('0x8')]),_0x1a3084);utils['info'](util[_0x5d8a('0xa')](_0x5d8a('0x61'),_0x1a3084['uniqueid'],_0x1a3084[_0x5d8a('0x62')],_0x1a3084[_0x5d8a('0x63')]));if(_0x1a3084['application']['toLowerCase']()==_0x5d8a('0x64')&&_[_0x5d8a('0x65')](_0x1a3084['appdata'][_0x5d8a('0x66')](),_0x5d8a('0x67'))){var _0x2c78d2=_0x1a3084[_0x5d8a('0x63')]['split']('=');var _0x483dd2=_0x2c78d2[0x0][_0x5d8a('0x68')](_0x2c78d2[0x0][_0x5d8a('0x69')]('(')+0x1,_0x2c78d2[0x0][_0x5d8a('0x69')](')'));var _0x17ffdd=_0x2c78d2[0x1];channels[_0x1a3084[_0x5d8a('0x8')]][_0x483dd2]=_0x17ffdd;}if(!_[_0x5d8a('0x6a')]([_0x5d8a('0x2f'),_0x5d8a('0x6b'),_0x5d8a('0x6c'),_0x5d8a('0x64'),_0x5d8a('0x6d')],_0x1a3084[_0x5d8a('0x62')][_0x5d8a('0x66')]())){channels[_0x1a3084['uniqueid']][_0x5d8a('0x55')]=_0x1a3084[_0x5d8a('0x62')];channels[_0x1a3084[_0x5d8a('0x8')]][_0x5d8a('0x56')]=_0x1a3084[_0x5d8a('0x63')];}}}catch(_0x4c87aa){utils[_0x5d8a('0x21')](util['format'](_0x5d8a('0x6e'),_0x1a3084[_0x5d8a('0x8')]),_0x4c87aa);}};