Built motion from commit b5996064.|2.6.21
[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 _0x7cc4=['sync','getData','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','prototype','exec','isArray','EXEC\x20%s\x20%s','join','SET\x20CONTEXT\x20%s','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','SAY\x20NUMBER\x20%s\x20%s','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','setExtension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','wait','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','EventEmitter','./reply','./error','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','inherits','sendRequest'];(function(_0x55048b,_0x2b8a8d){var _0x11fc5f=function(_0x40fb6a){while(--_0x40fb6a){_0x55048b['push'](_0x55048b['shift']());}};_0x11fc5f(++_0x2b8a8d);}(_0x7cc4,0x155));var _0x47cc=function(_0x461886,_0x4fc171){_0x461886=_0x461886-0x0;var _0x295e0a=_0x7cc4[_0x461886];return _0x295e0a;};'use strict';var util=require('util');var _=require('lodash');var EventEmitter=require('events')[_0x47cc('0x0')];var AGIReply=require(_0x47cc('0x1'));var AGIError=require(_0x47cc('0x2'));function AGIChannel(_0xe9b140){var _0x353486=this,_0x202709=new AGIReply(),_0x17f328=![],_0x5e1e2e={};EventEmitter['call'](_0x353486);_0xe9b140['setEncoding'](_0x47cc('0x3'));_0xe9b140[_0x47cc('0x4')](0x8*0x3c*0x3c*0x3e8);_0x202709['setEncoding']('utf8');_0x202709['on'](_0x47cc('0x5'),function(_0x33ba1f){for(var _0x55b0f9 in _0x33ba1f){_0x353486[_0x55b0f9]=_0x33ba1f[_0x55b0f9];}_0x353486[_0x47cc('0x6')](_0x47cc('0x7'));});_0x202709['on'](_0x47cc('0x8'),function(_0x9f6832){if(_0x9f6832[_0x47cc('0x9')]()==_0x47cc('0xa')){_0x353486[_0x47cc('0x6')](_0x47cc('0xa'));return;}if(_0x9f6832[_0x47cc('0xb')](0x0,0xb)==_0x47cc('0xc')){_0x17f328=!![];}if(_0x17f328){_0x5e1e2e['rx']+=_0x9f6832+'\x0a';if(_0x9f6832[_0x47cc('0xd')](_0x47cc('0xe'))!=-0x1){_0x17f328=![];}}else{_0x5e1e2e['rx']=_0x9f6832;}if(_0x17f328){return;}if(typeof _0x5e1e2e['cb']==_0x47cc('0xf')){var _0xc3db61=_0x5e1e2e['rx'][_0x47cc('0xb')](0x0,0x3),_0x459b4f=null,_0x29f8c1=null;_0xc3db61=parseInt(_0xc3db61);if(isNaN(_0xc3db61)){_0x5e1e2e['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x47cc('0x10')});return;}if(_0xc3db61!=0xc8){_0x5e1e2e['cb'](null,{'code':_0xc3db61,'result':-0x1,'extra':'KO'});return;}_0x459b4f=_0x5e1e2e['rx'][_0x47cc('0xb')](0x4)['replace'](_0x47cc('0x11'),'');if(_0x459b4f[_0x47cc('0x12')]('\x20')!=-0x1){_0x459b4f=_0x459b4f['substr'](0x0,_0x459b4f['indexOf']('\x20'));}if(_[_0x47cc('0x13')](_0x459b4f,'-1')){_0x459b4f=parseInt(_0x459b4f);}_0x29f8c1=_0x5e1e2e['rx'][_0x47cc('0x14')]('\x20');if(_0x29f8c1[_0x47cc('0x15')]==0x3){_0x29f8c1=_0x29f8c1[0x2][_0x47cc('0xb')](0x1,_0x29f8c1[0x2][_0x47cc('0x15')]-0x1);}else if(_0x29f8c1[_0x47cc('0x15')]>0x3){var _0x1f56d=/\((.+)\)/;var _0x3f176b=_0x5e1e2e['rx'][_0x47cc('0x16')](_0x1f56d);if(_0x3f176b){_0x29f8c1=_0x3f176b[0x1];}else{_0x29f8c1=null;}}else{_0x29f8c1=null;}_0x5e1e2e['cb'](null,{'code':_0xc3db61,'result':_0x459b4f,'extra':_0x29f8c1});}});_0xe9b140['on'](_0x47cc('0x17'),function(_0xa115b){_0x353486[_0x47cc('0x6')](_0x47cc('0x17'),new AGIError('E_AGI_SOCKET_ERROR',_0xa115b[_0x47cc('0x18')]));});_0xe9b140['on'](_0x47cc('0x19'),function(){_0x353486[_0x47cc('0x6')](_0x47cc('0x19'),new AGIError(_0x47cc('0x1a')));});_0xe9b140['on'](_0x47cc('0x1b'),function(){_0x353486[_0x47cc('0x6')]('timeout',new AGIError(_0x47cc('0x1c')));_0xe9b140[_0x47cc('0x1d')]();});_0xe9b140['pipe'](_0x202709);this[_0x47cc('0x1e')]=function(_0x68b162,_0x220b32){var _0x68b162=_0x68b162||'',_0x220b32=typeof _0x220b32==_0x47cc('0xf')?_0x220b32:new Function();_0x5e1e2e={'tx':_0x68b162,'rx':'','cb':_0x220b32};_0xe9b140[_0x47cc('0x1f')](_0x68b162+'\x0a');},this['close']=function(){_0xe9b140['destroy']();};}util[_0x47cc('0x20')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x47cc('0x21')]=function(_0x58cc7e){return this[_0x47cc('0x1e')][_0x47cc('0x22')](this,_0x58cc7e);};AGIChannel['prototype']['answer']=function(){return this[_0x47cc('0x21')]('ANSWER');};AGIChannel['prototype'][_0x47cc('0x23')]=function(_0x594677,_0x13829f,_0x4a305d){_0x594677=_0x594677===undefined?_0x47cc('0x24'):_0x594677;_0x13829f=_0x13829f===undefined?'5':_0x13829f;_0x4a305d=_0x4a305d===undefined?'1':_0x4a305d;return this[_0x47cc('0x21')](util[_0x47cc('0x25')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x594677,_0x13829f*0x3e8,_0x4a305d));};AGIChannel['prototype'][_0x47cc('0x26')]=function(_0x23d7ea){_0x23d7ea=_0x23d7ea||_0x47cc('0x27');return this['sendRequest'](util[_0x47cc('0x25')](_0x47cc('0x28'),_0x23d7ea));};AGIChannel[_0x47cc('0x29')][_0x47cc('0x2a')]=function(_0x5c59e4,_0x155729){if(_[_0x47cc('0x2b')](_0x155729)){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x2c'),_0x5c59e4,_0x155729[_0x47cc('0x2d')](',')));}return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x2c'),_0x5c59e4,_0x155729));};AGIChannel[_0x47cc('0x29')]['setContext']=function(_0x46c2cc){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x2e'),_0x46c2cc));};AGIChannel[_0x47cc('0x29')]['setExtension']=function(_0x433643){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x2f'),_0x433643));};AGIChannel[_0x47cc('0x29')][_0x47cc('0x30')]=function(_0xa78756){return this['sendRequest'](util[_0x47cc('0x25')](_0x47cc('0x31'),_0xa78756));};AGIChannel[_0x47cc('0x29')]['hangup']=function(){return this[_0x47cc('0x21')]('HANGUP');};AGIChannel['prototype'][_0x47cc('0x32')]=function(_0x5725a7,_0x8871e5){var _0x1821b4=_[_0x47cc('0x33')](_0x8871e5)||_[_0x47cc('0x34')](_0x8871e5)?_0x8871e5['toString']():_0x8871e5;return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x35'),_0x5725a7,_0x1821b4?_0x1821b4[_0x47cc('0x36')]()[_0x47cc('0x37')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x47cc('0x29')]['sayNumber']=function(_0x5a5a27,_0x3fda07){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x38'),_0x5a5a27,_0x3fda07));};AGIChannel[_0x47cc('0x29')]['sayDigits']=function(_0x240e47,_0x2e4ccf){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x39'),_0x240e47,_0x2e4ccf));};AGIChannel['prototype'][_0x47cc('0x3a')]=function(_0x5816d6,_0x11ff67){return this['sendRequest'](util['format'](_0x47cc('0x3b'),_0x5816d6,_0x11ff67));};AGIChannel['prototype'][_0x47cc('0x3c')]=function(_0xeec955,_0x148c6e,_0xb1c8e2){_0x148c6e=_0x148c6e||this[_0x47cc('0x3d')];_0xb1c8e2=_0xb1c8e2||0x1;this[_0x47cc('0x3e')](_0xeec955);this[_0x47cc('0x3f')](_0x148c6e);this[_0x47cc('0x30')](_0xb1c8e2);return this[_0x47cc('0x26')](util[_0x47cc('0x25')](_0x47cc('0x40'),_0xeec955,_0x148c6e,_0xb1c8e2));};AGIChannel[_0x47cc('0x29')][_0x47cc('0x41')]=function(_0x3ed802){return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x42'),_0x3ed802));};AGIChannel[_0x47cc('0x29')][_0x47cc('0x43')]=function(_0x4c7917,_0x15a71c,_0x249588,_0x517764,_0x5411e6,_0x420ea0){_0x15a71c=_0x15a71c||_0x47cc('0x44');_0x249588=_0x249588||'';_0x517764=_0x517764===undefined?-0x1:_0x517764==='-1'?-0x1:_0x517764*0x3e8;_0x5411e6=_0x5411e6===undefined?'':'s='+_0x5411e6;_0x420ea0=_0x420ea0?_0x47cc('0x45'):'';return this[_0x47cc('0x21')](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x4c7917,_0x15a71c,_0x249588,_0x517764,_0x420ea0,_0x5411e6));};AGIChannel[_0x47cc('0x29')]['streamFile']=function(_0x24ef61,_0x36b2de){_0x36b2de=_0x36b2de||'';return this[_0x47cc('0x21')](util[_0x47cc('0x25')](_0x47cc('0x46'),_0x24ef61,_0x36b2de));};AGIChannel['prototype'][_0x47cc('0x47')]=function(_0xb6a1c8){return this[_0x47cc('0x2a')]('AGI',_0xb6a1c8);};AGIChannel[_0x47cc('0x29')][_0x47cc('0x48')]=function(_0x147cd6){return this[_0x47cc('0x2a')]('WAIT',_0x147cd6);};AGIChannel[_0x47cc('0x29')][_0x47cc('0x17')]=function(_0x19d740,_0x259807){this['noop'](util['format'](_0x47cc('0x49'),_0x19d740['id'],_0x19d740[_0x47cc('0x4a')],_0x259807));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;