Built motion from commit 994c64e1.|2.6.1
[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 _0x508a=['getData','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','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','exports','util','events','EventEmitter','./reply','./error','setEncoding','utf8','setTimeout','headers','emit','line','toLowerCase','hangup','substring','520-Invalid','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','substr','indexOf','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','inherits','prototype','sync','answer','sendRequest','ANSWER'];(function(_0x5a845c,_0x161ab9){var _0x114ea8=function(_0x53d24b){while(--_0x53d24b){_0x5a845c['push'](_0x5a845c['shift']());}};_0x114ea8(++_0x161ab9);}(_0x508a,0x1aa));var _0xa508=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x508a[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xa508('0x0'));var _=require('lodash');var EventEmitter=require(_0xa508('0x1'))[_0xa508('0x2')];var AGIReply=require(_0xa508('0x3'));var AGIError=require(_0xa508('0x4'));function AGIChannel(_0x22b268){var _0x587f6a=this,_0x8f1c7a=new AGIReply(),_0x40f2f0=![],_0x2e26ae={};EventEmitter['call'](_0x587f6a);_0x22b268[_0xa508('0x5')](_0xa508('0x6'));_0x22b268[_0xa508('0x7')](0x8*0x3c*0x3c*0x3e8);_0x8f1c7a['setEncoding'](_0xa508('0x6'));_0x8f1c7a['on'](_0xa508('0x8'),function(_0x4f6c23){for(var _0x2ef948 in _0x4f6c23){_0x587f6a[_0x2ef948]=_0x4f6c23[_0x2ef948];}_0x587f6a[_0xa508('0x9')]('ready');});_0x8f1c7a['on'](_0xa508('0xa'),function(_0x1dddf6){if(_0x1dddf6[_0xa508('0xb')]()==_0xa508('0xc')){_0x587f6a[_0xa508('0x9')]('hangup');return;}if(_0x1dddf6[_0xa508('0xd')](0x0,0xb)==_0xa508('0xe')){_0x40f2f0=!![];}if(_0x40f2f0){_0x2e26ae['rx']+=_0x1dddf6+'\x0a';if(_0x1dddf6['search'](_0xa508('0xf'))!=-0x1){_0x40f2f0=![];}}else{_0x2e26ae['rx']=_0x1dddf6;}if(_0x40f2f0){return;}if(typeof _0x2e26ae['cb']==_0xa508('0x10')){var _0x2012d6=_0x2e26ae['rx']['substring'](0x0,0x3),_0x5e60fd=null,_0xc0511c=null;_0x2012d6=parseInt(_0x2012d6);if(isNaN(_0x2012d6)){_0x2e26ae['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xa508('0x11')});return;}if(_0x2012d6!=0xc8){_0x2e26ae['cb'](null,{'code':_0x2012d6,'result':-0x1,'extra':'KO'});return;}_0x5e60fd=_0x2e26ae['rx'][_0xa508('0xd')](0x4)[_0xa508('0x12')](_0xa508('0x13'),'');if(_0x5e60fd['indexOf']('\x20')!=-0x1){_0x5e60fd=_0x5e60fd[_0xa508('0x14')](0x0,_0x5e60fd[_0xa508('0x15')]('\x20'));}if(_[_0xa508('0x16')](_0x5e60fd,'-1')){_0x5e60fd=parseInt(_0x5e60fd);}_0xc0511c=_0x2e26ae['rx'][_0xa508('0x17')]('\x20');if(_0xc0511c['length']==0x3){_0xc0511c=_0xc0511c[0x2][_0xa508('0xd')](0x1,_0xc0511c[0x2][_0xa508('0x18')]-0x1);}else if(_0xc0511c[_0xa508('0x18')]>0x3){var _0xb76bf=/\((.+)\)/;var _0x507c9f=_0x2e26ae['rx'][_0xa508('0x19')](_0xb76bf);if(_0x507c9f){_0xc0511c=_0x507c9f[0x1];}else{_0xc0511c=null;}}else{_0xc0511c=null;}_0x2e26ae['cb'](null,{'code':_0x2012d6,'result':_0x5e60fd,'extra':_0xc0511c});}});_0x22b268['on'](_0xa508('0x1a'),function(_0x5e29a8){_0x587f6a['emit'](_0xa508('0x1a'),new AGIError(_0xa508('0x1b'),_0x5e29a8[_0xa508('0x1c')]));});_0x22b268['on'](_0xa508('0x1d'),function(){_0x587f6a[_0xa508('0x9')](_0xa508('0x1d'),new AGIError(_0xa508('0x1e')));});_0x22b268['on'](_0xa508('0x1f'),function(){_0x587f6a['emit'](_0xa508('0x1f'),new AGIError(_0xa508('0x20')));_0x22b268[_0xa508('0x21')]();});_0x22b268[_0xa508('0x22')](_0x8f1c7a);this[_0xa508('0x23')]=function(_0x597076,_0x274804){var _0x597076=_0x597076||'',_0x274804=typeof _0x274804==_0xa508('0x10')?_0x274804:new Function();_0x2e26ae={'tx':_0x597076,'rx':'','cb':_0x274804};_0x22b268['write'](_0x597076+'\x0a');},this[_0xa508('0x1d')]=function(){_0x22b268[_0xa508('0x21')]();};}util[_0xa508('0x24')](AGIChannel,EventEmitter);AGIChannel[_0xa508('0x25')]['sendRequest']=function(_0x4e3244){return this['command'][_0xa508('0x26')](this,_0x4e3244);};AGIChannel[_0xa508('0x25')][_0xa508('0x27')]=function(){return this[_0xa508('0x28')](_0xa508('0x29'));};AGIChannel[_0xa508('0x25')][_0xa508('0x2a')]=function(_0x4be5bf,_0x53618e,_0x98b1c8){_0x4be5bf=_0x4be5bf===undefined?_0xa508('0x2b'):_0x4be5bf;_0x53618e=_0x53618e===undefined?'5':_0x53618e;_0x98b1c8=_0x98b1c8===undefined?'1':_0x98b1c8;return this['sendRequest'](util[_0xa508('0x2c')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x4be5bf,_0x53618e*0x3e8,_0x98b1c8));};AGIChannel[_0xa508('0x25')][_0xa508('0x2d')]=function(_0x528ae9){_0x528ae9=_0x528ae9||_0xa508('0x2e');return this[_0xa508('0x28')](util[_0xa508('0x2c')](_0xa508('0x2f'),_0x528ae9));};AGIChannel['prototype'][_0xa508('0x30')]=function(_0x405baa,_0x3eb26c){if(_['isArray'](_0x3eb26c)){return this[_0xa508('0x28')](util[_0xa508('0x2c')]('EXEC\x20%s\x20%s',_0x405baa,_0x3eb26c['join'](',')));}return this[_0xa508('0x28')](util['format']('EXEC\x20%s\x20%s',_0x405baa,_0x3eb26c));};AGIChannel[_0xa508('0x25')]['setContext']=function(_0x4fee73){return this[_0xa508('0x28')](util[_0xa508('0x2c')]('SET\x20CONTEXT\x20%s',_0x4fee73));};AGIChannel[_0xa508('0x25')][_0xa508('0x31')]=function(_0x1b94ef){return this['sendRequest'](util['format'](_0xa508('0x32'),_0x1b94ef));};AGIChannel[_0xa508('0x25')][_0xa508('0x33')]=function(_0x20261f){return this[_0xa508('0x28')](util[_0xa508('0x2c')](_0xa508('0x34'),_0x20261f));};AGIChannel[_0xa508('0x25')][_0xa508('0xc')]=function(){return this[_0xa508('0x28')](_0xa508('0x35'));};AGIChannel['prototype'][_0xa508('0x36')]=function(_0xeca5a2,_0x453e4e){var _0x340e7b=_['isBoolean'](_0x453e4e)||_[_0xa508('0x37')](_0x453e4e)?_0x453e4e[_0xa508('0x38')]():_0x453e4e;return this[_0xa508('0x28')](util['format'](_0xa508('0x39'),_0xeca5a2,_0x340e7b?_0x340e7b[_0xa508('0x38')]()[_0xa508('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x35466c,_0x300d5a){return this[_0xa508('0x28')](util[_0xa508('0x2c')]('SAY\x20NUMBER\x20%s\x20%s',_0x35466c,_0x300d5a));};AGIChannel[_0xa508('0x25')][_0xa508('0x3a')]=function(_0x288d5f,_0x44f78){return this[_0xa508('0x28')](util[_0xa508('0x2c')](_0xa508('0x3b'),_0x288d5f,_0x44f78));};AGIChannel[_0xa508('0x25')][_0xa508('0x3c')]=function(_0x41c6f8,_0x3d1e10){return this[_0xa508('0x28')](util['format'](_0xa508('0x3d'),_0x41c6f8,_0x3d1e10));};AGIChannel[_0xa508('0x25')][_0xa508('0x3e')]=function(_0x1ef1c2,_0x48065e,_0x2578d2){_0x48065e=_0x48065e||this[_0xa508('0x3f')];_0x2578d2=_0x2578d2||0x1;this[_0xa508('0x40')](_0x1ef1c2);this[_0xa508('0x31')](_0x48065e);this[_0xa508('0x33')](_0x2578d2);return this[_0xa508('0x2d')](util[_0xa508('0x2c')](_0xa508('0x41'),_0x1ef1c2,_0x48065e,_0x2578d2));};AGIChannel[_0xa508('0x25')][_0xa508('0x42')]=function(_0x159351){return this[_0xa508('0x28')](util[_0xa508('0x2c')]('GET\x20VARIABLE\x20\x22%s\x22',_0x159351));};AGIChannel[_0xa508('0x25')]['recordFile']=function(_0x341b85,_0x66f5d5,_0x1fe380,_0x38596e,_0xea31d0,_0xe04af6){_0x66f5d5=_0x66f5d5||_0xa508('0x43');_0x1fe380=_0x1fe380||'';_0x38596e=_0x38596e===undefined?-0x1:_0x38596e==='-1'?-0x1:_0x38596e*0x3e8;_0xea31d0=_0xea31d0===undefined?'':'s='+_0xea31d0;_0xe04af6=_0xe04af6?_0xa508('0x44'):'';return this['sendRequest'](util[_0xa508('0x2c')](_0xa508('0x45'),_0x341b85,_0x66f5d5,_0x1fe380,_0x38596e,_0xe04af6,_0xea31d0));};AGIChannel[_0xa508('0x25')][_0xa508('0x46')]=function(_0x7bd965,_0x1d631e){_0x1d631e=_0x1d631e||'';return this[_0xa508('0x28')](util[_0xa508('0x2c')](_0xa508('0x47'),_0x7bd965,_0x1d631e));};AGIChannel[_0xa508('0x25')][_0xa508('0x48')]=function(_0x139e5d){return this[_0xa508('0x30')](_0xa508('0x49'),_0x139e5d);};AGIChannel[_0xa508('0x25')][_0xa508('0x4a')]=function(_0x39e60d){return this[_0xa508('0x30')](_0xa508('0x4b'),_0x39e60d);};AGIChannel[_0xa508('0x25')][_0xa508('0x1a')]=function(_0x2c2c88,_0x259fc5){this[_0xa508('0x2d')](util[_0xa508('0x2c')](_0xa508('0x4c'),_0x2c2c88['id'],_0x2c2c88['label'],_0x259fc5));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xa508('0x4d')]=AGIChannel;