Built motion from commit (unavailable).|2.3.93
[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 _0xd785=['STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','util','events','./reply','call','setTimeout','utf8','headers','emit','ready','line','toLowerCase','hangup','substring','520\x20End\x20of\x20proper','function','replace','indexOf','substr','startsWith','length','match','error','code','close','timeout','destroy','pipe','command','write','inherits','prototype','answer','sendRequest','ANSWER','getData','beep','format','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','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','setPriority','noop','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'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0xd785,0x11d));var _0x5d78=function(_0x117f4c,_0x36a9b1){_0x117f4c=_0x117f4c-0x0;var _0x2b24e9=_0xd785[_0x117f4c];return _0x2b24e9;};'use strict';var util=require(_0x5d78('0x0'));var _=require('lodash');var EventEmitter=require(_0x5d78('0x1'))['EventEmitter'];var AGIReply=require(_0x5d78('0x2'));var AGIError=require('./error');function AGIChannel(_0x5af3ab){var _0x42ebed=this,_0x33541f=new AGIReply(),_0x1d9d39=![],_0x5877bf={};EventEmitter[_0x5d78('0x3')](_0x42ebed);_0x5af3ab['setEncoding']('utf8');_0x5af3ab[_0x5d78('0x4')](0x8*0x3c*0x3c*0x3e8);_0x33541f['setEncoding'](_0x5d78('0x5'));_0x33541f['on'](_0x5d78('0x6'),function(_0x180838){for(var _0x4e0e02 in _0x180838){_0x42ebed[_0x4e0e02]=_0x180838[_0x4e0e02];}_0x42ebed[_0x5d78('0x7')](_0x5d78('0x8'));});_0x33541f['on'](_0x5d78('0x9'),function(_0x56b9f4){if(_0x56b9f4[_0x5d78('0xa')]()==_0x5d78('0xb')){_0x42ebed[_0x5d78('0x7')](_0x5d78('0xb'));return;}if(_0x56b9f4[_0x5d78('0xc')](0x0,0xb)=='520-Invalid'){_0x1d9d39=!![];}if(_0x1d9d39){_0x5877bf['rx']+=_0x56b9f4+'\x0a';if(_0x56b9f4['search'](_0x5d78('0xd'))!=-0x1){_0x1d9d39=![];}}else{_0x5877bf['rx']=_0x56b9f4;}if(_0x1d9d39){return;}if(typeof _0x5877bf['cb']==_0x5d78('0xe')){var _0x17f310=_0x5877bf['rx']['substring'](0x0,0x3),_0x213c8e=null,_0x4ddfa9=null;_0x17f310=parseInt(_0x17f310);if(isNaN(_0x17f310)){_0x5877bf['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x17f310!=0xc8){_0x5877bf['cb'](null,{'code':_0x17f310,'result':-0x1,'extra':'KO'});return;}_0x213c8e=_0x5877bf['rx'][_0x5d78('0xc')](0x4)[_0x5d78('0xf')]('result=','');if(_0x213c8e[_0x5d78('0x10')]('\x20')!=-0x1){_0x213c8e=_0x213c8e[_0x5d78('0x11')](0x0,_0x213c8e['indexOf']('\x20'));}if(_[_0x5d78('0x12')](_0x213c8e,'-1')){_0x213c8e=parseInt(_0x213c8e);}_0x4ddfa9=_0x5877bf['rx']['split']('\x20');if(_0x4ddfa9['length']==0x3){_0x4ddfa9=_0x4ddfa9[0x2][_0x5d78('0xc')](0x1,_0x4ddfa9[0x2][_0x5d78('0x13')]-0x1);}else if(_0x4ddfa9['length']>0x3){var _0x283035=/\((.+)\)/;var _0x31fd8f=_0x5877bf['rx'][_0x5d78('0x14')](_0x283035);if(_0x31fd8f){_0x4ddfa9=_0x31fd8f[0x1];}else{_0x4ddfa9=null;}}else{_0x4ddfa9=null;}_0x5877bf['cb'](null,{'code':_0x17f310,'result':_0x213c8e,'extra':_0x4ddfa9});}});_0x5af3ab['on'](_0x5d78('0x15'),function(_0x109dd4){_0x42ebed['emit']('error',new AGIError('E_AGI_SOCKET_ERROR',_0x109dd4[_0x5d78('0x16')]));});_0x5af3ab['on'](_0x5d78('0x17'),function(){_0x42ebed[_0x5d78('0x7')]('close',new AGIError('E_AGI_SOCKET_CLOSE'));});_0x5af3ab['on'](_0x5d78('0x18'),function(){_0x42ebed[_0x5d78('0x7')](_0x5d78('0x18'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x5af3ab[_0x5d78('0x19')]();});_0x5af3ab[_0x5d78('0x1a')](_0x33541f);this[_0x5d78('0x1b')]=function(_0x100ce8,_0x462166){var _0x100ce8=_0x100ce8||'',_0x462166=typeof _0x462166==_0x5d78('0xe')?_0x462166:new Function();_0x5877bf={'tx':_0x100ce8,'rx':'','cb':_0x462166};_0x5af3ab[_0x5d78('0x1c')](_0x100ce8+'\x0a');},this['close']=function(){_0x5af3ab[_0x5d78('0x19')]();};}util[_0x5d78('0x1d')](AGIChannel,EventEmitter);AGIChannel[_0x5d78('0x1e')]['sendRequest']=function(_0x2da91c){return this[_0x5d78('0x1b')]['sync'](this,_0x2da91c);};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x1f')]=function(){return this[_0x5d78('0x20')](_0x5d78('0x21'));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x22')]=function(_0x5a4562,_0x57b3ce,_0x105769){_0x5a4562=_0x5a4562===undefined?_0x5d78('0x23'):_0x5a4562;_0x57b3ce=_0x57b3ce===undefined?'5':_0x57b3ce;_0x105769=_0x105769===undefined?'1':_0x105769;return this[_0x5d78('0x20')](util[_0x5d78('0x24')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x5a4562,_0x57b3ce*0x3e8,_0x105769));};AGIChannel['prototype']['noop']=function(_0x132480){_0x132480=_0x132480||_0x5d78('0x25');return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x26'),_0x132480));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x27')]=function(_0x38f851,_0x221d28){if(_['isArray'](_0x221d28)){return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x28'),_0x38f851,_0x221d28[_0x5d78('0x29')](',')));}return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x28'),_0x38f851,_0x221d28));};AGIChannel['prototype'][_0x5d78('0x2a')]=function(_0x39aa4c){return this[_0x5d78('0x20')](util[_0x5d78('0x24')]('SET\x20CONTEXT\x20%s',_0x39aa4c));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x2b')]=function(_0x425d72){return this['sendRequest'](util[_0x5d78('0x24')](_0x5d78('0x2c'),_0x425d72));};AGIChannel[_0x5d78('0x1e')]['setPriority']=function(_0x217f0f){return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x2d'),_0x217f0f));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0xb')]=function(){return this['sendRequest'](_0x5d78('0x2e'));};AGIChannel[_0x5d78('0x1e')]['setVariable']=function(_0x49704c,_0x3bc5b1){return this[_0x5d78('0x20')](util['format'](_0x5d78('0x2f'),_0x49704c,_0x3bc5b1?_0x3bc5b1[_0x5d78('0x30')]()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x31')]=function(_0x8c1bef,_0x361b01){return this['sendRequest'](util['format'](_0x5d78('0x32'),_0x8c1bef,_0x361b01));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x33')]=function(_0x5833a1,_0x49f406){return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x34'),_0x5833a1,_0x49f406));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x35')]=function(_0x3cc7d0,_0xe52c31){return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x36'),_0x3cc7d0,_0xe52c31));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x37')]=function(_0x5541a9,_0x4cfe06,_0x11b267){_0x4cfe06=_0x4cfe06||this[_0x5d78('0x38')];_0x11b267=_0x11b267||0x1;this[_0x5d78('0x2a')](_0x5541a9);this[_0x5d78('0x2b')](_0x4cfe06);this[_0x5d78('0x39')](_0x11b267);return this[_0x5d78('0x3a')](util[_0x5d78('0x24')]('GOTO\x20%s\x20%s\x20%s',_0x5541a9,_0x4cfe06,_0x11b267));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x3b')]=function(_0x35b2c6){return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x3c'),_0x35b2c6));};AGIChannel['prototype']['recordFile']=function(_0x2135b8,_0x379865,_0x19a70e,_0x342324,_0x5be97c,_0x251116){_0x379865=_0x379865||_0x5d78('0x3d');_0x19a70e=_0x19a70e||'';_0x342324=_0x342324===undefined?-0x1:_0x342324==='-1'?-0x1:_0x342324*0x3e8;_0x5be97c=_0x5be97c===undefined?'':'s='+_0x5be97c;_0x251116=_0x251116?_0x5d78('0x3e'):'';return this['sendRequest'](util['format'](_0x5d78('0x3f'),_0x2135b8,_0x379865,_0x19a70e,_0x342324,_0x251116,_0x5be97c));};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x40')]=function(_0x562e76,_0x360d83){_0x360d83=_0x360d83||'';return this[_0x5d78('0x20')](util[_0x5d78('0x24')](_0x5d78('0x41'),_0x562e76,_0x360d83));};AGIChannel[_0x5d78('0x1e')]['agi']=function(_0x34d58d){return this[_0x5d78('0x27')](_0x5d78('0x42'),_0x34d58d);};AGIChannel['prototype'][_0x5d78('0x43')]=function(_0x2a2026){return this[_0x5d78('0x27')](_0x5d78('0x44'),_0x2a2026);};AGIChannel[_0x5d78('0x1e')][_0x5d78('0x15')]=function(_0xbd9b24,_0x5d680b){this[_0x5d78('0x3a')](util[_0x5d78('0x24')](_0x5d78('0x45'),_0xbd9b24['id'],_0xbd9b24['label'],_0x5d680b));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;