Built motion from commit 616d3211.|2.6.4
[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 _0xeb1c=['ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','util','events','EventEmitter','./error','setEncoding','utf8','setTimeout','emit','line','toLowerCase','hangup','substring','520-Invalid','function','no\x20code','replace','result=','substr','indexOf','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','inherits','prototype','answer','sendRequest','getData','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','format','exec','isArray','join','EXEC\x20%s\x20%s','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','sayDigits','SAY\x20DIGITS\x20%s\x20%s','continueAt','extension','setContext','setExtension','GOTO\x20%s\x20%s\x20%s','getVariable','recordFile','wav','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','wait','WAIT'];(function(_0x1f42a3,_0x13d815){var _0x5477ad=function(_0x3e2475){while(--_0x3e2475){_0x1f42a3['push'](_0x1f42a3['shift']());}};_0x5477ad(++_0x13d815);}(_0xeb1c,0x119));var _0xceb1=function(_0x17a934,_0x36b306){_0x17a934=_0x17a934-0x0;var _0x2a91c7=_0xeb1c[_0x17a934];return _0x2a91c7;};'use strict';var util=require(_0xceb1('0x0'));var _=require('lodash');var EventEmitter=require(_0xceb1('0x1'))[_0xceb1('0x2')];var AGIReply=require('./reply');var AGIError=require(_0xceb1('0x3'));function AGIChannel(_0x1225c5){var _0x3dffc1=this,_0x42b1e2=new AGIReply(),_0x53aef4=![],_0x59191d={};EventEmitter['call'](_0x3dffc1);_0x1225c5[_0xceb1('0x4')](_0xceb1('0x5'));_0x1225c5[_0xceb1('0x6')](0x8*0x3c*0x3c*0x3e8);_0x42b1e2[_0xceb1('0x4')](_0xceb1('0x5'));_0x42b1e2['on']('headers',function(_0x22310b){for(var _0x1c204f in _0x22310b){_0x3dffc1[_0x1c204f]=_0x22310b[_0x1c204f];}_0x3dffc1[_0xceb1('0x7')]('ready');});_0x42b1e2['on'](_0xceb1('0x8'),function(_0x39301a){if(_0x39301a[_0xceb1('0x9')]()=='hangup'){_0x3dffc1[_0xceb1('0x7')](_0xceb1('0xa'));return;}if(_0x39301a[_0xceb1('0xb')](0x0,0xb)==_0xceb1('0xc')){_0x53aef4=!![];}if(_0x53aef4){_0x59191d['rx']+=_0x39301a+'\x0a';if(_0x39301a['search']('520\x20End\x20of\x20proper')!=-0x1){_0x53aef4=![];}}else{_0x59191d['rx']=_0x39301a;}if(_0x53aef4){return;}if(typeof _0x59191d['cb']==_0xceb1('0xd')){var _0x42e0d9=_0x59191d['rx'][_0xceb1('0xb')](0x0,0x3),_0x2ad731=null,_0x419d2b=null;_0x42e0d9=parseInt(_0x42e0d9);if(isNaN(_0x42e0d9)){_0x59191d['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xceb1('0xe')});return;}if(_0x42e0d9!=0xc8){_0x59191d['cb'](null,{'code':_0x42e0d9,'result':-0x1,'extra':'KO'});return;}_0x2ad731=_0x59191d['rx'][_0xceb1('0xb')](0x4)[_0xceb1('0xf')](_0xceb1('0x10'),'');if(_0x2ad731['indexOf']('\x20')!=-0x1){_0x2ad731=_0x2ad731[_0xceb1('0x11')](0x0,_0x2ad731[_0xceb1('0x12')]('\x20'));}if(_[_0xceb1('0x13')](_0x2ad731,'-1')){_0x2ad731=parseInt(_0x2ad731);}_0x419d2b=_0x59191d['rx'][_0xceb1('0x14')]('\x20');if(_0x419d2b[_0xceb1('0x15')]==0x3){_0x419d2b=_0x419d2b[0x2]['substring'](0x1,_0x419d2b[0x2][_0xceb1('0x15')]-0x1);}else if(_0x419d2b[_0xceb1('0x15')]>0x3){var _0x10df11=/\((.+)\)/;var _0x3c7e3c=_0x59191d['rx'][_0xceb1('0x16')](_0x10df11);if(_0x3c7e3c){_0x419d2b=_0x3c7e3c[0x1];}else{_0x419d2b=null;}}else{_0x419d2b=null;}_0x59191d['cb'](null,{'code':_0x42e0d9,'result':_0x2ad731,'extra':_0x419d2b});}});_0x1225c5['on'](_0xceb1('0x17'),function(_0x18ad85){_0x3dffc1[_0xceb1('0x7')](_0xceb1('0x17'),new AGIError(_0xceb1('0x18'),_0x18ad85[_0xceb1('0x19')]));});_0x1225c5['on']('close',function(){_0x3dffc1[_0xceb1('0x7')]('close',new AGIError(_0xceb1('0x1a')));});_0x1225c5['on'](_0xceb1('0x1b'),function(){_0x3dffc1[_0xceb1('0x7')](_0xceb1('0x1b'),new AGIError(_0xceb1('0x1c')));_0x1225c5[_0xceb1('0x1d')]();});_0x1225c5['pipe'](_0x42b1e2);this[_0xceb1('0x1e')]=function(_0x3124e5,_0x5ae10f){var _0x3124e5=_0x3124e5||'',_0x5ae10f=typeof _0x5ae10f==_0xceb1('0xd')?_0x5ae10f:new Function();_0x59191d={'tx':_0x3124e5,'rx':'','cb':_0x5ae10f};_0x1225c5['write'](_0x3124e5+'\x0a');},this['close']=function(){_0x1225c5[_0xceb1('0x1d')]();};}util[_0xceb1('0x1f')](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0x45d197){return this[_0xceb1('0x1e')]['sync'](this,_0x45d197);};AGIChannel[_0xceb1('0x20')][_0xceb1('0x21')]=function(){return this[_0xceb1('0x22')]('ANSWER');};AGIChannel[_0xceb1('0x20')][_0xceb1('0x23')]=function(_0x1dada9,_0x319754,_0x39ff0f){_0x1dada9=_0x1dada9===undefined?_0xceb1('0x24'):_0x1dada9;_0x319754=_0x319754===undefined?'5':_0x319754;_0x39ff0f=_0x39ff0f===undefined?'1':_0x39ff0f;return this[_0xceb1('0x22')](util['format'](_0xceb1('0x25'),_0x1dada9,_0x319754*0x3e8,_0x39ff0f));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x26')]=function(_0xf5b8fe){_0xf5b8fe=_0xf5b8fe||_0xceb1('0x27');return this[_0xceb1('0x22')](util[_0xceb1('0x28')]('VERBOSE\x20\x22%s\x22',_0xf5b8fe));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x29')]=function(_0x31d548,_0x30894a){if(_[_0xceb1('0x2a')](_0x30894a)){return this[_0xceb1('0x22')](util[_0xceb1('0x28')]('EXEC\x20%s\x20%s',_0x31d548,_0x30894a[_0xceb1('0x2b')](',')));}return this[_0xceb1('0x22')](util[_0xceb1('0x28')](_0xceb1('0x2c'),_0x31d548,_0x30894a));};AGIChannel[_0xceb1('0x20')]['setContext']=function(_0x2169ce){return this[_0xceb1('0x22')](util[_0xceb1('0x28')]('SET\x20CONTEXT\x20%s',_0x2169ce));};AGIChannel['prototype']['setExtension']=function(_0x52d0b1){return this[_0xceb1('0x22')](util[_0xceb1('0x28')](_0xceb1('0x2d'),_0x52d0b1));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x2e')]=function(_0x4a2955){return this[_0xceb1('0x22')](util[_0xceb1('0x28')](_0xceb1('0x2f'),_0x4a2955));};AGIChannel[_0xceb1('0x20')]['hangup']=function(){return this[_0xceb1('0x22')](_0xceb1('0x30'));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x31')]=function(_0x12411a,_0x4dc55c){var _0xc014c1=_[_0xceb1('0x32')](_0x4dc55c)||_[_0xceb1('0x33')](_0x4dc55c)?_0x4dc55c[_0xceb1('0x34')]():_0x4dc55c;return this[_0xceb1('0x22')](util[_0xceb1('0x28')](_0xceb1('0x35'),_0x12411a,_0xc014c1?_0xc014c1[_0xceb1('0x34')]()[_0xceb1('0xf')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x36')]=function(_0xf25890,_0x343ca6){return this['sendRequest'](util[_0xceb1('0x28')]('SAY\x20NUMBER\x20%s\x20%s',_0xf25890,_0x343ca6));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x37')]=function(_0x30280c,_0x37cf17){return this['sendRequest'](util[_0xceb1('0x28')](_0xceb1('0x38'),_0x30280c,_0x37cf17));};AGIChannel['prototype']['sayPhonetic']=function(_0x1ea512,_0x5243a7){return this[_0xceb1('0x22')](util[_0xceb1('0x28')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x1ea512,_0x5243a7));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x39')]=function(_0x1aa8ba,_0x3b5128,_0x5b68d1){_0x3b5128=_0x3b5128||this[_0xceb1('0x3a')];_0x5b68d1=_0x5b68d1||0x1;this[_0xceb1('0x3b')](_0x1aa8ba);this[_0xceb1('0x3c')](_0x3b5128);this[_0xceb1('0x2e')](_0x5b68d1);return this['noop'](util[_0xceb1('0x28')](_0xceb1('0x3d'),_0x1aa8ba,_0x3b5128,_0x5b68d1));};AGIChannel[_0xceb1('0x20')][_0xceb1('0x3e')]=function(_0x5d382a){return this[_0xceb1('0x22')](util[_0xceb1('0x28')]('GET\x20VARIABLE\x20\x22%s\x22',_0x5d382a));};AGIChannel['prototype'][_0xceb1('0x3f')]=function(_0x8e2c3e,_0x27189c,_0x2c1b59,_0x4b84a6,_0x5fd4cb,_0x3e9492){_0x27189c=_0x27189c||_0xceb1('0x40');_0x2c1b59=_0x2c1b59||'';_0x4b84a6=_0x4b84a6===undefined?-0x1:_0x4b84a6==='-1'?-0x1:_0x4b84a6*0x3e8;_0x5fd4cb=_0x5fd4cb===undefined?'':'s='+_0x5fd4cb;_0x3e9492=_0x3e9492?'BEEP':'';return this[_0xceb1('0x22')](util['format'](_0xceb1('0x41'),_0x8e2c3e,_0x27189c,_0x2c1b59,_0x4b84a6,_0x3e9492,_0x5fd4cb));};AGIChannel[_0xceb1('0x20')]['streamFile']=function(_0x2a0344,_0x483870){_0x483870=_0x483870||'';return this['sendRequest'](util[_0xceb1('0x28')](_0xceb1('0x42'),_0x2a0344,_0x483870));};AGIChannel[_0xceb1('0x20')]['agi']=function(_0x2eb9fe){return this[_0xceb1('0x29')]('AGI',_0x2eb9fe);};AGIChannel[_0xceb1('0x20')][_0xceb1('0x43')]=function(_0x146a70){return this[_0xceb1('0x29')](_0xceb1('0x44'),_0x146a70);};AGIChannel[_0xceb1('0x20')]['error']=function(_0x15ac95,_0x1b127c){this[_0xceb1('0x26')](util[_0xceb1('0x28')](_0xceb1('0x45'),_0x15ac95['id'],_0x15ac95['label'],_0x1b127c));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;