53c55458fb90ac82a047038c7d03996ec354f790
[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 _0xebbb=['[%s][dials][dialbegin]','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','util','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','dialstring','connectedlinenum','dialstatus','uniqueid','newexten','debug','[%s][dials][newexten]','appdata','toLowerCase','set','cdr(routeid)','split','error','varset','[%s][dials][varset]','isNil','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called'];(function(_0x3701be,_0x3047a1){var _0x4eb8dd=function(_0x311327){while(--_0x311327){_0x3701be['push'](_0x3701be['shift']());}};_0x4eb8dd(++_0x3047a1);}(_0xebbb,0x71));var _0xbebb=function(_0x9e1949,_0x19734c){_0x9e1949=_0x9e1949-0x0;var _0x2908ef=_0xebbb[_0x9e1949];return _0x2908ef;};'use strict';var _=require('lodash');var util=require(_0xbebb('0x0'));var utils=require('./utils');var dials={};function writeDB(_0x33df12){utils[_0xbebb('0x1')](util[_0xbebb('0x2')](_0xbebb('0x3'),_0x33df12['uniqueid'],_0x33df12[_0xbebb('0x4')],_0x33df12[_0xbebb('0x5')],_0x33df12['calleridnum'],_0x33df12[_0xbebb('0x6')],_0x33df12[_0xbebb('0x7')]));utils['request']('CreateVoiceDialReport',_0x33df12);delete dials[_0x33df12[_0xbebb('0x8')]];}exports[_0xbebb('0x9')]=function(_0x55bcfd){try{utils[_0xbebb('0xa')](util['format'](_0xbebb('0xb'),_0x55bcfd[_0xbebb('0x8')]),_0x55bcfd);utils[_0xbebb('0x1')](util[_0xbebb('0x2')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x55bcfd['uniqueid'],_0x55bcfd['application'],_0x55bcfd[_0xbebb('0xc')]));if(_0x55bcfd['application'][_0xbebb('0xd')]()==_0xbebb('0xe')&&_['startsWith'](_0x55bcfd[_0xbebb('0xc')][_0xbebb('0xd')](),_0xbebb('0xf'))){var _0xaead5e=_0x55bcfd[_0xbebb('0xc')][_0xbebb('0x10')]('=');dials[_0x55bcfd[_0xbebb('0x8')]]={'routeId':_0xaead5e[0x1]};}}catch(_0xc04998){utils[_0xbebb('0x11')](util[_0xbebb('0x2')](_0xbebb('0xb'),_0x55bcfd[_0xbebb('0x8')]),_0xc04998);}};exports[_0xbebb('0x12')]=function(_0x296a96){try{utils[_0xbebb('0xa')](util[_0xbebb('0x2')](_0xbebb('0x13'),_0x296a96['uniqueid']),_0x296a96);if(!_[_0xbebb('0x14')](_0x296a96['variable'][_0xbebb('0x15')])){utils[_0xbebb('0x1')](util[_0xbebb('0x2')](_0xbebb('0x16'),_0x296a96[_0xbebb('0x8')],_0x296a96['value']));dials[_0x296a96[_0xbebb('0x8')]]={'routeId':_0x296a96[_0xbebb('0x17')]};}}catch(_0x2cd66b){utils[_0xbebb('0x11')](util['format'](_0xbebb('0x13'),_0x296a96[_0xbebb('0x8')]),_0x2cd66b);}};exports[_0xbebb('0x18')]=function(_0x3fefab){try{if(!_[_0xbebb('0x14')](dials[_0x3fefab[_0xbebb('0x8')]])){utils['debug'](util[_0xbebb('0x2')]('[%s][dials][dialbegin]',_0x3fefab['uniqueid']),_0x3fefab);dials[_0x3fefab[_0xbebb('0x8')]]=_[_0xbebb('0x19')](dials[_0x3fefab[_0xbebb('0x8')]],_0x3fefab);dials[_0x3fefab[_0xbebb('0x8')]][_0xbebb('0x1a')]=utils[_0xbebb('0x1b')]();dials[_0x3fefab[_0xbebb('0x8')]][_0xbebb('0x1c')]=_0xbebb('0x1d');utils['info'](util[_0xbebb('0x2')](_0xbebb('0x1e'),_0x3fefab[_0xbebb('0x8')],dials[_0x3fefab['uniqueid']][_0xbebb('0x1a')]));}}catch(_0x2339d4){utils[_0xbebb('0x11')](util[_0xbebb('0x2')](_0xbebb('0x1f'),_0x3fefab['uniqueid']),_0x2339d4);}};exports[_0xbebb('0x20')]=function(_0x199db5){try{if(!_['isNil'](dials[_0x199db5['uniqueid']])){utils['debug'](util['format'](_0xbebb('0x21'),_0x199db5[_0xbebb('0x8')]),_0x199db5);dials[_0x199db5[_0xbebb('0x8')]]['dialstatus']=_0x199db5['dialstatus'];if(_0x199db5[_0xbebb('0x7')]==_0xbebb('0x22')){dials[_0x199db5['uniqueid']]=_[_0xbebb('0x19')](dials[_0x199db5[_0xbebb('0x8')]],_0x199db5);dials[_0x199db5[_0xbebb('0x8')]][_0xbebb('0x23')]=utils[_0xbebb('0x1b')]();dials[_0x199db5[_0xbebb('0x8')]]['lastevent']=_0xbebb('0x24');utils[_0xbebb('0x1')](util[_0xbebb('0x2')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x199db5[_0xbebb('0x8')],_0x199db5['dialstatus'],dials[_0x199db5[_0xbebb('0x8')]]['answertime']));}else{utils[_0xbebb('0x1')](util['format'](_0xbebb('0x25'),_0x199db5['uniqueid'],_0x199db5[_0xbebb('0x7')]));}}}catch(_0x5083f1){utils[_0xbebb('0x11')](util[_0xbebb('0x2')](_0xbebb('0x21'),_0x199db5['uniqueid']),_0x5083f1);}};exports['hangup']=function(_0x5a2c10){try{if(!_[_0xbebb('0x14')](dials[_0x5a2c10['uniqueid']])){utils['debug'](util['format'](_0xbebb('0x26'),_0x5a2c10[_0xbebb('0x8')]),_0x5a2c10);utils[_0xbebb('0x1')](util[_0xbebb('0x2')](_0xbebb('0x27'),_0x5a2c10[_0xbebb('0x8')],_0x5a2c10[_0xbebb('0x28')],_0x5a2c10['calleridname'],_0x5a2c10[_0xbebb('0x29')]));dials[_0x5a2c10[_0xbebb('0x8')]]=_['assign'](dials[_0x5a2c10[_0xbebb('0x8')]],{'endtime':utils['now'](),'lastevent':_0xbebb('0x2a')});dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x2b')]=utils[_0xbebb('0x2c')](dials[_0x5a2c10['uniqueid']][_0xbebb('0x2d')],dials[_0x5a2c10['uniqueid']][_0xbebb('0x1a')]);dials[_0x5a2c10['uniqueid']][_0xbebb('0x2e')]=utils[_0xbebb('0x2c')](dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x23')]||dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x2d')],dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x1a')]);dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x2f')]=dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x23')]?utils['diffTime'](dials[_0x5a2c10[_0xbebb('0x8')]][_0xbebb('0x2d')],dials[_0x5a2c10['uniqueid']][_0xbebb('0x23')]):0x0;writeDB(dials[_0x5a2c10[_0xbebb('0x8')]]);}}catch(_0x14e755){utils[_0xbebb('0x11')](util['format']('[%s][dials][hangup]',_0x5a2c10[_0xbebb('0x8')]),_0x14e755);}};