Built motion from commit e0fa946e.|2.6.5
[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 _0x1fa9=['extension','setPriority','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','events','./reply','./error','call','setEncoding','setTimeout','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','inherits','prototype','sendRequest','answer','ANSWER','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SAY\x20NUMBER\x20%s\x20%s','sayDigits','sayPhonetic'];(function(_0x393500,_0x1037af){var _0x120d3b=function(_0x17234e){while(--_0x17234e){_0x393500['push'](_0x393500['shift']());}};_0x120d3b(++_0x1037af);}(_0x1fa9,0x136));var _0x91fa=function(_0x368dc0,_0x5217e5){_0x368dc0=_0x368dc0-0x0;var _0x54cf7a=_0x1fa9[_0x368dc0];return _0x54cf7a;};'use strict';var util=require(_0x91fa('0x0'));var _=require('lodash');var EventEmitter=require(_0x91fa('0x1'))['EventEmitter'];var AGIReply=require(_0x91fa('0x2'));var AGIError=require(_0x91fa('0x3'));function AGIChannel(_0x3985b3){var _0x57f230=this,_0x191166=new AGIReply(),_0x33b35a=![],_0x4779be={};EventEmitter[_0x91fa('0x4')](_0x57f230);_0x3985b3[_0x91fa('0x5')]('utf8');_0x3985b3[_0x91fa('0x6')](0x8*0x3c*0x3c*0x3e8);_0x191166[_0x91fa('0x5')]('utf8');_0x191166['on']('headers',function(_0xb4a51f){for(var _0x7ad4dd in _0xb4a51f){_0x57f230[_0x7ad4dd]=_0xb4a51f[_0x7ad4dd];}_0x57f230[_0x91fa('0x7')](_0x91fa('0x8'));});_0x191166['on'](_0x91fa('0x9'),function(_0x886fc1){if(_0x886fc1[_0x91fa('0xa')]()=='hangup'){_0x57f230['emit'](_0x91fa('0xb'));return;}if(_0x886fc1[_0x91fa('0xc')](0x0,0xb)==_0x91fa('0xd')){_0x33b35a=!![];}if(_0x33b35a){_0x4779be['rx']+=_0x886fc1+'\x0a';if(_0x886fc1[_0x91fa('0xe')](_0x91fa('0xf'))!=-0x1){_0x33b35a=![];}}else{_0x4779be['rx']=_0x886fc1;}if(_0x33b35a){return;}if(typeof _0x4779be['cb']==_0x91fa('0x10')){var _0x1bdb51=_0x4779be['rx']['substring'](0x0,0x3),_0x578035=null,_0x5a904d=null;_0x1bdb51=parseInt(_0x1bdb51);if(isNaN(_0x1bdb51)){_0x4779be['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x91fa('0x11')});return;}if(_0x1bdb51!=0xc8){_0x4779be['cb'](null,{'code':_0x1bdb51,'result':-0x1,'extra':'KO'});return;}_0x578035=_0x4779be['rx']['substring'](0x4)[_0x91fa('0x12')](_0x91fa('0x13'),'');if(_0x578035[_0x91fa('0x14')]('\x20')!=-0x1){_0x578035=_0x578035[_0x91fa('0x15')](0x0,_0x578035['indexOf']('\x20'));}if(_[_0x91fa('0x16')](_0x578035,'-1')){_0x578035=parseInt(_0x578035);}_0x5a904d=_0x4779be['rx'][_0x91fa('0x17')]('\x20');if(_0x5a904d[_0x91fa('0x18')]==0x3){_0x5a904d=_0x5a904d[0x2][_0x91fa('0xc')](0x1,_0x5a904d[0x2][_0x91fa('0x18')]-0x1);}else if(_0x5a904d[_0x91fa('0x18')]>0x3){var _0x5172d8=/\((.+)\)/;var _0x23fa38=_0x4779be['rx'][_0x91fa('0x19')](_0x5172d8);if(_0x23fa38){_0x5a904d=_0x23fa38[0x1];}else{_0x5a904d=null;}}else{_0x5a904d=null;}_0x4779be['cb'](null,{'code':_0x1bdb51,'result':_0x578035,'extra':_0x5a904d});}});_0x3985b3['on'](_0x91fa('0x1a'),function(_0x3916cc){_0x57f230[_0x91fa('0x7')]('error',new AGIError(_0x91fa('0x1b'),_0x3916cc[_0x91fa('0x1c')]));});_0x3985b3['on'](_0x91fa('0x1d'),function(){_0x57f230[_0x91fa('0x7')](_0x91fa('0x1d'),new AGIError(_0x91fa('0x1e')));});_0x3985b3['on'](_0x91fa('0x1f'),function(){_0x57f230[_0x91fa('0x7')](_0x91fa('0x1f'),new AGIError(_0x91fa('0x20')));_0x3985b3[_0x91fa('0x21')]();});_0x3985b3['pipe'](_0x191166);this[_0x91fa('0x22')]=function(_0x289cc3,_0x4ac68d){var _0x289cc3=_0x289cc3||'',_0x4ac68d=typeof _0x4ac68d==_0x91fa('0x10')?_0x4ac68d:new Function();_0x4779be={'tx':_0x289cc3,'rx':'','cb':_0x4ac68d};_0x3985b3['write'](_0x289cc3+'\x0a');},this['close']=function(){_0x3985b3['destroy']();};}util[_0x91fa('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x91fa('0x24')][_0x91fa('0x25')]=function(_0x476070){return this[_0x91fa('0x22')]['sync'](this,_0x476070);};AGIChannel[_0x91fa('0x24')][_0x91fa('0x26')]=function(){return this[_0x91fa('0x25')](_0x91fa('0x27'));};AGIChannel['prototype']['getData']=function(_0x2aa3d7,_0x101873,_0x26a9b3){_0x2aa3d7=_0x2aa3d7===undefined?_0x91fa('0x28'):_0x2aa3d7;_0x101873=_0x101873===undefined?'5':_0x101873;_0x26a9b3=_0x26a9b3===undefined?'1':_0x26a9b3;return this[_0x91fa('0x25')](util['format'](_0x91fa('0x29'),_0x2aa3d7,_0x101873*0x3e8,_0x26a9b3));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x2a')]=function(_0x5601c4){_0x5601c4=_0x5601c4||'NO\x20MESSAGE';return this[_0x91fa('0x25')](util[_0x91fa('0x2b')](_0x91fa('0x2c'),_0x5601c4));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x2d')]=function(_0x17bba2,_0x27ed0e){if(_[_0x91fa('0x2e')](_0x27ed0e)){return this[_0x91fa('0x25')](util[_0x91fa('0x2b')](_0x91fa('0x2f'),_0x17bba2,_0x27ed0e['join'](',')));}return this['sendRequest'](util[_0x91fa('0x2b')](_0x91fa('0x2f'),_0x17bba2,_0x27ed0e));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x30')]=function(_0x2c6726){return this[_0x91fa('0x25')](util['format'](_0x91fa('0x31'),_0x2c6726));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x32')]=function(_0x6b9aed){return this[_0x91fa('0x25')](util[_0x91fa('0x2b')](_0x91fa('0x33'),_0x6b9aed));};AGIChannel[_0x91fa('0x24')]['setPriority']=function(_0x4bef35){return this[_0x91fa('0x25')](util[_0x91fa('0x2b')]('SET\x20PRIORITY\x20%s',_0x4bef35));};AGIChannel[_0x91fa('0x24')]['hangup']=function(){return this['sendRequest'](_0x91fa('0x34'));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x35')]=function(_0x58717d,_0x3ca2fb){var _0xd0816b=_[_0x91fa('0x36')](_0x3ca2fb)||_[_0x91fa('0x37')](_0x3ca2fb)?_0x3ca2fb[_0x91fa('0x38')]():_0x3ca2fb;return this[_0x91fa('0x25')](util[_0x91fa('0x2b')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x58717d,_0xd0816b?_0xd0816b[_0x91fa('0x38')]()[_0x91fa('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x12ad72,_0x136efe){return this['sendRequest'](util[_0x91fa('0x2b')](_0x91fa('0x39'),_0x12ad72,_0x136efe));};AGIChannel['prototype'][_0x91fa('0x3a')]=function(_0x5514dc,_0x5846ee){return this[_0x91fa('0x25')](util[_0x91fa('0x2b')]('SAY\x20DIGITS\x20%s\x20%s',_0x5514dc,_0x5846ee));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x3b')]=function(_0x5e4495,_0x17c268){return this['sendRequest'](util[_0x91fa('0x2b')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x5e4495,_0x17c268));};AGIChannel[_0x91fa('0x24')]['continueAt']=function(_0x8987ad,_0x988e5,_0x1391e8){_0x988e5=_0x988e5||this[_0x91fa('0x3c')];_0x1391e8=_0x1391e8||0x1;this['setContext'](_0x8987ad);this[_0x91fa('0x32')](_0x988e5);this[_0x91fa('0x3d')](_0x1391e8);return this[_0x91fa('0x2a')](util[_0x91fa('0x2b')](_0x91fa('0x3e'),_0x8987ad,_0x988e5,_0x1391e8));};AGIChannel[_0x91fa('0x24')]['getVariable']=function(_0x382fb5){return this['sendRequest'](util[_0x91fa('0x2b')](_0x91fa('0x3f'),_0x382fb5));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x40')]=function(_0x14a6f0,_0x3ec29e,_0x897db7,_0x414259,_0x5d01d2,_0x464549){_0x3ec29e=_0x3ec29e||'wav';_0x897db7=_0x897db7||'';_0x414259=_0x414259===undefined?-0x1:_0x414259==='-1'?-0x1:_0x414259*0x3e8;_0x5d01d2=_0x5d01d2===undefined?'':'s='+_0x5d01d2;_0x464549=_0x464549?_0x91fa('0x41'):'';return this[_0x91fa('0x25')](util[_0x91fa('0x2b')](_0x91fa('0x42'),_0x14a6f0,_0x3ec29e,_0x897db7,_0x414259,_0x464549,_0x5d01d2));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x43')]=function(_0xb17d21,_0x210657){_0x210657=_0x210657||'';return this[_0x91fa('0x25')](util[_0x91fa('0x2b')](_0x91fa('0x44'),_0xb17d21,_0x210657));};AGIChannel[_0x91fa('0x24')][_0x91fa('0x45')]=function(_0x3bcea9){return this[_0x91fa('0x2d')]('AGI',_0x3bcea9);};AGIChannel[_0x91fa('0x24')][_0x91fa('0x46')]=function(_0x441c0f){return this[_0x91fa('0x2d')](_0x91fa('0x47'),_0x441c0f);};AGIChannel[_0x91fa('0x24')][_0x91fa('0x1a')]=function(_0x364957,_0x50aa1b){this[_0x91fa('0x2a')](util[_0x91fa('0x2b')](_0x91fa('0x48'),_0x364957['id'],_0x364957[_0x91fa('0x49')],_0x50aa1b));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;