ab0de51e25350c4c055d7cc28b6eb469664ed314
[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 _0x72fd=['startsWith','cdr(routeid)','split','error','varset','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','[%s][dials][varset]','dialbegin','isNil','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','dialstatus','ANSWER','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','calleridname','cause-txt','complete','diffTime','endtime','holdtime','billableseconds','lodash','util','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','calleridnum','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','info','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set'];(function(_0x290694,_0x281935){var _0x5a0f2e=function(_0x58d7d4){while(--_0x58d7d4){_0x290694['push'](_0x290694['shift']());}};_0x5a0f2e(++_0x281935);}(_0x72fd,0x1b0));var _0xd72f=function(_0x4a7fc0,_0x263424){_0x4a7fc0=_0x4a7fc0-0x0;var _0x40f0f6=_0x72fd[_0x4a7fc0];return _0x40f0f6;};'use strict';var _=require(_0xd72f('0x0'));var util=require(_0xd72f('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x4351ee){utils['info'](util[_0xd72f('0x2')](_0xd72f('0x3'),_0x4351ee[_0xd72f('0x4')],_0x4351ee[_0xd72f('0x5')],_0x4351ee[_0xd72f('0x6')],_0x4351ee[_0xd72f('0x7')],_0x4351ee['connectedlinenum'],_0x4351ee['dialstatus']));utils['request'](_0xd72f('0x8'),_0x4351ee);delete dials[_0x4351ee[_0xd72f('0x4')]];}exports[_0xd72f('0x9')]=function(_0xad8ccd){try{utils[_0xd72f('0xa')](util[_0xd72f('0x2')](_0xd72f('0xb'),_0xad8ccd[_0xd72f('0x4')]),_0xad8ccd);utils[_0xd72f('0xc')](util[_0xd72f('0x2')](_0xd72f('0xd'),_0xad8ccd[_0xd72f('0x4')],_0xad8ccd[_0xd72f('0xe')],_0xad8ccd[_0xd72f('0xf')]));if(_0xad8ccd[_0xd72f('0xe')][_0xd72f('0x10')]()==_0xd72f('0x11')&&_[_0xd72f('0x12')](_0xad8ccd[_0xd72f('0xf')][_0xd72f('0x10')](),_0xd72f('0x13'))){var _0x3aa7a5=_0xad8ccd[_0xd72f('0xf')][_0xd72f('0x14')]('=');dials[_0xad8ccd[_0xd72f('0x4')]]={'routeId':_0x3aa7a5[0x1]};}}catch(_0x510544){utils[_0xd72f('0x15')](util['format']('[%s][dials][newexten]',_0xad8ccd['uniqueid']),_0x510544);}};exports[_0xd72f('0x16')]=function(_0x1f94fb){try{utils[_0xd72f('0xa')](util[_0xd72f('0x2')]('[%s][dials][varset]',_0x1f94fb[_0xd72f('0x4')]),_0x1f94fb);if(!_['isNil'](_0x1f94fb[_0xd72f('0x17')][_0xd72f('0x18')])){utils['info'](util[_0xd72f('0x2')](_0xd72f('0x19'),_0x1f94fb[_0xd72f('0x4')],_0x1f94fb['value']));dials[_0x1f94fb[_0xd72f('0x4')]]={'routeId':_0x1f94fb['value']};}}catch(_0x4a1050){utils['error'](util['format'](_0xd72f('0x1a'),_0x1f94fb[_0xd72f('0x4')]),_0x4a1050);}};exports[_0xd72f('0x1b')]=function(_0x4a5d8a){try{if(!_[_0xd72f('0x1c')](dials[_0x4a5d8a[_0xd72f('0x4')]])){utils[_0xd72f('0xa')](util['format'](_0xd72f('0x1d'),_0x4a5d8a[_0xd72f('0x4')]),_0x4a5d8a);dials[_0x4a5d8a[_0xd72f('0x4')]]=_[_0xd72f('0x1e')](dials[_0x4a5d8a['uniqueid']],_0x4a5d8a);dials[_0x4a5d8a[_0xd72f('0x4')]][_0xd72f('0x1f')]=utils[_0xd72f('0x20')]();dials[_0x4a5d8a[_0xd72f('0x4')]][_0xd72f('0x21')]='called';utils[_0xd72f('0xc')](util[_0xd72f('0x2')](_0xd72f('0x22'),_0x4a5d8a[_0xd72f('0x4')],dials[_0x4a5d8a[_0xd72f('0x4')]]['starttime']));}}catch(_0x1d0512){utils['error'](util[_0xd72f('0x2')](_0xd72f('0x1d'),_0x4a5d8a[_0xd72f('0x4')]),_0x1d0512);}};exports[_0xd72f('0x23')]=function(_0x2351a0){try{if(!_['isNil'](dials[_0x2351a0[_0xd72f('0x4')]])){utils['debug'](util[_0xd72f('0x2')](_0xd72f('0x24'),_0x2351a0[_0xd72f('0x4')]),_0x2351a0);dials[_0x2351a0[_0xd72f('0x4')]]['dialstatus']=_0x2351a0[_0xd72f('0x25')];if(_0x2351a0[_0xd72f('0x25')]==_0xd72f('0x26')){dials[_0x2351a0[_0xd72f('0x4')]]=_[_0xd72f('0x1e')](dials[_0x2351a0[_0xd72f('0x4')]],_0x2351a0);dials[_0x2351a0[_0xd72f('0x4')]][_0xd72f('0x27')]=utils[_0xd72f('0x20')]();dials[_0x2351a0['uniqueid']][_0xd72f('0x21')]='connect';utils['info'](util[_0xd72f('0x2')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x2351a0[_0xd72f('0x4')],_0x2351a0['dialstatus'],dials[_0x2351a0[_0xd72f('0x4')]][_0xd72f('0x27')]));}else{utils[_0xd72f('0xc')](util[_0xd72f('0x2')](_0xd72f('0x28'),_0x2351a0[_0xd72f('0x4')],_0x2351a0[_0xd72f('0x25')]));}}}catch(_0x407011){utils['error'](util[_0xd72f('0x2')](_0xd72f('0x24'),_0x2351a0[_0xd72f('0x4')]),_0x407011);}};exports[_0xd72f('0x29')]=function(_0x2c54ee){try{if(!_[_0xd72f('0x1c')](dials[_0x2c54ee[_0xd72f('0x4')]])){utils[_0xd72f('0xa')](util['format'](_0xd72f('0x2a'),_0x2c54ee[_0xd72f('0x4')]),_0x2c54ee);utils[_0xd72f('0xc')](util[_0xd72f('0x2')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x2c54ee['uniqueid'],_0x2c54ee[_0xd72f('0x7')],_0x2c54ee[_0xd72f('0x2b')],_0x2c54ee[_0xd72f('0x2c')]));dials[_0x2c54ee[_0xd72f('0x4')]]=_[_0xd72f('0x1e')](dials[_0x2c54ee[_0xd72f('0x4')]],{'endtime':utils[_0xd72f('0x20')](),'lastevent':_0xd72f('0x2d')});dials[_0x2c54ee['uniqueid']]['duration']=utils[_0xd72f('0x2e')](dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x2f')],dials[_0x2c54ee[_0xd72f('0x4')]]['starttime']);dials[_0x2c54ee['uniqueid']][_0xd72f('0x30')]=utils[_0xd72f('0x2e')](dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x27')]||dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x2f')],dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x1f')]);dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x31')]=dials[_0x2c54ee[_0xd72f('0x4')]][_0xd72f('0x27')]?utils['diffTime'](dials[_0x2c54ee['uniqueid']][_0xd72f('0x2f')],dials[_0x2c54ee['uniqueid']][_0xd72f('0x27')]):0x0;writeDB(dials[_0x2c54ee['uniqueid']]);}}catch(_0x2c15ae){utils[_0xd72f('0x15')](util['format'](_0xd72f('0x2a'),_0x2c54ee[_0xd72f('0x4')]),_0x2c15ae);}};