4ee43ca63cce48ad247bde29f65b494758eaa801
[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 _0xe781=['[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','cause-txt','complete','duration','holdtime','diffTime','endtime','billableseconds','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','connectedlinenum','dialstatus','request','CreateVoiceDialReport','debug','[%s][dials][newexten]','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','error','isNil','variable','outboundrouteid','value','[%s][dials][varset]','dialbegin','[%s][dials][dialbegin]','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','dialend','[%s][dials][dialend]','ANSWER','assign','now','connect'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0xe781,0x181));var _0x1e78=function(_0x48fc6e,_0x30da20){_0x48fc6e=_0x48fc6e-0x0;var _0x21f5fb=_0xe781[_0x48fc6e];return _0x21f5fb;};'use strict';var _=require(_0x1e78('0x0'));var util=require(_0x1e78('0x1'));var utils=require(_0x1e78('0x2'));var dials={};function writeDB(_0x2040ac){utils[_0x1e78('0x3')](util[_0x1e78('0x4')](_0x1e78('0x5'),_0x2040ac[_0x1e78('0x6')],_0x2040ac[_0x1e78('0x7')],_0x2040ac[_0x1e78('0x8')],_0x2040ac['calleridnum'],_0x2040ac[_0x1e78('0x9')],_0x2040ac[_0x1e78('0xa')]));utils[_0x1e78('0xb')](_0x1e78('0xc'),_0x2040ac);delete dials[_0x2040ac[_0x1e78('0x6')]];}exports['newexten']=function(_0x4a075d){try{utils[_0x1e78('0xd')](util[_0x1e78('0x4')](_0x1e78('0xe'),_0x4a075d[_0x1e78('0x6')]),_0x4a075d);utils[_0x1e78('0x3')](util[_0x1e78('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x4a075d[_0x1e78('0x6')],_0x4a075d[_0x1e78('0xf')],_0x4a075d[_0x1e78('0x10')]));if(_0x4a075d[_0x1e78('0xf')][_0x1e78('0x11')]()==_0x1e78('0x12')&&_[_0x1e78('0x13')](_0x4a075d['appdata'][_0x1e78('0x11')](),_0x1e78('0x14'))){var _0x438e3f=_0x4a075d[_0x1e78('0x10')]['split']('=');dials[_0x4a075d[_0x1e78('0x6')]]={'routeId':_0x438e3f[0x1]};}}catch(_0x4c60aa){utils[_0x1e78('0x15')](util[_0x1e78('0x4')](_0x1e78('0xe'),_0x4a075d[_0x1e78('0x6')]),_0x4c60aa);}};exports['varset']=function(_0x184e00){try{utils['debug'](util[_0x1e78('0x4')]('[%s][dials][varset]',_0x184e00[_0x1e78('0x6')]),_0x184e00);if(!_[_0x1e78('0x16')](_0x184e00[_0x1e78('0x17')][_0x1e78('0x18')])){utils[_0x1e78('0x3')](util[_0x1e78('0x4')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x184e00[_0x1e78('0x6')],_0x184e00['value']));dials[_0x184e00[_0x1e78('0x6')]]={'routeId':_0x184e00[_0x1e78('0x19')]};}}catch(_0x4877d9){utils[_0x1e78('0x15')](util[_0x1e78('0x4')](_0x1e78('0x1a'),_0x184e00[_0x1e78('0x6')]),_0x4877d9);}};exports[_0x1e78('0x1b')]=function(_0x2de005){try{if(!_[_0x1e78('0x16')](dials[_0x2de005[_0x1e78('0x6')]])){utils['debug'](util[_0x1e78('0x4')](_0x1e78('0x1c'),_0x2de005[_0x1e78('0x6')]),_0x2de005);dials[_0x2de005[_0x1e78('0x6')]]=_['assign'](dials[_0x2de005[_0x1e78('0x6')]],_0x2de005);dials[_0x2de005['uniqueid']]['starttime']=utils['now']();dials[_0x2de005[_0x1e78('0x6')]][_0x1e78('0x1d')]=_0x1e78('0x1e');utils['info'](util['format'](_0x1e78('0x1f'),_0x2de005[_0x1e78('0x6')],dials[_0x2de005[_0x1e78('0x6')]][_0x1e78('0x20')]));}}catch(_0x4fd816){utils[_0x1e78('0x15')](util[_0x1e78('0x4')]('[%s][dials][dialbegin]',_0x2de005[_0x1e78('0x6')]),_0x4fd816);}};exports[_0x1e78('0x21')]=function(_0x31acdf){try{if(!_[_0x1e78('0x16')](dials[_0x31acdf[_0x1e78('0x6')]])){utils['debug'](util['format'](_0x1e78('0x22'),_0x31acdf['uniqueid']),_0x31acdf);dials[_0x31acdf[_0x1e78('0x6')]][_0x1e78('0xa')]=_0x31acdf['dialstatus'];if(_0x31acdf[_0x1e78('0xa')]==_0x1e78('0x23')){dials[_0x31acdf[_0x1e78('0x6')]]=_[_0x1e78('0x24')](dials[_0x31acdf[_0x1e78('0x6')]],_0x31acdf);dials[_0x31acdf[_0x1e78('0x6')]]['answertime']=utils[_0x1e78('0x25')]();dials[_0x31acdf['uniqueid']][_0x1e78('0x1d')]=_0x1e78('0x26');utils[_0x1e78('0x3')](util[_0x1e78('0x4')](_0x1e78('0x27'),_0x31acdf[_0x1e78('0x6')],_0x31acdf[_0x1e78('0xa')],dials[_0x31acdf['uniqueid']][_0x1e78('0x28')]));}else{utils[_0x1e78('0x3')](util[_0x1e78('0x4')](_0x1e78('0x29'),_0x31acdf[_0x1e78('0x6')],_0x31acdf[_0x1e78('0xa')]));}}}catch(_0x1c3979){utils['error'](util[_0x1e78('0x4')](_0x1e78('0x22'),_0x31acdf['uniqueid']),_0x1c3979);}};exports[_0x1e78('0x2a')]=function(_0x55a685){try{if(!_[_0x1e78('0x16')](dials[_0x55a685[_0x1e78('0x6')]])){utils[_0x1e78('0xd')](util['format'](_0x1e78('0x2b'),_0x55a685['uniqueid']),_0x55a685);utils['info'](util[_0x1e78('0x4')](_0x1e78('0x2c'),_0x55a685[_0x1e78('0x6')],_0x55a685[_0x1e78('0x2d')],_0x55a685['calleridname'],_0x55a685[_0x1e78('0x2e')]));dials[_0x55a685[_0x1e78('0x6')]]=_[_0x1e78('0x24')](dials[_0x55a685['uniqueid']],{'endtime':utils[_0x1e78('0x25')](),'lastevent':_0x1e78('0x2f')});dials[_0x55a685['uniqueid']][_0x1e78('0x30')]=utils['diffTime'](dials[_0x55a685[_0x1e78('0x6')]]['endtime'],dials[_0x55a685[_0x1e78('0x6')]][_0x1e78('0x20')]);dials[_0x55a685['uniqueid']][_0x1e78('0x31')]=utils[_0x1e78('0x32')](dials[_0x55a685[_0x1e78('0x6')]][_0x1e78('0x28')]||dials[_0x55a685[_0x1e78('0x6')]][_0x1e78('0x33')],dials[_0x55a685[_0x1e78('0x6')]][_0x1e78('0x20')]);dials[_0x55a685['uniqueid']][_0x1e78('0x34')]=dials[_0x55a685[_0x1e78('0x6')]][_0x1e78('0x28')]?utils[_0x1e78('0x32')](dials[_0x55a685['uniqueid']][_0x1e78('0x33')],dials[_0x55a685['uniqueid']]['answertime']):0x0;writeDB(dials[_0x55a685[_0x1e78('0x6')]]);}}catch(_0x374cd6){utils[_0x1e78('0x15')](util[_0x1e78('0x4')]('[%s][dials][hangup]',_0x55a685[_0x1e78('0x6')]),_0x374cd6);}};