af81e17f1063540ea4e992d9d48fb95111b4fb7f
[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 _0xf148=['complete','diffTime','endtime','holdtime','billableseconds','util','./utils','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','dialstring','calleridnum','dialstatus','CreateVoiceDialReport','uniqueid','debug','format','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','startsWith','appdata','toLowerCase','cdr(routeid)','error','[%s][dials][newexten]','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialbegin]','[%s][dials][dialend]','assign','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt'];(function(_0x161d1d,_0x1cb38a){var _0xbd4bb1=function(_0x3da144){while(--_0x3da144){_0x161d1d['push'](_0x161d1d['shift']());}};_0xbd4bb1(++_0x1cb38a);}(_0xf148,0x1ac));var _0x8f14=function(_0x10729c,_0x205305){_0x10729c=_0x10729c-0x0;var _0x271e69=_0xf148[_0x10729c];return _0x271e69;};'use strict';var _=require('lodash');var util=require(_0x8f14('0x0'));var utils=require(_0x8f14('0x1'));var dials={};function writeDB(_0x196259){utils['info'](util['format'](_0x8f14('0x2'),_0x196259['uniqueid'],_0x196259['channel'],_0x196259[_0x8f14('0x3')],_0x196259[_0x8f14('0x4')],_0x196259['connectedlinenum'],_0x196259[_0x8f14('0x5')]));utils['request'](_0x8f14('0x6'),_0x196259);delete dials[_0x196259[_0x8f14('0x7')]];}exports['newexten']=function(_0xe3c7f8){try{utils[_0x8f14('0x8')](util[_0x8f14('0x9')]('[%s][dials][newexten]',_0xe3c7f8[_0x8f14('0x7')]),_0xe3c7f8);utils[_0x8f14('0xa')](util[_0x8f14('0x9')](_0x8f14('0xb'),_0xe3c7f8[_0x8f14('0x7')],_0xe3c7f8[_0x8f14('0xc')],_0xe3c7f8['appdata']));if(_0xe3c7f8[_0x8f14('0xc')]['toLowerCase']()=='set'&&_[_0x8f14('0xd')](_0xe3c7f8[_0x8f14('0xe')][_0x8f14('0xf')](),_0x8f14('0x10'))){var _0x2a1373=_0xe3c7f8[_0x8f14('0xe')]['split']('=');dials[_0xe3c7f8[_0x8f14('0x7')]]={'routeId':_0x2a1373[0x1]};}}catch(_0x1cfe37){utils[_0x8f14('0x11')](util[_0x8f14('0x9')](_0x8f14('0x12'),_0xe3c7f8[_0x8f14('0x7')]),_0x1cfe37);}};exports[_0x8f14('0x13')]=function(_0x3cf057){try{utils[_0x8f14('0x8')](util[_0x8f14('0x9')]('[%s][dials][varset]',_0x3cf057[_0x8f14('0x7')]),_0x3cf057);if(!_[_0x8f14('0x14')](_0x3cf057[_0x8f14('0x15')][_0x8f14('0x16')])){utils['info'](util[_0x8f14('0x9')](_0x8f14('0x17'),_0x3cf057[_0x8f14('0x7')],_0x3cf057[_0x8f14('0x18')]));dials[_0x3cf057['uniqueid']]={'routeId':_0x3cf057[_0x8f14('0x18')]};}}catch(_0x26e08d){utils[_0x8f14('0x11')](util['format'](_0x8f14('0x19'),_0x3cf057[_0x8f14('0x7')]),_0x26e08d);}};exports[_0x8f14('0x1a')]=function(_0x42a52a){try{if(!_['isNil'](dials[_0x42a52a['uniqueid']])){utils['debug'](util[_0x8f14('0x9')]('[%s][dials][dialbegin]',_0x42a52a[_0x8f14('0x7')]),_0x42a52a);dials[_0x42a52a[_0x8f14('0x7')]]=_['assign'](dials[_0x42a52a[_0x8f14('0x7')]],_0x42a52a);dials[_0x42a52a[_0x8f14('0x7')]][_0x8f14('0x1b')]=utils[_0x8f14('0x1c')]();dials[_0x42a52a['uniqueid']][_0x8f14('0x1d')]=_0x8f14('0x1e');utils[_0x8f14('0xa')](util[_0x8f14('0x9')](_0x8f14('0x1f'),_0x42a52a['uniqueid'],dials[_0x42a52a[_0x8f14('0x7')]][_0x8f14('0x1b')]));}}catch(_0xf78124){utils[_0x8f14('0x11')](util[_0x8f14('0x9')](_0x8f14('0x20'),_0x42a52a[_0x8f14('0x7')]),_0xf78124);}};exports['dialend']=function(_0x24a40e){try{if(!_[_0x8f14('0x14')](dials[_0x24a40e[_0x8f14('0x7')]])){utils[_0x8f14('0x8')](util[_0x8f14('0x9')](_0x8f14('0x21'),_0x24a40e['uniqueid']),_0x24a40e);dials[_0x24a40e[_0x8f14('0x7')]][_0x8f14('0x5')]=_0x24a40e[_0x8f14('0x5')];if(_0x24a40e[_0x8f14('0x5')]=='ANSWER'){dials[_0x24a40e[_0x8f14('0x7')]]=_[_0x8f14('0x22')](dials[_0x24a40e[_0x8f14('0x7')]],_0x24a40e);dials[_0x24a40e[_0x8f14('0x7')]]['answertime']=utils[_0x8f14('0x1c')]();dials[_0x24a40e[_0x8f14('0x7')]][_0x8f14('0x1d')]=_0x8f14('0x23');utils['info'](util[_0x8f14('0x9')](_0x8f14('0x24'),_0x24a40e[_0x8f14('0x7')],_0x24a40e[_0x8f14('0x5')],dials[_0x24a40e[_0x8f14('0x7')]][_0x8f14('0x25')]));}else{utils[_0x8f14('0xa')](util[_0x8f14('0x9')]('[%s][dials][dialend]\x20dialstatus:%s',_0x24a40e[_0x8f14('0x7')],_0x24a40e[_0x8f14('0x5')]));}}}catch(_0x663de1){utils[_0x8f14('0x11')](util[_0x8f14('0x9')]('[%s][dials][dialend]',_0x24a40e[_0x8f14('0x7')]),_0x663de1);}};exports['hangup']=function(_0x1abd3a){try{if(!_['isNil'](dials[_0x1abd3a['uniqueid']])){utils[_0x8f14('0x8')](util[_0x8f14('0x9')](_0x8f14('0x26'),_0x1abd3a['uniqueid']),_0x1abd3a);utils['info'](util[_0x8f14('0x9')](_0x8f14('0x27'),_0x1abd3a[_0x8f14('0x7')],_0x1abd3a['calleridnum'],_0x1abd3a[_0x8f14('0x28')],_0x1abd3a[_0x8f14('0x29')]));dials[_0x1abd3a[_0x8f14('0x7')]]=_[_0x8f14('0x22')](dials[_0x1abd3a[_0x8f14('0x7')]],{'endtime':utils['now'](),'lastevent':_0x8f14('0x2a')});dials[_0x1abd3a[_0x8f14('0x7')]]['duration']=utils[_0x8f14('0x2b')](dials[_0x1abd3a[_0x8f14('0x7')]][_0x8f14('0x2c')],dials[_0x1abd3a['uniqueid']][_0x8f14('0x1b')]);dials[_0x1abd3a['uniqueid']][_0x8f14('0x2d')]=utils['diffTime'](dials[_0x1abd3a[_0x8f14('0x7')]][_0x8f14('0x25')]||dials[_0x1abd3a[_0x8f14('0x7')]]['endtime'],dials[_0x1abd3a[_0x8f14('0x7')]]['starttime']);dials[_0x1abd3a[_0x8f14('0x7')]][_0x8f14('0x2e')]=dials[_0x1abd3a[_0x8f14('0x7')]][_0x8f14('0x25')]?utils['diffTime'](dials[_0x1abd3a[_0x8f14('0x7')]]['endtime'],dials[_0x1abd3a[_0x8f14('0x7')]][_0x8f14('0x25')]):0x0;writeDB(dials[_0x1abd3a[_0x8f14('0x7')]]);}}catch(_0x5de57c){utils[_0x8f14('0x11')](util[_0x8f14('0x9')](_0x8f14('0x26'),_0x1abd3a[_0x8f14('0x7')]),_0x5de57c);}};