Built motion from commit (unavailable).|2.4.4
[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 _0x91d3=['indexOf','startsWith','split','length','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','command','function','write','destroy','inherits','prototype','sendRequest','answer','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','wav','BEEP','agi','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','lodash','events','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','substring','no\x20code','result=','substr'];(function(_0x3b5ad9,_0x223867){var _0x611ae9=function(_0x1c5e28){while(--_0x1c5e28){_0x3b5ad9['push'](_0x3b5ad9['shift']());}};_0x611ae9(++_0x223867);}(_0x91d3,0x113));var _0x391d=function(_0x544187,_0x4052e7){_0x544187=_0x544187-0x0;var _0x1f8b9b=_0x91d3[_0x544187];return _0x1f8b9b;};'use strict';var util=require('util');var _=require(_0x391d('0x0'));var EventEmitter=require(_0x391d('0x1'))['EventEmitter'];var AGIReply=require('./reply');var AGIError=require(_0x391d('0x2'));function AGIChannel(_0x307c33){var _0x41d29f=this,_0x1f0fb5=new AGIReply(),_0x3631a2=![],_0x198eae={};EventEmitter[_0x391d('0x3')](_0x41d29f);_0x307c33[_0x391d('0x4')](_0x391d('0x5'));_0x307c33[_0x391d('0x6')](0x8*0x3c*0x3c*0x3e8);_0x1f0fb5[_0x391d('0x4')](_0x391d('0x5'));_0x1f0fb5['on'](_0x391d('0x7'),function(_0x120a78){for(var _0x4abbb8 in _0x120a78){_0x41d29f[_0x4abbb8]=_0x120a78[_0x4abbb8];}_0x41d29f[_0x391d('0x8')](_0x391d('0x9'));});_0x1f0fb5['on'](_0x391d('0xa'),function(_0x531a0b){if(_0x531a0b[_0x391d('0xb')]()==_0x391d('0xc')){_0x41d29f['emit'](_0x391d('0xc'));return;}if(_0x531a0b[_0x391d('0xd')](0x0,0xb)=='520-Invalid'){_0x3631a2=!![];}if(_0x3631a2){_0x198eae['rx']+=_0x531a0b+'\x0a';if(_0x531a0b['search']('520\x20End\x20of\x20proper')!=-0x1){_0x3631a2=![];}}else{_0x198eae['rx']=_0x531a0b;}if(_0x3631a2){return;}if(typeof _0x198eae['cb']=='function'){var _0x2f304b=_0x198eae['rx'][_0x391d('0xd')](0x0,0x3),_0x1e7156=null,_0x47b75a=null;_0x2f304b=parseInt(_0x2f304b);if(isNaN(_0x2f304b)){_0x198eae['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x391d('0xe')});return;}if(_0x2f304b!=0xc8){_0x198eae['cb'](null,{'code':_0x2f304b,'result':-0x1,'extra':'KO'});return;}_0x1e7156=_0x198eae['rx'][_0x391d('0xd')](0x4)['replace'](_0x391d('0xf'),'');if(_0x1e7156['indexOf']('\x20')!=-0x1){_0x1e7156=_0x1e7156[_0x391d('0x10')](0x0,_0x1e7156[_0x391d('0x11')]('\x20'));}if(_[_0x391d('0x12')](_0x1e7156,'-1')){_0x1e7156=parseInt(_0x1e7156);}_0x47b75a=_0x198eae['rx'][_0x391d('0x13')]('\x20');if(_0x47b75a[_0x391d('0x14')]==0x3){_0x47b75a=_0x47b75a[0x2][_0x391d('0xd')](0x1,_0x47b75a[0x2][_0x391d('0x14')]-0x1);}else if(_0x47b75a[_0x391d('0x14')]>0x3){var _0x30e631=/\((.+)\)/;var _0x24a98f=_0x198eae['rx']['match'](_0x30e631);if(_0x24a98f){_0x47b75a=_0x24a98f[0x1];}else{_0x47b75a=null;}}else{_0x47b75a=null;}_0x198eae['cb'](null,{'code':_0x2f304b,'result':_0x1e7156,'extra':_0x47b75a});}});_0x307c33['on'](_0x391d('0x15'),function(_0x38c06f){_0x41d29f[_0x391d('0x8')](_0x391d('0x15'),new AGIError(_0x391d('0x16'),_0x38c06f['code']));});_0x307c33['on']('close',function(){_0x41d29f[_0x391d('0x8')](_0x391d('0x17'),new AGIError(_0x391d('0x18')));});_0x307c33['on'](_0x391d('0x19'),function(){_0x41d29f[_0x391d('0x8')](_0x391d('0x19'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x307c33['destroy']();});_0x307c33['pipe'](_0x1f0fb5);this[_0x391d('0x1a')]=function(_0x5468a4,_0x3382be){var _0x5468a4=_0x5468a4||'',_0x3382be=typeof _0x3382be==_0x391d('0x1b')?_0x3382be:new Function();_0x198eae={'tx':_0x5468a4,'rx':'','cb':_0x3382be};_0x307c33[_0x391d('0x1c')](_0x5468a4+'\x0a');},this[_0x391d('0x17')]=function(){_0x307c33[_0x391d('0x1d')]();};}util[_0x391d('0x1e')](AGIChannel,EventEmitter);AGIChannel[_0x391d('0x1f')][_0x391d('0x20')]=function(_0x498443){return this['command']['sync'](this,_0x498443);};AGIChannel[_0x391d('0x1f')][_0x391d('0x21')]=function(){return this[_0x391d('0x20')](_0x391d('0x22'));};AGIChannel['prototype'][_0x391d('0x23')]=function(_0x3facbd,_0x609f36,_0x493e70){_0x3facbd=_0x3facbd===undefined?_0x391d('0x24'):_0x3facbd;_0x609f36=_0x609f36===undefined?'5':_0x609f36;_0x493e70=_0x493e70===undefined?'1':_0x493e70;return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x26'),_0x3facbd,_0x609f36*0x3e8,_0x493e70));};AGIChannel['prototype'][_0x391d('0x27')]=function(_0x395f5c){_0x395f5c=_0x395f5c||'NO\x20MESSAGE';return this[_0x391d('0x20')](util['format'](_0x391d('0x28'),_0x395f5c));};AGIChannel[_0x391d('0x1f')][_0x391d('0x29')]=function(_0xca79c2,_0x4497e2){if(_['isArray'](_0x4497e2)){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x2a'),_0xca79c2,_0x4497e2[_0x391d('0x2b')](',')));}return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x2a'),_0xca79c2,_0x4497e2));};AGIChannel['prototype'][_0x391d('0x2c')]=function(_0x553b92){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x2d'),_0x553b92));};AGIChannel[_0x391d('0x1f')][_0x391d('0x2e')]=function(_0x5c8921){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x2f'),_0x5c8921));};AGIChannel[_0x391d('0x1f')][_0x391d('0x30')]=function(_0x2744c6){return this[_0x391d('0x20')](util['format'](_0x391d('0x31'),_0x2744c6));};AGIChannel[_0x391d('0x1f')][_0x391d('0xc')]=function(){return this['sendRequest'](_0x391d('0x32'));};AGIChannel[_0x391d('0x1f')]['setVariable']=function(_0x358732,_0x399eca){return this['sendRequest'](util['format'](_0x391d('0x33'),_0x358732,_0x399eca?_0x399eca[_0x391d('0x34')]()[_0x391d('0x35')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x391d('0x36')]=function(_0x3475b7,_0x2795ff){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x37'),_0x3475b7,_0x2795ff));};AGIChannel[_0x391d('0x1f')][_0x391d('0x38')]=function(_0x29fdfe,_0x54a004){return this[_0x391d('0x20')](util['format'](_0x391d('0x39'),_0x29fdfe,_0x54a004));};AGIChannel[_0x391d('0x1f')][_0x391d('0x3a')]=function(_0x6c088d,_0x15b8eb){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x3b'),_0x6c088d,_0x15b8eb));};AGIChannel[_0x391d('0x1f')][_0x391d('0x3c')]=function(_0x3c98aa,_0x59917d,_0x3ba5cc){_0x59917d=_0x59917d||this[_0x391d('0x3d')];_0x3ba5cc=_0x3ba5cc||0x1;this[_0x391d('0x2c')](_0x3c98aa);this['setExtension'](_0x59917d);this[_0x391d('0x30')](_0x3ba5cc);return this['noop'](util[_0x391d('0x25')](_0x391d('0x3e'),_0x3c98aa,_0x59917d,_0x3ba5cc));};AGIChannel[_0x391d('0x1f')][_0x391d('0x3f')]=function(_0x2b311b){return this[_0x391d('0x20')](util[_0x391d('0x25')](_0x391d('0x40'),_0x2b311b));};AGIChannel[_0x391d('0x1f')]['recordFile']=function(_0x50b752,_0x5762ce,_0x1a7d56,_0xdd8913,_0x472ac8,_0x25c0b5){_0x5762ce=_0x5762ce||_0x391d('0x41');_0x1a7d56=_0x1a7d56||'';_0xdd8913=_0xdd8913===undefined?-0x1:_0xdd8913==='-1'?-0x1:_0xdd8913*0x3e8;_0x472ac8=_0x472ac8===undefined?'':'s='+_0x472ac8;_0x25c0b5=_0x25c0b5?_0x391d('0x42'):'';return this[_0x391d('0x20')](util[_0x391d('0x25')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x50b752,_0x5762ce,_0x1a7d56,_0xdd8913,_0x25c0b5,_0x472ac8));};AGIChannel[_0x391d('0x1f')]['streamFile']=function(_0x11a647,_0x3009d2){_0x3009d2=_0x3009d2||'';return this[_0x391d('0x20')](util[_0x391d('0x25')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x11a647,_0x3009d2));};AGIChannel[_0x391d('0x1f')][_0x391d('0x43')]=function(_0x132d25){return this['exec'](_0x391d('0x44'),_0x132d25);};AGIChannel[_0x391d('0x1f')][_0x391d('0x45')]=function(_0x30c8a8){return this['exec'](_0x391d('0x46'),_0x30c8a8);};AGIChannel['prototype']['error']=function(_0x2d1dea,_0x54e89c){this['noop'](util['format'](_0x391d('0x47'),_0x2d1dea['id'],_0x2d1dea['label'],_0x54e89c));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x391d('0x48')]=AGIChannel;