53d4346d3aac027582b7dd86249fd55cb30af22f
[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 _0x8c68=['application','appdata','toLowerCase','set','startsWith','split','error','[%s][dials][varset]','isNil','outboundrouteid','info','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','assign','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','hangup','calleridnum','calleridname','cause-txt','duration','diffTime','endtime','starttime','[%s][dials][hangup]','lodash','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','connectedlinenum','dialstatus','request','CreateVoiceDialReport','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s'];(function(_0x5d7481,_0x1a2020){var _0x18cdaa=function(_0x120187){while(--_0x120187){_0x5d7481['push'](_0x5d7481['shift']());}};_0x18cdaa(++_0x1a2020);}(_0x8c68,0x1be));var _0x88c6=function(_0x2a734f,_0x44ac61){_0x2a734f=_0x2a734f-0x0;var _0x2416ab=_0x8c68[_0x2a734f];return _0x2416ab;};'use strict';var _=require(_0x88c6('0x0'));var util=require(_0x88c6('0x1'));var utils=require(_0x88c6('0x2'));var dials={};function writeDB(_0x49b003){utils['info'](util[_0x88c6('0x3')](_0x88c6('0x4'),_0x49b003[_0x88c6('0x5')],_0x49b003[_0x88c6('0x6')],_0x49b003['dialstring'],_0x49b003['calleridnum'],_0x49b003[_0x88c6('0x7')],_0x49b003[_0x88c6('0x8')]));utils[_0x88c6('0x9')](_0x88c6('0xa'),_0x49b003);delete dials[_0x49b003['uniqueid']];}exports['newexten']=function(_0x3b16ee){try{utils[_0x88c6('0xb')](util['format'](_0x88c6('0xc'),_0x3b16ee[_0x88c6('0x5')]),_0x3b16ee);utils['info'](util['format'](_0x88c6('0xd'),_0x3b16ee['uniqueid'],_0x3b16ee[_0x88c6('0xe')],_0x3b16ee[_0x88c6('0xf')]));if(_0x3b16ee[_0x88c6('0xe')][_0x88c6('0x10')]()==_0x88c6('0x11')&&_[_0x88c6('0x12')](_0x3b16ee[_0x88c6('0xf')][_0x88c6('0x10')](),'cdr(routeid)')){var _0x5be974=_0x3b16ee[_0x88c6('0xf')][_0x88c6('0x13')]('=');dials[_0x3b16ee[_0x88c6('0x5')]]={'routeId':_0x5be974[0x1]};}}catch(_0x285d2e){utils[_0x88c6('0x14')](util[_0x88c6('0x3')](_0x88c6('0xc'),_0x3b16ee['uniqueid']),_0x285d2e);}};exports['varset']=function(_0x25e235){try{utils[_0x88c6('0xb')](util[_0x88c6('0x3')](_0x88c6('0x15'),_0x25e235['uniqueid']),_0x25e235);if(!_[_0x88c6('0x16')](_0x25e235['variable'][_0x88c6('0x17')])){utils[_0x88c6('0x18')](util[_0x88c6('0x3')](_0x88c6('0x19'),_0x25e235[_0x88c6('0x5')],_0x25e235[_0x88c6('0x1a')]));dials[_0x25e235[_0x88c6('0x5')]]={'routeId':_0x25e235[_0x88c6('0x1a')]};}}catch(_0x42d01e){utils[_0x88c6('0x14')](util[_0x88c6('0x3')]('[%s][dials][varset]',_0x25e235['uniqueid']),_0x42d01e);}};exports['dialbegin']=function(_0x1c0539){try{if(!_[_0x88c6('0x16')](dials[_0x1c0539[_0x88c6('0x5')]])){utils['debug'](util[_0x88c6('0x3')](_0x88c6('0x1b'),_0x1c0539[_0x88c6('0x5')]),_0x1c0539);dials[_0x1c0539['uniqueid']]=_[_0x88c6('0x1c')](dials[_0x1c0539[_0x88c6('0x5')]],_0x1c0539);dials[_0x1c0539[_0x88c6('0x5')]]['starttime']=utils[_0x88c6('0x1d')]();dials[_0x1c0539[_0x88c6('0x5')]][_0x88c6('0x1e')]=_0x88c6('0x1f');utils[_0x88c6('0x18')](util['format'](_0x88c6('0x20'),_0x1c0539[_0x88c6('0x5')],dials[_0x1c0539['uniqueid']]['starttime']));}}catch(_0x32e76f){utils['error'](util['format']('[%s][dials][dialbegin]',_0x1c0539['uniqueid']),_0x32e76f);}};exports['dialend']=function(_0x22a61a){try{if(!_[_0x88c6('0x16')](dials[_0x22a61a[_0x88c6('0x5')]])){utils[_0x88c6('0xb')](util['format'](_0x88c6('0x21'),_0x22a61a[_0x88c6('0x5')]),_0x22a61a);dials[_0x22a61a[_0x88c6('0x5')]][_0x88c6('0x8')]=_0x22a61a[_0x88c6('0x8')];if(_0x22a61a[_0x88c6('0x8')]=='ANSWER'){dials[_0x22a61a[_0x88c6('0x5')]]=_[_0x88c6('0x1c')](dials[_0x22a61a[_0x88c6('0x5')]],_0x22a61a);dials[_0x22a61a['uniqueid']]['answertime']=utils[_0x88c6('0x1d')]();dials[_0x22a61a[_0x88c6('0x5')]][_0x88c6('0x1e')]=_0x88c6('0x22');utils[_0x88c6('0x18')](util[_0x88c6('0x3')](_0x88c6('0x23'),_0x22a61a[_0x88c6('0x5')],_0x22a61a[_0x88c6('0x8')],dials[_0x22a61a[_0x88c6('0x5')]][_0x88c6('0x24')]));}else{utils[_0x88c6('0x18')](util[_0x88c6('0x3')]('[%s][dials][dialend]\x20dialstatus:%s',_0x22a61a[_0x88c6('0x5')],_0x22a61a[_0x88c6('0x8')]));}}}catch(_0x5b8f72){utils['error'](util['format'](_0x88c6('0x21'),_0x22a61a[_0x88c6('0x5')]),_0x5b8f72);}};exports[_0x88c6('0x25')]=function(_0x5e1c74){try{if(!_[_0x88c6('0x16')](dials[_0x5e1c74['uniqueid']])){utils['debug'](util[_0x88c6('0x3')]('[%s][dials][hangup]',_0x5e1c74['uniqueid']),_0x5e1c74);utils[_0x88c6('0x18')](util[_0x88c6('0x3')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x5e1c74['uniqueid'],_0x5e1c74[_0x88c6('0x26')],_0x5e1c74[_0x88c6('0x27')],_0x5e1c74[_0x88c6('0x28')]));dials[_0x5e1c74[_0x88c6('0x5')]]=_[_0x88c6('0x1c')](dials[_0x5e1c74[_0x88c6('0x5')]],{'endtime':utils[_0x88c6('0x1d')](),'lastevent':'complete'});dials[_0x5e1c74[_0x88c6('0x5')]][_0x88c6('0x29')]=utils[_0x88c6('0x2a')](dials[_0x5e1c74[_0x88c6('0x5')]][_0x88c6('0x2b')],dials[_0x5e1c74[_0x88c6('0x5')]][_0x88c6('0x2c')]);dials[_0x5e1c74['uniqueid']]['holdtime']=utils['diffTime'](dials[_0x5e1c74[_0x88c6('0x5')]][_0x88c6('0x24')]||dials[_0x5e1c74['uniqueid']]['endtime'],dials[_0x5e1c74['uniqueid']]['starttime']);dials[_0x5e1c74['uniqueid']]['billableseconds']=dials[_0x5e1c74[_0x88c6('0x5')]][_0x88c6('0x24')]?utils[_0x88c6('0x2a')](dials[_0x5e1c74[_0x88c6('0x5')]]['endtime'],dials[_0x5e1c74['uniqueid']][_0x88c6('0x24')]):0x0;writeDB(dials[_0x5e1c74[_0x88c6('0x5')]]);}}catch(_0x2e8bd6){utils['error'](util[_0x88c6('0x3')](_0x88c6('0x2d'),_0x5e1c74['uniqueid']),_0x2e8bd6);}};