Built motion from commit 3a7e82ea.|2.6.29
[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 _0x9553=['[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','holdtime','diffTime','endtime','billableseconds','lodash','util','format','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','newexten','debug','[%s][dials][newexten]','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','error','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','called','dialend','[%s][dials][dialend]','ANSWER','answertime','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','hangup'];(function(_0x3cdd0b,_0x544bb7){var _0x497153=function(_0x3b26ea){while(--_0x3b26ea){_0x3cdd0b['push'](_0x3cdd0b['shift']());}};_0x497153(++_0x544bb7);}(_0x9553,0x16f));var _0x3955=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x9553[_0x53ccf2];return _0x5a2964;};'use strict';var _=require(_0x3955('0x0'));var util=require(_0x3955('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x448e7f){utils['info'](util[_0x3955('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x448e7f['uniqueid'],_0x448e7f[_0x3955('0x3')],_0x448e7f[_0x3955('0x4')],_0x448e7f[_0x3955('0x5')],_0x448e7f[_0x3955('0x6')],_0x448e7f[_0x3955('0x7')]));utils[_0x3955('0x8')](_0x3955('0x9'),_0x448e7f);delete dials[_0x448e7f[_0x3955('0xa')]];}exports[_0x3955('0xb')]=function(_0x3bdba6){try{utils[_0x3955('0xc')](util[_0x3955('0x2')](_0x3955('0xd'),_0x3bdba6[_0x3955('0xa')]),_0x3bdba6);utils[_0x3955('0xe')](util['format'](_0x3955('0xf'),_0x3bdba6[_0x3955('0xa')],_0x3bdba6[_0x3955('0x10')],_0x3bdba6[_0x3955('0x11')]));if(_0x3bdba6[_0x3955('0x10')][_0x3955('0x12')]()==_0x3955('0x13')&&_[_0x3955('0x14')](_0x3bdba6[_0x3955('0x11')][_0x3955('0x12')](),'cdr(routeid)')){var _0x47ebe4=_0x3bdba6[_0x3955('0x11')]['split']('=');dials[_0x3bdba6[_0x3955('0xa')]]={'routeId':_0x47ebe4[0x1]};}}catch(_0x1d703c){utils['error'](util[_0x3955('0x2')]('[%s][dials][newexten]',_0x3bdba6[_0x3955('0xa')]),_0x1d703c);}};exports[_0x3955('0x15')]=function(_0x79518a){try{utils[_0x3955('0xc')](util[_0x3955('0x2')](_0x3955('0x16'),_0x79518a[_0x3955('0xa')]),_0x79518a);if(!_[_0x3955('0x17')](_0x79518a[_0x3955('0x18')][_0x3955('0x19')])){utils[_0x3955('0xe')](util['format'](_0x3955('0x1a'),_0x79518a[_0x3955('0xa')],_0x79518a[_0x3955('0x1b')]));dials[_0x79518a[_0x3955('0xa')]]={'routeId':_0x79518a['value']};}}catch(_0x30fb34){utils[_0x3955('0x1c')](util[_0x3955('0x2')]('[%s][dials][varset]',_0x79518a[_0x3955('0xa')]),_0x30fb34);}};exports[_0x3955('0x1d')]=function(_0x51f584){try{if(!_[_0x3955('0x17')](dials[_0x51f584['uniqueid']])){utils[_0x3955('0xc')](util[_0x3955('0x2')](_0x3955('0x1e'),_0x51f584['uniqueid']),_0x51f584);dials[_0x51f584[_0x3955('0xa')]]=_[_0x3955('0x1f')](dials[_0x51f584['uniqueid']],_0x51f584);dials[_0x51f584[_0x3955('0xa')]][_0x3955('0x20')]=utils[_0x3955('0x21')]();dials[_0x51f584[_0x3955('0xa')]]['lastevent']=_0x3955('0x22');utils['info'](util[_0x3955('0x2')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x51f584[_0x3955('0xa')],dials[_0x51f584[_0x3955('0xa')]]['starttime']));}}catch(_0x217c67){utils[_0x3955('0x1c')](util[_0x3955('0x2')](_0x3955('0x1e'),_0x51f584['uniqueid']),_0x217c67);}};exports[_0x3955('0x23')]=function(_0x33bc06){try{if(!_['isNil'](dials[_0x33bc06[_0x3955('0xa')]])){utils[_0x3955('0xc')](util[_0x3955('0x2')](_0x3955('0x24'),_0x33bc06[_0x3955('0xa')]),_0x33bc06);dials[_0x33bc06[_0x3955('0xa')]]['dialstatus']=_0x33bc06[_0x3955('0x7')];if(_0x33bc06['dialstatus']==_0x3955('0x25')){dials[_0x33bc06[_0x3955('0xa')]]=_['assign'](dials[_0x33bc06[_0x3955('0xa')]],_0x33bc06);dials[_0x33bc06[_0x3955('0xa')]][_0x3955('0x26')]=utils[_0x3955('0x21')]();dials[_0x33bc06[_0x3955('0xa')]]['lastevent']='connect';utils[_0x3955('0xe')](util[_0x3955('0x2')](_0x3955('0x27'),_0x33bc06[_0x3955('0xa')],_0x33bc06[_0x3955('0x7')],dials[_0x33bc06[_0x3955('0xa')]][_0x3955('0x26')]));}else{utils[_0x3955('0xe')](util[_0x3955('0x2')]('[%s][dials][dialend]\x20dialstatus:%s',_0x33bc06['uniqueid'],_0x33bc06[_0x3955('0x7')]));}}}catch(_0x339be1){utils['error'](util['format'](_0x3955('0x24'),_0x33bc06[_0x3955('0xa')]),_0x339be1);}};exports[_0x3955('0x28')]=function(_0xe0498e){try{if(!_[_0x3955('0x17')](dials[_0xe0498e[_0x3955('0xa')]])){utils['debug'](util[_0x3955('0x2')](_0x3955('0x29'),_0xe0498e[_0x3955('0xa')]),_0xe0498e);utils[_0x3955('0xe')](util[_0x3955('0x2')](_0x3955('0x2a'),_0xe0498e[_0x3955('0xa')],_0xe0498e[_0x3955('0x5')],_0xe0498e[_0x3955('0x2b')],_0xe0498e[_0x3955('0x2c')]));dials[_0xe0498e[_0x3955('0xa')]]=_[_0x3955('0x1f')](dials[_0xe0498e[_0x3955('0xa')]],{'endtime':utils[_0x3955('0x21')](),'lastevent':_0x3955('0x2d')});dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x2e')]=utils['diffTime'](dials[_0xe0498e['uniqueid']]['endtime'],dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x20')]);dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x2f')]=utils[_0x3955('0x30')](dials[_0xe0498e[_0x3955('0xa')]]['answertime']||dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x31')],dials[_0xe0498e['uniqueid']][_0x3955('0x20')]);dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x32')]=dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x26')]?utils[_0x3955('0x30')](dials[_0xe0498e[_0x3955('0xa')]][_0x3955('0x31')],dials[_0xe0498e[_0x3955('0xa')]]['answertime']):0x0;writeDB(dials[_0xe0498e[_0x3955('0xa')]]);}}catch(_0x236435){utils[_0x3955('0x1c')](util['format'](_0x3955('0x29'),_0xe0498e[_0x3955('0xa')]),_0x236435);}};