Built motion from commit da617fac.|2.6.6
[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 _0xbccd=['lodash','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','connectedlinenum','accountcode','then','UserId','request','CreateVoiceCallReport','recording','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','channelstate','info','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','toNumber','hangup','callerid','calleridname','calleridnum','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','starttime','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','destinationchannel','_attended','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','mohtime','varset','[%s][calls][varset]','variable','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','Queue','xmd-contactid','[%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','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','substring','lastIndexOf','includes','execif','gotoif','lastdata'];(function(_0x5805d7,_0x3d584a){var _0x170fe4=function(_0x3b9b73){while(--_0x3b9b73){_0x5805d7['push'](_0x5805d7['shift']());}};_0x170fe4(++_0x3d584a);}(_0xbccd,0x1b0));var _0xdbcc=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xbccd[_0x167cc1];return _0x10bc4b;};'use strict';var _=require(_0xdbcc('0x0'));var util=require('util');var utils=require('./utils');var transfers=require(_0xdbcc('0x1'));var dispositions=[_0xdbcc('0x2'),_0xdbcc('0x3'),_0xdbcc('0x3'),_0xdbcc('0x2'),_0xdbcc('0x2'),'NO\x20ANSWER',_0xdbcc('0x4'),_0xdbcc('0x5'),_0xdbcc('0x3'),_0xdbcc('0x3'),_0xdbcc('0x3')];var channels={};function writeDB(_0xf05e4a){var _0x216289;if(transfers[_0xdbcc('0x6')][_0xf05e4a[_0xdbcc('0x7')]]){_0x216289=_0xf05e4a[_0xdbcc('0x7')];_0xf05e4a[_0xdbcc('0x7')]=transfers['blinds'][_0xf05e4a['uniqueid']][_0xdbcc('0x8')];}utils['info'](util[_0xdbcc('0x9')](_0xdbcc('0xa'),_0xf05e4a[_0xdbcc('0x7')],_0xf05e4a[_0xdbcc('0xb')],_0xf05e4a[_0xdbcc('0xc')],_0xf05e4a[_0xdbcc('0xd')],_0xf05e4a[_0xdbcc('0xe')],_0xf05e4a['calleridnum'],_0xf05e4a[_0xdbcc('0xf')],_0xf05e4a['lastevent']));if(_0xf05e4a['accountcode']){utils['getUserByInternal'](_0xf05e4a[_0xdbcc('0x10')])[_0xdbcc('0x11')](function(_0x290b93){if(_0x290b93){_0xf05e4a[_0xdbcc('0x12')]=_0x290b93['id'];}utils[_0xdbcc('0x13')](_0xdbcc('0x14'),_0xf05e4a);});}else{utils[_0xdbcc('0x13')](_0xdbcc('0x14'),_0xf05e4a);}if(channels[_0xf05e4a['uniqueid']]){delete channels[_0xf05e4a['uniqueid']];}else if(_0x216289&&channels[_0x216289]){if(!transfers[_0xdbcc('0x6')][_0x216289][_0xdbcc('0x15')])delete transfers[_0xdbcc('0x6')][_0x216289];delete channels[_0x216289];}}exports[_0xdbcc('0x16')]=function(_0x2d0aed){try{utils[_0xdbcc('0x17')](util[_0xdbcc('0x9')](_0xdbcc('0x18'),_0x2d0aed[_0xdbcc('0x7')]),_0x2d0aed);if(_0x2d0aed[_0xdbcc('0x7')]==_0x2d0aed[_0xdbcc('0x19')]&&_0x2d0aed[_0xdbcc('0xb')]!=_0xdbcc('0x1a')){utils['info'](util['format'](_0xdbcc('0x1b'),_0x2d0aed[_0xdbcc('0x7')],_0x2d0aed['context'],_0x2d0aed[_0xdbcc('0x1c')]));channels[_0x2d0aed['uniqueid']]={'uniqueid':_0x2d0aed[_0xdbcc('0x7')],'accountcode':_0x2d0aed['accountcode'],'source':_0x2d0aed['calleridnum'],'destination':_0x2d0aed[_0xdbcc('0x1c')],'destinationcontext':_0x2d0aed[_0xdbcc('0x1d')],'channel':_0x2d0aed[_0xdbcc('0xb')],'starttime':utils[_0xdbcc('0x1e')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xdbcc('0x2'),'amaflags':_0xdbcc('0x1f')};}}catch(_0x2d797a){utils[_0xdbcc('0x20')](util['format'](_0xdbcc('0x18'),_0x2d0aed['uniqueid']),_0x2d797a);}};exports[_0xdbcc('0x21')]=function(_0x3622af){try{utils['debug'](util[_0xdbcc('0x9')](_0xdbcc('0x22'),_0x3622af[_0xdbcc('0x7')]),_0x3622af);if(!_['isNil'](channels[_0x3622af['uniqueid']])&&_0x3622af[_0xdbcc('0x23')]==0x6){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x3622af[_0xdbcc('0x7')],_0x3622af[_0xdbcc('0x1d')],_0x3622af['channel']));if(_[_0xdbcc('0x25')](channels[_0x3622af[_0xdbcc('0x7')]][_0xdbcc('0x26')])){channels[_0x3622af['uniqueid']][_0xdbcc('0x26')]=utils['now']();}}else if(!_[_0xdbcc('0x25')](channels[_0x3622af['linkedid']])&&_0x3622af[_0xdbcc('0x23')]==0x6&&_0x3622af['context']!=_0xdbcc('0x27')){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x28'),_0x3622af[_0xdbcc('0x7')],_0x3622af[_0xdbcc('0x19')],_0x3622af[_0xdbcc('0x1d')],_0x3622af['channel']));channels[_0x3622af[_0xdbcc('0x19')]]['accountcode']=_0x3622af[_0xdbcc('0x10')];channels[_0x3622af['linkedid']]['destinationchannel']=_0x3622af[_0xdbcc('0xb')];if(_[_0xdbcc('0x25')](channels[_0x3622af['linkedid']][_0xdbcc('0x29')])){channels[_0x3622af['linkedid']][_0xdbcc('0x29')]=utils[_0xdbcc('0x1e')]();}channels[_0x3622af[_0xdbcc('0x19')]][_0xdbcc('0x2a')]=dispositions[_[_0xdbcc('0x2b')](_0x3622af['channelstate'])]||_0xdbcc('0x4');}}catch(_0x1e9ac0){utils[_0xdbcc('0x20')](util[_0xdbcc('0x9')]('[%s][calls][newstate]',_0x3622af['uniqueid']),_0x1e9ac0);}};exports[_0xdbcc('0x2c')]=function(_0x51d86f){try{if(!_['isNil'](channels[_0x51d86f[_0xdbcc('0x7')]])){utils[_0xdbcc('0x17')](util[_0xdbcc('0x9')]('[%s][calls][hangup]',_0x51d86f['uniqueid']),_0x51d86f);if(_[_0xdbcc('0x25')](channels[_0x51d86f[_0xdbcc('0x7')]]['callerid'])){channels[_0x51d86f['uniqueid']][_0xdbcc('0x2d')]=_0x51d86f[_0xdbcc('0x2e')]+'\x20<'+_0x51d86f[_0xdbcc('0x2f')]+'>';}utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x30'),_0x51d86f[_0xdbcc('0x7')],channels[_0x51d86f['uniqueid']][_0xdbcc('0x2d')],_0x51d86f['cause-txt']));channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x31')]=utils['now']();channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x32')]=utils[_0xdbcc('0x33')](channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x31')],channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x34')]);channels[_0x51d86f[_0xdbcc('0x7')]]['billableseconds']=channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x29')]?utils[_0xdbcc('0x33')](channels[_0x51d86f[_0xdbcc('0x7')]]['endtime'],channels[_0x51d86f[_0xdbcc('0x7')]][_0xdbcc('0x29')]):0x0;writeDB(channels[_0x51d86f[_0xdbcc('0x7')]]);}}catch(_0x2f9b62){utils[_0xdbcc('0x20')](util[_0xdbcc('0x9')]('[%s][calls][hangup]',_0x51d86f[_0xdbcc('0x7')]),_0x2f9b62);}};exports['attendedtransfer']=function(_0x4b8333){try{if(!_[_0xdbcc('0x25')](channels[_0x4b8333[_0xdbcc('0x35')]])){utils[_0xdbcc('0x17')](util['format'](_0xdbcc('0x36'),_0x4b8333['origtransfereruniqueid']),_0x4b8333);if(channels[_0x4b8333[_0xdbcc('0x35')]][_0xdbcc('0xb')]==_0x4b8333[_0xdbcc('0x37')]){utils['info'](util[_0xdbcc('0x9')](_0xdbcc('0x38'),_0x4b8333[_0xdbcc('0x39')],_0x4b8333['localtwolinkedid'],_0x4b8333[_0xdbcc('0x3a')]));channels[_0x4b8333[_0xdbcc('0x35')]]['destinationchannel']=_0x4b8333[_0xdbcc('0x3a')];channels[_0x4b8333[_0xdbcc('0x35')]][_0xdbcc('0x3b')]='_attended';}else if(channels[_0x4b8333[_0xdbcc('0x35')]][_0xdbcc('0xb')]=_0x4b8333[_0xdbcc('0x3c')]){utils[_0xdbcc('0x24')](util['format'](_0xdbcc('0x38'),_0x4b8333[_0xdbcc('0x39')],_0x4b8333['localtwolinkedid'],_0x4b8333[_0xdbcc('0x3d')]));channels[_0x4b8333[_0xdbcc('0x35')]][_0xdbcc('0x3e')]=_0x4b8333['origtransfererchannel'];channels[_0x4b8333[_0xdbcc('0x35')]][_0xdbcc('0x3b')]=_0xdbcc('0x3f');}}}catch(_0x4a3369){utils[_0xdbcc('0x20')](util[_0xdbcc('0x9')](_0xdbcc('0x36'),_0x4b8333[_0xdbcc('0x39')]),_0x4a3369);}};exports['musiconholdstart']=function(_0x48541f){try{if(!_[_0xdbcc('0x25')](channels[_0x48541f[_0xdbcc('0x7')]])){utils[_0xdbcc('0x17')](util['format'](_0xdbcc('0x40'),_0x48541f[_0xdbcc('0x7')]),_0x48541f);channels[_0x48541f[_0xdbcc('0x7')]][_0xdbcc('0x41')]=utils['now']();utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x42'),_0x48541f[_0xdbcc('0x7')],channels[_0x48541f[_0xdbcc('0x7')]][_0xdbcc('0x41')]));}}catch(_0x56aa01){utils['error'](util[_0xdbcc('0x9')]('[%s][calls][musiconholdstart]',_0x48541f[_0xdbcc('0x7')]),_0x56aa01);}};exports['musiconholdstop']=function(_0x581f58){try{if(!_[_0xdbcc('0x25')](channels[_0x581f58['uniqueid']])){utils[_0xdbcc('0x17')](util[_0xdbcc('0x9')]('[%s][calls][musiconholdstop]',_0x581f58[_0xdbcc('0x7')]),_0x581f58);if(!_[_0xdbcc('0x25')](channels[_0x581f58['uniqueid']][_0xdbcc('0x41')])){channels[_0x581f58[_0xdbcc('0x7')]][_0xdbcc('0x43')]+=utils[_0xdbcc('0x33')](utils[_0xdbcc('0x1e')](),channels[_0x581f58[_0xdbcc('0x7')]][_0xdbcc('0x41')]);utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x581f58[_0xdbcc('0x7')],channels[_0x581f58[_0xdbcc('0x7')]][_0xdbcc('0x43')]));delete channels[_0x581f58['uniqueid']][_0xdbcc('0x41')];}}}catch(_0xbbe241){utils[_0xdbcc('0x20')](util[_0xdbcc('0x9')]('[%s][calls][musiconholdstop]',_0x581f58[_0xdbcc('0x7')]),_0xbbe241);}};exports[_0xdbcc('0x44')]=function(_0x481168){try{if(!_[_0xdbcc('0x25')](channels[_0x481168[_0xdbcc('0x7')]])){utils[_0xdbcc('0x17')](util[_0xdbcc('0x9')](_0xdbcc('0x45'),_0x481168['uniqueid']),_0x481168);if(!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')]['xmd-originatecalleridnum'])){utils[_0xdbcc('0x24')](util['format']('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x481168[_0xdbcc('0x7')],_0x481168['value']));channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0x47')]=_0x481168['value'];}if(!_['isNil'](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x48')])){utils[_0xdbcc('0x24')](util['format'](_0xdbcc('0x49'),_0x481168['uniqueid'],_0x481168[_0xdbcc('0x4a')]));channels[_0x481168['uniqueid']]['destination']=_0x481168['value'];channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0x2d')]='\x22'+_0x481168['value']+_0xdbcc('0x4b')+_0x481168[_0xdbcc('0x4a')]+'>';}if(!_['isNil'](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4c')])||!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4d')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x481168[_0xdbcc('0x7')],!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4c')])?_0xdbcc('0x4c'):_0xdbcc('0x4d'),_0x481168[_0xdbcc('0x4a')]));channels[_0x481168['uniqueid']][_0xdbcc('0x2d')]=_0x481168['value'];}if(!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4e')])||!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4f')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x50'),_0x481168[_0xdbcc('0x7')],!_['isNil'](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x4e')])?_0xdbcc('0x4e'):_0xdbcc('0x4f'),_0x481168[_0xdbcc('0x4a')]));channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0x51')]=_0xdbcc('0x52');channels[_0x481168['uniqueid']]['lastdata']=_0x481168[_0xdbcc('0x4a')];channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0xc')]=!![];}if(!_[_0xdbcc('0x25')](_0x481168['variable'][_0xdbcc('0x53')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x54'),_0x481168[_0xdbcc('0x7')],_0x481168[_0xdbcc('0x4a')]));channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0x55')]=_0x481168['value'];}if(!_[_0xdbcc('0x25')](_0x481168['variable'][_0xdbcc('0x56')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x57'),_0x481168['uniqueid'],_0x481168[_0xdbcc('0x4a')]));channels[_0x481168[_0xdbcc('0x7')]]['type']=_0x481168[_0xdbcc('0x4a')];}if(!_[_0xdbcc('0x25')](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x58')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x59'),_0x481168['uniqueid'],_0x481168[_0xdbcc('0x4a')]));channels[_0x481168[_0xdbcc('0x7')]][_0xdbcc('0x5a')]=_0x481168[_0xdbcc('0x4a')];}if(!_['isNil'](_0x481168[_0xdbcc('0x46')][_0xdbcc('0x5b')])){utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x5c'),_0x481168[_0xdbcc('0x7')],_0x481168['value']));channels[_0x481168[_0xdbcc('0x7')]]['sipcallid']=_0x481168[_0xdbcc('0x4a')];}}}catch(_0x43b162){utils[_0xdbcc('0x20')](util['format'](_0xdbcc('0x45'),_0x481168[_0xdbcc('0x7')]),_0x43b162);}};exports[_0xdbcc('0x5d')]=function(_0x78a97){try{if(!_[_0xdbcc('0x25')](channels[_0x78a97[_0xdbcc('0x7')]])){utils[_0xdbcc('0x17')](util['format'](_0xdbcc('0x5e'),_0x78a97[_0xdbcc('0x7')]),_0x78a97);utils[_0xdbcc('0x24')](util[_0xdbcc('0x9')](_0xdbcc('0x5f'),_0x78a97[_0xdbcc('0x7')],_0x78a97[_0xdbcc('0x60')],_0x78a97[_0xdbcc('0x61')]));if(_0x78a97['application'][_0xdbcc('0x62')]()==_0xdbcc('0x63')&&_[_0xdbcc('0x64')](_0x78a97[_0xdbcc('0x61')][_0xdbcc('0x62')](),_0xdbcc('0x65'))){var _0x36d7bf=_0x78a97[_0xdbcc('0x61')]['split']('=');var _0x549250=_0x36d7bf[0x0][_0xdbcc('0x66')](_0x36d7bf[0x0][_0xdbcc('0x67')]('(')+0x1,_0x36d7bf[0x0][_0xdbcc('0x67')](')'));var _0x55d6bf=_0x36d7bf[0x1];channels[_0x78a97['uniqueid']][_0x549250]=_0x55d6bf;}if(!_[_0xdbcc('0x68')](['hangup','noop',_0xdbcc('0x69'),_0xdbcc('0x63'),_0xdbcc('0x6a')],_0x78a97[_0xdbcc('0x60')][_0xdbcc('0x62')]())){channels[_0x78a97[_0xdbcc('0x7')]][_0xdbcc('0x51')]=_0x78a97[_0xdbcc('0x60')];channels[_0x78a97[_0xdbcc('0x7')]][_0xdbcc('0x6b')]=_0x78a97['appdata'];}}}catch(_0x30c00e){utils[_0xdbcc('0x20')](util[_0xdbcc('0x9')]('[%s][calls][newexten]',_0x78a97['uniqueid']),_0x30c00e);}};