Built motion from commit (unavailable).|2.4.18
[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 _0x98d5=['Tilde\x20ASR\x20confidence','awsPolly','lex','stringify','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','freeform=3','sestekNDA','text','channelData','CustomAction','AudioFromTts','audiofile','dirName','path','http','https','url','parse','bluebird','randomstring','sox','request-promise','querystring','google-tts-api','apiai-promise','md5','./google','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','https:','host','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','info','finish\x20download\x20file','close','unlink','download\x20error','pipe','end','WHAT_EVER','wav','finish\x20to\x20convert','tmp','generate','.wav','writeFileSync','base64','then','777','split','readFileSync','toString','googleCloudTTS','?key=','ssml','input','voice','audioConfig','MP3','text:synthesize','POST','.mp3','audioContent','writeFile','resolve','googleCloudTTS\x20path','googleTTS','chmodSync','goggleTTS\x20path','asr','uri','results','map','alternatives','transcript','confidence','join','googleASR\x20transcription','catch','[%s]\x20%s:%s','name','message','googleDialogflow','textRequest','result','source','resolvedQuery','actionIncomplete','fulfillment','speech','score','status','code','metadata','endConversation','isFallbackIntent','tildeASR','Tilde\x20ASR\x20transcription'];(function(_0x24e52b,_0x1f4d1f){var _0x139f97=function(_0x4346d4){while(--_0x4346d4){_0x24e52b['push'](_0x24e52b['shift']());}};_0x139f97(++_0x1f4d1f);}(_0x98d5,0x157));var _0x598d=function(_0x4a0146,_0x2dd714){_0x4a0146=_0x4a0146-0x0;var _0x399ed1=_0x98d5[_0x4a0146];return _0x399ed1;};'use strict';var fs=require('fs');var path=require(_0x598d('0x0'));var http=require(_0x598d('0x1'));var https=require(_0x598d('0x2'));var urlParse=require(_0x598d('0x3'))[_0x598d('0x4')];var BPromise=require(_0x598d('0x5'));var rs=require(_0x598d('0x6'));var sox=require(_0x598d('0x7'));var rp=require(_0x598d('0x8'));var util=require('util');var querystring=require(_0x598d('0x9'));var tts=require(_0x598d('0xa'));var apiai=require(_0x598d('0xb'));var md5=require(_0x598d('0xc'));var google=require(_0x598d('0xd'));var aws=require('./aws');var tilde=require('./tilde');var sestek=require('./sestek');var logger=require(_0x598d('0xe'))(_0x598d('0xf'));var ISPEECH_API=_0x598d('0x10');function downloadFile(_0x1373e4,_0x589752){return new BPromise(function(_0x1c62d7,_0x55146d){var _0xec0cb5=urlParse(_0x1373e4);var _0x18df63=_0xec0cb5[_0x598d('0x11')]===_0x598d('0x12')?https:http;var _0x5e4ae1={'host':_0xec0cb5[_0x598d('0x13')],'path':_0xec0cb5['path'],'headers':{'user-agent':'WHAT_EVER'}};_0x18df63[_0x598d('0x14')](_0x5e4ae1,function(_0x1c3f8d){if(_0x1c3f8d[_0x598d('0x15')]!==0xc8){logger[_0x598d('0x16')](_0x598d('0x17')+_0x1373e4+_0x598d('0x18')+_0x1c3f8d[_0x598d('0x15')]+'\x20('+_0x1c3f8d['statusMessage']+')');_0x55146d(new Error('request\x20to\x20'+_0x1373e4+_0x598d('0x18')+_0x1c3f8d[_0x598d('0x15')]+'\x20('+_0x1c3f8d[_0x598d('0x19')]+')'));return;}var _0x26de43=fs[_0x598d('0x1a')](_0x589752);_0x26de43['on']('finish',function(){logger[_0x598d('0x1b')](_0x598d('0x1c'));_0x26de43[_0x598d('0x1d')](_0x1c62d7);});_0x26de43['on']('error',function(_0x3b853c){fs[_0x598d('0x1e')](_0x589752);logger['error'](_0x598d('0x1f'),_0x3b853c);_0x55146d(_0x3b853c);});_0x1c3f8d[_0x598d('0x20')](_0x26de43);})['on'](_0x598d('0x16'),function(_0x3ee609){logger[_0x598d('0x16')](_0x3ee609);_0x55146d(_0x3ee609);})[_0x598d('0x21')]();});}function uploadFile(_0x530d50){return new BPromise(function(_0x33f68e,_0x5d2d84){var _0x54b2bf=urlParse(_0x530d50);var _0x3fbe6b=_0x54b2bf[_0x598d('0x11')]===_0x598d('0x12')?https:http;var _0x29074e={'host':_0x54b2bf[_0x598d('0x13')],'path':_0x54b2bf[_0x598d('0x0')],'headers':{'user-agent':_0x598d('0x22')}};_0x3fbe6b[_0x598d('0x14')](_0x29074e,function(_0x3cd184){if(_0x3cd184['statusCode']!==0xc8){_0x5d2d84(new Error(_0x598d('0x17')+_0x530d50+_0x598d('0x18')+_0x3cd184[_0x598d('0x15')]+'\x20('+_0x3cd184['statusMessage']+')'));return;}var _0x324693='';_0x3cd184['on']('data',function(_0xf6a4f2){_0x324693+=_0xf6a4f2;});_0x3cd184['on'](_0x598d('0x21'),function(){_0x33f68e(_0x324693);});})['on'](_0x598d('0x16'),function(_0x5a8d3f){_0x5d2d84(_0x5a8d3f);})[_0x598d('0x21')]();});}function convertFile(_0x45a49a,_0x437f1b){return new BPromise(function(_0x3c59d1,_0x20ced4){var _0x5b6c5f=sox['transcode'](_0x45a49a,_0x437f1b,{'sampleRate':0x1f40,'format':_0x598d('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x5b6c5f['on'](_0x598d('0x16'),function(_0x3757f4){logger['error']('error\x20convert',_0x3757f4);_0x20ced4(_0x3757f4);});_0x5b6c5f['on'](_0x598d('0x21'),function(){logger[_0x598d('0x1b')](_0x598d('0x24'));_0x3c59d1();});_0x5b6c5f['start']();});}function base64Decode(_0x592957,_0x5f086f){var _0x260cfd=path['resolve'](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x27'));fs[_0x598d('0x28')](_0x260cfd,_0x592957,_0x598d('0x29'));return convertFile(_0x260cfd,_0x5f086f)[_0x598d('0x2a')](function(){try{fs[_0x598d('0x1e')](_0x260cfd);fs['chmodSync'](_0x5f086f,_0x598d('0x2b'));}catch(_0x6fc350){logger[_0x598d('0x16')](_0x6fc350);}return _0x5f086f[_0x598d('0x2c')]('.')[0x0];});}function base64Encode(_0x526b24){var _0x1407f2=fs[_0x598d('0x2d')](_0x526b24);return new Buffer(_0x1407f2)[_0x598d('0x2e')](_0x598d('0x29'));}exports[_0x598d('0x2f')]=function(_0x2e50be,_0x50697a,_0x51ccd5,_0x3f3c15,_0x5df665,_0x5834bd){var _0x254ebe,_0x3d65b7;var _0x2bcdd9='https://texttospeech.googleapis.com/v1/';var _0x388c8b=_0x598d('0x30')+_0x2e50be;var _0x4eb938={};if(_0x50697a===_0x598d('0x31')){_0x4eb938[_0x598d('0x32')]={'ssml':_0x51ccd5};}else{_0x4eb938[_0x598d('0x32')]={'text':_0x51ccd5};};_0x4eb938[_0x598d('0x33')]={'languageCode':_0x3f3c15,'ssmlGender':_0x5df665};_0x4eb938[_0x598d('0x34')]={'audioEncoding':_0x598d('0x35'),'sampleRateHertz':0x1f40};var _0x488a5d={'url':_0x2bcdd9+_0x598d('0x36')+_0x388c8b,'method':_0x598d('0x37'),'json':!![],'body':_0x4eb938};return rp(_0x488a5d)[_0x598d('0x2a')](function(_0xb1e10f){return new BPromise(function(_0x50895e,_0x3fb3b4){_0x254ebe=path['resolve'](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x38'));var _0x4afbb3=Buffer['from'](_0xb1e10f[_0x598d('0x39')],_0x598d('0x29'));return fs[_0x598d('0x3a')](_0x254ebe,_0x4afbb3,function(_0x187ddf){_0x3fb3b4(_0x187ddf);},function(_0x564e94){fs['chmodSync'](_0x254ebe,'777');_0x50895e(_0x564e94);});});})[_0x598d('0x2a')](function(_0x4ffb3c){_0x3d65b7=path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x27'));return convertFile(_0x254ebe,_0x3d65b7);})[_0x598d('0x2a')](function(){try{fs[_0x598d('0x1e')](_0x254ebe);fs['chmodSync'](_0x3d65b7,_0x598d('0x2b'));}catch(_0x5af527){logger[_0x598d('0x16')](_0x5af527);}logger[_0x598d('0x1b')](_0x598d('0x3c'),_0x3d65b7['split']('.')[0x0]);return _0x3d65b7['split']('.')[0x0];});};exports[_0x598d('0x3d')]=function(_0x295513,_0x29fb62){var _0x2387d2,_0x3b9425;return tts(_0x295513,_0x29fb62||'en',0x1)[_0x598d('0x2a')](function(_0x3fe5aa){logger[_0x598d('0x1b')](_0x3fe5aa);_0x2387d2=path[_0x598d('0x3b')](__dirname,'tmp',rs[_0x598d('0x26')](0x4)+'.mp3');return downloadFile(_0x3fe5aa,_0x2387d2);})[_0x598d('0x2a')](function(){_0x3b9425=path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x27'));return convertFile(_0x2387d2,_0x3b9425);})[_0x598d('0x2a')](function(){try{fs[_0x598d('0x1e')](_0x2387d2);fs[_0x598d('0x3e')](_0x3b9425,_0x598d('0x2b'));}catch(_0x6bdf2d){logger[_0x598d('0x16')](_0x6bdf2d);}logger[_0x598d('0x1b')](_0x598d('0x3f'),_0x3b9425[_0x598d('0x2c')]('.')[0x0]);return _0x3b9425[_0x598d('0x2c')]('.')[0x0];});};exports['googleASR']=function(_0x1d84c8,_0x1d7541,_0x4b2666){return google[_0x598d('0x40')](_0x1d84c8,_0x1d7541,_0x4b2666)[_0x598d('0x2a')](function(_0x357c5d){logger['info'](_0x357c5d[_0x598d('0x41')]);return rp(_0x357c5d);})[_0x598d('0x2a')](function(_0x50bf88){var _0xaa4882='';var _0xd738f0=0x0;try{fs[_0x598d('0x1e')](_0x1d84c8);}catch(_0xe65768){logger[_0x598d('0x16')](_0xe65768);}if(_0x50bf88&&_0x50bf88[_0x598d('0x42')]){_0xaa4882=_0x50bf88[_0x598d('0x42')][_0x598d('0x43')](function(_0x2d2087){return _0x2d2087&&_0x2d2087[_0x598d('0x44')][0x0]&&_0x2d2087['alternatives'][0x0][_0x598d('0x45')]?_0x2d2087['alternatives'][0x0]['transcript']:'';})['join']('\x0a');_0xd738f0=_0x50bf88[_0x598d('0x42')]['map'](function(_0x2e4d19){return _0x2e4d19&&_0x2e4d19[_0x598d('0x44')][0x0]&&_0x2e4d19['alternatives'][0x0][_0x598d('0x46')]?_0x2e4d19[_0x598d('0x44')][0x0][_0x598d('0x46')]:0x0;})[_0x598d('0x47')]('\x0a');}logger[_0x598d('0x1b')](_0x598d('0x48'),_0xaa4882);logger[_0x598d('0x1b')]('googleASR\x20confidence',_0xd738f0);return{'transcript':_0xaa4882,'confidence':_0xd738f0};})[_0x598d('0x49')](function(_0x34f838){logger[_0x598d('0x16')](_0x598d('0x4a'),_0x34f838[_0x598d('0x15')],_0x34f838[_0x598d('0x4b')],_0x34f838[_0x598d('0x4c')]);});};exports[_0x598d('0x4d')]=function(_0x8aca83,_0x3c4246,_0x13eb14,_0x287222){var _0x32c820=apiai(_0x3c4246,{'language':_0x287222||'en'});return _0x32c820[_0x598d('0x4e')](_0x13eb14,{'sessionId':md5(_0x8aca83)})[_0x598d('0x2a')](function(_0x5de628){logger[_0x598d('0x1b')](JSON['stringify'](_0x5de628));return{'source':_0x5de628[_0x598d('0x4f')][_0x598d('0x50')],'resolvedQuery':_0x5de628[_0x598d('0x4f')][_0x598d('0x51')],'action':_0x5de628[_0x598d('0x4f')]['action'],'actionIncomplete':_0x5de628[_0x598d('0x4f')][_0x598d('0x52')],'speech':_0x5de628['result'][_0x598d('0x53')][_0x598d('0x54')],'score':_0x5de628[_0x598d('0x4f')][_0x598d('0x55')],'statusCode':_0x5de628[_0x598d('0x56')][_0x598d('0x57')],'endConversation':_0x5de628[_0x598d('0x4f')][_0x598d('0x58')][_0x598d('0x59')]||![],'isFallbackIntent':_0x5de628[_0x598d('0x4f')][_0x598d('0x58')][_0x598d('0x5a')]};});};exports[_0x598d('0x5b')]=function(_0x1db6aa,_0x489888,_0x269630,_0x50b635){return tilde[_0x598d('0x40')](_0x1db6aa,_0x489888,_0x269630,_0x50b635)[_0x598d('0x2a')](function(_0x247394){try{fs['unlink'](_0x1db6aa);}catch(_0x4b60c3){logger['error'](_0x4b60c3);}logger['info'](_0x598d('0x5c'),_0x247394[_0x598d('0x45')]);logger[_0x598d('0x1b')](_0x598d('0x5d'),_0x247394[_0x598d('0x46')]);return _0x247394;});};exports[_0x598d('0x5e')]=function(_0x2cdc58,_0x5e1b02,_0x395b34,_0x899cbe,_0x5f5cc4,_0x1e6706){var _0x58d8da=path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x38'));var _0x552afa;return aws['polly'](_0x2cdc58,_0x5e1b02,_0x395b34,_0x899cbe,_0x5f5cc4,_0x1e6706,_0x58d8da)['then'](function(){_0x552afa=path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs['generate'](0x4)+_0x598d('0x27'));return convertFile(_0x58d8da,_0x552afa);})[_0x598d('0x2a')](function(){try{fs[_0x598d('0x1e')](_0x58d8da);fs[_0x598d('0x3e')](_0x552afa,_0x598d('0x2b'));}catch(_0x244280){logger[_0x598d('0x16')](_0x244280);}return _0x552afa[_0x598d('0x2c')]('.')[0x0];});};exports['awsLex']=function(_0x26381b,_0x562758,_0x3a4135,_0xc3e6c0,_0x398a93,_0x5b6e31){return aws[_0x598d('0x5f')](_0x26381b,_0x562758,_0x3a4135,_0xc3e6c0,_0x398a93,_0x5b6e31)['then'](function(_0x28980e){logger[_0x598d('0x1b')](JSON[_0x598d('0x60')](_0x28980e));return _0x28980e;});};exports['ispeechTTS']=function(_0x4b825f,_0x106a17,_0x3ff6d9,_0x42bb39){var _0x2ba877=util[_0x598d('0x61')](_0x598d('0x62'),ISPEECH_API,_0x4b825f,encodeURIComponent(_0x106a17),_0x3ff6d9,_0x42bb39);var _0x405217=path[_0x598d('0x3b')](__dirname,'tmp',rs[_0x598d('0x26')](0x4)+_0x598d('0x38'));var _0xd3b2c;return downloadFile(_0x2ba877,_0x405217)[_0x598d('0x2a')](function(){_0xd3b2c=path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs[_0x598d('0x26')](0x4)+_0x598d('0x27'));return convertFile(_0x405217,_0xd3b2c);})[_0x598d('0x2a')](function(){try{fs[_0x598d('0x1e')](_0x405217);fs[_0x598d('0x3e')](_0xd3b2c,_0x598d('0x2b'));}catch(_0x571ad8){logger[_0x598d('0x16')](_0x571ad8);}return _0xd3b2c['split']('.')[0x0];});};exports[_0x598d('0x63')]=function(_0x54fa29,_0x49d345,_0x324f5d,_0x44bd2f){var _0x5d1db4=util[_0x598d('0x61')](_0x598d('0x64'),ISPEECH_API,_0x49d345,_0x324f5d,base64Encode(_0x54fa29),_0x44bd2f?util[_0x598d('0x61')]('model=%s',encodeURIComponent(_0x44bd2f)):_0x598d('0x65'));return uploadFile(_0x5d1db4)[_0x598d('0x2a')](function(_0x39c596){return querystring[_0x598d('0x4')](_0x39c596);});};exports[_0x598d('0x66')]=function(_0x3c2cfc,_0x464663){return sestek['nda'](_0x3c2cfc,_0x464663)[_0x598d('0x2a')](function(_0x2f0d64){logger[_0x598d('0x1b')](JSON[_0x598d('0x60')](_0x2f0d64));var _0xf76edc={'speech':_0x2f0d64[_0x598d('0x67')],'action':_0x2f0d64['channelData']?_0x2f0d64[_0x598d('0x68')][_0x598d('0x69')]:undefined,'actiondata':_0x2f0d64[_0x598d('0x68')]?_0x2f0d64['channelData']['CustomActionData']:undefined};if(_0x2f0d64['channelData']&&_0x2f0d64[_0x598d('0x68')]['AudioFromTts']){return base64Decode(_0x2f0d64[_0x598d('0x68')][_0x598d('0x6a')]['Data'],path[_0x598d('0x3b')](__dirname,_0x598d('0x25'),rs['generate'](0x4)+_0x598d('0x27')))['then'](function(_0x5e75ab){_0xf76edc[_0x598d('0x6b')]=_0x5e75ab;return _0xf76edc;});}return _0xf76edc;});};exports[_0x598d('0x6c')]=function(){return __dirname;};