Built motion from commit 3e059bc2.|2.5.32
[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 _0x342e=['answer','ANSWER','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','isNumber','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setPriority','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','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','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','lodash','events','./reply','./error','call','setEncoding','utf8','setTimeout','emit','ready','line','toLowerCase','hangup','substring','search','520\x20End\x20of\x20proper','function','result=','indexOf','substr','startsWith','split','length','error','E_AGI_SOCKET_ERROR','code','close','timeout','destroy','pipe','command','write','inherits','sendRequest','sync','prototype'];(function(_0x631a3c,_0x1b61b6){var _0x2bdfa3=function(_0x21711b){while(--_0x21711b){_0x631a3c['push'](_0x631a3c['shift']());}};_0x2bdfa3(++_0x1b61b6);}(_0x342e,0x19e));var _0xe342=function(_0xf10840,_0xad3916){_0xf10840=_0xf10840-0x0;var _0x1fdf7e=_0x342e[_0xf10840];return _0x1fdf7e;};'use strict';var util=require('util');var _=require(_0xe342('0x0'));var EventEmitter=require(_0xe342('0x1'))['EventEmitter'];var AGIReply=require(_0xe342('0x2'));var AGIError=require(_0xe342('0x3'));function AGIChannel(_0xfe51e5){var _0x326df2=this,_0x30dc1f=new AGIReply(),_0x28e5bb=![],_0x295a74={};EventEmitter[_0xe342('0x4')](_0x326df2);_0xfe51e5[_0xe342('0x5')](_0xe342('0x6'));_0xfe51e5[_0xe342('0x7')](0x8*0x3c*0x3c*0x3e8);_0x30dc1f[_0xe342('0x5')](_0xe342('0x6'));_0x30dc1f['on']('headers',function(_0x51fc15){for(var _0x4a30dc in _0x51fc15){_0x326df2[_0x4a30dc]=_0x51fc15[_0x4a30dc];}_0x326df2[_0xe342('0x8')](_0xe342('0x9'));});_0x30dc1f['on'](_0xe342('0xa'),function(_0x314bc9){if(_0x314bc9[_0xe342('0xb')]()==_0xe342('0xc')){_0x326df2[_0xe342('0x8')]('hangup');return;}if(_0x314bc9[_0xe342('0xd')](0x0,0xb)=='520-Invalid'){_0x28e5bb=!![];}if(_0x28e5bb){_0x295a74['rx']+=_0x314bc9+'\x0a';if(_0x314bc9[_0xe342('0xe')](_0xe342('0xf'))!=-0x1){_0x28e5bb=![];}}else{_0x295a74['rx']=_0x314bc9;}if(_0x28e5bb){return;}if(typeof _0x295a74['cb']==_0xe342('0x10')){var _0x4aa167=_0x295a74['rx'][_0xe342('0xd')](0x0,0x3),_0xe81bc6=null,_0x1f9483=null;_0x4aa167=parseInt(_0x4aa167);if(isNaN(_0x4aa167)){_0x295a74['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x4aa167!=0xc8){_0x295a74['cb'](null,{'code':_0x4aa167,'result':-0x1,'extra':'KO'});return;}_0xe81bc6=_0x295a74['rx'][_0xe342('0xd')](0x4)['replace'](_0xe342('0x11'),'');if(_0xe81bc6[_0xe342('0x12')]('\x20')!=-0x1){_0xe81bc6=_0xe81bc6[_0xe342('0x13')](0x0,_0xe81bc6[_0xe342('0x12')]('\x20'));}if(_[_0xe342('0x14')](_0xe81bc6,'-1')){_0xe81bc6=parseInt(_0xe81bc6);}_0x1f9483=_0x295a74['rx'][_0xe342('0x15')]('\x20');if(_0x1f9483['length']==0x3){_0x1f9483=_0x1f9483[0x2][_0xe342('0xd')](0x1,_0x1f9483[0x2][_0xe342('0x16')]-0x1);}else if(_0x1f9483[_0xe342('0x16')]>0x3){var _0x5ce40c=/\((.+)\)/;var _0x5e954b=_0x295a74['rx']['match'](_0x5ce40c);if(_0x5e954b){_0x1f9483=_0x5e954b[0x1];}else{_0x1f9483=null;}}else{_0x1f9483=null;}_0x295a74['cb'](null,{'code':_0x4aa167,'result':_0xe81bc6,'extra':_0x1f9483});}});_0xfe51e5['on'](_0xe342('0x17'),function(_0x20c3da){_0x326df2[_0xe342('0x8')](_0xe342('0x17'),new AGIError(_0xe342('0x18'),_0x20c3da[_0xe342('0x19')]));});_0xfe51e5['on'](_0xe342('0x1a'),function(){_0x326df2['emit']('close',new AGIError('E_AGI_SOCKET_CLOSE'));});_0xfe51e5['on'](_0xe342('0x1b'),function(){_0x326df2[_0xe342('0x8')]('timeout',new AGIError('E_AGI_SOCKET_TIMEOUT'));_0xfe51e5[_0xe342('0x1c')]();});_0xfe51e5[_0xe342('0x1d')](_0x30dc1f);this[_0xe342('0x1e')]=function(_0x102bd9,_0xcd66b){var _0x102bd9=_0x102bd9||'',_0xcd66b=typeof _0xcd66b==_0xe342('0x10')?_0xcd66b:new Function();_0x295a74={'tx':_0x102bd9,'rx':'','cb':_0xcd66b};_0xfe51e5[_0xe342('0x1f')](_0x102bd9+'\x0a');},this['close']=function(){_0xfe51e5['destroy']();};}util[_0xe342('0x20')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0xe342('0x21')]=function(_0x3e08b7){return this[_0xe342('0x1e')][_0xe342('0x22')](this,_0x3e08b7);};AGIChannel[_0xe342('0x23')][_0xe342('0x24')]=function(){return this[_0xe342('0x21')](_0xe342('0x25'));};AGIChannel[_0xe342('0x23')]['getData']=function(_0x1471e4,_0x6b26bf,_0x18e958){_0x1471e4=_0x1471e4===undefined?'beep':_0x1471e4;_0x6b26bf=_0x6b26bf===undefined?'5':_0x6b26bf;_0x18e958=_0x18e958===undefined?'1':_0x18e958;return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x27'),_0x1471e4,_0x6b26bf*0x3e8,_0x18e958));};AGIChannel['prototype'][_0xe342('0x28')]=function(_0x2c5d70){_0x2c5d70=_0x2c5d70||'NO\x20MESSAGE';return this[_0xe342('0x21')](util[_0xe342('0x26')]('VERBOSE\x20\x22%s\x22',_0x2c5d70));};AGIChannel[_0xe342('0x23')][_0xe342('0x29')]=function(_0x41d3b1,_0x444678){if(_[_0xe342('0x2a')](_0x444678)){return this['sendRequest'](util[_0xe342('0x26')](_0xe342('0x2b'),_0x41d3b1,_0x444678[_0xe342('0x2c')](',')));}return this['sendRequest'](util[_0xe342('0x26')](_0xe342('0x2b'),_0x41d3b1,_0x444678));};AGIChannel[_0xe342('0x23')][_0xe342('0x2d')]=function(_0x29eaee){return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x2e'),_0x29eaee));};AGIChannel[_0xe342('0x23')][_0xe342('0x2f')]=function(_0x4ee01a){return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x30'),_0x4ee01a));};AGIChannel[_0xe342('0x23')]['setPriority']=function(_0x32f87d){return this[_0xe342('0x21')](util['format'](_0xe342('0x31'),_0x32f87d));};AGIChannel[_0xe342('0x23')]['hangup']=function(){return this['sendRequest'](_0xe342('0x32'));};AGIChannel[_0xe342('0x23')]['setVariable']=function(_0x45564a,_0x5ff5aa){var _0x3ae4e9=_['isBoolean'](_0x5ff5aa)||_[_0xe342('0x33')](_0x5ff5aa)?_0x5ff5aa['toString']():_0x5ff5aa;return this[_0xe342('0x21')](util['format']('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x45564a,_0x3ae4e9?_0x3ae4e9[_0xe342('0x34')]()[_0xe342('0x35')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xe342('0x23')][_0xe342('0x36')]=function(_0x1a3eda,_0x52c7b0){return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x37'),_0x1a3eda,_0x52c7b0));};AGIChannel['prototype']['sayDigits']=function(_0x3bf76e,_0x2b67a1){return this['sendRequest'](util[_0xe342('0x26')](_0xe342('0x38'),_0x3bf76e,_0x2b67a1));};AGIChannel[_0xe342('0x23')][_0xe342('0x39')]=function(_0x4afa88,_0x43fc59){return this['sendRequest'](util[_0xe342('0x26')](_0xe342('0x3a'),_0x4afa88,_0x43fc59));};AGIChannel[_0xe342('0x23')][_0xe342('0x3b')]=function(_0x34e9f4,_0x48b84c,_0x557e61){_0x48b84c=_0x48b84c||this['extension'];_0x557e61=_0x557e61||0x1;this[_0xe342('0x2d')](_0x34e9f4);this['setExtension'](_0x48b84c);this[_0xe342('0x3c')](_0x557e61);return this[_0xe342('0x28')](util[_0xe342('0x26')](_0xe342('0x3d'),_0x34e9f4,_0x48b84c,_0x557e61));};AGIChannel['prototype']['getVariable']=function(_0x47b382){return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x3e'),_0x47b382));};AGIChannel[_0xe342('0x23')][_0xe342('0x3f')]=function(_0x3d0d21,_0x32a046,_0xd4826c,_0x47b70f,_0x3df02c,_0x5d5c1e){_0x32a046=_0x32a046||_0xe342('0x40');_0xd4826c=_0xd4826c||'';_0x47b70f=_0x47b70f===undefined?-0x1:_0x47b70f==='-1'?-0x1:_0x47b70f*0x3e8;_0x3df02c=_0x3df02c===undefined?'':'s='+_0x3df02c;_0x5d5c1e=_0x5d5c1e?_0xe342('0x41'):'';return this[_0xe342('0x21')](util[_0xe342('0x26')](_0xe342('0x42'),_0x3d0d21,_0x32a046,_0xd4826c,_0x47b70f,_0x5d5c1e,_0x3df02c));};AGIChannel[_0xe342('0x23')][_0xe342('0x43')]=function(_0x7e8fd7,_0x3218c4){_0x3218c4=_0x3218c4||'';return this['sendRequest'](util['format'](_0xe342('0x44'),_0x7e8fd7,_0x3218c4));};AGIChannel[_0xe342('0x23')][_0xe342('0x45')]=function(_0x5dea41){return this[_0xe342('0x29')](_0xe342('0x46'),_0x5dea41);};AGIChannel[_0xe342('0x23')][_0xe342('0x47')]=function(_0xcbe1aa){return this[_0xe342('0x29')](_0xe342('0x48'),_0xcbe1aa);};AGIChannel[_0xe342('0x23')]['error']=function(_0x2f509d,_0x18d6ca){this['noop'](util[_0xe342('0x26')](_0xe342('0x49'),_0x2f509d['id'],_0x2f509d[_0xe342('0x4a')],_0x18d6ca));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;