日志增加VoIP泛收日志,增加国家化
This commit is contained in:
438
src/main/java/com/nis/domain/log/NtcCollectVoipLog.java
Normal file
438
src/main/java/com/nis/domain/log/NtcCollectVoipLog.java
Normal file
@@ -0,0 +1,438 @@
|
||||
package com.nis.domain.log;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.nis.domain.BaseEntity;
|
||||
import com.wordnik.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
*
|
||||
* @ClassName:NtcCollectVoipLog
|
||||
* @Description:TODO(这里用一句话描述这个类的作用)
|
||||
* @author zdx
|
||||
* @date 2018年11月5日 下午5:50:18
|
||||
* @version V1.0
|
||||
*/
|
||||
public class NtcCollectVoipLog<T> extends BaseEntity<T> {
|
||||
|
||||
private static final long serialVersionUID = -2189520672838652485L;
|
||||
|
||||
@ApiModelProperty(value = "节目ID", required = true)
|
||||
protected String pid;
|
||||
|
||||
@ApiModelProperty(value = "发现时间", required = true)
|
||||
protected Date foundTime;
|
||||
@ApiModelProperty(value = "接收时间", required = true)
|
||||
protected Date recvTime;
|
||||
@ApiModelProperty(value = "处理机IP", required = true)
|
||||
protected String capIp;
|
||||
@ApiModelProperty(value = "VOIP协议", required = true)
|
||||
protected String voipProtocol;
|
||||
@ApiModelProperty(value = "RTP服务端ip地址", required = true)
|
||||
protected String rtpDIp;
|
||||
@ApiModelProperty(value = "RTP客户端ip地址", required = true)
|
||||
protected String rtpSIp;
|
||||
@ApiModelProperty(value = "RTP服务端端口", required = true)
|
||||
protected Integer rtpDPort;
|
||||
@ApiModelProperty(value = "RTP客户端端口", required = true)
|
||||
protected Integer rtpSPort;
|
||||
@ApiModelProperty(value = "主叫VOIP语音文件存放服务器IP", required = true)
|
||||
protected String fromToStoreIp;
|
||||
@ApiModelProperty(value = "主叫VOIP语音文件存放服务器URL", required = true)
|
||||
protected String fromToStoreUrl;
|
||||
@ApiModelProperty(value = "被叫VOIP语音文件存放服务器IP", required = true)
|
||||
protected String toFromStoreIp;
|
||||
@ApiModelProperty(value = "被叫VOIP语音文件存放服务器URL", required = true)
|
||||
protected String toFromStoreUrl;
|
||||
@ApiModelProperty(value = "VOIP通话时长(秒)", required = true)
|
||||
protected String duation;
|
||||
@ApiModelProperty(value = "SIP服务端ip地址", required = true)
|
||||
protected String sipDIp;
|
||||
@ApiModelProperty(value = "SIP客户端ip地址", required = true)
|
||||
protected String sipSIp;
|
||||
@ApiModelProperty(value = "SIP服务端端口", required = true)
|
||||
protected Integer sipDPort;
|
||||
@ApiModelProperty(value = "SIP客户端端口", required = true)
|
||||
protected Integer sipSPort;
|
||||
@ApiModelProperty(value = "SIP会话ID", required = true)
|
||||
protected String callId;
|
||||
@ApiModelProperty(value = "SIP请求URI", required = true)
|
||||
protected String requestUri;
|
||||
@ApiModelProperty(value = "SIP主叫VOIP账号", required = true)
|
||||
protected String callingAccount;
|
||||
@ApiModelProperty(value = "SIP被叫VOIP账号", required = true)
|
||||
protected String calledAccount;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String contacts;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String via;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String route;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String recordRoute;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String userAgent;
|
||||
@ApiModelProperty(value = "SIP相应字段", required = true)
|
||||
protected String server;
|
||||
|
||||
|
||||
protected Integer functionId;
|
||||
protected Integer action;
|
||||
|
||||
protected String date;//配置界面日志总量查询时间
|
||||
protected String isLogTotalSearch;//由配置列表点击日志总量进行查询的标识
|
||||
protected String orderBy;//排序参数
|
||||
|
||||
protected String searchVoipProtocol;//协议类型
|
||||
protected String searchRtpDIp;//RTP服务端ip
|
||||
protected String searchRtpSIp;//RTP客户端ip
|
||||
protected String searchSipDIp;//SIP服务端ip
|
||||
protected String searchSipSIp;//SIP客户端ip
|
||||
protected String searchCapIp;//处理机IP
|
||||
protected String searchFoundStartTime;//开始发现时间
|
||||
protected String searchFoundEndTime;//结束发现时间
|
||||
|
||||
public NtcCollectVoipLog() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the voipProtocol
|
||||
*/
|
||||
public String getVoipProtocol() {
|
||||
return voipProtocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param voipProtocol
|
||||
* the voipProtocol to set
|
||||
*/
|
||||
public void setVoipProtocol(String voipProtocol) {
|
||||
this.voipProtocol = voipProtocol;
|
||||
}
|
||||
|
||||
public String getDuation() {
|
||||
return duation;
|
||||
}
|
||||
|
||||
public void setDuation(String duation) {
|
||||
this.duation = duation;
|
||||
}
|
||||
|
||||
public String getCallingAccount() {
|
||||
return callingAccount;
|
||||
}
|
||||
|
||||
public void setCallingAccount(String callingAccount) {
|
||||
this.callingAccount = callingAccount;
|
||||
}
|
||||
|
||||
public String getCalledAccount() {
|
||||
return calledAccount;
|
||||
}
|
||||
|
||||
public void setCalledAccount(String calledAccount) {
|
||||
this.calledAccount = calledAccount;
|
||||
}
|
||||
|
||||
public String getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(String pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
public Date getFoundTime() {
|
||||
return foundTime;
|
||||
}
|
||||
|
||||
public void setFoundTime(Date foundTime) {
|
||||
this.foundTime = foundTime;
|
||||
}
|
||||
|
||||
public Date getRecvTime() {
|
||||
return recvTime;
|
||||
}
|
||||
|
||||
public void setRecvTime(Date recvTime) {
|
||||
this.recvTime = recvTime;
|
||||
}
|
||||
|
||||
public String getCapIp() {
|
||||
return capIp;
|
||||
}
|
||||
|
||||
public void setCapIp(String capIp) {
|
||||
this.capIp = capIp;
|
||||
}
|
||||
|
||||
public String getRtpDIp() {
|
||||
return rtpDIp;
|
||||
}
|
||||
|
||||
public void setRtpDIp(String rtpDIp) {
|
||||
this.rtpDIp = rtpDIp;
|
||||
}
|
||||
|
||||
public String getRtpSIp() {
|
||||
return rtpSIp;
|
||||
}
|
||||
|
||||
public void setRtpSIp(String rtpSIp) {
|
||||
this.rtpSIp = rtpSIp;
|
||||
}
|
||||
|
||||
public Integer getRtpDPort() {
|
||||
return rtpDPort;
|
||||
}
|
||||
|
||||
public void setRtpDPort(Integer rtpDPort) {
|
||||
this.rtpDPort = rtpDPort;
|
||||
}
|
||||
|
||||
public Integer getRtpSPort() {
|
||||
return rtpSPort;
|
||||
}
|
||||
|
||||
public void setRtpSPort(Integer rtpSPort) {
|
||||
this.rtpSPort = rtpSPort;
|
||||
}
|
||||
|
||||
public String getFromToStoreIp() {
|
||||
return fromToStoreIp;
|
||||
}
|
||||
|
||||
public void setFromToStoreIp(String fromToStoreIp) {
|
||||
this.fromToStoreIp = fromToStoreIp;
|
||||
}
|
||||
|
||||
public String getFromToStoreUrl() {
|
||||
return fromToStoreUrl;
|
||||
}
|
||||
|
||||
public void setFromToStoreUrl(String fromToStoreUrl) {
|
||||
this.fromToStoreUrl = fromToStoreUrl;
|
||||
}
|
||||
|
||||
public String getToFromStoreIp() {
|
||||
return toFromStoreIp;
|
||||
}
|
||||
|
||||
public void setToFromStoreIp(String toFromStoreIp) {
|
||||
this.toFromStoreIp = toFromStoreIp;
|
||||
}
|
||||
|
||||
public String getToFromStoreUrl() {
|
||||
return toFromStoreUrl;
|
||||
}
|
||||
|
||||
public void setToFromStoreUrl(String toFromStoreUrl) {
|
||||
this.toFromStoreUrl = toFromStoreUrl;
|
||||
}
|
||||
|
||||
public String getSipDIp() {
|
||||
return sipDIp;
|
||||
}
|
||||
|
||||
public void setSipDIp(String sipDIp) {
|
||||
this.sipDIp = sipDIp;
|
||||
}
|
||||
|
||||
public String getSipSIp() {
|
||||
return sipSIp;
|
||||
}
|
||||
|
||||
public void setSipSIp(String sipSIp) {
|
||||
this.sipSIp = sipSIp;
|
||||
}
|
||||
|
||||
public Integer getSipDPort() {
|
||||
return sipDPort;
|
||||
}
|
||||
|
||||
public void setSipDPort(Integer sipDPort) {
|
||||
this.sipDPort = sipDPort;
|
||||
}
|
||||
|
||||
public Integer getSipSPort() {
|
||||
return sipSPort;
|
||||
}
|
||||
|
||||
public void setSipSPort(Integer sipSPort) {
|
||||
this.sipSPort = sipSPort;
|
||||
}
|
||||
|
||||
public String getCallId() {
|
||||
return callId;
|
||||
}
|
||||
|
||||
public void setCallId(String callId) {
|
||||
this.callId = callId;
|
||||
}
|
||||
|
||||
public String getRequestUri() {
|
||||
return requestUri;
|
||||
}
|
||||
|
||||
public void setRequestUri(String requestUri) {
|
||||
this.requestUri = requestUri;
|
||||
}
|
||||
|
||||
public String getContacts() {
|
||||
return contacts;
|
||||
}
|
||||
|
||||
public void setContacts(String contacts) {
|
||||
this.contacts = contacts;
|
||||
}
|
||||
|
||||
public String getVia() {
|
||||
return via;
|
||||
}
|
||||
|
||||
public void setVia(String via) {
|
||||
this.via = via;
|
||||
}
|
||||
|
||||
public String getRoute() {
|
||||
return route;
|
||||
}
|
||||
|
||||
public void setRoute(String route) {
|
||||
this.route = route;
|
||||
}
|
||||
|
||||
public String getRecordRoute() {
|
||||
return recordRoute;
|
||||
}
|
||||
|
||||
public void setRecordRoute(String recordRoute) {
|
||||
this.recordRoute = recordRoute;
|
||||
}
|
||||
|
||||
public String getUserAgent() {
|
||||
return userAgent;
|
||||
}
|
||||
|
||||
public void setUserAgent(String userAgent) {
|
||||
this.userAgent = userAgent;
|
||||
}
|
||||
|
||||
public String getServer() {
|
||||
return server;
|
||||
}
|
||||
|
||||
public void setServer(String server) {
|
||||
this.server = server;
|
||||
}
|
||||
@JsonIgnore
|
||||
public String getSearchVoipProtocol() {
|
||||
return searchVoipProtocol;
|
||||
}
|
||||
|
||||
public void setSearchVoipProtocol(String searchVoipProtocol) {
|
||||
this.searchVoipProtocol = searchVoipProtocol;
|
||||
}
|
||||
@JsonIgnore
|
||||
public String getSearchRtpDIp() {
|
||||
return searchRtpDIp;
|
||||
}
|
||||
|
||||
public void setSearchRtpDIp(String searchRtpDIp) {
|
||||
this.searchRtpDIp = searchRtpDIp;
|
||||
}
|
||||
@JsonIgnore
|
||||
public String getSearchRtpSIp() {
|
||||
return searchRtpSIp;
|
||||
}
|
||||
|
||||
public void setSearchRtpSIp(String searchRtpSIp) {
|
||||
this.searchRtpSIp = searchRtpSIp;
|
||||
}
|
||||
@JsonIgnore
|
||||
public String getSearchSipDIp() {
|
||||
return searchSipDIp;
|
||||
}
|
||||
|
||||
public void setSearchSipDIp(String searchSipDIp) {
|
||||
this.searchSipDIp = searchSipDIp;
|
||||
}
|
||||
|
||||
public String getSearchSipSIp() {
|
||||
return searchSipSIp;
|
||||
}
|
||||
|
||||
public void setSearchSipSIp(String searchSipSIp) {
|
||||
this.searchSipSIp = searchSipSIp;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getSearchCapIp() {
|
||||
return searchCapIp;
|
||||
}
|
||||
|
||||
public void setSearchCapIp(String searchCapIp) {
|
||||
this.searchCapIp = searchCapIp;
|
||||
}
|
||||
@JsonIgnore
|
||||
public String getSearchFoundStartTime() {
|
||||
return searchFoundStartTime;
|
||||
}
|
||||
|
||||
public void setSearchFoundStartTime(String searchFoundStartTime) {
|
||||
this.searchFoundStartTime = searchFoundStartTime;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getSearchFoundEndTime() {
|
||||
return searchFoundEndTime;
|
||||
}
|
||||
|
||||
public void setSearchFoundEndTime(String searchFoundEndTime) {
|
||||
this.searchFoundEndTime = searchFoundEndTime;
|
||||
}
|
||||
|
||||
public Integer getFunctionId() {
|
||||
return functionId;
|
||||
}
|
||||
|
||||
public void setFunctionId(Integer functionId) {
|
||||
this.functionId = functionId;
|
||||
}
|
||||
|
||||
public Integer getAction() {
|
||||
return action;
|
||||
}
|
||||
|
||||
public void setAction(Integer action) {
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public String getIsLogTotalSearch() {
|
||||
return isLogTotalSearch;
|
||||
}
|
||||
|
||||
public void setIsLogTotalSearch(String isLogTotalSearch) {
|
||||
this.isLogTotalSearch = isLogTotalSearch;
|
||||
}
|
||||
|
||||
public String getOrderBy() {
|
||||
return orderBy;
|
||||
}
|
||||
|
||||
public void setOrderBy(String orderBy) {
|
||||
this.orderBy = orderBy;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -442,6 +442,7 @@ public final class Constants {
|
||||
public static final String NTC_MMFACE_RECOGNIZATION_LOG = Configurations.getStringProperty("mmFaceRecognizationLog", "");
|
||||
public static final String NTC_MMSAMPLEVOIP_LOG = Configurations.getStringProperty("mmSampleVoipLog", "");
|
||||
public static final String PXY_HTTP_LOG = Configurations.getStringProperty("pxyHttpLog", "");
|
||||
public static final String NTC_COLLECT_VOIP_LOG = Configurations.getStringProperty("ntcCollectVoipLog", "");
|
||||
|
||||
//报表类型,1- 配置命中总量业务
|
||||
public static final Integer BUSINESSTYPE_CONFIG=Configurations.getIntProperty("businesstype_config", 1);
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
package com.nis.web.controller.log.ntc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.PageLog;
|
||||
import com.nis.domain.log.NtcCollectVoipLog;
|
||||
import com.nis.domain.maat.LogRecvData;
|
||||
import com.nis.util.CodeDicUtils;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.DateUtils;
|
||||
import com.nis.util.DictUtils;
|
||||
import com.nis.util.httpclient.HttpClientUtil;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.dao.dashboard.codedic.CodeResult;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "${adminPath}/log/ntc/ntcCollectVoipLogs")
|
||||
public class CollectVoipLogController extends BaseController{
|
||||
|
||||
/**
|
||||
* voip泛收日志
|
||||
* @param model
|
||||
* @param entry
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
* @throws ClientProtocolException
|
||||
* @throws IOException
|
||||
*/
|
||||
@RequestMapping(value={"list",""})
|
||||
public String list(Model model,@ModelAttribute("log")NtcCollectVoipLog entry,HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
|
||||
|
||||
try {
|
||||
|
||||
PageLog<NtcCollectVoipLog> page = new PageLog<NtcCollectVoipLog>(request, response);
|
||||
Map<String, Object> params=new HashMap<>();
|
||||
params.put("pageSize", page.getPageSize());
|
||||
params.put("pageNo", page.getPageNo());
|
||||
//查询值判断
|
||||
if (StringUtils.isNotBlank(entry.getSearchFoundStartTime())
|
||||
&& StringUtils.isNotBlank(entry.getSearchFoundEndTime())) {
|
||||
params.put("searchFoundStartTime", entry.getSearchFoundStartTime());
|
||||
params.put("searchFoundEndTime", entry.getSearchFoundEndTime());
|
||||
} else {
|
||||
// 判断是否是从配置界面过来的日志查询
|
||||
if (StringUtils.isNotBlank(entry.getIsLogTotalSearch())) {
|
||||
Calendar time = Calendar.getInstance();
|
||||
time.add(Calendar.MINUTE, -5);
|
||||
String searchEndTime = DateUtils.formatDateTime(time.getTime());
|
||||
params.put("searchFoundEndTime", searchEndTime);
|
||||
entry.setSearchFoundEndTime(searchEndTime);
|
||||
|
||||
time.add(Calendar.MINUTE, -5);
|
||||
String searchStartTime = DateUtils.formatDateTime(time.getTime());
|
||||
params.put("searchFoundStartTime", searchStartTime);
|
||||
entry.setSearchFoundStartTime(searchStartTime);
|
||||
|
||||
} else {
|
||||
// 设置默认查询当前时间及前五分钟
|
||||
String endTime = DateUtils.getDateTime();
|
||||
Date dateStart = new Date(new Date().getTime() - Constants.LOG_TIME_INTERVAL);
|
||||
String startTime = DateUtils.formatDateTime(dateStart);
|
||||
params.put("searchFoundStartTime", startTime);
|
||||
params.put("searchFoundEndTime", endTime);
|
||||
entry.setSearchFoundStartTime(startTime);
|
||||
entry.setSearchFoundEndTime(endTime);
|
||||
}
|
||||
logger.info("searchFoundStartTime:" + params.get("searchFoundStartTime"));
|
||||
logger.info("searchFoundEndTime:" + params.get("searchFoundEndTime"));
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(entry.getVoipProtocol())) {
|
||||
params.put("searchVoipProtocol", entry.getVoipProtocol());
|
||||
}
|
||||
if (StringUtils.isNotBlank(entry.getRtpDIp())) {
|
||||
params.put("searchRtpDIp", entry.getRtpDIp());
|
||||
}
|
||||
if (StringUtils.isNotBlank(entry.getCapIp())) {
|
||||
params.put("searchRtpSIp", entry.getCapIp());
|
||||
}
|
||||
if (StringUtils.isNotBlank(entry.getSipDIp())) {
|
||||
params.put("searchSipDIp", entry.getSipDIp());
|
||||
}
|
||||
if (StringUtils.isNotBlank(entry.getSipSIp())) {
|
||||
params.put("searchSipSIp", entry.getSipSIp());
|
||||
}
|
||||
if (StringUtils.isNotBlank(entry.getOrderBy())) {
|
||||
params.put("orderBy", entry.getOrderBy());
|
||||
}
|
||||
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(entry.getFunctionId());
|
||||
model.addAttribute("serviceList", serviceList);
|
||||
|
||||
//获取字典信息
|
||||
List<CodeResult> protocolList=CodeDicUtils.getCodeList("protocolCode");
|
||||
List<CodeResult> behaviorList=CodeDicUtils.getCodeList("behaviorCode");
|
||||
List<CodeResult> appList=CodeDicUtils.getCodeList("appCode");
|
||||
model.addAttribute("protocolList", protocolList);
|
||||
model.addAttribute("behaviorList", behaviorList);
|
||||
model.addAttribute("appList", appList);
|
||||
|
||||
String url = "";
|
||||
url = Constants.LOG_BASE_URL+Constants.NTC_COLLECT_VOIP_LOG;
|
||||
String jsonString = HttpClientUtil.getMsg(url,params,request);
|
||||
|
||||
GsonBuilder builder = new GsonBuilder();
|
||||
builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
|
||||
|
||||
public Date deserialize(JsonElement json, java.lang.reflect.Type typeOfT,
|
||||
JsonDeserializationContext context) throws JsonParseException {
|
||||
return new Date(json.getAsJsonPrimitive().getAsLong());
|
||||
}
|
||||
});
|
||||
Gson gson = builder.setDateFormat("yyyy-MM-dd HH:mm:ss").create();
|
||||
//gson泛型支持
|
||||
LogRecvData<NtcCollectVoipLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcCollectVoipLog>>(){}.getType());
|
||||
|
||||
if (fromJson.getStatus().intValue() == 200) {
|
||||
Page<NtcCollectVoipLog> data = fromJson.getData();
|
||||
BeanUtils.copyProperties(fromJson.getData(), page, new String[] {"pageSize","pageNo"});
|
||||
page.setList(fromJson.getData().getList());
|
||||
model.addAttribute("page", page);
|
||||
logger.info("查询VoIP泛收日志成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("查询VoIP泛收日志失败", e);
|
||||
addMessageLog(model, e.getMessage());
|
||||
}
|
||||
return "/log/ntc/collectVoipList";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1328,4 +1328,15 @@ ip_behavior_data=IP statistics
|
||||
p2p_eMule_keywords=eMule Search Keywords
|
||||
p2p_hash_keywords=File Marking Keywords
|
||||
not_valid_domain=%s is not a valid domain
|
||||
cert_not_match_domain=Domain and certificate information do not match!
|
||||
cert_not_match_domain=Domain and certificate information do not match!
|
||||
collect_voip=VoIP Collect
|
||||
rtp_d_ip=RTP Server IP
|
||||
rtp_s_ip=RTP Client IP
|
||||
rtp_d_port=RTP Server Port
|
||||
rtp_s_port=RTP Client Port
|
||||
sip_d_ip=SIP Server IP
|
||||
sip_s_ip=SIP Client IP
|
||||
sip_d_port=SIP Server Port
|
||||
sip_s_port=SIP Client Port
|
||||
call_id=SIP Call ID
|
||||
request_uri=SIP Request URI
|
||||
@@ -1316,5 +1316,16 @@ user_behavior_data=Account statistics
|
||||
ip_behavior_data=IP statistics
|
||||
p2p_eMule_keywords=eMule Search Keywords
|
||||
p2p_hash_keywords=File Marking Keywords
|
||||
not_valid_domain=%s\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u57DF\u540D
|
||||
cert_not_match_domain=Domain and certificate information do not match!
|
||||
not_valid_domain=%s\u4e0d\u662f\u4e00\u4e2a\u5408\u6cd5\u57df\u540d
|
||||
cert_not_match_domain=Domain and certificate information do not match!
|
||||
collect_voip=VoIP Collect
|
||||
rtp_d_ip=RTP Server IP
|
||||
rtp_s_ip=RTP Client IP
|
||||
rtp_d_port=RTP Server Port
|
||||
rtp_s_port=RTP Client Port
|
||||
sip_d_ip=SIP Server IP
|
||||
sip_s_ip=SIP Client IP
|
||||
sip_d_port=SIP Server Port
|
||||
sip_s_port=SIP Client Port
|
||||
call_id=SIP Call ID
|
||||
request_uri=SIP Request URI
|
||||
File diff suppressed because it is too large
Load Diff
@@ -269,6 +269,7 @@ pxyHttpLog=pxyHttpLogs
|
||||
mmSpeakerRecognizationLog=mmSpeakerRecognizationLogs
|
||||
mmLogoDetectionLog=mmLogoDetectionLogs
|
||||
mmFaceRecognizationLog=mmFaceRecognizationLogs
|
||||
ntcCollectVoipLog=ntcCollectVoipLogs
|
||||
########################################
|
||||
#\u5927\u5c4f\u56fe\u8868\u5c55\u793a\u670d\u52a1\u63a5\u53e3
|
||||
dashboardUrl=http://192.168.10.204:9999/galaxy-service/service/log/v1/
|
||||
@@ -543,5 +544,5 @@ cert_validate_success_info=Successful
|
||||
#ipv4 range\u65b0\u683c\u5f0f0.0.0.1-2
|
||||
ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$
|
||||
ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$
|
||||
#域名验证正则
|
||||
#\u57df\u540d\u9a8c\u8bc1\u6b63\u5219
|
||||
domain_regexp=^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$
|
||||
@@ -124,7 +124,7 @@
|
||||
</div>
|
||||
<div class="statisticsStatus">
|
||||
<font size="4"><i class="fa fa-cogs"> <spring:message code="configure_statistics_info"/>
|
||||
[<spring:message code="statistic_time"/>:[<spring:message code="statistic_time"/>:${configStatisticTime }]
|
||||
[<spring:message code="statistic_time"/>:${configStatisticTime }]
|
||||
</i></font> <a style="color:#333333" href="javascript:page(${page.pageNo},${page.pageSize});" class="icon-refresh pull-right"> </a>
|
||||
<h5 class="page-header"></h5>
|
||||
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
|
||||
221
src/main/webapp/WEB-INF/views/log/ntc/collectVoipList.jsp
Normal file
221
src/main/webapp/WEB-INF/views/log/ntc/collectVoipList.jsp
Normal file
@@ -0,0 +1,221 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
//筛选功能
|
||||
filterActionInit();
|
||||
//reset
|
||||
$("#resetBtn").on("click",function(){
|
||||
$("select.selectpicker").each(function(){
|
||||
$(this).selectpicker('val',$(this).find('option:first').val());
|
||||
$(this).find("option").attr("selected",false);
|
||||
$(this).find("option:first").attr("selected",true);
|
||||
});
|
||||
$(".Wdate").attr("value",'');
|
||||
$(':input','#searchForm')
|
||||
.not(':button,:submit,:reset,:hidden')
|
||||
.attr("value",'');
|
||||
$("#searchForm")[0].reset();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="theme-panel hidden-xs hidden-sm">
|
||||
</div>
|
||||
<h3 class="page-title">
|
||||
<spring:message code="collect_voip"/>
|
||||
</h3>
|
||||
|
||||
<h5 class="page-header"></h5>
|
||||
<div class="col-md-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-body">
|
||||
<div class="row" >
|
||||
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/ntcCollectVoipLogs" method="post" class="form-search">
|
||||
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
|
||||
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
|
||||
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
|
||||
<input id="isLogTotalSearch" name="isLogTotalSearch" type="hidden" value="${log.isLogTotalSearch}"/>
|
||||
<!-- 筛选按钮展开状态-->
|
||||
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
|
||||
|
||||
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
|
||||
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<div class="input-group">
|
||||
<div class="input-group-btn">
|
||||
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
|
||||
</div>
|
||||
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
|
||||
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left">
|
||||
<button type="button" class="btn blue" onClick="return page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
|
||||
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
|
||||
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-icon-only btn-default setfields tooltips"
|
||||
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
|
||||
<i class="icon-wrench"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选搜索内容栏默认隐藏-->
|
||||
<div class="col-md-12 filter-action-select-panle hide" >
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="voip_protocol"/>:</label>
|
||||
<c:set var="select"><spring:message code='select'/></c:set>
|
||||
<form:select path="voipProtocol" class="selectpicker form-control" >
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('VOIP_PROTOCOL')}" var="dict">
|
||||
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="clj_ip"/>:</label>
|
||||
<input id=capIp name="capIp" class="form-control ipv4v6" type="text" value="${log.capIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="rtp_d_ip"/>:</label>
|
||||
<input id="rtpDIp" name="rtpDIp" class="form-control ipv4v6" type="text" value="${log.rtpDIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="rtp_s_ip"/>:</label>
|
||||
<input id="rtpSIp" name="rtpSIp" class="form-control ipv4v6" type="text" value="${log.rtpSIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="sip_d_ip"/>:</label>
|
||||
<input id="sipDIp" name="sipDIp" class="form-control ipv4v6" type="text" value="${log.sipDIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="sip_s_ip"/>:</label>
|
||||
<input id="sipSIp" name="sipSIp" class="form-control ipv4v6" type="text" value="${log.sipSIp}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /筛选搜索内容栏 结束-->
|
||||
</form:form>
|
||||
</div>
|
||||
<sys:message content="${message}"/>
|
||||
<div class="table-responsive">
|
||||
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><spring:message code="log"/></th>
|
||||
<th class="sort-column pid"><spring:message code="pid"/></th>
|
||||
<th class="sort-column found_time"><spring:message code="found_time"/></th>
|
||||
<th class="sort-column recv_time"><spring:message code="recv_time"/></th>
|
||||
<th class="sort-column cap_ip"><spring:message code="clj_ip"/></th>
|
||||
<th class="sort-column voip_protocol"><spring:message code='voip_protocol'/></th>
|
||||
<th class="sort-column rtp_d_ip"><spring:message code="rtp_d_ip"/></th>
|
||||
<th class="sort-column rtp_s_ip"><spring:message code="rtp_s_ip"/></th>
|
||||
<th class="sort-column rtp_d_port"><spring:message code="rtp_d_port"/></th>
|
||||
<th class="sort-column rtp_s_port"><spring:message code="rtp_s_port"/></th>
|
||||
<th class="sort-column from_to_store_ip"><spring:message code="from_to_store_ip"/></th>
|
||||
<th class="sort-column from_to_store_url"><spring:message code="from_to_store_url"/></th>
|
||||
<th class="sort-column to_from_store_ip"><spring:message code="to_from_store_ip"/></th>
|
||||
<th class="sort-column to_from_store_url"><spring:message code="to_from_store_url"/></th>
|
||||
|
||||
<th class="sort-column duation"><spring:message code='duation'/></th>
|
||||
<th class="sort-column sip_d_ip"><spring:message code='sip_d_ip'/></th>
|
||||
<th class="sort-column sip_s_ip"><spring:message code='sip_s_ip'/></th>
|
||||
<th class="sort-column sip_d_port"><spring:message code='sip_d_port'/></th>
|
||||
<th class="sort-column sip_s_port"><spring:message code='sip_s_port'/></th>
|
||||
<th class="sort-column call_id"><spring:message code='call_id'/></th>
|
||||
<th class="sort-column request_uri"><spring:message code='request_uri'/></th>
|
||||
<th class="sort-column calling_account"><spring:message code='calling_account'/></th>
|
||||
<th class="sort-column called_account"><spring:message code='called_account'/></th>
|
||||
|
||||
<th class="sort-column Contacts">Contacts</th>
|
||||
<th class="sort-column Via">Via</th>
|
||||
<th class="sort-column Route">Route</th>
|
||||
<th class="sort-column Record_route">Record Route</th>
|
||||
<th class="sort-column User_agent">User Agent</th>
|
||||
<th class="sort-column server">Server</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="log" items="${page.list }" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
|
||||
</td>
|
||||
<td>${log.pid }</td>
|
||||
<td><fmt:formatDate value="${log.foundTime }" pattern="yyyy-MM-dd HH:mm:ss" /></td>
|
||||
<td><fmt:formatDate value="${log.recvTime }" pattern="yyyy-MM-dd HH:mm:ss" /></td>
|
||||
<td title="${log.capIp }">${fns:abbr(log.capIp, 42)}</td>
|
||||
<td>${log.voipProtocol }</td>
|
||||
<td>${log.rtpDIp }</td>
|
||||
<td>${log.rtpSIp }</td>
|
||||
<td>${log.rtpDPort }</td>
|
||||
<td>${log.rtpSPort }</td>
|
||||
<td>${log.fromToStoreIp }</td>
|
||||
<td>${log.fromToStoreUrl }</td>
|
||||
<td>${log.toFromStoreIp }</td>
|
||||
<td>${log.toFromStoreUrl }</td>
|
||||
<td>${log.duation }</td>
|
||||
<td>${log.sipDIp }</td>
|
||||
<td>${log.sipSIp }</td>
|
||||
<td>${log.sipDPort }</td>
|
||||
<td>${log.sipSPort }</td>
|
||||
<td>${log.callId }</td>
|
||||
<td>${log.requestUri }</td>
|
||||
<td>${log.callingAccount }</td>
|
||||
<td>${log.calledAccount }</td>
|
||||
<td>${log.contacts }</td>
|
||||
<td>${log.via }</td>
|
||||
<td>${log.route }</td>
|
||||
<td>${log.recordRoute }</td>
|
||||
<td>${log.userAgent }</td>
|
||||
<td>${log.server }</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -662,6 +662,10 @@ window.onload=function(){
|
||||
$("#searchForm [name='capIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='sIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='dIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='rtpDIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='rtpSIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='sipDIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
$("#searchForm [name='sipSIp']").attr("placeholder","IPv4 0.0.0.0 or IPv6 ::");
|
||||
// 动态调整日志页搜索框的样式,防止validate的错误提示导致样式错乱
|
||||
var igHeight = $("#searchForm").find(".col-md-12").find(".pull-left").find(".input-group").height();
|
||||
$("#searchForm").find(".col-md-12").find(".pull-left").find(".input-group").bind("DOMNodeInserted",function(e) {
|
||||
|
||||
Reference in New Issue
Block a user