Built motion from commit 936e8062.|2.5.33
[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 _0x5adc=['transfertargetchannel','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmcs-queue','xmd-queue','lastapplication','Queue','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','blinds','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','calleridnum','connectedlinenum','lastevent','getUserByInternal','then','request','CreateVoiceCallReport','newchannel','debug','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','accountcode','now','DOCUMENTATION','error','newstate','isNil','channelstate','systemanswertime','linkedid','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended'];(function(_0x5d676e,_0x140e61){var _0x1450ea=function(_0xca84d8){while(--_0xca84d8){_0x5d676e['push'](_0x5d676e['shift']());}};_0x1450ea(++_0x140e61);}(_0x5adc,0x18c));var _0xc5ad=function(_0x3507c4,_0x15bac9){_0x3507c4=_0x3507c4-0x0;var _0x436b34=_0x5adc[_0x3507c4];return _0x436b34;};'use strict';var _=require(_0xc5ad('0x0'));var util=require(_0xc5ad('0x1'));var utils=require(_0xc5ad('0x2'));var transfers=require(_0xc5ad('0x3'));var dispositions=[_0xc5ad('0x4'),_0xc5ad('0x5'),_0xc5ad('0x5'),_0xc5ad('0x4'),_0xc5ad('0x4'),_0xc5ad('0x4'),_0xc5ad('0x6'),'BUSY',_0xc5ad('0x5'),_0xc5ad('0x5'),_0xc5ad('0x5')];var channels={};function writeDB(_0x4bf009){var _0x24bd7f;if(transfers[_0xc5ad('0x7')][_0x4bf009[_0xc5ad('0x8')]]){_0x24bd7f=_0x4bf009['uniqueid'];_0x4bf009[_0xc5ad('0x8')]=transfers[_0xc5ad('0x7')][_0x4bf009[_0xc5ad('0x8')]][_0xc5ad('0x9')];}utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0xc'),_0x4bf009[_0xc5ad('0x8')],_0x4bf009[_0xc5ad('0xd')],_0x4bf009['queue'],_0x4bf009['membername'],_0x4bf009['interface'],_0x4bf009[_0xc5ad('0xe')],_0x4bf009[_0xc5ad('0xf')],_0x4bf009[_0xc5ad('0x10')]));if(_0x4bf009['accountcode']){utils[_0xc5ad('0x11')](_0x4bf009['accountcode'])[_0xc5ad('0x12')](function(_0x441f2e){if(_0x441f2e){_0x4bf009['UserId']=_0x441f2e['id'];}utils[_0xc5ad('0x13')](_0xc5ad('0x14'),_0x4bf009);});}else{utils['request'](_0xc5ad('0x14'),_0x4bf009);}if(channels[_0x4bf009[_0xc5ad('0x8')]]){delete channels[_0x4bf009[_0xc5ad('0x8')]];}else if(_0x24bd7f&&channels[_0x24bd7f]){delete transfers['blinds'][_0x24bd7f];delete channels[_0x24bd7f];}}exports[_0xc5ad('0x15')]=function(_0x525f93){try{utils[_0xc5ad('0x16')](util['format']('[%s][calls][newchannel]',_0x525f93['uniqueid']),_0x525f93);if(_0x525f93[_0xc5ad('0x8')]==_0x525f93['linkedid']&&_0x525f93[_0xc5ad('0xd')]!=_0xc5ad('0x17')){utils['info'](util[_0xc5ad('0xb')](_0xc5ad('0x18'),_0x525f93['uniqueid'],_0x525f93[_0xc5ad('0x19')],_0x525f93[_0xc5ad('0x1a')]));channels[_0x525f93[_0xc5ad('0x8')]]={'uniqueid':_0x525f93[_0xc5ad('0x8')],'accountcode':_0x525f93[_0xc5ad('0x1b')],'source':_0x525f93[_0xc5ad('0xe')],'destination':_0x525f93[_0xc5ad('0x1a')],'destinationcontext':_0x525f93[_0xc5ad('0x19')],'channel':_0x525f93[_0xc5ad('0xd')],'starttime':utils[_0xc5ad('0x1c')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xc5ad('0x4'),'amaflags':_0xc5ad('0x1d')};}}catch(_0x48f025){utils[_0xc5ad('0x1e')](util[_0xc5ad('0xb')]('[%s][calls][newchannel]',_0x525f93[_0xc5ad('0x8')]),_0x48f025);}};exports[_0xc5ad('0x1f')]=function(_0x5f078b){try{utils['debug'](util[_0xc5ad('0xb')]('[%s][calls][newstate]',_0x5f078b[_0xc5ad('0x8')]),_0x5f078b);if(!_[_0xc5ad('0x20')](channels[_0x5f078b['uniqueid']])&&_0x5f078b[_0xc5ad('0x21')]==0x6){utils['info'](util[_0xc5ad('0xb')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x5f078b[_0xc5ad('0x8')],_0x5f078b[_0xc5ad('0x19')],_0x5f078b[_0xc5ad('0xd')]));if(_[_0xc5ad('0x20')](channels[_0x5f078b[_0xc5ad('0x8')]][_0xc5ad('0x22')])){channels[_0x5f078b[_0xc5ad('0x8')]][_0xc5ad('0x22')]=utils[_0xc5ad('0x1c')]();}}else if(!_[_0xc5ad('0x20')](channels[_0x5f078b[_0xc5ad('0x23')]])&&_0x5f078b[_0xc5ad('0x21')]==0x6&&_0x5f078b[_0xc5ad('0x19')]!='transfer'){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x24'),_0x5f078b[_0xc5ad('0x8')],_0x5f078b[_0xc5ad('0x23')],_0x5f078b[_0xc5ad('0x19')],_0x5f078b[_0xc5ad('0xd')]));channels[_0x5f078b[_0xc5ad('0x23')]]['accountcode']=_0x5f078b[_0xc5ad('0x1b')];channels[_0x5f078b[_0xc5ad('0x23')]][_0xc5ad('0x25')]=_0x5f078b[_0xc5ad('0xd')];if(_[_0xc5ad('0x20')](channels[_0x5f078b['linkedid']]['answertime'])){channels[_0x5f078b[_0xc5ad('0x23')]][_0xc5ad('0x26')]=utils[_0xc5ad('0x1c')]();}channels[_0x5f078b[_0xc5ad('0x23')]][_0xc5ad('0x27')]=dispositions[_[_0xc5ad('0x28')](_0x5f078b['channelstate'])]||_0xc5ad('0x6');}}catch(_0x36e44d){utils[_0xc5ad('0x1e')](util[_0xc5ad('0xb')](_0xc5ad('0x29'),_0x5f078b[_0xc5ad('0x8')]),_0x36e44d);}};exports[_0xc5ad('0x2a')]=function(_0x5db367){try{if(!_[_0xc5ad('0x20')](channels[_0x5db367[_0xc5ad('0x8')]])){utils[_0xc5ad('0x16')](util[_0xc5ad('0xb')](_0xc5ad('0x2b'),_0x5db367['uniqueid']),_0x5db367);if(_['isNil'](channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x2c')])){channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x2c')]=_0x5db367[_0xc5ad('0x2d')]+'\x20<'+_0x5db367[_0xc5ad('0xe')]+'>';}utils['info'](util['format'](_0xc5ad('0x2e'),_0x5db367[_0xc5ad('0x8')],channels[_0x5db367[_0xc5ad('0x8')]]['callerid'],_0x5db367['cause-txt']));channels[_0x5db367['uniqueid']][_0xc5ad('0x2f')]=utils[_0xc5ad('0x1c')]();channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x30')]=utils[_0xc5ad('0x31')](channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x2f')],channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x32')]);channels[_0x5db367['uniqueid']][_0xc5ad('0x33')]=channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x26')]?utils[_0xc5ad('0x31')](channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x2f')],channels[_0x5db367[_0xc5ad('0x8')]][_0xc5ad('0x26')]):0x0;writeDB(channels[_0x5db367[_0xc5ad('0x8')]]);}}catch(_0x12bd3a){utils['error'](util['format'](_0xc5ad('0x2b'),_0x5db367[_0xc5ad('0x8')]),_0x12bd3a);}};exports[_0xc5ad('0x34')]=function(_0x79ffb4){try{if(!_[_0xc5ad('0x20')](channels[_0x79ffb4[_0xc5ad('0x35')]])){utils[_0xc5ad('0x16')](util['format']('[%s][calls][attendedtransfer]',_0x79ffb4[_0xc5ad('0x36')]),_0x79ffb4);if(channels[_0x79ffb4[_0xc5ad('0x35')]][_0xc5ad('0xd')]==_0x79ffb4[_0xc5ad('0x37')]){utils['info'](util[_0xc5ad('0xb')](_0xc5ad('0x38'),_0x79ffb4[_0xc5ad('0x36')],_0x79ffb4[_0xc5ad('0x35')],_0x79ffb4[_0xc5ad('0x39')]));channels[_0x79ffb4[_0xc5ad('0x35')]][_0xc5ad('0x25')]=_0x79ffb4[_0xc5ad('0x39')];channels[_0x79ffb4[_0xc5ad('0x35')]][_0xc5ad('0x3a')]=_0xc5ad('0x3b');}else if(channels[_0x79ffb4['localtwolinkedid']][_0xc5ad('0xd')]=_0x79ffb4[_0xc5ad('0x3c')]){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x38'),_0x79ffb4[_0xc5ad('0x36')],_0x79ffb4[_0xc5ad('0x35')],_0x79ffb4[_0xc5ad('0x3d')]));channels[_0x79ffb4[_0xc5ad('0x35')]]['destinationchannel']=_0x79ffb4['origtransfererchannel'];channels[_0x79ffb4[_0xc5ad('0x35')]][_0xc5ad('0x3a')]=_0xc5ad('0x3b');}}}catch(_0x4a80ad){utils['error'](util[_0xc5ad('0xb')](_0xc5ad('0x3e'),_0x79ffb4[_0xc5ad('0x36')]),_0x4a80ad);}};exports[_0xc5ad('0x3f')]=function(_0x3e1514){try{if(!_['isNil'](channels[_0x3e1514[_0xc5ad('0x8')]])){utils[_0xc5ad('0x16')](util[_0xc5ad('0xb')]('[%s][calls][musiconholdstart]',_0x3e1514[_0xc5ad('0x8')]),_0x3e1514);channels[_0x3e1514[_0xc5ad('0x8')]][_0xc5ad('0x40')]=utils[_0xc5ad('0x1c')]();utils['info'](util['format'](_0xc5ad('0x41'),_0x3e1514['uniqueid'],channels[_0x3e1514[_0xc5ad('0x8')]][_0xc5ad('0x40')]));}}catch(_0x388963){utils[_0xc5ad('0x1e')](util[_0xc5ad('0xb')](_0xc5ad('0x42'),_0x3e1514['uniqueid']),_0x388963);}};exports[_0xc5ad('0x43')]=function(_0x1c18d2){try{if(!_[_0xc5ad('0x20')](channels[_0x1c18d2['uniqueid']])){utils[_0xc5ad('0x16')](util[_0xc5ad('0xb')](_0xc5ad('0x44'),_0x1c18d2[_0xc5ad('0x8')]),_0x1c18d2);if(!_['isNil'](channels[_0x1c18d2['uniqueid']]['musiconholdstartAt'])){channels[_0x1c18d2['uniqueid']]['mohtime']+=utils[_0xc5ad('0x31')](utils['now'](),channels[_0x1c18d2[_0xc5ad('0x8')]][_0xc5ad('0x40')]);utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x45'),_0x1c18d2['uniqueid'],channels[_0x1c18d2[_0xc5ad('0x8')]][_0xc5ad('0x46')]));delete channels[_0x1c18d2[_0xc5ad('0x8')]]['musiconholdstartAt'];}}}catch(_0x54a299){utils['error'](util[_0xc5ad('0xb')](_0xc5ad('0x44'),_0x1c18d2['uniqueid']),_0x54a299);}};exports[_0xc5ad('0x47')]=function(_0x3e946d){try{if(!_['isNil'](channels[_0x3e946d['uniqueid']])){utils['debug'](util[_0xc5ad('0xb')](_0xc5ad('0x48'),_0x3e946d[_0xc5ad('0x8')]),_0x3e946d);if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')]['xmd-originatecalleridnum'])){utils['info'](util['format'](_0xc5ad('0x4a'),_0x3e946d[_0xc5ad('0x8')],_0x3e946d[_0xc5ad('0x4b')]));channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x4c')]=_0x3e946d[_0xc5ad('0x4b')];}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')][_0xc5ad('0x4d')])){utils['info'](util[_0xc5ad('0xb')](_0xc5ad('0x4e'),_0x3e946d[_0xc5ad('0x8')],_0x3e946d[_0xc5ad('0x4b')]));channels[_0x3e946d['uniqueid']]['destination']=_0x3e946d[_0xc5ad('0x4b')];channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x2c')]='\x22'+_0x3e946d['value']+_0xc5ad('0x4f')+_0x3e946d[_0xc5ad('0x4b')]+'>';}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')]['xmd-callerid-preview'])||!_[_0xc5ad('0x20')](_0x3e946d['variable'][_0xc5ad('0x50')])){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x51'),_0x3e946d[_0xc5ad('0x8')],!_['isNil'](_0x3e946d['variable']['xmd-callerid-preview'])?_0xc5ad('0x52'):_0xc5ad('0x50'),_0x3e946d['value']));channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x2c')]=_0x3e946d[_0xc5ad('0x4b')];}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')]['xmd-queue'])||!_[_0xc5ad('0x20')](_0x3e946d['variable'][_0xc5ad('0x53')])){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x51'),_0x3e946d[_0xc5ad('0x8')],!_['isNil'](_0x3e946d[_0xc5ad('0x49')][_0xc5ad('0x54')])?_0xc5ad('0x54'):'xmcs-queue',_0x3e946d['value']));channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x55')]=_0xc5ad('0x56');channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x57')]=_0x3e946d[_0xc5ad('0x4b')];channels[_0x3e946d['uniqueid']][_0xc5ad('0x58')]=!![];}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')][_0xc5ad('0x59')])){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x5a'),_0x3e946d[_0xc5ad('0x8')],_0x3e946d[_0xc5ad('0x4b')]));channels[_0x3e946d['uniqueid']][_0xc5ad('0x5b')]=_0x3e946d[_0xc5ad('0x4b')];}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')][_0xc5ad('0x5c')])){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')](_0xc5ad('0x5d'),_0x3e946d[_0xc5ad('0x8')],_0x3e946d['value']));channels[_0x3e946d['uniqueid']][_0xc5ad('0x5e')]=_0x3e946d[_0xc5ad('0x4b')];}if(!_['isNil'](_0x3e946d['variable'][_0xc5ad('0x5f')])){utils['info'](util[_0xc5ad('0xb')](_0xc5ad('0x60'),_0x3e946d[_0xc5ad('0x8')],_0x3e946d['value']));channels[_0x3e946d[_0xc5ad('0x8')]][_0xc5ad('0x61')]=_0x3e946d[_0xc5ad('0x4b')];}if(!_[_0xc5ad('0x20')](_0x3e946d[_0xc5ad('0x49')][_0xc5ad('0x62')])){utils[_0xc5ad('0xa')](util[_0xc5ad('0xb')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x3e946d[_0xc5ad('0x8')],_0x3e946d[_0xc5ad('0x4b')]));channels[_0x3e946d[_0xc5ad('0x8')]]['sipcallid']=_0x3e946d[_0xc5ad('0x4b')];}}}catch(_0x5d9ea4){utils[_0xc5ad('0x1e')](util[_0xc5ad('0xb')](_0xc5ad('0x48'),_0x3e946d['uniqueid']),_0x5d9ea4);}};exports[_0xc5ad('0x63')]=function(_0x1815cc){try{if(!_[_0xc5ad('0x20')](channels[_0x1815cc[_0xc5ad('0x8')]])){utils[_0xc5ad('0x16')](util[_0xc5ad('0xb')](_0xc5ad('0x64'),_0x1815cc[_0xc5ad('0x8')]),_0x1815cc);utils['info'](util[_0xc5ad('0xb')](_0xc5ad('0x65'),_0x1815cc[_0xc5ad('0x8')],_0x1815cc['application'],_0x1815cc[_0xc5ad('0x66')]));if(_0x1815cc[_0xc5ad('0x67')][_0xc5ad('0x68')]()==_0xc5ad('0x69')&&_['startsWith'](_0x1815cc[_0xc5ad('0x66')][_0xc5ad('0x68')](),_0xc5ad('0x6a'))){var _0x356fd=_0x1815cc[_0xc5ad('0x66')][_0xc5ad('0x6b')]('=');var _0x41f9da=_0x356fd[0x0][_0xc5ad('0x6c')](_0x356fd[0x0][_0xc5ad('0x6d')]('(')+0x1,_0x356fd[0x0][_0xc5ad('0x6d')](')'));var _0x2c47c0=_0x356fd[0x1];channels[_0x1815cc[_0xc5ad('0x8')]][_0x41f9da]=_0x2c47c0;}if(!_[_0xc5ad('0x6e')]([_0xc5ad('0x2a'),_0xc5ad('0x6f'),_0xc5ad('0x70'),_0xc5ad('0x69'),_0xc5ad('0x71')],_0x1815cc[_0xc5ad('0x67')]['toLowerCase']())){channels[_0x1815cc['uniqueid']][_0xc5ad('0x55')]=_0x1815cc[_0xc5ad('0x67')];channels[_0x1815cc[_0xc5ad('0x8')]]['lastdata']=_0x1815cc[_0xc5ad('0x66')];}}}catch(_0x14ff4f){utils[_0xc5ad('0x1e')](util[_0xc5ad('0xb')](_0xc5ad('0x64'),_0x1815cc[_0xc5ad('0x8')]),_0x14ff4f);}};