Built motion from commit 9d0783e6.|2.6.13
[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 _0x3f32=['function','no\x20code','result=','indexOf','substr','startsWith','length','substring','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','inherits','prototype','sendRequest','sync','ANSWER','getData','format','noop','VERBOSE\x20\x22%s\x22','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setPriority','GOTO\x20%s\x20%s\x20%s','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','wait','exec','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','emit','ready','line','toLowerCase','hangup','520-Invalid','search','520\x20End\x20of\x20proper'];(function(_0x483e3a,_0x568361){var _0x43fca9=function(_0x273d7e){while(--_0x273d7e){_0x483e3a['push'](_0x483e3a['shift']());}};_0x43fca9(++_0x568361);}(_0x3f32,0x87));var _0x23f3=function(_0x51ed62,_0x574379){_0x51ed62=_0x51ed62-0x0;var _0x34aee3=_0x3f32[_0x51ed62];return _0x34aee3;};'use strict';var util=require(_0x23f3('0x0'));var _=require(_0x23f3('0x1'));var EventEmitter=require('events')[_0x23f3('0x2')];var AGIReply=require(_0x23f3('0x3'));var AGIError=require(_0x23f3('0x4'));function AGIChannel(_0x542045){var _0x4b4c38=this,_0x58593b=new AGIReply(),_0x5a1e13=![],_0x44e693={};EventEmitter[_0x23f3('0x5')](_0x4b4c38);_0x542045[_0x23f3('0x6')](_0x23f3('0x7'));_0x542045[_0x23f3('0x8')](0x8*0x3c*0x3c*0x3e8);_0x58593b[_0x23f3('0x6')](_0x23f3('0x7'));_0x58593b['on']('headers',function(_0x128b65){for(var _0x8b4e4 in _0x128b65){_0x4b4c38[_0x8b4e4]=_0x128b65[_0x8b4e4];}_0x4b4c38[_0x23f3('0x9')](_0x23f3('0xa'));});_0x58593b['on'](_0x23f3('0xb'),function(_0x597b53){if(_0x597b53[_0x23f3('0xc')]()==_0x23f3('0xd')){_0x4b4c38[_0x23f3('0x9')](_0x23f3('0xd'));return;}if(_0x597b53['substring'](0x0,0xb)==_0x23f3('0xe')){_0x5a1e13=!![];}if(_0x5a1e13){_0x44e693['rx']+=_0x597b53+'\x0a';if(_0x597b53[_0x23f3('0xf')](_0x23f3('0x10'))!=-0x1){_0x5a1e13=![];}}else{_0x44e693['rx']=_0x597b53;}if(_0x5a1e13){return;}if(typeof _0x44e693['cb']==_0x23f3('0x11')){var _0x3d98db=_0x44e693['rx']['substring'](0x0,0x3),_0x4971d1=null,_0x5a5504=null;_0x3d98db=parseInt(_0x3d98db);if(isNaN(_0x3d98db)){_0x44e693['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x23f3('0x12')});return;}if(_0x3d98db!=0xc8){_0x44e693['cb'](null,{'code':_0x3d98db,'result':-0x1,'extra':'KO'});return;}_0x4971d1=_0x44e693['rx']['substring'](0x4)['replace'](_0x23f3('0x13'),'');if(_0x4971d1[_0x23f3('0x14')]('\x20')!=-0x1){_0x4971d1=_0x4971d1[_0x23f3('0x15')](0x0,_0x4971d1['indexOf']('\x20'));}if(_[_0x23f3('0x16')](_0x4971d1,'-1')){_0x4971d1=parseInt(_0x4971d1);}_0x5a5504=_0x44e693['rx']['split']('\x20');if(_0x5a5504[_0x23f3('0x17')]==0x3){_0x5a5504=_0x5a5504[0x2][_0x23f3('0x18')](0x1,_0x5a5504[0x2][_0x23f3('0x17')]-0x1);}else if(_0x5a5504[_0x23f3('0x17')]>0x3){var _0x418ff4=/\((.+)\)/;var _0x11ffbf=_0x44e693['rx'][_0x23f3('0x19')](_0x418ff4);if(_0x11ffbf){_0x5a5504=_0x11ffbf[0x1];}else{_0x5a5504=null;}}else{_0x5a5504=null;}_0x44e693['cb'](null,{'code':_0x3d98db,'result':_0x4971d1,'extra':_0x5a5504});}});_0x542045['on'](_0x23f3('0x1a'),function(_0x544f90){_0x4b4c38['emit'](_0x23f3('0x1a'),new AGIError(_0x23f3('0x1b'),_0x544f90[_0x23f3('0x1c')]));});_0x542045['on']('close',function(){_0x4b4c38[_0x23f3('0x9')](_0x23f3('0x1d'),new AGIError(_0x23f3('0x1e')));});_0x542045['on'](_0x23f3('0x1f'),function(){_0x4b4c38['emit']('timeout',new AGIError(_0x23f3('0x20')));_0x542045[_0x23f3('0x21')]();});_0x542045['pipe'](_0x58593b);this[_0x23f3('0x22')]=function(_0x1dbe90,_0x44139e){var _0x1dbe90=_0x1dbe90||'',_0x44139e=typeof _0x44139e==_0x23f3('0x11')?_0x44139e:new Function();_0x44e693={'tx':_0x1dbe90,'rx':'','cb':_0x44139e};_0x542045[_0x23f3('0x23')](_0x1dbe90+'\x0a');},this['close']=function(){_0x542045[_0x23f3('0x21')]();};}util[_0x23f3('0x24')](AGIChannel,EventEmitter);AGIChannel[_0x23f3('0x25')][_0x23f3('0x26')]=function(_0x3d60e6){return this[_0x23f3('0x22')][_0x23f3('0x27')](this,_0x3d60e6);};AGIChannel[_0x23f3('0x25')]['answer']=function(){return this['sendRequest'](_0x23f3('0x28'));};AGIChannel['prototype'][_0x23f3('0x29')]=function(_0x3662b2,_0x2db944,_0x2bca1c){_0x3662b2=_0x3662b2===undefined?'beep':_0x3662b2;_0x2db944=_0x2db944===undefined?'5':_0x2db944;_0x2bca1c=_0x2bca1c===undefined?'1':_0x2bca1c;return this[_0x23f3('0x26')](util[_0x23f3('0x2a')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x3662b2,_0x2db944*0x3e8,_0x2bca1c));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x2b')]=function(_0x345b76){_0x345b76=_0x345b76||'NO\x20MESSAGE';return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x2c'),_0x345b76));};AGIChannel[_0x23f3('0x25')]['exec']=function(_0x3d8a84,_0x27a6fb){if(_['isArray'](_0x27a6fb)){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x2d'),_0x3d8a84,_0x27a6fb[_0x23f3('0x2e')](',')));}return this[_0x23f3('0x26')](util[_0x23f3('0x2a')]('EXEC\x20%s\x20%s',_0x3d8a84,_0x27a6fb));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x2f')]=function(_0x44bd2d){return this[_0x23f3('0x26')](util['format']('SET\x20CONTEXT\x20%s',_0x44bd2d));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x30')]=function(_0x58d20e){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x31'),_0x58d20e));};AGIChannel['prototype']['setPriority']=function(_0x15a522){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x32'),_0x15a522));};AGIChannel[_0x23f3('0x25')][_0x23f3('0xd')]=function(){return this[_0x23f3('0x26')](_0x23f3('0x33'));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x34')]=function(_0x475652,_0x5393ad){var _0x31f0d6=_[_0x23f3('0x35')](_0x5393ad)||_['isNumber'](_0x5393ad)?_0x5393ad['toString']():_0x5393ad;return this['sendRequest'](util[_0x23f3('0x2a')](_0x23f3('0x36'),_0x475652,_0x31f0d6?_0x31f0d6[_0x23f3('0x37')]()[_0x23f3('0x38')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x23f3('0x39')]=function(_0x54b98a,_0x3c4333){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x3a'),_0x54b98a,_0x3c4333));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x3b')]=function(_0x538dc8,_0x4149e5){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')]('SAY\x20DIGITS\x20%s\x20%s',_0x538dc8,_0x4149e5));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x3c')]=function(_0x3e9d42,_0x31c21d){return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x3d'),_0x3e9d42,_0x31c21d));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x3e')]=function(_0x3ff53d,_0x368cc7,_0x29ebb3){_0x368cc7=_0x368cc7||this['extension'];_0x29ebb3=_0x29ebb3||0x1;this[_0x23f3('0x2f')](_0x3ff53d);this['setExtension'](_0x368cc7);this[_0x23f3('0x3f')](_0x29ebb3);return this[_0x23f3('0x2b')](util['format'](_0x23f3('0x40'),_0x3ff53d,_0x368cc7,_0x29ebb3));};AGIChannel[_0x23f3('0x25')]['getVariable']=function(_0x3c683f){return this['sendRequest'](util[_0x23f3('0x2a')](_0x23f3('0x41'),_0x3c683f));};AGIChannel['prototype']['recordFile']=function(_0x226398,_0x395f54,_0x38251f,_0x5632b1,_0x10364a,_0x30d7e0){_0x395f54=_0x395f54||_0x23f3('0x42');_0x38251f=_0x38251f||'';_0x5632b1=_0x5632b1===undefined?-0x1:_0x5632b1==='-1'?-0x1:_0x5632b1*0x3e8;_0x10364a=_0x10364a===undefined?'':'s='+_0x10364a;_0x30d7e0=_0x30d7e0?_0x23f3('0x43'):'';return this[_0x23f3('0x26')](util[_0x23f3('0x2a')](_0x23f3('0x44'),_0x226398,_0x395f54,_0x38251f,_0x5632b1,_0x30d7e0,_0x10364a));};AGIChannel[_0x23f3('0x25')][_0x23f3('0x45')]=function(_0x1f36ef,_0x18607a){_0x18607a=_0x18607a||'';return this[_0x23f3('0x26')](util[_0x23f3('0x2a')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x1f36ef,_0x18607a));};AGIChannel[_0x23f3('0x25')]['agi']=function(_0x2a1d94){return this['exec']('AGI',_0x2a1d94);};AGIChannel[_0x23f3('0x25')][_0x23f3('0x46')]=function(_0xf65de){return this[_0x23f3('0x47')](_0x23f3('0x48'),_0xf65de);};AGIChannel[_0x23f3('0x25')][_0x23f3('0x1a')]=function(_0x5e75de,_0x30ba60){this[_0x23f3('0x2b')](util[_0x23f3('0x2a')](_0x23f3('0x49'),_0x5e75de['id'],_0x5e75de[_0x23f3('0x4a')],_0x30ba60));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x23f3('0x4b')]=AGIChannel;