Built motion from commit 47436d59.|2.6.7
[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 _0x3d49=['[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','newexten','[%s][calls][newexten]','application','appdata','set','startsWith','cdr','split','substring','lastIndexOf','execif','gotoif','toLowerCase','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','blinds','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','recording','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','context','exten','calleridnum','now','error','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','channelstate','transfer','destinationchannel','answertime','disposition','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','starttime','billableseconds','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][attendedtransfer]','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','diffTime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmcs-queue','xmd-queue','Queue','lastdata','ContactId','xmd-cdrtype','type','outboundrouteid'];(function(_0x35c231,_0x48d1f0){var _0x586609=function(_0x11789a){while(--_0x11789a){_0x35c231['push'](_0x35c231['shift']());}};_0x586609(++_0x48d1f0);}(_0x3d49,0x151));var _0x93d4=function(_0x5650b4,_0x2723ba){_0x5650b4=_0x5650b4-0x0;var _0x297a62=_0x3d49[_0x5650b4];return _0x297a62;};'use strict';var _=require('lodash');var util=require(_0x93d4('0x0'));var utils=require(_0x93d4('0x1'));var transfers=require(_0x93d4('0x2'));var dispositions=[_0x93d4('0x3'),'FAILED',_0x93d4('0x4'),_0x93d4('0x3'),_0x93d4('0x3'),_0x93d4('0x3'),_0x93d4('0x5'),_0x93d4('0x6'),'FAILED','FAILED','FAILED'];var channels={};function writeDB(_0x5e2fd9){var _0x50c533;if(transfers['blinds'][_0x5e2fd9[_0x93d4('0x7')]]){_0x50c533=_0x5e2fd9[_0x93d4('0x7')];_0x5e2fd9[_0x93d4('0x7')]=transfers[_0x93d4('0x8')][_0x5e2fd9[_0x93d4('0x7')]][_0x93d4('0x9')];}utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0xc'),_0x5e2fd9[_0x93d4('0x7')],_0x5e2fd9[_0x93d4('0xd')],_0x5e2fd9[_0x93d4('0xe')],_0x5e2fd9['membername'],_0x5e2fd9[_0x93d4('0xf')],_0x5e2fd9['calleridnum'],_0x5e2fd9[_0x93d4('0x10')],_0x5e2fd9[_0x93d4('0x11')]));if(_0x5e2fd9[_0x93d4('0x12')]){utils[_0x93d4('0x13')](_0x5e2fd9['accountcode'])[_0x93d4('0x14')](function(_0x2f16c7){if(_0x2f16c7){_0x5e2fd9['UserId']=_0x2f16c7['id'];}utils[_0x93d4('0x15')](_0x93d4('0x16'),_0x5e2fd9);});}else{utils[_0x93d4('0x15')](_0x93d4('0x16'),_0x5e2fd9);}if(channels[_0x5e2fd9[_0x93d4('0x7')]]){delete channels[_0x5e2fd9['uniqueid']];}else if(_0x50c533&&channels[_0x50c533]){if(!transfers['blinds'][_0x50c533][_0x93d4('0x17')])delete transfers['blinds'][_0x50c533];delete channels[_0x50c533];}}exports[_0x93d4('0x18')]=function(_0x35d136){try{utils[_0x93d4('0x19')](util[_0x93d4('0xb')](_0x93d4('0x1a'),_0x35d136[_0x93d4('0x7')]),_0x35d136);if(_0x35d136['uniqueid']==_0x35d136[_0x93d4('0x1b')]&&_0x35d136[_0x93d4('0xd')]!=_0x93d4('0x1c')){utils['info'](util[_0x93d4('0xb')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x35d136[_0x93d4('0x7')],_0x35d136[_0x93d4('0x1d')],_0x35d136[_0x93d4('0x1e')]));channels[_0x35d136[_0x93d4('0x7')]]={'uniqueid':_0x35d136[_0x93d4('0x7')],'accountcode':_0x35d136['accountcode'],'source':_0x35d136[_0x93d4('0x1f')],'destination':_0x35d136[_0x93d4('0x1e')],'destinationcontext':_0x35d136[_0x93d4('0x1d')],'channel':_0x35d136[_0x93d4('0xd')],'starttime':utils[_0x93d4('0x20')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x93d4('0x3'),'amaflags':'DOCUMENTATION'};}}catch(_0x4116b3){utils[_0x93d4('0x21')](util[_0x93d4('0xb')]('[%s][calls][newchannel]',_0x35d136[_0x93d4('0x7')]),_0x4116b3);}};exports['newstate']=function(_0x38a9af){try{utils[_0x93d4('0x19')](util['format'](_0x93d4('0x22'),_0x38a9af[_0x93d4('0x7')]),_0x38a9af);if(!_[_0x93d4('0x23')](channels[_0x38a9af['uniqueid']])&&_0x38a9af['channelstate']==0x6){utils[_0x93d4('0xa')](util['format'](_0x93d4('0x24'),_0x38a9af[_0x93d4('0x7')],_0x38a9af['context'],_0x38a9af['channel']));if(_[_0x93d4('0x23')](channels[_0x38a9af[_0x93d4('0x7')]][_0x93d4('0x25')])){channels[_0x38a9af[_0x93d4('0x7')]][_0x93d4('0x25')]=utils[_0x93d4('0x20')]();}}else if(!_[_0x93d4('0x23')](channels[_0x38a9af[_0x93d4('0x1b')]])&&_0x38a9af[_0x93d4('0x26')]==0x6&&_0x38a9af['context']!=_0x93d4('0x27')){utils[_0x93d4('0xa')](util[_0x93d4('0xb')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x38a9af[_0x93d4('0x7')],_0x38a9af[_0x93d4('0x1b')],_0x38a9af[_0x93d4('0x1d')],_0x38a9af[_0x93d4('0xd')]));channels[_0x38a9af[_0x93d4('0x1b')]]['accountcode']=_0x38a9af[_0x93d4('0x12')];channels[_0x38a9af[_0x93d4('0x1b')]][_0x93d4('0x28')]=_0x38a9af['channel'];if(_[_0x93d4('0x23')](channels[_0x38a9af[_0x93d4('0x1b')]][_0x93d4('0x29')])){channels[_0x38a9af[_0x93d4('0x1b')]][_0x93d4('0x29')]=utils['now']();}channels[_0x38a9af[_0x93d4('0x1b')]][_0x93d4('0x2a')]=dispositions[_[_0x93d4('0x2b')](_0x38a9af[_0x93d4('0x26')])]||_0x93d4('0x5');}}catch(_0x328173){utils[_0x93d4('0x21')](util[_0x93d4('0xb')](_0x93d4('0x22'),_0x38a9af[_0x93d4('0x7')]),_0x328173);}};exports[_0x93d4('0x2c')]=function(_0x519638){try{if(!_[_0x93d4('0x23')](channels[_0x519638['uniqueid']])){utils['debug'](util['format']('[%s][calls][hangup]',_0x519638[_0x93d4('0x7')]),_0x519638);if(_[_0x93d4('0x23')](channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x2d')])){channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x2d')]=_0x519638[_0x93d4('0x2e')]+'\x20<'+_0x519638[_0x93d4('0x1f')]+'>';}utils['info'](util[_0x93d4('0xb')](_0x93d4('0x2f'),_0x519638[_0x93d4('0x7')],channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x2d')],_0x519638[_0x93d4('0x30')]));channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x31')]=utils[_0x93d4('0x20')]();channels[_0x519638[_0x93d4('0x7')]]['duration']=utils['diffTime'](channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x31')],channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x32')]);channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x33')]=channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x29')]?utils['diffTime'](channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x31')],channels[_0x519638[_0x93d4('0x7')]][_0x93d4('0x29')]):0x0;writeDB(channels[_0x519638[_0x93d4('0x7')]]);}}catch(_0x5e01a6){utils[_0x93d4('0x21')](util['format'](_0x93d4('0x34'),_0x519638[_0x93d4('0x7')]),_0x5e01a6);}};exports[_0x93d4('0x35')]=function(_0x3b67de){try{if(!_['isNil'](channels[_0x3b67de[_0x93d4('0x36')]])){utils['debug'](util[_0x93d4('0xb')]('[%s][calls][attendedtransfer]',_0x3b67de[_0x93d4('0x37')]),_0x3b67de);if(channels[_0x3b67de[_0x93d4('0x36')]][_0x93d4('0xd')]==_0x3b67de['transfereechannel']){utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x38'),_0x3b67de[_0x93d4('0x37')],_0x3b67de['localtwolinkedid'],_0x3b67de[_0x93d4('0x39')]));channels[_0x3b67de[_0x93d4('0x36')]][_0x93d4('0x28')]=_0x3b67de[_0x93d4('0x39')];channels[_0x3b67de['localtwolinkedid']][_0x93d4('0x3a')]=_0x93d4('0x3b');}else if(channels[_0x3b67de[_0x93d4('0x36')]][_0x93d4('0xd')]=_0x3b67de[_0x93d4('0x3c')]){utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x38'),_0x3b67de['origtransfereruniqueid'],_0x3b67de[_0x93d4('0x36')],_0x3b67de[_0x93d4('0x3d')]));channels[_0x3b67de[_0x93d4('0x36')]][_0x93d4('0x28')]=_0x3b67de[_0x93d4('0x3d')];channels[_0x3b67de[_0x93d4('0x36')]][_0x93d4('0x3a')]=_0x93d4('0x3b');}}}catch(_0x12e9a0){utils[_0x93d4('0x21')](util[_0x93d4('0xb')](_0x93d4('0x3e'),_0x3b67de[_0x93d4('0x37')]),_0x12e9a0);}};exports['musiconholdstart']=function(_0x3af2d7){try{if(!_[_0x93d4('0x23')](channels[_0x3af2d7['uniqueid']])){utils[_0x93d4('0x19')](util[_0x93d4('0xb')](_0x93d4('0x3f'),_0x3af2d7[_0x93d4('0x7')]),_0x3af2d7);channels[_0x3af2d7[_0x93d4('0x7')]][_0x93d4('0x40')]=utils[_0x93d4('0x20')]();utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x41'),_0x3af2d7[_0x93d4('0x7')],channels[_0x3af2d7[_0x93d4('0x7')]][_0x93d4('0x40')]));}}catch(_0x1852b1){utils['error'](util[_0x93d4('0xb')](_0x93d4('0x3f'),_0x3af2d7[_0x93d4('0x7')]),_0x1852b1);}};exports[_0x93d4('0x42')]=function(_0x339473){try{if(!_['isNil'](channels[_0x339473[_0x93d4('0x7')]])){utils['debug'](util[_0x93d4('0xb')](_0x93d4('0x43'),_0x339473[_0x93d4('0x7')]),_0x339473);if(!_[_0x93d4('0x23')](channels[_0x339473[_0x93d4('0x7')]][_0x93d4('0x40')])){channels[_0x339473[_0x93d4('0x7')]][_0x93d4('0x44')]+=utils[_0x93d4('0x45')](utils[_0x93d4('0x20')](),channels[_0x339473[_0x93d4('0x7')]][_0x93d4('0x40')]);utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x46'),_0x339473[_0x93d4('0x7')],channels[_0x339473[_0x93d4('0x7')]][_0x93d4('0x44')]));delete channels[_0x339473['uniqueid']][_0x93d4('0x40')];}}}catch(_0x2cf93e){utils[_0x93d4('0x21')](util[_0x93d4('0xb')](_0x93d4('0x43'),_0x339473[_0x93d4('0x7')]),_0x2cf93e);}};exports[_0x93d4('0x47')]=function(_0x3387a7){try{if(!_[_0x93d4('0x23')](channels[_0x3387a7[_0x93d4('0x7')]])){utils[_0x93d4('0x19')](util[_0x93d4('0xb')](_0x93d4('0x48'),_0x3387a7[_0x93d4('0x7')]),_0x3387a7);if(!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x4a')])){utils[_0x93d4('0xa')](util['format']('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x3387a7[_0x93d4('0x7')],_0x3387a7[_0x93d4('0x4b')]));channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0x4c')]=_0x3387a7[_0x93d4('0x4b')];}if(!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')]['xmd-phone'])){utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x4d'),_0x3387a7[_0x93d4('0x7')],_0x3387a7['value']));channels[_0x3387a7['uniqueid']][_0x93d4('0x4e')]=_0x3387a7[_0x93d4('0x4b')];channels[_0x3387a7['uniqueid']][_0x93d4('0x2d')]='\x22'+_0x3387a7[_0x93d4('0x4b')]+_0x93d4('0x4f')+_0x3387a7[_0x93d4('0x4b')]+'>';}if(!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x50')])||!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x51')])){utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x52'),_0x3387a7[_0x93d4('0x7')],!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x50')])?_0x93d4('0x50'):'xmd-callerid',_0x3387a7[_0x93d4('0x4b')]));channels[_0x3387a7[_0x93d4('0x7')]]['callerid']=_0x3387a7[_0x93d4('0x4b')];}if(!_['isNil'](_0x3387a7[_0x93d4('0x49')]['xmd-queue'])||!_['isNil'](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x53')])){utils[_0x93d4('0xa')](util[_0x93d4('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x3387a7[_0x93d4('0x7')],!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x54')])?_0x93d4('0x54'):'xmcs-queue',_0x3387a7[_0x93d4('0x4b')]));channels[_0x3387a7[_0x93d4('0x7')]]['lastapplication']=_0x93d4('0x55');channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0x56')]=_0x3387a7['value'];channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0xe')]=!![];}if(!_['isNil'](_0x3387a7[_0x93d4('0x49')]['xmd-contactid'])){utils[_0x93d4('0xa')](util['format']('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x3387a7[_0x93d4('0x7')],_0x3387a7['value']));channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0x57')]=_0x3387a7[_0x93d4('0x4b')];}if(!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x58')])){utils[_0x93d4('0xa')](util['format']('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x3387a7['uniqueid'],_0x3387a7[_0x93d4('0x4b')]));channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0x59')]=_0x3387a7[_0x93d4('0x4b')];}if(!_['isNil'](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x5a')])){utils[_0x93d4('0xa')](util[_0x93d4('0xb')](_0x93d4('0x5b'),_0x3387a7[_0x93d4('0x7')],_0x3387a7['value']));channels[_0x3387a7['uniqueid']][_0x93d4('0x5c')]=_0x3387a7[_0x93d4('0x4b')];}if(!_[_0x93d4('0x23')](_0x3387a7[_0x93d4('0x49')][_0x93d4('0x5d')])){utils[_0x93d4('0xa')](util['format']('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x3387a7[_0x93d4('0x7')],_0x3387a7[_0x93d4('0x4b')]));channels[_0x3387a7[_0x93d4('0x7')]][_0x93d4('0x5d')]=_0x3387a7[_0x93d4('0x4b')];}}}catch(_0x3d1663){utils['error'](util[_0x93d4('0xb')](_0x93d4('0x48'),_0x3387a7[_0x93d4('0x7')]),_0x3d1663);}};exports[_0x93d4('0x5e')]=function(_0x594357){try{if(!_['isNil'](channels[_0x594357[_0x93d4('0x7')]])){utils['debug'](util['format'](_0x93d4('0x5f'),_0x594357[_0x93d4('0x7')]),_0x594357);utils['info'](util[_0x93d4('0xb')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x594357[_0x93d4('0x7')],_0x594357[_0x93d4('0x60')],_0x594357[_0x93d4('0x61')]));if(_0x594357[_0x93d4('0x60')]['toLowerCase']()==_0x93d4('0x62')&&_[_0x93d4('0x63')](_0x594357[_0x93d4('0x61')]['toLowerCase'](),_0x93d4('0x64'))){var _0xea7e5a=_0x594357['appdata'][_0x93d4('0x65')]('=');var _0xc4824e=_0xea7e5a[0x0][_0x93d4('0x66')](_0xea7e5a[0x0][_0x93d4('0x67')]('(')+0x1,_0xea7e5a[0x0][_0x93d4('0x67')](')'));var _0x1036c1=_0xea7e5a[0x1];channels[_0x594357['uniqueid']][_0xc4824e]=_0x1036c1;}if(!_['includes']([_0x93d4('0x2c'),'noop',_0x93d4('0x68'),_0x93d4('0x62'),_0x93d4('0x69')],_0x594357[_0x93d4('0x60')][_0x93d4('0x6a')]())){channels[_0x594357[_0x93d4('0x7')]]['lastapplication']=_0x594357[_0x93d4('0x60')];channels[_0x594357[_0x93d4('0x7')]][_0x93d4('0x56')]=_0x594357[_0x93d4('0x61')];}}}catch(_0x313b9f){utils['error'](util[_0x93d4('0xb')](_0x93d4('0x5f'),_0x594357['uniqueid']),_0x313b9f);}};