Built motion from commit 85328c08.|2.5.50
[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 _0x27cb=['destroy','command','write','prototype','sendRequest','sync','answer','ANSWER','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','format','VERBOSE\x20\x22%s\x22','isArray','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','isBoolean','isNumber','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','continueAt','extension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','exec','AGI','exports','util','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','function','no\x20code','replace','result=','indexOf','substr','startsWith','split','length','error','E_AGI_SOCKET_ERROR','code','close','timeout'];(function(_0x126f42,_0x57f1ad){var _0x219119=function(_0xc6b727){while(--_0xc6b727){_0x126f42['push'](_0x126f42['shift']());}};_0x219119(++_0x57f1ad);}(_0x27cb,0x73));var _0xb27c=function(_0x572ea7,_0x56839f){_0x572ea7=_0x572ea7-0x0;var _0x568763=_0x27cb[_0x572ea7];return _0x568763;};'use strict';var util=require(_0xb27c('0x0'));var _=require('lodash');var EventEmitter=require(_0xb27c('0x1'))[_0xb27c('0x2')];var AGIReply=require(_0xb27c('0x3'));var AGIError=require(_0xb27c('0x4'));function AGIChannel(_0x4bb03d){var _0x17c985=this,_0x5da5e9=new AGIReply(),_0x56412e=![],_0x4c2a87={};EventEmitter[_0xb27c('0x5')](_0x17c985);_0x4bb03d[_0xb27c('0x6')](_0xb27c('0x7'));_0x4bb03d[_0xb27c('0x8')](0x8*0x3c*0x3c*0x3e8);_0x5da5e9['setEncoding'](_0xb27c('0x7'));_0x5da5e9['on'](_0xb27c('0x9'),function(_0x1f4512){for(var _0x3a20fe in _0x1f4512){_0x17c985[_0x3a20fe]=_0x1f4512[_0x3a20fe];}_0x17c985[_0xb27c('0xa')](_0xb27c('0xb'));});_0x5da5e9['on'](_0xb27c('0xc'),function(_0x1b07be){if(_0x1b07be[_0xb27c('0xd')]()=='hangup'){_0x17c985[_0xb27c('0xa')](_0xb27c('0xe'));return;}if(_0x1b07be[_0xb27c('0xf')](0x0,0xb)==_0xb27c('0x10')){_0x56412e=!![];}if(_0x56412e){_0x4c2a87['rx']+=_0x1b07be+'\x0a';if(_0x1b07be['search']('520\x20End\x20of\x20proper')!=-0x1){_0x56412e=![];}}else{_0x4c2a87['rx']=_0x1b07be;}if(_0x56412e){return;}if(typeof _0x4c2a87['cb']==_0xb27c('0x11')){var _0x49f581=_0x4c2a87['rx'][_0xb27c('0xf')](0x0,0x3),_0x152b28=null,_0x2468e9=null;_0x49f581=parseInt(_0x49f581);if(isNaN(_0x49f581)){_0x4c2a87['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xb27c('0x12')});return;}if(_0x49f581!=0xc8){_0x4c2a87['cb'](null,{'code':_0x49f581,'result':-0x1,'extra':'KO'});return;}_0x152b28=_0x4c2a87['rx'][_0xb27c('0xf')](0x4)[_0xb27c('0x13')](_0xb27c('0x14'),'');if(_0x152b28[_0xb27c('0x15')]('\x20')!=-0x1){_0x152b28=_0x152b28[_0xb27c('0x16')](0x0,_0x152b28[_0xb27c('0x15')]('\x20'));}if(_[_0xb27c('0x17')](_0x152b28,'-1')){_0x152b28=parseInt(_0x152b28);}_0x2468e9=_0x4c2a87['rx'][_0xb27c('0x18')]('\x20');if(_0x2468e9['length']==0x3){_0x2468e9=_0x2468e9[0x2]['substring'](0x1,_0x2468e9[0x2][_0xb27c('0x19')]-0x1);}else if(_0x2468e9['length']>0x3){var _0x13d295=/\((.+)\)/;var _0x331e7b=_0x4c2a87['rx']['match'](_0x13d295);if(_0x331e7b){_0x2468e9=_0x331e7b[0x1];}else{_0x2468e9=null;}}else{_0x2468e9=null;}_0x4c2a87['cb'](null,{'code':_0x49f581,'result':_0x152b28,'extra':_0x2468e9});}});_0x4bb03d['on'](_0xb27c('0x1a'),function(_0x2e903f){_0x17c985[_0xb27c('0xa')]('error',new AGIError(_0xb27c('0x1b'),_0x2e903f[_0xb27c('0x1c')]));});_0x4bb03d['on'](_0xb27c('0x1d'),function(){_0x17c985[_0xb27c('0xa')](_0xb27c('0x1d'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x4bb03d['on'](_0xb27c('0x1e'),function(){_0x17c985[_0xb27c('0xa')](_0xb27c('0x1e'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x4bb03d[_0xb27c('0x1f')]();});_0x4bb03d['pipe'](_0x5da5e9);this[_0xb27c('0x20')]=function(_0x339e73,_0x39b0ab){var _0x339e73=_0x339e73||'',_0x39b0ab=typeof _0x39b0ab==_0xb27c('0x11')?_0x39b0ab:new Function();_0x4c2a87={'tx':_0x339e73,'rx':'','cb':_0x39b0ab};_0x4bb03d[_0xb27c('0x21')](_0x339e73+'\x0a');},this['close']=function(){_0x4bb03d['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0xb27c('0x22')][_0xb27c('0x23')]=function(_0x49b7ee){return this['command'][_0xb27c('0x24')](this,_0x49b7ee);};AGIChannel[_0xb27c('0x22')][_0xb27c('0x25')]=function(){return this[_0xb27c('0x23')](_0xb27c('0x26'));};AGIChannel['prototype']['getData']=function(_0x3eb347,_0x2fa6aa,_0x41d93d){_0x3eb347=_0x3eb347===undefined?'beep':_0x3eb347;_0x2fa6aa=_0x2fa6aa===undefined?'5':_0x2fa6aa;_0x41d93d=_0x41d93d===undefined?'1':_0x41d93d;return this['sendRequest'](util['format'](_0xb27c('0x27'),_0x3eb347,_0x2fa6aa*0x3e8,_0x41d93d));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x28')]=function(_0xb83875){_0xb83875=_0xb83875||'NO\x20MESSAGE';return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x2a'),_0xb83875));};AGIChannel[_0xb27c('0x22')]['exec']=function(_0x156d93,_0x3538f1){if(_[_0xb27c('0x2b')](_0x3538f1)){return this[_0xb27c('0x23')](util[_0xb27c('0x29')]('EXEC\x20%s\x20%s',_0x156d93,_0x3538f1[_0xb27c('0x2c')](',')));}return this[_0xb27c('0x23')](util[_0xb27c('0x29')]('EXEC\x20%s\x20%s',_0x156d93,_0x3538f1));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x2d')]=function(_0x429efc){return this['sendRequest'](util[_0xb27c('0x29')](_0xb27c('0x2e'),_0x429efc));};AGIChannel['prototype'][_0xb27c('0x2f')]=function(_0x3a2ccc){return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x30'),_0x3a2ccc));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x31')]=function(_0x145d66){return this[_0xb27c('0x23')](util['format'](_0xb27c('0x32'),_0x145d66));};AGIChannel[_0xb27c('0x22')][_0xb27c('0xe')]=function(){return this['sendRequest']('HANGUP');};AGIChannel[_0xb27c('0x22')]['setVariable']=function(_0x1f7502,_0x1b0016){var _0x52f523=_[_0xb27c('0x33')](_0x1b0016)||_[_0xb27c('0x34')](_0x1b0016)?_0x1b0016[_0xb27c('0x35')]():_0x1b0016;return this[_0xb27c('0x23')](util['format']('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x1f7502,_0x52f523?_0x52f523['toString']()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x36')]=function(_0xaa40e8,_0x351242){return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x37'),_0xaa40e8,_0x351242));};AGIChannel['prototype'][_0xb27c('0x38')]=function(_0xdbe0c5,_0x6f3a7c){return this[_0xb27c('0x23')](util['format'](_0xb27c('0x39'),_0xdbe0c5,_0x6f3a7c));};AGIChannel[_0xb27c('0x22')]['sayPhonetic']=function(_0xebe818,_0x46af9c){return this[_0xb27c('0x23')](util[_0xb27c('0x29')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0xebe818,_0x46af9c));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x3a')]=function(_0x5f586f,_0xb03e7,_0x4fafe2){_0xb03e7=_0xb03e7||this[_0xb27c('0x3b')];_0x4fafe2=_0x4fafe2||0x1;this[_0xb27c('0x2d')](_0x5f586f);this['setExtension'](_0xb03e7);this['setPriority'](_0x4fafe2);return this[_0xb27c('0x28')](util[_0xb27c('0x29')](_0xb27c('0x3c'),_0x5f586f,_0xb03e7,_0x4fafe2));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x3d')]=function(_0x350bd2){return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x3e'),_0x350bd2));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x3f')]=function(_0x2ba56f,_0x51143a,_0x3f993a,_0x709e1,_0x3bb31e,_0x207222){_0x51143a=_0x51143a||_0xb27c('0x40');_0x3f993a=_0x3f993a||'';_0x709e1=_0x709e1===undefined?-0x1:_0x709e1==='-1'?-0x1:_0x709e1*0x3e8;_0x3bb31e=_0x3bb31e===undefined?'':'s='+_0x3bb31e;_0x207222=_0x207222?_0xb27c('0x41'):'';return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x42'),_0x2ba56f,_0x51143a,_0x3f993a,_0x709e1,_0x207222,_0x3bb31e));};AGIChannel['prototype'][_0xb27c('0x43')]=function(_0x512aa6,_0x233987){_0x233987=_0x233987||'';return this[_0xb27c('0x23')](util[_0xb27c('0x29')](_0xb27c('0x44'),_0x512aa6,_0x233987));};AGIChannel[_0xb27c('0x22')][_0xb27c('0x45')]=function(_0x51a58f){return this[_0xb27c('0x46')](_0xb27c('0x47'),_0x51a58f);};AGIChannel[_0xb27c('0x22')]['wait']=function(_0x2080a2){return this[_0xb27c('0x46')]('WAIT',_0x2080a2);};AGIChannel[_0xb27c('0x22')][_0xb27c('0x1a')]=function(_0x31413b,_0x11bfd9){this['noop'](util['format']('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x31413b['id'],_0x31413b['label'],_0x11bfd9));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xb27c('0x48')]=AGIChannel;