a4855c8c07c1f526ce950a4a8eb069f4045e0c9c
[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 _0x6326=['calleridnum','connectedlinenum','newexten','debug','format','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','startsWith','appdata','cdr(routeid)','error','[%s][dials][varset]','isNil','variable','outboundrouteid','value','dialbegin','assign','starttime','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','dialstatus','ANSWER','answertime','now','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','billableseconds','lodash','util','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring'];(function(_0x3894aa,_0x5f0eb3){var _0x2f247b=function(_0x5e5d65){while(--_0x5e5d65){_0x3894aa['push'](_0x3894aa['shift']());}};_0x2f247b(++_0x5f0eb3);}(_0x6326,0x1dd));var _0x6632=function(_0x51e6ff,_0x807849){_0x51e6ff=_0x51e6ff-0x0;var _0x134eb5=_0x6326[_0x51e6ff];return _0x134eb5;};'use strict';var _=require(_0x6632('0x0'));var util=require(_0x6632('0x1'));var utils=require(_0x6632('0x2'));var dials={};function writeDB(_0x2883da){utils[_0x6632('0x3')](util['format'](_0x6632('0x4'),_0x2883da[_0x6632('0x5')],_0x2883da['channel'],_0x2883da[_0x6632('0x6')],_0x2883da[_0x6632('0x7')],_0x2883da[_0x6632('0x8')],_0x2883da['dialstatus']));utils['request']('CreateVoiceDialReport',_0x2883da);delete dials[_0x2883da[_0x6632('0x5')]];}exports[_0x6632('0x9')]=function(_0x2bd64a){try{utils[_0x6632('0xa')](util[_0x6632('0xb')](_0x6632('0xc'),_0x2bd64a['uniqueid']),_0x2bd64a);utils['info'](util['format'](_0x6632('0xd'),_0x2bd64a[_0x6632('0x5')],_0x2bd64a[_0x6632('0xe')],_0x2bd64a['appdata']));if(_0x2bd64a[_0x6632('0xe')][_0x6632('0xf')]()=='set'&&_[_0x6632('0x10')](_0x2bd64a[_0x6632('0x11')][_0x6632('0xf')](),_0x6632('0x12'))){var _0x5ef2b7=_0x2bd64a['appdata']['split']('=');dials[_0x2bd64a[_0x6632('0x5')]]={'routeId':_0x5ef2b7[0x1]};}}catch(_0xd22215){utils[_0x6632('0x13')](util[_0x6632('0xb')](_0x6632('0xc'),_0x2bd64a['uniqueid']),_0xd22215);}};exports['varset']=function(_0x4e38f8){try{utils['debug'](util[_0x6632('0xb')](_0x6632('0x14'),_0x4e38f8['uniqueid']),_0x4e38f8);if(!_[_0x6632('0x15')](_0x4e38f8[_0x6632('0x16')][_0x6632('0x17')])){utils[_0x6632('0x3')](util[_0x6632('0xb')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x4e38f8[_0x6632('0x5')],_0x4e38f8[_0x6632('0x18')]));dials[_0x4e38f8['uniqueid']]={'routeId':_0x4e38f8[_0x6632('0x18')]};}}catch(_0x20e253){utils[_0x6632('0x13')](util[_0x6632('0xb')](_0x6632('0x14'),_0x4e38f8[_0x6632('0x5')]),_0x20e253);}};exports[_0x6632('0x19')]=function(_0x50ed69){try{if(!_[_0x6632('0x15')](dials[_0x50ed69['uniqueid']])){utils[_0x6632('0xa')](util[_0x6632('0xb')]('[%s][dials][dialbegin]',_0x50ed69['uniqueid']),_0x50ed69);dials[_0x50ed69['uniqueid']]=_[_0x6632('0x1a')](dials[_0x50ed69[_0x6632('0x5')]],_0x50ed69);dials[_0x50ed69[_0x6632('0x5')]][_0x6632('0x1b')]=utils['now']();dials[_0x50ed69[_0x6632('0x5')]]['lastevent']='called';utils[_0x6632('0x3')](util[_0x6632('0xb')](_0x6632('0x1c'),_0x50ed69[_0x6632('0x5')],dials[_0x50ed69[_0x6632('0x5')]][_0x6632('0x1b')]));}}catch(_0x169e09){utils[_0x6632('0x13')](util[_0x6632('0xb')]('[%s][dials][dialbegin]',_0x50ed69[_0x6632('0x5')]),_0x169e09);}};exports['dialend']=function(_0x4fb73b){try{if(!_[_0x6632('0x15')](dials[_0x4fb73b[_0x6632('0x5')]])){utils['debug'](util[_0x6632('0xb')](_0x6632('0x1d'),_0x4fb73b[_0x6632('0x5')]),_0x4fb73b);dials[_0x4fb73b[_0x6632('0x5')]][_0x6632('0x1e')]=_0x4fb73b[_0x6632('0x1e')];if(_0x4fb73b['dialstatus']==_0x6632('0x1f')){dials[_0x4fb73b[_0x6632('0x5')]]=_[_0x6632('0x1a')](dials[_0x4fb73b[_0x6632('0x5')]],_0x4fb73b);dials[_0x4fb73b[_0x6632('0x5')]][_0x6632('0x20')]=utils[_0x6632('0x21')]();dials[_0x4fb73b[_0x6632('0x5')]]['lastevent']='connect';utils[_0x6632('0x3')](util[_0x6632('0xb')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x4fb73b[_0x6632('0x5')],_0x4fb73b['dialstatus'],dials[_0x4fb73b['uniqueid']][_0x6632('0x20')]));}else{utils['info'](util[_0x6632('0xb')](_0x6632('0x22'),_0x4fb73b[_0x6632('0x5')],_0x4fb73b[_0x6632('0x1e')]));}}}catch(_0x3edb92){utils['error'](util[_0x6632('0xb')](_0x6632('0x1d'),_0x4fb73b[_0x6632('0x5')]),_0x3edb92);}};exports['hangup']=function(_0x594213){try{if(!_[_0x6632('0x15')](dials[_0x594213[_0x6632('0x5')]])){utils[_0x6632('0xa')](util[_0x6632('0xb')](_0x6632('0x23'),_0x594213[_0x6632('0x5')]),_0x594213);utils[_0x6632('0x3')](util[_0x6632('0xb')](_0x6632('0x24'),_0x594213['uniqueid'],_0x594213[_0x6632('0x7')],_0x594213[_0x6632('0x25')],_0x594213[_0x6632('0x26')]));dials[_0x594213[_0x6632('0x5')]]=_[_0x6632('0x1a')](dials[_0x594213[_0x6632('0x5')]],{'endtime':utils[_0x6632('0x21')](),'lastevent':_0x6632('0x27')});dials[_0x594213[_0x6632('0x5')]][_0x6632('0x28')]=utils[_0x6632('0x29')](dials[_0x594213[_0x6632('0x5')]][_0x6632('0x2a')],dials[_0x594213[_0x6632('0x5')]][_0x6632('0x1b')]);dials[_0x594213[_0x6632('0x5')]]['holdtime']=utils[_0x6632('0x29')](dials[_0x594213[_0x6632('0x5')]][_0x6632('0x20')]||dials[_0x594213[_0x6632('0x5')]][_0x6632('0x2a')],dials[_0x594213[_0x6632('0x5')]][_0x6632('0x1b')]);dials[_0x594213['uniqueid']][_0x6632('0x2b')]=dials[_0x594213['uniqueid']][_0x6632('0x20')]?utils[_0x6632('0x29')](dials[_0x594213[_0x6632('0x5')]][_0x6632('0x2a')],dials[_0x594213[_0x6632('0x5')]][_0x6632('0x20')]):0x0;writeDB(dials[_0x594213['uniqueid']]);}}catch(_0x4efc53){utils[_0x6632('0x13')](util[_0x6632('0xb')](_0x6632('0x23'),_0x594213['uniqueid']),_0x4efc53);}};