Built motion from commit e0fa946e.|2.6.5
[motion2.git] / server / services / agi / scripts / tilde / asr / lib / api.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 _0xa759=['send','EOS','Tilde\x20ASR\x20send\x20error','terminate','status','result','final','info','Tilde\x20ASR\x20hypoteses','hypotheses','likelihood','Success.','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','error','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','message','close','lodash','moment','../../../../../../config/logger','agi','exports','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','createHash','sha1','update','digest','hex','stringify','createReadStream','data'];(function(_0x424efb,_0x58e8ee){var _0x49ab3a=function(_0x4ace1d){while(--_0x4ace1d){_0x424efb['push'](_0x424efb['shift']());}};_0x49ab3a(++_0x58e8ee);}(_0xa759,0x1c5));var _0x9a75=function(_0x366776,_0x48f0bf){_0x366776=_0x366776-0x0;var _0x34e2ad=_0xa759[_0x366776];return _0x34e2ad;};'use strict';var BPromise=require('bluebird');var _=require(_0x9a75('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x9a75('0x1'));var crypto=require('crypto');var logger=require(_0x9a75('0x2'))(_0x9a75('0x3'));module[_0x9a75('0x4')]=function(_0x74b803,_0x4840f3,_0x59bf6d,_0x4a7412){return new BPromise(function(_0x2a6dff,_0x4cc219){logger['info']('Tilde\x20URI',_0x4a7412||_0x9a75('0x5'));var _0x443ec6=new WebSocket(_0x4a7412||_0x9a75('0x5'),{'perMessageDeflate':![]});var _0x5df4c6='';var _0x2c3421='0';var _0x5bc296='1';var _0x1eaa23=_0x9a75('0x6');function _0x665a06(_0x5d8834){var _0x42d0b5=crypto[_0x9a75('0x7')](_0x9a75('0x8'));_0x42d0b5[_0x9a75('0x9')](_0x5d8834);return _0x42d0b5[_0x9a75('0xa')](_0x9a75('0xb'));}function _0x26eb8b(){try{logger['info']('Open\x20Tilde\x20ASR\x20socket');var _0x51f84a=moment()['unix']();var _0x4fb256=_0x665a06(_0x51f84a+_0x4840f3+_0x59bf6d);_0x443ec6['send'](JSON[_0x9a75('0xc')]({'appID':_0x4840f3,'timestamp':_0x51f84a,'appKey':_0x4fb256}));var _0x250225=fs[_0x9a75('0xd')](_0x74b803);_0x250225['on'](_0x9a75('0xe'),function(_0x2497a2){_0x443ec6[_0x9a75('0xf')](_0x2497a2);});_0x250225['on']('close',function(){_0x443ec6[_0x9a75('0xf')](_0x9a75('0x10'));});}catch(_0x1139f5){logger['error'](_0x9a75('0x11'),JSON[_0x9a75('0xc')](_0x1139f5));_0x443ec6[_0x9a75('0x12')]();}}function _0x2c23fb(_0x4215d2){try{if(_0x4215d2){var _0x4b67b3=JSON['parse'](_0x4215d2);switch(_0x4b67b3[_0x9a75('0x13')]){case 0x0:if(_0x4b67b3[_0x9a75('0x14')]){if(_0x4b67b3[_0x9a75('0x14')][_0x9a75('0x15')]){logger[_0x9a75('0x16')](_0x9a75('0x17'),JSON[_0x9a75('0xc')](_0x4b67b3[_0x9a75('0x14')][_0x9a75('0x18')]));_0x5df4c6=_0x4b67b3[_0x9a75('0x14')][_0x9a75('0x18')][0x0]['transcript'];_0x2c3421=_0x4b67b3[_0x9a75('0x14')]['hypotheses'][0x0][_0x9a75('0x19')];_0x5bc296='0';_0x1eaa23=_0x9a75('0x1a');_0x443ec6[_0x9a75('0x12')]();}}break;case 0x1:logger[_0x9a75('0x16')](_0x9a75('0x6'));_0x5bc296='1';_0x1eaa23=_0x9a75('0x6');break;case 0x2:logger[_0x9a75('0x16')]('Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.');_0x5bc296='2';_0x1eaa23=_0x9a75('0x1b');break;case 0x9:logger[_0x9a75('0x16')](_0x9a75('0x1c'));_0x5bc296='9';_0x1eaa23=_0x9a75('0x1c');break;case 0xa:logger[_0x9a75('0x16')](_0x9a75('0x1d'));_0x5bc296='10';_0x1eaa23=_0x9a75('0x1d');break;case 0xb:logger[_0x9a75('0x16')](_0x9a75('0x1e'));_0x5bc296='11';_0x1eaa23=_0x9a75('0x1e');}}}catch(_0x469afb){logger['error'](_0x9a75('0x1f'),JSON[_0x9a75('0xc')](_0x469afb));_0x443ec6[_0x9a75('0x12')]();}}function _0x5b355b(){logger[_0x9a75('0x16')](_0x9a75('0x20'));_0x2a6dff({'transcript':_0x5df4c6,'confidence':_0x2c3421,'status':_0x5bc296,'status_message':_0x1eaa23});}function _0x1a0bb2(_0x8dc9a2){logger[_0x9a75('0x21')](_0x9a75('0x22'));if(!_[_0x9a75('0x23')](_0x8dc9a2)){logger[_0x9a75('0x21')](_[_0x9a75('0x24')](_0x8dc9a2)?JSON[_0x9a75('0xc')](_0x8dc9a2):_0x8dc9a2);}}_0x443ec6['on']('open',_0x26eb8b);_0x443ec6['on'](_0x9a75('0x25'),_0x2c23fb);_0x443ec6['on'](_0x9a75('0x26'),_0x5b355b);_0x443ec6['on'](_0x9a75('0x21'),_0x1a0bb2);});};