📄 digital.html.svn-base
字号:
if(foo_spans && hwchanged == -1){ // no previous hardware information found - configuring for the first time gui_alert('Please configure your hardware using the Edit button(s)' + '<BR>'+ "When done click on the 'Apply Changes'" ); }else{ // if previous config file found if(foo_spans && hwchanged){ // gui_alert('Hardware Changes detected !! <BR><BR>' + 'When you "Apply Changes" all your previous settings will be over written' ); }else{ // no hardware changes detected //gui_alert('No Hardware Changes detected !! '); } } }catch(err){} finally{ _$('save_b').disabled = false; _$('cancel_b').disabled = false; loadConfigFiles.load_zaptel_conf(); // used only for retreiving loadzone }}function localajaxinit(){ setWindowTitle("Analog & Digital Cards(T1/E1) Setup & Configuration"); top._$('mainscreen').width= 798; _$('save_b').disabled = true; _$('cancel_b').disabled = true; ASTGUI.events.add( _$('loadZone') , "change" , function(){_$('save_b').disabled = false; _$('cancel_b').disabled = false;}) ; showdiv_statusmessage(); // create status message dialog _$('message_text').innerHTML = "Detecting Digital Cards ..."; _$('status_message').style.display="block"; setTimeout("_$('status_message').style.display='none';", 1000); if(!parent.FXS_PORTS_DETECTED.length && !parent.FXO_PORTS_DETECTED.length ){ _$('FXSFXO_ports_td').innerHTML = "<table class=\"taglist\" cellpadding=5 cellspacing=1 border=0 align=center><tr><td>No Analog Hardware detected !! </td></tr></table><BR><BR>"; HAS_ANALOGHARDWARE = false; }else{ if(parent.FXS_PORTS_DETECTED.length){ var s1 = ((parent.FXS_PORTS_DETECTED.length > 1) ?'Ports ':'Port ') + parent.FXS_PORTS_DETECTED.join(' , ') ; }else{ var s1 = 'none' ; } if(parent.FXO_PORTS_DETECTED.length){ var s2 = ((parent.FXO_PORTS_DETECTED.length > 1) ?'Ports ':'Port ') + parent.FXO_PORTS_DETECTED.join(' , ') ; }else{ var s2 = 'none' ; } _$('FXSFXO_ports_td').innerHTML = '<B>FXS Ports :</B> ' + s1 + '<BR>' + '<B>FXO Ports :</B> ' + s2 + '<BR>' ; } var edit_DefinedChans_changed = function(){ var b = CURRENT_SPAN ; var y = Number(_$('edit_DefinedChans').value); if( !verify_priChLimit() ){ alert("You should leave atleast one channel for signalling"); return true; } SPANS[b]['definedchans'] = y; //_$('edit_labelReserved').innerHTML = SPANS[b]['reserved_ch']; _$('edit_labelZapchan').innerHTML = calc_bchan_fxx(b); }; ASTGUI.events.add( _$('edit_DefinedChans'), "change", edit_DefinedChans_changed ); parent.loadscreen(this); loadConfigFiles.load_hwcfgfile(); // try to load last detected/configured hardware information}var loadConfigFiles = { // read hwcfgfile (if exists) into CONFIGUREDHARDWARE - so that the GUI knows the last configured hardware // run ztscan - to detect digital cards // read ztscan.conf - store hardware information in DETECTEDHARDWARE, read spans information - also set the max , min values for each span // see if the hardware matches with that from CONFIGUREDHARDWARE // (this way we know if any changes in digital hardware since the gui was last used) // read users.conf - and read spans information // check if the channels in zapchan are within max and min // if yes then set the current range values load_hwcfgfile: function(){ // read hwcfgfile (if exists) into CONFIGUREDHARDWARE var hwcfgfile_parse = function(n){ if( n == "ERROR: CONFIG FILE NOT FOUND"){ // hwcfgfile does not exist, proceed to Ztscan hwchanged = -1; loadConfigFiles.runZtscan(); return; } CONFIGUREDHARDWARE = {}; for( var l in n ){ if(n.hasOwnProperty(l) && l!='ANALOGPORTS' ){ // l is location CONFIGUREDHARDWARE[l] = {}; CONFIGUREDHARDWARE[l]['device'] = n[l]['device']; CONFIGUREDHARDWARE[l]['basechan'] = n[l]['basechan']; CONFIGUREDHARDWARE[l]['type'] = n[l]['type']; }} loadConfigFiles.runZtscan(); }; config2json(hwcfgfile, 1, hwcfgfile_parse); }, runZtscan: function(){ parent.astmanEngine.run_tool(asterisk_guiZtscan + '; touch /etc/asterisk/applyzap.conf', function(t) { // run ztscan and then try loading ztscan.conf setTimeout( function(){ loadConfigFiles.readZtscanConf(); } , 700); // leave some time for ztscan to generate ztscan.conf }); }, readZtscanConf:function(){ var digitalparse = function(n){ if( n == "ERROR: CONFIG FILE NOT FOUND"){ _$('errmsg').innerHTML = "Please check if <B>ztscan</B> is installed ? <BR> /etc/asterisk/ztscan.conf not found"; _$('errmsg').style.display = ''; _$('div_maintable').style.display = 'none'; gui_feedback("No Cards/Spans found, No Config File found !!"); //_$('tablecontainer').style.display="none"; return false; } for( var l in n ){ if(n.hasOwnProperty(l)){ if(n[l]['type'] == 'analog'){ DETECTEDHARDWARE[ n[l]['location'] ] = {}; DETECTEDHARDWARE[ n[l]['location'] ]['device'] = n[l]['devicetype']; DETECTEDHARDWARE[ n[l]['location'] ]['basechan'] = n[l]['basechan']; DETECTEDHARDWARE[ n[l]['location'] ]['type'] = n[l]['type'] ; continue; } // in this page, we care only about digital spans // note: function detectHwChanges checks if there are any changes in analog ports detected if( n[l]['description'].toLowerCase().contains('ztdummy') ){ continue;} // ignore ztdummy :-) SPANS[l] = {}; for( var k in n[l] ){ if(n[l].hasOwnProperty(k)){ SPANS[l][k] = n[l][k]; // store all the other fields in spans[l] if( k == 'location'){ if(!(SPANCOUNT_LOCATION[n[l]['location']]) ){ SPANCOUNT_LOCATION[n[l]['location']] = 0; } SPANCOUNT_LOCATION[n[l]['location']] = SPANCOUNT_LOCATION[n[l]['location']] + 1; } if( k=='location' && !(DETECTEDHARDWARE[n[l]['location']]) ){ DETECTEDHARDWARE[ n[l]['location'] ] = {}; DETECTEDHARDWARE[ n[l]['location'] ]['device'] = n[l]['devicetype']; DETECTEDHARDWARE[ n[l]['location'] ]['basechan'] = n[l]['basechan']; DETECTEDHARDWARE[ n[l]['location'] ]['type'] = n[l]['type']; } if( k == 'totchans' ){ SPANS[l]['spantype'] = n[l]['type'].split('-')[1]; // part after '-' in 'digital-T1' or 'digital-E1' SPANS[l]['min_ch'] = Number(n[l]['basechan']); SPANS[l]['max_ch'] = Number(n[l]['basechan']) + Number(n[l]['totchans']) - 1 ; SPANS[l]['reserved_ch'] = Number(n[l]['basechan']) + ( (Number(n[l]['totchans'])==24)? 23 : 15 ); SPANS[l]['definedchans'] = (Number(n[l]['totchans'])==24)? 23 : 30 ; // default values } if( k == 'lbo' ) { switch(n[l][k]){ case '0 db (CSU)/0-133 feet (DSX-1)': SPANS[l]['lbo'] = 0; break; case '133-266 feet (DSX-1)': SPANS[l]['lbo'] = 1; break; case '266-399 feet (DSX-1)': SPANS[l]['lbo'] = 2; break; case '399-533 feet (DSX-1)': SPANS[l]['lbo'] = 3; break; case '533-655 feet (DSX-1)': SPANS[l]['lbo'] = 4; break; case '-7.5db (CSU)': SPANS[l]['lbo'] = 5; break; case '-15db (CSU)': SPANS[l]['lbo'] = 6; break; case '-22.5db (CSU)': SPANS[l]['lbo'] = 7; break; default: SPANS[l]['lbo'] = 0; break; } } }} }} if(hwchanged != -1){ hwchanged = detectHwChanges(); } loadConfigFiles.readUsersConf(); // read span_x (where T1/E1 trunks are defined) }; config2json("ztscan.conf", 1, digitalparse); }, readUsersConf: function(){ var usersparse = function(n){ // read users.conf and load switchtype, signalling, zapchan into the SPANS object if( n == "ERROR: CONFIG FILE NOT FOUND"){ _$('errmsg').innerHTML = "/etc/asterisk/users.conf not found"; _$('errmsg').style.display = ''; _$('div_maintable').style.display = 'none'; gui_feedback("No Users File found !!"); //_$('tablecontainer').style.display="none"; return false; } var efgh = function(zc){ // calculate the number of channels defined for use in zapchan string // zc can be in the format 'u', 'u-v', 'u-v,w-x' or 'u-v,w' // the function returns 1 if u, (v-u +1) for the second case // and x-u for the third and // v-u+2 for the fourth case try{ if( zc.contains('-') ){ if(zc.contains(',')){ // case 3 or case 4 if( zc.split('-').length > 2 ) { // case 3 return (Number(zc.split('-')[2]) - Number(zc.split('-')[0])); }else{ // case 4 return (Number((zc.split('-')[1]).split(',')[0])-Number(zc.split('-')[0]) + 2); } } else { // case 'u-v' return (Number(zc.split('-')[1])-Number(zc.split('-')[0])+1); } }else{ // case 1 return 1; } }catch(err){ return null; } }; var abcd = function(){ var tmp; var tmp_spantodelete = {}; for( var l in n ){ if(n.hasOwnProperty(l)){ if( n[l]['group'] && l !='general' ){ if( GROUPS.contains( Number(n[l]['group'])) ){ // duplicate group ??? // we wish to address this situation in future }else{ GROUPS.push( Number(n[l]['group']) ); } } if( l.beginsWith('span_')) { tmp_spantodelete = {}; tmp_spantodelete['spanName'] = l; if( n[l]['context'] ){ tmp_spantodelete['spanContext'] = n[l]['context']; } spans_todelete.push(tmp_spantodelete); tmp = l.split('span_')[1]; //if (!SPANS[tmp]){ SPANS[tmp] = {}; } if (!SPANS[tmp]){ //ztscan did not detect any such span as tmp continue; } SPANS[tmp]['definedchans'] = 0; for( var k in n[l] ){ if(n[l].hasOwnProperty(k)){ if( k == 'signalling' || k == 'zapchan' || k == 'switchtype' ){ SPANS[tmp][k] = n[l][k]; } if( k=='zapchan'){ SPANS[tmp]['definedchans'] = efgh(n[l][k]); } }} } }} }(); showtable(); }; config2json("users.conf", 1, usersparse); }, load_zaptel_conf: function(){ // we parse zaptel.conf to get the loadzone and syncsrc for each span var tmp_file = 'zaptel_guiRead.conf'; parent.astmanEngine.run_tool("touch /etc/asterisk/" + tmp_file, function(t){ var parseZaptelconf = function(zp){ (function (){ var t = zp['general'] ; // t is an array var line = ''; _$('loadZone').selectedIndex = -1; for(var g=0; g < t.length; g++){ line = t[g]; //try{ if( line.beginsWith('loadzone=')) { var y = ASTGUI.parseContextLine.read(line) ; ASTGUI.selectbox.selectOption( _$('loadZone'), y[1] ); return; } //}catch(err){ // _$('loadZone').selectedIndex = -1; //} } })(); (function (){ var t = zp['general'] ; // t is an array t.each(function(line){ try{ if(line.beginsWith('span=')){ var y = ASTGUI.parseContextLine.read(line)[1] ; var span_no = y.split(',')[0]; var src_span = y.split(',')[1]; if(SPANS[span_no]){ SPANS[span_no]['syncsrc'] = src_span; } } }catch(err){} }); })(); }; var somefunction = function(){ var c = 0; var uri = build_action('delcat', c, 'general', "", ""); c++; uri += build_action('newcat', c, 'general', "", ""); c++; uri += build_action('update', c, 'general', '#include "../zaptel.conf" ;', ''); c++; makerequest('u', tmp_file, uri, function(t) { config2json(tmp_file, 0, parseZaptelconf); }); }(); }); },};function resetmainscreen(){ top._$('mainscreen').width= 540; }function reloadpage(){ window.location.href="digital.html"; }function disablEnable_sc() { if( !_$('editspan_signalling').value.beginsWith('pri') ){ _$('editspan_switchtype').disabled = true; _$('editspan_switchtype').selectedIndex = -1; if( _$('edit_DefinedChans').options.length == 24) { _$('edit_DefinedChans').options[23].disabled = false; } }else{ _$('editspan_switchtype').disabled = false; if( _$('edit_DefinedChans').options.length == 24) { // if is a PRI singalled T1 _$('edit_DefinedChans').options[23].disabled = true; if(_$('edit_DefinedChans').selectedIndex == 23 ){ _$('edit_DefinedChans').selectedIndex = 22 ; } } } return true;}function updateSpanInfo(){ if( !verify_priChLimit() ){ alert("You should leave atleast one channel for signalling."); return true; } if(!_$('editspan_fac').value){ alert("Please select a Framing/Coding !"); return true; } if(!_$('editspan_signalling').value){ alert("Please select a signalling !"); return true; } if(_$('editspan_signalling').value.beginsWith('pri') && !_$('editspan_switchtype').value ){ alert("Please select a Switch Type !"); return true; } var b = String(CURRENT_SPAN); if( _$('editspan_fac').value == 'CCS/HDB3/CRC4' ){ SPANS[b]['framing'] = 'CCS/HDB3'; SPANS[b]['coding'] = 'CRC4'; }else{ SPANS[b]['framing'] = _$('editspan_fac').value.split('/')[0]; SPANS[b]['coding'] = _$('editspan_fac').value.split('/')[1];; } SPANS[b]['signalling'] = _$('editspan_signalling').value; SPANS[b]['switchtype'] = _$('editspan_switchtype').value; SPANS[b]['syncsrc'] = _$('editspan_syncsrc').value; SPANS[b]['lbo'] = _$('editspan_lbo').value; _$('row'+ b).style.background = "#C9AAAA"; canelSpanInfo(); _$('save_b').disabled = false; _$('cancel_b').disabled = false;}var storeDetectedHardware = function(){ var cmd = 'rm /etc/asterisk/' + hwcfgfile + '; touch /etc/asterisk/' + hwcfgfile; parent.astmanEngine.run_tool( cmd , function(t){ var storeNewinfo = function(){ var uri = ''; c=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -