⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digital.html.svn-base

📁 asterisk-gui asterisk网关接口编程 控制asterisk的接口
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
	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 + -