115a91217d755e9ee4f2f3545b760b6c3b469c9b
[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 _0xd93e=['called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','dialstatus','ANSWER','answertime','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','calleridname','cause-txt','complete','duration','diffTime','endtime','billableseconds','info','format','uniqueid','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','cdr(routeid)','error','varset','[%s][dials][varset]','variable','outboundrouteid','value','dialbegin','isNil','assign','starttime','now','lastevent'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd93e,0xfd));var _0xed93=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xd93e[_0x42cae2];return _0x5f256f;};'use strict';var _=require('lodash');var util=require('util');var utils=require('./utils');var dials={};function writeDB(_0x474f63){utils[_0xed93('0x0')](util[_0xed93('0x1')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x474f63[_0xed93('0x2')],_0x474f63['channel'],_0x474f63[_0xed93('0x3')],_0x474f63[_0xed93('0x4')],_0x474f63[_0xed93('0x5')],_0x474f63['dialstatus']));utils[_0xed93('0x6')](_0xed93('0x7'),_0x474f63);delete dials[_0x474f63[_0xed93('0x2')]];}exports['newexten']=function(_0x1ec373){try{utils[_0xed93('0x8')](util['format'](_0xed93('0x9'),_0x1ec373[_0xed93('0x2')]),_0x1ec373);utils['info'](util[_0xed93('0x1')](_0xed93('0xa'),_0x1ec373[_0xed93('0x2')],_0x1ec373['application'],_0x1ec373[_0xed93('0xb')]));if(_0x1ec373[_0xed93('0xc')][_0xed93('0xd')]()==_0xed93('0xe')&&_[_0xed93('0xf')](_0x1ec373[_0xed93('0xb')][_0xed93('0xd')](),_0xed93('0x10'))){var _0x1797da=_0x1ec373['appdata']['split']('=');dials[_0x1ec373['uniqueid']]={'routeId':_0x1797da[0x1]};}}catch(_0x5227aa){utils[_0xed93('0x11')](util[_0xed93('0x1')](_0xed93('0x9'),_0x1ec373[_0xed93('0x2')]),_0x5227aa);}};exports[_0xed93('0x12')]=function(_0x153d6d){try{utils[_0xed93('0x8')](util[_0xed93('0x1')](_0xed93('0x13'),_0x153d6d[_0xed93('0x2')]),_0x153d6d);if(!_['isNil'](_0x153d6d[_0xed93('0x14')][_0xed93('0x15')])){utils['info'](util[_0xed93('0x1')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x153d6d[_0xed93('0x2')],_0x153d6d[_0xed93('0x16')]));dials[_0x153d6d[_0xed93('0x2')]]={'routeId':_0x153d6d[_0xed93('0x16')]};}}catch(_0x573671){utils['error'](util['format'](_0xed93('0x13'),_0x153d6d['uniqueid']),_0x573671);}};exports[_0xed93('0x17')]=function(_0x614dca){try{if(!_[_0xed93('0x18')](dials[_0x614dca[_0xed93('0x2')]])){utils['debug'](util[_0xed93('0x1')]('[%s][dials][dialbegin]',_0x614dca[_0xed93('0x2')]),_0x614dca);dials[_0x614dca[_0xed93('0x2')]]=_[_0xed93('0x19')](dials[_0x614dca['uniqueid']],_0x614dca);dials[_0x614dca['uniqueid']][_0xed93('0x1a')]=utils[_0xed93('0x1b')]();dials[_0x614dca[_0xed93('0x2')]][_0xed93('0x1c')]=_0xed93('0x1d');utils[_0xed93('0x0')](util['format'](_0xed93('0x1e'),_0x614dca['uniqueid'],dials[_0x614dca[_0xed93('0x2')]][_0xed93('0x1a')]));}}catch(_0x38a247){utils[_0xed93('0x11')](util[_0xed93('0x1')]('[%s][dials][dialbegin]',_0x614dca['uniqueid']),_0x38a247);}};exports[_0xed93('0x1f')]=function(_0x291732){try{if(!_[_0xed93('0x18')](dials[_0x291732[_0xed93('0x2')]])){utils[_0xed93('0x8')](util[_0xed93('0x1')](_0xed93('0x20'),_0x291732[_0xed93('0x2')]),_0x291732);dials[_0x291732['uniqueid']][_0xed93('0x21')]=_0x291732['dialstatus'];if(_0x291732[_0xed93('0x21')]==_0xed93('0x22')){dials[_0x291732[_0xed93('0x2')]]=_[_0xed93('0x19')](dials[_0x291732['uniqueid']],_0x291732);dials[_0x291732[_0xed93('0x2')]][_0xed93('0x23')]=utils[_0xed93('0x1b')]();dials[_0x291732[_0xed93('0x2')]][_0xed93('0x1c')]='connect';utils[_0xed93('0x0')](util['format'](_0xed93('0x24'),_0x291732[_0xed93('0x2')],_0x291732[_0xed93('0x21')],dials[_0x291732[_0xed93('0x2')]][_0xed93('0x23')]));}else{utils[_0xed93('0x0')](util['format'](_0xed93('0x25'),_0x291732[_0xed93('0x2')],_0x291732[_0xed93('0x21')]));}}}catch(_0x154c9c){utils[_0xed93('0x11')](util[_0xed93('0x1')](_0xed93('0x20'),_0x291732[_0xed93('0x2')]),_0x154c9c);}};exports[_0xed93('0x26')]=function(_0x1f9b7e){try{if(!_[_0xed93('0x18')](dials[_0x1f9b7e['uniqueid']])){utils['debug'](util[_0xed93('0x1')](_0xed93('0x27'),_0x1f9b7e['uniqueid']),_0x1f9b7e);utils['info'](util['format']('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x1f9b7e[_0xed93('0x2')],_0x1f9b7e['calleridnum'],_0x1f9b7e[_0xed93('0x28')],_0x1f9b7e[_0xed93('0x29')]));dials[_0x1f9b7e[_0xed93('0x2')]]=_['assign'](dials[_0x1f9b7e[_0xed93('0x2')]],{'endtime':utils[_0xed93('0x1b')](),'lastevent':_0xed93('0x2a')});dials[_0x1f9b7e[_0xed93('0x2')]][_0xed93('0x2b')]=utils[_0xed93('0x2c')](dials[_0x1f9b7e[_0xed93('0x2')]][_0xed93('0x2d')],dials[_0x1f9b7e[_0xed93('0x2')]][_0xed93('0x1a')]);dials[_0x1f9b7e['uniqueid']]['holdtime']=utils[_0xed93('0x2c')](dials[_0x1f9b7e[_0xed93('0x2')]]['answertime']||dials[_0x1f9b7e[_0xed93('0x2')]]['endtime'],dials[_0x1f9b7e['uniqueid']][_0xed93('0x1a')]);dials[_0x1f9b7e[_0xed93('0x2')]][_0xed93('0x2e')]=dials[_0x1f9b7e['uniqueid']][_0xed93('0x23')]?utils[_0xed93('0x2c')](dials[_0x1f9b7e['uniqueid']]['endtime'],dials[_0x1f9b7e[_0xed93('0x2')]]['answertime']):0x0;writeDB(dials[_0x1f9b7e[_0xed93('0x2')]]);}}catch(_0x2cbdc9){utils['error'](util[_0xed93('0x1')](_0xed93('0x27'),_0x1f9b7e[_0xed93('0x2')]),_0x2cbdc9);}};