Built motion from commit 5b761a7b.|2.5.36
[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 _0x98e6=['substring','lastIndexOf','includes','hangup','gotoif','lastapplication','[%s][calls][newexten]','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','lastevent','accountcode','then','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','info','exten','calleridnum','now','DOCUMENTATION','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','channelstate','transfer','context','answertime','disposition','toNumber','error','[%s][calls][hangup]','callerid','calleridname','endtime','diffTime','starttime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','localtwolinkedid','destinationchannel','userfield','_attended','transfertargetchannel','origtransfereruniqueid','origtransfererchannel','musiconholdstart','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','value','variable','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','application','toLowerCase','set','startsWith','appdata','cdr','split'];(function(_0x1f1283,_0x1bea3b){var _0x205041=function(_0x3f8fe4){while(--_0x3f8fe4){_0x1f1283['push'](_0x1f1283['shift']());}};_0x205041(++_0x1bea3b);}(_0x98e6,0x6c));var _0x698e=function(_0x1da61a,_0x13a481){_0x1da61a=_0x1da61a-0x0;var _0x180b7d=_0x98e6[_0x1da61a];return _0x180b7d;};'use strict';var _=require('lodash');var util=require(_0x698e('0x0'));var utils=require(_0x698e('0x1'));var transfers=require('./transfers.controller');var dispositions=[_0x698e('0x2'),_0x698e('0x3'),_0x698e('0x3'),_0x698e('0x2'),_0x698e('0x2'),_0x698e('0x2'),_0x698e('0x4'),_0x698e('0x5'),_0x698e('0x3'),_0x698e('0x3'),_0x698e('0x3')];var channels={};function writeDB(_0x494061){var _0x22e7c6;if(transfers[_0x698e('0x6')][_0x494061[_0x698e('0x7')]]){_0x22e7c6=_0x494061[_0x698e('0x7')];_0x494061[_0x698e('0x7')]=transfers[_0x698e('0x6')][_0x494061['uniqueid']][_0x698e('0x8')];}utils['info'](util[_0x698e('0x9')](_0x698e('0xa'),_0x494061[_0x698e('0x7')],_0x494061[_0x698e('0xb')],_0x494061[_0x698e('0xc')],_0x494061['membername'],_0x494061[_0x698e('0xd')],_0x494061['calleridnum'],_0x494061['connectedlinenum'],_0x494061[_0x698e('0xe')]));if(_0x494061[_0x698e('0xf')]){utils['getUserByInternal'](_0x494061[_0x698e('0xf')])[_0x698e('0x10')](function(_0x6bdf1e){if(_0x6bdf1e){_0x494061[_0x698e('0x11')]=_0x6bdf1e['id'];}utils[_0x698e('0x12')]('CreateVoiceCallReport',_0x494061);});}else{utils[_0x698e('0x12')](_0x698e('0x13'),_0x494061);}if(channels[_0x494061[_0x698e('0x7')]]){delete channels[_0x494061['uniqueid']];}else if(_0x22e7c6&&channels[_0x22e7c6]){delete transfers['blinds'][_0x22e7c6];delete channels[_0x22e7c6];}}exports['newchannel']=function(_0x422033){try{utils[_0x698e('0x14')](util['format'](_0x698e('0x15'),_0x422033[_0x698e('0x7')]),_0x422033);if(_0x422033[_0x698e('0x7')]==_0x422033[_0x698e('0x16')]&&_0x422033[_0x698e('0xb')]!=_0x698e('0x17')){utils[_0x698e('0x18')](util['format']('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x422033[_0x698e('0x7')],_0x422033['context'],_0x422033[_0x698e('0x19')]));channels[_0x422033[_0x698e('0x7')]]={'uniqueid':_0x422033[_0x698e('0x7')],'accountcode':_0x422033['accountcode'],'source':_0x422033[_0x698e('0x1a')],'destination':_0x422033[_0x698e('0x19')],'destinationcontext':_0x422033['context'],'channel':_0x422033[_0x698e('0xb')],'starttime':utils[_0x698e('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x698e('0x2'),'amaflags':_0x698e('0x1c')};}}catch(_0x41d62e){utils['error'](util[_0x698e('0x9')](_0x698e('0x15'),_0x422033[_0x698e('0x7')]),_0x41d62e);}};exports[_0x698e('0x1d')]=function(_0x136f73){try{utils['debug'](util['format'](_0x698e('0x1e'),_0x136f73['uniqueid']),_0x136f73);if(!_[_0x698e('0x1f')](channels[_0x136f73['uniqueid']])&&_0x136f73['channelstate']==0x6){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x20'),_0x136f73['uniqueid'],_0x136f73['context'],_0x136f73[_0x698e('0xb')]));if(_[_0x698e('0x1f')](channels[_0x136f73[_0x698e('0x7')]]['systemanswertime'])){channels[_0x136f73[_0x698e('0x7')]]['systemanswertime']=utils[_0x698e('0x1b')]();}}else if(!_['isNil'](channels[_0x136f73[_0x698e('0x16')]])&&_0x136f73[_0x698e('0x21')]==0x6&&_0x136f73['context']!=_0x698e('0x22')){utils[_0x698e('0x18')](util[_0x698e('0x9')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x136f73[_0x698e('0x7')],_0x136f73[_0x698e('0x16')],_0x136f73[_0x698e('0x23')],_0x136f73[_0x698e('0xb')]));channels[_0x136f73[_0x698e('0x16')]][_0x698e('0xf')]=_0x136f73[_0x698e('0xf')];channels[_0x136f73[_0x698e('0x16')]]['destinationchannel']=_0x136f73[_0x698e('0xb')];if(_['isNil'](channels[_0x136f73[_0x698e('0x16')]][_0x698e('0x24')])){channels[_0x136f73[_0x698e('0x16')]]['answertime']=utils['now']();}channels[_0x136f73[_0x698e('0x16')]][_0x698e('0x25')]=dispositions[_[_0x698e('0x26')](_0x136f73[_0x698e('0x21')])]||_0x698e('0x4');}}catch(_0x3b57){utils[_0x698e('0x27')](util[_0x698e('0x9')](_0x698e('0x1e'),_0x136f73[_0x698e('0x7')]),_0x3b57);}};exports['hangup']=function(_0x535bbc){try{if(!_[_0x698e('0x1f')](channels[_0x535bbc[_0x698e('0x7')]])){utils[_0x698e('0x14')](util[_0x698e('0x9')](_0x698e('0x28'),_0x535bbc[_0x698e('0x7')]),_0x535bbc);if(_[_0x698e('0x1f')](channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x29')])){channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x29')]=_0x535bbc[_0x698e('0x2a')]+'\x20<'+_0x535bbc['calleridnum']+'>';}utils['info'](util[_0x698e('0x9')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x535bbc[_0x698e('0x7')],channels[_0x535bbc['uniqueid']]['callerid'],_0x535bbc['cause-txt']));channels[_0x535bbc['uniqueid']][_0x698e('0x2b')]=utils[_0x698e('0x1b')]();channels[_0x535bbc[_0x698e('0x7')]]['duration']=utils[_0x698e('0x2c')](channels[_0x535bbc[_0x698e('0x7')]]['endtime'],channels[_0x535bbc['uniqueid']][_0x698e('0x2d')]);channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x2e')]=channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x24')]?utils['diffTime'](channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x2b')],channels[_0x535bbc[_0x698e('0x7')]][_0x698e('0x24')]):0x0;writeDB(channels[_0x535bbc['uniqueid']]);}}catch(_0x56efea){utils[_0x698e('0x27')](util[_0x698e('0x9')](_0x698e('0x28'),_0x535bbc[_0x698e('0x7')]),_0x56efea);}};exports[_0x698e('0x2f')]=function(_0x340c39){try{if(!_[_0x698e('0x1f')](channels[_0x340c39['localtwolinkedid']])){utils['debug'](util[_0x698e('0x9')](_0x698e('0x30'),_0x340c39['origtransfereruniqueid']),_0x340c39);if(channels[_0x340c39['localtwolinkedid']][_0x698e('0xb')]==_0x340c39[_0x698e('0x31')]){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x32'),_0x340c39['origtransfereruniqueid'],_0x340c39['localtwolinkedid'],_0x340c39[_0x698e('0x33')]));channels[_0x340c39[_0x698e('0x34')]][_0x698e('0x35')]=_0x340c39[_0x698e('0x33')];channels[_0x340c39['localtwolinkedid']][_0x698e('0x36')]=_0x698e('0x37');}else if(channels[_0x340c39['localtwolinkedid']]['channel']=_0x340c39[_0x698e('0x38')]){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x32'),_0x340c39[_0x698e('0x39')],_0x340c39['localtwolinkedid'],_0x340c39[_0x698e('0x3a')]));channels[_0x340c39[_0x698e('0x34')]][_0x698e('0x35')]=_0x340c39[_0x698e('0x3a')];channels[_0x340c39[_0x698e('0x34')]][_0x698e('0x36')]=_0x698e('0x37');}}}catch(_0x2d0942){utils['error'](util[_0x698e('0x9')](_0x698e('0x30'),_0x340c39[_0x698e('0x39')]),_0x2d0942);}};exports[_0x698e('0x3b')]=function(_0x35fca4){try{if(!_['isNil'](channels[_0x35fca4['uniqueid']])){utils[_0x698e('0x14')](util['format']('[%s][calls][musiconholdstart]',_0x35fca4['uniqueid']),_0x35fca4);channels[_0x35fca4[_0x698e('0x7')]][_0x698e('0x3c')]=utils[_0x698e('0x1b')]();utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x3d'),_0x35fca4[_0x698e('0x7')],channels[_0x35fca4[_0x698e('0x7')]][_0x698e('0x3c')]));}}catch(_0x28f7c9){utils[_0x698e('0x27')](util['format'](_0x698e('0x3e'),_0x35fca4['uniqueid']),_0x28f7c9);}};exports['musiconholdstop']=function(_0x54cbbb){try{if(!_['isNil'](channels[_0x54cbbb['uniqueid']])){utils['debug'](util[_0x698e('0x9')]('[%s][calls][musiconholdstop]',_0x54cbbb[_0x698e('0x7')]),_0x54cbbb);if(!_[_0x698e('0x1f')](channels[_0x54cbbb[_0x698e('0x7')]][_0x698e('0x3c')])){channels[_0x54cbbb[_0x698e('0x7')]][_0x698e('0x3f')]+=utils[_0x698e('0x2c')](utils[_0x698e('0x1b')](),channels[_0x54cbbb[_0x698e('0x7')]][_0x698e('0x3c')]);utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x40'),_0x54cbbb['uniqueid'],channels[_0x54cbbb[_0x698e('0x7')]][_0x698e('0x3f')]));delete channels[_0x54cbbb[_0x698e('0x7')]][_0x698e('0x3c')];}}}catch(_0x207e6f){utils['error'](util[_0x698e('0x9')]('[%s][calls][musiconholdstop]',_0x54cbbb[_0x698e('0x7')]),_0x207e6f);}};exports[_0x698e('0x41')]=function(_0x50464d){try{if(!_[_0x698e('0x1f')](channels[_0x50464d[_0x698e('0x7')]])){utils[_0x698e('0x14')](util[_0x698e('0x9')](_0x698e('0x42'),_0x50464d[_0x698e('0x7')]),_0x50464d);if(!_[_0x698e('0x1f')](_0x50464d['variable']['xmd-originatecalleridnum'])){utils[_0x698e('0x18')](util[_0x698e('0x9')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x50464d[_0x698e('0x7')],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]]['source']=_0x50464d[_0x698e('0x43')];}if(!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')][_0x698e('0x45')])){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x46'),_0x50464d[_0x698e('0x7')],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x47')]=_0x50464d[_0x698e('0x43')];channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x29')]='\x22'+_0x50464d[_0x698e('0x43')]+'\x22\x20<'+_0x50464d[_0x698e('0x43')]+'>';}if(!_['isNil'](_0x50464d[_0x698e('0x44')]['xmd-callerid-preview'])||!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')]['xmd-callerid'])){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x48'),_0x50464d[_0x698e('0x7')],!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')][_0x698e('0x49')])?_0x698e('0x49'):'xmd-callerid',_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x29')]=_0x50464d[_0x698e('0x43')];}if(!_[_0x698e('0x1f')](_0x50464d['variable'][_0x698e('0x4a')])||!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')]['xmcs-queue'])){utils[_0x698e('0x18')](util[_0x698e('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x50464d[_0x698e('0x7')],!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')]['xmd-queue'])?'xmd-queue':_0x698e('0x4b'),_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]]['lastapplication']=_0x698e('0x4c');channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x4d')]=_0x50464d[_0x698e('0x43')];channels[_0x50464d['uniqueid']][_0x698e('0xc')]=!![];}if(!_['isNil'](_0x50464d[_0x698e('0x44')][_0x698e('0x4e')])){utils[_0x698e('0x18')](util['format'](_0x698e('0x4f'),_0x50464d[_0x698e('0x7')],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x50')]=_0x50464d[_0x698e('0x43')];}if(!_['isNil'](_0x50464d[_0x698e('0x44')][_0x698e('0x51')])){utils[_0x698e('0x18')](util['format'](_0x698e('0x52'),_0x50464d[_0x698e('0x7')],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]]['type']=_0x50464d[_0x698e('0x43')];}if(!_[_0x698e('0x1f')](_0x50464d['variable'][_0x698e('0x53')])){utils[_0x698e('0x18')](util[_0x698e('0x9')](_0x698e('0x54'),_0x50464d[_0x698e('0x7')],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]]['routeid']=_0x50464d['value'];}if(!_[_0x698e('0x1f')](_0x50464d[_0x698e('0x44')][_0x698e('0x55')])){utils['info'](util[_0x698e('0x9')](_0x698e('0x56'),_0x50464d['uniqueid'],_0x50464d[_0x698e('0x43')]));channels[_0x50464d[_0x698e('0x7')]][_0x698e('0x55')]=_0x50464d[_0x698e('0x43')];}}}catch(_0x3cbbe6){utils[_0x698e('0x27')](util[_0x698e('0x9')](_0x698e('0x42'),_0x50464d[_0x698e('0x7')]),_0x3cbbe6);}};exports['newexten']=function(_0x119b71){try{if(!_[_0x698e('0x1f')](channels[_0x119b71['uniqueid']])){utils[_0x698e('0x14')](util[_0x698e('0x9')]('[%s][calls][newexten]',_0x119b71['uniqueid']),_0x119b71);utils[_0x698e('0x18')](util[_0x698e('0x9')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x119b71[_0x698e('0x7')],_0x119b71[_0x698e('0x57')],_0x119b71['appdata']));if(_0x119b71[_0x698e('0x57')][_0x698e('0x58')]()==_0x698e('0x59')&&_[_0x698e('0x5a')](_0x119b71[_0x698e('0x5b')][_0x698e('0x58')](),_0x698e('0x5c'))){var _0x2805f9=_0x119b71[_0x698e('0x5b')][_0x698e('0x5d')]('=');var _0x1643d5=_0x2805f9[0x0][_0x698e('0x5e')](_0x2805f9[0x0][_0x698e('0x5f')]('(')+0x1,_0x2805f9[0x0][_0x698e('0x5f')](')'));var _0x103c41=_0x2805f9[0x1];channels[_0x119b71['uniqueid']][_0x1643d5]=_0x103c41;}if(!_[_0x698e('0x60')]([_0x698e('0x61'),'noop','execif',_0x698e('0x59'),_0x698e('0x62')],_0x119b71[_0x698e('0x57')][_0x698e('0x58')]())){channels[_0x119b71[_0x698e('0x7')]][_0x698e('0x63')]=_0x119b71[_0x698e('0x57')];channels[_0x119b71[_0x698e('0x7')]][_0x698e('0x4d')]=_0x119b71[_0x698e('0x5b')];}}}catch(_0x59b2f7){utils[_0x698e('0x27')](util[_0x698e('0x9')](_0x698e('0x64'),_0x119b71[_0x698e('0x7')]),_0x59b2f7);}};