Built motion from commit 9e1399f3.|2.5.37
[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 _0x782f=['exports','util','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','toLowerCase','hangup','emit','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','substr','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','sendRequest','sync','prototype','answer','ANSWER','getData','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','isArray','format','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setPriority','SET\x20PRIORITY\x20%s','setVariable','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','sayDigits','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setExtension','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','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s'];(function(_0x38e9c7,_0x37c439){var _0xe72d3a=function(_0x353490){while(--_0x353490){_0x38e9c7['push'](_0x38e9c7['shift']());}};_0xe72d3a(++_0x37c439);}(_0x782f,0x1f2));var _0xf782=function(_0x338f64,_0x5793e3){_0x338f64=_0x338f64-0x0;var _0x104b9b=_0x782f[_0x338f64];return _0x104b9b;};'use strict';var util=require(_0xf782('0x0'));var _=require('lodash');var EventEmitter=require('events')[_0xf782('0x1')];var AGIReply=require(_0xf782('0x2'));var AGIError=require(_0xf782('0x3'));function AGIChannel(_0x2fc7bf){var _0x2a0b3e=this,_0x1f17d3=new AGIReply(),_0x56b1d7=![],_0x3976c4={};EventEmitter[_0xf782('0x4')](_0x2a0b3e);_0x2fc7bf[_0xf782('0x5')](_0xf782('0x6'));_0x2fc7bf[_0xf782('0x7')](0x8*0x3c*0x3c*0x3e8);_0x1f17d3['setEncoding'](_0xf782('0x6'));_0x1f17d3['on']('headers',function(_0x39cbce){for(var _0x4b285a in _0x39cbce){_0x2a0b3e[_0x4b285a]=_0x39cbce[_0x4b285a];}_0x2a0b3e['emit']('ready');});_0x1f17d3['on']('line',function(_0x30dc0a){if(_0x30dc0a[_0xf782('0x8')]()==_0xf782('0x9')){_0x2a0b3e[_0xf782('0xa')](_0xf782('0x9'));return;}if(_0x30dc0a[_0xf782('0xb')](0x0,0xb)==_0xf782('0xc')){_0x56b1d7=!![];}if(_0x56b1d7){_0x3976c4['rx']+=_0x30dc0a+'\x0a';if(_0x30dc0a[_0xf782('0xd')](_0xf782('0xe'))!=-0x1){_0x56b1d7=![];}}else{_0x3976c4['rx']=_0x30dc0a;}if(_0x56b1d7){return;}if(typeof _0x3976c4['cb']==_0xf782('0xf')){var _0x22ebfa=_0x3976c4['rx'][_0xf782('0xb')](0x0,0x3),_0x358bd4=null,_0x51c487=null;_0x22ebfa=parseInt(_0x22ebfa);if(isNaN(_0x22ebfa)){_0x3976c4['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xf782('0x10')});return;}if(_0x22ebfa!=0xc8){_0x3976c4['cb'](null,{'code':_0x22ebfa,'result':-0x1,'extra':'KO'});return;}_0x358bd4=_0x3976c4['rx'][_0xf782('0xb')](0x4)['replace'](_0xf782('0x11'),'');if(_0x358bd4[_0xf782('0x12')]('\x20')!=-0x1){_0x358bd4=_0x358bd4[_0xf782('0x13')](0x0,_0x358bd4[_0xf782('0x12')]('\x20'));}if(_[_0xf782('0x14')](_0x358bd4,'-1')){_0x358bd4=parseInt(_0x358bd4);}_0x51c487=_0x3976c4['rx'][_0xf782('0x15')]('\x20');if(_0x51c487['length']==0x3){_0x51c487=_0x51c487[0x2]['substring'](0x1,_0x51c487[0x2][_0xf782('0x16')]-0x1);}else if(_0x51c487[_0xf782('0x16')]>0x3){var _0x189ee2=/\((.+)\)/;var _0x12d391=_0x3976c4['rx'][_0xf782('0x17')](_0x189ee2);if(_0x12d391){_0x51c487=_0x12d391[0x1];}else{_0x51c487=null;}}else{_0x51c487=null;}_0x3976c4['cb'](null,{'code':_0x22ebfa,'result':_0x358bd4,'extra':_0x51c487});}});_0x2fc7bf['on'](_0xf782('0x18'),function(_0x304993){_0x2a0b3e['emit']('error',new AGIError('E_AGI_SOCKET_ERROR',_0x304993[_0xf782('0x19')]));});_0x2fc7bf['on']('close',function(){_0x2a0b3e[_0xf782('0xa')](_0xf782('0x1a'),new AGIError(_0xf782('0x1b')));});_0x2fc7bf['on'](_0xf782('0x1c'),function(){_0x2a0b3e[_0xf782('0xa')]('timeout',new AGIError(_0xf782('0x1d')));_0x2fc7bf[_0xf782('0x1e')]();});_0x2fc7bf['pipe'](_0x1f17d3);this[_0xf782('0x1f')]=function(_0x54f947,_0x44a02f){var _0x54f947=_0x54f947||'',_0x44a02f=typeof _0x44a02f=='function'?_0x44a02f:new Function();_0x3976c4={'tx':_0x54f947,'rx':'','cb':_0x44a02f};_0x2fc7bf[_0xf782('0x20')](_0x54f947+'\x0a');},this['close']=function(){_0x2fc7bf['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel['prototype'][_0xf782('0x21')]=function(_0x5e3215){return this[_0xf782('0x1f')][_0xf782('0x22')](this,_0x5e3215);};AGIChannel[_0xf782('0x23')][_0xf782('0x24')]=function(){return this[_0xf782('0x21')](_0xf782('0x25'));};AGIChannel[_0xf782('0x23')][_0xf782('0x26')]=function(_0x2e4b9e,_0x4a3a39,_0x461f33){_0x2e4b9e=_0x2e4b9e===undefined?'beep':_0x2e4b9e;_0x4a3a39=_0x4a3a39===undefined?'5':_0x4a3a39;_0x461f33=_0x461f33===undefined?'1':_0x461f33;return this[_0xf782('0x21')](util['format'](_0xf782('0x27'),_0x2e4b9e,_0x4a3a39*0x3e8,_0x461f33));};AGIChannel[_0xf782('0x23')][_0xf782('0x28')]=function(_0x2daefb){_0x2daefb=_0x2daefb||'NO\x20MESSAGE';return this[_0xf782('0x21')](util['format'](_0xf782('0x29'),_0x2daefb));};AGIChannel['prototype'][_0xf782('0x2a')]=function(_0x2eab83,_0x46ff3d){if(_[_0xf782('0x2b')](_0x46ff3d)){return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x2d'),_0x2eab83,_0x46ff3d['join'](',')));}return this[_0xf782('0x21')](util['format'](_0xf782('0x2d'),_0x2eab83,_0x46ff3d));};AGIChannel['prototype'][_0xf782('0x2e')]=function(_0x593bdf){return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x2f'),_0x593bdf));};AGIChannel[_0xf782('0x23')]['setExtension']=function(_0x524555){return this[_0xf782('0x21')](util[_0xf782('0x2c')]('SET\x20EXTENSION\x20%s',_0x524555));};AGIChannel[_0xf782('0x23')][_0xf782('0x30')]=function(_0x126e48){return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x31'),_0x126e48));};AGIChannel['prototype'][_0xf782('0x9')]=function(){return this[_0xf782('0x21')]('HANGUP');};AGIChannel[_0xf782('0x23')][_0xf782('0x32')]=function(_0x1a95a8,_0x2548e5){var _0x69a7b=_['isBoolean'](_0x2548e5)||_['isNumber'](_0x2548e5)?_0x2548e5[_0xf782('0x33')]():_0x2548e5;return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x34'),_0x1a95a8,_0x69a7b?_0x69a7b['toString']()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xf782('0x23')][_0xf782('0x35')]=function(_0x32fde4,_0x2a8fc9){return this['sendRequest'](util['format']('SAY\x20NUMBER\x20%s\x20%s',_0x32fde4,_0x2a8fc9));};AGIChannel[_0xf782('0x23')][_0xf782('0x36')]=function(_0x4adab9,_0x21a8e2){return this[_0xf782('0x21')](util[_0xf782('0x2c')]('SAY\x20DIGITS\x20%s\x20%s',_0x4adab9,_0x21a8e2));};AGIChannel[_0xf782('0x23')]['sayPhonetic']=function(_0x21a9d8,_0x57e4bb){return this[_0xf782('0x21')](util['format'](_0xf782('0x37'),_0x21a9d8,_0x57e4bb));};AGIChannel['prototype'][_0xf782('0x38')]=function(_0x121be2,_0x1eed33,_0x5a88d0){_0x1eed33=_0x1eed33||this[_0xf782('0x39')];_0x5a88d0=_0x5a88d0||0x1;this['setContext'](_0x121be2);this[_0xf782('0x3a')](_0x1eed33);this[_0xf782('0x30')](_0x5a88d0);return this[_0xf782('0x28')](util[_0xf782('0x2c')](_0xf782('0x3b'),_0x121be2,_0x1eed33,_0x5a88d0));};AGIChannel[_0xf782('0x23')][_0xf782('0x3c')]=function(_0x36a13f){return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x3d'),_0x36a13f));};AGIChannel[_0xf782('0x23')]['recordFile']=function(_0x45f2f0,_0x1fd93f,_0x97d21f,_0x116f5a,_0x2dac5b,_0x3c17af){_0x1fd93f=_0x1fd93f||_0xf782('0x3e');_0x97d21f=_0x97d21f||'';_0x116f5a=_0x116f5a===undefined?-0x1:_0x116f5a==='-1'?-0x1:_0x116f5a*0x3e8;_0x2dac5b=_0x2dac5b===undefined?'':'s='+_0x2dac5b;_0x3c17af=_0x3c17af?_0xf782('0x3f'):'';return this['sendRequest'](util[_0xf782('0x2c')](_0xf782('0x40'),_0x45f2f0,_0x1fd93f,_0x97d21f,_0x116f5a,_0x3c17af,_0x2dac5b));};AGIChannel[_0xf782('0x23')][_0xf782('0x41')]=function(_0x40d003,_0x2d4ae0){_0x2d4ae0=_0x2d4ae0||'';return this[_0xf782('0x21')](util[_0xf782('0x2c')](_0xf782('0x42'),_0x40d003,_0x2d4ae0));};AGIChannel['prototype'][_0xf782('0x43')]=function(_0x34b2b7){return this[_0xf782('0x2a')](_0xf782('0x44'),_0x34b2b7);};AGIChannel[_0xf782('0x23')]['wait']=function(_0x46fb2e){return this[_0xf782('0x2a')]('WAIT',_0x46fb2e);};AGIChannel[_0xf782('0x23')]['error']=function(_0x2a2105,_0xbb87f2){this[_0xf782('0x28')](util[_0xf782('0x2c')](_0xf782('0x45'),_0x2a2105['id'],_0x2a2105['label'],_0xbb87f2));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xf782('0x46')]=AGIChannel;