34c2565a0b97680bd9ff1d6d17afbf570fe17fc3
[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 _0xc173=['request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','error','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','assign','starttime','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','ANSWER','now','lastevent','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','cause-txt','complete','diffTime','billableseconds','[%s][dials][hangup]','./utils','info','format','uniqueid','channel','dialstring','dialstatus'];(function(_0x57d895,_0x19c3cd){var _0x445702=function(_0x1fa774){while(--_0x1fa774){_0x57d895['push'](_0x57d895['shift']());}};_0x445702(++_0x19c3cd);}(_0xc173,0x1d9));var _0x3c17=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xc173[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x3c17('0x0'));var dials={};function writeDB(_0x1aea6c){utils[_0x3c17('0x1')](util[_0x3c17('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x1aea6c[_0x3c17('0x3')],_0x1aea6c[_0x3c17('0x4')],_0x1aea6c[_0x3c17('0x5')],_0x1aea6c['calleridnum'],_0x1aea6c['connectedlinenum'],_0x1aea6c[_0x3c17('0x6')]));utils[_0x3c17('0x7')](_0x3c17('0x8'),_0x1aea6c);delete dials[_0x1aea6c[_0x3c17('0x3')]];}exports[_0x3c17('0x9')]=function(_0x418a46){try{utils[_0x3c17('0xa')](util[_0x3c17('0x2')](_0x3c17('0xb'),_0x418a46[_0x3c17('0x3')]),_0x418a46);utils[_0x3c17('0x1')](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x418a46[_0x3c17('0x3')],_0x418a46[_0x3c17('0xc')],_0x418a46[_0x3c17('0xd')]));if(_0x418a46['application'][_0x3c17('0xe')]()==_0x3c17('0xf')&&_[_0x3c17('0x10')](_0x418a46[_0x3c17('0xd')][_0x3c17('0xe')](),_0x3c17('0x11'))){var _0x173235=_0x418a46[_0x3c17('0xd')][_0x3c17('0x12')]('=');dials[_0x418a46[_0x3c17('0x3')]]={'routeId':_0x173235[0x1]};}}catch(_0x3fff1f){utils[_0x3c17('0x13')](util['format'](_0x3c17('0xb'),_0x418a46[_0x3c17('0x3')]),_0x3fff1f);}};exports[_0x3c17('0x14')]=function(_0x55ed73){try{utils[_0x3c17('0xa')](util[_0x3c17('0x2')](_0x3c17('0x15'),_0x55ed73['uniqueid']),_0x55ed73);if(!_[_0x3c17('0x16')](_0x55ed73[_0x3c17('0x17')][_0x3c17('0x18')])){utils[_0x3c17('0x1')](util['format'](_0x3c17('0x19'),_0x55ed73[_0x3c17('0x3')],_0x55ed73[_0x3c17('0x1a')]));dials[_0x55ed73[_0x3c17('0x3')]]={'routeId':_0x55ed73[_0x3c17('0x1a')]};}}catch(_0x30703a){utils['error'](util[_0x3c17('0x2')](_0x3c17('0x15'),_0x55ed73[_0x3c17('0x3')]),_0x30703a);}};exports['dialbegin']=function(_0x266e3e){try{if(!_[_0x3c17('0x16')](dials[_0x266e3e['uniqueid']])){utils[_0x3c17('0xa')](util[_0x3c17('0x2')](_0x3c17('0x1b'),_0x266e3e[_0x3c17('0x3')]),_0x266e3e);dials[_0x266e3e[_0x3c17('0x3')]]=_[_0x3c17('0x1c')](dials[_0x266e3e[_0x3c17('0x3')]],_0x266e3e);dials[_0x266e3e[_0x3c17('0x3')]][_0x3c17('0x1d')]=utils['now']();dials[_0x266e3e[_0x3c17('0x3')]]['lastevent']=_0x3c17('0x1e');utils['info'](util['format'](_0x3c17('0x1f'),_0x266e3e[_0x3c17('0x3')],dials[_0x266e3e[_0x3c17('0x3')]][_0x3c17('0x1d')]));}}catch(_0x2da5e5){utils[_0x3c17('0x13')](util[_0x3c17('0x2')](_0x3c17('0x1b'),_0x266e3e[_0x3c17('0x3')]),_0x2da5e5);}};exports['dialend']=function(_0x5118f8){try{if(!_[_0x3c17('0x16')](dials[_0x5118f8['uniqueid']])){utils[_0x3c17('0xa')](util[_0x3c17('0x2')](_0x3c17('0x20'),_0x5118f8[_0x3c17('0x3')]),_0x5118f8);dials[_0x5118f8[_0x3c17('0x3')]]['dialstatus']=_0x5118f8[_0x3c17('0x6')];if(_0x5118f8[_0x3c17('0x6')]==_0x3c17('0x21')){dials[_0x5118f8['uniqueid']]=_['assign'](dials[_0x5118f8[_0x3c17('0x3')]],_0x5118f8);dials[_0x5118f8[_0x3c17('0x3')]]['answertime']=utils[_0x3c17('0x22')]();dials[_0x5118f8[_0x3c17('0x3')]][_0x3c17('0x23')]=_0x3c17('0x24');utils[_0x3c17('0x1')](util[_0x3c17('0x2')](_0x3c17('0x25'),_0x5118f8['uniqueid'],_0x5118f8[_0x3c17('0x6')],dials[_0x5118f8[_0x3c17('0x3')]][_0x3c17('0x26')]));}else{utils[_0x3c17('0x1')](util[_0x3c17('0x2')](_0x3c17('0x27'),_0x5118f8[_0x3c17('0x3')],_0x5118f8[_0x3c17('0x6')]));}}}catch(_0x31ec16){utils[_0x3c17('0x13')](util[_0x3c17('0x2')]('[%s][dials][dialend]',_0x5118f8[_0x3c17('0x3')]),_0x31ec16);}};exports[_0x3c17('0x28')]=function(_0x3ea118){try{if(!_[_0x3c17('0x16')](dials[_0x3ea118[_0x3c17('0x3')]])){utils[_0x3c17('0xa')](util[_0x3c17('0x2')]('[%s][dials][hangup]',_0x3ea118[_0x3c17('0x3')]),_0x3ea118);utils[_0x3c17('0x1')](util[_0x3c17('0x2')](_0x3c17('0x29'),_0x3ea118[_0x3c17('0x3')],_0x3ea118[_0x3c17('0x2a')],_0x3ea118['calleridname'],_0x3ea118[_0x3c17('0x2b')]));dials[_0x3ea118[_0x3c17('0x3')]]=_[_0x3c17('0x1c')](dials[_0x3ea118[_0x3c17('0x3')]],{'endtime':utils[_0x3c17('0x22')](),'lastevent':_0x3c17('0x2c')});dials[_0x3ea118[_0x3c17('0x3')]]['duration']=utils[_0x3c17('0x2d')](dials[_0x3ea118[_0x3c17('0x3')]]['endtime'],dials[_0x3ea118[_0x3c17('0x3')]][_0x3c17('0x1d')]);dials[_0x3ea118[_0x3c17('0x3')]]['holdtime']=utils['diffTime'](dials[_0x3ea118[_0x3c17('0x3')]][_0x3c17('0x26')]||dials[_0x3ea118[_0x3c17('0x3')]]['endtime'],dials[_0x3ea118[_0x3c17('0x3')]][_0x3c17('0x1d')]);dials[_0x3ea118[_0x3c17('0x3')]][_0x3c17('0x2e')]=dials[_0x3ea118['uniqueid']]['answertime']?utils[_0x3c17('0x2d')](dials[_0x3ea118['uniqueid']]['endtime'],dials[_0x3ea118[_0x3c17('0x3')]][_0x3c17('0x26')]):0x0;writeDB(dials[_0x3ea118[_0x3c17('0x3')]]);}}catch(_0x123e74){utils[_0x3c17('0x13')](util[_0x3c17('0x2')](_0x3c17('0x2f'),_0x3ea118[_0x3c17('0x3')]),_0x123e74);}};