Built motion from commit (unavailable).|2.5.13
[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 _0xa6e5=['lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','[%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','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','origtransfererchannel','userfield','_attended','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','diffTime','[%s][calls][musiconholdstop]\x20mohtime:%s','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmcs-queue','xmd-queue','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','split','substring','lastIndexOf','includes','execif','gotoif','lastapplication','[%s][calls][newexten]','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','connectedlinenum'];(function(_0x13ff53,_0x5e1424){var _0x290228=function(_0x3e3133){while(--_0x3e3133){_0x13ff53['push'](_0x13ff53['shift']());}};_0x290228(++_0x5e1424);}(_0xa6e5,0x190));var _0x5a6e=function(_0x19c906,_0x385e90){_0x19c906=_0x19c906-0x0;var _0x58931a=_0xa6e5[_0x19c906];return _0x58931a;};'use strict';var _=require(_0x5a6e('0x0'));var util=require(_0x5a6e('0x1'));var utils=require(_0x5a6e('0x2'));var dispositions=[_0x5a6e('0x3'),'FAILED',_0x5a6e('0x4'),_0x5a6e('0x3'),'NO\x20ANSWER',_0x5a6e('0x3'),_0x5a6e('0x5'),'BUSY',_0x5a6e('0x4'),_0x5a6e('0x4'),_0x5a6e('0x4')];var channels={};function writeDB(_0x1f01b3){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x8'),_0x1f01b3[_0x5a6e('0x9')],_0x1f01b3[_0x5a6e('0xa')],_0x1f01b3['queue'],_0x1f01b3['membername'],_0x1f01b3['interface'],_0x1f01b3['calleridnum'],_0x1f01b3[_0x5a6e('0xb')],_0x1f01b3[_0x5a6e('0xc')]));if(_0x1f01b3[_0x5a6e('0xd')]){utils[_0x5a6e('0xe')](_0x1f01b3[_0x5a6e('0xd')])[_0x5a6e('0xf')](function(_0x21d7c8){if(_0x21d7c8){_0x1f01b3[_0x5a6e('0x10')]=_0x21d7c8['id'];}utils[_0x5a6e('0x11')](_0x5a6e('0x12'),_0x1f01b3);});}else{utils[_0x5a6e('0x11')](_0x5a6e('0x12'),_0x1f01b3);}if(channels[_0x1f01b3[_0x5a6e('0x9')]]){delete channels[_0x1f01b3[_0x5a6e('0x9')]];}}exports[_0x5a6e('0x13')]=function(_0x1f45af){try{utils[_0x5a6e('0x14')](util['format'](_0x5a6e('0x15'),_0x1f45af['uniqueid']),_0x1f45af);if(_0x1f45af[_0x5a6e('0x9')]==_0x1f45af[_0x5a6e('0x16')]&&_0x1f45af[_0x5a6e('0xa')]!=_0x5a6e('0x17')){utils['info'](util[_0x5a6e('0x7')](_0x5a6e('0x18'),_0x1f45af[_0x5a6e('0x9')],_0x1f45af[_0x5a6e('0x19')],_0x1f45af[_0x5a6e('0x1a')]));channels[_0x1f45af[_0x5a6e('0x9')]]={'uniqueid':_0x1f45af[_0x5a6e('0x9')],'accountcode':_0x1f45af[_0x5a6e('0xd')],'source':_0x1f45af[_0x5a6e('0x1b')],'destination':_0x1f45af['exten'],'destinationcontext':_0x1f45af[_0x5a6e('0x19')],'channel':_0x1f45af[_0x5a6e('0xa')],'starttime':utils[_0x5a6e('0x1c')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x5a6e('0x3'),'amaflags':_0x5a6e('0x1d')};}}catch(_0x27e89d){utils[_0x5a6e('0x1e')](util['format'](_0x5a6e('0x15'),_0x1f45af[_0x5a6e('0x9')]),_0x27e89d);}};exports[_0x5a6e('0x1f')]=function(_0x5e89fd){try{utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')](_0x5a6e('0x20'),_0x5e89fd[_0x5a6e('0x9')]),_0x5e89fd);if(!_[_0x5a6e('0x21')](channels[_0x5e89fd[_0x5a6e('0x9')]])&&_0x5e89fd[_0x5a6e('0x22')]==0x6){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x23'),_0x5e89fd['uniqueid'],_0x5e89fd['context'],_0x5e89fd[_0x5a6e('0xa')]));if(_[_0x5a6e('0x21')](channels[_0x5e89fd['uniqueid']]['systemanswertime'])){channels[_0x5e89fd[_0x5a6e('0x9')]][_0x5a6e('0x24')]=utils['now']();}}else if(!_[_0x5a6e('0x21')](channels[_0x5e89fd[_0x5a6e('0x16')]])&&_0x5e89fd[_0x5a6e('0x22')]==0x6&&_0x5e89fd['context']!='transfer'){utils['info'](util[_0x5a6e('0x7')](_0x5a6e('0x25'),_0x5e89fd[_0x5a6e('0x9')],_0x5e89fd[_0x5a6e('0x16')],_0x5e89fd['context'],_0x5e89fd['channel']));channels[_0x5e89fd[_0x5a6e('0x16')]][_0x5a6e('0xd')]=_0x5e89fd[_0x5a6e('0xd')];channels[_0x5e89fd[_0x5a6e('0x16')]][_0x5a6e('0x26')]=_0x5e89fd['channel'];if(_['isNil'](channels[_0x5e89fd['linkedid']][_0x5a6e('0x27')])){channels[_0x5e89fd[_0x5a6e('0x16')]]['answertime']=utils[_0x5a6e('0x1c')]();}channels[_0x5e89fd[_0x5a6e('0x16')]][_0x5a6e('0x28')]=dispositions[_[_0x5a6e('0x29')](_0x5e89fd[_0x5a6e('0x22')])]||'ANSWERED';}}catch(_0x22eb5f){utils['error'](util[_0x5a6e('0x7')](_0x5a6e('0x20'),_0x5e89fd[_0x5a6e('0x9')]),_0x22eb5f);}};exports[_0x5a6e('0x2a')]=function(_0x3680c0){try{if(!_[_0x5a6e('0x21')](channels[_0x3680c0['uniqueid']])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')](_0x5a6e('0x2b'),_0x3680c0[_0x5a6e('0x9')]),_0x3680c0);if(_[_0x5a6e('0x21')](channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x2c')])){channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x2c')]=_0x3680c0['calleridname']+'\x20<'+_0x3680c0[_0x5a6e('0x1b')]+'>';}utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x2d'),_0x3680c0[_0x5a6e('0x9')],channels[_0x3680c0[_0x5a6e('0x9')]]['callerid'],_0x3680c0[_0x5a6e('0x2e')]));channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x2f')]=utils[_0x5a6e('0x1c')]();channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x30')]=utils['diffTime'](channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x2f')],channels[_0x3680c0[_0x5a6e('0x9')]]['starttime']);channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x31')]=channels[_0x3680c0['uniqueid']]['answertime']?utils['diffTime'](channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x2f')],channels[_0x3680c0[_0x5a6e('0x9')]][_0x5a6e('0x27')]):0x0;writeDB(channels[_0x3680c0[_0x5a6e('0x9')]]);}}catch(_0x53e386){utils[_0x5a6e('0x1e')](util[_0x5a6e('0x7')](_0x5a6e('0x2b'),_0x3680c0[_0x5a6e('0x9')]),_0x53e386);}};exports[_0x5a6e('0x32')]=function(_0x33ebdc){try{if(!_[_0x5a6e('0x21')](channels[_0x33ebdc['localtwolinkedid']])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')](_0x5a6e('0x33'),_0x33ebdc[_0x5a6e('0x34')]),_0x33ebdc);if(channels[_0x33ebdc[_0x5a6e('0x35')]][_0x5a6e('0xa')]==_0x33ebdc['transfereechannel']){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x36'),_0x33ebdc[_0x5a6e('0x34')],_0x33ebdc[_0x5a6e('0x35')],_0x33ebdc[_0x5a6e('0x37')]));channels[_0x33ebdc[_0x5a6e('0x35')]]['destinationchannel']=_0x33ebdc['secondtransfererchannel'];channels[_0x33ebdc[_0x5a6e('0x35')]]['userfield']='_attended';}else if(channels[_0x33ebdc['localtwolinkedid']]['channel']=_0x33ebdc['transfertargetchannel']){utils['info'](util[_0x5a6e('0x7')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x33ebdc[_0x5a6e('0x34')],_0x33ebdc[_0x5a6e('0x35')],_0x33ebdc['origtransfererchannel']));channels[_0x33ebdc[_0x5a6e('0x35')]][_0x5a6e('0x26')]=_0x33ebdc[_0x5a6e('0x38')];channels[_0x33ebdc[_0x5a6e('0x35')]][_0x5a6e('0x39')]=_0x5a6e('0x3a');}}}catch(_0x57d865){utils[_0x5a6e('0x1e')](util[_0x5a6e('0x7')](_0x5a6e('0x33'),_0x33ebdc['origtransfereruniqueid']),_0x57d865);}};exports['musiconholdstart']=function(_0x2cebf1){try{if(!_['isNil'](channels[_0x2cebf1[_0x5a6e('0x9')]])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')](_0x5a6e('0x3b'),_0x2cebf1['uniqueid']),_0x2cebf1);channels[_0x2cebf1[_0x5a6e('0x9')]][_0x5a6e('0x3c')]=utils[_0x5a6e('0x1c')]();utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x2cebf1['uniqueid'],channels[_0x2cebf1['uniqueid']][_0x5a6e('0x3c')]));}}catch(_0x5b3f48){utils[_0x5a6e('0x1e')](util[_0x5a6e('0x7')](_0x5a6e('0x3b'),_0x2cebf1[_0x5a6e('0x9')]),_0x5b3f48);}};exports[_0x5a6e('0x3d')]=function(_0x51ce4d){try{if(!_['isNil'](channels[_0x51ce4d[_0x5a6e('0x9')]])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')](_0x5a6e('0x3e'),_0x51ce4d[_0x5a6e('0x9')]),_0x51ce4d);if(!_['isNil'](channels[_0x51ce4d['uniqueid']][_0x5a6e('0x3c')])){channels[_0x51ce4d[_0x5a6e('0x9')]]['mohtime']+=utils[_0x5a6e('0x3f')](utils[_0x5a6e('0x1c')](),channels[_0x51ce4d['uniqueid']][_0x5a6e('0x3c')]);utils[_0x5a6e('0x6')](util['format'](_0x5a6e('0x40'),_0x51ce4d['uniqueid'],channels[_0x51ce4d[_0x5a6e('0x9')]]['mohtime']));delete channels[_0x51ce4d['uniqueid']]['musiconholdstartAt'];}}}catch(_0x5bc316){utils[_0x5a6e('0x1e')](util[_0x5a6e('0x7')](_0x5a6e('0x3e'),_0x51ce4d['uniqueid']),_0x5bc316);}};exports['varset']=function(_0x57917c){try{if(!_[_0x5a6e('0x21')](channels[_0x57917c[_0x5a6e('0x9')]])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')]('[%s][calls][varset]',_0x57917c['uniqueid']),_0x57917c);if(!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x42')])){utils[_0x5a6e('0x6')](util['format'](_0x5a6e('0x43'),_0x57917c['uniqueid'],_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c[_0x5a6e('0x9')]][_0x5a6e('0x45')]=_0x57917c[_0x5a6e('0x44')];}if(!_[_0x5a6e('0x21')](_0x57917c['variable']['xmd-phone'])){utils[_0x5a6e('0x6')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x57917c['uniqueid'],_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c['uniqueid']][_0x5a6e('0x46')]=_0x57917c[_0x5a6e('0x44')];channels[_0x57917c['uniqueid']][_0x5a6e('0x2c')]='\x22'+_0x57917c[_0x5a6e('0x44')]+_0x5a6e('0x47')+_0x57917c[_0x5a6e('0x44')]+'>';}if(!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x48')])||!_[_0x5a6e('0x21')](_0x57917c['variable'][_0x5a6e('0x49')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x4a'),_0x57917c[_0x5a6e('0x9')],!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x48')])?_0x5a6e('0x48'):'xmd-callerid',_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c['uniqueid']]['callerid']=_0x57917c[_0x5a6e('0x44')];}if(!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')]['xmd-queue'])||!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x4b')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x4a'),_0x57917c[_0x5a6e('0x9')],!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x4c')])?_0x5a6e('0x4c'):_0x5a6e('0x4b'),_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c[_0x5a6e('0x9')]]['lastapplication']=_0x5a6e('0x4d');channels[_0x57917c[_0x5a6e('0x9')]][_0x5a6e('0x4e')]=_0x57917c[_0x5a6e('0x44')];channels[_0x57917c['uniqueid']]['queue']=!![];}if(!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x4f')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x50'),_0x57917c[_0x5a6e('0x9')],_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c[_0x5a6e('0x9')]][_0x5a6e('0x51')]=_0x57917c[_0x5a6e('0x44')];}if(!_[_0x5a6e('0x21')](_0x57917c['variable'][_0x5a6e('0x52')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x57917c[_0x5a6e('0x9')],_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c[_0x5a6e('0x9')]][_0x5a6e('0x53')]=_0x57917c[_0x5a6e('0x44')];}if(!_[_0x5a6e('0x21')](_0x57917c['variable'][_0x5a6e('0x54')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x55'),_0x57917c['uniqueid'],_0x57917c['value']));channels[_0x57917c['uniqueid']][_0x5a6e('0x56')]=_0x57917c['value'];}if(!_[_0x5a6e('0x21')](_0x57917c[_0x5a6e('0x41')][_0x5a6e('0x57')])){utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x57917c[_0x5a6e('0x9')],_0x57917c[_0x5a6e('0x44')]));channels[_0x57917c['uniqueid']][_0x5a6e('0x57')]=_0x57917c[_0x5a6e('0x44')];}}}catch(_0x3e2a36){utils[_0x5a6e('0x1e')](util['format'](_0x5a6e('0x58'),_0x57917c[_0x5a6e('0x9')]),_0x3e2a36);}};exports['newexten']=function(_0xad2f03){try{if(!_[_0x5a6e('0x21')](channels[_0xad2f03[_0x5a6e('0x9')]])){utils[_0x5a6e('0x14')](util[_0x5a6e('0x7')]('[%s][calls][newexten]',_0xad2f03[_0x5a6e('0x9')]),_0xad2f03);utils[_0x5a6e('0x6')](util[_0x5a6e('0x7')](_0x5a6e('0x59'),_0xad2f03[_0x5a6e('0x9')],_0xad2f03[_0x5a6e('0x5a')],_0xad2f03[_0x5a6e('0x5b')]));if(_0xad2f03[_0x5a6e('0x5a')][_0x5a6e('0x5c')]()==_0x5a6e('0x5d')&&_[_0x5a6e('0x5e')](_0xad2f03[_0x5a6e('0x5b')][_0x5a6e('0x5c')](),'cdr')){var _0x314416=_0xad2f03[_0x5a6e('0x5b')][_0x5a6e('0x5f')]('=');var _0x1e74e9=_0x314416[0x0][_0x5a6e('0x60')](_0x314416[0x0][_0x5a6e('0x61')]('(')+0x1,_0x314416[0x0]['lastIndexOf'](')'));var _0x4cdfa2=_0x314416[0x1];channels[_0xad2f03[_0x5a6e('0x9')]][_0x1e74e9]=_0x4cdfa2;}if(!_[_0x5a6e('0x62')]([_0x5a6e('0x2a'),'noop',_0x5a6e('0x63'),_0x5a6e('0x5d'),_0x5a6e('0x64')],_0xad2f03[_0x5a6e('0x5a')][_0x5a6e('0x5c')]())){channels[_0xad2f03[_0x5a6e('0x9')]][_0x5a6e('0x65')]=_0xad2f03[_0x5a6e('0x5a')];channels[_0xad2f03['uniqueid']]['lastdata']=_0xad2f03[_0x5a6e('0x5b')];}}}catch(_0x579032){utils['error'](util[_0x5a6e('0x7')](_0x5a6e('0x66'),_0xad2f03[_0x5a6e('0x9')]),_0x579032);}};