a167ab5920e96f396d501d40797b1ec099c0eb51
[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 _0xaec2=['uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','set','startsWith','appdata','cdr(routeid)','split','error','varset','[%s][dials][varset]','variable','outboundrouteid','value','isNil','[%s][dials][dialbegin]','assign','starttime','now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','answertime','lastevent','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','duration','endtime','holdtime','diffTime','billableseconds','[%s][dials][hangup]','lodash','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s'];(function(_0x46c14f,_0x1971bf){var _0x771e2b=function(_0x58eae0){while(--_0x58eae0){_0x46c14f['push'](_0x46c14f['shift']());}};_0x771e2b(++_0x1971bf);}(_0xaec2,0xc3));var _0x2aec=function(_0x88281e,_0x502f0b){_0x88281e=_0x88281e-0x0;var _0x4c8edf=_0xaec2[_0x88281e];return _0x4c8edf;};'use strict';var _=require(_0x2aec('0x0'));var util=require('util');var utils=require(_0x2aec('0x1'));var dials={};function writeDB(_0x3991db){utils[_0x2aec('0x2')](util[_0x2aec('0x3')](_0x2aec('0x4'),_0x3991db[_0x2aec('0x5')],_0x3991db[_0x2aec('0x6')],_0x3991db[_0x2aec('0x7')],_0x3991db[_0x2aec('0x8')],_0x3991db[_0x2aec('0x9')],_0x3991db[_0x2aec('0xa')]));utils[_0x2aec('0xb')](_0x2aec('0xc'),_0x3991db);delete dials[_0x3991db[_0x2aec('0x5')]];}exports[_0x2aec('0xd')]=function(_0x5e8d43){try{utils[_0x2aec('0xe')](util[_0x2aec('0x3')](_0x2aec('0xf'),_0x5e8d43['uniqueid']),_0x5e8d43);utils[_0x2aec('0x2')](util[_0x2aec('0x3')](_0x2aec('0x10'),_0x5e8d43[_0x2aec('0x5')],_0x5e8d43[_0x2aec('0x11')],_0x5e8d43['appdata']));if(_0x5e8d43['application']['toLowerCase']()==_0x2aec('0x12')&&_[_0x2aec('0x13')](_0x5e8d43[_0x2aec('0x14')]['toLowerCase'](),_0x2aec('0x15'))){var _0x590a33=_0x5e8d43[_0x2aec('0x14')][_0x2aec('0x16')]('=');dials[_0x5e8d43['uniqueid']]={'routeId':_0x590a33[0x1]};}}catch(_0x30d5dc){utils[_0x2aec('0x17')](util[_0x2aec('0x3')](_0x2aec('0xf'),_0x5e8d43[_0x2aec('0x5')]),_0x30d5dc);}};exports[_0x2aec('0x18')]=function(_0x7aee6){try{utils[_0x2aec('0xe')](util[_0x2aec('0x3')](_0x2aec('0x19'),_0x7aee6[_0x2aec('0x5')]),_0x7aee6);if(!_['isNil'](_0x7aee6[_0x2aec('0x1a')][_0x2aec('0x1b')])){utils[_0x2aec('0x2')](util[_0x2aec('0x3')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x7aee6[_0x2aec('0x5')],_0x7aee6[_0x2aec('0x1c')]));dials[_0x7aee6[_0x2aec('0x5')]]={'routeId':_0x7aee6[_0x2aec('0x1c')]};}}catch(_0x367c23){utils[_0x2aec('0x17')](util[_0x2aec('0x3')](_0x2aec('0x19'),_0x7aee6['uniqueid']),_0x367c23);}};exports['dialbegin']=function(_0x54ff30){try{if(!_[_0x2aec('0x1d')](dials[_0x54ff30[_0x2aec('0x5')]])){utils['debug'](util[_0x2aec('0x3')](_0x2aec('0x1e'),_0x54ff30[_0x2aec('0x5')]),_0x54ff30);dials[_0x54ff30['uniqueid']]=_[_0x2aec('0x1f')](dials[_0x54ff30[_0x2aec('0x5')]],_0x54ff30);dials[_0x54ff30['uniqueid']][_0x2aec('0x20')]=utils[_0x2aec('0x21')]();dials[_0x54ff30[_0x2aec('0x5')]]['lastevent']=_0x2aec('0x22');utils[_0x2aec('0x2')](util[_0x2aec('0x3')](_0x2aec('0x23'),_0x54ff30[_0x2aec('0x5')],dials[_0x54ff30[_0x2aec('0x5')]][_0x2aec('0x20')]));}}catch(_0x17d75b){utils['error'](util['format'](_0x2aec('0x1e'),_0x54ff30[_0x2aec('0x5')]),_0x17d75b);}};exports['dialend']=function(_0x3fe1e0){try{if(!_[_0x2aec('0x1d')](dials[_0x3fe1e0[_0x2aec('0x5')]])){utils[_0x2aec('0xe')](util[_0x2aec('0x3')](_0x2aec('0x24'),_0x3fe1e0[_0x2aec('0x5')]),_0x3fe1e0);dials[_0x3fe1e0['uniqueid']]['dialstatus']=_0x3fe1e0[_0x2aec('0xa')];if(_0x3fe1e0[_0x2aec('0xa')]=='ANSWER'){dials[_0x3fe1e0[_0x2aec('0x5')]]=_[_0x2aec('0x1f')](dials[_0x3fe1e0[_0x2aec('0x5')]],_0x3fe1e0);dials[_0x3fe1e0['uniqueid']][_0x2aec('0x25')]=utils[_0x2aec('0x21')]();dials[_0x3fe1e0[_0x2aec('0x5')]][_0x2aec('0x26')]='connect';utils['info'](util['format'](_0x2aec('0x27'),_0x3fe1e0[_0x2aec('0x5')],_0x3fe1e0[_0x2aec('0xa')],dials[_0x3fe1e0['uniqueid']][_0x2aec('0x25')]));}else{utils[_0x2aec('0x2')](util[_0x2aec('0x3')](_0x2aec('0x28'),_0x3fe1e0['uniqueid'],_0x3fe1e0[_0x2aec('0xa')]));}}}catch(_0x1cc04a){utils[_0x2aec('0x17')](util[_0x2aec('0x3')](_0x2aec('0x24'),_0x3fe1e0['uniqueid']),_0x1cc04a);}};exports['hangup']=function(_0x592107){try{if(!_[_0x2aec('0x1d')](dials[_0x592107[_0x2aec('0x5')]])){utils[_0x2aec('0xe')](util[_0x2aec('0x3')]('[%s][dials][hangup]',_0x592107['uniqueid']),_0x592107);utils[_0x2aec('0x2')](util[_0x2aec('0x3')](_0x2aec('0x29'),_0x592107[_0x2aec('0x5')],_0x592107[_0x2aec('0x8')],_0x592107[_0x2aec('0x2a')],_0x592107[_0x2aec('0x2b')]));dials[_0x592107[_0x2aec('0x5')]]=_[_0x2aec('0x1f')](dials[_0x592107['uniqueid']],{'endtime':utils[_0x2aec('0x21')](),'lastevent':'complete'});dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x2c')]=utils['diffTime'](dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x2d')],dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x20')]);dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x2e')]=utils[_0x2aec('0x2f')](dials[_0x592107['uniqueid']]['answertime']||dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x2d')],dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x20')]);dials[_0x592107['uniqueid']][_0x2aec('0x30')]=dials[_0x592107['uniqueid']][_0x2aec('0x25')]?utils['diffTime'](dials[_0x592107[_0x2aec('0x5')]][_0x2aec('0x2d')],dials[_0x592107['uniqueid']][_0x2aec('0x25')]):0x0;writeDB(dials[_0x592107[_0x2aec('0x5')]]);}}catch(_0x1a672e){utils['error'](util[_0x2aec('0x3')](_0x2aec('0x31'),_0x592107[_0x2aec('0x5')]),_0x1a672e);}};