Built motion from commit f7863d46.|2.5.41
[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 _0x11e5=['toLowerCase','hangup','520-Invalid','function','substring','no\x20code','replace','result=','substr','indexOf','split','length','match','error','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','write','inherits','prototype','command','sendRequest','ANSWER','getData','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','isArray','join','EXEC\x20%s\x20%s','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','BEEP','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','exec','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','events','EventEmitter','./error','setEncoding','utf8','setTimeout','headers','emit','ready','line'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x11e5,0x8b));var _0x511e=function(_0xcbff5,_0x50eb75){_0xcbff5=_0xcbff5-0x0;var _0x13a00a=_0x11e5[_0xcbff5];return _0x13a00a;};'use strict';var util=require(_0x511e('0x0'));var _=require('lodash');var EventEmitter=require(_0x511e('0x1'))[_0x511e('0x2')];var AGIReply=require('./reply');var AGIError=require(_0x511e('0x3'));function AGIChannel(_0x30fb24){var _0x101e06=this,_0x5cab33=new AGIReply(),_0x249e4d=![],_0x4fbd4f={};EventEmitter['call'](_0x101e06);_0x30fb24[_0x511e('0x4')](_0x511e('0x5'));_0x30fb24[_0x511e('0x6')](0x8*0x3c*0x3c*0x3e8);_0x5cab33['setEncoding']('utf8');_0x5cab33['on'](_0x511e('0x7'),function(_0xf0ba86){for(var _0x25deeb in _0xf0ba86){_0x101e06[_0x25deeb]=_0xf0ba86[_0x25deeb];}_0x101e06[_0x511e('0x8')](_0x511e('0x9'));});_0x5cab33['on'](_0x511e('0xa'),function(_0x1596b3){if(_0x1596b3[_0x511e('0xb')]()==_0x511e('0xc')){_0x101e06[_0x511e('0x8')](_0x511e('0xc'));return;}if(_0x1596b3['substring'](0x0,0xb)==_0x511e('0xd')){_0x249e4d=!![];}if(_0x249e4d){_0x4fbd4f['rx']+=_0x1596b3+'\x0a';if(_0x1596b3['search']('520\x20End\x20of\x20proper')!=-0x1){_0x249e4d=![];}}else{_0x4fbd4f['rx']=_0x1596b3;}if(_0x249e4d){return;}if(typeof _0x4fbd4f['cb']==_0x511e('0xe')){var _0x327880=_0x4fbd4f['rx'][_0x511e('0xf')](0x0,0x3),_0x42679e=null,_0x258e2f=null;_0x327880=parseInt(_0x327880);if(isNaN(_0x327880)){_0x4fbd4f['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x511e('0x10')});return;}if(_0x327880!=0xc8){_0x4fbd4f['cb'](null,{'code':_0x327880,'result':-0x1,'extra':'KO'});return;}_0x42679e=_0x4fbd4f['rx']['substring'](0x4)[_0x511e('0x11')](_0x511e('0x12'),'');if(_0x42679e['indexOf']('\x20')!=-0x1){_0x42679e=_0x42679e[_0x511e('0x13')](0x0,_0x42679e[_0x511e('0x14')]('\x20'));}if(_['startsWith'](_0x42679e,'-1')){_0x42679e=parseInt(_0x42679e);}_0x258e2f=_0x4fbd4f['rx'][_0x511e('0x15')]('\x20');if(_0x258e2f[_0x511e('0x16')]==0x3){_0x258e2f=_0x258e2f[0x2][_0x511e('0xf')](0x1,_0x258e2f[0x2][_0x511e('0x16')]-0x1);}else if(_0x258e2f['length']>0x3){var _0x3e0415=/\((.+)\)/;var _0x2dd346=_0x4fbd4f['rx'][_0x511e('0x17')](_0x3e0415);if(_0x2dd346){_0x258e2f=_0x2dd346[0x1];}else{_0x258e2f=null;}}else{_0x258e2f=null;}_0x4fbd4f['cb'](null,{'code':_0x327880,'result':_0x42679e,'extra':_0x258e2f});}});_0x30fb24['on']('error',function(_0x26af67){_0x101e06['emit'](_0x511e('0x18'),new AGIError('E_AGI_SOCKET_ERROR',_0x26af67['code']));});_0x30fb24['on'](_0x511e('0x19'),function(){_0x101e06['emit'](_0x511e('0x19'),new AGIError(_0x511e('0x1a')));});_0x30fb24['on'](_0x511e('0x1b'),function(){_0x101e06[_0x511e('0x8')](_0x511e('0x1b'),new AGIError(_0x511e('0x1c')));_0x30fb24[_0x511e('0x1d')]();});_0x30fb24[_0x511e('0x1e')](_0x5cab33);this['command']=function(_0x1e2b41,_0x39e0b4){var _0x1e2b41=_0x1e2b41||'',_0x39e0b4=typeof _0x39e0b4==_0x511e('0xe')?_0x39e0b4:new Function();_0x4fbd4f={'tx':_0x1e2b41,'rx':'','cb':_0x39e0b4};_0x30fb24[_0x511e('0x1f')](_0x1e2b41+'\x0a');},this[_0x511e('0x19')]=function(){_0x30fb24[_0x511e('0x1d')]();};}util[_0x511e('0x20')](AGIChannel,EventEmitter);AGIChannel[_0x511e('0x21')]['sendRequest']=function(_0x4ad22b){return this[_0x511e('0x22')]['sync'](this,_0x4ad22b);};AGIChannel[_0x511e('0x21')]['answer']=function(){return this[_0x511e('0x23')](_0x511e('0x24'));};AGIChannel[_0x511e('0x21')][_0x511e('0x25')]=function(_0x1bb7f9,_0x9dfe29,_0x3c057c){_0x1bb7f9=_0x1bb7f9===undefined?_0x511e('0x26'):_0x1bb7f9;_0x9dfe29=_0x9dfe29===undefined?'5':_0x9dfe29;_0x3c057c=_0x3c057c===undefined?'1':_0x3c057c;return this[_0x511e('0x23')](util[_0x511e('0x27')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x1bb7f9,_0x9dfe29*0x3e8,_0x3c057c));};AGIChannel[_0x511e('0x21')][_0x511e('0x28')]=function(_0xb563f6){_0xb563f6=_0xb563f6||_0x511e('0x29');return this[_0x511e('0x23')](util['format'](_0x511e('0x2a'),_0xb563f6));};AGIChannel['prototype']['exec']=function(_0x262dde,_0xb1d444){if(_[_0x511e('0x2b')](_0xb1d444)){return this[_0x511e('0x23')](util[_0x511e('0x27')]('EXEC\x20%s\x20%s',_0x262dde,_0xb1d444[_0x511e('0x2c')](',')));}return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x2d'),_0x262dde,_0xb1d444));};AGIChannel[_0x511e('0x21')]['setContext']=function(_0x407232){return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x2e'),_0x407232));};AGIChannel[_0x511e('0x21')][_0x511e('0x2f')]=function(_0x2c6412){return this[_0x511e('0x23')](util['format'](_0x511e('0x30'),_0x2c6412));};AGIChannel[_0x511e('0x21')][_0x511e('0x31')]=function(_0x3958cd){return this['sendRequest'](util['format'](_0x511e('0x32'),_0x3958cd));};AGIChannel['prototype']['hangup']=function(){return this[_0x511e('0x23')](_0x511e('0x33'));};AGIChannel[_0x511e('0x21')][_0x511e('0x34')]=function(_0x25bbc8,_0x574378){var _0xa075d0=_[_0x511e('0x35')](_0x574378)||_[_0x511e('0x36')](_0x574378)?_0x574378['toString']():_0x574378;return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x37'),_0x25bbc8,_0xa075d0?_0xa075d0['toString']()[_0x511e('0x11')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x511e('0x21')]['sayNumber']=function(_0x357a66,_0xff2428){return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x38'),_0x357a66,_0xff2428));};AGIChannel[_0x511e('0x21')][_0x511e('0x39')]=function(_0x8cc26e,_0xde4b8){return this[_0x511e('0x23')](util[_0x511e('0x27')]('SAY\x20DIGITS\x20%s\x20%s',_0x8cc26e,_0xde4b8));};AGIChannel[_0x511e('0x21')]['sayPhonetic']=function(_0x51716f,_0xd31415){return this['sendRequest'](util['format'](_0x511e('0x3a'),_0x51716f,_0xd31415));};AGIChannel[_0x511e('0x21')][_0x511e('0x3b')]=function(_0x3d1e9d,_0x474500,_0x407ecb){_0x474500=_0x474500||this[_0x511e('0x3c')];_0x407ecb=_0x407ecb||0x1;this[_0x511e('0x3d')](_0x3d1e9d);this[_0x511e('0x2f')](_0x474500);this[_0x511e('0x31')](_0x407ecb);return this[_0x511e('0x28')](util[_0x511e('0x27')](_0x511e('0x3e'),_0x3d1e9d,_0x474500,_0x407ecb));};AGIChannel[_0x511e('0x21')]['getVariable']=function(_0x5a7a12){return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x3f'),_0x5a7a12));};AGIChannel[_0x511e('0x21')][_0x511e('0x40')]=function(_0x512f70,_0xa160f2,_0x6fe0a7,_0x40cc33,_0x573e2e,_0x5cdc4d){_0xa160f2=_0xa160f2||'wav';_0x6fe0a7=_0x6fe0a7||'';_0x40cc33=_0x40cc33===undefined?-0x1:_0x40cc33==='-1'?-0x1:_0x40cc33*0x3e8;_0x573e2e=_0x573e2e===undefined?'':'s='+_0x573e2e;_0x5cdc4d=_0x5cdc4d?_0x511e('0x41'):'';return this[_0x511e('0x23')](util[_0x511e('0x27')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x512f70,_0xa160f2,_0x6fe0a7,_0x40cc33,_0x5cdc4d,_0x573e2e));};AGIChannel['prototype']['streamFile']=function(_0x2e0da9,_0x3bbb29){_0x3bbb29=_0x3bbb29||'';return this[_0x511e('0x23')](util[_0x511e('0x27')](_0x511e('0x42'),_0x2e0da9,_0x3bbb29));};AGIChannel[_0x511e('0x21')][_0x511e('0x43')]=function(_0x1faf19){return this[_0x511e('0x44')](_0x511e('0x45'),_0x1faf19);};AGIChannel[_0x511e('0x21')][_0x511e('0x46')]=function(_0x19a6c8){return this[_0x511e('0x44')](_0x511e('0x47'),_0x19a6c8);};AGIChannel[_0x511e('0x21')][_0x511e('0x18')]=function(_0x30769b,_0x3a8395){this[_0x511e('0x28')](util[_0x511e('0x27')](_0x511e('0x48'),_0x30769b['id'],_0x30769b[_0x511e('0x49')],_0x3a8395));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x511e('0x4a')]=AGIChannel;