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

📄 8.html

📁 asterisk 的图形管理界面
💻 HTML
📖 第 1 页 / 共 2 页
字号:
		var newpattern = _$('frompattern').value ;
		var temp_provider = _$('fromprovider').value ;
		var temp_action = "Goto(default|" + _$('toextension').value + "|1)";
		var temp_priority = "1";
		var new_exten = newpattern  + "," + temp_priority + "," + temp_action;
		var uri = build_action('append', 0, temp_provider ,"exten", new_exten ); 
	}

	// check whether there is an existing entry with this pattern 
	if( typeof didtrunks[temp_provider][newpattern] != "undefined" ){
		alert("An incoming call rule is already defined \n on this trunk for the selcted pattern !! ");
		return false;
	}
	
	var opt = {
		method: 'get',
		asynchronous: true,
		onSuccess: function(t) { 									
			// add this to the global object
			didtrunks[temp_provider][newpattern] = new Object();
			didtrunks[temp_provider][newpattern].priority = temp_priority;
			didtrunks[temp_provider][newpattern].action = temp_action ;
			//addrowtotable(newpattern,temp_provider,temp_action,temp_priority) ; // a is pattern, b is DID_trunk, c is action, d is priority
			refreshtable();
			_$('userscontent').style.display = "none";
			_$('bg_transparent').style.display ='none';
		},
		onFailure: function(t) {
			alert("Config Error: " + t.status + ": " + t.statusText);
		}
	};

	opt.parameters="action=updateconfig&srcfilename=" + encodeURIComponent("extensions.conf") + "&dstfilename=" + encodeURIComponent("extensions.conf") + uri;
	var tmp = new Ajax.Request(rawman_url, opt);
	// 
}


function update_incomingrule(){
	// field validation 
	if(_$('incomingrule').value == "frompattern" && _$('frompattern').value == "" ){
		alert("Please define an incoming call pattern !");
		_$('frompattern').focus();
		_$('frompattern').select();
		return false;
	}
	if( _$('toextension').selectedIndex == -1 ){
		alert("Please select an extension to which an incoming call should be routed to !");
		_$('toextension').focus();
		return false;
	}

	if( _$('incomingrule').value == "frompattern" && _$('frompattern').value.substr(0,1) != "_" ){
		_$('frompattern').value = "_" + _$('frompattern').value ;
	}
	// old values before editing are - edit_pattern, edit_DIDtrunk, edit_action, edit_priority
	// check for duplicate other than old
	var p = 0 ;
	var uri = "" ;
	var temp_provider = _$('fromprovider').value ;
	var temp_action = "Goto(default|" + _$('toextension').value + "|1)";
	var temp_priority = "1";
	var tmp_old_string = edit_pattern  + "," + edit_priority + "," + edit_action;
	uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", tmp_old_string); p++;
	if(edit_pattern == "_X." ){
		var tmp2_old_string = "s," + edit_priority + "," + edit_action ;
		uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", tmp2_old_string); p++;
	}

	if ( _$('incomingrule').value == "allunmatched" ){
		var newpattern = "_X." ;
		var new_exten = newpattern  + "," + temp_priority + "," + temp_action;
		var new_exten2 = "s," + temp_priority + "," + temp_action;
		uri += build_action('append', p , temp_provider ,"exten", new_exten ); p++ ;
		uri += build_action('append', p , temp_provider ,"exten", new_exten2 ); p++ ;
	}else{
		var newpattern = _$('frompattern').value ;
		var new_exten = newpattern  + "," + temp_priority + "," + temp_action;
		uri += build_action('append', p , temp_provider ,"exten", new_exten ); p++ ;
	}

	if( typeof didtrunks[temp_provider][newpattern] != "undefined" && ( temp_provider != edit_DIDtrunk || newpattern != edit_pattern ) ){
		alert("An incoming call rule is already defined \n on this trunk for the selcted pattern !! ");
		return false;
	}

	// delete old entry and add new entry
	var opt = {
		method: 'get',
		asynchronous: true,
		onSuccess: function(t) { 									
			delete didtrunks[edit_DIDtrunk][edit_pattern] ;
			didtrunks[temp_provider][newpattern] = new Object();
			didtrunks[temp_provider][newpattern].priority = temp_priority;
			didtrunks[temp_provider][newpattern].action = temp_action ;
			_$('userscontent').style.display = "none";
			_$('bg_transparent').style.display ='none';
			refreshtable();
		},
		onFailure: function(t) {
			alert("Config Error: " + t.status + ": " + t.statusText);
		}
	};
	opt.parameters="action=updateconfig&srcfilename=" + encodeURIComponent("extensions.conf") + "&dstfilename=" + encodeURIComponent("extensions.conf") + uri;
	var tmp = new Ajax.Request(rawman_url, opt);

}

function checksave(k){
	if( old_incomingrule == _$('incomingrule').value && old_fromprovider == _$('fromprovider').value ){
		return true;
	}

	if(_$('incomingrule').value == "frompattern" ){
		_$('thatmatch').style.display = "" ;
		if(k.id=="incomingrule"){
			_$('frompattern').focus();
			_$('frompattern').select();
		}
	}else{
		_$('thatmatch').style.display = "none" ;
	}

	_$('save_a').disabled = false;
	old_incomingrule = _$('incomingrule').value ;
	old_fromprovider = _$('fromprovider').value ;
}


function enablesave(){
	_$('save_a').disabled = false;
}

function delete_incomingrule(a,b,c,d){ // a is pattern, b is DID_trunk, c is action, d is priority
	t=confirm("Are you sure you want to delete this Incoming Calling Rule?");
	if(t == false){ 
		return true;
	}

	var tmp_match = a+","+d+","+c ;
	var opt = {
		method: 'get',
		asynchronous: true,
		onSuccess: function(t) {
			// add this to the global object
			delete didtrunks[b][a];
			refreshtable();
		},
		onFailure: function(t) {
			alert("Config Error: " + t.status + ": " + t.statusText);
		}
	};
	var uri = build_action('delete',0, b, "exten" ,"", tmp_match);
	if( a == "_X." ){
		var tmp2_match = "s," + d + "," + c ;
		uri += build_action('delete',1,b,"exten","", tmp2_match);
	}
	opt.parameters="action=updateconfig&srcfilename=" + encodeURIComponent("extensions.conf") + "&dstfilename=" + encodeURIComponent("extensions.conf") + uri;
	var tmp = new Ajax.Request(rawman_url, opt);
}



function localinit(){
	parent._$('next').onclick = function(){	 window.location.href="10.html"; };
	parent._$('back').onclick  = function(){ window.location.href="7.html"; };
	rawman_url = parent.rawman_url ;
	parent.astmanEngine.setURL(rawman_url);
	ping();
}

function ping(){
	var opt = { method: 'get', asynchronous: true, onComplete: isloggedin };
	opt.parameters="action=ping" ;
	var tmp = new Ajax.Request(rawman_url , opt);
}

function isloggedin(originalRequest){
	if ( originalRequest.responseText.match("Error") ) {
		// User is not logged in , show him the login screen
		parent.window.location.href = parent.window.location.href ; 
	}

	if ( originalRequest.responseText.match("Pong") ) {
		showdiv_statusmessage();
		setWindowTitle("Incoming Calls");
		for (var x =0; x < focus_fields.length; x++ ) {
			$(focus_fields[x]).onfocus = function(){this.className = 'input9_hilight';}
			$(focus_fields[x]).onblur = function(){this.className = 'input9';}
		}
		parent.astmanEngine.config2list("users.conf", _$('users'), new Array(), user_callbacks);
	}
}

</SCRIPT>
<BODY bgcolor="#FFFFFF" onload="localinit()" topmargin=0 leftmargin=0>
<table width="100%" height="100%" border=0 cellpadding=0 cellspacing=0>
<tr>	
<td width="170" valign=top align=left>
<div id="menu">
<table cellpadding=3 cellspacing=2 border=0 id="sidelist">
	<tr><td width=3></td><td>Start</td></tr>
	<tr><td></td><td>Verify Analog Ports</td></tr>
	<!-- <tr><td></td><td>Date & Time</td></tr> -->
	<tr><td></td><td>Local Extension Settings</td></tr>
	<tr><td></td><td>Service Providers</td></tr>
	<tr><td></td><td>Calling Rules</td></tr>
	<tr><td></td><td>VoiceMail Settings</td></tr>
	<tr><td></td><td>User Extensions</td></tr>
	<tr><td></td><td class="slselected">Incoming Calls</td></tr>
	<!-- <tr><td></td><td>VoiceMenus</td></tr> -->
	<tr><td></td><td>Finish</td></tr>
</table>
</div>
</td>
<td valign=top align=center>
<!--  this page -->
	<select id="extensions" style="display:none"></select>
	<select id="users" style="display:none"></select>

	<div class="heading">
		Step 7 of <script>document.write(parent.numberofsteps);</script>&nbsp;&nbsp;-  Incoming Calls
	</div>

	<div class="subheading">List of incoming call rules</div>

	<table class="table_blacksm" cellpadding=2 cellspacing=2 border=0 align=center width=500 id="table_one">
	<tr>	<td width=35>S.No</td>
		<td> Incoming Rule </td>
		<td width=75 align=center>Options</td>
	</tr>
	</table>

	<div id="callingRulesTable_div" style="height:200px;width=100%; overflow :auto; padding : 0px 0px 0px 0px;">
		<table id="callingRulesTable" cellpadding=2 cellspacing=1 border=0 align=center width=500></table>
	</div>

	<BR>
	<center><input type="button" id="adddid" value="Add a Incoming Rule" onclick="add_incomingrule();"></center>
	<div id="userscontent" STYLE="display:none; position: absolute; left: 227; top: 70; width:475; height:190;  background-color:#F4EFE5;   border-width: 1px; border-color: #7E5538; border-style: solid;z-index:5">
		<table width="100%" cellpadding=0 cellspacing=0 onmousedown="startDrag(event , 'userscontent');">
		<TR bgcolor="#7E5538"  style="background-image:url('../images/title_gradient.gif');">
			<TD Height="20" align="right" style="cursor: move">
				<A href="#" onclick="$('cancel_a').click();"><font style="color:#FFFFFF; font-size: 12px; font-weight:bold;">X</font></A>
			</TD>
			<TD width=4></TD>
		</TR>
		</table>
	
		<TABLE align=center cellpadding=2 cellspacing=2 border=0 width="100%">
		<TR>	<TD height=10></TD></TR>
		<TR>	<TD align=center>
			<NOBR>Route <select id="incomingrule"  onclick="checksave(this)" class="input9">
				<option value="allunmatched">All Unmatched incoming calls</option>
				<option value="frompattern">incoming calls that match </option>
				</select>
				<span id="thatmatch">pattern <input type="text" id="frompattern" size=12  onchange="enablesave();"  onkeyup="enablesave();"  class="input9"></span>
			</NOBR>
			</TD>
		</TR>
		<TR>	<TD align=center>from provider <select id="fromprovider" onclick="checksave(this)"  class="input9"></select>	</TD></TR>
		<TR>	<TD align=center>to extension <select id="toextension" onchange="enablesave();"  onkeyup="enablesave();"  class="input9"></select></TD>
		</TR>
		<TR>	<TD align=center height=50 valign=middle>  
				<input type="button" id="save_a" value="Save" onclick="save_incomingrule();">&nbsp;&nbsp;
				<input type="button" id="cancel_a" value="Cancel" onclick="$('userscontent').style.display='none'; $('bg_transparent').style.display ='none';" >
			</TD>
		</TR>
		</TABLE>
	</div>
	<div id="bg_transparent" STYLE="display:none; position: absolute; left: 0; top: 0; width:100%; height:100%;  background-color:#EFEFEF; -moz-opacity:.50;opacity:.50; border-width: 1px; border-color: #EFEFEF; border-style: solid; z-index:4">
	</div>
<!--  this page -->
</td>
</tr>
</table>
</div>
</BODY>
</HTML>

⌨️ 快捷键说明

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