[prev in list] [next in list] [prev in thread] [next in thread] 

List:       asterisk-gui-commits
Subject:    espiceland: branch 2.0 r5092 - in /branches/2.0/config: ./ js/
From:       SVN commits to the Asterisk-GUI project
Date:       2010-10-14 17:54:14
Message-ID: E1P6S0M-0003a0-B2 () wibble ! digium ! internal
[Download RAW message or body]

Author: espiceland
Date: Thu Oct 14 12:54:11 2010
New Revision: 5092

URL: http://svnview.digium.com/svn/asterisk-gui?view=rev&revP92
Log:
IAX2 security settings added in September 2009 now configurable in IAX Settings.

Modified:
    branches/2.0/config/iax.html
    branches/2.0/config/js/astman.js
    branches/2.0/config/js/iax.js
    branches/2.0/config/js/tooltip.js
    branches/2.0/config/js/users.js
    branches/2.0/config/users.html

Modified: branches/2.0/config/iax.html
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/iax.html?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/iax.html (original)
+++ branches/2.0/config/iax.html Thu Oct 14 12:54:11 2010
@@ -24,7 +24,61 @@
 	<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />

 	<link href="stylesheets/schwing.css" media="all" rel="Stylesheet" type="text/css" \
                />
-	<style type="text/css"></style>
+	<style type="text/css">
+ 	#callNumberLimits div span.callnumber_delete {
+ 		float: right;
+ 		width: 20px;
+ 		background: transparent url("./images/delete_circle.png") no-repeat;
+ 	}
+ 	#callNumberLimits{
+ 		height:120px ;
+ 		background-color:#FFFFFF;
+ 		padding: 5px;
+ 		border-width: 1px;
+ 		border-color: #7E5538;
+ 		border-style: solid;
+ 		cursor: default;
+ 		font: 83%/1.4 arial, helvetica, sans-serif;
+ 		overflow :auto;
+ 	}
+
+ 	#callNumberLimits div {
+ 		clear :both;
+ 		padding : 3px 5px 0px 5px;
+ 		min-height: 20px;
+ 	}
+ 	#callNumberLimits div:hover {
+ 		background-color:#DEDEDE;
+ 	}
+
+ 	#callNumberLimits div span.step_desc {
+ 		float: left;
+ 		/* max-width: 300px; */
+ 		background: transparent;
+ 	}
+ 	#callNumberLimits div span.step_desc:hover{
+ 		background-color:#DEDEDE;
+ 	}
+
+ 	#callNumberLimits div span.step_up {
+ 		float: right;
+ 		width: 20px;
+ 		background: transparent url("./images/asterisk-arrow-up.png") no-repeat;
+ 	}
+
+ 	#callNumberLimits div span.step_down {
+ 		float: right;
+ 		width: 20px;
+ 		background: transparent url("./images/asterisk-arrow-down.png") no-repeat;
+ 	}
+
+ 	#callNumberLimits div span.step_delete {
+ 		float: right;
+ 		width: 20px;
+ 		background: transparent url("./images/delete_circle.png") no-repeat;
+ 	}
+
+	</style>
 </head>
 <body bgcolor="EFEFEF">
 	<div class="iframeTitleBar">
@@ -222,6 +276,49 @@
 				</table>
 			</div>

+ 		<div id='iaxoptions_security' style='display: none;'>
+ 			<table class="field_text" align="center" width="100%" cellpadding=3 \
cellspacing=0 border=0> + 			<tr>
+ 				<td align=right width="50%">Call Token Optional: <img \
src='images/tooltip_info.gif' alt='' class='tooltipinfo' \
tip='en,iax_general,40'></td> + 				<td>&nbsp;<input type='text' size  \
id='calltokenoptional' dfalt='' class="input8" validation='iporrange'></td> + \
</tr> + 			<tr>
+ 				<td align=right  tip="en,iax_general,41"  width="50%">Max Call Numbers:</td>
+ 				<td>&nbsp;<input type='text' size=4 id='maxcallnumbers' dfalt='' \
validation='numeric' class="input8"></td> + 			</tr>
+ 			<tr>
+ 				<td align=right  tooltip="en,iax_general,42"  width="50%">Max Nonvalidated Call \
Numbers:</td> + 				<td>&nbsp;<input type='text' size=4 \
id='maxcallnumbers_nonvalidated' dfalt='' validation='numeric' class="input8"></td> + \
</tr> + 			<tr>
+ 				<td align=right valign=top>Call Number Limits: <img \
src="images/tooltip_info.gif" tip="en,iax_general,43" class='tooltipinfo'></td> + \
<td><div id='callNumberLimits'></div></td> + 			</tr>
+ 			<tr class='form_newCallNumberLimit' >
+ 				<td align=right width="50%"></td>
+ 				<td>
+ 					<span class='guiButton' onclick=" showCallNumberLimitsForm(); "><B>Add Call \
Number Limit</B></span> + 				</td>
+ 			</tr>
+ 			<tr class='form_newCallNumberLimit'>
+ 				<td align=right valign=top></td>
+ 				<td align=left width="50%">IP or IP Range: <img src='images/tooltip_info.gif' \
alt='' class='tooltipinfo' tip='en,iax_general,40'> + 				&nbsp;<input type='text' \
size  id='form_newCallNumberLimit_ip' class="input8" validation='iporrange'></td> + \
</tr> + 			<tr class='form_newCallNumberLimit'>
+ 				<td align=right valign=top></td>
+ 				<td align=left width="50%">Max Call Numbers:
+ 				&nbsp;<input type='text' size=4 id='form_newCallNumberLimit_maxcallnumbers' \
dfalt='512' validation='numeric' class="input8"></td> + 			</tr>
+ 			<tr class='form_newCallNumberLimit'>
+ 				<td align=right width="50%"></td>
+ 				<td>
+ 					<span class='guiButtonCancel' \
onclick='hideCallNumberLimitsForm();'>Cancel</span> + 					<span class='guiButton' \
onclick='pushNewCallNumberLimit();'> &uarr; Add</span> + 				</td>
+ 			</tr>
+ 			</table>
+ 		</div>

 			<div style='margin-top:15px; width:100%; text-align:center;'>
 				<span class='guiButtonCancel' onclick='window.location.reload();' \
style='margin-left:10px'>Cancel</span> @@ -232,7 +329,9 @@

 	</center>
 	<script src="js/jquery.js"></script>
+ 	<script src="js/jquery.tooltip.js"></script>
 	<script src="js/astman.js"></script>
 	<script src="js/iax.js"></script>
+ 	<script type='text/javascript'>hideCallNumberLimitsForm();</script>
 </body>
 </html>

Modified: branches/2.0/config/js/astman.js
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/js/astman.js?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/js/astman.js (original)
+++ branches/2.0/config/js/astman.js Thu Oct 14 12:54:11 2010
@@ -58,6 +58,9 @@
 		return this.indexOfLike(str) != -1;
 	};

+	/* This cannot be used if you need to return from the calling
+	function early. The return statement will return from this
+	anonymous function instead. */
 	Array.prototype.each = function(iterator) {
 		for(var i=0 , j = this.length; i < j ; i++ ){
 			iterator(this[i] , i);
@@ -2065,6 +2068,7 @@
 			}
 		};
 		var el;
+		top.log.debug("flds is " + flds);
 		for (var i=0; i < flds.length ; i++ ) {
 			el = flds[i] ;
 			if ( typeof el == 'string'){ el = _$(el) ; }
@@ -2658,6 +2662,16 @@
 						return false;
 					}
 					break;
+				case 'iporrange':
+					var fb_msg = (this_field_name) ? this_field_name + ' does not contain a valid \
IP address or IP range.' : 'The IP address field does not contain a valid IP address \
or IP range.' ; +					var pieces = x.split("/");
+					for (var j = 0; j < pieces.length; j++){
+						if ( !(/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/.test(pieces[j])) ){
+							ASTGUI.highlightField( field, fb_msg );
+							return false;
+						}
+					}
+					break;
 				default:
 					break;
 			}

Modified: branches/2.0/config/js/iax.js
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/js/iax.js?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/js/iax.js (original)
+++ branches/2.0/config/js/iax.js Thu Oct 14 12:54:11 2010
@@ -21,7 +21,8 @@
 //Realtime :  'rtcachefriends', 'rtignoreexpire', 'rtupdate', 'rtautoclear'
 // CDR: amaflags, accountcode

-var fieldnames = [ 'adsi', 'authdebug', 'autokill', 'bandwidth', 'bindaddr', \
'bindport', 'codecpriority', 'delayreject', 'dropcount', 'forcejitterbuffer', \
'iaxcompat', 'iaxmaxthreadcount', 'iaxthreadcount', 'jitterbuffer', \
'jittershrinkrate', 'language', 'maxexcessbuffer', 'maxjitterbuffer', \
'maxjitterinterps', 'maxregexpire', 'minexcessbuffer', 'minregexpire', \
'mohinterpret', 'mohsuggest', 'nochecksums','resyncthreshold', 'tos', 'trunkfreq', \
'trunktimestamps' ]; +var fieldnames = [ 'adsi', 'authdebug', 'autokill', \
'bandwidth', 'bindaddr', 'bindport', 'codecpriority', 'delayreject', 'dropcount', \
'forcejitterbuffer', 'iaxcompat', 'iaxmaxthreadcount', 'iaxthreadcount', \
'jitterbuffer', 'jittershrinkrate', 'language', 'maxexcessbuffer', 'maxjitterbuffer', \
'maxjitterinterps', 'maxregexpire', 'minexcessbuffer', 'minregexpire', \
'mohinterpret', 'mohsuggest', 'nochecksums','resyncthreshold', 'tos', 'trunkfreq', \
'trunktimestamps', 'calltokenoptional', 'maxcallnumbers', \
'maxcallnumbers_nonvalidated']; +var callNumberLimitsList = [];

 var localajaxinit = function(){
 	top.document.title = 'global IAX settings' ;
@@ -33,6 +34,7 @@
 			$('#iaxoptions_trunkregistration').hide() ;
 			//$('#iaxoptions_realtime').hide() ;
 			$('#iaxoptions_Codecs').hide() ;
+			$('#iaxoptions_security').hide() ;
 		};

 		var t = [
@@ -41,12 +43,12 @@
 			{url:'#', desc:'Jitter Buffer', click_function: function(){ hideall(); \
$('#iaxoptions_jitterBuffer').show();} },  {url:'#', desc:'Registration', \
click_function: function(){ hideall(); $('#iaxoptions_trunkregistration').show(); } \
},  //{url:'#', desc:'Realtime', click_function: function(){ hideall(); \
                $('#iaxoptions_realtime').show(); } },
-			{url:'#', desc:'Codecs', click_function: function(){ hideall(); \
$('#iaxoptions_Codecs').show(); } } +			{url:'#', desc:'Codecs', click_function: \
function(){ hideall(); $('#iaxoptions_Codecs').show(); } }, +			{url:'#', \
desc:'Security', click_function: function(){ hideall(); \
$('#iaxoptions_security').show(); } }  ];
 		ASTGUI.tabbedOptions( _$('tabbedMenu') , t );
 		$('#tabbedMenu').find('A:eq(0)').click();
 	})();
-

 	var c = context2json({ filename:'iax.conf' , context : 'general' , usf:1 });
 	var AU = ASTGUI.updateFieldToValue ; // temporarily cache function
@@ -54,6 +56,14 @@
 		var val = ( c[fld] ) ? c[fld] : '';
 		AU(fld,val) ;
 	});
+
+	var d = context2json({ filename:'iax.conf' , context : 'callnumberlimits' , usf:0 \
}); +	if(d){
+		d.each( function(fld){
+			pushNewCallNumberLimit(fld);
+		});
+	}
+
 	var disallowed = false;
 	var real_codecs;
 	ASTGUI.CODECSLIST.populateCodecsList(_$('allow'));
@@ -77,18 +87,33 @@
 	};
 	var skip_ifempty = ['register', 'localnet', 'externhost', 'externip'];
 	var x = new listOfActions('iax.conf');
-	var AG = ASTGUI.getFieldValue;
-	fieldnames.each( function(fld){
-		var val = AG(fld).trim();
+ 	/* Can't use fieldnames.each here because the return statement
+ 	would return from the anonymous function passed to the iterator,
+ 	not saveChanges(). */
+ 	for(var i = 0; i < fieldnames.length ; i++){
+ 		var fld = fieldnames[i];
+ 		var val = ASTGUI.getFieldValue(fld).trim();
 		if (val == "") {
 			if (skip_ifempty.contains(fld)) {
 				return;
 			}
 			x.new_action('delete', cat , fld , '') ;
-		}else{
+		} else {
+ 			if (!ASTGUI.validateFields([fld])) { return; }
 			x.new_action('update', cat , fld , val) ;
 		}
-	});
+ 	}
+
+ 	x.new_action('delcat', 'callnumberlimits', '', '');
+ 	if (callNumberLimitsList.length >= 0){
+ 		x.new_action('newcat', 'callnumberlimits', '', '')
+ 	}
+
+ 	callNumberLimitsList.each( function(eachOne){
+ 		var pieces = eachOne.split('=');
+ 		x.new_action('append', 'callnumberlimits' , pieces[0], pieces[1]) ;
+ 	});
+
 	x.new_action('delete', cat , 'disallow', '' ) ;
 	x.new_action('delete', cat , 'allow', '' ) ;
 	x.new_action('append', cat , 'disallow', 'all' ) ;
@@ -96,4 +121,71 @@

 	parent.ASTGUI.dialog.waitWhile(' Saving ...');
 	setTimeout( function(){ x.callActions(after) ; } , 300 );
+	hideCallNumberLimitsForm();
 }
+
+var showCallNumberLimitsForm = function(){
+	ASTGUI.updateFieldToValue('form_newCallNumberLimit_ip', '');
+	ASTGUI.updateFieldToValue('form_newCallNumberLimit_maxcallnumbers', '');
+	$('.form_newCallNumberLimit').show();
+	$($('.form_newCallNumberLimit')[0]).hide();
+}
+
+var hideCallNumberLimitsForm = function(){
+	$('.form_newCallNumberLimit').hide();
+	$($('.form_newCallNumberLimit')[0]).show();
+}
+
+var pushNewCallNumberLimit = function(limit_str){
+	if(limit_str){
+		var p = limit_str.split("=");
+		var new_ip = p[0];
+		var new_maxcallnumbers = p[1];
+	}else{
+		var new_ip = ASTGUI.getFieldValue( 'form_newCallNumberLimit_ip' );
+		var new_maxcallnumbers = ASTGUI.getFieldValue( \
'form_newCallNumberLimit_maxcallnumbers' ); +	}
+	var tmp_pieces = new_ip.split("/");
+	if (!limit_str && !ASTGUI.validateFields(['form_newCallNumberLimit_ip'])){
+		return;
+	} else if (!callNumberLimitsList.contains(new_ip + "=" + new_maxcallnumbers)){
+		callNumberLimitsList.push(new_ip + "=" + new_maxcallnumbers);
+		clearCallNumberLimitsForm();
+		refreshCallNumberLimitsList();
+	}
+}
+
+var deleteCallNumber = function(indexno){
+	callNumberLimitsList.splice(indexno, 1);
+	refreshCallNumberLimitsList();
+}
+
+var clearCallNumberLimitsForm = function(){
+		ASTGUI.updateFieldToValue('form_newCallNumberLimit_ip', '');
+		ASTGUI.updateFieldToValue('form_newCallNumberLimit_maxcallnumbers', '');
+}
+
+var refreshCallNumberLimitsList = function(){
+	ASTGUI.domActions.removeAllChilds( 'callNumberLimits');
+
+	for (var i = 0; i < callNumberLimitsList.length; i++){
+		var pieces = callNumberLimitsList[i].split("=");
+
+		var row_div = document.createElement('div');
+		row_div.id = callNumberLimitsList[i];
+		row_div.innerHTML = pieces[0] + " = " + pieces[1];
+
+		var sp_delete = document.createElement('span');
+		sp_delete.className = 'callnumber_delete';
+		sp_delete.innerHTML = '&nbsp;';
+		sp_delete.id = "callNumberLimit" + i;
+		row_div.appendChild(sp_delete);
+
+		_$('callNumberLimits').appendChild(row_div);
+		$('#callNumberLimit' + i).click(function(e){
+			deleteCallNumber($(this).attr('id').substr(15));
+		});
+	}
+
+}
+

Modified: branches/2.0/config/js/tooltip.js
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/js/tooltip.js?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/js/tooltip.js (original)
+++ branches/2.0/config/js/tooltip.js Thu Oct 14 12:54:11 2010
@@ -66,6 +66,7 @@
 	tooltips['users'] .en[30] = "<B>Flash</B> sets the amount of time, in milliseconds, \
that must have passed since the last hook-flash event received by asterisk before it \
will recognize a second event.  If a second event occurs in less time than defined \
for Flash, then asterisk will ignore the event.  The default value of Flash is 750 \
ms, and it can be configured in 1ms increments." ;

 	tooltips['users'] .en[31] = "<B>RXFlash</B> sets the amount of time, in \
milliseconds, that the hook-flash must remain depressed in order for asterisk to \
consider such an event a valid flash event.  The default value of RXFlash is 1250ms \
and it can be configured in 1ms increments." ; +	tooltips['users'] .en[32] = \
"<B>Require Call Token:</B> Enable or disable requiring call token.  Default is \
'yes'. Using 'auto' may lock out users who depend on backward compatibility when peer \
authentication credentials are shared between physical endpoints.";

 	tooltips['users'] .en[94] = "Line Keys is the number of lines that are tied to this \
SIP registration.";

@@ -275,6 +276,9 @@
 	tooltips['iax_general'].en[36] = "<B>Ignore Expired Peers:</B> if the peers ip \
registration is expired use the ip information  if available.";  \
tooltips['iax_general'].en[37] = "<B>Disallowed Codecs:</B> set default disallow \
codecs to the following";  tooltips['iax_general'].en[38] = "<B>Allowed Codecs:</B> \
set allowed codecs to the following."; +	tooltips['iax_general'].en[40] = "A single \
IP address or a range of IP addresses for which call token validation is not required \
in the form \"11.11.11.11\" or \"11.11.11.11/22.22.22.22\"."; \
+	tooltips['iax_general'].en[41] = "<B>Max Call Numbers:</B> Limits the amount of \
call numbers allowed for a single IP address."; +	tooltips['iax_general'].en[42] = \
"<B>Max Nonvalidated Call Numbers:</B> Limits the amount of nonvalidated call numbers \
for all IP addresses combined.";


 	// Tooltips for Options (options)

Modified: branches/2.0/config/js/users.js
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/js/users.js?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/js/users.js (original)
+++ branches/2.0/config/js/users.js Thu Oct 14 12:54:11 2010
@@ -21,7 +21,7 @@
 var isNewUSER;
 var EXTENSION_EDIT;
 var zapchan_Before = '';
-var MULTI_FIELDS = ['edit_check_multiple_obcid','edit_multiple_obcid','edit_check_mul \
tiple_dialplan','edit_multiple_dialplan','edit_check_multiple_hasvoicemail','edit_multiple_hasvoicemail','edit_check_multiple_vmsecret', \
'edit_multiple_vmCHoice1', 'edit_multiple_vmCHoice2', 'edit_multiple_vmsecret', \
'edit_check_multiple_hassip', 'edit_multiple_hassip', 'edit_check_multiple_hasiax', \
'edit_multiple_hasiax', 'edit_check_multiple_allow',  'edit_multiple_codec_one', \
'edit_multiple_codec_two', 'edit_multiple_codec_three', 'edit_multiple_codec_fourth', \
'edit_multiple_codec_fifth', 'edit_check_multiple_flashrxflash',  \
'edit_multiple_flash', 'edit_multiple_rxflash', 'edit_check_multiple_secret', \
'edit_multiple_seCHoice1', 'edit_multiple_seCHoice2', 'edit_multiple_secret', \
'edit_check_multiple_nat',  'edit_multiple_nat', 'edit_check_multiple_canreinvite', \
'edit_multiple_canreinvite', 'edit_check_multiple_dtmfmode',  \
'edit_multiple_dtmfmode', 'edit_check_multiple_insecure',  'edit_multiple_insecure', \
'edit_check_multiple_3waycalling',  'edit_multiple_3waycalling', \
'edit_check_multiple_indirectory',  'edit_multiple_indirectory', \
'edit_check_multiple_callwaiting',  'edit_multiple_callwaiting', \
'edit_check_multiple_cti',  'edit_multiple_cti', 'edit_check_multiple_isagent',  \
'edit_multiple_isagent', 'edit_check_multiple_pickupgroup',  \
'edit_multiple_pickupgroup']; +var MULTI_FIELDS = \
['edit_check_multiple_obcid','edit_multiple_obcid','edit_check_multiple_dialplan','edi \
t_multiple_dialplan','edit_check_multiple_hasvoicemail','edit_multiple_hasvoicemail','edit_check_multiple_vmsecret', \
'edit_multiple_vmCHoice1', 'edit_multiple_vmCHoice2', 'edit_multiple_vmsecret', \
'edit_check_multiple_hassip', 'edit_multiple_hassip', 'edit_check_multiple_hasiax', \
'edit_multiple_hasiax', 'edit_check_multiple_allow',  'edit_multiple_codec_one', \
'edit_multiple_codec_two', 'edit_multiple_codec_three', 'edit_multiple_codec_fourth', \
'edit_multiple_codec_fifth', 'edit_check_multiple_flashrxflash',  \
'edit_multiple_flash', 'edit_multiple_rxflash', 'edit_check_multiple_secret', \
'edit_check_multiple_iax', 'edit_multiple_seCHoice1', 'edit_multiple_seCHoice2', \
'edit_multiple_secret', 'edit_check_multiple_nat',  'edit_multiple_nat', \
'edit_check_multiple_canreinvite', 'edit_multiple_canreinvite', \
'edit_check_multiple_dtmfmode',  'edit_multiple_dtmfmode', \
'edit_check_multiple_insecure',  'edit_multiple_insecure', \
'edit_check_multiple_3waycalling',  'edit_multiple_3waycalling', \
'edit_check_multiple_indirectory',  'edit_multiple_indirectory', \
'edit_check_multiple_callwaiting',  'edit_multiple_callwaiting', \
'edit_check_multiple_cti',  'edit_multiple_cti', 'edit_check_multiple_isagent',  \
'edit_multiple_isagent', 'edit_check_multiple_pickupgroup',  \
'edit_multiple_pickupgroup', 'edit_multiple_requirecalltoken', \
'edit_multiple_maxcallnumbers'];

 var show_UserEdit_normal = function(){ // show_UserEdit_normal();
 	$('#edit_User_Advanced_DIV').hideWithBg();
@@ -111,7 +111,8 @@
 	ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_hasiax' , [ \
'edit_multiple_hasiax' ] );  ASTGUI.domActions.enableDisableByCheckBox( \
'edit_check_multiple_allow' , [ 'edit_multiple_codec_one', 'edit_multiple_codec_two', \
'edit_multiple_codec_three' , 'edit_multiple_codec_fourth' , \
'edit_multiple_codec_fifth'  ] );  ASTGUI.domActions.enableDisableByCheckBox( \
'edit_check_multiple_flashrxflash' , [ 'edit_multiple_flash', 'edit_multiple_rxflash' \
                ] );
-	ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_secret' , [ \
'edit_multiple_seCHoice1', 'edit_multiple_seCHoice2', 'edit_multiple_secret'  ] ); \
+	ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_secret' , [ \
'edit_multiple_seCHoice1', 'edit_multiple_seCHoice2', 'edit_multiple_secret' ] ); \
+	ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_iax' , [ \
'edit_multiple_requirecalltoken' ,'edit_multiple_maxcallnumbers' ] );  \
ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_nat' , [ \
'edit_multiple_nat' ] );  ASTGUI.domActions.enableDisableByCheckBox( \
'edit_check_multiple_canreinvite' , [ 'edit_multiple_canreinvite' ] );  \
ASTGUI.domActions.enableDisableByCheckBox( 'edit_check_multiple_dtmfmode' , [ \
'edit_multiple_dtmfmode' ] ); @@ -193,7 +194,7 @@
 };

 var RESET_USER_FORM_FIELDS = function(){ // RESET_USER_FORM_FIELDS();
-	ASTGUI.resetTheseFields( \
['new_ext','edit_fullname','edit_user_dialplan','edit_OutBoundCallerid','edit_hasvoice \
mail','edit_vmsecret','edit_email','edit_hasSip','edit_hasIax','edit_fxs','edit_flash' \
,'edit_rxflash','codec_one','codec_two','codec_three','codec_fourth','codec_fifth','ma \
caddress','linenumber','edit_secret','edit_nat','edit_canreinvite','edit_dtmfmode','edit_insecure', \
'edit_mwifrom', 'edit_3wayCalling','edit_inDirectory','edit_callWaiting','edit_cti','edit_isagent','edit_pickupgroup','edit_linekeys'] \
); +	ASTGUI.resetTheseFields( \
['new_ext','edit_fullname','edit_user_dialplan','edit_OutBoundCallerid','edit_hasvoice \
mail','edit_vmsecret','edit_email','edit_hasSip','edit_hasIax','edit_fxs','edit_flash' \
,'edit_rxflash','codec_one','codec_two','codec_three','codec_fourth','codec_fifth','ma \
caddress','linenumber','edit_secret','edit_nat','edit_canreinvite','edit_dtmfmode','edit_insecure', \
'edit_mwifrom', 'edit_3wayCalling','edit_inDirectory','edit_callWaiting','edit_cti','edit_isagent','edit_pickupgroup','edit_linekeys','edit_maxcallnumbers' \
,'edit_requirecalltoken'] );  _$('edit_fxs').selectedIndex = 0; \
_$('codec_one').selectedIndex = 0; _$('codec_two').selectedIndex = 0; \
_$('codec_three').selectedIndex = 0; _$('codec_fourth').selectedIndex = 0;  \
_$('codec_fifth').selectedIndex = 0; _$('linenumber').selectedIndex = 0; \
_$('edit_pickupgroup').selectedIndex = 0;

@@ -257,6 +258,8 @@
 		ASTGUI.updateFieldToValue( 'edit_cti', uinfo.getProperty('hasmanager') );
 		ASTGUI.updateFieldToValue( 'edit_isagent', uinfo.getProperty('hasagent') );
 		ASTGUI.updateFieldToValue( 'edit_pickupgroup', uinfo.getProperty('pickupgroup') );
+		ASTGUI.updateFieldToValue( 'edit_maxcallnumbers', \
uinfo.getProperty('maxcallnumbers') ); +		ASTGUI.updateFieldToValue( \
'edit_requirecalltoken', uinfo.getProperty('requirecalltoken') );  zapchan_Before = \
uinfo.getProperty(top.sessionData.DahdiChannelString);  }else{
 			_$('new_ext').disabled = false;
@@ -400,6 +403,9 @@
 var SAVE_USER_FORM = function(){ // SAVE_USER_FORM();
 	if ( !ASTGUI.checkRequiredFields(['new_ext']) ) return ;
 	if ( !ASTGUI.validateFields(['new_ext'] ) ) return ;
+	if ( $('edit_maxcallnumbers').attr('value') && \
!ASTGUI.validateFields(['edit_maxcallnumbers'] ) ){ +		return;
+	}

 	if ( !ASTGUI.getFieldValue('edit_hasSip').isAstTrue() && \
ASTGUI.getFieldValue('edit_fxs') && !ASTGUI.getFieldValue('macaddress') ){  \
ASTGUI.updateFieldToValue( 'macaddress',  ASTGUI.getFieldValue('new_ext') ); @@ \
-494,6 +500,16 @@  x.new_action('update', u, 'mwi_from', \
ASTGUI.getFieldValue('edit_mwifrom') );	tmp_obj['mwi_from'] = \
ASTGUI.getFieldValue('edit_mwifrom') ;  }
 		x.new_action('update', u, 'pickupgroup', 	ASTGUI.getFieldValue('edit_pickupgroup') \
);	tmp_obj['pickupgroup'] = ASTGUI.getFieldValue('edit_pickupgroup') ; +		if \
(ASTGUI.getFieldValue('edit_requirecalltoken') == ''){ +			x.new_action('delete', u, \
'requirecalltoken','');	tmp_obj['requirecalltoken'] = ''; +		} else {
+			x.new_action('update', u, \
'requirecalltoken',	ASTGUI.getFieldValue('edit_requirecalltoken') \
);	tmp_obj['requirecalltoken'] = ASTGUI.getFieldValue('edit_requirecalltoken') ; +		}
+		if(ASTGUI.getFieldValue('edit_maxcallnumbers') ){
+			x.new_action('update', u, 'maxcallnumbers', \
ASTGUI.getFieldValue('edit_maxcallnumbers') );	tmp_obj['maxcallnumbers'] = \
ASTGUI.getFieldValue('edit_maxcallnumbers') ; +		}else{
+			x.new_action('delete', u, 'maxcallnumbers', '');	tmp_obj['maxcallnumbers'] = '';
+		}

 		var tmp_cl = parent.sessionData.pbxinfo.users[u].getProperty('call-limit') ;
 		if( !tmp_cl ){
@@ -629,8 +645,30 @@
 			tmp_obj['rxflash'] = ASTGUI.getFieldValue('edit_multiple_rxflash') ;
 		}
 		if( _$('edit_check_multiple_secret').checked ){
-			x.new_action('update', u, 'secret',  ASTGUI.getFieldValue('edit_multiple_secret') \
                );
-			tmp_obj['secret'] = ASTGUI.getFieldValue('edit_multiple_secret') ;
+			if(ASTGUI.getFieldValue('edit_multiple_seCHoice1') == 'on'){
+				x.new_action('update', u, 'secret',  \
ASTGUI.getFieldValue('edit_multiple_secret') ); +				tmp_obj['secret'] = \
ASTGUI.getFieldValue('edit_multiple_secret') ; +			}else \
if(ASTGUI.getFieldValue('edit_multiple_seCHoice2') == 'on'){ \
+				x.new_action('update', u, 'secret',  '' ); +				tmp_obj['secret'] = '' ;
+			}
+		}
+		if( _$('edit_check_multiple_iax').checked ){
+			if ( ASTGUI.getFieldValue('edit_multiple_maxcallnumbers') ){
+				if ( !ASTGUI.validateFields(['edit_multiple_maxcallnumbers'] ) ){
+					return;
+				}else{
+					x.new_action('update', u, 'maxcallnumbers',  \
ASTGUI.getFieldValue('edit_multiple_maxcallnumbers') ); \
+					tmp_obj['maxcallnumbers'] = \
ASTGUI.getFieldValue('edit_multiple_maxcallnumbers') ; +				}
+			}else{
+					x.new_action('delete', u, 'maxcallnumbers', '' );
+					tmp_obj['maxcallnumbers'] = '';
+			}
+			if( ASTGUI.getFieldValue('edit_multiple_requirecalltoken') != ''){
+				x.new_action('update', u, 'requirecalltoken',  \
ASTGUI.getFieldValue('edit_multiple_requirecalltoken') ); \
+				tmp_obj['requirecalltoken'] = \
ASTGUI.getFieldValue('edit_multiple_requirecalltoken') ; +			}
 		}
 		if( _$('edit_check_multiple_nat').checked ){
 			x.new_action('update', u, 'nat',  ASTGUI.getFieldValue('edit_multiple_nat') );

Modified: branches/2.0/config/users.html
URL: http://svnview.digium.com/svn/asterisk-gui/branches/2.0/config/users.html?view=diff&revP92&r1P91&r2P92
 =============================================================================--- \
                branches/2.0/config/users.html (original)
+++ branches/2.0/config/users.html Thu Oct 14 12:54:11 2010
@@ -223,12 +223,34 @@
 									<option value='6'>6</option>
 								</select>
 								<img src="images/tooltip_info.gif" tip="en,users,94" class='tooltipinfo'>
+							</TD>
+						</TR>
+						<TR>
+							<TD>

 								SIP/IAX Password: <input id="edit_secret" size=6>
 								<img src="images/tooltip_info.gif" tip="en,users,2" class='tooltipinfo'>
-							</TD>
-						</TR>
-						<TR>	<TD>
+
+ 							IAX: Require Call Token: <img src="images/tooltip_info.gif" \
tip="en,users,32" class='tooltipinfo'> + 							<select id="edit_requirecalltoken" \
dfalt=""> + 								<option value=''></option>
+ 								<option value='yes'>yes</option>
+ 								<option value='no'>no</option>
+ 								<option value='auto'>auto</option>
+ 							</select>
+							</TD>
+						</TR>
+						<TR>
+							<TD>
+ 					<TR>
+ 						<TD>
+
+ 							IAX: Max Call Numbers: <img src="images/tooltip_info.gif" \
tip="en,iax_general,42" class='tooltipinfo'> + 							<input type='text' size=4 \
id='edit_maxcallnumbers' dfalt='' validation='numeric' class="input8"> + 						</TD>
+ 					</TR>
+ 					<TR>
+ 						<TD>
 								NAT: <input type='checkbox' id='edit_nat' dfalt='yes'> <img \
                src="images/tooltip_info.gif" tip="en,users,22" class='tooltipinfo'>
 								Can Reinvite: <input type='checkbox' id='edit_canreinvite'> <img \
src="images/tooltip_info.gif" tip="en,users,21" class='tooltipinfo'>

@@ -380,8 +402,27 @@
 				<TD><input type=checkbox id='edit_check_multiple_secret'></TD>
 				<TD>
 					SIP/IAX Password: <img src="images/tooltip_info.gif" tip="en,users,2" \
                class='tooltipinfo'>
-					<BR>	<input type=radio id='edit_multiple_seCHoice1' \
name='edit_multiple_seCHoice'> Use <input id="edit_multiple_secret" size=4> for all \
                users<BR>
-							<input type=radio id='edit_multiple_seCHoice2' name='edit_multiple_seCHoice'> \
Use Extension as Password + 				<BR>	<input type=radio id='edit_multiple_seCHoice1' \
name='edit_multiple_seCHoice'> Use <input id="edit_multiple_secret" size=4> for all \
users + 						<input type=radio id='edit_multiple_seCHoice2' \
name='edit_multiple_seCHoice'> Use Extension as Password + 						</TD>
+ 					</TR>
+				<TR>
+					<TD></TD>
+					<TD><strong>IAX Security Settings:</strong></TD>
+				</TR>
+ 					<TR>
+					<TD><input type=checkbox id='edit_check_multiple_iax'></TD>
+ 						<TD>
+ 							IAX: Require Call Token: <img src="images/tooltip_info.gif" \
tip="en,users,32" class='tooltipinfo'> + 							<select \
id="edit_multiple_requirecalltoken" dfalt=''> + 								<option value=''></option>
+ 								<option value='yes'>yes</option>
+ 								<option value='no'>no</option>
+ 								<option value='auto'>auto</option>
+ 							</select>
+							<br>
+ 							IAX: Max Call Numbers: <img src="images/tooltip_info.gif" \
tip="en,iax_general,42" class='tooltipinfo'> + 							<input type='text' size=4 \
id='edit_multiple_maxcallnumbers' dfalt='' validation='numeric' class="input8">  \
</TD>  </TR>



--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-gui-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-gui-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic