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

📄 home.html.svn-base

📁 asterisk-gui asterisk网关接口编程 控制asterisk的接口
💻 SVN-BASE
字号:
<!-- * Asterisk-GUI	-	an Asterisk configuration interface * * Initial login screen * * Copyright (C) 2006-2007, Digium, Inc. * * Mark Spencer <markster@digium.com> * Pari Nannapaneni <pari@digium.com> * * See http://www.asterisk.org for more information about * the Asterisk project. Please do not directly contact * any of the maintainers of this project for assistance; * the project provides a web site, mailing lists and IRC * channels for your use. * * This program is free software, distributed under the terms of * the GNU General Public License Version 2. See the LICENSE file * at the top of the source tree. *--><script src="scripts/prototype.js"></script><script src="scripts/astman.js"></script><link href="stylesheets/schwing.css" media="all" rel="Stylesheet" type="text/css" /><script>var localloggedon = -1;var asterisk_guitools = parent.asterisk_guitools;var asterisk_rawmanPath = parent.asterisk_rawmanPath;function updateButtons(){	var f = parent.loggedon;	_$('username').disabled = (f)?1:0;	_$('secret').disabled = (f)?1:0;	_$('logoff').disabled = (f)?0:1;	_$('reboot').disabled = (f)?0:1;	_$('login').disabled = (f)?1:0;	if(!f){ try{ _$('username').focus();}catch(err){ } }}function localinit() {	showdiv_statusmessage();	top.document.title = "Asterisk GUI -- Home";	var tmp;	var opt = {		method: 'get',		parameters: "action=ping",		asynchronous: true,		onComplete: function(t){			var f = t.responseText;			if( f.match("Pong")){				_$('statusbar').innerHTML = "<img src='images/tick.gif'><i>Connected!</i>";				loggedOn();				parent.loadscreen(this);				return;			}			if( f.match(parent.asterisk_guipingerror)){				_$('statusbar').innerHTML = "<i>Please login...</i>";				loggedOff();				parent.loadscreen(this);				_$('username').focus();				return;			}		}	};	tmp = new Ajax.Request( asterisk_rawmanPath, opt);}function loggedOn() {	if ((parent.loggedon == 1) && (localloggedon == 1)){ return; }	if(!parent.eventeater.pingstatus){		parent.eventeater.pingstatus = true;		parent.pingevery(60);	}	if(_$('secret').value=="password"){		parent.loggedon = 1;		localloggedon = 1;		var _ll = parent._$('logoutlink'); 		_ll.innerHTML = "Logout";		_ll.onclick = parent.Logoff ;		_ll.style.display = "" ;		parent.gui_alert("You are using the default password provided by AsteriskNOW !! \n\n It is strongly recommended that you change your default password ");		window.location.href="options.html?forcepassword=yes";		return;	}	if( parent.asterisk_guitools_inextconf == 0){		checkWritePermissions();	}	setTimeout( function(){		parent.setLoggedOn(1);		parent.loggedon = 1;		localloggedon = 1;		_$('username').className  = "input9_disabled";		_$('secret').className  = "input9_disabled";		updateButtons();		_$('statusbar').innerHTML = "<img src='images/tick.gif'><i>Connected!</i>";		var _rc = parent._$('reloadconfig'); 		_rc.innerHTML = "Activate Changes";		_rc.onclick = parent.reloadConfig ;		_rc.style.display = "" ;		var _ll = parent._$('logoutlink'); 		_ll.innerHTML = "Logout";		_ll.onclick = parent.Logoff ;		_ll.style.display = "" ;	}, 1000 );}function loggedOff() {	if ((parent.loggedon == 0) && (localloggedon == 0))		return;	parent.setLoggedOn(0);	parent.loggedon = 0;	parent.document.getElementById('logoutlink').innerHTML = "&nbsp;";	localloggedon = 0;	_$('username').disabled = 0;	_$('secret').disabled = 0;	_$('logoff').disabled = 1;	_$('login').disabled = 0;}function doLogin() {	if( _$('username').value == "" ){		parent.gui_feedback("Please enter a Username");		_$('username').focus();		return true;				}	if( _$('secret').value == "" ){		parent.gui_feedback("Please enter a password");		_$('secret').focus();		return true;				}	parent.document.getElementById('login_name').value = _$('username').value ;	_$('statusbar').innerHTML = "<i>Logging in...</i>";	parent.astmanEngine.sendRequest('action=login&username=' + encodeURIComponent( _$('username').value ) + "&secret=" + encodeURIComponent(_$('secret').value), afterlogin);}afterlogin = function(msgs) {	_$('statusbar').innerHTML = msgs[0].headers['message'];	if ( msgs[0].headers['response'] == "Success" ){		parent.gui_feedback("Login Successful",'blue',6000);		_$('statusbar').innerHTML = "<img src='images/tick.gif'><i>Connected!</i>";		//parent.astmanEngine.pollEvents();		loggedOn();	}else if( msgs[0].headers['message'] == "Authentication failed" ){		parent.gui_feedback("Invalid Username/Password",'default',6000);		_$('username').focus();		_$('username').select();		loggedOff();	}else{		loggedOff();	}};function doLogoff() {	parent.Logoff();}function submitOnEnter(e){ 	if(e.keyCode == 13){ 		doLogin();		return false;	}}function checkWritePermissions(){	// check if gui has write permissions		var rand = 'test_' + Math.round(100000*Math.random());		var wa = 'writeaccess';		var chs = new listOfActions(); 		chs.filename('http.conf'); var c = 0;		chs.build_action ( 'newcat', c , rand, '', '');		chs.build_action ( 'append', c , rand, wa, 'yes');		var after = function(){			var httpconfloaded = function(op){				if( op.hasOwnProperty(rand) ){ // has write permissions					var uri = build_action('delcat', 0, rand , '', '') ;					makerequest('u', 'http.conf', uri, function(t) { 						checkessentials();					});				}else{ // no write permissions					parent.gui_feedback("GUI does not have write access !! <BR> Please check manager.conf",'default',6000);					alert("GUI does not have write access !! \n Please check manager.conf");				}			}			config2json('http.conf',0,httpconfloaded);		}		chs.callActions(after);}function checkessentials(){	// see if asterisk_guitools exists in extensions.conf	//if everything ok set  asterisk_guitools_inextconf = 1;	var mtd = 'macro-trunkdial';	var updateTrunkDial = function(){		parent.ABOUT_TORELOAD_GUI = true;		var after = function(){ // then reload asterisk			parent.astmanEngine.cliCommand('dialplan reload', function(t){ gui_feedback("Restarted Asterisk !!",'blue'); 				top.window.location.reload(); // at this point ztscan call was failed as it needs this context to run, so reload			}); 		};		var chs = new listOfActions(); 		chs.filename('extensions.conf'); var c = 0;		chs.build_action ( 'delcat', c , mtd, '', '');		chs.build_action ( 'newcat', c , mtd, '', '');		chs.build_action ( 'append', c , mtd, 'exten', 's,1,set(CALLERID(all)=${IF($[${LEN(${CALLERID(num)})} > 6]?${CALLERID(all)}:${ARG2})})' );		chs.build_action ( 'append', c , mtd, 'exten', 's,n,Dial(${ARG1})' );		chs.build_action ( 'append', c , mtd, 'exten', 's,n,Goto(s-${DIALSTATUS},1)' );		chs.build_action ( 'append', c , mtd, 'exten', 's-NOANSWER,1,Hangup' );		chs.build_action ( 'append', c , mtd, 'exten', 's-BUSY,1,Hangup' );		chs.build_action ( 'append', c , mtd, 'exten', '_s-.,1,NoOp' );		chs.callActions(after);	};	var installguitools = function(){		parent.ABOUT_TORELOAD_GUI = true;		var after = function(){ // then reload asterisk			parent.astmanEngine.cliCommand('dialplan reload', function(t){ gui_feedback("Restarted Asterisk !!",'blue'); 				top.window.location.reload(); // at this point ztscan call was failed as it needs this context to run, so reload			}); 		};		var chs = new listOfActions(); 		chs.filename('extensions.conf'); var c = 0;		chs.build_action ( 'newcat', c , asterisk_guitools, '', '');		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'executecommand,1,System(${command})' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'executecommand,n,Hangup()' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,1,Answer' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,n,Playback(vm-intro)' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,n,Record(${var1})' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,n,Playback(vm-saved)' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,n,Playback(vm-goodbye)' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'record_vmenu,n,Hangup' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'play_file,1,Answer' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'play_file,n,Playback(${var1})' );		chs.build_action ( 'append', c , asterisk_guitools, 'exten', 'play_file,n,Hangup' );		chs.callActions(after);	};	var checkExtconfig = function (op){		if( !op.hasOwnProperty(mtd) || (op[mtd] && !op[mtd][0].beginsWith('exten=s,1,set(CALLERID(all)=${IF($[')) ){			updateTrunkDial();			return;		}		if( !op.hasOwnProperty(asterisk_guitools) ){	// if no context by name asterisk_guitools 			installguitools();		}else{			parent.asterisk_guitools_inextconf = 1;		}	};	config2json('extensions.conf',0,checkExtconfig);}</script><body id="foo" onload="localinit()" topmargin=0  bgcolor="EFEFEF"><div class="mainscreenTitleBar">	<span style="margin-left: 4px;font-weight:bold">Welcome to the Asterisk&trade; Configuration Panel</span></div><div class="mainscreenContentBox" id="mailboxcontent"><table class="mainscreenTable" width="100%">	<tr valign="top">	<td colspan=2>		<table align="center">		<tr>	<td colspan="2"><h2>Asterisk&trade; Configuration Engine</h2></td>		<tr>	<td>Username:</td>			<td><input id="username"  class="input9" size=12></td>		</tr>		<tr>	<td>Password:</td>			<td><input type="password" id="secret" class="input9" size=12 onKeyPress="submitOnEnter(event)"></td>		</tr>		<tr>	<td colspan=2 align="center">			<div id="statusbar">				<span style="margin-left: 4px;font-weight:bold">&nbsp;</span>			</div>			</td>		</tr>		<tr>	<td align='center' colspan='2'>				<input type="submit" id="login" value="Login" onClick="doLogin()" class="input">				&nbsp;&nbsp;&nbsp;&nbsp;				<input type="submit" id="logoff" value="Logoff" disabled=1 onClick="doLogoff()" class="input">				&nbsp;&nbsp;&nbsp;&nbsp;				<input type="submit" id="reboot" value="Reboot" disabled=1 onClick='parent.reboot()' class="input">			</td>		</tr>		</table>	</td>	</tr></table></div></body>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -