New file |
| | |
| | | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="gwspupdate.aspx.cs" Inherits="_GwSpUpdate" %> |
| | | |
| | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| | | <html xmlns="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta charset="utf-8" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> |
| | | <meta name="renderer" content="webkit" /><meta http-equiv="Cache-Control" content="no-siteapp" /> |
| | | <title>GWSPUPDATE</title> |
| | | <!--[if lt IE 9]> |
| | | <meta http-equiv="refresh" content="0;ie.html" /> |
| | | <![endif]--> |
| | | <link href="css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet" /><link href="css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet" /> |
| | | <link href="css/plugins/iCheck/custom.css" rel="stylesheet" /><link href="css/animate.min.css" rel="stylesheet" /> |
| | | <link href="css/style.min862f.css?v=4.1.0" rel="stylesheet" /><link href="css/plugins/sweetalert/sweetalert.css" rel="stylesheet" /> |
| | | <link href="css/plugins/datapicker/datepicker3.css" rel="stylesheet" /><link href="css/jquery.numberedtextarea.css" rel="stylesheet" /> |
| | | <script src="js/loading.js" type="text/javascript"></script> |
| | | <script src="js/jquery.min.js?v=2.1.4"></script> |
| | | <script src="js/json.js"></script> |
| | | <script src="js/bootstrap.min.js?v=3.3.6"></script> |
| | | <script src="js/content.min.js?v=1.0.0"></script> |
| | | <script src="js/plugins/iCheck/icheck.min.js"></script> |
| | | <script src="js/plugins/sweetalert/sweetalert.min.js"></script> |
| | | <script src="js/plugins/datapicker/bootstrap-datepicker.js"></script> |
| | | |
| | | <!--下面这里的JS在调试的时候要注意一下,前面需要加/web/ 例如 src="/web/js/jquery-loading.js" --> |
| | | <!--发布版本的时候,不需要加/web/--> |
| | | <script type="text/javascript" src="js/jquery-loading.js"></script> |
| | | <script type="text/javascript" src="js/jquery-form.js"></script> |
| | | <script type="text/javascript" src="js/jquery.numberedtextarea.js"></script> |
| | | <script type="text/javascript" src="js/mytek-pager.js"></script> |
| | | <script src="js/mytek-pagination.js?r=11" type="text/javascript"></script> |
| | | |
| | | <style> |
| | | body { font-size: 12px; color: #111111; } |
| | | .mask { position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777; z-index: 1002; left: 0px; opacity: 0.5; -moz-opacity: 0.5; text-align: center; display: none; } |
| | | .mask span { height: 70%; display: inline-block; vertical-align: middle; } |
| | | .mask span img { vertical-align: middle; } |
| | | </style> |
| | | <script> |
| | | (function ($) { |
| | | $.ajaxBak = $.ajax; |
| | | |
| | | $.ajax = function (options) { |
| | | options.timeout = 300000; |
| | | options.url = options.url + (options.url.indexOf("?") > 0 ? "&" : "?") + "r=" + Math.random(); |
| | | |
| | | options.complete = function (e) { |
| | | $("body").hideLoading(); |
| | | } |
| | | |
| | | if (options.showloading !== false) { |
| | | $("body").showLoading(); |
| | | } |
| | | |
| | | try { |
| | | return $.ajaxBak.call(this, options); |
| | | } catch (e) { |
| | | if (options.showloading !== false) { |
| | | $("body").hideLoading(); |
| | | } |
| | | } |
| | | return this; |
| | | } |
| | | })(jQuery); |
| | | |
| | | $(document).ready(function(){ |
| | | $(".icheck-me").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",}); |
| | | $(".input-group.date").datepicker({todayBtn:"linked",keyboardNavigation:!1,forceParse:!1,calendarWeeks:!0,autoclose:!0}); |
| | | $("[data-toggle='tooltip']").tooltip(); |
| | | $("[data-toggle=popover]").popover() |
| | | }); |
| | | </script> |
| | | |
| | | <script> |
| | | $(document).ready(function () { |
| | | $(".action-back").on("click",function(){ |
| | | history.go(-1); |
| | | }); |
| | | |
| | | $("#accessCodeMode").on("change",function(){ |
| | | var accessCodeMode =$("#accessCodeMode").val(); |
| | | |
| | | if(accessCodeMode==1) |
| | | { |
| | | $("#DiverterID").attr("disabled",true); |
| | | }else{ |
| | | $("#DiverterID").attr("disabled",false); |
| | | } |
| | | }) |
| | | |
| | | var enabled=$("#enabled").val(); |
| | | if(enabled==1) |
| | | { |
| | | $("#control_patterncontent").show(); |
| | | }else |
| | | { |
| | | $("#control_patterncontent").hide(); |
| | | } |
| | | $("#enabled").on("change",function(){ |
| | | var enabled=$(this).val(); |
| | | if(enabled==1) |
| | | { |
| | | $("#control_patterncontent").show(); |
| | | }else{ |
| | | $("#control_patterncontent").hide(); |
| | | } |
| | | }); |
| | | |
| | | |
| | | var resendEnabled = $("#resendEnabled").val(); |
| | | if (resendEnabled == 1) { |
| | | $("#control_resendContent").show(); |
| | | } else { |
| | | $("#control_resendContent").hide(); |
| | | } |
| | | $("#resendEnabled").on("change", function () { |
| | | var resendEnabled = $(this).val(); |
| | | if (resendEnabled == 1) { |
| | | $("#control_resendContent").show(); |
| | | } else { |
| | | $("#control_resendContent").hide(); |
| | | } |
| | | }); |
| | | |
| | | |
| | | |
| | | var signatureMode=$("#signatureMode").val(); |
| | | if(signatureMode!=0) |
| | | { |
| | | $("#signatures-msg").show(); |
| | | }else{ |
| | | $("#signatures-msg").hide(); |
| | | } |
| | | $("#signatureMode").on("change",function(){ |
| | | var signatureMode=$(this).val(); |
| | | if(signatureMode!=0) |
| | | { |
| | | $("#signatures-msg").show(); |
| | | }else{ |
| | | $("#signatures-msg").hide(); |
| | | } |
| | | }) |
| | | |
| | | $("#DiverterID").on("change",function(){ |
| | | var accessCodeMode =$("#accessCodeMode").val(); |
| | | |
| | | if(accessCodeMode==1) |
| | | { |
| | | $("#RouterTypedisabled").attr("disabled",true); |
| | | }else |
| | | { |
| | | $("#RouterType").attr("disabled",false); |
| | | } |
| | | |
| | | }) |
| | | |
| | | $("#RouterType").on("change",function(){ |
| | | $(".router-type-span").hide(); |
| | | $(".router-type-span-" + $(this).val()).show(); |
| | | }); |
| | | |
| | | $("#RouterType").trigger("change"); |
| | | |
| | | function toggleTarget(value, target) { |
| | | if (value) { |
| | | $(target).show(); |
| | | } |
| | | else { |
| | | $(target).hide(); |
| | | } |
| | | } |
| | | |
| | | function randomString(len) { |
| | | len = len || 32; |
| | | var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ |
| | | var maxPos = $chars.length; |
| | | var pwd = ''; |
| | | for (i = 0; i < len; i++) { |
| | | pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); |
| | | } |
| | | return pwd; |
| | | } |
| | | |
| | | Array.prototype.find = function (func) { |
| | | for (var i = 0; i < this.length; i++) { |
| | | if (func(this[i])) { |
| | | return this[i]; |
| | | } |
| | | } |
| | | } |
| | | var serverIp =<%=Newtonsoft.Json.JsonConvert.SerializeObject(ConfigurationManager.AppSettings["serverIp"])%>; |
| | | var apList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.ApList)%>; |
| | | var opList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.OpList)%>; |
| | | var diverterList =<%=Newtonsoft.Json.JsonConvert.SerializeObject(this.DiverterList)%>; |
| | | |
| | | function getAPAccessCode(apId,extNo) { |
| | | var item = apList.find(function(e){return e.ApID == apId;}); |
| | | |
| | | if(item == null) { |
| | | return "接入点配置不正确"; |
| | | } |
| | | |
| | | var accessCodes = item.AccessCode.split("|"); |
| | | var output = []; |
| | | for(var n = 0 ; n < accessCodes.length ; n ++) { |
| | | output.push(accessCodes[n] + extNo); |
| | | } |
| | | |
| | | return output.join("或者"); |
| | | } |
| | | |
| | | function getAPPort(apId) { |
| | | var item = apList.find(function(e){return e.ApID == apId;}); |
| | | |
| | | if(item == null) { |
| | | return "接入点配置不正确"; |
| | | } |
| | | |
| | | return item.ApPort; |
| | | } |
| | | |
| | | function getOPAccessCode(opId,extNo) { |
| | | var item = opList.find(function(e){return e.OpID == opId;}); |
| | | |
| | | if(item == null) { |
| | | return "通道配置不正确"; |
| | | } |
| | | |
| | | return item.AccessCode + extNo; |
| | | } |
| | | |
| | | $(".action-more-params").on("click",function(){ |
| | | $("#MoreParamsTable").toggle(); |
| | | }); |
| | | |
| | | $(".generatorPassword").on("click",function(){ |
| | | var forTarget = $("#" + $(this).attr("for")); |
| | | forTarget.val(randomString(6)); |
| | | }); |
| | | |
| | | toggleTarget($("#AuditingMode")[0].value == 1 || $("#AuditingMode")[0].value == 2, "#deductSpan"); |
| | | |
| | | $(".action-create-summary").on("click",function(){ |
| | | $("#chargeDialog").modal("show"); |
| | | createSpSummary(); |
| | | }); |
| | | |
| | | function createSpSummary() { |
| | | var apID = $("#ApID").val(); |
| | | var apName = $("#ApID option:selected").text(); |
| | | var spID = $("#SpID").val(); |
| | | var unopID = $("#UNOPID").val(); |
| | | var ctopID = $("#CTOPID").val(); |
| | | var cmopID = $("#CMOPID").val(); |
| | | var extNo = $("#AccessCode").val(); |
| | | var clientIP =$("#ClientIp").val(); |
| | | var password = $("#Password").val(); |
| | | var threshold = $("#Threshold").val(); |
| | | var maxConn =$("#MaxConnCount").val(); |
| | | var mcpm = $("#MCPM").val(); |
| | | var diverterID = $("#DiverterID").val(); |
| | | |
| | | var summary = []; |
| | | var basePort = getAPPort(apID); |
| | | summary.push("<table class='table table-striped table-bordered table-hover'>"); |
| | | if(apID == 230002) |
| | | { |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("接入方式1:SOAP57-HTTP协议(0214-SMS-软维SOAP接口)"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("WSDL地址:http://" + serverIp + ":" + basePort + "/sms?wsdl"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("接入方式2:HTTP-57SMS协议(0169-SMS-软维接口-HTTP)"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | var httpBaseUrl = "http://" + serverIp + ":" + (basePort+2) + "/sms"; |
| | | summary.push("下发地址:" + httpBaseUrl + "?action=send"); |
| | | summary.push("<td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("报告地址:" + httpBaseUrl + "?action=report"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("上行地址:" + httpBaseUrl + "?action=mo"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("余额地址:" + httpBaseUrl + "?action=overage"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("以上两种接入方式可任选其一"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | } |
| | | else if(apID==230001) |
| | | { |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("接入方式:CMPP2.0"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("服务器地址:" +serverIp); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("服务器端口:" + basePort); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | } else { |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("接入方式:SMPP3.3"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("服务器地址:" +serverIp); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("服务器端口:" + basePort); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | } |
| | | |
| | | summary.push(""); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("账号:" + spID); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("密码:" + password); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("接入码:" + getAPAccessCode(apID,extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("最大流量:" + threshold + "条/秒"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("最大连接数:" + maxConn); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("单号码最大下发次数:" + mcpm + "次/半小时"); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("客户绑定IP:" + (clientIP == "0.0.0.0" || !clientIP ? "不验证" : clientIP)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | |
| | | if(diverterID > 0) |
| | | { |
| | | var diverter = diverterList.find(function(e){return e.DiverterID == diverterID;}); |
| | | if(diverter != null) { |
| | | var diverterItems = $.evalJSON(diverter.Content); |
| | | $.each(diverterItems,function(i){ |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("当匹配关键字:" + this.Keywords + (this.SmMaxLength > 0 ? "或者短信字数<=" + this.SmMaxLength+"字符" : "") + (this.SmMinLength > 0 ? "或者短信字数>=" + this.SmMinLength +"字符" : "")); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("电信发送号码:" + getOPAccessCode(this.CTOPID,this.CTExtNo + extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("移动发送号码:" + getOPAccessCode(this.CMOPID,this.CMExtNo + extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("联通发送号码:" + getOPAccessCode(this.CUOPID,this.CUExtNo + extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | |
| | | }); |
| | | } |
| | | } |
| | | |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("默认情况下:"); |
| | | summary.push("电信发送号码:" + getOPAccessCode(ctopID,extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("移动发送号码:" + getOPAccessCode(cmopID,extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("<tr>"); |
| | | summary.push("<td>"); |
| | | summary.push("联通发送号码:" + getOPAccessCode(unopID,extNo)); |
| | | summary.push("</td>"); |
| | | summary.push("</tr>"); |
| | | summary.push("</table>"); |
| | | $(".action-modal-body").html(summary.join("\r\n")); |
| | | // mytek.alert(summary.join("\r\n"),"success"); |
| | | } |
| | | |
| | | $(".action-save").on("click",function(){ |
| | | $(this).parents("form").ajaxSubmit({ |
| | | success: function(r){ |
| | | if(r.OK) |
| | | { |
| | | mytek.alert(r.Message,r.OK,function(){ |
| | | window.location="GwSp.aspx"; |
| | | }); |
| | | }else |
| | | { |
| | | mytek.alert(r.Message); |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | |
| | | function mySpIDAccessCode(obj) { |
| | | obj.value = obj.value.replace(/[^0-9]/g, ''); |
| | | } |
| | | </script> |
| | | </head> |
| | | <body class="white-bg"> |
| | | |
| | | <div class="wrapper wrapper-content table-responsive"> |
| | | |
| | | <form name="GwSpForm" method="post" action="gwsp.ashx" id="GwSpForm" enctype="multipart/form-data" class="form-horizontal"> |
| | | <div class="ibox"> |
| | | <table class="table table-striped table-bordered table-hover"> |
| | | <thead> |
| | | <tr> |
| | | <th colspan="4"> |
| | | <%=ActionTitle%> 编辑账户 |
| | | </th> |
| | | </tr> |
| | | </thead> |
| | | <tr> |
| | | <th> |
| | | 状态 |
| | | </th> |
| | | <td colspan="3"> |
| | | |
| | | <select name="Status" id="Status"> |
| | | <option value="0" <%if(GwSp.Status==0){ %>selected<%} %>>停用</option> |
| | | <option value="1" <%if(GwSp.Status==1){ %>selected<%} %>>启用</option> |
| | | </select> |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | SPID: |
| | | </th> |
| | | <td> |
| | | |
| | | <%if (!string.IsNullOrEmpty(this.SpID)) |
| | | { %> |
| | | <%=GwSp.SpID%> |
| | | <input type="hidden" name="SpID" id="SpID" maxlength="6" value="<%=GwSp.SpID%>" /> |
| | | <input type="hidden" name="Action" id="Action" maxlength="6" value="update" /> |
| | | <%} |
| | | else |
| | | {%> |
| | | <input type="hidden" name="Action" id="Action" maxlength="6" value="add" /> |
| | | <input type="text" name="SpID" id="SpID" maxlength="6" value="" /> |
| | | <%} %> |
| | | <span class="highlight">*</span> 6位数字,如922001 |
| | | |
| | | |
| | | </td> |
| | | <th> |
| | | 所属客户: |
| | | </th> |
| | | <td> |
| | | <select name="ClientID" id="ClientID"> |
| | | <%=GetClientOptions(GwSp.ClientID)%> |
| | | </select> |
| | | <span class="highlight">*</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 审核模式: |
| | | </th> |
| | | <td colspan="3"> |
| | | <select name="AuditingMode" onchange="toggleTarget(this.value==1 || this.value==2,'#deductSpan');" |
| | | id="AuditingMode"> |
| | | |
| | | |
| | | <option value="0" <%if(GwSp.AuditingMode==0){ %>selected<%} %>>免审模式(所有信息直接通过,不需要审核(MA:0002))</option> |
| | | <option value="1" <%if(GwSp.AuditingMode==1){ %>selected<%} %>>手工审核模式(只检查拦截策略,拦截则进行“拒绝模式判断”,否则以“手工审核”状态进入待审核)</option> |
| | | |
| | | <option value="2" <%if(GwSp.AuditingMode==2){ %>selected<%} %>>内容报备优先,拦截直接拒绝(先检查内容是否报备,报备则直接通过;否则进行拦截策略判断,不通过则直接产生拒绝报告(MA:0030),通过则进行“拒绝模式判断”)</option> |
| | | <option value="3" <%if(GwSp.AuditingMode==3){ %>selected<%} %>>拦截策略+内容报备(先检查拦截策略,不通过则直接产生拒绝报告(MA:0024);否则继续检查内容是否报备,内容已报备,则直接通过,未报备则进行“拒绝模式判断”)</option> |
| | | <option value="4" <%if(GwSp.AuditingMode==4){ %>selected<%} %>>内容报备优先,拦截写入待审核(先检查内容是否报备,报备则直接通过;否则进行拦截策略判断,不通过写待审核,通过则进行“拒绝模式判断”)</option> |
| | | <option value="5" <%if(GwSp.AuditingMode==5){ %>selected<%} %>>报备优先+免审(报备直接通过;未被拦截直接通过;未报备被拦截写入待审核) |
| | | </option> |
| | | </select> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 拒绝模式: |
| | | </th> |
| | | <td> |
| | | <input type="checkbox" value="1" name="RejectIfForbidden" id="RejectIfForbidden" |
| | | <%=GwSp.RejectIfForbidden==1 ? "checked" : ""%> />是否直接拒绝非正常短信(时段异常/关键字拦截),否则该消息将作为待二次审核存入数据库 |
| | | </td> |
| | | <th> |
| | | 拦截策略: |
| | | </th> |
| | | <td> |
| | | <select name="StrategyId" id="StrategyId"> |
| | | <%=GetStrategyOptions(GwSp.StrategyID)%> |
| | | </select> |
| | | |
| | | <span class="highlight">* 信息中如果包含拦截策略关键词,则转到待审核内容中待二次鉴定</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 接入码鉴权模式: |
| | | </th> |
| | | <td colspan="3"> |
| | | <select name="accessCodeMode" id="accessCodeMode"> |
| | | <option value="0" selected>虚拟接入模式(接入点的接入码+网关账号扩展号)</option> |
| | | <option value="1" >通道直连模式(上级通道接入码+网关账号扩展号, 通道直连模式下群发、导流策略、通道组不可用)</option> |
| | | </select> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 导流策略: |
| | | </th> |
| | | <td colspan="3"> |
| | | |
| | | |
| | | <select name="DiverterID" id="DiverterID"> |
| | | <%=GetDiverterOptions(GwSp.DiverterID)%> |
| | | </select> |
| | | |
| | | |
| | | <span class="highlight DiverterIDhighlight">*</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th>验证码分流:</th> |
| | | <td><input type="checkbox" value="1" name="VerCodeMode" id="VerCodeMode" <%=GwSp.VerCodeMode==1? "checked":"" %> /> 是否分流验证码类短信(验证码/校验码...)</td> |
| | | <th>省网分流:</th> |
| | | <td><input type="checkbox" value="1" name="ProvincialNetworkMode" id="ProvincialNetworkMode" <%=GwSp.ProvincialNetworkMode==1? "checked":"" %> /> 是否启用省网分流</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th> |
| | | 客户接入协议: |
| | | </th> |
| | | <td> |
| | | |
| | | <select name="ApID" id="ApID"> |
| | | <%=GetAPOptions(GwSp.ApID)%> |
| | | </select> |
| | | |
| | | |
| | | </td> |
| | | <th> |
| | | 长短信合并模式: |
| | | </th> |
| | | <td> |
| | | <select name="CombinationMode" id="CombinationMode"> |
| | | |
| | | <% |
| | | |
| | | __w.Write("<option value=\"0\" "); |
| | | if (this.GwSp.CombinationMode == 0) |
| | | __w.Write("selected"); |
| | | __w.Write(">不合并</option>\r\n <option value=\"1\" "); |
| | | if (this.GwSp.CombinationMode == 1) |
| | | __w.Write("selected"); |
| | | __w.Write(">合并分条短信(合并客户提交带UDHI头的短信)</option>\r\n "); |
| | | %> |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 通道信息: |
| | | </th> |
| | | <td colspan="3"> |
| | | |
| | | |
| | | <select name="RouterType" id="RouterType"> |
| | | <option value="1" <%if(GwSp.RouterType==1){ %>selected<%} %>>指定通道路由</option> |
| | | <option value="3" <%if(GwSp.RouterType==3){ %>selected<%} %>>通道组路由模式</option> |
| | | </select> |
| | | |
| | | |
| | | <div class="router-type-span router-type-span-1"> |
| | | <div style="padding: 5px"> |
| | | 移动:<select name="CMOPID" id="CMOPID"> |
| | | <%=GetOpOptions(GwSp.CMOPID)%> |
| | | </select> 扩展参数:<input type="text" name="CMparams" id="CMparams" maxlength="600" |
| | | value="<%=GwSp.CMextparms%>" style="width: 50%;" /> |
| | | </div> |
| | | <div style="padding: 5px"> |
| | | 联通:<select name="UNOPID" id="UNOPID"> |
| | | <%=GetOpOptions(GwSp.UNOPID)%> |
| | | </select> 扩展参数:<input type="text" name="CDparams" id="CDparams" maxlength="600" |
| | | value="<%=GwSp.CUextparams%>" style="width: 50%;" /> |
| | | </div> |
| | | <div style="padding: 5px"> |
| | | 电信:<select name="CTOPID" id="CTOPID"> |
| | | <%=GetOpOptions(GwSp.CTOPID)%> |
| | | </select> 扩展参数:<input type="text" name="CTparams" id="CTparams" maxlength="600" |
| | | value="<%=GwSp.CTextparams%>" style="width: 50%;" /> |
| | | </div> |
| | | </div> |
| | | <div class="router-type-span router-type-span-3"> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label "> |
| | | 移动通道组</label> |
| | | <select name="CmGroupID" id="CmGroupID"> |
| | | |
| | | <%=GetOpGroupOptions(GwSp.CMGroupID) %> |
| | | </select></div> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label "> |
| | | 联通通道组</label> |
| | | <select name="CuGroupID" id="CuGroupID"> |
| | | |
| | | <%=GetOpGroupOptions(GwSp.CUGroupID)%> |
| | | </select></div> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label"> |
| | | 电信通道组</label> |
| | | <select name="CtGroupID" id="CtGroupID"> |
| | | <%=GetOpGroupOptions(GwSp.CTGroupID)%> |
| | | </select></div> |
| | | </div> |
| | | <span class="router-type-span router-type-span-2">按“目的号码段路由”,当目的号码段无法找到相应路由时,将以下设置的“通道”路由</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 密码: |
| | | </th> |
| | | <td colspan="3"> |
| | | <input type="text" name="Password" id="Password" style="width: 150px;" maxlength="50" |
| | | value="<%=GwSp.Password%>" /> |
| | | <a href="javascript:;" class="generatorPassword" for="Password">生成密码</a> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 是否允许扩展子号: |
| | | </th> |
| | | <td> |
| | | <select name="extnoExteNsionMode" id="extnoExteNsionMode"> |
| | | |
| | | <option value="0" <%if(GwSp.ExtnoExtensionMode==0){ %>selected<%} %>>允许客户在扩展号后继续扩展子号</option> |
| | | <option value="1" <%if(GwSp.ExtnoExtensionMode==1){ %>selected<%} %>>禁止客户在扩展号后继续扩展子号(短信不再校验扩展号,而使用固定的扩展号进行下发)</option> |
| | | </select> |
| | | |
| | | </td> |
| | | <th> |
| | | 扩展号: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="AccessCode" id="AccessCode" style="width: 150px;" |
| | | maxlength="16" onkeyup="mySpIDAccessCode(this)" value="<%=GwSp.AccessCode%>" /> |
| | | <span class="highlight"></span>只能填数字 |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 客户端IP: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="ClientIp" id="ClientIp" style="width: 250px;" maxlength="500" |
| | | value="<%=GwSp.ClientIp%>" /> |
| | | 0.0.0.0 表示不限制客户端IP地址,多个IP 用英文竖线“|”隔开 |
| | | </td> |
| | | <th> |
| | | 客户端端口: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="ClientPort" id="ClientPort" style="width: 50px;" maxlength="5" |
| | | value="<%=GwSp.ClientPort%>" onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" /> 如不限定客户端口,则默认0 |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 单价: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="Price" id="Price" style="width: 50px;" maxlength="5" value="<%=(double)GwSp.Price/1000%>" |
| | | onkeyup="value=value.replace(/[^\d\.]/g,'')" onpaste="value=value.replace(/[^\d\.]/g,'')" |
| | | oncontextmenu="return false" /> |
| | | 元/条<span class="highlight">*</span> |
| | | </td> |
| | | <th> |
| | | 优先级: |
| | | </th> |
| | | <td> |
| | | <select name="Priority" id="Priority"> |
| | | |
| | | |
| | | <option value="-2" <%if(GwSp.Priority==-2){ %>selected<%} %>>最低</option> |
| | | <option value="-1" <%if(GwSp.Priority==-1){ %>selected<%} %>>低</option> |
| | | <option value="0" <%if(GwSp.Priority==0){ %>selected<%} %>>普通</option> |
| | | <option value="1" <%if(GwSp.Priority==1){ %>selected<%} %>>高</option> |
| | | <option value="2" <%if(GwSp.Priority==2){ %>selected<%} %>>最高</option> |
| | | |
| | | </select> |
| | | <span class="highlight">*</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 余额告警阈值: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="BalanceThreshold" id="BalanceThreshold" style="width: 200px;" |
| | | maxlength="10" value="<%=GwSp.BalanceThreshold/1000%>" onkeyup="value=value.replace(/[^\d]/g,'')" |
| | | onpaste="value=value.replace(/[^\d]/g,'')" oncontextmenu="return false" /> |
| | | 元 |
| | | </td> |
| | | <th> |
| | | 余额告警号码: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="AlarmMobile" id="AlarmMobile" style="width: 200px;" maxlength="50" |
| | | value="<%=GwSp.AlarmMobile%>" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 门限(账号提交速度): |
| | | </th> |
| | | <td> |
| | | <input type="text" name="Threshold" id="Threshold" style="width: 50px;" maxlength="5" |
| | | value="<%=GwSp.Threshold%>" onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/每秒 <span class="highlight">*</span> |
| | | </td> |
| | | <th> |
| | | 付费方式: |
| | | </th> |
| | | <td> |
| | | <select name="ChargeType" id="ChargeType"> |
| | | |
| | | <option value="1" <%if(GwSp.ChargeType==1){ %>selected<%} %>>预付费</option> |
| | | <option value="2" <%if(GwSp.ChargeType==2){ %>selected<%} %>>后付费</option> |
| | | |
| | | </select> |
| | | <span class="highlight">*</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 最大连接数: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="MaxConnCount" id="MaxConnCount" style="width: 150px;" maxlength="2" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" value="<%=GwSp.MaxConnCount%>" /> |
| | | </td> |
| | | <th> |
| | | 允许时段: |
| | | </th> |
| | | <td> |
| | | <input type="text" name="TimePermitting" id="TimePermitting" style="width: 150px;" |
| | | maxlength="50" value="<%=GwSp.TimePermitting%>" /> |
| | | 格式如:(08:00-19:00) |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 全局黑名单 : |
| | | </th> |
| | | <td> |
| | | <select id="BlackMode" name="BlackMode"> |
| | | |
| | | <option value="1" <%if(GwSp.BlackMode==1){ %>selected<%} %>>生效</option> |
| | | <option value="0" <%if(GwSp.BlackMode==0){ %>selected<%} %>>不生效</option> |
| | | |
| | | </select> |
| | | </td> |
| | | <th>是否启用携号转网</th> |
| | | <td> |
| | | <select id="TransferFlag" name="TransferFlag"> |
| | | <option value="0" <%if(GwSp.TransferFlag==0){ %>selected<%} %>>启用</option> |
| | | <option value="1" <%if(GwSp.TransferFlag==1){ %>selected<%} %>>不启用</option> |
| | | </select> |
| | | </td> |
| | | |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 单号码下发次数 |
| | | </th> |
| | | <td colspan="3" id="McExpression"> |
| | | <div> |
| | | <input style="width: 50px;" type="text" name="MCPM1" id="MCPM1" maxlength="4" value="<%__w.Write(this.McCount(0, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/1分钟; |
| | | <input style="width: 50px;" type="text" name="MCPM2" id="MCPM2" maxlength="4" value="<%__w.Write(this.McCount(1, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/5分钟; |
| | | <input style="width: 50px;" type="text" name="MCPM3" id="MCPM3" maxlength="4" value="<%__w.Write(this.McCount(2, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/10分钟; |
| | | <input style="width: 50px;" type="text" name="MCPM4" id="MCPM4" maxlength="4" value="<%__w.Write(this.McCount(3, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/半小时; |
| | | <input style="width: 50px;" type="text" name="MCPM5" id="MCPM5" maxlength="4" value="<%__w.Write(this.McCount(4, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/1小时; |
| | | <input style="width: 50px;" type="text" name="MCPM6" id="MCPM6" maxlength="4" value="<%__w.Write(this.McCount(5, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/2小时; |
| | | <input style="width: 50px;" type="text" name="MCPM7" id="MCPM7" maxlength="4" value="<%__w.Write(this.McCount(6, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/4小时; |
| | | <input style="width: 50px;" type="text" name="MCPM8" id="MCPM8" maxlength="4" value="<%__w.Write(this.McCount(7, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条/12小时; |
| | | <input style="width: 50px;" type="text" name="MCPM9" id="MCPM9" maxlength="4" value="<%__w.Write(this.McCount(8, this.GwSp.McExpression));%>" |
| | | onkeyup="value=value.replace(/[^\d]/g,'')" onpaste="value=value.replace(/[^\d]/g,'')" |
| | | oncontextmenu="return false" />条24小时; |
| | | </div> |
| | | <div class="text-muted"> |
| | | 为零时表示该条件不生效</div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 强制签名 |
| | | </th> |
| | | <td colspan="3"> |
| | | <span class="highlight" style="margin-left: 5px;">只限于SMS57/SOAP57协议</span> |
| | | <div style="margin-top: 5px; margin-left: 5px;"> |
| | | <select name="ForceSignFlag" id="ForceSignFlag" style="width: 70px;"> |
| | | |
| | | |
| | | <option value="0" <%if(GwSp.ForceSignFlag==0){ %>selected<%} %>>停用</option> |
| | | <option value="1" <%if(GwSp.ForceSignFlag==1){ %>selected<%} %>>前置</option> |
| | | <option value="2" <%if(GwSp.ForceSignFlag==2){ %>selected<%} %>>后置</option> |
| | | </select> 签名:<input type="text" name="ForceSign" id="ForceSign" |
| | | value="<%=GwSp.ForceSign%>" style="width: 40%" /> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th> |
| | | 启用签名 |
| | | </th> |
| | | <td colspan="3"> |
| | | <select id="signatureMode" name="signatureMode"> |
| | | |
| | | <option value="2" <%if(GwSp.SignatureMode==2){ %>selected<%} %>>校检前置签名</option> |
| | | <option value="1" <%if(GwSp.SignatureMode==1){ %>selected<%} %>>校检后置签名</option> |
| | | <option value="0" <%if(GwSp.SignatureMode==0){ %>selected<%} %>>不校检签名</option> |
| | | |
| | | |
| | | |
| | | </select> |
| | | <span class="highlight"></span>签名,每行一个签名,签名必须带“【】”,签名后面可以跟扩展号实现一客一签,其中扩展号必须以客户账号扩展号开头;例如“【签名1】1234” |
| | | </td> |
| | | </tr> |
| | | <tr style="display: none;" id="signatures-msg"> |
| | | <th> |
| | | 报备签名: |
| | | </th> |
| | | <td colspan="3"> |
| | | <textarea name="signatures" id="signatures" style="width: 100%" cols="100" rows="8"><%__w.Write(this.GwSp.Signatures); %></textarea> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <th>是否开启内容报备 : |
| | | </th> |
| | | <td colspan="3"> |
| | | <select id="enabled" name="enabled"> |
| | | <% |
| | | __w.Write("<option value=\"1\" "); |
| | | if (this.GetGwspEnabled(this.GwSp.SpID) == 1) |
| | | __w.Write("selected"); |
| | | __w.Write(">开启免审内容报备</option>\r\n <option value=\"0\" "); |
| | | if (this.GetGwspEnabled(this.GwSp.SpID) == 0) |
| | | __w.Write("selected"); |
| | | __w.Write(">关闭免审内容报备</option>\r\n "); |
| | | %> |
| | | </select><span class="highlight"></span>免审核报备内容,每行一条内容,“*” 号代替 0-10个字符,单行报备长度不要超过70字 |
| | | </td> |
| | | </tr> |
| | | <tr style="display: none;" id="control_patterncontent"> |
| | | <th> |
| | | 内容报备: |
| | | </th> |
| | | <td colspan="3"> |
| | | <textarea name="patternContent" id="patternContent" style="width: 100%" cols="100" |
| | | rows="8"><%__w.Write(this.GetGwspCtpattern(this.GwSp.SpID)); %></textarea> |
| | | </td> |
| | | </tr> |
| | | |
| | | <!-- 自动补发配置 --> |
| | | <tr> |
| | | <th>是否开启自动补发: |
| | | </th> |
| | | <td colspan="3"> |
| | | <select id="resendEnabled" name="resendEnabled"> |
| | | <% |
| | | __w.Write("<option value=\"1\" "); |
| | | if (this.GwSp.RESEND_STATUS == 1) |
| | | __w.Write("selected"); |
| | | __w.Write(">开启失败自动补发</option>\r\n <option value=\"0\" "); |
| | | if (this.GwSp.RESEND_STATUS == 0) |
| | | __w.Write("selected"); |
| | | __w.Write(">关闭失败自动补发</option>\r\n "); |
| | | %> |
| | | </select><span class="highlight"></span>开启自动补发功能,失败的号码会自动从已配置的失败补发通道发送一次 |
| | | </td> |
| | | </tr> |
| | | <!--自动补发通道组配置显示--> |
| | | <%-- <tr style="display: none;" id="control_resendContent"> |
| | | <th> |
| | | 通道组信息: |
| | | </th> |
| | | <td colspan="3"> |
| | | <div> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label "> |
| | | 移动-补发通道组</label> |
| | | <select name="ReSendCmGroupID" id="ReSendCmGroupID"> |
| | | |
| | | <%=GetOpGroupOptions(GwSp.RESEND_CM_GROUPID) %> |
| | | </select></div> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label "> |
| | | 联通-补发通道组</label> |
| | | <select name="ReSendCuGroupID" id="ReSendCuGroupID"> |
| | | |
| | | <%=GetOpGroupOptions(GwSp.RESEND_CU_GROUPID)%> |
| | | </select></div> |
| | | <div style="padding: 5px"> |
| | | <label class="control-label"> |
| | | 电信-补发通道组</label> |
| | | <select name="ReSendCtGroupID" id="ReSendCtGroupID"> |
| | | <%=GetOpGroupOptions(GwSp.RESEND_CT_GROUPID)%> |
| | | </select></div> |
| | | </div> |
| | | </td> |
| | | </tr>--%> |
| | | <!-- 自动补发配置-end --> |
| | | |
| | | <tr> |
| | | <th> |
| | | 备注: |
| | | </th> |
| | | <td colspan="3"> |
| | | <textarea name="Remark" id="Remark" style="width: 100%" cols="100" rows="8"><%=GwSp.Remark%></textarea> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <div style="padding: 10px; text-align: right;"> |
| | | <a class="btn btn-primary action-save" href="javascript:;">保存</a> <a class="btn btn-default action-back" |
| | | href="javascript:;">返回</a> |
| | | |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <div class="modal inmodal fade" id="chargeDialog" tabindex="-1" role="dialog" aria-hidden="true"> |
| | | <div class="modal-dialog form-horizontal"> |
| | | <div class="modal-content animated "> |
| | | <div class="modal-header"> |
| | | <span class="title">账号摘要</span><a class="close" data-dismiss="modal" aria-hidden="true">×</a></div> |
| | | <div class="modal-body action-modal-body" style="color: #797979; font-size: 16px; |
| | | font-weight: 300; position: relative; text-align: inherit; float: none; margin: 0px; |
| | | padding: 0px; line-height: normal;"> |
| | | </div> |
| | | <div class="modal-footer"> |
| | | <button class="btn-default btn" data-dismiss="modal" aria-hidden="true"> |
| | | 关闭</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="mask" class="mask"> |
| | | <span></span> |
| | | <img src="img/spinning-circles.svg" alt="载入中..." /></div> |
| | | </div> |
| | | </body> |
| | | </html> |