c6e90ec56533bb9a8094f545f321c4d067217081
[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 _0xc23e=['VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','join','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','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','agi','exec','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','lodash','events','EventEmitter','./reply','./error','call','utf8','setTimeout','headers','emit','ready','toLowerCase','hangup','520-Invalid','search','520\x20End\x20of\x20proper','function','substring','replace','indexOf','substr','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','inherits','prototype','answer','sendRequest','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0xc23e,0x68));var _0xec23=function(_0x49b940,_0x102cc8){_0x49b940=_0x49b940-0x0;var _0x50f8d6=_0xc23e[_0x49b940];return _0x50f8d6;};'use strict';var util=require('util');var _=require(_0xec23('0x0'));var EventEmitter=require(_0xec23('0x1'))[_0xec23('0x2')];var AGIReply=require(_0xec23('0x3'));var AGIError=require(_0xec23('0x4'));function AGIChannel(_0x3107d4){var _0x5a0fe9=this,_0xde0e4f=new AGIReply(),_0x24003f=![],_0x4ac569={};EventEmitter[_0xec23('0x5')](_0x5a0fe9);_0x3107d4['setEncoding'](_0xec23('0x6'));_0x3107d4[_0xec23('0x7')](0x8*0x3c*0x3c*0x3e8);_0xde0e4f['setEncoding']('utf8');_0xde0e4f['on'](_0xec23('0x8'),function(_0x30ca38){for(var _0x116387 in _0x30ca38){_0x5a0fe9[_0x116387]=_0x30ca38[_0x116387];}_0x5a0fe9[_0xec23('0x9')](_0xec23('0xa'));});_0xde0e4f['on']('line',function(_0x2c820c){if(_0x2c820c[_0xec23('0xb')]()==_0xec23('0xc')){_0x5a0fe9[_0xec23('0x9')](_0xec23('0xc'));return;}if(_0x2c820c['substring'](0x0,0xb)==_0xec23('0xd')){_0x24003f=!![];}if(_0x24003f){_0x4ac569['rx']+=_0x2c820c+'\x0a';if(_0x2c820c[_0xec23('0xe')](_0xec23('0xf'))!=-0x1){_0x24003f=![];}}else{_0x4ac569['rx']=_0x2c820c;}if(_0x24003f){return;}if(typeof _0x4ac569['cb']==_0xec23('0x10')){var _0x34829a=_0x4ac569['rx'][_0xec23('0x11')](0x0,0x3),_0x15ac06=null,_0x579a30=null;_0x34829a=parseInt(_0x34829a);if(isNaN(_0x34829a)){_0x4ac569['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x34829a!=0xc8){_0x4ac569['cb'](null,{'code':_0x34829a,'result':-0x1,'extra':'KO'});return;}_0x15ac06=_0x4ac569['rx'][_0xec23('0x11')](0x4)[_0xec23('0x12')]('result=','');if(_0x15ac06[_0xec23('0x13')]('\x20')!=-0x1){_0x15ac06=_0x15ac06[_0xec23('0x14')](0x0,_0x15ac06[_0xec23('0x13')]('\x20'));}if(_[_0xec23('0x15')](_0x15ac06,'-1')){_0x15ac06=parseInt(_0x15ac06);}_0x579a30=_0x4ac569['rx'][_0xec23('0x16')]('\x20');if(_0x579a30[_0xec23('0x17')]==0x3){_0x579a30=_0x579a30[0x2][_0xec23('0x11')](0x1,_0x579a30[0x2][_0xec23('0x17')]-0x1);}else if(_0x579a30[_0xec23('0x17')]>0x3){var _0x558b23=/\((.+)\)/;var _0x2c34f6=_0x4ac569['rx'][_0xec23('0x18')](_0x558b23);if(_0x2c34f6){_0x579a30=_0x2c34f6[0x1];}else{_0x579a30=null;}}else{_0x579a30=null;}_0x4ac569['cb'](null,{'code':_0x34829a,'result':_0x15ac06,'extra':_0x579a30});}});_0x3107d4['on'](_0xec23('0x19'),function(_0x5dface){_0x5a0fe9[_0xec23('0x9')]('error',new AGIError('E_AGI_SOCKET_ERROR',_0x5dface[_0xec23('0x1a')]));});_0x3107d4['on'](_0xec23('0x1b'),function(){_0x5a0fe9[_0xec23('0x9')](_0xec23('0x1b'),new AGIError(_0xec23('0x1c')));});_0x3107d4['on'](_0xec23('0x1d'),function(){_0x5a0fe9[_0xec23('0x9')](_0xec23('0x1d'),new AGIError(_0xec23('0x1e')));_0x3107d4[_0xec23('0x1f')]();});_0x3107d4[_0xec23('0x20')](_0xde0e4f);this[_0xec23('0x21')]=function(_0x5d8af7,_0x4c11fb){var _0x5d8af7=_0x5d8af7||'',_0x4c11fb=typeof _0x4c11fb=='function'?_0x4c11fb:new Function();_0x4ac569={'tx':_0x5d8af7,'rx':'','cb':_0x4c11fb};_0x3107d4['write'](_0x5d8af7+'\x0a');},this[_0xec23('0x1b')]=function(){_0x3107d4[_0xec23('0x1f')]();};}util[_0xec23('0x22')](AGIChannel,EventEmitter);AGIChannel[_0xec23('0x23')]['sendRequest']=function(_0x3c8272){return this['command']['sync'](this,_0x3c8272);};AGIChannel[_0xec23('0x23')][_0xec23('0x24')]=function(){return this[_0xec23('0x25')](_0xec23('0x26'));};AGIChannel[_0xec23('0x23')][_0xec23('0x27')]=function(_0x253574,_0x18aa61,_0x35d8c1){_0x253574=_0x253574===undefined?_0xec23('0x28'):_0x253574;_0x18aa61=_0x18aa61===undefined?'5':_0x18aa61;_0x35d8c1=_0x35d8c1===undefined?'1':_0x35d8c1;return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x2a'),_0x253574,_0x18aa61*0x3e8,_0x35d8c1));};AGIChannel[_0xec23('0x23')][_0xec23('0x2b')]=function(_0x365a52){_0x365a52=_0x365a52||'NO\x20MESSAGE';return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x2c'),_0x365a52));};AGIChannel[_0xec23('0x23')]['exec']=function(_0x9a4069,_0x855cf9){if(_[_0xec23('0x2d')](_0x855cf9)){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x2e'),_0x9a4069,_0x855cf9[_0xec23('0x2f')](',')));}return this['sendRequest'](util['format'](_0xec23('0x2e'),_0x9a4069,_0x855cf9));};AGIChannel[_0xec23('0x23')]['setContext']=function(_0x38b4ad){return this[_0xec23('0x25')](util[_0xec23('0x29')]('SET\x20CONTEXT\x20%s',_0x38b4ad));};AGIChannel[_0xec23('0x23')]['setExtension']=function(_0x5503e0){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x30'),_0x5503e0));};AGIChannel[_0xec23('0x23')][_0xec23('0x31')]=function(_0x5caa29){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x32'),_0x5caa29));};AGIChannel[_0xec23('0x23')][_0xec23('0xc')]=function(){return this[_0xec23('0x25')]('HANGUP');};AGIChannel[_0xec23('0x23')]['setVariable']=function(_0x5446c7,_0xba3be9){var _0x4ac733=_[_0xec23('0x33')](_0xba3be9)||_['isNumber'](_0xba3be9)?_0xba3be9[_0xec23('0x34')]():_0xba3be9;return this['sendRequest'](util[_0xec23('0x29')](_0xec23('0x35'),_0x5446c7,_0x4ac733?_0x4ac733[_0xec23('0x34')]()[_0xec23('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0xec23('0x36')]=function(_0x32e927,_0x29fba9){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x37'),_0x32e927,_0x29fba9));};AGIChannel['prototype'][_0xec23('0x38')]=function(_0x5112ff,_0x2136c2){return this[_0xec23('0x25')](util['format']('SAY\x20DIGITS\x20%s\x20%s',_0x5112ff,_0x2136c2));};AGIChannel[_0xec23('0x23')]['sayPhonetic']=function(_0x10395c,_0x1b85a2){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x39'),_0x10395c,_0x1b85a2));};AGIChannel[_0xec23('0x23')][_0xec23('0x3a')]=function(_0xbcd358,_0x411db7,_0x4392c4){_0x411db7=_0x411db7||this[_0xec23('0x3b')];_0x4392c4=_0x4392c4||0x1;this[_0xec23('0x3c')](_0xbcd358);this['setExtension'](_0x411db7);this[_0xec23('0x31')](_0x4392c4);return this[_0xec23('0x2b')](util[_0xec23('0x29')](_0xec23('0x3d'),_0xbcd358,_0x411db7,_0x4392c4));};AGIChannel[_0xec23('0x23')][_0xec23('0x3e')]=function(_0x21994d){return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x3f'),_0x21994d));};AGIChannel[_0xec23('0x23')]['recordFile']=function(_0x394315,_0xdaef76,_0x5cfefb,_0x3c214c,_0x2aeba5,_0xdde5e2){_0xdaef76=_0xdaef76||_0xec23('0x40');_0x5cfefb=_0x5cfefb||'';_0x3c214c=_0x3c214c===undefined?-0x1:_0x3c214c==='-1'?-0x1:_0x3c214c*0x3e8;_0x2aeba5=_0x2aeba5===undefined?'':'s='+_0x2aeba5;_0xdde5e2=_0xdde5e2?_0xec23('0x41'):'';return this[_0xec23('0x25')](util[_0xec23('0x29')](_0xec23('0x42'),_0x394315,_0xdaef76,_0x5cfefb,_0x3c214c,_0xdde5e2,_0x2aeba5));};AGIChannel['prototype'][_0xec23('0x43')]=function(_0x464cc0,_0x378a2d){_0x378a2d=_0x378a2d||'';return this['sendRequest'](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x464cc0,_0x378a2d));};AGIChannel[_0xec23('0x23')][_0xec23('0x44')]=function(_0x207243){return this[_0xec23('0x45')]('AGI',_0x207243);};AGIChannel[_0xec23('0x23')][_0xec23('0x46')]=function(_0x41560b){return this[_0xec23('0x45')](_0xec23('0x47'),_0x41560b);};AGIChannel[_0xec23('0x23')][_0xec23('0x19')]=function(_0x44ab3f,_0x282849){this[_0xec23('0x2b')](util[_0xec23('0x29')](_0xec23('0x48'),_0x44ab3f['id'],_0x44ab3f[_0xec23('0x49')],_0x282849));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;