Built motion from commit (unavailable).|2.5.22
[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 _0xad80=['[%s][dials][dialbegin]','starttime','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','assign','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','cause-txt','duration','diffTime','endtime','holdtime','answertime','lodash','util','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','dialstring','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','newexten','debug','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','cdr(routeid)','split','error','[%s][dials][newexten]','varset','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin'];(function(_0x618414,_0x1a7a60){var _0x21c19a=function(_0x507b17){while(--_0x507b17){_0x618414['push'](_0x618414['shift']());}};_0x21c19a(++_0x1a7a60);}(_0xad80,0x19c));var _0x0ad8=function(_0x3149c5,_0x58701a){_0x3149c5=_0x3149c5-0x0;var _0x34658d=_0xad80[_0x3149c5];return _0x34658d;};'use strict';var _=require(_0x0ad8('0x0'));var util=require(_0x0ad8('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x1e433f){utils[_0x0ad8('0x2')](util[_0x0ad8('0x3')](_0x0ad8('0x4'),_0x1e433f['uniqueid'],_0x1e433f[_0x0ad8('0x5')],_0x1e433f[_0x0ad8('0x6')],_0x1e433f['calleridnum'],_0x1e433f[_0x0ad8('0x7')],_0x1e433f[_0x0ad8('0x8')]));utils[_0x0ad8('0x9')](_0x0ad8('0xa'),_0x1e433f);delete dials[_0x1e433f[_0x0ad8('0xb')]];}exports[_0x0ad8('0xc')]=function(_0xce189c){try{utils[_0x0ad8('0xd')](util[_0x0ad8('0x3')]('[%s][dials][newexten]',_0xce189c['uniqueid']),_0xce189c);utils[_0x0ad8('0x2')](util[_0x0ad8('0x3')](_0x0ad8('0xe'),_0xce189c[_0x0ad8('0xb')],_0xce189c[_0x0ad8('0xf')],_0xce189c[_0x0ad8('0x10')]));if(_0xce189c[_0x0ad8('0xf')][_0x0ad8('0x11')]()=='set'&&_['startsWith'](_0xce189c[_0x0ad8('0x10')]['toLowerCase'](),_0x0ad8('0x12'))){var _0x5b2d01=_0xce189c[_0x0ad8('0x10')][_0x0ad8('0x13')]('=');dials[_0xce189c[_0x0ad8('0xb')]]={'routeId':_0x5b2d01[0x1]};}}catch(_0x3e5e69){utils[_0x0ad8('0x14')](util['format'](_0x0ad8('0x15'),_0xce189c['uniqueid']),_0x3e5e69);}};exports[_0x0ad8('0x16')]=function(_0x1fc698){try{utils['debug'](util[_0x0ad8('0x3')]('[%s][dials][varset]',_0x1fc698[_0x0ad8('0xb')]),_0x1fc698);if(!_[_0x0ad8('0x17')](_0x1fc698['variable'][_0x0ad8('0x18')])){utils[_0x0ad8('0x2')](util[_0x0ad8('0x3')](_0x0ad8('0x19'),_0x1fc698[_0x0ad8('0xb')],_0x1fc698['value']));dials[_0x1fc698[_0x0ad8('0xb')]]={'routeId':_0x1fc698[_0x0ad8('0x1a')]};}}catch(_0x3dd729){utils[_0x0ad8('0x14')](util[_0x0ad8('0x3')](_0x0ad8('0x1b'),_0x1fc698[_0x0ad8('0xb')]),_0x3dd729);}};exports[_0x0ad8('0x1c')]=function(_0xf849a2){try{if(!_['isNil'](dials[_0xf849a2['uniqueid']])){utils['debug'](util['format'](_0x0ad8('0x1d'),_0xf849a2['uniqueid']),_0xf849a2);dials[_0xf849a2[_0x0ad8('0xb')]]=_['assign'](dials[_0xf849a2['uniqueid']],_0xf849a2);dials[_0xf849a2[_0x0ad8('0xb')]][_0x0ad8('0x1e')]=utils['now']();dials[_0xf849a2[_0x0ad8('0xb')]][_0x0ad8('0x1f')]=_0x0ad8('0x20');utils['info'](util['format'](_0x0ad8('0x21'),_0xf849a2[_0x0ad8('0xb')],dials[_0xf849a2[_0x0ad8('0xb')]][_0x0ad8('0x1e')]));}}catch(_0x1a61d3){utils[_0x0ad8('0x14')](util[_0x0ad8('0x3')](_0x0ad8('0x1d'),_0xf849a2[_0x0ad8('0xb')]),_0x1a61d3);}};exports['dialend']=function(_0x27d3a2){try{if(!_[_0x0ad8('0x17')](dials[_0x27d3a2[_0x0ad8('0xb')]])){utils[_0x0ad8('0xd')](util[_0x0ad8('0x3')](_0x0ad8('0x22'),_0x27d3a2['uniqueid']),_0x27d3a2);dials[_0x27d3a2[_0x0ad8('0xb')]][_0x0ad8('0x8')]=_0x27d3a2['dialstatus'];if(_0x27d3a2[_0x0ad8('0x8')]=='ANSWER'){dials[_0x27d3a2['uniqueid']]=_[_0x0ad8('0x23')](dials[_0x27d3a2[_0x0ad8('0xb')]],_0x27d3a2);dials[_0x27d3a2[_0x0ad8('0xb')]]['answertime']=utils[_0x0ad8('0x24')]();dials[_0x27d3a2[_0x0ad8('0xb')]][_0x0ad8('0x1f')]=_0x0ad8('0x25');utils[_0x0ad8('0x2')](util[_0x0ad8('0x3')](_0x0ad8('0x26'),_0x27d3a2[_0x0ad8('0xb')],_0x27d3a2['dialstatus'],dials[_0x27d3a2['uniqueid']]['answertime']));}else{utils[_0x0ad8('0x2')](util[_0x0ad8('0x3')](_0x0ad8('0x27'),_0x27d3a2[_0x0ad8('0xb')],_0x27d3a2[_0x0ad8('0x8')]));}}}catch(_0x4cf616){utils[_0x0ad8('0x14')](util[_0x0ad8('0x3')](_0x0ad8('0x22'),_0x27d3a2[_0x0ad8('0xb')]),_0x4cf616);}};exports['hangup']=function(_0x3bae27){try{if(!_[_0x0ad8('0x17')](dials[_0x3bae27[_0x0ad8('0xb')]])){utils[_0x0ad8('0xd')](util['format'](_0x0ad8('0x28'),_0x3bae27['uniqueid']),_0x3bae27);utils['info'](util[_0x0ad8('0x3')](_0x0ad8('0x29'),_0x3bae27['uniqueid'],_0x3bae27[_0x0ad8('0x2a')],_0x3bae27['calleridname'],_0x3bae27[_0x0ad8('0x2b')]));dials[_0x3bae27[_0x0ad8('0xb')]]=_[_0x0ad8('0x23')](dials[_0x3bae27[_0x0ad8('0xb')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x2c')]=utils[_0x0ad8('0x2d')](dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x2e')],dials[_0x3bae27[_0x0ad8('0xb')]]['starttime']);dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x2f')]=utils['diffTime'](dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x30')]||dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x2e')],dials[_0x3bae27['uniqueid']][_0x0ad8('0x1e')]);dials[_0x3bae27['uniqueid']]['billableseconds']=dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x30')]?utils[_0x0ad8('0x2d')](dials[_0x3bae27[_0x0ad8('0xb')]]['endtime'],dials[_0x3bae27[_0x0ad8('0xb')]][_0x0ad8('0x30')]):0x0;writeDB(dials[_0x3bae27[_0x0ad8('0xb')]]);}}catch(_0x349d6f){utils[_0x0ad8('0x14')](util['format'](_0x0ad8('0x28'),_0x3bae27[_0x0ad8('0xb')]),_0x349d6f);}};