Built motion from commit f74363e9.|2.6.34
[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 _0x003e=['dialstring','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','cdr(routeid)','split','error','varset','[%s][dials][varset]','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','format','[%s][dials][dialbegin]','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','isNil','dialstatus','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][dialend]','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','cause-txt','duration','diffTime','holdtime','lodash','util','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel'];(function(_0x40edc9,_0x249eec){var _0x574593=function(_0x52a325){while(--_0x52a325){_0x40edc9['push'](_0x40edc9['shift']());}};_0x574593(++_0x249eec);}(_0x003e,0x125));var _0xe003=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0x003e[_0x599f41];return _0x2e4d58;};'use strict';var _=require(_0xe003('0x0'));var util=require(_0xe003('0x1'));var utils=require(_0xe003('0x2'));var dials={};function writeDB(_0x3edb88){utils[_0xe003('0x3')](util['format'](_0xe003('0x4'),_0x3edb88[_0xe003('0x5')],_0x3edb88[_0xe003('0x6')],_0x3edb88[_0xe003('0x7')],_0x3edb88['calleridnum'],_0x3edb88['connectedlinenum'],_0x3edb88['dialstatus']));utils[_0xe003('0x8')](_0xe003('0x9'),_0x3edb88);delete dials[_0x3edb88[_0xe003('0x5')]];}exports[_0xe003('0xa')]=function(_0x181c7e){try{utils[_0xe003('0xb')](util['format'](_0xe003('0xc'),_0x181c7e[_0xe003('0x5')]),_0x181c7e);utils[_0xe003('0x3')](util['format'](_0xe003('0xd'),_0x181c7e[_0xe003('0x5')],_0x181c7e[_0xe003('0xe')],_0x181c7e['appdata']));if(_0x181c7e[_0xe003('0xe')][_0xe003('0xf')]()==_0xe003('0x10')&&_[_0xe003('0x11')](_0x181c7e['appdata'][_0xe003('0xf')](),_0xe003('0x12'))){var _0x45eb7b=_0x181c7e['appdata'][_0xe003('0x13')]('=');dials[_0x181c7e[_0xe003('0x5')]]={'routeId':_0x45eb7b[0x1]};}}catch(_0xb546d0){utils[_0xe003('0x14')](util['format'](_0xe003('0xc'),_0x181c7e[_0xe003('0x5')]),_0xb546d0);}};exports[_0xe003('0x15')]=function(_0x501e8e){try{utils[_0xe003('0xb')](util['format'](_0xe003('0x16'),_0x501e8e['uniqueid']),_0x501e8e);if(!_['isNil'](_0x501e8e['variable'][_0xe003('0x17')])){utils['info'](util['format'](_0xe003('0x18'),_0x501e8e['uniqueid'],_0x501e8e[_0xe003('0x19')]));dials[_0x501e8e[_0xe003('0x5')]]={'routeId':_0x501e8e[_0xe003('0x19')]};}}catch(_0x59e81e){utils['error'](util['format']('[%s][dials][varset]',_0x501e8e[_0xe003('0x5')]),_0x59e81e);}};exports['dialbegin']=function(_0x58de11){try{if(!_['isNil'](dials[_0x58de11[_0xe003('0x5')]])){utils[_0xe003('0xb')](util[_0xe003('0x1a')](_0xe003('0x1b'),_0x58de11['uniqueid']),_0x58de11);dials[_0x58de11[_0xe003('0x5')]]=_[_0xe003('0x1c')](dials[_0x58de11[_0xe003('0x5')]],_0x58de11);dials[_0x58de11[_0xe003('0x5')]][_0xe003('0x1d')]=utils[_0xe003('0x1e')]();dials[_0x58de11[_0xe003('0x5')]][_0xe003('0x1f')]=_0xe003('0x20');utils[_0xe003('0x3')](util[_0xe003('0x1a')](_0xe003('0x21'),_0x58de11[_0xe003('0x5')],dials[_0x58de11['uniqueid']]['starttime']));}}catch(_0x4e487c){utils[_0xe003('0x14')](util[_0xe003('0x1a')](_0xe003('0x1b'),_0x58de11[_0xe003('0x5')]),_0x4e487c);}};exports[_0xe003('0x22')]=function(_0x48fa1c){try{if(!_[_0xe003('0x23')](dials[_0x48fa1c['uniqueid']])){utils['debug'](util['format']('[%s][dials][dialend]',_0x48fa1c[_0xe003('0x5')]),_0x48fa1c);dials[_0x48fa1c[_0xe003('0x5')]][_0xe003('0x24')]=_0x48fa1c[_0xe003('0x24')];if(_0x48fa1c[_0xe003('0x24')]=='ANSWER'){dials[_0x48fa1c['uniqueid']]=_[_0xe003('0x1c')](dials[_0x48fa1c[_0xe003('0x5')]],_0x48fa1c);dials[_0x48fa1c[_0xe003('0x5')]][_0xe003('0x25')]=utils[_0xe003('0x1e')]();dials[_0x48fa1c['uniqueid']][_0xe003('0x1f')]=_0xe003('0x26');utils[_0xe003('0x3')](util[_0xe003('0x1a')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x48fa1c['uniqueid'],_0x48fa1c['dialstatus'],dials[_0x48fa1c['uniqueid']][_0xe003('0x25')]));}else{utils[_0xe003('0x3')](util['format'](_0xe003('0x27'),_0x48fa1c[_0xe003('0x5')],_0x48fa1c[_0xe003('0x24')]));}}}catch(_0x21bdc2){utils[_0xe003('0x14')](util['format'](_0xe003('0x28'),_0x48fa1c[_0xe003('0x5')]),_0x21bdc2);}};exports[_0xe003('0x29')]=function(_0x4817ac){try{if(!_[_0xe003('0x23')](dials[_0x4817ac[_0xe003('0x5')]])){utils['debug'](util['format'](_0xe003('0x2a'),_0x4817ac[_0xe003('0x5')]),_0x4817ac);utils[_0xe003('0x3')](util[_0xe003('0x1a')](_0xe003('0x2b'),_0x4817ac[_0xe003('0x5')],_0x4817ac[_0xe003('0x2c')],_0x4817ac[_0xe003('0x2d')],_0x4817ac[_0xe003('0x2e')]));dials[_0x4817ac['uniqueid']]=_[_0xe003('0x1c')](dials[_0x4817ac[_0xe003('0x5')]],{'endtime':utils[_0xe003('0x1e')](),'lastevent':'complete'});dials[_0x4817ac[_0xe003('0x5')]][_0xe003('0x2f')]=utils[_0xe003('0x30')](dials[_0x4817ac['uniqueid']]['endtime'],dials[_0x4817ac[_0xe003('0x5')]]['starttime']);dials[_0x4817ac['uniqueid']][_0xe003('0x31')]=utils[_0xe003('0x30')](dials[_0x4817ac[_0xe003('0x5')]][_0xe003('0x25')]||dials[_0x4817ac[_0xe003('0x5')]]['endtime'],dials[_0x4817ac[_0xe003('0x5')]][_0xe003('0x1d')]);dials[_0x4817ac[_0xe003('0x5')]]['billableseconds']=dials[_0x4817ac['uniqueid']][_0xe003('0x25')]?utils[_0xe003('0x30')](dials[_0x4817ac[_0xe003('0x5')]]['endtime'],dials[_0x4817ac[_0xe003('0x5')]][_0xe003('0x25')]):0x0;writeDB(dials[_0x4817ac['uniqueid']]);}}catch(_0x2165f3){utils[_0xe003('0x14')](util['format'](_0xe003('0x2a'),_0x4817ac['uniqueid']),_0x2165f3);}};