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

📄 trunks.html.svn-base

📁 asterisk-gui asterisk网关接口编程 控制asterisk的接口
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
<!-- * Configuration for "Service Providers (trunks)" * * Copyright (C) 2006 - 2007, Digium, Inc. * * Mark Spencer <markster@digium.com> * Pari Nannapaneni <pari@digium.com> * Brandon Kruse <bkruse@digium.com> * * All Rights Reserved. * * Distribution of this file is subject to the license * agreement you accepted when obtained and/or activated * the Digium product containing this file. *--><script src="scripts/prototype.js"></script><script src="scripts/astman.js"></script><script src="scripts/tooltip.js"></script><link href="stylesheets/schwing.css" media="all" rel="Stylesheet" type="text/css" /><script>var origwidth;var widgets = {};var provwidgets = {};var callbacks = new Object;var providercallbacks = new Object;var globalvars = new Object;var GROUPS = [];var NEWGROUPNUMBER;var fieldnames =[ 'disallow','allow','signalling','callerid','cancel','contact','context','delete','dialformat','fromdomain','fromuser','canreinvite','group','hasexten','hasiax','hassip','host','insecure',		'name','new','port','provider','registeriax','registersip','save','secret','trunkname','trunkstyleanalog','trunkstylecustomvoip',		'trunkstylevoip','username','zapchan'];var provfieldnames = ['providerdesc', 'providerlogo'];var opt_userandpass = ['voip_user', 'voip_pass', 'username', 'secret'];var opt_userandip = ['voip_user', 'voip_ip', 'username', 'ip'];var isnewtrunk;var dids_array = [];var old_trunkname;var used_fxos = {};used_fxos.oldvalue = "";used_fxos.newvalue = "";var PORTS_toCALIBRATE = {} ;var AUDIO_LEVELS = [];var PRITRUNKS = [];var MISDNTRUNKS = [];function load_mISDNtrunks(){	var parseMisdnConf = function(n){		try{			if( n == "ERROR: CONFIG FILE NOT FOUND"){ } // misdn.conf not found			for( var l in n ){ 				if( n.hasOwnProperty(l) && l.beginsWith('trunk_m') && n[l]['hasmisdn'] =='yes' ){					var y = ( n[l]['trunkname'] ) ? n[l]['trunkname'] : l ;					MISDNTRUNKS.push( y );				}			};		}catch(err){		}finally{			parent.astmanEngine.config2list("extensions.conf", _$('hiddenglobals'), new Array, globalvars);		}	};	config2json("misdn.conf", 1, parseMisdnConf);}function add_didcontext(trunk){	var didcontext = asterisk_guiTDPrefix + trunk ;	var uri = build_action('newcat', 0, didcontext ,"", "");	uri += build_action('append', 1, didcontext ,"include", "default"); 	makerequest('u', 'extensions.conf',uri, function(t){ });}function update_didcontext(old_trunk, new_trunk){	var old_didcontext = asterisk_guiTDPrefix + old_trunk  ;	var new_didcontext = asterisk_guiTDPrefix + new_trunk  ;	var uri = build_action('renamecat', 0, old_didcontext ,"", new_didcontext );	makerequest('u','extensions.conf', uri, function(t){ callbacks_savechanges_step2(); }  );}function update_didcontext_andcid(old_trunk, new_trunk){	var old_didcontext = asterisk_guiTDPrefix + old_trunk  ;	var new_didcontext = asterisk_guiTDPrefix + new_trunk  ;	var uri = build_action('renamecat', 0, old_didcontext ,"", new_didcontext );	uri += build_action('renamecat', 1, old_didcontext + "_cid", "", new_didcontext + "_cid" );	makerequest('u','extensions.conf', uri, function(t){ callbacks_savechanges_step2(); }  );}function delete_didcontext(trunk){	var didcontext = asterisk_guiTDPrefix + trunk ;	var uri = build_action('delcat', 0, didcontext ,"", "");	makerequest('u','extensions.conf', uri, function(t){ } );}providercallbacks.postselect = function() {	var _pl = _$('providerlink') ;	try{		var f = _$('provider');		var g = f.stored_config.catbyname[f.value].fieldbyname['regurl'] ;		_pl.href= ( g ) ? g :'#' ;		_pl.target = ( g ) ? '_blank' : '';	}catch(e){		_pl.href= "#";		_pl.target = "";	}}providercallbacks.format = function(t) {	return t.fieldbyname['providername'];}globalvars.format = function(t) {	if ( t.name.substring(0,asterisk_guiTDPrefix.length) == asterisk_guiTDPrefix ){		dids_array.push( t.name.substring( asterisk_guiTDPrefix.length ) );	}	if (t.name == "globals"){ return t.name ; }	return null;}globalvars.loaded = function() {	parent.astmanEngine.config2list("users.conf", _$('devices'), widgets, callbacks);}			providercallbacks.loaded = function() {	var p = _$('provider');	load_mISDNtrunks();}callbacks.format = function(t) {	//if( t.fieldbyname['group'] && t.fieldbyname['zapchan']){	if( t.fieldbyname['group'] && t.name !='general' ){		if(GROUPS.contains(Number(t.fieldbyname['group']) )){			// what the hell, duplicate group ??? 			// we wish to address this situation in future		}else{			GROUPS.push( Number(t.fieldbyname['group']) );		}	}	if(t.name.beginsWith('span_') && t.fieldbyname['signalling'].beginsWith('pri') ){		PRITRUNKS.push(t.name);		return null;	}	if( t.name.beginsWith('span_') ){ return null; }	if( InArray(dids_array, t.name) ){ 		// 		if(t.fieldbyname['zapchan']){ 			var s = t.fieldbyname['zapchan'].split(",");			for(var u=0; u < s.length; u++){ used_fxos[s[u]] = true ; }		} 		return t.fieldbyname['trunkname']; 	}	return null;}callbacks.cancelnewcategory = function(){	ASTGUI.events.remove( _$('trunkstyleanalog') , 'click' , activateanalogvoip );	ASTGUI.events.remove( _$('trunkstylevoip') , 'click' , activateanalogvoip );	ASTGUI.events.remove( _$('trunkstylecustomvoip') , 'click' , activateanalogvoip );	hideSPdetails();}callbacks.cancelchanges = function(){	hideSPdetails();}callbacks.loaded = function() {	var _devices = _$('devices');	_devices.disabled = true;	ASTGUI.events.add( _$('new') , "click", showSPdetails ) ;	loadServiceProvidersintotable();	preparemenus();	parent.loadscreen(this);}callbacks.postselect = function(){	if( _$('trunkstylecustomvoip').checked ){		// Custom VOIP		var tmp = _$('trunkname').value.split("Custom - ")  ;		_$('customvoip_name').value = (tmp[1]) ? tmp[1] : (_$('trunkname').value) ? _$('trunkname').value : "No Comment/Trunk Name Set";		_$('customvoip_username').value = _$('username').value;		_$('customvoip_secret').value = _$('secret').value;		_$('customvoip_protocol').selectedIndex = ( _$('hassip').value  == "yes" ) ? 1 : 0;		_$('customvoip_host').value = _$('host').value;		_$('customvoip_register').checked = ( _$('registeriax').value == "yes" || _$('registersip').value == "yes") ? true : false ;	}else if ( _$('trunkstylevoip').checked ){		// VOIP		_$('customvoip_name').value = "";		_$('customvoip_username').value = _$('username').value;		_$('customvoip_secret').value = _$('secret').value;		_$('customvoip_protocol').selectedIndex = 0;		_$('customvoip_host').value ="";	}}callbacks.delchanges = function(box, value) {	deletesp_fromui(value);	delete_didcontext(value);	used_fxos.newvalue = "";	update_used_fxos();	var _hglobals = _$('hiddenglobals');	var oldvalue = _hglobals.stored_config.catbyname['globals'].fieldbyname[value];	if (oldvalue) {		uri = build_action('delete', 0, 'globals', value, "");		apply_uri( _hglobals, uri);		_hglobals.stored_config.catbyname['globals'].fieldbyname[value] = null;		return true;	}}callbacks.beforeSaving = function(){	var _tsv = _$('trunkstylevoip');	var _tsa = _$('trunkstyleanalog');	var _tscv = _$('trunkstylecustomvoip');	var _cv_un = _$('customvoip_username');	var _name = _$('name')  ;	var _dvcs_v = _$('devices').value ;	var _msg1 = "When using VoIP, the username must not be empty!" ;	var _msg2 = "No analog line hardware installed on the system";	var _msg3 = "When using Analog, at least one port must be selected.";	var _msg4 = "Please enter a Comment for this Service Provider";	var _msg5 = "Please enter an IP for your NGT Sip Server!";	var provider_rl;	var _provider_rl = _$('provider');	provider_rl = _provider_rl.stored_config.catbyname[_provider_rl.value];	/* ngt and bandwidth do not require passwords, its ip based. */	if ( _tsv.checked && !_$('username').value.length && _$('provider').value != "bandwidth" && _$('provider').value != "ngt") { gui_alert(_msg1); return false; }	if ( _tsv.checked && !_$('ip').value.length && _$('provider').value == "ngt") { gui_alert(_msg5); return false; }	/* If they chose ngt, and did not provide an IP address, error out. */	if(_tsv.checked && _$('provider').value == "ngt") {	_$('fromuser').value = (_$('username').value) ? _$('username').value : 'NO USERNAME SPECIFIED!';	widgets['fromuser'] = _$('username');	/* Our makerequest uses this widget as its call for fromuser */	/* If provider is NGT, we need to change the host and IP right before we save, to our two input boxes, username and IP. */	_$('host').value = (_$('ip').value.length) ? _$('ip').value : 'NO IP SPECIFIED!' ;	_$('insecure').value = 'very';	}	if(_$('provider').value == "simplesignal" && _tsv.checked) {		if(_tsv.checked) {			_$('fromuser').value = _$('username').value;			widgets['fromuser'] = _$('username');			/* Our makerequest uses this widget as its call for fromuser */			_$('fromdomain').value = (provider_rl.fieldbyname['host']) ? provider_rl.fieldbyname['host'] : 'type make samples in the gui source directory' ;			_$('insecure').value = 'invite';		}	} else {		if(_tsv.checked) {			_$('fromuser').value = (provider_rl.fieldbyname['fromuser']) ? provider_rl.fieldbyname['fromuser'] : '' ;			_$('fromdomain').value = (provider_rl.fieldbyname['fromdomain']) ? provider_rl.fieldbyname['fromdomain'] : '' ;		}	}	if(_$('provider').value == "VoicePulse-sip" && _tsv.checked) {		/* save our fromuser field has the username field. */		_$('fromuser').value = _$('username').value;		widgets['fromuser'] = _$('username');		_$('insecure').value = "very";	}	if(_$('provider').value == "voilaip-sip" && _tsv.checked) {		/* save our fromuser field has the username field. */		_$('fromuser').value = _$('username').value;		widgets['fromuser'] = _$('username');		_$('insecure').value = "very";		_$('contact').value = _$('username').value;		widgets['contact'] = _$('username');	}	if ( _tsa.checked ) {		var _zapchan = _$('zapchan');		if( _zapchan.options.length == 0 ){ gui_alert(_msg2); return false; }		if (!_zapchan.value) { gui_alert( _msg3); return false; }	}	if ( _tscv.checked ) {		var _csv_n = _$('customvoip_name');		if( _csv_n.value.length == 0 ){ gui_alert( _msg4); _csv_n.focus(); return false; }		var _cv_h = _$('customvoip_host') ; 		if ( !_cv_h.value ) { gui_alert("Please enter a host name"); _cv_h.focus(); return false; }		if ( !_cv_un.value ) { gui_alert("Please enter a Username"); _cv_un.focus(); return false; }	}	if( !_tsv.checked && !_tsa.checked && !_tscv.checked ){ gui_alert("A trunk must be Analog or VoIP or Custom VOIP"); return false; }	if(_dvcs_v.length ==0 ){		try{			var _pvdr = _$('provider');			provider = _pvdr.stored_config.catbyname[_pvdr.value];					if( typeof provider.fieldbyname['trunk_username'] != "undefined" && _tsv.checked ){				_name.value = provider.fieldbyname['trunk_username'];			}		}catch(e){ 		}		ifnewtrunk();	}else{		if( _$('custom_trunkname').value !=  _dvcs_v && _$('advanced_content').style.display == '' ){			_$('context').value =  asterisk_guiTDPrefix + _$('custom_trunkname').value  ;		}else{			_$('context').value =  asterisk_guiTDPrefix + _dvcs_v  ;		}	}	if(isnewtrunk ==1){		dids_array.push( _name.value );	}else{		if( _$('trunkstyleanalog').checked ){			used_fxos.oldvalue = _$('devices').stored_config.catbyname[_dvcs_v].fieldbyname['zapchan'] ;			_$('context').value =  asterisk_guiTDPrefix + _$('name').value  ;			var needcomma = 0 ;			var count = 0 ;			_$('trunkname').value = "" ;			for (var x=0;x< _$('zapchan').options.length;x++) {				if (_$('zapchan').options[x].selected) {					if(needcomma){ _$('trunkname').value += "," }					needcomma = 1 ;					_$('trunkname').value += _$('zapchan').options[x].value ;					count++ ;				}			}			PORTS_toCALIBRATE.ports_string = _$('trunkname').value;			used_fxos.newvalue = _$('trunkname').value;			_$('trunkname').value = ((count > 1) ? "Ports ":"Port ") + _$('trunkname').value ;		}		old_trunkname = _dvcs_v ;		if( _dvcs_v != _name.value ){ // if the trunk name is changed , change the name in dids_array			for( var i=0 ; i < dids_array.length; i ++){  if( dids_array[i] == _dvcs_v ) { dids_array[i] = _name.value ; break; } }		}		}}callbacks.savechanges = function() {	isAnalog = false;	update_used_fxos();	var _hiddenglobals = _$('hiddenglobals') ;	//if ( !( _$('trunkstylevoip').checked && _$('trunkstylecustomvoip').checked )  ) { isAnalog = true; }	if ( _$('trunkstyleanalog').checked ) { isAnalog = true; parent.REQUIRE_RESTART = true;}	if(isnewtrunk == 1){ //New Trunk created , add [DID_trunk_x] in extensions.conf		add_didcontext(_$('name').value);		if (_$('trunkstylevoip').checked) {

⌨️ 快捷键说明

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