Built motion from commit b0a9a629.|2.6.33
[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 _0xfa9f=['ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','lodash','events','EventEmitter','./reply','./error','setEncoding','utf8','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','function','no\x20code','replace','result=','indexOf','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','inherits','prototype','sync','ANSWER','getData','beep','sendRequest','format','noop','NO\x20MESSAGE','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','isBoolean','isNumber','toString','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','setPriority','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'];(function(_0x1e881d,_0x219a7a){var _0x59e0c5=function(_0x47fe73){while(--_0x47fe73){_0x1e881d['push'](_0x1e881d['shift']());}};_0x59e0c5(++_0x219a7a);}(_0xfa9f,0x93));var _0xffa9=function(_0x40cdfa,_0x1cf634){_0x40cdfa=_0x40cdfa-0x0;var _0x2c5e4d=_0xfa9f[_0x40cdfa];return _0x2c5e4d;};'use strict';var util=require('util');var _=require(_0xffa9('0x0'));var EventEmitter=require(_0xffa9('0x1'))[_0xffa9('0x2')];var AGIReply=require(_0xffa9('0x3'));var AGIError=require(_0xffa9('0x4'));function AGIChannel(_0x492e53){var _0x200b31=this,_0x5bed37=new AGIReply(),_0x2f8db9=![],_0x242026={};EventEmitter['call'](_0x200b31);_0x492e53[_0xffa9('0x5')]('utf8');_0x492e53['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x5bed37[_0xffa9('0x5')](_0xffa9('0x6'));_0x5bed37['on'](_0xffa9('0x7'),function(_0x13c3d0){for(var _0x5cc8b2 in _0x13c3d0){_0x200b31[_0x5cc8b2]=_0x13c3d0[_0x5cc8b2];}_0x200b31[_0xffa9('0x8')](_0xffa9('0x9'));});_0x5bed37['on'](_0xffa9('0xa'),function(_0x3a7a1a){if(_0x3a7a1a[_0xffa9('0xb')]()==_0xffa9('0xc')){_0x200b31[_0xffa9('0x8')](_0xffa9('0xc'));return;}if(_0x3a7a1a[_0xffa9('0xd')](0x0,0xb)==_0xffa9('0xe')){_0x2f8db9=!![];}if(_0x2f8db9){_0x242026['rx']+=_0x3a7a1a+'\x0a';if(_0x3a7a1a[_0xffa9('0xf')]('520\x20End\x20of\x20proper')!=-0x1){_0x2f8db9=![];}}else{_0x242026['rx']=_0x3a7a1a;}if(_0x2f8db9){return;}if(typeof _0x242026['cb']==_0xffa9('0x10')){var _0x21ac24=_0x242026['rx'][_0xffa9('0xd')](0x0,0x3),_0x23b3f9=null,_0x231aad=null;_0x21ac24=parseInt(_0x21ac24);if(isNaN(_0x21ac24)){_0x242026['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xffa9('0x11')});return;}if(_0x21ac24!=0xc8){_0x242026['cb'](null,{'code':_0x21ac24,'result':-0x1,'extra':'KO'});return;}_0x23b3f9=_0x242026['rx'][_0xffa9('0xd')](0x4)[_0xffa9('0x12')](_0xffa9('0x13'),'');if(_0x23b3f9[_0xffa9('0x14')]('\x20')!=-0x1){_0x23b3f9=_0x23b3f9['substr'](0x0,_0x23b3f9[_0xffa9('0x14')]('\x20'));}if(_['startsWith'](_0x23b3f9,'-1')){_0x23b3f9=parseInt(_0x23b3f9);}_0x231aad=_0x242026['rx'][_0xffa9('0x15')]('\x20');if(_0x231aad[_0xffa9('0x16')]==0x3){_0x231aad=_0x231aad[0x2]['substring'](0x1,_0x231aad[0x2][_0xffa9('0x16')]-0x1);}else if(_0x231aad[_0xffa9('0x16')]>0x3){var _0x1ce6c3=/\((.+)\)/;var _0x568950=_0x242026['rx'][_0xffa9('0x17')](_0x1ce6c3);if(_0x568950){_0x231aad=_0x568950[0x1];}else{_0x231aad=null;}}else{_0x231aad=null;}_0x242026['cb'](null,{'code':_0x21ac24,'result':_0x23b3f9,'extra':_0x231aad});}});_0x492e53['on'](_0xffa9('0x18'),function(_0x3cd552){_0x200b31[_0xffa9('0x8')]('error',new AGIError(_0xffa9('0x19'),_0x3cd552['code']));});_0x492e53['on'](_0xffa9('0x1a'),function(){_0x200b31[_0xffa9('0x8')](_0xffa9('0x1a'),new AGIError(_0xffa9('0x1b')));});_0x492e53['on'](_0xffa9('0x1c'),function(){_0x200b31[_0xffa9('0x8')]('timeout',new AGIError(_0xffa9('0x1d')));_0x492e53[_0xffa9('0x1e')]();});_0x492e53[_0xffa9('0x1f')](_0x5bed37);this[_0xffa9('0x20')]=function(_0x2d0784,_0x2c9c20){var _0x2d0784=_0x2d0784||'',_0x2c9c20=typeof _0x2c9c20==_0xffa9('0x10')?_0x2c9c20:new Function();_0x242026={'tx':_0x2d0784,'rx':'','cb':_0x2c9c20};_0x492e53['write'](_0x2d0784+'\x0a');},this['close']=function(){_0x492e53[_0xffa9('0x1e')]();};}util[_0xffa9('0x21')](AGIChannel,EventEmitter);AGIChannel[_0xffa9('0x22')]['sendRequest']=function(_0x5d3401){return this[_0xffa9('0x20')][_0xffa9('0x23')](this,_0x5d3401);};AGIChannel[_0xffa9('0x22')]['answer']=function(){return this['sendRequest'](_0xffa9('0x24'));};AGIChannel['prototype'][_0xffa9('0x25')]=function(_0x2a2ceb,_0x231b50,_0x331606){_0x2a2ceb=_0x2a2ceb===undefined?_0xffa9('0x26'):_0x2a2ceb;_0x231b50=_0x231b50===undefined?'5':_0x231b50;_0x331606=_0x331606===undefined?'1':_0x331606;return this[_0xffa9('0x27')](util[_0xffa9('0x28')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x2a2ceb,_0x231b50*0x3e8,_0x331606));};AGIChannel[_0xffa9('0x22')][_0xffa9('0x29')]=function(_0xa12be0){_0xa12be0=_0xa12be0||_0xffa9('0x2a');return this[_0xffa9('0x27')](util[_0xffa9('0x28')]('VERBOSE\x20\x22%s\x22',_0xa12be0));};AGIChannel['prototype'][_0xffa9('0x2b')]=function(_0x3484f6,_0x3b01fe){if(_[_0xffa9('0x2c')](_0x3b01fe)){return this[_0xffa9('0x27')](util[_0xffa9('0x28')](_0xffa9('0x2d'),_0x3484f6,_0x3b01fe[_0xffa9('0x2e')](',')));}return this[_0xffa9('0x27')](util['format'](_0xffa9('0x2d'),_0x3484f6,_0x3b01fe));};AGIChannel[_0xffa9('0x22')][_0xffa9('0x2f')]=function(_0x5b86f8){return this[_0xffa9('0x27')](util[_0xffa9('0x28')](_0xffa9('0x30'),_0x5b86f8));};AGIChannel['prototype'][_0xffa9('0x31')]=function(_0xa1b92e){return this[_0xffa9('0x27')](util['format'](_0xffa9('0x32'),_0xa1b92e));};AGIChannel['prototype']['setPriority']=function(_0x412fbc){return this['sendRequest'](util[_0xffa9('0x28')](_0xffa9('0x33'),_0x412fbc));};AGIChannel[_0xffa9('0x22')][_0xffa9('0xc')]=function(){return this[_0xffa9('0x27')]('HANGUP');};AGIChannel[_0xffa9('0x22')]['setVariable']=function(_0x4e9dad,_0x1fea76){var _0x4eef99=_[_0xffa9('0x34')](_0x1fea76)||_[_0xffa9('0x35')](_0x1fea76)?_0x1fea76['toString']():_0x1fea76;return this['sendRequest'](util[_0xffa9('0x28')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x4e9dad,_0x4eef99?_0x4eef99[_0xffa9('0x36')]()[_0xffa9('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x4827a6,_0x5685e4){return this[_0xffa9('0x27')](util[_0xffa9('0x28')](_0xffa9('0x37'),_0x4827a6,_0x5685e4));};AGIChannel['prototype'][_0xffa9('0x38')]=function(_0x3d9cd7,_0xf0f36b){return this[_0xffa9('0x27')](util[_0xffa9('0x28')]('SAY\x20DIGITS\x20%s\x20%s',_0x3d9cd7,_0xf0f36b));};AGIChannel['prototype'][_0xffa9('0x39')]=function(_0x2ef6cc,_0x44d2e4){return this[_0xffa9('0x27')](util['format'](_0xffa9('0x3a'),_0x2ef6cc,_0x44d2e4));};AGIChannel[_0xffa9('0x22')]['continueAt']=function(_0x410d17,_0x17f5ca,_0x446f87){_0x17f5ca=_0x17f5ca||this['extension'];_0x446f87=_0x446f87||0x1;this['setContext'](_0x410d17);this[_0xffa9('0x31')](_0x17f5ca);this[_0xffa9('0x3b')](_0x446f87);return this[_0xffa9('0x29')](util[_0xffa9('0x28')]('GOTO\x20%s\x20%s\x20%s',_0x410d17,_0x17f5ca,_0x446f87));};AGIChannel[_0xffa9('0x22')][_0xffa9('0x3c')]=function(_0xe18568){return this[_0xffa9('0x27')](util[_0xffa9('0x28')](_0xffa9('0x3d'),_0xe18568));};AGIChannel[_0xffa9('0x22')][_0xffa9('0x3e')]=function(_0x2da10a,_0x3823a6,_0x1a1baa,_0x26c8d8,_0x32645e,_0x26ec89){_0x3823a6=_0x3823a6||_0xffa9('0x3f');_0x1a1baa=_0x1a1baa||'';_0x26c8d8=_0x26c8d8===undefined?-0x1:_0x26c8d8==='-1'?-0x1:_0x26c8d8*0x3e8;_0x32645e=_0x32645e===undefined?'':'s='+_0x32645e;_0x26ec89=_0x26ec89?'BEEP':'';return this['sendRequest'](util[_0xffa9('0x28')](_0xffa9('0x40'),_0x2da10a,_0x3823a6,_0x1a1baa,_0x26c8d8,_0x26ec89,_0x32645e));};AGIChannel[_0xffa9('0x22')][_0xffa9('0x41')]=function(_0x345bb7,_0x3e59df){_0x3e59df=_0x3e59df||'';return this['sendRequest'](util[_0xffa9('0x28')](_0xffa9('0x42'),_0x345bb7,_0x3e59df));};AGIChannel['prototype']['agi']=function(_0x271ad1){return this[_0xffa9('0x2b')](_0xffa9('0x43'),_0x271ad1);};AGIChannel['prototype']['wait']=function(_0x5ad793){return this[_0xffa9('0x2b')](_0xffa9('0x44'),_0x5ad793);};AGIChannel[_0xffa9('0x22')][_0xffa9('0x18')]=function(_0x125d08,_0x50ab4b){this[_0xffa9('0x29')](util['format'](_0xffa9('0x45'),_0x125d08['id'],_0x125d08[_0xffa9('0x46')],_0x50ab4b));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xffa9('0x47')]=AGIChannel;