Built motion from commit (unavailable).|2.0.73
[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 _0x2e62=['unlink','pipe','protocol','https:','data','end','transcode','wav','finish\x20to\x20convert','start','readFileSync','base64','then','info','resolve','generate','.mp3','tmp','.wav','chmodSync','777','goggleTTS\x20path','split','asr','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','textRequest','result','source','resolvedQuery','action','actionIncomplete','fulfillment','speech','status','code','tildeASR','Tilde\x20ASR\x20confidence','awsPolly','polly','ispeechTTS','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','freeform=3','dirName','http','https','url','parse','bluebird','randomstring','util','google-tts-api','apiai-promise','./aws','./tilde','../../../config/logger','agi','https://api.ispeech.org/api/rest','host','path','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish\x20download\x20file','close'];(function(_0x44c340,_0x575719){var _0x2cd080=function(_0x1109ea){while(--_0x1109ea){_0x44c340['push'](_0x44c340['shift']());}};_0x2cd080(++_0x575719);}(_0x2e62,0x136));var _0x22e6=function(_0x3c5cdf,_0x3fff40){_0x3c5cdf=_0x3c5cdf-0x0;var _0x341557=_0x2e62[_0x3c5cdf];return _0x341557;};'use strict';var fs=require('fs');var path=require('path');var http=require(_0x22e6('0x0'));var https=require(_0x22e6('0x1'));var urlParse=require(_0x22e6('0x2'))[_0x22e6('0x3')];var BPromise=require(_0x22e6('0x4'));var rs=require(_0x22e6('0x5'));var sox=require('sox');var rp=require('request-promise');var util=require(_0x22e6('0x6'));var querystring=require('querystring');var moment=require('moment');var tts=require(_0x22e6('0x7'));var apiai=require(_0x22e6('0x8'));var google=require('./google');var aws=require(_0x22e6('0x9'));var tilde=require(_0x22e6('0xa'));var logger=require(_0x22e6('0xb'))(_0x22e6('0xc'));var ISPEECH_API=_0x22e6('0xd');function downloadFile(_0x8b880f,_0x1aae0c){return new BPromise(function(_0x1f1095,_0x5daad3){var _0x5c0d7b=urlParse(_0x8b880f);var _0x17d195=_0x5c0d7b['protocol']==='https:'?https:http;var _0x29aff7={'host':_0x5c0d7b[_0x22e6('0xe')],'path':_0x5c0d7b[_0x22e6('0xf')],'headers':{'user-agent':_0x22e6('0x10')}};_0x17d195[_0x22e6('0x11')](_0x29aff7,function(_0x2bea84){if(_0x2bea84[_0x22e6('0x12')]!==0xc8){logger[_0x22e6('0x13')](_0x22e6('0x14')+_0x8b880f+_0x22e6('0x15')+_0x2bea84[_0x22e6('0x12')]+'\x20('+_0x2bea84['statusMessage']+')');_0x5daad3(new Error(_0x22e6('0x14')+_0x8b880f+_0x22e6('0x15')+_0x2bea84[_0x22e6('0x12')]+'\x20('+_0x2bea84[_0x22e6('0x16')]+')'));return;}var _0x298d37=fs[_0x22e6('0x17')](_0x1aae0c);_0x298d37['on']('finish',function(){logger['info'](_0x22e6('0x18'));_0x298d37[_0x22e6('0x19')](_0x1f1095);});_0x298d37['on'](_0x22e6('0x13'),function(_0x5129de){fs[_0x22e6('0x1a')](_0x1aae0c);logger['error']('download\x20error',_0x5129de);_0x5daad3(_0x5129de);});_0x2bea84[_0x22e6('0x1b')](_0x298d37);})['on']('error',function(_0x499f5a){logger[_0x22e6('0x13')](_0x499f5a);_0x5daad3(_0x499f5a);})['end']();});}function uploadFile(_0x114478){return new BPromise(function(_0x4293c3,_0x340cd5){var _0x5a89f2=urlParse(_0x114478);var _0xef4bad=_0x5a89f2[_0x22e6('0x1c')]===_0x22e6('0x1d')?https:http;var _0x4d2a4a={'host':_0x5a89f2[_0x22e6('0xe')],'path':_0x5a89f2['path'],'headers':{'user-agent':_0x22e6('0x10')}};_0xef4bad[_0x22e6('0x11')](_0x4d2a4a,function(_0xf6dd87){if(_0xf6dd87[_0x22e6('0x12')]!==0xc8){_0x340cd5(new Error(_0x22e6('0x14')+_0x114478+_0x22e6('0x15')+_0xf6dd87[_0x22e6('0x12')]+'\x20('+_0xf6dd87[_0x22e6('0x16')]+')'));return;}var _0x2ab007='';_0xf6dd87['on'](_0x22e6('0x1e'),function(_0x2462eb){_0x2ab007+=_0x2462eb;});_0xf6dd87['on'](_0x22e6('0x1f'),function(){_0x4293c3(_0x2ab007);});})['on']('error',function(_0x493f6a){_0x340cd5(_0x493f6a);})[_0x22e6('0x1f')]();});}function convertFile(_0x36b2aa,_0x2a214f){return new BPromise(function(_0x3f8cf6,_0x2d677b){var _0x236ff1=sox[_0x22e6('0x20')](_0x36b2aa,_0x2a214f,{'sampleRate':0x1f40,'format':_0x22e6('0x21'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x236ff1['on'](_0x22e6('0x13'),function(_0x4af894){logger[_0x22e6('0x13')]('error\x20convert',_0x4af894);_0x2d677b(_0x4af894);});_0x236ff1['on'](_0x22e6('0x1f'),function(){logger['info'](_0x22e6('0x22'));_0x3f8cf6();});_0x236ff1[_0x22e6('0x23')]();});}function base64Encode(_0x3cb6f1){var _0x2b9f13=fs[_0x22e6('0x24')](_0x3cb6f1);return new Buffer(_0x2b9f13)['toString'](_0x22e6('0x25'));}exports['googleTTS']=function(_0x573577,_0x196e69){var _0x57ba07,_0x23a289;return tts(_0x573577,_0x196e69||'en',0x1)[_0x22e6('0x26')](function(_0x595228){logger[_0x22e6('0x27')](_0x595228);_0x57ba07=path[_0x22e6('0x28')](__dirname,'tmp',rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2a'));return downloadFile(_0x595228,_0x57ba07);})[_0x22e6('0x26')](function(){_0x23a289=path[_0x22e6('0x28')](__dirname,_0x22e6('0x2b'),rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2c'));return convertFile(_0x57ba07,_0x23a289);})[_0x22e6('0x26')](function(){try{fs['unlink'](_0x57ba07);fs[_0x22e6('0x2d')](_0x23a289,_0x22e6('0x2e'));}catch(_0x1efd55){logger[_0x22e6('0x13')](_0x1efd55);}logger[_0x22e6('0x27')](_0x22e6('0x2f'),_0x23a289[_0x22e6('0x30')]('.')[0x0]);return _0x23a289[_0x22e6('0x30')]('.')[0x0];});};exports['googleASR']=function(_0x515fb1,_0x3bfe0d,_0xc4fc97){return google[_0x22e6('0x31')](_0x515fb1,_0x3bfe0d,_0xc4fc97)[_0x22e6('0x26')](function(_0xf8cc3d){logger[_0x22e6('0x27')](_0xf8cc3d['uri']);return rp(_0xf8cc3d);})[_0x22e6('0x26')](function(_0x2030df){var _0x186b9b='';var _0x287aae=0x0;try{fs[_0x22e6('0x1a')](_0x515fb1);}catch(_0x16c173){logger[_0x22e6('0x13')](_0x16c173);}if(_0x2030df&&_0x2030df[_0x22e6('0x32')]){_0x186b9b=_0x2030df[_0x22e6('0x32')][_0x22e6('0x33')](function(_0x58c005){return _0x58c005&&_0x58c005[_0x22e6('0x34')][0x0]&&_0x58c005[_0x22e6('0x34')][0x0][_0x22e6('0x35')]?_0x58c005['alternatives'][0x0][_0x22e6('0x35')]:'';})[_0x22e6('0x36')]('\x0a');_0x287aae=_0x2030df[_0x22e6('0x32')][_0x22e6('0x33')](function(_0x35594e){return _0x35594e&&_0x35594e[_0x22e6('0x34')][0x0]&&_0x35594e[_0x22e6('0x34')][0x0][_0x22e6('0x37')]?_0x35594e[_0x22e6('0x34')][0x0]['confidence']:0x0;})[_0x22e6('0x36')]('\x0a');}logger[_0x22e6('0x27')](_0x22e6('0x38'),_0x186b9b);logger[_0x22e6('0x27')](_0x22e6('0x39'),_0x287aae);return{'transcript':_0x186b9b,'confidence':_0x287aae};})[_0x22e6('0x3a')](function(_0x3aa963){logger['error'](_0x22e6('0x3b'),_0x3aa963[_0x22e6('0x12')],_0x3aa963[_0x22e6('0x3c')],_0x3aa963[_0x22e6('0x3d')]);});};exports['googleDialogflow']=function(_0x18a533,_0x109976,_0xe79a1b,_0x5339c1){var _0x44e4e5=apiai(_0x109976,{'language':_0x5339c1||'en'});return _0x44e4e5[_0x22e6('0x3e')](_0xe79a1b,{'sessionId':_0x18a533})['then'](function(_0x5a34d8){logger[_0x22e6('0x27')](JSON['stringify'](_0x5a34d8));return{'source':_0x5a34d8[_0x22e6('0x3f')][_0x22e6('0x40')],'resolvedQuery':_0x5a34d8[_0x22e6('0x3f')][_0x22e6('0x41')],'action':_0x5a34d8['result'][_0x22e6('0x42')],'actionIncomplete':_0x5a34d8[_0x22e6('0x3f')][_0x22e6('0x43')],'speech':_0x5a34d8[_0x22e6('0x3f')][_0x22e6('0x44')][_0x22e6('0x45')],'score':_0x5a34d8[_0x22e6('0x3f')]['score'],'statusCode':_0x5a34d8[_0x22e6('0x46')][_0x22e6('0x47')]};});};exports[_0x22e6('0x48')]=function(_0x156466,_0x2978cc,_0x2eed64,_0x19bc4a){return tilde['asr'](_0x156466,_0x2978cc,_0x2eed64,_0x19bc4a)[_0x22e6('0x26')](function(_0x192df0){try{fs['unlink'](_0x156466);}catch(_0x484c24){logger[_0x22e6('0x13')](_0x484c24);}logger[_0x22e6('0x27')]('Tilde\x20ASR\x20transcription',_0x192df0[_0x22e6('0x35')]);logger[_0x22e6('0x27')](_0x22e6('0x49'),_0x192df0[_0x22e6('0x37')]);return _0x192df0;});};exports[_0x22e6('0x4a')]=function(_0x5e9475,_0x5871c0,_0x13da5e,_0x157360,_0x4bbf54,_0x113387){var _0x322c06=path[_0x22e6('0x28')](__dirname,_0x22e6('0x2b'),rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2a'));var _0x2fec19;return aws[_0x22e6('0x4b')](_0x5e9475,_0x5871c0,_0x13da5e,_0x157360,_0x4bbf54,_0x113387,_0x322c06)[_0x22e6('0x26')](function(){_0x2fec19=path[_0x22e6('0x28')](__dirname,_0x22e6('0x2b'),rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2c'));return convertFile(_0x322c06,_0x2fec19);})[_0x22e6('0x26')](function(){try{fs[_0x22e6('0x1a')](_0x322c06);fs[_0x22e6('0x2d')](_0x2fec19,_0x22e6('0x2e'));}catch(_0x16a146){logger[_0x22e6('0x13')](_0x16a146);}return _0x2fec19['split']('.')[0x0];});};exports[_0x22e6('0x4c')]=function(_0xf20ce7,_0x399079,_0x2e8b7f,_0x27f18d){var _0x2dcb56=util[_0x22e6('0x4d')](_0x22e6('0x4e'),ISPEECH_API,_0xf20ce7,encodeURIComponent(_0x399079),_0x2e8b7f,_0x27f18d);var _0x2d96a6=path[_0x22e6('0x28')](__dirname,_0x22e6('0x2b'),rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2a'));var _0xaa4dfc;return downloadFile(_0x2dcb56,_0x2d96a6)[_0x22e6('0x26')](function(){_0xaa4dfc=path[_0x22e6('0x28')](__dirname,'tmp',rs[_0x22e6('0x29')](0x4)+_0x22e6('0x2c'));return convertFile(_0x2d96a6,_0xaa4dfc);})[_0x22e6('0x26')](function(){try{fs[_0x22e6('0x1a')](_0x2d96a6);fs['chmodSync'](_0xaa4dfc,_0x22e6('0x2e'));}catch(_0x249a97){logger['error'](_0x249a97);}return _0xaa4dfc[_0x22e6('0x30')]('.')[0x0];});};exports[_0x22e6('0x4f')]=function(_0x1427e,_0x691d83,_0x24d57c,_0x2d486f){var _0x526989=util[_0x22e6('0x4d')](_0x22e6('0x50'),ISPEECH_API,_0x691d83,_0x24d57c,base64Encode(_0x1427e),_0x2d486f?util[_0x22e6('0x4d')](_0x22e6('0x51'),encodeURIComponent(_0x2d486f)):_0x22e6('0x52'));return uploadFile(_0x526989)[_0x22e6('0x26')](function(_0x43130e){return querystring[_0x22e6('0x3')](_0x43130e);});};exports[_0x22e6('0x53')]=function(){return __dirname;};