Built motion from commit 19a84241.|2.5.34
[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 _0x8aef=['diffTime','endtime','[%s][dials][hangup]','lodash','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','connectedlinenum','dialstatus','request','CreateVoiceDialReport','uniqueid','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','error','varset','isNil','variable','outboundrouteid','info','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','duration'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x8aef,0x11d));var _0xf8ae=function(_0x3c8e9a,_0x384306){_0x3c8e9a=_0x3c8e9a-0x0;var _0x2d4c57=_0x8aef[_0x3c8e9a];return _0x2d4c57;};'use strict';var _=require(_0xf8ae('0x0'));var util=require(_0xf8ae('0x1'));var utils=require(_0xf8ae('0x2'));var dials={};function writeDB(_0x4d4afb){utils['info'](util[_0xf8ae('0x3')](_0xf8ae('0x4'),_0x4d4afb['uniqueid'],_0x4d4afb[_0xf8ae('0x5')],_0x4d4afb['dialstring'],_0x4d4afb['calleridnum'],_0x4d4afb[_0xf8ae('0x6')],_0x4d4afb[_0xf8ae('0x7')]));utils[_0xf8ae('0x8')](_0xf8ae('0x9'),_0x4d4afb);delete dials[_0x4d4afb[_0xf8ae('0xa')]];}exports['newexten']=function(_0x9af71b){try{utils[_0xf8ae('0xb')](util[_0xf8ae('0x3')](_0xf8ae('0xc'),_0x9af71b[_0xf8ae('0xa')]),_0x9af71b);utils['info'](util['format'](_0xf8ae('0xd'),_0x9af71b[_0xf8ae('0xa')],_0x9af71b[_0xf8ae('0xe')],_0x9af71b[_0xf8ae('0xf')]));if(_0x9af71b[_0xf8ae('0xe')][_0xf8ae('0x10')]()==_0xf8ae('0x11')&&_['startsWith'](_0x9af71b[_0xf8ae('0xf')][_0xf8ae('0x10')](),'cdr(routeid)')){var _0x35d282=_0x9af71b['appdata']['split']('=');dials[_0x9af71b[_0xf8ae('0xa')]]={'routeId':_0x35d282[0x1]};}}catch(_0x58b316){utils[_0xf8ae('0x12')](util[_0xf8ae('0x3')](_0xf8ae('0xc'),_0x9af71b['uniqueid']),_0x58b316);}};exports[_0xf8ae('0x13')]=function(_0x210091){try{utils[_0xf8ae('0xb')](util['format']('[%s][dials][varset]',_0x210091['uniqueid']),_0x210091);if(!_[_0xf8ae('0x14')](_0x210091[_0xf8ae('0x15')][_0xf8ae('0x16')])){utils[_0xf8ae('0x17')](util[_0xf8ae('0x3')](_0xf8ae('0x18'),_0x210091['uniqueid'],_0x210091[_0xf8ae('0x19')]));dials[_0x210091[_0xf8ae('0xa')]]={'routeId':_0x210091[_0xf8ae('0x19')]};}}catch(_0x412ab2){utils[_0xf8ae('0x12')](util['format'](_0xf8ae('0x1a'),_0x210091[_0xf8ae('0xa')]),_0x412ab2);}};exports[_0xf8ae('0x1b')]=function(_0x325608){try{if(!_[_0xf8ae('0x14')](dials[_0x325608[_0xf8ae('0xa')]])){utils['debug'](util[_0xf8ae('0x3')](_0xf8ae('0x1c'),_0x325608[_0xf8ae('0xa')]),_0x325608);dials[_0x325608[_0xf8ae('0xa')]]=_[_0xf8ae('0x1d')](dials[_0x325608['uniqueid']],_0x325608);dials[_0x325608['uniqueid']][_0xf8ae('0x1e')]=utils[_0xf8ae('0x1f')]();dials[_0x325608[_0xf8ae('0xa')]][_0xf8ae('0x20')]='called';utils[_0xf8ae('0x17')](util[_0xf8ae('0x3')](_0xf8ae('0x21'),_0x325608[_0xf8ae('0xa')],dials[_0x325608['uniqueid']][_0xf8ae('0x1e')]));}}catch(_0x460794){utils['error'](util[_0xf8ae('0x3')](_0xf8ae('0x1c'),_0x325608['uniqueid']),_0x460794);}};exports[_0xf8ae('0x22')]=function(_0x2cdc9d){try{if(!_[_0xf8ae('0x14')](dials[_0x2cdc9d[_0xf8ae('0xa')]])){utils['debug'](util[_0xf8ae('0x3')](_0xf8ae('0x23'),_0x2cdc9d[_0xf8ae('0xa')]),_0x2cdc9d);dials[_0x2cdc9d['uniqueid']][_0xf8ae('0x7')]=_0x2cdc9d[_0xf8ae('0x7')];if(_0x2cdc9d[_0xf8ae('0x7')]==_0xf8ae('0x24')){dials[_0x2cdc9d[_0xf8ae('0xa')]]=_[_0xf8ae('0x1d')](dials[_0x2cdc9d[_0xf8ae('0xa')]],_0x2cdc9d);dials[_0x2cdc9d[_0xf8ae('0xa')]][_0xf8ae('0x25')]=utils[_0xf8ae('0x1f')]();dials[_0x2cdc9d[_0xf8ae('0xa')]]['lastevent']=_0xf8ae('0x26');utils[_0xf8ae('0x17')](util[_0xf8ae('0x3')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x2cdc9d[_0xf8ae('0xa')],_0x2cdc9d['dialstatus'],dials[_0x2cdc9d[_0xf8ae('0xa')]]['answertime']));}else{utils['info'](util[_0xf8ae('0x3')](_0xf8ae('0x27'),_0x2cdc9d[_0xf8ae('0xa')],_0x2cdc9d[_0xf8ae('0x7')]));}}}catch(_0x595b40){utils[_0xf8ae('0x12')](util[_0xf8ae('0x3')](_0xf8ae('0x23'),_0x2cdc9d['uniqueid']),_0x595b40);}};exports[_0xf8ae('0x28')]=function(_0x119ad2){try{if(!_[_0xf8ae('0x14')](dials[_0x119ad2[_0xf8ae('0xa')]])){utils[_0xf8ae('0xb')](util['format']('[%s][dials][hangup]',_0x119ad2['uniqueid']),_0x119ad2);utils['info'](util['format'](_0xf8ae('0x29'),_0x119ad2[_0xf8ae('0xa')],_0x119ad2['calleridnum'],_0x119ad2[_0xf8ae('0x2a')],_0x119ad2['cause-txt']));dials[_0x119ad2[_0xf8ae('0xa')]]=_[_0xf8ae('0x1d')](dials[_0x119ad2[_0xf8ae('0xa')]],{'endtime':utils[_0xf8ae('0x1f')](),'lastevent':'complete'});dials[_0x119ad2[_0xf8ae('0xa')]][_0xf8ae('0x2b')]=utils['diffTime'](dials[_0x119ad2[_0xf8ae('0xa')]]['endtime'],dials[_0x119ad2['uniqueid']]['starttime']);dials[_0x119ad2['uniqueid']]['holdtime']=utils[_0xf8ae('0x2c')](dials[_0x119ad2[_0xf8ae('0xa')]][_0xf8ae('0x25')]||dials[_0x119ad2[_0xf8ae('0xa')]]['endtime'],dials[_0x119ad2['uniqueid']][_0xf8ae('0x1e')]);dials[_0x119ad2[_0xf8ae('0xa')]]['billableseconds']=dials[_0x119ad2[_0xf8ae('0xa')]][_0xf8ae('0x25')]?utils[_0xf8ae('0x2c')](dials[_0x119ad2[_0xf8ae('0xa')]][_0xf8ae('0x2d')],dials[_0x119ad2[_0xf8ae('0xa')]][_0xf8ae('0x25')]):0x0;writeDB(dials[_0x119ad2[_0xf8ae('0xa')]]);}}catch(_0x4ea369){utils[_0xf8ae('0x12')](util[_0xf8ae('0x3')](_0xf8ae('0x2e'),_0x119ad2[_0xf8ae('0xa')]),_0x4ea369);}};