Built motion from commit (unavailable).|2.4.13
[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 _0xc788=['awsPolly','polly','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','path','http','url','parse','randomstring','sox','request-promise','util','querystring','google-tts-api','apiai-promise','./google','./aws','./sestek','../../../config/logger','https://api.ispeech.org/api/rest','protocol','https:','host','get','error','request\x20to\x20','statusCode','statusMessage','finish','finish\x20download\x20file','download\x20error','pipe','end','WHAT_EVER','\x20failed,\x20status\x20code\x20=\x20','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','.wav','writeFileSync','base64','then','unlink','chmodSync','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','text:synthesize','tmp','generate','.mp3','from','writeFile','777','googleCloudTTS\x20path','googleTTS','info','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','[%s]\x20%s:%s','name','message','textRequest','stringify','source','result','action','fulfillment','speech','score','status','code','metadata','endConversation','isFallbackIntent','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence'];(function(_0x5735fc,_0x113502){var _0xf4b84=function(_0x2cc901){while(--_0x2cc901){_0x5735fc['push'](_0x5735fc['shift']());}};_0xf4b84(++_0x113502);}(_0xc788,0x82));var _0x8c78=function(_0x631a3c,_0x1b61b6){_0x631a3c=_0x631a3c-0x0;var _0x2bdfa3=_0xc788[_0x631a3c];return _0x2bdfa3;};'use strict';var fs=require('fs');var path=require(_0x8c78('0x0'));var http=require(_0x8c78('0x1'));var https=require('https');var urlParse=require(_0x8c78('0x2'))[_0x8c78('0x3')];var BPromise=require('bluebird');var rs=require(_0x8c78('0x4'));var sox=require(_0x8c78('0x5'));var rp=require(_0x8c78('0x6'));var util=require(_0x8c78('0x7'));var querystring=require(_0x8c78('0x8'));var tts=require(_0x8c78('0x9'));var apiai=require(_0x8c78('0xa'));var md5=require('md5');var google=require(_0x8c78('0xb'));var aws=require(_0x8c78('0xc'));var tilde=require('./tilde');var sestek=require(_0x8c78('0xd'));var logger=require(_0x8c78('0xe'))('agi');var ISPEECH_API=_0x8c78('0xf');function downloadFile(_0x521f4a,_0x48af94){return new BPromise(function(_0x11aa8e,_0x442cdc){var _0x2d7994=urlParse(_0x521f4a);var _0x4061f2=_0x2d7994[_0x8c78('0x10')]===_0x8c78('0x11')?https:http;var _0x48f55e={'host':_0x2d7994[_0x8c78('0x12')],'path':_0x2d7994['path'],'headers':{'user-agent':'WHAT_EVER'}};_0x4061f2[_0x8c78('0x13')](_0x48f55e,function(_0xb34a81){if(_0xb34a81['statusCode']!==0xc8){logger[_0x8c78('0x14')](_0x8c78('0x15')+_0x521f4a+'\x20failed,\x20status\x20code\x20=\x20'+_0xb34a81[_0x8c78('0x16')]+'\x20('+_0xb34a81['statusMessage']+')');_0x442cdc(new Error(_0x8c78('0x15')+_0x521f4a+'\x20failed,\x20status\x20code\x20=\x20'+_0xb34a81[_0x8c78('0x16')]+'\x20('+_0xb34a81[_0x8c78('0x17')]+')'));return;}var _0x54370c=fs['createWriteStream'](_0x48af94);_0x54370c['on'](_0x8c78('0x18'),function(){logger['info'](_0x8c78('0x19'));_0x54370c['close'](_0x11aa8e);});_0x54370c['on'](_0x8c78('0x14'),function(_0x47ab01){fs['unlink'](_0x48af94);logger[_0x8c78('0x14')](_0x8c78('0x1a'),_0x47ab01);_0x442cdc(_0x47ab01);});_0xb34a81[_0x8c78('0x1b')](_0x54370c);})['on'](_0x8c78('0x14'),function(_0x375bea){logger[_0x8c78('0x14')](_0x375bea);_0x442cdc(_0x375bea);})[_0x8c78('0x1c')]();});}function uploadFile(_0x575b42){return new BPromise(function(_0x1b8448,_0x807275){var _0xd85e8d=urlParse(_0x575b42);var _0x565cd2=_0xd85e8d[_0x8c78('0x10')]===_0x8c78('0x11')?https:http;var _0x7c184c={'host':_0xd85e8d[_0x8c78('0x12')],'path':_0xd85e8d[_0x8c78('0x0')],'headers':{'user-agent':_0x8c78('0x1d')}};_0x565cd2[_0x8c78('0x13')](_0x7c184c,function(_0xb02058){if(_0xb02058[_0x8c78('0x16')]!==0xc8){_0x807275(new Error(_0x8c78('0x15')+_0x575b42+_0x8c78('0x1e')+_0xb02058[_0x8c78('0x16')]+'\x20('+_0xb02058['statusMessage']+')'));return;}var _0x5363cd='';_0xb02058['on']('data',function(_0x439d55){_0x5363cd+=_0x439d55;});_0xb02058['on'](_0x8c78('0x1c'),function(){_0x1b8448(_0x5363cd);});})['on']('error',function(_0x4d4196){_0x807275(_0x4d4196);})[_0x8c78('0x1c')]();});}function convertFile(_0x2cbdfe,_0x1b2ec3){return new BPromise(function(_0x282bcf,_0x14c2d0){var _0x2cffb5=sox[_0x8c78('0x1f')](_0x2cbdfe,_0x1b2ec3,{'sampleRate':0x1f40,'format':_0x8c78('0x20'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x2cffb5['on'](_0x8c78('0x14'),function(_0x3e2d44){logger[_0x8c78('0x14')](_0x8c78('0x21'),_0x3e2d44);_0x14c2d0(_0x3e2d44);});_0x2cffb5['on']('end',function(){logger['info'](_0x8c78('0x22'));_0x282bcf();});_0x2cffb5[_0x8c78('0x23')]();});}function base64Decode(_0x2282e4,_0x3a8384){var _0x264b82=path[_0x8c78('0x24')](__dirname,'tmp',rs['generate'](0x4)+_0x8c78('0x25'));fs[_0x8c78('0x26')](_0x264b82,_0x2282e4,_0x8c78('0x27'));return convertFile(_0x264b82,_0x3a8384)[_0x8c78('0x28')](function(){try{fs[_0x8c78('0x29')](_0x264b82);fs[_0x8c78('0x2a')](_0x3a8384,'777');}catch(_0x18609f){logger['error'](_0x18609f);}return _0x3a8384[_0x8c78('0x2b')]('.')[0x0];});}function base64Encode(_0x5fa360){var _0x17d318=fs[_0x8c78('0x2c')](_0x5fa360);return new Buffer(_0x17d318)[_0x8c78('0x2d')](_0x8c78('0x27'));}exports[_0x8c78('0x2e')]=function(_0xc1731,_0x5ad1d1,_0x3078a9,_0x491e4b,_0xdcff99,_0x581b3d){var _0x1924b0,_0x2449c9;var _0x14012c=_0x8c78('0x2f');var _0x1f2b0d=_0x8c78('0x30')+_0xc1731;var _0x336373={};if(_0x5ad1d1===_0x8c78('0x31')){_0x336373[_0x8c78('0x32')]={'ssml':_0x3078a9};}else{_0x336373[_0x8c78('0x32')]={'text':_0x3078a9};};_0x336373[_0x8c78('0x33')]={'languageCode':_0x491e4b,'ssmlGender':_0xdcff99};_0x336373[_0x8c78('0x34')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0xd49755={'url':_0x14012c+_0x8c78('0x35')+_0x1f2b0d,'method':'POST','json':!![],'body':_0x336373};return rp(_0xd49755)[_0x8c78('0x28')](function(_0x37302d){return new BPromise(function(_0xdf6b45,_0x437f59){_0x1924b0=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+_0x8c78('0x38'));var _0x40c9d9=Buffer[_0x8c78('0x39')](_0x37302d['audioContent'],_0x8c78('0x27'));return fs[_0x8c78('0x3a')](_0x1924b0,_0x40c9d9,function(_0x5dfb99){_0x437f59(_0x5dfb99);},function(_0x4855cc){fs[_0x8c78('0x2a')](_0x1924b0,'777');_0xdf6b45(_0x4855cc);});});})['then'](function(_0x1f03d3){_0x2449c9=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+'.wav');return convertFile(_0x1924b0,_0x2449c9);})[_0x8c78('0x28')](function(){try{fs[_0x8c78('0x29')](_0x1924b0);fs[_0x8c78('0x2a')](_0x2449c9,_0x8c78('0x3b'));}catch(_0x260c1a){logger[_0x8c78('0x14')](_0x260c1a);}logger['info'](_0x8c78('0x3c'),_0x2449c9[_0x8c78('0x2b')]('.')[0x0]);return _0x2449c9[_0x8c78('0x2b')]('.')[0x0];});};exports[_0x8c78('0x3d')]=function(_0x54ca9f,_0x51bb1d){var _0x56df38,_0x238127;return tts(_0x54ca9f,_0x51bb1d||'en',0x1)['then'](function(_0x37c01d){logger[_0x8c78('0x3e')](_0x37c01d);_0x56df38=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs['generate'](0x4)+'.mp3');return downloadFile(_0x37c01d,_0x56df38);})['then'](function(){_0x238127=path['resolve'](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+_0x8c78('0x25'));return convertFile(_0x56df38,_0x238127);})[_0x8c78('0x28')](function(){try{fs[_0x8c78('0x29')](_0x56df38);fs[_0x8c78('0x2a')](_0x238127,_0x8c78('0x3b'));}catch(_0xd55719){logger[_0x8c78('0x14')](_0xd55719);}logger['info'](_0x8c78('0x3f'),_0x238127['split']('.')[0x0]);return _0x238127[_0x8c78('0x2b')]('.')[0x0];});};exports[_0x8c78('0x40')]=function(_0x131549,_0x338d05,_0x11cec1){return google[_0x8c78('0x41')](_0x131549,_0x338d05,_0x11cec1)[_0x8c78('0x28')](function(_0x731343){logger[_0x8c78('0x3e')](_0x731343[_0x8c78('0x42')]);return rp(_0x731343);})[_0x8c78('0x28')](function(_0x27224f){var _0x1b496f='';var _0x58e0ff=0x0;try{fs[_0x8c78('0x29')](_0x131549);}catch(_0x4c631a){logger[_0x8c78('0x14')](_0x4c631a);}if(_0x27224f&&_0x27224f[_0x8c78('0x43')]){_0x1b496f=_0x27224f[_0x8c78('0x43')][_0x8c78('0x44')](function(_0x9e3033){return _0x9e3033&&_0x9e3033[_0x8c78('0x45')][0x0]&&_0x9e3033[_0x8c78('0x45')][0x0][_0x8c78('0x46')]?_0x9e3033[_0x8c78('0x45')][0x0][_0x8c78('0x46')]:'';})[_0x8c78('0x47')]('\x0a');_0x58e0ff=_0x27224f[_0x8c78('0x43')][_0x8c78('0x44')](function(_0x413741){return _0x413741&&_0x413741['alternatives'][0x0]&&_0x413741[_0x8c78('0x45')][0x0][_0x8c78('0x48')]?_0x413741['alternatives'][0x0][_0x8c78('0x48')]:0x0;})[_0x8c78('0x47')]('\x0a');}logger[_0x8c78('0x3e')](_0x8c78('0x49'),_0x1b496f);logger['info'](_0x8c78('0x4a'),_0x58e0ff);return{'transcript':_0x1b496f,'confidence':_0x58e0ff};})['catch'](function(_0x468972){logger['error'](_0x8c78('0x4b'),_0x468972['statusCode'],_0x468972[_0x8c78('0x4c')],_0x468972[_0x8c78('0x4d')]);});};exports['googleDialogflow']=function(_0x4cd689,_0x5596dd,_0x239417,_0x24004e){var _0x2d57e0=apiai(_0x5596dd,{'language':_0x24004e||'en'});return _0x2d57e0[_0x8c78('0x4e')](_0x239417,{'sessionId':md5(_0x4cd689)})[_0x8c78('0x28')](function(_0x384acd){logger[_0x8c78('0x3e')](JSON[_0x8c78('0x4f')](_0x384acd));return{'source':_0x384acd['result'][_0x8c78('0x50')],'resolvedQuery':_0x384acd['result']['resolvedQuery'],'action':_0x384acd[_0x8c78('0x51')][_0x8c78('0x52')],'actionIncomplete':_0x384acd[_0x8c78('0x51')]['actionIncomplete'],'speech':_0x384acd[_0x8c78('0x51')][_0x8c78('0x53')][_0x8c78('0x54')],'score':_0x384acd['result'][_0x8c78('0x55')],'statusCode':_0x384acd[_0x8c78('0x56')][_0x8c78('0x57')],'endConversation':_0x384acd[_0x8c78('0x51')][_0x8c78('0x58')][_0x8c78('0x59')]||![],'isFallbackIntent':_0x384acd[_0x8c78('0x51')][_0x8c78('0x58')][_0x8c78('0x5a')]};});};exports[_0x8c78('0x5b')]=function(_0x43fc85,_0x23641e,_0x36e6b0,_0x25ff39){return tilde[_0x8c78('0x41')](_0x43fc85,_0x23641e,_0x36e6b0,_0x25ff39)[_0x8c78('0x28')](function(_0x33d849){try{fs[_0x8c78('0x29')](_0x43fc85);}catch(_0x48d224){logger[_0x8c78('0x14')](_0x48d224);}logger['info'](_0x8c78('0x5c'),_0x33d849[_0x8c78('0x46')]);logger['info'](_0x8c78('0x5d'),_0x33d849[_0x8c78('0x48')]);return _0x33d849;});};exports[_0x8c78('0x5e')]=function(_0x2542e2,_0x70303c,_0x8beb74,_0x2d168a,_0x12edf1,_0x1a8708){var _0x158abf=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs['generate'](0x4)+'.mp3');var _0x16f40f;return aws[_0x8c78('0x5f')](_0x2542e2,_0x70303c,_0x8beb74,_0x2d168a,_0x12edf1,_0x1a8708,_0x158abf)[_0x8c78('0x28')](function(){_0x16f40f=path[_0x8c78('0x24')](__dirname,'tmp',rs['generate'](0x4)+_0x8c78('0x25'));return convertFile(_0x158abf,_0x16f40f);})['then'](function(){try{fs[_0x8c78('0x29')](_0x158abf);fs[_0x8c78('0x2a')](_0x16f40f,_0x8c78('0x3b'));}catch(_0x1a97f0){logger[_0x8c78('0x14')](_0x1a97f0);}return _0x16f40f[_0x8c78('0x2b')]('.')[0x0];});};exports[_0x8c78('0x60')]=function(_0x638d48,_0x3890fd,_0xcc2966,_0x1d62d2,_0x2f8a35,_0x2367b5){return aws[_0x8c78('0x61')](_0x638d48,_0x3890fd,_0xcc2966,_0x1d62d2,_0x2f8a35,_0x2367b5)[_0x8c78('0x28')](function(_0x47fe9c){logger[_0x8c78('0x3e')](JSON[_0x8c78('0x4f')](_0x47fe9c));return _0x47fe9c;});};exports[_0x8c78('0x62')]=function(_0x584073,_0x1b464e,_0x2d04b6,_0x535d3e){var _0x5dd285=util[_0x8c78('0x63')](_0x8c78('0x64'),ISPEECH_API,_0x584073,encodeURIComponent(_0x1b464e),_0x2d04b6,_0x535d3e);var _0x2aa2a5=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+'.mp3');var _0x412d43;return downloadFile(_0x5dd285,_0x2aa2a5)[_0x8c78('0x28')](function(){_0x412d43=path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+_0x8c78('0x25'));return convertFile(_0x2aa2a5,_0x412d43);})['then'](function(){try{fs[_0x8c78('0x29')](_0x2aa2a5);fs['chmodSync'](_0x412d43,_0x8c78('0x3b'));}catch(_0x56f30b){logger[_0x8c78('0x14')](_0x56f30b);}return _0x412d43[_0x8c78('0x2b')]('.')[0x0];});};exports['ispeechASR']=function(_0x10a8ac,_0x53c7e1,_0x48e630,_0x15c66e){var _0x1d13d8=util[_0x8c78('0x63')](_0x8c78('0x65'),ISPEECH_API,_0x53c7e1,_0x48e630,base64Encode(_0x10a8ac),_0x15c66e?util[_0x8c78('0x63')](_0x8c78('0x66'),encodeURIComponent(_0x15c66e)):_0x8c78('0x67'));return uploadFile(_0x1d13d8)['then'](function(_0x3537b7){return querystring[_0x8c78('0x3')](_0x3537b7);});};exports['sestekNDA']=function(_0x103cf9,_0x4311af){return sestek[_0x8c78('0x68')](_0x103cf9,_0x4311af)[_0x8c78('0x28')](function(_0xcc41ad){logger[_0x8c78('0x3e')](JSON[_0x8c78('0x4f')](_0xcc41ad));var _0x514708={'speech':_0xcc41ad[_0x8c78('0x69')],'action':_0xcc41ad[_0x8c78('0x6a')]?_0xcc41ad[_0x8c78('0x6a')][_0x8c78('0x6b')]:undefined,'actiondata':_0xcc41ad[_0x8c78('0x6a')]?_0xcc41ad['channelData'][_0x8c78('0x6c')]:undefined};if(_0xcc41ad['channelData']&&_0xcc41ad[_0x8c78('0x6a')]['AudioFromTts']){return base64Decode(_0xcc41ad[_0x8c78('0x6a')][_0x8c78('0x6d')][_0x8c78('0x6e')],path[_0x8c78('0x24')](__dirname,_0x8c78('0x36'),rs[_0x8c78('0x37')](0x4)+'.wav'))[_0x8c78('0x28')](function(_0x1088a3){_0x514708[_0x8c78('0x6f')]=_0x1088a3;return _0x514708;});}return _0x514708;});};exports['dirName']=function(){return __dirname;};