Built motion from commit (unavailable).|2.5.3
[motion2.git] / server / services / agi / scripts / index.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 _0x06de=['request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','close','error','download\x20error','pipe','end','data','wav','error\x20convert','info','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','writeFileSync','base64','unlink','chmodSync','777','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','MP3','POST','then','from','audioContent','writeFile','.mp3','goggleTTS\x20path','asr','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','catch','[%s]\x20%s:%s','name','googleDialogflow','textRequest','stringify','result','source','resolvedQuery','action','actionIncomplete','speech','status','code','metadata','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','awsLex','lex','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','parse','sestekNDA','nda','text','channelData','AudioFromTts','Data','audiofile','dirName','path','http','https','url','bluebird','randomstring','sox','request-promise','util','querystring','google-tts-api','apiai-promise','./google','./aws','./tilde','./sestek','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','https:','host','WHAT_EVER','get','statusCode'];(function(_0x37767,_0x1bef36){var _0x4aa26d=function(_0x5afa31){while(--_0x5afa31){_0x37767['push'](_0x37767['shift']());}};_0x4aa26d(++_0x1bef36);}(_0x06de,0x1a3));var _0xe06d=function(_0x5e7514,_0x30c2e1){_0x5e7514=_0x5e7514-0x0;var _0x12f472=_0x06de[_0x5e7514];return _0x12f472;};'use strict';var fs=require('fs');var path=require(_0xe06d('0x0'));var http=require(_0xe06d('0x1'));var https=require(_0xe06d('0x2'));var urlParse=require(_0xe06d('0x3'))['parse'];var BPromise=require(_0xe06d('0x4'));var rs=require(_0xe06d('0x5'));var sox=require(_0xe06d('0x6'));var rp=require(_0xe06d('0x7'));var util=require(_0xe06d('0x8'));var querystring=require(_0xe06d('0x9'));var tts=require(_0xe06d('0xa'));var apiai=require(_0xe06d('0xb'));var md5=require('md5');var google=require(_0xe06d('0xc'));var aws=require(_0xe06d('0xd'));var tilde=require(_0xe06d('0xe'));var sestek=require(_0xe06d('0xf'));var logger=require(_0xe06d('0x10'))(_0xe06d('0x11'));var ISPEECH_API=_0xe06d('0x12');function downloadFile(_0x5a7948,_0x27a02d){return new BPromise(function(_0x322424,_0x42463d){var _0x524aef=urlParse(_0x5a7948);var _0x512448=_0x524aef[_0xe06d('0x13')]===_0xe06d('0x14')?https:http;var _0x231ee3={'host':_0x524aef[_0xe06d('0x15')],'path':_0x524aef[_0xe06d('0x0')],'headers':{'user-agent':_0xe06d('0x16')}};_0x512448[_0xe06d('0x17')](_0x231ee3,function(_0x8401ce){if(_0x8401ce[_0xe06d('0x18')]!==0xc8){logger['error'](_0xe06d('0x19')+_0x5a7948+_0xe06d('0x1a')+_0x8401ce[_0xe06d('0x18')]+'\x20('+_0x8401ce[_0xe06d('0x1b')]+')');_0x42463d(new Error('request\x20to\x20'+_0x5a7948+_0xe06d('0x1a')+_0x8401ce['statusCode']+'\x20('+_0x8401ce['statusMessage']+')'));return;}var _0x30ed8b=fs[_0xe06d('0x1c')](_0x27a02d);_0x30ed8b['on']('finish',function(){logger['info']('finish\x20download\x20file');_0x30ed8b[_0xe06d('0x1d')](_0x322424);});_0x30ed8b['on'](_0xe06d('0x1e'),function(_0x62ee39){fs['unlink'](_0x27a02d);logger['error'](_0xe06d('0x1f'),_0x62ee39);_0x42463d(_0x62ee39);});_0x8401ce[_0xe06d('0x20')](_0x30ed8b);})['on'](_0xe06d('0x1e'),function(_0x318a94){logger[_0xe06d('0x1e')](_0x318a94);_0x42463d(_0x318a94);})[_0xe06d('0x21')]();});}function uploadFile(_0xca0991){return new BPromise(function(_0x28cceb,_0x329b5a){var _0x3af34c=urlParse(_0xca0991);var _0x4e9954=_0x3af34c[_0xe06d('0x13')]==='https:'?https:http;var _0x1237c6={'host':_0x3af34c[_0xe06d('0x15')],'path':_0x3af34c[_0xe06d('0x0')],'headers':{'user-agent':_0xe06d('0x16')}};_0x4e9954['get'](_0x1237c6,function(_0x8e3116){if(_0x8e3116['statusCode']!==0xc8){_0x329b5a(new Error('request\x20to\x20'+_0xca0991+_0xe06d('0x1a')+_0x8e3116['statusCode']+'\x20('+_0x8e3116[_0xe06d('0x1b')]+')'));return;}var _0x33f1e9='';_0x8e3116['on'](_0xe06d('0x22'),function(_0x3dc806){_0x33f1e9+=_0x3dc806;});_0x8e3116['on'](_0xe06d('0x21'),function(){_0x28cceb(_0x33f1e9);});})['on'](_0xe06d('0x1e'),function(_0x15bcae){_0x329b5a(_0x15bcae);})[_0xe06d('0x21')]();});}function convertFile(_0x50ad3c,_0x2b894e){return new BPromise(function(_0x3d626b,_0x27992f){var _0x1f7ba5=sox['transcode'](_0x50ad3c,_0x2b894e,{'sampleRate':0x1f40,'format':_0xe06d('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1f7ba5['on'](_0xe06d('0x1e'),function(_0x30f87d){logger['error'](_0xe06d('0x24'),_0x30f87d);_0x27992f(_0x30f87d);});_0x1f7ba5['on'](_0xe06d('0x21'),function(){logger[_0xe06d('0x25')](_0xe06d('0x26'));_0x3d626b();});_0x1f7ba5[_0xe06d('0x27')]();});}function base64Decode(_0x3b7463,_0x9287fc){var _0x224478=path[_0xe06d('0x28')](__dirname,_0xe06d('0x29'),rs[_0xe06d('0x2a')](0x4)+_0xe06d('0x2b'));fs[_0xe06d('0x2c')](_0x224478,_0x3b7463,_0xe06d('0x2d'));return convertFile(_0x224478,_0x9287fc)['then'](function(){try{fs[_0xe06d('0x2e')](_0x224478);fs[_0xe06d('0x2f')](_0x9287fc,_0xe06d('0x30'));}catch(_0x8096e6){logger[_0xe06d('0x1e')](_0x8096e6);}return _0x9287fc[_0xe06d('0x31')]('.')[0x0];});}function base64Encode(_0x4913df){var _0x2323ca=fs[_0xe06d('0x32')](_0x4913df);return new Buffer(_0x2323ca)[_0xe06d('0x33')](_0xe06d('0x2d'));}exports[_0xe06d('0x34')]=function(_0x20c83f,_0x44e4f6,_0xd553b2,_0x379cc5,_0x433bfa,_0x54798a){var _0x49b5d2,_0x1d582d;var _0x1bdb2f=_0xe06d('0x35');var _0x1e280e=_0xe06d('0x36')+_0x20c83f;var _0x59e0f0={};if(_0x44e4f6===_0xe06d('0x37')){_0x59e0f0['input']={'ssml':_0xd553b2};}else{_0x59e0f0[_0xe06d('0x38')]={'text':_0xd553b2};};_0x59e0f0[_0xe06d('0x39')]={'languageCode':_0x379cc5,'ssmlGender':_0x433bfa};_0x59e0f0[_0xe06d('0x3a')]={'audioEncoding':_0xe06d('0x3b'),'sampleRateHertz':0x1f40};var _0xd42760={'url':_0x1bdb2f+'text:synthesize'+_0x1e280e,'method':_0xe06d('0x3c'),'json':!![],'body':_0x59e0f0};return rp(_0xd42760)[_0xe06d('0x3d')](function(_0x3d84cd){return new BPromise(function(_0xc9ce5d,_0x45ac4c){_0x49b5d2=path['resolve'](__dirname,_0xe06d('0x29'),rs['generate'](0x4)+'.mp3');var _0x2a66d3=Buffer[_0xe06d('0x3e')](_0x3d84cd[_0xe06d('0x3f')],_0xe06d('0x2d'));return fs[_0xe06d('0x40')](_0x49b5d2,_0x2a66d3,function(_0x303b2c){_0x45ac4c(_0x303b2c);},function(_0x5c2962){fs[_0xe06d('0x2f')](_0x49b5d2,_0xe06d('0x30'));_0xc9ce5d(_0x5c2962);});});})['then'](function(_0xcb0ba0){_0x1d582d=path['resolve'](__dirname,_0xe06d('0x29'),rs[_0xe06d('0x2a')](0x4)+_0xe06d('0x2b'));return convertFile(_0x49b5d2,_0x1d582d);})[_0xe06d('0x3d')](function(){try{fs[_0xe06d('0x2e')](_0x49b5d2);fs[_0xe06d('0x2f')](_0x1d582d,_0xe06d('0x30'));}catch(_0x584a42){logger[_0xe06d('0x1e')](_0x584a42);}logger['info']('googleCloudTTS\x20path',_0x1d582d[_0xe06d('0x31')]('.')[0x0]);return _0x1d582d[_0xe06d('0x31')]('.')[0x0];});};exports['googleTTS']=function(_0x415ca2,_0x35af8a){var _0x5d6350,_0xdd4d42;return tts(_0x415ca2,_0x35af8a||'en',0x1)[_0xe06d('0x3d')](function(_0x46ee28){logger['info'](_0x46ee28);_0x5d6350=path['resolve'](__dirname,_0xe06d('0x29'),rs[_0xe06d('0x2a')](0x4)+_0xe06d('0x41'));return downloadFile(_0x46ee28,_0x5d6350);})['then'](function(){_0xdd4d42=path[_0xe06d('0x28')](__dirname,'tmp',rs[_0xe06d('0x2a')](0x4)+_0xe06d('0x2b'));return convertFile(_0x5d6350,_0xdd4d42);})[_0xe06d('0x3d')](function(){try{fs['unlink'](_0x5d6350);fs['chmodSync'](_0xdd4d42,'777');}catch(_0x341fc5){logger[_0xe06d('0x1e')](_0x341fc5);}logger[_0xe06d('0x25')](_0xe06d('0x42'),_0xdd4d42[_0xe06d('0x31')]('.')[0x0]);return _0xdd4d42[_0xe06d('0x31')]('.')[0x0];});};exports['googleASR']=function(_0x58440f,_0x5e5035,_0x14e3d2){return google[_0xe06d('0x43')](_0x58440f,_0x5e5035,_0x14e3d2)[_0xe06d('0x3d')](function(_0x3c9bb6){logger[_0xe06d('0x25')](_0x3c9bb6['uri']);return rp(_0x3c9bb6);})[_0xe06d('0x3d')](function(_0x2c678f){var _0x5967b0='';var _0x2874ce=0x0;try{fs[_0xe06d('0x2e')](_0x58440f);}catch(_0x21f2aa){logger[_0xe06d('0x1e')](_0x21f2aa);}if(_0x2c678f&&_0x2c678f['results']){_0x5967b0=_0x2c678f[_0xe06d('0x44')][_0xe06d('0x45')](function(_0x2c8a97){return _0x2c8a97&&_0x2c8a97[_0xe06d('0x46')][0x0]&&_0x2c8a97[_0xe06d('0x46')][0x0][_0xe06d('0x47')]?_0x2c8a97['alternatives'][0x0][_0xe06d('0x47')]:'';})[_0xe06d('0x48')]('\x0a');_0x2874ce=_0x2c678f['results'][_0xe06d('0x45')](function(_0x28e68a){return _0x28e68a&&_0x28e68a['alternatives'][0x0]&&_0x28e68a[_0xe06d('0x46')][0x0][_0xe06d('0x49')]?_0x28e68a[_0xe06d('0x46')][0x0]['confidence']:0x0;})[_0xe06d('0x48')]('\x0a');}logger[_0xe06d('0x25')](_0xe06d('0x4a'),_0x5967b0);logger['info']('googleASR\x20confidence',_0x2874ce);return{'transcript':_0x5967b0,'confidence':_0x2874ce};})[_0xe06d('0x4b')](function(_0x28d834){logger[_0xe06d('0x1e')](_0xe06d('0x4c'),_0x28d834['statusCode'],_0x28d834[_0xe06d('0x4d')],_0x28d834['message']);});};exports[_0xe06d('0x4e')]=function(_0x278be6,_0x274341,_0x2488e4,_0x5c6f33){var _0x2711a0=apiai(_0x274341,{'language':_0x5c6f33||'en'});return _0x2711a0[_0xe06d('0x4f')](_0x2488e4,{'sessionId':md5(_0x278be6)})[_0xe06d('0x3d')](function(_0x529736){logger[_0xe06d('0x25')](JSON[_0xe06d('0x50')](_0x529736));return{'source':_0x529736[_0xe06d('0x51')][_0xe06d('0x52')],'resolvedQuery':_0x529736['result'][_0xe06d('0x53')],'action':_0x529736[_0xe06d('0x51')][_0xe06d('0x54')],'actionIncomplete':_0x529736[_0xe06d('0x51')][_0xe06d('0x55')],'speech':_0x529736[_0xe06d('0x51')]['fulfillment'][_0xe06d('0x56')],'score':_0x529736[_0xe06d('0x51')]['score'],'statusCode':_0x529736[_0xe06d('0x57')][_0xe06d('0x58')],'endConversation':_0x529736[_0xe06d('0x51')]['metadata']['endConversation']||![],'isFallbackIntent':_0x529736['result'][_0xe06d('0x59')]['isFallbackIntent']};});};exports[_0xe06d('0x5a')]=function(_0xed0fd5,_0x1dbf30,_0xc399fc,_0x4b86e3){return tilde['asr'](_0xed0fd5,_0x1dbf30,_0xc399fc,_0x4b86e3)[_0xe06d('0x3d')](function(_0x5aac65){try{fs[_0xe06d('0x2e')](_0xed0fd5);}catch(_0x5eca4d){logger[_0xe06d('0x1e')](_0x5eca4d);}logger[_0xe06d('0x25')](_0xe06d('0x5b'),_0x5aac65[_0xe06d('0x47')]);logger['info'](_0xe06d('0x5c'),_0x5aac65['confidence']);return _0x5aac65;});};exports[_0xe06d('0x5d')]=function(_0x39c6d4,_0x1ce29c,_0x561088,_0x49704b,_0x4632c2,_0xd4c6c0){var _0x52b8ef=path[_0xe06d('0x28')](__dirname,'tmp',rs['generate'](0x4)+_0xe06d('0x41'));var _0x9c3a1f;return aws[_0xe06d('0x5e')](_0x39c6d4,_0x1ce29c,_0x561088,_0x49704b,_0x4632c2,_0xd4c6c0,_0x52b8ef)[_0xe06d('0x3d')](function(){_0x9c3a1f=path[_0xe06d('0x28')](__dirname,_0xe06d('0x29'),rs['generate'](0x4)+'.wav');return convertFile(_0x52b8ef,_0x9c3a1f);})['then'](function(){try{fs[_0xe06d('0x2e')](_0x52b8ef);fs[_0xe06d('0x2f')](_0x9c3a1f,'777');}catch(_0x236214){logger[_0xe06d('0x1e')](_0x236214);}return _0x9c3a1f[_0xe06d('0x31')]('.')[0x0];});};exports[_0xe06d('0x5f')]=function(_0x5ca367,_0x40a095,_0x5733d0,_0x28266c,_0x1c3fdf,_0x70b865){return aws[_0xe06d('0x60')](_0x5ca367,_0x40a095,_0x5733d0,_0x28266c,_0x1c3fdf,_0x70b865)['then'](function(_0x4f0084){logger['info'](JSON[_0xe06d('0x50')](_0x4f0084));return _0x4f0084;});};exports['ispeechTTS']=function(_0x132445,_0x64ac1d,_0x27af69,_0x446f0b){var _0x45726e=util[_0xe06d('0x61')](_0xe06d('0x62'),ISPEECH_API,_0x132445,encodeURIComponent(_0x64ac1d),_0x27af69,_0x446f0b);var _0x5ec880=path[_0xe06d('0x28')](__dirname,_0xe06d('0x29'),rs['generate'](0x4)+_0xe06d('0x41'));var _0x5be31c;return downloadFile(_0x45726e,_0x5ec880)[_0xe06d('0x3d')](function(){_0x5be31c=path[_0xe06d('0x28')](__dirname,_0xe06d('0x29'),rs[_0xe06d('0x2a')](0x4)+_0xe06d('0x2b'));return convertFile(_0x5ec880,_0x5be31c);})[_0xe06d('0x3d')](function(){try{fs['unlink'](_0x5ec880);fs[_0xe06d('0x2f')](_0x5be31c,'777');}catch(_0x5952ce){logger[_0xe06d('0x1e')](_0x5952ce);}return _0x5be31c[_0xe06d('0x31')]('.')[0x0];});};exports[_0xe06d('0x63')]=function(_0x343288,_0x2fc73d,_0x198310,_0x3378d9){var _0xe411bc=util[_0xe06d('0x61')](_0xe06d('0x64'),ISPEECH_API,_0x2fc73d,_0x198310,base64Encode(_0x343288),_0x3378d9?util['format'](_0xe06d('0x65'),encodeURIComponent(_0x3378d9)):'freeform=3');return uploadFile(_0xe411bc)[_0xe06d('0x3d')](function(_0x504b12){return querystring[_0xe06d('0x66')](_0x504b12);});};exports[_0xe06d('0x67')]=function(_0x55b7ff,_0x2c26a4){return sestek[_0xe06d('0x68')](_0x55b7ff,_0x2c26a4)[_0xe06d('0x3d')](function(_0x496b3e){logger[_0xe06d('0x25')](JSON[_0xe06d('0x50')](_0x496b3e));var _0x20c1e4={'speech':_0x496b3e[_0xe06d('0x69')],'action':_0x496b3e[_0xe06d('0x6a')]?_0x496b3e[_0xe06d('0x6a')]['CustomAction']:undefined,'actiondata':_0x496b3e[_0xe06d('0x6a')]?_0x496b3e[_0xe06d('0x6a')]['CustomActionData']:undefined};if(_0x496b3e['channelData']&&_0x496b3e[_0xe06d('0x6a')][_0xe06d('0x6b')]){return base64Decode(_0x496b3e['channelData'][_0xe06d('0x6b')][_0xe06d('0x6c')],path[_0xe06d('0x28')](__dirname,_0xe06d('0x29'),rs['generate'](0x4)+_0xe06d('0x2b')))[_0xe06d('0x3d')](function(_0x524c21){_0x20c1e4[_0xe06d('0x6d')]=_0x524c21;return _0x20c1e4;});}return _0x20c1e4;});};exports[_0xe06d('0x6e')]=function(){return __dirname;};