Built motion from commit c116dc8b.|2.6.30
[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 _0xb1d2=['answer','ANSWER','getData','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','extension','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','wait','WAIT','label','exports','events','EventEmitter','./reply','./error','call','setEncoding','utf8','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','indexOf','substr','startsWith','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','write','destroy','inherits','prototype','sendRequest'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xb1d2,0x116));var _0x2b1d=function(_0x10d824,_0x374041){_0x10d824=_0x10d824-0x0;var _0x146c01=_0xb1d2[_0x10d824];return _0x146c01;};'use strict';var util=require('util');var _=require('lodash');var EventEmitter=require(_0x2b1d('0x0'))[_0x2b1d('0x1')];var AGIReply=require(_0x2b1d('0x2'));var AGIError=require(_0x2b1d('0x3'));function AGIChannel(_0x229b08){var _0x166ee0=this,_0x38ecfa=new AGIReply(),_0x11d878=![],_0x5dcb9b={};EventEmitter[_0x2b1d('0x4')](_0x166ee0);_0x229b08[_0x2b1d('0x5')](_0x2b1d('0x6'));_0x229b08['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x38ecfa[_0x2b1d('0x5')]('utf8');_0x38ecfa['on']('headers',function(_0x590a52){for(var _0x5589c3 in _0x590a52){_0x166ee0[_0x5589c3]=_0x590a52[_0x5589c3];}_0x166ee0[_0x2b1d('0x7')](_0x2b1d('0x8'));});_0x38ecfa['on'](_0x2b1d('0x9'),function(_0x298621){if(_0x298621[_0x2b1d('0xa')]()==_0x2b1d('0xb')){_0x166ee0[_0x2b1d('0x7')](_0x2b1d('0xb'));return;}if(_0x298621[_0x2b1d('0xc')](0x0,0xb)==_0x2b1d('0xd')){_0x11d878=!![];}if(_0x11d878){_0x5dcb9b['rx']+=_0x298621+'\x0a';if(_0x298621[_0x2b1d('0xe')](_0x2b1d('0xf'))!=-0x1){_0x11d878=![];}}else{_0x5dcb9b['rx']=_0x298621;}if(_0x11d878){return;}if(typeof _0x5dcb9b['cb']==_0x2b1d('0x10')){var _0x1dd47f=_0x5dcb9b['rx'][_0x2b1d('0xc')](0x0,0x3),_0x2e3f88=null,_0x2f329d=null;_0x1dd47f=parseInt(_0x1dd47f);if(isNaN(_0x1dd47f)){_0x5dcb9b['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x2b1d('0x11')});return;}if(_0x1dd47f!=0xc8){_0x5dcb9b['cb'](null,{'code':_0x1dd47f,'result':-0x1,'extra':'KO'});return;}_0x2e3f88=_0x5dcb9b['rx'][_0x2b1d('0xc')](0x4)[_0x2b1d('0x12')]('result=','');if(_0x2e3f88[_0x2b1d('0x13')]('\x20')!=-0x1){_0x2e3f88=_0x2e3f88[_0x2b1d('0x14')](0x0,_0x2e3f88[_0x2b1d('0x13')]('\x20'));}if(_[_0x2b1d('0x15')](_0x2e3f88,'-1')){_0x2e3f88=parseInt(_0x2e3f88);}_0x2f329d=_0x5dcb9b['rx']['split']('\x20');if(_0x2f329d[_0x2b1d('0x16')]==0x3){_0x2f329d=_0x2f329d[0x2][_0x2b1d('0xc')](0x1,_0x2f329d[0x2][_0x2b1d('0x16')]-0x1);}else if(_0x2f329d[_0x2b1d('0x16')]>0x3){var _0x41be75=/\((.+)\)/;var _0x431016=_0x5dcb9b['rx'][_0x2b1d('0x17')](_0x41be75);if(_0x431016){_0x2f329d=_0x431016[0x1];}else{_0x2f329d=null;}}else{_0x2f329d=null;}_0x5dcb9b['cb'](null,{'code':_0x1dd47f,'result':_0x2e3f88,'extra':_0x2f329d});}});_0x229b08['on'](_0x2b1d('0x18'),function(_0x240d25){_0x166ee0[_0x2b1d('0x7')](_0x2b1d('0x18'),new AGIError(_0x2b1d('0x19'),_0x240d25[_0x2b1d('0x1a')]));});_0x229b08['on'](_0x2b1d('0x1b'),function(){_0x166ee0[_0x2b1d('0x7')](_0x2b1d('0x1b'),new AGIError(_0x2b1d('0x1c')));});_0x229b08['on']('timeout',function(){_0x166ee0['emit'](_0x2b1d('0x1d'),new AGIError(_0x2b1d('0x1e')));_0x229b08['destroy']();});_0x229b08[_0x2b1d('0x1f')](_0x38ecfa);this[_0x2b1d('0x20')]=function(_0xaa265c,_0x39edb1){var _0xaa265c=_0xaa265c||'',_0x39edb1=typeof _0x39edb1==_0x2b1d('0x10')?_0x39edb1:new Function();_0x5dcb9b={'tx':_0xaa265c,'rx':'','cb':_0x39edb1};_0x229b08[_0x2b1d('0x21')](_0xaa265c+'\x0a');},this['close']=function(){_0x229b08[_0x2b1d('0x22')]();};}util[_0x2b1d('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x25')]=function(_0x4dbc94){return this[_0x2b1d('0x20')]['sync'](this,_0x4dbc94);};AGIChannel['prototype'][_0x2b1d('0x26')]=function(){return this['sendRequest'](_0x2b1d('0x27'));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x28')]=function(_0x5af59f,_0x6e2c56,_0x56d5a4){_0x5af59f=_0x5af59f===undefined?_0x2b1d('0x29'):_0x5af59f;_0x6e2c56=_0x6e2c56===undefined?'5':_0x6e2c56;_0x56d5a4=_0x56d5a4===undefined?'1':_0x56d5a4;return this[_0x2b1d('0x25')](util['format'](_0x2b1d('0x2a'),_0x5af59f,_0x6e2c56*0x3e8,_0x56d5a4));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x2b')]=function(_0x2b8f63){_0x2b8f63=_0x2b8f63||_0x2b1d('0x2c');return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x2e'),_0x2b8f63));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x2f')]=function(_0x128d87,_0xd7178c){if(_[_0x2b1d('0x30')](_0xd7178c)){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x31'),_0x128d87,_0xd7178c[_0x2b1d('0x32')](',')));}return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')]('EXEC\x20%s\x20%s',_0x128d87,_0xd7178c));};AGIChannel['prototype'][_0x2b1d('0x33')]=function(_0x4b6f46){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')]('SET\x20CONTEXT\x20%s',_0x4b6f46));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x34')]=function(_0x2d2503){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x35'),_0x2d2503));};AGIChannel[_0x2b1d('0x24')]['setPriority']=function(_0x3c55a2){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x36'),_0x3c55a2));};AGIChannel['prototype'][_0x2b1d('0xb')]=function(){return this['sendRequest'](_0x2b1d('0x37'));};AGIChannel['prototype'][_0x2b1d('0x38')]=function(_0x2b603e,_0x38625a){var _0x3f90df=_[_0x2b1d('0x39')](_0x38625a)||_[_0x2b1d('0x3a')](_0x38625a)?_0x38625a['toString']():_0x38625a;return this['sendRequest'](util['format']('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x2b603e,_0x3f90df?_0x3f90df[_0x2b1d('0x3b')]()[_0x2b1d('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x2b1d('0x3c')]=function(_0x4e97d5,_0x102448){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x3d'),_0x4e97d5,_0x102448));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x3e')]=function(_0x698e3a,_0x7bc74c){return this[_0x2b1d('0x25')](util['format'](_0x2b1d('0x3f'),_0x698e3a,_0x7bc74c));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x40')]=function(_0x82beb,_0x5b2beb){return this[_0x2b1d('0x25')](util['format']('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x82beb,_0x5b2beb));};AGIChannel[_0x2b1d('0x24')]['continueAt']=function(_0x442550,_0x22da05,_0x2d006c){_0x22da05=_0x22da05||this[_0x2b1d('0x41')];_0x2d006c=_0x2d006c||0x1;this[_0x2b1d('0x33')](_0x442550);this[_0x2b1d('0x34')](_0x22da05);this['setPriority'](_0x2d006c);return this[_0x2b1d('0x2b')](util[_0x2b1d('0x2d')](_0x2b1d('0x42'),_0x442550,_0x22da05,_0x2d006c));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x43')]=function(_0x53b265){return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x44'),_0x53b265));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x45')]=function(_0x13120f,_0x523547,_0x4317d4,_0x73b76b,_0x77ad98,_0x17eeb6){_0x523547=_0x523547||_0x2b1d('0x46');_0x4317d4=_0x4317d4||'';_0x73b76b=_0x73b76b===undefined?-0x1:_0x73b76b==='-1'?-0x1:_0x73b76b*0x3e8;_0x77ad98=_0x77ad98===undefined?'':'s='+_0x77ad98;_0x17eeb6=_0x17eeb6?'BEEP':'';return this['sendRequest'](util[_0x2b1d('0x2d')](_0x2b1d('0x47'),_0x13120f,_0x523547,_0x4317d4,_0x73b76b,_0x17eeb6,_0x77ad98));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x48')]=function(_0x395cb9,_0x56a8b3){_0x56a8b3=_0x56a8b3||'';return this[_0x2b1d('0x25')](util[_0x2b1d('0x2d')](_0x2b1d('0x49'),_0x395cb9,_0x56a8b3));};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x4a')]=function(_0x2eee6f){return this[_0x2b1d('0x2f')]('AGI',_0x2eee6f);};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x4b')]=function(_0x5b93e2){return this[_0x2b1d('0x2f')](_0x2b1d('0x4c'),_0x5b93e2);};AGIChannel[_0x2b1d('0x24')][_0x2b1d('0x18')]=function(_0x27c531,_0x522485){this[_0x2b1d('0x2b')](util[_0x2b1d('0x2d')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x27c531['id'],_0x27c531[_0x2b1d('0x4d')],_0x522485));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x2b1d('0x4e')]=AGIChannel;