Built motion from commit da617fac.|2.6.6
[motion2.git] / server / services / agi / channel.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 _0xe382=['sendRequest','sync','answer','getData','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','format','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','getVariable','GET\x20VARIABLE\x20\x22%s\x22','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','exec','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','lodash','events','call','setTimeout','utf8','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','write','destroy','inherits','prototype'];(function(_0x204148,_0x2d30a4){var _0x35c982=function(_0x5cac91){while(--_0x5cac91){_0x204148['push'](_0x204148['shift']());}};_0x35c982(++_0x2d30a4);}(_0xe382,0x1b6));var _0x2e38=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0xe382[_0x2faddb];return _0x273c05;};'use strict';var util=require('util');var _=require(_0x2e38('0x0'));var EventEmitter=require(_0x2e38('0x1'))['EventEmitter'];var AGIReply=require('./reply');var AGIError=require('./error');function AGIChannel(_0x3d38f1){var _0x597e9a=this,_0x2a7110=new AGIReply(),_0xc068f0=![],_0x5e69dc={};EventEmitter[_0x2e38('0x2')](_0x597e9a);_0x3d38f1['setEncoding']('utf8');_0x3d38f1[_0x2e38('0x3')](0x8*0x3c*0x3c*0x3e8);_0x2a7110['setEncoding'](_0x2e38('0x4'));_0x2a7110['on'](_0x2e38('0x5'),function(_0x5ca553){for(var _0x5a4664 in _0x5ca553){_0x597e9a[_0x5a4664]=_0x5ca553[_0x5a4664];}_0x597e9a[_0x2e38('0x6')](_0x2e38('0x7'));});_0x2a7110['on'](_0x2e38('0x8'),function(_0x58344c){if(_0x58344c[_0x2e38('0x9')]()==_0x2e38('0xa')){_0x597e9a[_0x2e38('0x6')](_0x2e38('0xa'));return;}if(_0x58344c[_0x2e38('0xb')](0x0,0xb)==_0x2e38('0xc')){_0xc068f0=!![];}if(_0xc068f0){_0x5e69dc['rx']+=_0x58344c+'\x0a';if(_0x58344c['search'](_0x2e38('0xd'))!=-0x1){_0xc068f0=![];}}else{_0x5e69dc['rx']=_0x58344c;}if(_0xc068f0){return;}if(typeof _0x5e69dc['cb']==_0x2e38('0xe')){var _0x298f44=_0x5e69dc['rx'][_0x2e38('0xb')](0x0,0x3),_0x1d1d96=null,_0xf7d743=null;_0x298f44=parseInt(_0x298f44);if(isNaN(_0x298f44)){_0x5e69dc['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x2e38('0xf')});return;}if(_0x298f44!=0xc8){_0x5e69dc['cb'](null,{'code':_0x298f44,'result':-0x1,'extra':'KO'});return;}_0x1d1d96=_0x5e69dc['rx']['substring'](0x4)[_0x2e38('0x10')](_0x2e38('0x11'),'');if(_0x1d1d96[_0x2e38('0x12')]('\x20')!=-0x1){_0x1d1d96=_0x1d1d96[_0x2e38('0x13')](0x0,_0x1d1d96[_0x2e38('0x12')]('\x20'));}if(_[_0x2e38('0x14')](_0x1d1d96,'-1')){_0x1d1d96=parseInt(_0x1d1d96);}_0xf7d743=_0x5e69dc['rx'][_0x2e38('0x15')]('\x20');if(_0xf7d743['length']==0x3){_0xf7d743=_0xf7d743[0x2][_0x2e38('0xb')](0x1,_0xf7d743[0x2][_0x2e38('0x16')]-0x1);}else if(_0xf7d743[_0x2e38('0x16')]>0x3){var _0x359ac0=/\((.+)\)/;var _0x406857=_0x5e69dc['rx'][_0x2e38('0x17')](_0x359ac0);if(_0x406857){_0xf7d743=_0x406857[0x1];}else{_0xf7d743=null;}}else{_0xf7d743=null;}_0x5e69dc['cb'](null,{'code':_0x298f44,'result':_0x1d1d96,'extra':_0xf7d743});}});_0x3d38f1['on'](_0x2e38('0x18'),function(_0x3ba62d){_0x597e9a[_0x2e38('0x6')]('error',new AGIError(_0x2e38('0x19'),_0x3ba62d['code']));});_0x3d38f1['on'](_0x2e38('0x1a'),function(){_0x597e9a[_0x2e38('0x6')]('close',new AGIError(_0x2e38('0x1b')));});_0x3d38f1['on'](_0x2e38('0x1c'),function(){_0x597e9a[_0x2e38('0x6')]('timeout',new AGIError(_0x2e38('0x1d')));_0x3d38f1['destroy']();});_0x3d38f1[_0x2e38('0x1e')](_0x2a7110);this[_0x2e38('0x1f')]=function(_0x5a6e18,_0xd84d02){var _0x5a6e18=_0x5a6e18||'',_0xd84d02=typeof _0xd84d02=='function'?_0xd84d02:new Function();_0x5e69dc={'tx':_0x5a6e18,'rx':'','cb':_0xd84d02};_0x3d38f1[_0x2e38('0x20')](_0x5a6e18+'\x0a');},this[_0x2e38('0x1a')]=function(){_0x3d38f1[_0x2e38('0x21')]();};}util[_0x2e38('0x22')](AGIChannel,EventEmitter);AGIChannel[_0x2e38('0x23')][_0x2e38('0x24')]=function(_0x297176){return this[_0x2e38('0x1f')][_0x2e38('0x25')](this,_0x297176);};AGIChannel[_0x2e38('0x23')][_0x2e38('0x26')]=function(){return this[_0x2e38('0x24')]('ANSWER');};AGIChannel[_0x2e38('0x23')][_0x2e38('0x27')]=function(_0x4b8289,_0x57c541,_0x4abd3e){_0x4b8289=_0x4b8289===undefined?'beep':_0x4b8289;_0x57c541=_0x57c541===undefined?'5':_0x57c541;_0x4abd3e=_0x4abd3e===undefined?'1':_0x4abd3e;return this[_0x2e38('0x24')](util['format'](_0x2e38('0x28'),_0x4b8289,_0x57c541*0x3e8,_0x4abd3e));};AGIChannel['prototype'][_0x2e38('0x29')]=function(_0x531feb){_0x531feb=_0x531feb||'NO\x20MESSAGE';return this['sendRequest'](util['format'](_0x2e38('0x2a'),_0x531feb));};AGIChannel[_0x2e38('0x23')]['exec']=function(_0x5abe21,_0x575243){if(_[_0x2e38('0x2b')](_0x575243)){return this[_0x2e38('0x24')](util['format'](_0x2e38('0x2c'),_0x5abe21,_0x575243['join'](',')));}return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x2c'),_0x5abe21,_0x575243));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x2e')]=function(_0xdaed2f){return this['sendRequest'](util[_0x2e38('0x2d')](_0x2e38('0x2f'),_0xdaed2f));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x30')]=function(_0xf852d2){return this[_0x2e38('0x24')](util['format'](_0x2e38('0x31'),_0xf852d2));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x32')]=function(_0x252cb3){return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x33'),_0x252cb3));};AGIChannel[_0x2e38('0x23')][_0x2e38('0xa')]=function(){return this['sendRequest'](_0x2e38('0x34'));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x35')]=function(_0xeed3e4,_0x5b090d){var _0x4f9cf7=_[_0x2e38('0x36')](_0x5b090d)||_[_0x2e38('0x37')](_0x5b090d)?_0x5b090d[_0x2e38('0x38')]():_0x5b090d;return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x39'),_0xeed3e4,_0x4f9cf7?_0x4f9cf7[_0x2e38('0x38')]()[_0x2e38('0x10')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x2e38('0x3a')]=function(_0x573050,_0x3c11b6){return this['sendRequest'](util['format'](_0x2e38('0x3b'),_0x573050,_0x3c11b6));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x3c')]=function(_0x320ce7,_0xaf06e6){return this[_0x2e38('0x24')](util[_0x2e38('0x2d')]('SAY\x20DIGITS\x20%s\x20%s',_0x320ce7,_0xaf06e6));};AGIChannel['prototype']['sayPhonetic']=function(_0x32361b,_0x30a871){return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x3d'),_0x32361b,_0x30a871));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x3e')]=function(_0x498f42,_0x24aeb3,_0x410226){_0x24aeb3=_0x24aeb3||this[_0x2e38('0x3f')];_0x410226=_0x410226||0x1;this[_0x2e38('0x2e')](_0x498f42);this['setExtension'](_0x24aeb3);this['setPriority'](_0x410226);return this['noop'](util[_0x2e38('0x2d')]('GOTO\x20%s\x20%s\x20%s',_0x498f42,_0x24aeb3,_0x410226));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x40')]=function(_0x2dd1f8){return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x41'),_0x2dd1f8));};AGIChannel[_0x2e38('0x23')]['recordFile']=function(_0x1b0187,_0x54087f,_0x251352,_0x5956e1,_0x331ffc,_0x4144e0){_0x54087f=_0x54087f||_0x2e38('0x42');_0x251352=_0x251352||'';_0x5956e1=_0x5956e1===undefined?-0x1:_0x5956e1==='-1'?-0x1:_0x5956e1*0x3e8;_0x331ffc=_0x331ffc===undefined?'':'s='+_0x331ffc;_0x4144e0=_0x4144e0?_0x2e38('0x43'):'';return this[_0x2e38('0x24')](util['format'](_0x2e38('0x44'),_0x1b0187,_0x54087f,_0x251352,_0x5956e1,_0x4144e0,_0x331ffc));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x45')]=function(_0x50abdc,_0x505a0e){_0x505a0e=_0x505a0e||'';return this[_0x2e38('0x24')](util[_0x2e38('0x2d')](_0x2e38('0x46'),_0x50abdc,_0x505a0e));};AGIChannel[_0x2e38('0x23')][_0x2e38('0x47')]=function(_0x39f59d){return this[_0x2e38('0x48')](_0x2e38('0x49'),_0x39f59d);};AGIChannel[_0x2e38('0x23')][_0x2e38('0x4a')]=function(_0x3f4e1e){return this[_0x2e38('0x48')](_0x2e38('0x4b'),_0x3f4e1e);};AGIChannel['prototype']['error']=function(_0x5e2681,_0x53557){this[_0x2e38('0x29')](util[_0x2e38('0x2d')](_0x2e38('0x4c'),_0x5e2681['id'],_0x5e2681[_0x2e38('0x4d')],_0x53557));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x2e38('0x4e')]=AGIChannel;