344bb2f106cf3f06a66fdb8d6201f3c82c6fe43f
[motion2.git] / server / services / xdr / dials.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 _0x0f21=['dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','cdr(routeid)','split','error','[%s][dials][newexten]','varset','[%s][dials][varset]','isNil','variable','info','value','[%s][dials][dialbegin]','assign','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','dialend','[%s][dials][dialend]','ANSWER','connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','endtime','diffTime','util','./utils','format','uniqueid','channel','dialstring','calleridnum'];(function(_0x432fca,_0xb0b1b5){var _0x3adba4=function(_0x5e3ae4){while(--_0x5e3ae4){_0x432fca['push'](_0x432fca['shift']());}};_0x3adba4(++_0xb0b1b5);}(_0x0f21,0x1b2));var _0x10f2=function(_0x2c87cb,_0x13fea8){_0x2c87cb=_0x2c87cb-0x0;var _0x396ee9=_0x0f21[_0x2c87cb];return _0x396ee9;};'use strict';var _=require('lodash');var util=require(_0x10f2('0x0'));var utils=require(_0x10f2('0x1'));var dials={};function writeDB(_0x2a417e){utils['info'](util[_0x10f2('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x2a417e[_0x10f2('0x3')],_0x2a417e[_0x10f2('0x4')],_0x2a417e[_0x10f2('0x5')],_0x2a417e[_0x10f2('0x6')],_0x2a417e['connectedlinenum'],_0x2a417e[_0x10f2('0x7')]));utils[_0x10f2('0x8')](_0x10f2('0x9'),_0x2a417e);delete dials[_0x2a417e['uniqueid']];}exports[_0x10f2('0xa')]=function(_0x2b4752){try{utils[_0x10f2('0xb')](util[_0x10f2('0x2')]('[%s][dials][newexten]',_0x2b4752['uniqueid']),_0x2b4752);utils['info'](util[_0x10f2('0x2')](_0x10f2('0xc'),_0x2b4752[_0x10f2('0x3')],_0x2b4752['application'],_0x2b4752[_0x10f2('0xd')]));if(_0x2b4752[_0x10f2('0xe')][_0x10f2('0xf')]()==_0x10f2('0x10')&&_['startsWith'](_0x2b4752['appdata'][_0x10f2('0xf')](),_0x10f2('0x11'))){var _0x2a54bf=_0x2b4752[_0x10f2('0xd')][_0x10f2('0x12')]('=');dials[_0x2b4752[_0x10f2('0x3')]]={'routeId':_0x2a54bf[0x1]};}}catch(_0x3a2dd6){utils[_0x10f2('0x13')](util[_0x10f2('0x2')](_0x10f2('0x14'),_0x2b4752[_0x10f2('0x3')]),_0x3a2dd6);}};exports[_0x10f2('0x15')]=function(_0x22cca6){try{utils[_0x10f2('0xb')](util[_0x10f2('0x2')](_0x10f2('0x16'),_0x22cca6['uniqueid']),_0x22cca6);if(!_[_0x10f2('0x17')](_0x22cca6[_0x10f2('0x18')]['outboundrouteid'])){utils[_0x10f2('0x19')](util[_0x10f2('0x2')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x22cca6[_0x10f2('0x3')],_0x22cca6['value']));dials[_0x22cca6['uniqueid']]={'routeId':_0x22cca6[_0x10f2('0x1a')]};}}catch(_0x42a1cd){utils[_0x10f2('0x13')](util[_0x10f2('0x2')](_0x10f2('0x16'),_0x22cca6[_0x10f2('0x3')]),_0x42a1cd);}};exports['dialbegin']=function(_0x8517fc){try{if(!_[_0x10f2('0x17')](dials[_0x8517fc[_0x10f2('0x3')]])){utils[_0x10f2('0xb')](util[_0x10f2('0x2')](_0x10f2('0x1b'),_0x8517fc[_0x10f2('0x3')]),_0x8517fc);dials[_0x8517fc[_0x10f2('0x3')]]=_[_0x10f2('0x1c')](dials[_0x8517fc[_0x10f2('0x3')]],_0x8517fc);dials[_0x8517fc[_0x10f2('0x3')]]['starttime']=utils[_0x10f2('0x1d')]();dials[_0x8517fc['uniqueid']][_0x10f2('0x1e')]=_0x10f2('0x1f');utils['info'](util[_0x10f2('0x2')](_0x10f2('0x20'),_0x8517fc[_0x10f2('0x3')],dials[_0x8517fc[_0x10f2('0x3')]][_0x10f2('0x21')]));}}catch(_0x1afa9f){utils[_0x10f2('0x13')](util['format']('[%s][dials][dialbegin]',_0x8517fc[_0x10f2('0x3')]),_0x1afa9f);}};exports[_0x10f2('0x22')]=function(_0x32b018){try{if(!_['isNil'](dials[_0x32b018[_0x10f2('0x3')]])){utils['debug'](util[_0x10f2('0x2')](_0x10f2('0x23'),_0x32b018[_0x10f2('0x3')]),_0x32b018);dials[_0x32b018[_0x10f2('0x3')]][_0x10f2('0x7')]=_0x32b018[_0x10f2('0x7')];if(_0x32b018[_0x10f2('0x7')]==_0x10f2('0x24')){dials[_0x32b018[_0x10f2('0x3')]]=_[_0x10f2('0x1c')](dials[_0x32b018[_0x10f2('0x3')]],_0x32b018);dials[_0x32b018[_0x10f2('0x3')]]['answertime']=utils['now']();dials[_0x32b018['uniqueid']][_0x10f2('0x1e')]=_0x10f2('0x25');utils[_0x10f2('0x19')](util[_0x10f2('0x2')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x32b018[_0x10f2('0x3')],_0x32b018[_0x10f2('0x7')],dials[_0x32b018[_0x10f2('0x3')]][_0x10f2('0x26')]));}else{utils['info'](util[_0x10f2('0x2')](_0x10f2('0x27'),_0x32b018[_0x10f2('0x3')],_0x32b018[_0x10f2('0x7')]));}}}catch(_0x3f725e){utils['error'](util[_0x10f2('0x2')](_0x10f2('0x23'),_0x32b018[_0x10f2('0x3')]),_0x3f725e);}};exports[_0x10f2('0x28')]=function(_0x5aeb0d){try{if(!_[_0x10f2('0x17')](dials[_0x5aeb0d[_0x10f2('0x3')]])){utils[_0x10f2('0xb')](util[_0x10f2('0x2')](_0x10f2('0x29'),_0x5aeb0d[_0x10f2('0x3')]),_0x5aeb0d);utils[_0x10f2('0x19')](util[_0x10f2('0x2')](_0x10f2('0x2a'),_0x5aeb0d[_0x10f2('0x3')],_0x5aeb0d[_0x10f2('0x6')],_0x5aeb0d[_0x10f2('0x2b')],_0x5aeb0d[_0x10f2('0x2c')]));dials[_0x5aeb0d[_0x10f2('0x3')]]=_[_0x10f2('0x1c')](dials[_0x5aeb0d[_0x10f2('0x3')]],{'endtime':utils['now'](),'lastevent':_0x10f2('0x2d')});dials[_0x5aeb0d[_0x10f2('0x3')]][_0x10f2('0x2e')]=utils['diffTime'](dials[_0x5aeb0d[_0x10f2('0x3')]][_0x10f2('0x2f')],dials[_0x5aeb0d[_0x10f2('0x3')]]['starttime']);dials[_0x5aeb0d[_0x10f2('0x3')]]['holdtime']=utils[_0x10f2('0x30')](dials[_0x5aeb0d[_0x10f2('0x3')]][_0x10f2('0x26')]||dials[_0x5aeb0d[_0x10f2('0x3')]]['endtime'],dials[_0x5aeb0d[_0x10f2('0x3')]][_0x10f2('0x21')]);dials[_0x5aeb0d[_0x10f2('0x3')]]['billableseconds']=dials[_0x5aeb0d[_0x10f2('0x3')]]['answertime']?utils[_0x10f2('0x30')](dials[_0x5aeb0d[_0x10f2('0x3')]][_0x10f2('0x2f')],dials[_0x5aeb0d[_0x10f2('0x3')]]['answertime']):0x0;writeDB(dials[_0x5aeb0d[_0x10f2('0x3')]]);}}catch(_0x90daea){utils[_0x10f2('0x13')](util[_0x10f2('0x2')](_0x10f2('0x29'),_0x5aeb0d[_0x10f2('0x3')]),_0x90daea);}};