Built motion from commit dc14b02d.|2.6.27
[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 _0x6d6a=['mohtime','[%s][calls][musiconholdstop]','[%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-preview','xmd-callerid','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','lastapplication','Queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','[%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]','application','toLowerCase','startsWith','cdr','appdata','split','substring','lastIndexOf','includes','noop','execif','gotoif','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','interface','calleridnum','connectedlinenum','accountcode','getUserByInternal','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','channelstate','destinationchannel','answertime','disposition','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','diffTime','endtime','billableseconds','[%s][calls][hangup]','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]\x20mohtime:%s'];(function(_0x4f04f5,_0x57f7b9){var _0x13fa88=function(_0x1c99ec){while(--_0x1c99ec){_0x4f04f5['push'](_0x4f04f5['shift']());}};_0x13fa88(++_0x57f7b9);}(_0x6d6a,0x8f));var _0xa6d6=function(_0x58db4e,_0x439d8d){_0x58db4e=_0x58db4e-0x0;var _0x40139a=_0x6d6a[_0x58db4e];return _0x40139a;};'use strict';var _=require('lodash');var util=require(_0xa6d6('0x0'));var utils=require(_0xa6d6('0x1'));var dispositions=[_0xa6d6('0x2'),_0xa6d6('0x3'),_0xa6d6('0x3'),_0xa6d6('0x2'),_0xa6d6('0x2'),_0xa6d6('0x2'),_0xa6d6('0x4'),_0xa6d6('0x5'),_0xa6d6('0x3'),_0xa6d6('0x3'),'FAILED'];var channels={};function writeDB(_0x17751c){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x8'),_0x17751c[_0xa6d6('0x9')],_0x17751c[_0xa6d6('0xa')],_0x17751c[_0xa6d6('0xb')],_0x17751c[_0xa6d6('0xc')],_0x17751c[_0xa6d6('0xd')],_0x17751c[_0xa6d6('0xe')],_0x17751c[_0xa6d6('0xf')],_0x17751c['lastevent']));if(_0x17751c[_0xa6d6('0x10')]){utils[_0xa6d6('0x11')](_0x17751c['accountcode'])['then'](function(_0x33a696){if(_0x33a696){_0x17751c[_0xa6d6('0x12')]=_0x33a696['id'];}utils[_0xa6d6('0x13')]('CreateVoiceCallReport',_0x17751c);});}else{utils['request'](_0xa6d6('0x14'),_0x17751c);}if(channels[_0x17751c[_0xa6d6('0x9')]]){delete channels[_0x17751c['uniqueid']];}}exports['newchannel']=function(_0x1702d7){try{utils[_0xa6d6('0x15')](util['format'](_0xa6d6('0x16'),_0x1702d7[_0xa6d6('0x9')]),_0x1702d7);if(_0x1702d7[_0xa6d6('0x9')]==_0x1702d7[_0xa6d6('0x17')]&&_0x1702d7['channel']!=_0xa6d6('0x18')){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x19'),_0x1702d7[_0xa6d6('0x9')],_0x1702d7[_0xa6d6('0x1a')],_0x1702d7['exten']));channels[_0x1702d7[_0xa6d6('0x9')]]={'uniqueid':_0x1702d7[_0xa6d6('0x9')],'accountcode':_0x1702d7['accountcode'],'source':_0x1702d7[_0xa6d6('0xe')],'destination':_0x1702d7[_0xa6d6('0x1b')],'destinationcontext':_0x1702d7[_0xa6d6('0x1a')],'channel':_0x1702d7[_0xa6d6('0xa')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xa6d6('0x1c')};}}catch(_0x450dbe){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')]('[%s][calls][newchannel]',_0x1702d7['uniqueid']),_0x450dbe);}};exports[_0xa6d6('0x1e')]=function(_0x46d510){try{utils['debug'](util[_0xa6d6('0x7')](_0xa6d6('0x1f'),_0x46d510['uniqueid']),_0x46d510);if(!_[_0xa6d6('0x20')](channels[_0x46d510[_0xa6d6('0x9')]])&&_0x46d510['channelstate']==0x6){utils['info'](util[_0xa6d6('0x7')](_0xa6d6('0x21'),_0x46d510[_0xa6d6('0x9')],_0x46d510[_0xa6d6('0x1a')],_0x46d510[_0xa6d6('0xa')]));if(_['isNil'](channels[_0x46d510[_0xa6d6('0x9')]][_0xa6d6('0x22')])){channels[_0x46d510['uniqueid']][_0xa6d6('0x22')]=utils[_0xa6d6('0x23')]();}}else if(!_[_0xa6d6('0x20')](channels[_0x46d510['linkedid']])&&_0x46d510[_0xa6d6('0x24')]==0x6&&_0x46d510[_0xa6d6('0x1a')]!='transfer'){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x46d510['uniqueid'],_0x46d510[_0xa6d6('0x17')],_0x46d510[_0xa6d6('0x1a')],_0x46d510['channel']));channels[_0x46d510[_0xa6d6('0x17')]]['accountcode']=_0x46d510[_0xa6d6('0x10')];channels[_0x46d510[_0xa6d6('0x17')]][_0xa6d6('0x25')]=_0x46d510['channel'];if(_[_0xa6d6('0x20')](channels[_0x46d510[_0xa6d6('0x17')]][_0xa6d6('0x26')])){channels[_0x46d510[_0xa6d6('0x17')]][_0xa6d6('0x26')]=utils['now']();}channels[_0x46d510[_0xa6d6('0x17')]][_0xa6d6('0x27')]=dispositions[_[_0xa6d6('0x28')](_0x46d510[_0xa6d6('0x24')])]||_0xa6d6('0x4');}}catch(_0x2c7ce9){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')]('[%s][calls][newstate]',_0x46d510['uniqueid']),_0x2c7ce9);}};exports[_0xa6d6('0x29')]=function(_0x5e01ff){try{if(!_['isNil'](channels[_0x5e01ff[_0xa6d6('0x9')]])){utils[_0xa6d6('0x15')](util[_0xa6d6('0x7')]('[%s][calls][hangup]',_0x5e01ff[_0xa6d6('0x9')]),_0x5e01ff);if(_[_0xa6d6('0x20')](channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x2a')])){channels[_0x5e01ff['uniqueid']][_0xa6d6('0x2a')]=_0x5e01ff[_0xa6d6('0x2b')]+'\x20<'+_0x5e01ff['calleridnum']+'>';}utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x2c'),_0x5e01ff['uniqueid'],channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x2a')],_0x5e01ff[_0xa6d6('0x2d')]));channels[_0x5e01ff[_0xa6d6('0x9')]]['endtime']=utils[_0xa6d6('0x23')]();channels[_0x5e01ff['uniqueid']]['duration']=utils[_0xa6d6('0x2e')](channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x2f')],channels[_0x5e01ff[_0xa6d6('0x9')]]['starttime']);channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x30')]=channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x26')]?utils[_0xa6d6('0x2e')](channels[_0x5e01ff[_0xa6d6('0x9')]][_0xa6d6('0x2f')],channels[_0x5e01ff['uniqueid']][_0xa6d6('0x26')]):0x0;writeDB(channels[_0x5e01ff[_0xa6d6('0x9')]]);}}catch(_0x1727f1){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')](_0xa6d6('0x31'),_0x5e01ff[_0xa6d6('0x9')]),_0x1727f1);}};exports['attendedtransfer']=function(_0xce115d){try{if(!_[_0xa6d6('0x20')](channels[_0xce115d[_0xa6d6('0x32')]])){utils['debug'](util['format'](_0xa6d6('0x33'),_0xce115d[_0xa6d6('0x34')]),_0xce115d);if(channels[_0xce115d[_0xa6d6('0x32')]][_0xa6d6('0xa')]==_0xce115d[_0xa6d6('0x35')]){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x36'),_0xce115d['origtransfereruniqueid'],_0xce115d[_0xa6d6('0x32')],_0xce115d[_0xa6d6('0x37')]));channels[_0xce115d['localtwolinkedid']]['destinationchannel']=_0xce115d[_0xa6d6('0x37')];channels[_0xce115d[_0xa6d6('0x32')]][_0xa6d6('0x38')]='_attended';}else if(channels[_0xce115d['localtwolinkedid']][_0xa6d6('0xa')]=_0xce115d[_0xa6d6('0x39')]){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xce115d[_0xa6d6('0x34')],_0xce115d['localtwolinkedid'],_0xce115d[_0xa6d6('0x3a')]));channels[_0xce115d[_0xa6d6('0x32')]]['destinationchannel']=_0xce115d[_0xa6d6('0x3a')];channels[_0xce115d[_0xa6d6('0x32')]][_0xa6d6('0x38')]=_0xa6d6('0x3b');}}}catch(_0x44d391){utils[_0xa6d6('0x1d')](util['format'](_0xa6d6('0x33'),_0xce115d[_0xa6d6('0x34')]),_0x44d391);}};exports['musiconholdstart']=function(_0x5c6d61){try{if(!_['isNil'](channels[_0x5c6d61[_0xa6d6('0x9')]])){utils['debug'](util[_0xa6d6('0x7')](_0xa6d6('0x3c'),_0x5c6d61[_0xa6d6('0x9')]),_0x5c6d61);channels[_0x5c6d61['uniqueid']]['musiconholdstartAt']=utils[_0xa6d6('0x23')]();utils['info'](util['format'](_0xa6d6('0x3d'),_0x5c6d61[_0xa6d6('0x9')],channels[_0x5c6d61[_0xa6d6('0x9')]][_0xa6d6('0x3e')]));}}catch(_0x113b0f){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')](_0xa6d6('0x3c'),_0x5c6d61['uniqueid']),_0x113b0f);}};exports[_0xa6d6('0x3f')]=function(_0x32afe1){try{if(!_[_0xa6d6('0x20')](channels[_0x32afe1['uniqueid']])){utils[_0xa6d6('0x15')](util['format']('[%s][calls][musiconholdstop]',_0x32afe1['uniqueid']),_0x32afe1);if(!_['isNil'](channels[_0x32afe1[_0xa6d6('0x9')]]['musiconholdstartAt'])){channels[_0x32afe1['uniqueid']]['mohtime']+=utils[_0xa6d6('0x2e')](utils[_0xa6d6('0x23')](),channels[_0x32afe1['uniqueid']][_0xa6d6('0x3e')]);utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x40'),_0x32afe1[_0xa6d6('0x9')],channels[_0x32afe1['uniqueid']][_0xa6d6('0x41')]));delete channels[_0x32afe1[_0xa6d6('0x9')]][_0xa6d6('0x3e')];}}}catch(_0x21068c){utils[_0xa6d6('0x1d')](util['format'](_0xa6d6('0x42'),_0x32afe1[_0xa6d6('0x9')]),_0x21068c);}};exports['varset']=function(_0x5a5b52){try{if(!_['isNil'](channels[_0x5a5b52[_0xa6d6('0x9')]])){utils[_0xa6d6('0x15')](util[_0xa6d6('0x7')](_0xa6d6('0x43'),_0x5a5b52[_0xa6d6('0x9')]),_0x5a5b52);if(!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')]['xmd-originatecalleridnum'])){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x45'),_0x5a5b52['uniqueid'],_0x5a5b52[_0xa6d6('0x46')]));channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0x47')]=_0x5a5b52[_0xa6d6('0x46')];}if(!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x48')])){utils['info'](util[_0xa6d6('0x7')](_0xa6d6('0x49'),_0x5a5b52[_0xa6d6('0x9')],_0x5a5b52[_0xa6d6('0x46')]));channels[_0x5a5b52[_0xa6d6('0x9')]]['destination']=_0x5a5b52['value'];channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0x2a')]='\x22'+_0x5a5b52[_0xa6d6('0x46')]+_0xa6d6('0x4a')+_0x5a5b52[_0xa6d6('0x46')]+'>';}if(!_['isNil'](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x4b')])||!_['isNil'](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x4c')])){utils['info'](util[_0xa6d6('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5a5b52[_0xa6d6('0x9')],!_[_0xa6d6('0x20')](_0x5a5b52['variable'][_0xa6d6('0x4b')])?'xmd-callerid-preview':_0xa6d6('0x4c'),_0x5a5b52[_0xa6d6('0x46')]));channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0x2a')]=_0x5a5b52['value'];}if(!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')]['xmd-queue'])||!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x4d')])){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x4e'),_0x5a5b52[_0xa6d6('0x9')],!_[_0xa6d6('0x20')](_0x5a5b52['variable'][_0xa6d6('0x4f')])?'xmd-queue':_0xa6d6('0x4d'),_0x5a5b52['value']));channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0x50')]=_0xa6d6('0x51');channels[_0x5a5b52['uniqueid']]['lastdata']=_0x5a5b52[_0xa6d6('0x46')];channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0xb')]=!![];}if(!_['isNil'](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x52')])){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x53'),_0x5a5b52[_0xa6d6('0x9')],_0x5a5b52['value']));channels[_0x5a5b52['uniqueid']]['ContactId']=_0x5a5b52[_0xa6d6('0x46')];}if(!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')]['xmd-cdrtype'])){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x54'),_0x5a5b52[_0xa6d6('0x9')],_0x5a5b52[_0xa6d6('0x46')]));channels[_0x5a5b52[_0xa6d6('0x9')]]['type']=_0x5a5b52[_0xa6d6('0x46')];}if(!_[_0xa6d6('0x20')](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x55')])){utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')](_0xa6d6('0x56'),_0x5a5b52[_0xa6d6('0x9')],_0x5a5b52['value']));channels[_0x5a5b52[_0xa6d6('0x9')]][_0xa6d6('0x57')]=_0x5a5b52[_0xa6d6('0x46')];}if(!_['isNil'](_0x5a5b52[_0xa6d6('0x44')][_0xa6d6('0x58')])){utils['info'](util[_0xa6d6('0x7')](_0xa6d6('0x59'),_0x5a5b52[_0xa6d6('0x9')],_0x5a5b52['value']));channels[_0x5a5b52[_0xa6d6('0x9')]]['sipcallid']=_0x5a5b52[_0xa6d6('0x46')];}}}catch(_0x4c0c9d){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')](_0xa6d6('0x43'),_0x5a5b52['uniqueid']),_0x4c0c9d);}};exports[_0xa6d6('0x5a')]=function(_0x2de4b1){try{if(!_[_0xa6d6('0x20')](channels[_0x2de4b1[_0xa6d6('0x9')]])){utils['debug'](util[_0xa6d6('0x7')](_0xa6d6('0x5b'),_0x2de4b1[_0xa6d6('0x9')]),_0x2de4b1);utils[_0xa6d6('0x6')](util[_0xa6d6('0x7')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x2de4b1['uniqueid'],_0x2de4b1[_0xa6d6('0x5c')],_0x2de4b1['appdata']));if(_0x2de4b1[_0xa6d6('0x5c')][_0xa6d6('0x5d')]()=='set'&&_[_0xa6d6('0x5e')](_0x2de4b1['appdata'][_0xa6d6('0x5d')](),_0xa6d6('0x5f'))){var _0x42c524=_0x2de4b1[_0xa6d6('0x60')][_0xa6d6('0x61')]('=');var _0x353422=_0x42c524[0x0][_0xa6d6('0x62')](_0x42c524[0x0][_0xa6d6('0x63')]('(')+0x1,_0x42c524[0x0]['lastIndexOf'](')'));var _0x533702=_0x42c524[0x1];channels[_0x2de4b1['uniqueid']][_0x353422]=_0x533702;}if(!_[_0xa6d6('0x64')](['hangup',_0xa6d6('0x65'),_0xa6d6('0x66'),'set',_0xa6d6('0x67')],_0x2de4b1[_0xa6d6('0x5c')][_0xa6d6('0x5d')]())){channels[_0x2de4b1[_0xa6d6('0x9')]][_0xa6d6('0x50')]=_0x2de4b1[_0xa6d6('0x5c')];channels[_0x2de4b1[_0xa6d6('0x9')]]['lastdata']=_0x2de4b1[_0xa6d6('0x60')];}}}catch(_0x35a294){utils[_0xa6d6('0x1d')](util[_0xa6d6('0x7')]('[%s][calls][newexten]',_0x2de4b1[_0xa6d6('0x9')]),_0x35a294);}};