ee8e8a20dda995396b59027f15c619719a4b0f53
[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 _0x4bc5=['set','startsWith','cdr(routeid)','appdata','split','error','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','now','lastevent','called','[%s][dials][dialend]','dialstatus','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','complete','endtime','starttime','holdtime','diffTime','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','request','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase'];(function(_0x4cd8ca,_0x4a7574){var _0x54df4e=function(_0x18b8c4){while(--_0x18b8c4){_0x4cd8ca['push'](_0x4cd8ca['shift']());}};_0x54df4e(++_0x4a7574);}(_0x4bc5,0x179));var _0x54bc=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0x4bc5[_0x35885a];return _0xe86249;};'use strict';var _=require(_0x54bc('0x0'));var util=require(_0x54bc('0x1'));var utils=require(_0x54bc('0x2'));var dials={};function writeDB(_0x399c12){utils[_0x54bc('0x3')](util[_0x54bc('0x4')](_0x54bc('0x5'),_0x399c12[_0x54bc('0x6')],_0x399c12[_0x54bc('0x7')],_0x399c12[_0x54bc('0x8')],_0x399c12['calleridnum'],_0x399c12['connectedlinenum'],_0x399c12['dialstatus']));utils[_0x54bc('0x9')]('CreateVoiceDialReport',_0x399c12);delete dials[_0x399c12[_0x54bc('0x6')]];}exports['newexten']=function(_0x23b9c9){try{utils[_0x54bc('0xa')](util[_0x54bc('0x4')](_0x54bc('0xb'),_0x23b9c9[_0x54bc('0x6')]),_0x23b9c9);utils[_0x54bc('0x3')](util[_0x54bc('0x4')](_0x54bc('0xc'),_0x23b9c9[_0x54bc('0x6')],_0x23b9c9[_0x54bc('0xd')],_0x23b9c9['appdata']));if(_0x23b9c9[_0x54bc('0xd')][_0x54bc('0xe')]()==_0x54bc('0xf')&&_[_0x54bc('0x10')](_0x23b9c9['appdata'][_0x54bc('0xe')](),_0x54bc('0x11'))){var _0x4d3af2=_0x23b9c9[_0x54bc('0x12')][_0x54bc('0x13')]('=');dials[_0x23b9c9[_0x54bc('0x6')]]={'routeId':_0x4d3af2[0x1]};}}catch(_0x15dbfe){utils[_0x54bc('0x14')](util[_0x54bc('0x4')](_0x54bc('0xb'),_0x23b9c9[_0x54bc('0x6')]),_0x15dbfe);}};exports[_0x54bc('0x15')]=function(_0x45f061){try{utils[_0x54bc('0xa')](util[_0x54bc('0x4')]('[%s][dials][varset]',_0x45f061[_0x54bc('0x6')]),_0x45f061);if(!_[_0x54bc('0x16')](_0x45f061[_0x54bc('0x17')][_0x54bc('0x18')])){utils[_0x54bc('0x3')](util[_0x54bc('0x4')](_0x54bc('0x19'),_0x45f061['uniqueid'],_0x45f061[_0x54bc('0x1a')]));dials[_0x45f061[_0x54bc('0x6')]]={'routeId':_0x45f061[_0x54bc('0x1a')]};}}catch(_0x50a052){utils[_0x54bc('0x14')](util[_0x54bc('0x4')]('[%s][dials][varset]',_0x45f061[_0x54bc('0x6')]),_0x50a052);}};exports[_0x54bc('0x1b')]=function(_0xc0b737){try{if(!_['isNil'](dials[_0xc0b737[_0x54bc('0x6')]])){utils[_0x54bc('0xa')](util['format'](_0x54bc('0x1c'),_0xc0b737[_0x54bc('0x6')]),_0xc0b737);dials[_0xc0b737[_0x54bc('0x6')]]=_[_0x54bc('0x1d')](dials[_0xc0b737[_0x54bc('0x6')]],_0xc0b737);dials[_0xc0b737[_0x54bc('0x6')]]['starttime']=utils[_0x54bc('0x1e')]();dials[_0xc0b737[_0x54bc('0x6')]][_0x54bc('0x1f')]=_0x54bc('0x20');utils['info'](util[_0x54bc('0x4')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0xc0b737[_0x54bc('0x6')],dials[_0xc0b737[_0x54bc('0x6')]]['starttime']));}}catch(_0x1ade8a){utils[_0x54bc('0x14')](util['format'](_0x54bc('0x1c'),_0xc0b737[_0x54bc('0x6')]),_0x1ade8a);}};exports['dialend']=function(_0x492788){try{if(!_[_0x54bc('0x16')](dials[_0x492788['uniqueid']])){utils['debug'](util[_0x54bc('0x4')](_0x54bc('0x21'),_0x492788[_0x54bc('0x6')]),_0x492788);dials[_0x492788[_0x54bc('0x6')]][_0x54bc('0x22')]=_0x492788[_0x54bc('0x22')];if(_0x492788[_0x54bc('0x22')]==_0x54bc('0x23')){dials[_0x492788['uniqueid']]=_[_0x54bc('0x1d')](dials[_0x492788['uniqueid']],_0x492788);dials[_0x492788[_0x54bc('0x6')]][_0x54bc('0x24')]=utils[_0x54bc('0x1e')]();dials[_0x492788[_0x54bc('0x6')]][_0x54bc('0x1f')]=_0x54bc('0x25');utils[_0x54bc('0x3')](util[_0x54bc('0x4')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x492788[_0x54bc('0x6')],_0x492788[_0x54bc('0x22')],dials[_0x492788[_0x54bc('0x6')]]['answertime']));}else{utils['info'](util[_0x54bc('0x4')](_0x54bc('0x26'),_0x492788[_0x54bc('0x6')],_0x492788[_0x54bc('0x22')]));}}}catch(_0x2198ea){utils[_0x54bc('0x14')](util['format'](_0x54bc('0x21'),_0x492788[_0x54bc('0x6')]),_0x2198ea);}};exports[_0x54bc('0x27')]=function(_0x3306d9){try{if(!_[_0x54bc('0x16')](dials[_0x3306d9['uniqueid']])){utils[_0x54bc('0xa')](util[_0x54bc('0x4')](_0x54bc('0x28'),_0x3306d9[_0x54bc('0x6')]),_0x3306d9);utils[_0x54bc('0x3')](util[_0x54bc('0x4')](_0x54bc('0x29'),_0x3306d9[_0x54bc('0x6')],_0x3306d9[_0x54bc('0x2a')],_0x3306d9[_0x54bc('0x2b')],_0x3306d9['cause-txt']));dials[_0x3306d9[_0x54bc('0x6')]]=_['assign'](dials[_0x3306d9['uniqueid']],{'endtime':utils[_0x54bc('0x1e')](),'lastevent':_0x54bc('0x2c')});dials[_0x3306d9['uniqueid']]['duration']=utils['diffTime'](dials[_0x3306d9['uniqueid']][_0x54bc('0x2d')],dials[_0x3306d9[_0x54bc('0x6')]][_0x54bc('0x2e')]);dials[_0x3306d9[_0x54bc('0x6')]][_0x54bc('0x2f')]=utils[_0x54bc('0x30')](dials[_0x3306d9[_0x54bc('0x6')]][_0x54bc('0x24')]||dials[_0x3306d9[_0x54bc('0x6')]]['endtime'],dials[_0x3306d9['uniqueid']][_0x54bc('0x2e')]);dials[_0x3306d9[_0x54bc('0x6')]]['billableseconds']=dials[_0x3306d9[_0x54bc('0x6')]][_0x54bc('0x24')]?utils[_0x54bc('0x30')](dials[_0x3306d9[_0x54bc('0x6')]]['endtime'],dials[_0x3306d9[_0x54bc('0x6')]][_0x54bc('0x24')]):0x0;writeDB(dials[_0x3306d9[_0x54bc('0x6')]]);}}catch(_0x2559f9){utils['error'](util['format'](_0x54bc('0x28'),_0x3306d9['uniqueid']),_0x2559f9);}};