a2d62dbe809c8a528965a2886de947784f3990ef
[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 _0x4125=['appdata','split','substring','lastIndexOf','includes','noop','application','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','channel','type','accountcode','source','destination','callerid','disposition','getUserByInternal','UserId','request','CreateVoiceCallReport','uniqueid','linkedid','OutgoingSpoolFailed','exten','context','now','DOCUMENTATION','error','stack','systemanswertime','channelstate','destinationchannel','isNil','answertime','toNumber','hangup','calleridname','calleridnum','endtime','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','musiconholdstartAt','musiconholdstop','mohtime','varset','variable','xmd-originatecalleridnum','value','xmd-phone','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','ContactId','outboundrouteid','sipcallid','toLowerCase','set','startsWith'];(function(_0x40b039,_0x4b4b33){var _0x1e53cf=function(_0x10ebad){while(--_0x10ebad){_0x40b039['push'](_0x40b039['shift']());}};_0x1e53cf(++_0x4b4b33);}(_0x4125,0x17e));var _0x5412=function(_0x34a318,_0x565dc7){_0x34a318=_0x34a318-0x0;var _0x49f361=_0x4125[_0x34a318];return _0x49f361;};'use strict';var _=require('lodash');var util=require(_0x5412('0x0'));var utils=require(_0x5412('0x1'));var dispositions=[_0x5412('0x2'),_0x5412('0x3'),_0x5412('0x3'),_0x5412('0x2'),'NO\x20ANSWER',_0x5412('0x2'),_0x5412('0x4'),'BUSY',_0x5412('0x3'),'FAILED',_0x5412('0x3')];var channels={};function writeDB(_0x25f7ac){utils[_0x5412('0x5')](util['format']('CALL|%s|%s|%s|%s|%s|%s|%s|%s',_0x25f7ac['uniqueid'],_0x25f7ac[_0x5412('0x6')],_0x25f7ac[_0x5412('0x7')],_0x25f7ac[_0x5412('0x8')],_0x25f7ac[_0x5412('0x9')],_0x25f7ac[_0x5412('0xa')],_0x25f7ac[_0x5412('0xb')],_0x25f7ac[_0x5412('0xc')]));if(_0x25f7ac[_0x5412('0x8')]){utils[_0x5412('0xd')](_0x25f7ac['accountcode'])['then'](function(_0x4ffed5){if(_0x4ffed5){_0x25f7ac[_0x5412('0xe')]=_0x4ffed5['id'];}utils[_0x5412('0xf')](_0x5412('0x10'),_0x25f7ac);});}else{utils[_0x5412('0xf')](_0x5412('0x10'),_0x25f7ac);}if(channels[_0x25f7ac['uniqueid']]){delete channels[_0x25f7ac[_0x5412('0x11')]];}}exports['newchannel']=function(_0x937915){try{if(_0x937915[_0x5412('0x11')]==_0x937915[_0x5412('0x12')]&&_0x937915[_0x5412('0x6')]!=_0x5412('0x13')){channels[_0x937915['uniqueid']]={'uniqueid':_0x937915[_0x5412('0x11')],'accountcode':_0x937915[_0x5412('0x8')],'source':_0x937915['calleridnum'],'destination':_0x937915[_0x5412('0x14')],'destinationcontext':_0x937915[_0x5412('0x15')],'channel':_0x937915[_0x5412('0x6')],'starttime':utils[_0x5412('0x16')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x5412('0x2'),'amaflags':_0x5412('0x17')};}}catch(_0x1ee706){utils[_0x5412('0x18')](_0x1ee706[_0x5412('0x19')]);}};exports['newstate']=function(_0xc6e9d1){try{if(!_['isNil'](channels[_0xc6e9d1[_0x5412('0x11')]])&&_0xc6e9d1['channelstate']==0x6){if(_['isNil'](channels[_0xc6e9d1[_0x5412('0x11')]][_0x5412('0x1a')])){channels[_0xc6e9d1[_0x5412('0x11')]][_0x5412('0x1a')]=utils[_0x5412('0x16')]();}}else if(!_['isNil'](channels[_0xc6e9d1[_0x5412('0x12')]])&&_0xc6e9d1[_0x5412('0x1b')]==0x6&&_0xc6e9d1['context']!='transfer'){channels[_0xc6e9d1[_0x5412('0x12')]][_0x5412('0x8')]=_0xc6e9d1[_0x5412('0x8')];channels[_0xc6e9d1[_0x5412('0x12')]][_0x5412('0x1c')]=_0xc6e9d1[_0x5412('0x6')];if(_[_0x5412('0x1d')](channels[_0xc6e9d1[_0x5412('0x12')]][_0x5412('0x1e')])){channels[_0xc6e9d1[_0x5412('0x12')]][_0x5412('0x1e')]=utils[_0x5412('0x16')]();}channels[_0xc6e9d1['linkedid']][_0x5412('0xc')]=dispositions[_[_0x5412('0x1f')](_0xc6e9d1[_0x5412('0x1b')])]||'ANSWERED';}}catch(_0x1d2416){utils['error'](_0x1d2416[_0x5412('0x19')]);}};exports[_0x5412('0x20')]=function(_0x4d41ac){try{if(!_[_0x5412('0x1d')](channels[_0x4d41ac[_0x5412('0x11')]])){if(_[_0x5412('0x1d')](channels[_0x4d41ac[_0x5412('0x11')]]['callerid'])){channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0xb')]=_0x4d41ac[_0x5412('0x21')]+'\x20<'+_0x4d41ac[_0x5412('0x22')]+'>';}channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0x23')]=utils[_0x5412('0x16')]();channels[_0x4d41ac[_0x5412('0x11')]]['duration']=utils[_0x5412('0x24')](channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0x23')],channels[_0x4d41ac['uniqueid']][_0x5412('0x25')]);channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0x26')]=channels[_0x4d41ac['uniqueid']]['answertime']?utils[_0x5412('0x24')](channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0x23')],channels[_0x4d41ac[_0x5412('0x11')]][_0x5412('0x1e')]):0x0;writeDB(channels[_0x4d41ac[_0x5412('0x11')]]);}}catch(_0x583296){utils['error'](_0x583296[_0x5412('0x19')]);}};exports[_0x5412('0x27')]=function(_0x5ba260){try{if(!_['isNil'](channels[_0x5ba260[_0x5412('0x28')]])){if(channels[_0x5ba260[_0x5412('0x28')]][_0x5412('0x6')]==_0x5ba260[_0x5412('0x29')]){channels[_0x5ba260[_0x5412('0x28')]][_0x5412('0x1c')]=_0x5ba260[_0x5412('0x2a')];channels[_0x5ba260['localtwolinkedid']][_0x5412('0x2b')]=_0x5412('0x2c');}else if(channels[_0x5ba260['localtwolinkedid']][_0x5412('0x6')]=_0x5ba260['transfertargetchannel']){channels[_0x5ba260['localtwolinkedid']]['destinationchannel']=_0x5ba260['origtransfererchannel'];channels[_0x5ba260[_0x5412('0x28')]][_0x5412('0x2b')]=_0x5412('0x2c');}}}catch(_0x43e2ff){utils[_0x5412('0x18')](_0x43e2ff[_0x5412('0x19')]);}};exports['musiconholdstart']=function(_0x564d7e){try{if(!_[_0x5412('0x1d')](channels[_0x564d7e[_0x5412('0x11')]])){channels[_0x564d7e['uniqueid']][_0x5412('0x2d')]=utils[_0x5412('0x16')]();}}catch(_0xa3b6e6){utils[_0x5412('0x18')](_0xa3b6e6[_0x5412('0x19')]);}};exports[_0x5412('0x2e')]=function(_0x4fb45a){try{if(!_['isNil'](channels[_0x4fb45a[_0x5412('0x11')]])){if(!_[_0x5412('0x1d')](channels[_0x4fb45a[_0x5412('0x11')]][_0x5412('0x2d')])){channels[_0x4fb45a[_0x5412('0x11')]][_0x5412('0x2f')]+=utils[_0x5412('0x24')](utils['now'](),channels[_0x4fb45a[_0x5412('0x11')]][_0x5412('0x2d')]);delete channels[_0x4fb45a[_0x5412('0x11')]][_0x5412('0x2d')];}}}catch(_0x329f53){utils[_0x5412('0x18')](_0x329f53[_0x5412('0x19')]);}};exports[_0x5412('0x30')]=function(_0x1d58f9){try{if(!_['isNil'](channels[_0x1d58f9[_0x5412('0x11')]])){if(!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')][_0x5412('0x32')])){channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0x9')]=_0x1d58f9[_0x5412('0x33')];}if(!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')][_0x5412('0x34')])){channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0xa')]=_0x1d58f9[_0x5412('0x33')];channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0xb')]='\x22'+_0x1d58f9[_0x5412('0x33')]+_0x5412('0x35')+_0x1d58f9['value']+'>';}if(!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')][_0x5412('0x36')])||!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')][_0x5412('0x37')])){channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0xb')]=_0x1d58f9[_0x5412('0x33')];}if(!_[_0x5412('0x1d')](_0x1d58f9['variable'][_0x5412('0x38')])||!_['isNil'](_0x1d58f9[_0x5412('0x31')][_0x5412('0x39')])){channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0x3a')]=_0x5412('0x3b');channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0x3c')]=_0x1d58f9[_0x5412('0x33')];channels[_0x1d58f9['uniqueid']]['queue']=!![];}if(!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')][_0x5412('0x3d')])){channels[_0x1d58f9[_0x5412('0x11')]][_0x5412('0x3e')]=_0x1d58f9['value'];}if(!_[_0x5412('0x1d')](_0x1d58f9[_0x5412('0x31')]['xmd-cdrtype'])){channels[_0x1d58f9['uniqueid']][_0x5412('0x7')]=_0x1d58f9[_0x5412('0x33')];}if(!_['isNil'](_0x1d58f9[_0x5412('0x31')][_0x5412('0x3f')])){channels[_0x1d58f9['uniqueid']]['routeid']=_0x1d58f9['value'];}if(!_[_0x5412('0x1d')](_0x1d58f9['variable'][_0x5412('0x40')])){channels[_0x1d58f9[_0x5412('0x11')]]['sipcallid']=_0x1d58f9[_0x5412('0x33')];}}}catch(_0x934849){utils[_0x5412('0x18')](_0x934849[_0x5412('0x19')]);}};exports['newexten']=function(_0x53c4f6){try{if(!_['isNil'](channels[_0x53c4f6[_0x5412('0x11')]])){if(_0x53c4f6['application'][_0x5412('0x41')]()==_0x5412('0x42')&&_[_0x5412('0x43')](_0x53c4f6[_0x5412('0x44')][_0x5412('0x41')](),'cdr')){var _0x4a92f5=_0x53c4f6[_0x5412('0x44')][_0x5412('0x45')]('=');var _0xadc44a=_0x4a92f5[0x0][_0x5412('0x46')](_0x4a92f5[0x0][_0x5412('0x47')]('(')+0x1,_0x4a92f5[0x0][_0x5412('0x47')](')'));var _0x10c45f=_0x4a92f5[0x1];channels[_0x53c4f6[_0x5412('0x11')]][_0xadc44a]=_0x10c45f;}if(!_[_0x5412('0x48')](['hangup',_0x5412('0x49'),'execif','set','gotoif'],_0x53c4f6['application']['toLowerCase']())){channels[_0x53c4f6['uniqueid']]['lastapplication']=_0x53c4f6[_0x5412('0x4a')];channels[_0x53c4f6['uniqueid']][_0x5412('0x3c')]=_0x53c4f6['appdata'];}}}catch(_0x22680c){utils[_0x5412('0x18')](_0x22680c[_0x5412('0x19')]);}};