📄 incoming.html.svn-base
字号:
if (ir == "allunmatched" ){ var newpattern = "_X." ; if(provname == "bandwidth") { var newpattern = "_+X." ; } else { var newpattern = "_X." ; } var temp_provider = fpv.value; var temp_priority = "1"; var temp_action = te.value; var new_exten = newpattern + "," + temp_priority + "," + temp_action; var new_exten2_0 = sbcid_1; var new_exten2_1 = sbcid_2; var new_exten2_2 = "s,3," + temp_action; var uri = build_action('append', 0, temp_provider ,"exten", new_exten); uri += build_action('append', 1, temp_provider ,"exten", new_exten2_0); uri += build_action('append', 2, temp_provider ,"exten", new_exten2_1); uri += build_action('append', 3, temp_provider ,"exten", new_exten2_2); }else{ /* If our provider is bandwidth.com, take off the leading underscore(_) */ if(provname == "bandwidth" && fp.value.indexOf('_') == 0 ) { var newpattern = fp.value.substring(1) ; } else { var newpattern = fp.value ; } var temp_provider = fpv.value ; var temp_action = te.value; var temp_priority = "1"; var pnp = newpattern; if(provname == "bandwidth") { /* Since its bandwidth.com, we are going to add a GOTO to match the +number bandwidth.com is sending. */ /* For example, they will send +2564286000 and we need to match 2564286000, so we goto that extension, instead of the one with the plus */ if( pnp.indexOf('+') !=0 ) { pnp = '+' + pnp; }else{ newpattern=newpattern.substr(1); } } var new_exten = newpattern + "," + temp_priority + "," + temp_action; var uri = build_action('append', 0, temp_provider ,"exten", new_exten ); if(provname == "bandwidth") { var new_exten2 = pnp + "," + temp_priority + "," + 'Goto(${EXTEN:1}|1)'; uri += build_action('append', 1, temp_provider,"exten", new_exten2); } } // check whether there is an existing entry with this pattern if( typeof didtrunks[temp_provider][newpattern] != "undefined" ){ gui_feedback("An incoming call rule is already defined <BR> on this trunk for the selcted pattern !! "); return false; } makerequest('u','extensions.conf', uri, function(t){ didtrunks[temp_provider][newpattern] = new Object(); // add this to the global 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'; gui_feedback("Added Incoming Rule",'blue'); } );}function update_incomingrule(){ // field validation var ir = _$('incomingrule').value ; var fp = _$('frompattern') ; var te = _$('toextension') ; if( ir == "frompattern" && fp.value == "" ){ gui_feedback("Please define an incoming call pattern !"); fp.focus(); fp.select(); return false; } if( didtrunks[_$('fromprovider').value].isanalog =='yes' && ir != 'allunmatched' ){ gui_feedback("You can not define a custom pattern for Analog trunks!"); _$('incomingrule').focus(); return false; } if( te.selectedIndex == -1 ){ gui_feedback("Please select an extension to which<BR> an incoming call should be routed to !"); te.focus(); return false; } if( ir == "frompattern" && fp.value.substr(0,1) != "_" ){ fp.value = "_" + fp.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 = te.value; 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(didtrunks[edit_DIDtrunk].provname == "bandwidth"){ var tmp_old_string2_bw = "+" + edit_pattern + "," + edit_priority + "," + 'Goto(${EXTEN:1}|1)'; uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", tmp_old_string2_bw); p++; } if(edit_pattern == "_X." || edit_pattern == "_+X."){ var tmp2_old_string = "s,3," + edit_action ; uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", sbcid_1); p++; uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", sbcid_2); p++; uri += build_action('delete', p, edit_DIDtrunk ,"exten", "", tmp2_old_string); p++; } if ( ir == "allunmatched" ){ var temp_provider = _$('fromprovider').value ; var newpattern = (didtrunks[temp_provider].provname == "bandwidth")? "_+X.":"_X."; var new_exten = newpattern + "," + temp_priority + "," + temp_action; var new_exten2_0 = sbcid_1; var new_exten2_1 = sbcid_2; var new_exten2_2 = "s,3," + temp_action; uri += build_action('append', p , temp_provider ,"exten", new_exten ); p++ ; uri += build_action('append', p , temp_provider ,"exten", new_exten2_0 ); p++ ; uri += build_action('append', p , temp_provider ,"exten", new_exten2_1 ); p++ ; uri += build_action('append', p , temp_provider ,"exten", new_exten2_2 ); p++ ; }else{ if( didtrunks[temp_provider].provname == "bandwidth" && fp.value.indexOf('_') == 0 ) { var newpattern = fp.value.substring(1) ; } else { var newpattern = fp.value ; } var pnp = newpattern; if(didtrunks[temp_provider].provname == "bandwidth" ) { if( pnp.indexOf('+') !=0 ) { pnp = '+' + pnp; }else{ newpattern=newpattern.substr(1); } } var new_exten = newpattern + "," + temp_priority + "," + temp_action ; uri += build_action( 'append', p , temp_provider ,"exten", new_exten ) ; p++ ; if( didtrunks[temp_provider].provname == "bandwidth" ) { var new_exten2 = pnp + "," + temp_priority + "," + 'Goto(${EXTEN:1}|1)'; uri += build_action('append', p, temp_provider,"exten", new_exten2); p++; } } if( typeof didtrunks[temp_provider][newpattern] != "undefined" && ( temp_provider != edit_DIDtrunk || newpattern != edit_pattern ) ){ gui_feedback("An incoming call rule is already defined <BR> on this trunk for the selcted pattern !! "); return false; } // delete old entry and add new entry makerequest('u','extensions.conf', uri, 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(); gui_feedback("Updated Incoming Rule",'blue'); } );}function checksave(k){ var ir = _$('incomingrule').value ; var fpv = _$('fromprovider').value ; if( old_incomingrule == ir && old_fromprovider == fpv ){ return true; } if( ir == "frompattern" ){ _$('thatmatch').style.display = "" ; if(k.id=="incomingrule"){ _$('frompattern').focus(); _$('frompattern').select(); } }else{ _$('thatmatch').style.display = "none" ; } _$('save_a').disabled = false; old_incomingrule = ir ; old_fromprovider = fpv ;}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 var provname = didtrunks[b].provname; if( !confirm("Are you sure you want to delete this Incoming Calling Rule?") ){ return true; } if(provname == "bandwidth") { var tmp_match = a+","+d+","+c ; /* Lets take off the leading _ if its bandwidth.com */ } else { var tmp_match = a+","+d+","+c ; } var p=0; var uri = build_action('delete', p, b, "exten" ,"", tmp_match); p++; if(provname == "bandwidth") { uri += build_action('delete',p,b, "exten", "", '+' + String(a) + ',1,Goto(${EXTEN:1}|1)'); p++; } if( a == "_X." || a == "_+X." ){ var tmp2_match = "s,3," + c ; uri += build_action('delete',p,b,"exten","", sbcid_1); p++; uri += build_action('delete',p,b,"exten","", sbcid_2); p++; uri += build_action('delete',p,b,"exten","", tmp2_match); p++; } makerequest('u','extensions.conf', uri, function(t){ delete didtrunks[b][a]; refreshtable(); gui_feedback("Deleted 'Incoming Rule'",'default'); } );}function localajaxinit() { ASTGUI.events.add(document, 'mouseover', show_tooltip); showdiv_statusmessage(); setWindowTitle("Incoming Calls"); parent.astmanEngine.config2list("users.conf", _$('users'), new Array(), user_callbacks);}function free_mem( ){ if( navigator.userAgent.indexOf("MSIE") == -1 ){ return true; } try{ purge( document.body ); }catch(e){ }}</script><body id="foo" onload="localajaxinit()" bgcolor="EFEFEF" onunload="free_mem()"><div class="mainscreenTitleBar"> <span style="margin-left: 4px;font-weight:bold;">Incoming Calls</span> <span style="cursor: pointer; cursor: hand;" onclick="window.location.href=window.location.href;" > <img src="images/refresh.png" title=" Refresh " border=0 > </span></div><div class="mainscreenContentBox" id="mailboxcontent"> <select id="extensions" style="display:none"></select> <select id="users" style="display:none"></select> <BR> <CENTER><font size="+1">Incoming Call Rules</font></CENTER> <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:250px;width=100%; overflow :auto; padding : 0px 0px 0px 0px;"> <table id="callingRulesTable" cellpadding=2 cellspacing=1 border=0 align=center width=500></table> </div> <center><input type="button" id="adddid" value="Add an Incoming Rule" onclick="add_incomingrule();" tip="en,incoming,0"></center> <div id="userscontent" STYLE="display:none; position: absolute; left: 20; top: 40; 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="ASTGUI.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" tip="en,incoming,1">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();"> <input type="button" id="cancel_a" value="Cancel" onclick="$('userscontent').style.display='none'; $('bg_transparent').style.display ='none';" > </TD> </TR> </TABLE> </div></div><div id="bg_transparent" STYLE="display:none; position: absolute; left: 0; top: 24; 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></body>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -