Built motion from commit (unavailable).|2.5.2
[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 _0xf204=['calleridname','calleridnum','endtime','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','_attended','transfertargetchannel','origtransfererchannel','userfield','musiconholdstart','musiconholdstartAt','musiconholdstop','variable','xmd-originatecalleridnum','value','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','type','routeid','newexten','application','set','startsWith','appdata','toLowerCase','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','CALL|%s|%s|%s|%s|%s|%s|%s|%s','channel','accountcode','source','destination','callerid','disposition','getUserByInternal','then','UserId','request','CreateVoiceCallReport','uniqueid','newchannel','OutgoingSpoolFailed','exten','context','DOCUMENTATION','error','stack','newstate','isNil','channelstate','systemanswertime','now','linkedid','transfer','destinationchannel','answertime','toNumber','hangup'];(function(_0x2b41e8,_0x86e285){var _0x396ab3=function(_0x4eca77){while(--_0x4eca77){_0x2b41e8['push'](_0x2b41e8['shift']());}};_0x396ab3(++_0x86e285);}(_0xf204,0x179));var _0x4f20=function(_0xdd53ac,_0xf6986){_0xdd53ac=_0xdd53ac-0x0;var _0x1c261b=_0xf204[_0xdd53ac];return _0x1c261b;};'use strict';var _=require(_0x4f20('0x0'));var util=require(_0x4f20('0x1'));var utils=require(_0x4f20('0x2'));var dispositions=[_0x4f20('0x3'),'FAILED',_0x4f20('0x4'),'NO\x20ANSWER',_0x4f20('0x3'),_0x4f20('0x3'),_0x4f20('0x5'),'BUSY',_0x4f20('0x4'),_0x4f20('0x4'),'FAILED'];var channels={};function writeDB(_0x11fdf3){utils[_0x4f20('0x6')](util['format'](_0x4f20('0x7'),_0x11fdf3['uniqueid'],_0x11fdf3[_0x4f20('0x8')],_0x11fdf3['type'],_0x11fdf3[_0x4f20('0x9')],_0x11fdf3[_0x4f20('0xa')],_0x11fdf3[_0x4f20('0xb')],_0x11fdf3[_0x4f20('0xc')],_0x11fdf3[_0x4f20('0xd')]));if(_0x11fdf3[_0x4f20('0x9')]){utils[_0x4f20('0xe')](_0x11fdf3[_0x4f20('0x9')])[_0x4f20('0xf')](function(_0x20aeed){if(_0x20aeed){_0x11fdf3[_0x4f20('0x10')]=_0x20aeed['id'];}utils[_0x4f20('0x11')](_0x4f20('0x12'),_0x11fdf3);});}else{utils[_0x4f20('0x11')](_0x4f20('0x12'),_0x11fdf3);}if(channels[_0x11fdf3[_0x4f20('0x13')]]){delete channels[_0x11fdf3['uniqueid']];}}exports[_0x4f20('0x14')]=function(_0x48caf1){try{if(_0x48caf1[_0x4f20('0x13')]==_0x48caf1['linkedid']&&_0x48caf1['channel']!=_0x4f20('0x15')){channels[_0x48caf1[_0x4f20('0x13')]]={'uniqueid':_0x48caf1[_0x4f20('0x13')],'accountcode':_0x48caf1[_0x4f20('0x9')],'source':_0x48caf1['calleridnum'],'destination':_0x48caf1[_0x4f20('0x16')],'destinationcontext':_0x48caf1[_0x4f20('0x17')],'channel':_0x48caf1[_0x4f20('0x8')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x4f20('0x3'),'amaflags':_0x4f20('0x18')};}}catch(_0x2790a3){utils[_0x4f20('0x19')](_0x2790a3[_0x4f20('0x1a')]);}};exports[_0x4f20('0x1b')]=function(_0x50c2fd){try{if(!_[_0x4f20('0x1c')](channels[_0x50c2fd[_0x4f20('0x13')]])&&_0x50c2fd[_0x4f20('0x1d')]==0x6){if(_[_0x4f20('0x1c')](channels[_0x50c2fd[_0x4f20('0x13')]][_0x4f20('0x1e')])){channels[_0x50c2fd[_0x4f20('0x13')]][_0x4f20('0x1e')]=utils[_0x4f20('0x1f')]();}}else if(!_[_0x4f20('0x1c')](channels[_0x50c2fd[_0x4f20('0x20')]])&&_0x50c2fd['channelstate']==0x6&&_0x50c2fd['context']!=_0x4f20('0x21')){channels[_0x50c2fd['linkedid']][_0x4f20('0x9')]=_0x50c2fd[_0x4f20('0x9')];channels[_0x50c2fd[_0x4f20('0x20')]][_0x4f20('0x22')]=_0x50c2fd['channel'];if(_[_0x4f20('0x1c')](channels[_0x50c2fd['linkedid']]['answertime'])){channels[_0x50c2fd[_0x4f20('0x20')]][_0x4f20('0x23')]=utils[_0x4f20('0x1f')]();}channels[_0x50c2fd['linkedid']][_0x4f20('0xd')]=dispositions[_[_0x4f20('0x24')](_0x50c2fd[_0x4f20('0x1d')])]||_0x4f20('0x5');}}catch(_0x4d44e2){utils[_0x4f20('0x19')](_0x4d44e2[_0x4f20('0x1a')]);}};exports[_0x4f20('0x25')]=function(_0x3df9fc){try{if(!_[_0x4f20('0x1c')](channels[_0x3df9fc[_0x4f20('0x13')]])){if(_[_0x4f20('0x1c')](channels[_0x3df9fc[_0x4f20('0x13')]]['callerid'])){channels[_0x3df9fc[_0x4f20('0x13')]][_0x4f20('0xc')]=_0x3df9fc[_0x4f20('0x26')]+'\x20<'+_0x3df9fc[_0x4f20('0x27')]+'>';}channels[_0x3df9fc[_0x4f20('0x13')]][_0x4f20('0x28')]=utils[_0x4f20('0x1f')]();channels[_0x3df9fc[_0x4f20('0x13')]]['duration']=utils[_0x4f20('0x29')](channels[_0x3df9fc[_0x4f20('0x13')]]['endtime'],channels[_0x3df9fc['uniqueid']][_0x4f20('0x2a')]);channels[_0x3df9fc[_0x4f20('0x13')]][_0x4f20('0x2b')]=channels[_0x3df9fc[_0x4f20('0x13')]][_0x4f20('0x23')]?utils[_0x4f20('0x29')](channels[_0x3df9fc[_0x4f20('0x13')]][_0x4f20('0x28')],channels[_0x3df9fc['uniqueid']][_0x4f20('0x23')]):0x0;writeDB(channels[_0x3df9fc[_0x4f20('0x13')]]);}}catch(_0x28f446){utils[_0x4f20('0x19')](_0x28f446['stack']);}};exports[_0x4f20('0x2c')]=function(_0x3a89f6){try{if(!_[_0x4f20('0x1c')](channels[_0x3a89f6[_0x4f20('0x2d')]])){if(channels[_0x3a89f6[_0x4f20('0x2d')]]['channel']==_0x3a89f6[_0x4f20('0x2e')]){channels[_0x3a89f6[_0x4f20('0x2d')]][_0x4f20('0x22')]=_0x3a89f6[_0x4f20('0x2f')];channels[_0x3a89f6[_0x4f20('0x2d')]]['userfield']=_0x4f20('0x30');}else if(channels[_0x3a89f6[_0x4f20('0x2d')]]['channel']=_0x3a89f6[_0x4f20('0x31')]){channels[_0x3a89f6[_0x4f20('0x2d')]][_0x4f20('0x22')]=_0x3a89f6[_0x4f20('0x32')];channels[_0x3a89f6['localtwolinkedid']][_0x4f20('0x33')]='_attended';}}}catch(_0x3abe8e){utils['error'](_0x3abe8e[_0x4f20('0x1a')]);}};exports[_0x4f20('0x34')]=function(_0x369946){try{if(!_[_0x4f20('0x1c')](channels[_0x369946[_0x4f20('0x13')]])){channels[_0x369946[_0x4f20('0x13')]][_0x4f20('0x35')]=utils[_0x4f20('0x1f')]();}}catch(_0x62365c){utils[_0x4f20('0x19')](_0x62365c[_0x4f20('0x1a')]);}};exports[_0x4f20('0x36')]=function(_0xeb5366){try{if(!_[_0x4f20('0x1c')](channels[_0xeb5366['uniqueid']])){if(!_['isNil'](channels[_0xeb5366[_0x4f20('0x13')]]['musiconholdstartAt'])){channels[_0xeb5366[_0x4f20('0x13')]]['mohtime']+=utils[_0x4f20('0x29')](utils['now'](),channels[_0xeb5366[_0x4f20('0x13')]][_0x4f20('0x35')]);delete channels[_0xeb5366[_0x4f20('0x13')]][_0x4f20('0x35')];}}}catch(_0x202cc3){utils[_0x4f20('0x19')](_0x202cc3[_0x4f20('0x1a')]);}};exports['varset']=function(_0x445a61){try{if(!_[_0x4f20('0x1c')](channels[_0x445a61[_0x4f20('0x13')]])){if(!_[_0x4f20('0x1c')](_0x445a61[_0x4f20('0x37')][_0x4f20('0x38')])){channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0xa')]=_0x445a61[_0x4f20('0x39')];}if(!_[_0x4f20('0x1c')](_0x445a61['variable']['xmd-phone'])){channels[_0x445a61['uniqueid']]['destination']=_0x445a61[_0x4f20('0x39')];channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0xc')]='\x22'+_0x445a61[_0x4f20('0x39')]+_0x4f20('0x3a')+_0x445a61[_0x4f20('0x39')]+'>';}if(!_[_0x4f20('0x1c')](_0x445a61['variable'][_0x4f20('0x3b')])||!_['isNil'](_0x445a61[_0x4f20('0x37')][_0x4f20('0x3c')])){channels[_0x445a61['uniqueid']][_0x4f20('0xc')]=_0x445a61[_0x4f20('0x39')];}if(!_[_0x4f20('0x1c')](_0x445a61['variable'][_0x4f20('0x3d')])||!_[_0x4f20('0x1c')](_0x445a61['variable'][_0x4f20('0x3e')])){channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0x3f')]=_0x4f20('0x40');channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0x41')]=_0x445a61[_0x4f20('0x39')];channels[_0x445a61['uniqueid']]['queue']=!![];}if(!_[_0x4f20('0x1c')](_0x445a61[_0x4f20('0x37')][_0x4f20('0x42')])){channels[_0x445a61[_0x4f20('0x13')]]['ContactId']=_0x445a61[_0x4f20('0x39')];}if(!_[_0x4f20('0x1c')](_0x445a61[_0x4f20('0x37')]['xmd-cdrtype'])){channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0x43')]=_0x445a61['value'];}if(!_[_0x4f20('0x1c')](_0x445a61[_0x4f20('0x37')]['outboundrouteid'])){channels[_0x445a61[_0x4f20('0x13')]][_0x4f20('0x44')]=_0x445a61[_0x4f20('0x39')];}if(!_[_0x4f20('0x1c')](_0x445a61['variable']['sipcallid'])){channels[_0x445a61['uniqueid']]['sipcallid']=_0x445a61[_0x4f20('0x39')];}}}catch(_0x9062e6){utils[_0x4f20('0x19')](_0x9062e6[_0x4f20('0x1a')]);}};exports[_0x4f20('0x45')]=function(_0x2a70ad){try{if(!_['isNil'](channels[_0x2a70ad['uniqueid']])){if(_0x2a70ad[_0x4f20('0x46')]['toLowerCase']()==_0x4f20('0x47')&&_[_0x4f20('0x48')](_0x2a70ad[_0x4f20('0x49')][_0x4f20('0x4a')](),_0x4f20('0x4b'))){var _0x428aa8=_0x2a70ad[_0x4f20('0x49')][_0x4f20('0x4c')]('=');var _0x57f05a=_0x428aa8[0x0][_0x4f20('0x4d')](_0x428aa8[0x0][_0x4f20('0x4e')]('(')+0x1,_0x428aa8[0x0][_0x4f20('0x4e')](')'));var _0x515a2d=_0x428aa8[0x1];channels[_0x2a70ad['uniqueid']][_0x57f05a]=_0x515a2d;}if(!_[_0x4f20('0x4f')]([_0x4f20('0x25'),_0x4f20('0x50'),_0x4f20('0x51'),_0x4f20('0x47'),_0x4f20('0x52')],_0x2a70ad[_0x4f20('0x46')]['toLowerCase']())){channels[_0x2a70ad[_0x4f20('0x13')]][_0x4f20('0x3f')]=_0x2a70ad[_0x4f20('0x46')];channels[_0x2a70ad[_0x4f20('0x13')]][_0x4f20('0x41')]=_0x2a70ad['appdata'];}}}catch(_0x17bce1){utils[_0x4f20('0x19')](_0x17bce1[_0x4f20('0x1a')]);}};