Built motion from commit (unavailable).|2.4.20
[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 _0xfd78=['variable','xmd-originatecalleridnum','source','value','xmd-phone','xmd-callerid','xmd-queue','xmcs-queue','lastdata','xmd-contactid','ContactId','xmd-cdrtype','outboundrouteid','sipcallid','newexten','application','set','startsWith','appdata','toLowerCase','split','substring','lastIndexOf','includes','hangup','noop','execif','gotoif','util','./utils','FAILED','NO\x20ANSWER','ANSWERED','BUSY','info','CALL|%s|%s|%s|%s|%s|%s|%s|%s','channel','type','accountcode','destination','callerid','disposition','getUserByInternal','then','UserId','CreateVoiceCallReport','request','uniqueid','newchannel','linkedid','OutgoingSpoolFailed','calleridnum','exten','context','now','DOCUMENTATION','error','newstate','isNil','channelstate','systemanswertime','transfer','answertime','calleridname','endtime','diffTime','starttime','billableseconds','stack','localtwolinkedid','transfereechannel','destinationchannel','userfield','_attended','transfertargetchannel','musiconholdstart','musiconholdstartAt','mohtime','varset'];(function(_0x3e0da5,_0x1fab3f){var _0x51632f=function(_0x488da0){while(--_0x488da0){_0x3e0da5['push'](_0x3e0da5['shift']());}};_0x51632f(++_0x1fab3f);}(_0xfd78,0x1a7));var _0x8fd7=function(_0x2f3dda,_0x30c24c){_0x2f3dda=_0x2f3dda-0x0;var _0x29c869=_0xfd78[_0x2f3dda];return _0x29c869;};'use strict';var _=require('lodash');var util=require(_0x8fd7('0x0'));var utils=require(_0x8fd7('0x1'));var dispositions=['NO\x20ANSWER','FAILED',_0x8fd7('0x2'),'NO\x20ANSWER','NO\x20ANSWER',_0x8fd7('0x3'),_0x8fd7('0x4'),_0x8fd7('0x5'),_0x8fd7('0x2'),'FAILED',_0x8fd7('0x2')];var channels={};function writeDB(_0x49e807){utils[_0x8fd7('0x6')](util['format'](_0x8fd7('0x7'),_0x49e807['uniqueid'],_0x49e807[_0x8fd7('0x8')],_0x49e807[_0x8fd7('0x9')],_0x49e807[_0x8fd7('0xa')],_0x49e807['source'],_0x49e807[_0x8fd7('0xb')],_0x49e807[_0x8fd7('0xc')],_0x49e807[_0x8fd7('0xd')]));if(_0x49e807['accountcode']){utils[_0x8fd7('0xe')](_0x49e807['accountcode'])[_0x8fd7('0xf')](function(_0x3d237b){if(_0x3d237b){_0x49e807[_0x8fd7('0x10')]=_0x3d237b['id'];}utils['request'](_0x8fd7('0x11'),_0x49e807);});}else{utils[_0x8fd7('0x12')](_0x8fd7('0x11'),_0x49e807);}if(channels[_0x49e807[_0x8fd7('0x13')]]){delete channels[_0x49e807[_0x8fd7('0x13')]];}}exports[_0x8fd7('0x14')]=function(_0x4f9fa5){try{if(_0x4f9fa5['uniqueid']==_0x4f9fa5[_0x8fd7('0x15')]&&_0x4f9fa5[_0x8fd7('0x8')]!=_0x8fd7('0x16')){channels[_0x4f9fa5[_0x8fd7('0x13')]]={'uniqueid':_0x4f9fa5[_0x8fd7('0x13')],'accountcode':_0x4f9fa5[_0x8fd7('0xa')],'source':_0x4f9fa5[_0x8fd7('0x17')],'destination':_0x4f9fa5[_0x8fd7('0x18')],'destinationcontext':_0x4f9fa5[_0x8fd7('0x19')],'channel':_0x4f9fa5['channel'],'starttime':utils[_0x8fd7('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x8fd7('0x1b')};}}catch(_0x5484f3){utils[_0x8fd7('0x1c')](_0x5484f3['stack']);}};exports[_0x8fd7('0x1d')]=function(_0x36e792){try{if(!_[_0x8fd7('0x1e')](channels[_0x36e792[_0x8fd7('0x13')]])&&_0x36e792[_0x8fd7('0x1f')]==0x6){if(_[_0x8fd7('0x1e')](channels[_0x36e792['uniqueid']][_0x8fd7('0x20')])){channels[_0x36e792[_0x8fd7('0x13')]][_0x8fd7('0x20')]=utils[_0x8fd7('0x1a')]();}}else if(!_[_0x8fd7('0x1e')](channels[_0x36e792[_0x8fd7('0x15')]])&&_0x36e792[_0x8fd7('0x1f')]==0x6&&_0x36e792[_0x8fd7('0x19')]!=_0x8fd7('0x21')){channels[_0x36e792['linkedid']][_0x8fd7('0xa')]=_0x36e792[_0x8fd7('0xa')];channels[_0x36e792[_0x8fd7('0x15')]]['destinationchannel']=_0x36e792[_0x8fd7('0x8')];if(_[_0x8fd7('0x1e')](channels[_0x36e792['linkedid']][_0x8fd7('0x22')])){channels[_0x36e792['linkedid']][_0x8fd7('0x22')]=utils[_0x8fd7('0x1a')]();}channels[_0x36e792[_0x8fd7('0x15')]][_0x8fd7('0xd')]=dispositions[_['toNumber'](_0x36e792[_0x8fd7('0x1f')])]||_0x8fd7('0x4');}}catch(_0x53f67d){utils['error'](_0x53f67d['stack']);}};exports['hangup']=function(_0x14efae){try{if(!_[_0x8fd7('0x1e')](channels[_0x14efae[_0x8fd7('0x13')]])){if(_[_0x8fd7('0x1e')](channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0xc')])){channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0xc')]=_0x14efae[_0x8fd7('0x23')]+'\x20<'+_0x14efae['calleridnum']+'>';}channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0x24')]=utils[_0x8fd7('0x1a')]();channels[_0x14efae[_0x8fd7('0x13')]]['duration']=utils[_0x8fd7('0x25')](channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0x24')],channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0x26')]);channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0x27')]=channels[_0x14efae[_0x8fd7('0x13')]]['answertime']?utils[_0x8fd7('0x25')](channels[_0x14efae['uniqueid']][_0x8fd7('0x24')],channels[_0x14efae[_0x8fd7('0x13')]][_0x8fd7('0x22')]):0x0;writeDB(channels[_0x14efae['uniqueid']]);}}catch(_0x229af9){utils[_0x8fd7('0x1c')](_0x229af9[_0x8fd7('0x28')]);}};exports['attendedtransfer']=function(_0x5d0e69){try{if(!_[_0x8fd7('0x1e')](channels[_0x5d0e69[_0x8fd7('0x29')]])){if(channels[_0x5d0e69[_0x8fd7('0x29')]]['channel']==_0x5d0e69[_0x8fd7('0x2a')]){channels[_0x5d0e69[_0x8fd7('0x29')]][_0x8fd7('0x2b')]=_0x5d0e69['secondtransfererchannel'];channels[_0x5d0e69[_0x8fd7('0x29')]][_0x8fd7('0x2c')]=_0x8fd7('0x2d');}else if(channels[_0x5d0e69[_0x8fd7('0x29')]]['channel']=_0x5d0e69[_0x8fd7('0x2e')]){channels[_0x5d0e69[_0x8fd7('0x29')]]['destinationchannel']=_0x5d0e69['origtransfererchannel'];channels[_0x5d0e69[_0x8fd7('0x29')]]['userfield']=_0x8fd7('0x2d');}}}catch(_0x27cd56){utils[_0x8fd7('0x1c')](_0x27cd56[_0x8fd7('0x28')]);}};exports[_0x8fd7('0x2f')]=function(_0x2a7b91){try{if(!_[_0x8fd7('0x1e')](channels[_0x2a7b91[_0x8fd7('0x13')]])){channels[_0x2a7b91['uniqueid']]['musiconholdstartAt']=utils[_0x8fd7('0x1a')]();}}catch(_0x2713f8){utils['error'](_0x2713f8[_0x8fd7('0x28')]);}};exports['musiconholdstop']=function(_0x25b470){try{if(!_[_0x8fd7('0x1e')](channels[_0x25b470[_0x8fd7('0x13')]])){if(!_[_0x8fd7('0x1e')](channels[_0x25b470[_0x8fd7('0x13')]][_0x8fd7('0x30')])){channels[_0x25b470[_0x8fd7('0x13')]][_0x8fd7('0x31')]+=utils['diffTime'](utils['now'](),channels[_0x25b470['uniqueid']][_0x8fd7('0x30')]);delete channels[_0x25b470[_0x8fd7('0x13')]][_0x8fd7('0x30')];}}}catch(_0x437d49){utils['error'](_0x437d49['stack']);}};exports[_0x8fd7('0x32')]=function(_0x10e3c9){try{if(!_[_0x8fd7('0x1e')](channels[_0x10e3c9[_0x8fd7('0x13')]])){if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x34')])){channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0x35')]=_0x10e3c9[_0x8fd7('0x36')];}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x37')])){channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0xb')]=_0x10e3c9['value'];channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0xc')]='\x22'+_0x10e3c9[_0x8fd7('0x36')]+'\x22\x20<'+_0x10e3c9[_0x8fd7('0x36')]+'>';}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')]['xmd-callerid-preview'])||!_[_0x8fd7('0x1e')](_0x10e3c9['variable'][_0x8fd7('0x38')])){channels[_0x10e3c9['uniqueid']]['callerid']=_0x10e3c9[_0x8fd7('0x36')];}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x39')])||!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x3a')])){channels[_0x10e3c9['uniqueid']]['lastapplication']='Queue';channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0x3b')]=_0x10e3c9[_0x8fd7('0x36')];channels[_0x10e3c9['uniqueid']]['queue']=!![];}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x3c')])){channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0x3d')]=_0x10e3c9[_0x8fd7('0x36')];}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x3e')])){channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0x9')]=_0x10e3c9['value'];}if(!_[_0x8fd7('0x1e')](_0x10e3c9['variable'][_0x8fd7('0x3f')])){channels[_0x10e3c9[_0x8fd7('0x13')]]['routeid']=_0x10e3c9[_0x8fd7('0x36')];}if(!_[_0x8fd7('0x1e')](_0x10e3c9[_0x8fd7('0x33')][_0x8fd7('0x40')])){channels[_0x10e3c9[_0x8fd7('0x13')]][_0x8fd7('0x40')]=_0x10e3c9['value'];}}}catch(_0x2dd603){utils[_0x8fd7('0x1c')](_0x2dd603[_0x8fd7('0x28')]);}};exports[_0x8fd7('0x41')]=function(_0x1f071a){try{if(!_[_0x8fd7('0x1e')](channels[_0x1f071a[_0x8fd7('0x13')]])){if(_0x1f071a[_0x8fd7('0x42')]['toLowerCase']()==_0x8fd7('0x43')&&_[_0x8fd7('0x44')](_0x1f071a[_0x8fd7('0x45')][_0x8fd7('0x46')](),'cdr')){var _0x4e8bbc=_0x1f071a[_0x8fd7('0x45')][_0x8fd7('0x47')]('=');var _0x4dce10=_0x4e8bbc[0x0][_0x8fd7('0x48')](_0x4e8bbc[0x0][_0x8fd7('0x49')]('(')+0x1,_0x4e8bbc[0x0]['lastIndexOf'](')'));var _0x5a488f=_0x4e8bbc[0x1];channels[_0x1f071a['uniqueid']][_0x4dce10]=_0x5a488f;}if(!_[_0x8fd7('0x4a')]([_0x8fd7('0x4b'),_0x8fd7('0x4c'),_0x8fd7('0x4d'),_0x8fd7('0x43'),_0x8fd7('0x4e')],_0x1f071a[_0x8fd7('0x42')]['toLowerCase']())){channels[_0x1f071a[_0x8fd7('0x13')]]['lastapplication']=_0x1f071a[_0x8fd7('0x42')];channels[_0x1f071a[_0x8fd7('0x13')]]['lastdata']=_0x1f071a[_0x8fd7('0x45')];}}}catch(_0x8d839c){utils['error'](_0x8d839c['stack']);}};