Built motion from commit 9d1906d1.|2.5.40
[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 _0x71a1=['pipe','write','inherits','prototype','command','sync','answer','ANSWER','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','sendRequest','format','exec','isArray','EXEC\x20%s\x20%s','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','setVariable','isBoolean','toString','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setContext','GOTO\x20%s\x20%s\x20%s','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','WAIT','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','util','lodash','events','EventEmitter','./reply','call','setEncoding','setTimeout','utf8','headers','emit','ready','toLowerCase','hangup','substring','520-Invalid','search','function','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'];(function(_0x1af5b2,_0x1b82fe){var _0xf1aa2d=function(_0x2ceae2){while(--_0x2ceae2){_0x1af5b2['push'](_0x1af5b2['shift']());}};_0xf1aa2d(++_0x1b82fe);}(_0x71a1,0x1eb));var _0x171a=function(_0x2b754b,_0xf6fc6f){_0x2b754b=_0x2b754b-0x0;var _0x58324d=_0x71a1[_0x2b754b];return _0x58324d;};'use strict';var util=require(_0x171a('0x0'));var _=require(_0x171a('0x1'));var EventEmitter=require(_0x171a('0x2'))[_0x171a('0x3')];var AGIReply=require(_0x171a('0x4'));var AGIError=require('./error');function AGIChannel(_0x4ecb9b){var _0x219d24=this,_0x199663=new AGIReply(),_0x48c50c=![],_0x52ad84={};EventEmitter[_0x171a('0x5')](_0x219d24);_0x4ecb9b[_0x171a('0x6')]('utf8');_0x4ecb9b[_0x171a('0x7')](0x8*0x3c*0x3c*0x3e8);_0x199663[_0x171a('0x6')](_0x171a('0x8'));_0x199663['on'](_0x171a('0x9'),function(_0x32d84e){for(var _0x272ab5 in _0x32d84e){_0x219d24[_0x272ab5]=_0x32d84e[_0x272ab5];}_0x219d24[_0x171a('0xa')](_0x171a('0xb'));});_0x199663['on']('line',function(_0x5b4c5b){if(_0x5b4c5b[_0x171a('0xc')]()==_0x171a('0xd')){_0x219d24[_0x171a('0xa')](_0x171a('0xd'));return;}if(_0x5b4c5b[_0x171a('0xe')](0x0,0xb)==_0x171a('0xf')){_0x48c50c=!![];}if(_0x48c50c){_0x52ad84['rx']+=_0x5b4c5b+'\x0a';if(_0x5b4c5b[_0x171a('0x10')]('520\x20End\x20of\x20proper')!=-0x1){_0x48c50c=![];}}else{_0x52ad84['rx']=_0x5b4c5b;}if(_0x48c50c){return;}if(typeof _0x52ad84['cb']==_0x171a('0x11')){var _0x5b0154=_0x52ad84['rx']['substring'](0x0,0x3),_0x26f64b=null,_0x8a90d3=null;_0x5b0154=parseInt(_0x5b0154);if(isNaN(_0x5b0154)){_0x52ad84['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x5b0154!=0xc8){_0x52ad84['cb'](null,{'code':_0x5b0154,'result':-0x1,'extra':'KO'});return;}_0x26f64b=_0x52ad84['rx'][_0x171a('0xe')](0x4)[_0x171a('0x12')](_0x171a('0x13'),'');if(_0x26f64b[_0x171a('0x14')]('\x20')!=-0x1){_0x26f64b=_0x26f64b[_0x171a('0x15')](0x0,_0x26f64b[_0x171a('0x14')]('\x20'));}if(_[_0x171a('0x16')](_0x26f64b,'-1')){_0x26f64b=parseInt(_0x26f64b);}_0x8a90d3=_0x52ad84['rx'][_0x171a('0x17')]('\x20');if(_0x8a90d3[_0x171a('0x18')]==0x3){_0x8a90d3=_0x8a90d3[0x2][_0x171a('0xe')](0x1,_0x8a90d3[0x2][_0x171a('0x18')]-0x1);}else if(_0x8a90d3[_0x171a('0x18')]>0x3){var _0x42320d=/\((.+)\)/;var _0x449a08=_0x52ad84['rx'][_0x171a('0x19')](_0x42320d);if(_0x449a08){_0x8a90d3=_0x449a08[0x1];}else{_0x8a90d3=null;}}else{_0x8a90d3=null;}_0x52ad84['cb'](null,{'code':_0x5b0154,'result':_0x26f64b,'extra':_0x8a90d3});}});_0x4ecb9b['on'](_0x171a('0x1a'),function(_0x34ec66){_0x219d24[_0x171a('0xa')](_0x171a('0x1a'),new AGIError(_0x171a('0x1b'),_0x34ec66[_0x171a('0x1c')]));});_0x4ecb9b['on']('close',function(){_0x219d24[_0x171a('0xa')](_0x171a('0x1d'),new AGIError(_0x171a('0x1e')));});_0x4ecb9b['on']('timeout',function(){_0x219d24[_0x171a('0xa')](_0x171a('0x1f'),new AGIError(_0x171a('0x20')));_0x4ecb9b[_0x171a('0x21')]();});_0x4ecb9b[_0x171a('0x22')](_0x199663);this['command']=function(_0x52e33d,_0x591ca9){var _0x52e33d=_0x52e33d||'',_0x591ca9=typeof _0x591ca9==_0x171a('0x11')?_0x591ca9:new Function();_0x52ad84={'tx':_0x52e33d,'rx':'','cb':_0x591ca9};_0x4ecb9b[_0x171a('0x23')](_0x52e33d+'\x0a');},this['close']=function(){_0x4ecb9b[_0x171a('0x21')]();};}util[_0x171a('0x24')](AGIChannel,EventEmitter);AGIChannel[_0x171a('0x25')]['sendRequest']=function(_0x4ca4ad){return this[_0x171a('0x26')][_0x171a('0x27')](this,_0x4ca4ad);};AGIChannel['prototype'][_0x171a('0x28')]=function(){return this['sendRequest'](_0x171a('0x29'));};AGIChannel[_0x171a('0x25')]['getData']=function(_0x15b6ce,_0x14b494,_0x7e0c08){_0x15b6ce=_0x15b6ce===undefined?_0x171a('0x2a'):_0x15b6ce;_0x14b494=_0x14b494===undefined?'5':_0x14b494;_0x7e0c08=_0x7e0c08===undefined?'1':_0x7e0c08;return this['sendRequest'](util['format'](_0x171a('0x2b'),_0x15b6ce,_0x14b494*0x3e8,_0x7e0c08));};AGIChannel[_0x171a('0x25')]['noop']=function(_0x3dce2){_0x3dce2=_0x3dce2||_0x171a('0x2c');return this[_0x171a('0x2d')](util[_0x171a('0x2e')]('VERBOSE\x20\x22%s\x22',_0x3dce2));};AGIChannel[_0x171a('0x25')][_0x171a('0x2f')]=function(_0x295a35,_0x1d3340){if(_[_0x171a('0x30')](_0x1d3340)){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x31'),_0x295a35,_0x1d3340['join'](',')));}return this['sendRequest'](util['format']('EXEC\x20%s\x20%s',_0x295a35,_0x1d3340));};AGIChannel[_0x171a('0x25')]['setContext']=function(_0x52c5f1){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x32'),_0x52c5f1));};AGIChannel[_0x171a('0x25')][_0x171a('0x33')]=function(_0x2538ea){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x34'),_0x2538ea));};AGIChannel[_0x171a('0x25')][_0x171a('0x35')]=function(_0x6a654a){return this[_0x171a('0x2d')](util[_0x171a('0x2e')]('SET\x20PRIORITY\x20%s',_0x6a654a));};AGIChannel[_0x171a('0x25')][_0x171a('0xd')]=function(){return this[_0x171a('0x2d')]('HANGUP');};AGIChannel['prototype'][_0x171a('0x36')]=function(_0x51ac26,_0x361be2){var _0x15e19d=_[_0x171a('0x37')](_0x361be2)||_['isNumber'](_0x361be2)?_0x361be2[_0x171a('0x38')]():_0x361be2;return this['sendRequest'](util[_0x171a('0x2e')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x51ac26,_0x15e19d?_0x15e19d[_0x171a('0x38')]()[_0x171a('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x171a('0x25')]['sayNumber']=function(_0x94210c,_0x2ffeac){return this[_0x171a('0x2d')](util['format'](_0x171a('0x39'),_0x94210c,_0x2ffeac));};AGIChannel[_0x171a('0x25')][_0x171a('0x3a')]=function(_0x583dc9,_0x424457){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x3b'),_0x583dc9,_0x424457));};AGIChannel[_0x171a('0x25')]['sayPhonetic']=function(_0x2aeed0,_0x4968d8){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x3c'),_0x2aeed0,_0x4968d8));};AGIChannel['prototype']['continueAt']=function(_0x500ccd,_0x4e4f84,_0x91ac61){_0x4e4f84=_0x4e4f84||this[_0x171a('0x3d')];_0x91ac61=_0x91ac61||0x1;this[_0x171a('0x3e')](_0x500ccd);this[_0x171a('0x33')](_0x4e4f84);this[_0x171a('0x35')](_0x91ac61);return this['noop'](util[_0x171a('0x2e')](_0x171a('0x3f'),_0x500ccd,_0x4e4f84,_0x91ac61));};AGIChannel[_0x171a('0x25')]['getVariable']=function(_0x343bd3){return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x40'),_0x343bd3));};AGIChannel['prototype'][_0x171a('0x41')]=function(_0x485606,_0x18af62,_0x14ca98,_0x276f21,_0x28723c,_0xa206b1){_0x18af62=_0x18af62||_0x171a('0x42');_0x14ca98=_0x14ca98||'';_0x276f21=_0x276f21===undefined?-0x1:_0x276f21==='-1'?-0x1:_0x276f21*0x3e8;_0x28723c=_0x28723c===undefined?'':'s='+_0x28723c;_0xa206b1=_0xa206b1?_0x171a('0x43'):'';return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x44'),_0x485606,_0x18af62,_0x14ca98,_0x276f21,_0xa206b1,_0x28723c));};AGIChannel['prototype'][_0x171a('0x45')]=function(_0x1d5ee9,_0x4ae444){_0x4ae444=_0x4ae444||'';return this[_0x171a('0x2d')](util[_0x171a('0x2e')](_0x171a('0x46'),_0x1d5ee9,_0x4ae444));};AGIChannel[_0x171a('0x25')]['agi']=function(_0x52772b){return this[_0x171a('0x2f')]('AGI',_0x52772b);};AGIChannel[_0x171a('0x25')]['wait']=function(_0x400e9c){return this[_0x171a('0x2f')](_0x171a('0x47'),_0x400e9c);};AGIChannel[_0x171a('0x25')][_0x171a('0x1a')]=function(_0xc7b2d5,_0x3baec0){this[_0x171a('0x48')](util[_0x171a('0x2e')](_0x171a('0x49'),_0xc7b2d5['id'],_0xc7b2d5['label'],_0x3baec0));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x171a('0x4a')]=AGIChannel;