Built motion from commit e02f907f.|2.6.14
[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 _0xaecc=['close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','prototype','sendRequest','sync','answer','getData','beep','format','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setPriority','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','wav','BEEP','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','exec','WAIT','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','520-Invalid','search','520\x20End\x20of\x20proper','function','substring','no\x20code','replace','result=','indexOf','startsWith','split','length','match','error','code'];(function(_0x33af69,_0x405d65){var _0x270e02=function(_0xfb8751){while(--_0xfb8751){_0x33af69['push'](_0x33af69['shift']());}};_0x270e02(++_0x405d65);}(_0xaecc,0x172));var _0xcaec=function(_0x4fb193,_0x2fd5aa){_0x4fb193=_0x4fb193-0x0;var _0x383f8c=_0xaecc[_0x4fb193];return _0x383f8c;};'use strict';var util=require(_0xcaec('0x0'));var _=require('lodash');var EventEmitter=require(_0xcaec('0x1'))[_0xcaec('0x2')];var AGIReply=require(_0xcaec('0x3'));var AGIError=require(_0xcaec('0x4'));function AGIChannel(_0x3c47d7){var _0x1b7339=this,_0x1de6a3=new AGIReply(),_0x5ab26c=![],_0x366499={};EventEmitter[_0xcaec('0x5')](_0x1b7339);_0x3c47d7[_0xcaec('0x6')](_0xcaec('0x7'));_0x3c47d7[_0xcaec('0x8')](0x8*0x3c*0x3c*0x3e8);_0x1de6a3[_0xcaec('0x6')](_0xcaec('0x7'));_0x1de6a3['on'](_0xcaec('0x9'),function(_0x267441){for(var _0x505f4b in _0x267441){_0x1b7339[_0x505f4b]=_0x267441[_0x505f4b];}_0x1b7339[_0xcaec('0xa')](_0xcaec('0xb'));});_0x1de6a3['on'](_0xcaec('0xc'),function(_0x55c0cd){if(_0x55c0cd[_0xcaec('0xd')]()==_0xcaec('0xe')){_0x1b7339['emit'](_0xcaec('0xe'));return;}if(_0x55c0cd['substring'](0x0,0xb)==_0xcaec('0xf')){_0x5ab26c=!![];}if(_0x5ab26c){_0x366499['rx']+=_0x55c0cd+'\x0a';if(_0x55c0cd[_0xcaec('0x10')](_0xcaec('0x11'))!=-0x1){_0x5ab26c=![];}}else{_0x366499['rx']=_0x55c0cd;}if(_0x5ab26c){return;}if(typeof _0x366499['cb']==_0xcaec('0x12')){var _0xd68ff2=_0x366499['rx'][_0xcaec('0x13')](0x0,0x3),_0x4e72f7=null,_0x1c3715=null;_0xd68ff2=parseInt(_0xd68ff2);if(isNaN(_0xd68ff2)){_0x366499['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xcaec('0x14')});return;}if(_0xd68ff2!=0xc8){_0x366499['cb'](null,{'code':_0xd68ff2,'result':-0x1,'extra':'KO'});return;}_0x4e72f7=_0x366499['rx']['substring'](0x4)[_0xcaec('0x15')](_0xcaec('0x16'),'');if(_0x4e72f7[_0xcaec('0x17')]('\x20')!=-0x1){_0x4e72f7=_0x4e72f7['substr'](0x0,_0x4e72f7[_0xcaec('0x17')]('\x20'));}if(_[_0xcaec('0x18')](_0x4e72f7,'-1')){_0x4e72f7=parseInt(_0x4e72f7);}_0x1c3715=_0x366499['rx'][_0xcaec('0x19')]('\x20');if(_0x1c3715['length']==0x3){_0x1c3715=_0x1c3715[0x2][_0xcaec('0x13')](0x1,_0x1c3715[0x2][_0xcaec('0x1a')]-0x1);}else if(_0x1c3715[_0xcaec('0x1a')]>0x3){var _0x438e6f=/\((.+)\)/;var _0x47ce1e=_0x366499['rx'][_0xcaec('0x1b')](_0x438e6f);if(_0x47ce1e){_0x1c3715=_0x47ce1e[0x1];}else{_0x1c3715=null;}}else{_0x1c3715=null;}_0x366499['cb'](null,{'code':_0xd68ff2,'result':_0x4e72f7,'extra':_0x1c3715});}});_0x3c47d7['on'](_0xcaec('0x1c'),function(_0x19b83b){_0x1b7339[_0xcaec('0xa')](_0xcaec('0x1c'),new AGIError('E_AGI_SOCKET_ERROR',_0x19b83b[_0xcaec('0x1d')]));});_0x3c47d7['on'](_0xcaec('0x1e'),function(){_0x1b7339['emit'](_0xcaec('0x1e'),new AGIError(_0xcaec('0x1f')));});_0x3c47d7['on'](_0xcaec('0x20'),function(){_0x1b7339[_0xcaec('0xa')](_0xcaec('0x20'),new AGIError(_0xcaec('0x21')));_0x3c47d7[_0xcaec('0x22')]();});_0x3c47d7[_0xcaec('0x23')](_0x1de6a3);this[_0xcaec('0x24')]=function(_0x23dd41,_0x319196){var _0x23dd41=_0x23dd41||'',_0x319196=typeof _0x319196==_0xcaec('0x12')?_0x319196:new Function();_0x366499={'tx':_0x23dd41,'rx':'','cb':_0x319196};_0x3c47d7[_0xcaec('0x25')](_0x23dd41+'\x0a');},this[_0xcaec('0x1e')]=function(){_0x3c47d7[_0xcaec('0x22')]();};}util[_0xcaec('0x26')](AGIChannel,EventEmitter);AGIChannel[_0xcaec('0x27')][_0xcaec('0x28')]=function(_0x2eef4a){return this[_0xcaec('0x24')][_0xcaec('0x29')](this,_0x2eef4a);};AGIChannel[_0xcaec('0x27')][_0xcaec('0x2a')]=function(){return this['sendRequest']('ANSWER');};AGIChannel[_0xcaec('0x27')][_0xcaec('0x2b')]=function(_0x24b7af,_0x5c1382,_0x3ecb2b){_0x24b7af=_0x24b7af===undefined?_0xcaec('0x2c'):_0x24b7af;_0x5c1382=_0x5c1382===undefined?'5':_0x5c1382;_0x3ecb2b=_0x3ecb2b===undefined?'1':_0x3ecb2b;return this['sendRequest'](util[_0xcaec('0x2d')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x24b7af,_0x5c1382*0x3e8,_0x3ecb2b));};AGIChannel['prototype']['noop']=function(_0x203099){_0x203099=_0x203099||_0xcaec('0x2e');return this[_0xcaec('0x28')](util[_0xcaec('0x2d')](_0xcaec('0x2f'),_0x203099));};AGIChannel[_0xcaec('0x27')]['exec']=function(_0xf62d82,_0x23a86f){if(_['isArray'](_0x23a86f)){return this['sendRequest'](util[_0xcaec('0x2d')](_0xcaec('0x30'),_0xf62d82,_0x23a86f[_0xcaec('0x31')](',')));}return this[_0xcaec('0x28')](util[_0xcaec('0x2d')]('EXEC\x20%s\x20%s',_0xf62d82,_0x23a86f));};AGIChannel['prototype'][_0xcaec('0x32')]=function(_0x411bad){return this['sendRequest'](util[_0xcaec('0x2d')]('SET\x20CONTEXT\x20%s',_0x411bad));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x33')]=function(_0x576303){return this['sendRequest'](util[_0xcaec('0x2d')](_0xcaec('0x34'),_0x576303));};AGIChannel['prototype']['setPriority']=function(_0x303d21){return this[_0xcaec('0x28')](util[_0xcaec('0x2d')](_0xcaec('0x35'),_0x303d21));};AGIChannel['prototype']['hangup']=function(){return this[_0xcaec('0x28')]('HANGUP');};AGIChannel[_0xcaec('0x27')][_0xcaec('0x36')]=function(_0x26eaa1,_0x40de91){var _0x4ce362=_[_0xcaec('0x37')](_0x40de91)||_[_0xcaec('0x38')](_0x40de91)?_0x40de91['toString']():_0x40de91;return this[_0xcaec('0x28')](util[_0xcaec('0x2d')](_0xcaec('0x39'),_0x26eaa1,_0x4ce362?_0x4ce362['toString']()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x3a')]=function(_0x4b0d9b,_0x1ab55b){return this[_0xcaec('0x28')](util[_0xcaec('0x2d')]('SAY\x20NUMBER\x20%s\x20%s',_0x4b0d9b,_0x1ab55b));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x3b')]=function(_0x3067f2,_0x4679d9){return this[_0xcaec('0x28')](util[_0xcaec('0x2d')](_0xcaec('0x3c'),_0x3067f2,_0x4679d9));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x3d')]=function(_0x3038c2,_0x8b556e){return this['sendRequest'](util[_0xcaec('0x2d')](_0xcaec('0x3e'),_0x3038c2,_0x8b556e));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x3f')]=function(_0x66f442,_0x143b0b,_0x2c2ac2){_0x143b0b=_0x143b0b||this['extension'];_0x2c2ac2=_0x2c2ac2||0x1;this[_0xcaec('0x32')](_0x66f442);this[_0xcaec('0x33')](_0x143b0b);this[_0xcaec('0x40')](_0x2c2ac2);return this['noop'](util[_0xcaec('0x2d')](_0xcaec('0x41'),_0x66f442,_0x143b0b,_0x2c2ac2));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x42')]=function(_0x38f52c){return this[_0xcaec('0x28')](util[_0xcaec('0x2d')](_0xcaec('0x43'),_0x38f52c));};AGIChannel[_0xcaec('0x27')]['recordFile']=function(_0x384088,_0x4121ec,_0x1a3bef,_0x318037,_0x785450,_0x34322e){_0x4121ec=_0x4121ec||_0xcaec('0x44');_0x1a3bef=_0x1a3bef||'';_0x318037=_0x318037===undefined?-0x1:_0x318037==='-1'?-0x1:_0x318037*0x3e8;_0x785450=_0x785450===undefined?'':'s='+_0x785450;_0x34322e=_0x34322e?_0xcaec('0x45'):'';return this['sendRequest'](util[_0xcaec('0x2d')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x384088,_0x4121ec,_0x1a3bef,_0x318037,_0x34322e,_0x785450));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x46')]=function(_0x121309,_0x3411f6){_0x3411f6=_0x3411f6||'';return this['sendRequest'](util[_0xcaec('0x2d')](_0xcaec('0x47'),_0x121309,_0x3411f6));};AGIChannel[_0xcaec('0x27')][_0xcaec('0x48')]=function(_0x1a86cc){return this['exec'](_0xcaec('0x49'),_0x1a86cc);};AGIChannel[_0xcaec('0x27')]['wait']=function(_0x2c87ca){return this[_0xcaec('0x4a')](_0xcaec('0x4b'),_0x2c87ca);};AGIChannel['prototype'][_0xcaec('0x1c')]=function(_0x17fa2d,_0x219ab7){this[_0xcaec('0x4c')](util[_0xcaec('0x2d')](_0xcaec('0x4d'),_0x17fa2d['id'],_0x17fa2d[_0xcaec('0x4e')],_0x219ab7));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xcaec('0x4f')]=AGIChannel;