Built motion from commit 67e5df37.|2.0.66
[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 _0x55d6=['emit','ready','line','toLowerCase','hangup','search','520\x20End\x20of\x20proper','function','substring','no\x20code','result=','indexOf','substr','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','sendRequest','sync','prototype','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','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','label','exports','util','lodash','events','./error','setEncoding','setTimeout','utf8'];(function(_0x2d2c16,_0x4e88b6){var _0x53f2fb=function(_0x6b6dac){while(--_0x6b6dac){_0x2d2c16['push'](_0x2d2c16['shift']());}};_0x53f2fb(++_0x4e88b6);}(_0x55d6,0x1c1));var _0x655d=function(_0x19e12e,_0x4375c9){_0x19e12e=_0x19e12e-0x0;var _0x4c9731=_0x55d6[_0x19e12e];return _0x4c9731;};'use strict';var util=require(_0x655d('0x0'));var _=require(_0x655d('0x1'));var EventEmitter=require(_0x655d('0x2'))['EventEmitter'];var AGIReply=require('./reply');var AGIError=require(_0x655d('0x3'));function AGIChannel(_0x97f49f){var _0x495b21=this,_0x51a0a9=new AGIReply(),_0x5e0416=![],_0x4dfb2c={};EventEmitter['call'](_0x495b21);_0x97f49f[_0x655d('0x4')]('utf8');_0x97f49f[_0x655d('0x5')](0x8*0x3c*0x3c*0x3e8);_0x51a0a9[_0x655d('0x4')](_0x655d('0x6'));_0x51a0a9['on']('headers',function(_0x5e6753){for(var _0x416a2b in _0x5e6753){_0x495b21[_0x416a2b]=_0x5e6753[_0x416a2b];}_0x495b21[_0x655d('0x7')](_0x655d('0x8'));});_0x51a0a9['on'](_0x655d('0x9'),function(_0x3dfac8){if(_0x3dfac8[_0x655d('0xa')]()==_0x655d('0xb')){_0x495b21[_0x655d('0x7')]('hangup');return;}if(_0x3dfac8['substring'](0x0,0xb)=='520-Invalid'){_0x5e0416=!![];}if(_0x5e0416){_0x4dfb2c['rx']+=_0x3dfac8+'\x0a';if(_0x3dfac8[_0x655d('0xc')](_0x655d('0xd'))!=-0x1){_0x5e0416=![];}}else{_0x4dfb2c['rx']=_0x3dfac8;}if(_0x5e0416){return;}if(typeof _0x4dfb2c['cb']==_0x655d('0xe')){var _0x4338c1=_0x4dfb2c['rx'][_0x655d('0xf')](0x0,0x3),_0x312a29=null,_0x40945a=null;_0x4338c1=parseInt(_0x4338c1);if(isNaN(_0x4338c1)){_0x4dfb2c['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x655d('0x10')});return;}if(_0x4338c1!=0xc8){_0x4dfb2c['cb'](null,{'code':_0x4338c1,'result':-0x1,'extra':'KO'});return;}_0x312a29=_0x4dfb2c['rx'][_0x655d('0xf')](0x4)['replace'](_0x655d('0x11'),'');if(_0x312a29[_0x655d('0x12')]('\x20')!=-0x1){_0x312a29=_0x312a29[_0x655d('0x13')](0x0,_0x312a29[_0x655d('0x12')]('\x20'));}if(_[_0x655d('0x14')](_0x312a29,'-1')){_0x312a29=parseInt(_0x312a29);}_0x40945a=_0x4dfb2c['rx'][_0x655d('0x15')]('\x20');if(_0x40945a['length']==0x3){_0x40945a=_0x40945a[0x2][_0x655d('0xf')](0x1,_0x40945a[0x2][_0x655d('0x16')]-0x1);}else if(_0x40945a['length']>0x3){var _0x484109=/\((.+)\)/;var _0x48dc90=_0x4dfb2c['rx'][_0x655d('0x17')](_0x484109);if(_0x48dc90){_0x40945a=_0x48dc90[0x1];}else{_0x40945a=null;}}else{_0x40945a=null;}_0x4dfb2c['cb'](null,{'code':_0x4338c1,'result':_0x312a29,'extra':_0x40945a});}});_0x97f49f['on']('error',function(_0x37fc1c){_0x495b21[_0x655d('0x7')](_0x655d('0x18'),new AGIError('E_AGI_SOCKET_ERROR',_0x37fc1c[_0x655d('0x19')]));});_0x97f49f['on'](_0x655d('0x1a'),function(){_0x495b21[_0x655d('0x7')](_0x655d('0x1a'),new AGIError(_0x655d('0x1b')));});_0x97f49f['on'](_0x655d('0x1c'),function(){_0x495b21['emit'](_0x655d('0x1c'),new AGIError(_0x655d('0x1d')));_0x97f49f[_0x655d('0x1e')]();});_0x97f49f[_0x655d('0x1f')](_0x51a0a9);this[_0x655d('0x20')]=function(_0x5f58ba,_0x301e69){var _0x5f58ba=_0x5f58ba||'',_0x301e69=typeof _0x301e69==_0x655d('0xe')?_0x301e69:new Function();_0x4dfb2c={'tx':_0x5f58ba,'rx':'','cb':_0x301e69};_0x97f49f[_0x655d('0x21')](_0x5f58ba+'\x0a');},this[_0x655d('0x1a')]=function(){_0x97f49f[_0x655d('0x1e')]();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x655d('0x22')]=function(_0x2ec992){return this['command'][_0x655d('0x23')](this,_0x2ec992);};AGIChannel[_0x655d('0x24')]['answer']=function(){return this[_0x655d('0x22')](_0x655d('0x25'));};AGIChannel[_0x655d('0x24')][_0x655d('0x26')]=function(_0xf465b8,_0x57db64,_0x583c2f){_0xf465b8=_0xf465b8===undefined?_0x655d('0x27'):_0xf465b8;_0x57db64=_0x57db64===undefined?'5':_0x57db64;_0x583c2f=_0x583c2f===undefined?'1':_0x583c2f;return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x29'),_0xf465b8,_0x57db64*0x3e8,_0x583c2f));};AGIChannel[_0x655d('0x24')][_0x655d('0x2a')]=function(_0x4cefa1){_0x4cefa1=_0x4cefa1||'NO\x20MESSAGE';return this[_0x655d('0x22')](util['format'](_0x655d('0x2b'),_0x4cefa1));};AGIChannel[_0x655d('0x24')][_0x655d('0x2c')]=function(_0x411189,_0x3727a0){if(_['isArray'](_0x3727a0)){return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x2d'),_0x411189,_0x3727a0[_0x655d('0x2e')](',')));}return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x2d'),_0x411189,_0x3727a0));};AGIChannel[_0x655d('0x24')]['setContext']=function(_0x2b6627){return this['sendRequest'](util['format'](_0x655d('0x2f'),_0x2b6627));};AGIChannel[_0x655d('0x24')][_0x655d('0x30')]=function(_0x2cb4fa){return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x31'),_0x2cb4fa));};AGIChannel[_0x655d('0x24')][_0x655d('0x32')]=function(_0xafb347){return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x33'),_0xafb347));};AGIChannel[_0x655d('0x24')][_0x655d('0xb')]=function(){return this[_0x655d('0x22')](_0x655d('0x34'));};AGIChannel[_0x655d('0x24')][_0x655d('0x35')]=function(_0x33461d,_0xa108b8){return this[_0x655d('0x22')](util[_0x655d('0x28')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x33461d,_0xa108b8?_0xa108b8[_0x655d('0x36')]()[_0x655d('0x37')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x655d('0x24')][_0x655d('0x38')]=function(_0x5d91a9,_0x571831){return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x39'),_0x5d91a9,_0x571831));};AGIChannel[_0x655d('0x24')][_0x655d('0x3a')]=function(_0x197312,_0x59b442){return this['sendRequest'](util[_0x655d('0x28')]('SAY\x20DIGITS\x20%s\x20%s',_0x197312,_0x59b442));};AGIChannel[_0x655d('0x24')][_0x655d('0x3b')]=function(_0x42f5c9,_0x469d9d){return this['sendRequest'](util['format'](_0x655d('0x3c'),_0x42f5c9,_0x469d9d));};AGIChannel[_0x655d('0x24')]['continueAt']=function(_0x1ecc81,_0x2c5ce7,_0x39398d){_0x2c5ce7=_0x2c5ce7||this[_0x655d('0x3d')];_0x39398d=_0x39398d||0x1;this[_0x655d('0x3e')](_0x1ecc81);this[_0x655d('0x30')](_0x2c5ce7);this[_0x655d('0x32')](_0x39398d);return this[_0x655d('0x2a')](util[_0x655d('0x28')](_0x655d('0x3f'),_0x1ecc81,_0x2c5ce7,_0x39398d));};AGIChannel[_0x655d('0x24')][_0x655d('0x40')]=function(_0xf221af){return this['sendRequest'](util['format'](_0x655d('0x41'),_0xf221af));};AGIChannel[_0x655d('0x24')][_0x655d('0x42')]=function(_0x169e13,_0x203107,_0x16e770,_0x45bb59,_0x29630f,_0x2883db){_0x203107=_0x203107||_0x655d('0x43');_0x16e770=_0x16e770||'';_0x45bb59=_0x45bb59===undefined?-0x1:_0x45bb59==='-1'?-0x1:_0x45bb59*0x3e8;_0x29630f=_0x29630f===undefined?'':'s='+_0x29630f;_0x2883db=_0x2883db?'BEEP':'';return this[_0x655d('0x22')](util[_0x655d('0x28')](_0x655d('0x44'),_0x169e13,_0x203107,_0x16e770,_0x45bb59,_0x2883db,_0x29630f));};AGIChannel['prototype'][_0x655d('0x45')]=function(_0x173c09,_0x37a069){_0x37a069=_0x37a069||'';return this[_0x655d('0x22')](util['format'](_0x655d('0x46'),_0x173c09,_0x37a069));};AGIChannel['prototype'][_0x655d('0x47')]=function(_0x198066){return this[_0x655d('0x2c')](_0x655d('0x48'),_0x198066);};AGIChannel[_0x655d('0x24')][_0x655d('0x49')]=function(_0x55506f){return this['exec']('WAIT',_0x55506f);};AGIChannel[_0x655d('0x24')][_0x655d('0x18')]=function(_0x43ac2c,_0x339ffa){this[_0x655d('0x2a')](util[_0x655d('0x28')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x43ac2c['id'],_0x43ac2c[_0x655d('0x4a')],_0x339ffa));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x655d('0x4b')]=AGIChannel;