添加 SipUtil UserAgent 以及可配置
SipBuilder 默认携带 SipUtil UserAgent 头
This commit is contained in:
parent
e9fb357b95
commit
d810236d62
@ -3,6 +3,7 @@ package cn.skcks.docking.gb28181.sip.generic;
|
|||||||
import cn.skcks.docking.gb28181.constant.GB28181Constant;
|
import cn.skcks.docking.gb28181.constant.GB28181Constant;
|
||||||
import cn.skcks.docking.gb28181.sip.header.XGBVerHeader;
|
import cn.skcks.docking.gb28181.sip.header.XGBVerHeader;
|
||||||
import cn.skcks.docking.gb28181.sip.header.impl.XGBVerHeaderImpl;
|
import cn.skcks.docking.gb28181.sip.header.impl.XGBVerHeaderImpl;
|
||||||
|
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
|
||||||
import gov.nist.javax.sip.message.MessageFactoryImpl;
|
import gov.nist.javax.sip.message.MessageFactoryImpl;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -25,10 +26,13 @@ public class SipBuilder {
|
|||||||
return SipFactory.getInstance();
|
return SipFactory.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static UserAgentHeader userAgentHeader = SipUtil.getUserAgentHeader();
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public static MessageFactory getMessageFactory(){
|
public static MessageFactory getMessageFactory(){
|
||||||
MessageFactoryImpl messageFactory = (MessageFactoryImpl)getSipFactory().createMessageFactory();
|
MessageFactoryImpl messageFactory = (MessageFactoryImpl)getSipFactory().createMessageFactory();
|
||||||
messageFactory.setDefaultContentEncodingCharset(DEFAULT_CHARSET);
|
messageFactory.setDefaultContentEncodingCharset(DEFAULT_CHARSET);
|
||||||
|
messageFactory.setDefaultUserAgentHeader(userAgentHeader);
|
||||||
log.debug("将使用 {} 编码 sip 消息", DEFAULT_CHARSET);
|
log.debug("将使用 {} 编码 sip 消息", DEFAULT_CHARSET);
|
||||||
return messageFactory;
|
return messageFactory;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package cn.skcks.docking.gb28181.sip.request;
|
|||||||
|
|
||||||
import cn.skcks.docking.gb28181.sip.generic.SipBuilder;
|
import cn.skcks.docking.gb28181.sip.generic.SipBuilder;
|
||||||
import cn.skcks.docking.gb28181.sip.generic.SipContentType;
|
import cn.skcks.docking.gb28181.sip.generic.SipContentType;
|
||||||
|
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
import javax.sip.address.SipURI;
|
import javax.sip.address.SipURI;
|
||||||
|
@ -2,6 +2,7 @@ package cn.skcks.docking.gb28181.sip.response;
|
|||||||
|
|
||||||
import cn.skcks.docking.gb28181.sip.generic.SipBuilder;
|
import cn.skcks.docking.gb28181.sip.generic.SipBuilder;
|
||||||
import cn.skcks.docking.gb28181.sip.generic.SipContentType;
|
import cn.skcks.docking.gb28181.sip.generic.SipContentType;
|
||||||
|
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
import javax.sip.header.*;
|
import javax.sip.header.*;
|
||||||
@ -10,8 +11,9 @@ import javax.sip.message.Response;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class SipResponseBuilder {
|
public class SipResponseBuilder {
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public static <T> Response createResponse(int statusCode, Request request){
|
public static Response createResponse(int statusCode, Request request){
|
||||||
return SipBuilder.getMessageFactory().createResponse(statusCode, request);
|
return SipBuilder.getMessageFactory().createResponse(statusCode, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,13 +11,11 @@ import org.apache.commons.lang3.ObjectUtils;
|
|||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import javax.sip.PeerUnavailableException;
|
|
||||||
import javax.sip.SipFactory;
|
import javax.sip.SipFactory;
|
||||||
import javax.sip.header.FromHeader;
|
import javax.sip.header.FromHeader;
|
||||||
import javax.sip.header.Header;
|
import javax.sip.header.Header;
|
||||||
import javax.sip.header.UserAgentHeader;
|
import javax.sip.header.UserAgentHeader;
|
||||||
import javax.sip.message.Request;
|
import javax.sip.message.Request;
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -26,6 +24,8 @@ import java.util.List;
|
|||||||
public class SipUtil {
|
public class SipUtil {
|
||||||
@Setter
|
@Setter
|
||||||
public static String UserAgent = "GB28181-Docking-Platform";
|
public static String UserAgent = "GB28181-Docking-Platform";
|
||||||
|
@Setter
|
||||||
|
public static String UserAgentVersion = "0.0.1";
|
||||||
|
|
||||||
private static final char[] DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
|
private static final char[] DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
|
||||||
public static String nanoId(){
|
public static String nanoId(){
|
||||||
@ -59,11 +59,12 @@ public class SipUtil {
|
|||||||
return "z9hG4bK" + RandomStringUtils.randomNumeric(10);
|
return "z9hG4bK" + RandomStringUtils.randomNumeric(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static UserAgentHeader createUserAgentHeader() throws PeerUnavailableException, ParseException {
|
@SneakyThrows
|
||||||
List<String> agentParam = new ArrayList<>();
|
public static UserAgentHeader getUserAgentHeader(){
|
||||||
agentParam.add("GB28181-Docking-Platform");
|
List<String> agentParam = new ArrayList<>(3);
|
||||||
|
agentParam.add(UserAgent);
|
||||||
agentParam.add(" ");
|
agentParam.add(" ");
|
||||||
agentParam.add(StringUtils.replace(UserAgent,"-SNAPSHOT",""));
|
agentParam.add(StringUtils.replace(UserAgentVersion,"-SNAPSHOT",""));
|
||||||
return SipFactory.getInstance().createHeaderFactory().createUserAgentHeader(agentParam);
|
return SipFactory.getInstance().createHeaderFactory().createUserAgentHeader(agentParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import cn.skcks.docking.gb28181.sip.header.XGBVerHeader;
|
|||||||
import cn.skcks.docking.gb28181.sip.header.impl.XGBVerHeaderImpl;
|
import cn.skcks.docking.gb28181.sip.header.impl.XGBVerHeaderImpl;
|
||||||
import cn.skcks.docking.gb28181.sip.request.SipRequestBuilder;
|
import cn.skcks.docking.gb28181.sip.request.SipRequestBuilder;
|
||||||
import cn.skcks.docking.gb28181.sip.response.SipResponseBuilder;
|
import cn.skcks.docking.gb28181.sip.response.SipResponseBuilder;
|
||||||
|
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
@ -21,6 +22,8 @@ import java.util.List;
|
|||||||
public class SipTest {
|
public class SipTest {
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
|
SipUtil.setUserAgent("GB28181-Docking-Platform Beta");
|
||||||
|
SipUtil.setUserAgentVersion("0.1.0");
|
||||||
// 发起方
|
// 发起方
|
||||||
String localIp = "127.0.0.1";
|
String localIp = "127.0.0.1";
|
||||||
int localPort = 5060;
|
int localPort = 5060;
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package cn.skcks.docking.gb28181.sip.process;
|
||||||
|
|
||||||
|
import cn.skcks.docking.gb28181.sip.generic.SipBuilder;
|
||||||
|
import cn.skcks.docking.gb28181.sip.utils.SipUtil;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import javax.sip.header.UserAgentHeader;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class RequestTest {
|
||||||
|
@Test
|
||||||
|
void test(){
|
||||||
|
SipUtil.setUserAgentVersion("0.1.0");
|
||||||
|
UserAgentHeader userAgentHeader = SipBuilder.userAgentHeader;
|
||||||
|
log.info("\n{}",userAgentHeader);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user