493f3c49e0257eddd259782bc139739bc293de64
[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 _0x4fda=['util','events','EventEmitter','call','setTimeout','setEncoding','headers','ready','line','toLowerCase','hangup','emit','search','function','substring','result=','indexOf','substr','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','write','inherits','prototype','sendRequest','sync','answer','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','exec','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','continueAt','extension','setExtension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label'];(function(_0x58e424,_0x3c9352){var _0x369a23=function(_0x3c44df){while(--_0x3c44df){_0x58e424['push'](_0x58e424['shift']());}};_0x369a23(++_0x3c9352);}(_0x4fda,0x9a));var _0xa4fd=function(_0x4d7a70,_0x2d3bfa){_0x4d7a70=_0x4d7a70-0x0;var _0x3aafbb=_0x4fda[_0x4d7a70];return _0x3aafbb;};'use strict';var util=require(_0xa4fd('0x0'));var _=require('lodash');var EventEmitter=require(_0xa4fd('0x1'))[_0xa4fd('0x2')];var AGIReply=require('./reply');var AGIError=require('./error');function AGIChannel(_0x9308ab){var _0x2677dd=this,_0x40f85d=new AGIReply(),_0x169b4e=![],_0x48e16d={};EventEmitter[_0xa4fd('0x3')](_0x2677dd);_0x9308ab['setEncoding']('utf8');_0x9308ab[_0xa4fd('0x4')](0x8*0x3c*0x3c*0x3e8);_0x40f85d[_0xa4fd('0x5')]('utf8');_0x40f85d['on'](_0xa4fd('0x6'),function(_0x3b0019){for(var _0x54295d in _0x3b0019){_0x2677dd[_0x54295d]=_0x3b0019[_0x54295d];}_0x2677dd['emit'](_0xa4fd('0x7'));});_0x40f85d['on'](_0xa4fd('0x8'),function(_0x1e44a8){if(_0x1e44a8[_0xa4fd('0x9')]()==_0xa4fd('0xa')){_0x2677dd[_0xa4fd('0xb')](_0xa4fd('0xa'));return;}if(_0x1e44a8['substring'](0x0,0xb)=='520-Invalid'){_0x169b4e=!![];}if(_0x169b4e){_0x48e16d['rx']+=_0x1e44a8+'\x0a';if(_0x1e44a8[_0xa4fd('0xc')]('520\x20End\x20of\x20proper')!=-0x1){_0x169b4e=![];}}else{_0x48e16d['rx']=_0x1e44a8;}if(_0x169b4e){return;}if(typeof _0x48e16d['cb']==_0xa4fd('0xd')){var _0x2bb57f=_0x48e16d['rx']['substring'](0x0,0x3),_0x2102a2=null,_0x26fc24=null;_0x2bb57f=parseInt(_0x2bb57f);if(isNaN(_0x2bb57f)){_0x48e16d['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x2bb57f!=0xc8){_0x48e16d['cb'](null,{'code':_0x2bb57f,'result':-0x1,'extra':'KO'});return;}_0x2102a2=_0x48e16d['rx'][_0xa4fd('0xe')](0x4)['replace'](_0xa4fd('0xf'),'');if(_0x2102a2[_0xa4fd('0x10')]('\x20')!=-0x1){_0x2102a2=_0x2102a2[_0xa4fd('0x11')](0x0,_0x2102a2[_0xa4fd('0x10')]('\x20'));}if(_['startsWith'](_0x2102a2,'-1')){_0x2102a2=parseInt(_0x2102a2);}_0x26fc24=_0x48e16d['rx'][_0xa4fd('0x12')]('\x20');if(_0x26fc24[_0xa4fd('0x13')]==0x3){_0x26fc24=_0x26fc24[0x2][_0xa4fd('0xe')](0x1,_0x26fc24[0x2][_0xa4fd('0x13')]-0x1);}else if(_0x26fc24[_0xa4fd('0x13')]>0x3){var _0x4f321e=/\((.+)\)/;var _0x10f564=_0x48e16d['rx'][_0xa4fd('0x14')](_0x4f321e);if(_0x10f564){_0x26fc24=_0x10f564[0x1];}else{_0x26fc24=null;}}else{_0x26fc24=null;}_0x48e16d['cb'](null,{'code':_0x2bb57f,'result':_0x2102a2,'extra':_0x26fc24});}});_0x9308ab['on'](_0xa4fd('0x15'),function(_0x13c2f8){_0x2677dd[_0xa4fd('0xb')](_0xa4fd('0x15'),new AGIError(_0xa4fd('0x16'),_0x13c2f8[_0xa4fd('0x17')]));});_0x9308ab['on'](_0xa4fd('0x18'),function(){_0x2677dd['emit'](_0xa4fd('0x18'),new AGIError(_0xa4fd('0x19')));});_0x9308ab['on'](_0xa4fd('0x1a'),function(){_0x2677dd[_0xa4fd('0xb')](_0xa4fd('0x1a'),new AGIError(_0xa4fd('0x1b')));_0x9308ab['destroy']();});_0x9308ab[_0xa4fd('0x1c')](_0x40f85d);this[_0xa4fd('0x1d')]=function(_0x12886f,_0xcdf8d9){var _0x12886f=_0x12886f||'',_0xcdf8d9=typeof _0xcdf8d9==_0xa4fd('0xd')?_0xcdf8d9:new Function();_0x48e16d={'tx':_0x12886f,'rx':'','cb':_0xcdf8d9};_0x9308ab[_0xa4fd('0x1e')](_0x12886f+'\x0a');},this[_0xa4fd('0x18')]=function(){_0x9308ab['destroy']();};}util[_0xa4fd('0x1f')](AGIChannel,EventEmitter);AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x21')]=function(_0x2c471f){return this[_0xa4fd('0x1d')][_0xa4fd('0x22')](this,_0x2c471f);};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x23')]=function(){return this[_0xa4fd('0x21')](_0xa4fd('0x24'));};AGIChannel['prototype'][_0xa4fd('0x25')]=function(_0x4456d7,_0x49259f,_0x2e86c5){_0x4456d7=_0x4456d7===undefined?'beep':_0x4456d7;_0x49259f=_0x49259f===undefined?'5':_0x49259f;_0x2e86c5=_0x2e86c5===undefined?'1':_0x2e86c5;return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x27'),_0x4456d7,_0x49259f*0x3e8,_0x2e86c5));};AGIChannel['prototype']['noop']=function(_0x5be8c0){_0x5be8c0=_0x5be8c0||_0xa4fd('0x28');return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')]('VERBOSE\x20\x22%s\x22',_0x5be8c0));};AGIChannel['prototype'][_0xa4fd('0x29')]=function(_0x185cae,_0x191f3c){if(_[_0xa4fd('0x2a')](_0x191f3c)){return this['sendRequest'](util[_0xa4fd('0x26')]('EXEC\x20%s\x20%s',_0x185cae,_0x191f3c['join'](',')));}return this[_0xa4fd('0x21')](util['format'](_0xa4fd('0x2b'),_0x185cae,_0x191f3c));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x2c')]=function(_0x4912fa){return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x2d'),_0x4912fa));};AGIChannel[_0xa4fd('0x20')]['setExtension']=function(_0x328324){return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x2e'),_0x328324));};AGIChannel['prototype'][_0xa4fd('0x2f')]=function(_0x13b31b){return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x30'),_0x13b31b));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0xa')]=function(){return this[_0xa4fd('0x21')](_0xa4fd('0x31'));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x32')]=function(_0x247cbb,_0x107f76){var _0x401844=_[_0xa4fd('0x33')](_0x107f76)||_['isNumber'](_0x107f76)?_0x107f76[_0xa4fd('0x34')]():_0x107f76;return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x35'),_0x247cbb,_0x401844?_0x401844[_0xa4fd('0x34')]()[_0xa4fd('0x36')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x37')]=function(_0x474ce4,_0x41c053){return this[_0xa4fd('0x21')](util['format'](_0xa4fd('0x38'),_0x474ce4,_0x41c053));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x39')]=function(_0x87ad6e,_0x34b1ed){return this['sendRequest'](util[_0xa4fd('0x26')](_0xa4fd('0x3a'),_0x87ad6e,_0x34b1ed));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x3b')]=function(_0x4fd733,_0x76efd9){return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x4fd733,_0x76efd9));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x3c')]=function(_0x4e701a,_0x229836,_0x5a8c54){_0x229836=_0x229836||this[_0xa4fd('0x3d')];_0x5a8c54=_0x5a8c54||0x1;this[_0xa4fd('0x2c')](_0x4e701a);this[_0xa4fd('0x3e')](_0x229836);this[_0xa4fd('0x2f')](_0x5a8c54);return this['noop'](util[_0xa4fd('0x26')](_0xa4fd('0x3f'),_0x4e701a,_0x229836,_0x5a8c54));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x40')]=function(_0xe5e90){return this['sendRequest'](util[_0xa4fd('0x26')](_0xa4fd('0x41'),_0xe5e90));};AGIChannel['prototype'][_0xa4fd('0x42')]=function(_0x56015d,_0x2b4461,_0x2a0342,_0x28c94d,_0x12ba9d,_0x3d7354){_0x2b4461=_0x2b4461||_0xa4fd('0x43');_0x2a0342=_0x2a0342||'';_0x28c94d=_0x28c94d===undefined?-0x1:_0x28c94d==='-1'?-0x1:_0x28c94d*0x3e8;_0x12ba9d=_0x12ba9d===undefined?'':'s='+_0x12ba9d;_0x3d7354=_0x3d7354?_0xa4fd('0x44'):'';return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x45'),_0x56015d,_0x2b4461,_0x2a0342,_0x28c94d,_0x3d7354,_0x12ba9d));};AGIChannel[_0xa4fd('0x20')]['streamFile']=function(_0x5f2078,_0x35b524){_0x35b524=_0x35b524||'';return this[_0xa4fd('0x21')](util[_0xa4fd('0x26')](_0xa4fd('0x46'),_0x5f2078,_0x35b524));};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x47')]=function(_0x30dcea){return this[_0xa4fd('0x29')](_0xa4fd('0x48'),_0x30dcea);};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x49')]=function(_0x4480e9){return this[_0xa4fd('0x29')]('WAIT',_0x4480e9);};AGIChannel[_0xa4fd('0x20')][_0xa4fd('0x15')]=function(_0x16e1b9,_0x2fd161){this[_0xa4fd('0x4a')](util[_0xa4fd('0x26')](_0xa4fd('0x4b'),_0x16e1b9['id'],_0x16e1b9[_0xa4fd('0x4c')],_0x2fd161));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;