commit
8e6fce6e48
@ -59,10 +59,10 @@ public class SipLayer implements SipListener, Runnable {
|
||||
|
||||
@PostConstruct
|
||||
private void initSipServer() {
|
||||
Thread thread=new Thread(this);
|
||||
thread.setDaemon(true);
|
||||
thread.setName("sip server thread start");
|
||||
thread.start();
|
||||
Thread thread = new Thread(this);
|
||||
thread.setDaemon(true);
|
||||
thread.setName("sip server thread start");
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -84,7 +84,7 @@ public class SipLayer implements SipListener, Runnable {
|
||||
* 0; public static final int TRACE_MESSAGES = 16; public static final int
|
||||
* TRACE_EXCEPTION = 17; public static final int TRACE_DEBUG = 32;
|
||||
*/
|
||||
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "0");
|
||||
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
|
||||
properties.setProperty("gov.nist.javax.sip.SERVER_LOG", "sip_server_log");
|
||||
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG", "sip_debug_log");
|
||||
sipStack = (SipStackImpl) sipFactory.createSipStack(properties);
|
||||
@ -99,13 +99,15 @@ public class SipLayer implements SipListener, Runnable {
|
||||
}
|
||||
|
||||
private void startTcpListener() throws Exception {
|
||||
ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "TCP");
|
||||
ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(),
|
||||
"TCP");
|
||||
tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint);
|
||||
tcpSipProvider.addSipListener(this);
|
||||
}
|
||||
|
||||
private void startUdpListener() throws Exception {
|
||||
ListeningPoint udpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "UDP");
|
||||
ListeningPoint udpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(),
|
||||
"UDP");
|
||||
udpSipProvider = sipStack.createSipProvider(udpListeningPoint);
|
||||
udpSipProvider.addSipListener(this);
|
||||
}
|
||||
@ -127,13 +129,15 @@ public class SipLayer implements SipListener, Runnable {
|
||||
if ((status >= 200) && (status < 300)) { // Success!
|
||||
ISIPResponseProcessor processor = processorFactory.createResponseProcessor(evt);
|
||||
processor.process(evt, this, sipConfig);
|
||||
} else if (status == Response.TRYING) {
|
||||
// trying不会回复
|
||||
} else {
|
||||
logger.warn("接收到失败的response响应!status:" + status + ",message:" + response.getContent().toString());
|
||||
}
|
||||
// trying不会回复
|
||||
if (status == Response.TRYING) {
|
||||
// if (status == Response.TRYING) {
|
||||
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,6 +94,49 @@ public class SIPCommander implements ISIPCommander {
|
||||
return ptzCmd(device, channelId, 0, 0, inOut, 0, zoomSpeed);
|
||||
}
|
||||
|
||||
/**
|
||||
* 云台指令码计算
|
||||
*
|
||||
* @param leftRight 镜头左移右移 0:停止 1:左移 2:右移
|
||||
* @param upDown 镜头上移下移 0:停止 1:上移 2:下移
|
||||
* @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大
|
||||
* @param moveSpeed 镜头移动速度 默认 0XFF (0-255)
|
||||
* @param zoomSpeed 镜头缩放速度 默认 0X1 (0-255)
|
||||
*/
|
||||
public static String cmdString(int leftRight, int upDown, int inOut, int moveSpeed, int zoomSpeed) {
|
||||
int cmdCode = 0;
|
||||
if (leftRight == 2) {
|
||||
cmdCode|=0x01; // 右移
|
||||
} else if(leftRight == 1) {
|
||||
cmdCode|=0x02; // 左移
|
||||
}
|
||||
if (upDown == 2) {
|
||||
cmdCode|=0x04; // 下移
|
||||
} else if(upDown == 1) {
|
||||
cmdCode|=0x08; // 上移
|
||||
}
|
||||
if (inOut == 2) {
|
||||
cmdCode |= 0x10; // 放大
|
||||
} else if(inOut == 1) {
|
||||
cmdCode |= 0x20; // 缩小
|
||||
}
|
||||
StringBuilder builder = new StringBuilder("A50F01");
|
||||
String strTmp;
|
||||
strTmp = String.format("%02X", cmdCode);
|
||||
builder.append(strTmp, 0, 2);
|
||||
strTmp = String.format("%02X", moveSpeed);
|
||||
builder.append(strTmp, 0, 2);
|
||||
builder.append(strTmp, 0, 2);
|
||||
strTmp = String.format("%X", zoomSpeed);
|
||||
builder.append(strTmp, 0, 1).append("0");
|
||||
//计算校验码
|
||||
int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + moveSpeed + moveSpeed + (zoomSpeed /*<< 4*/ & 0XF0)) % 0X100;
|
||||
strTmp = String.format("%02X", checkCode);
|
||||
builder.append(strTmp, 0, 2);
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 云台控制,支持方向与缩放控制
|
||||
*
|
||||
@ -109,13 +152,14 @@ public class SIPCommander implements ISIPCommander {
|
||||
public boolean ptzCmd(Device device, String channelId, int leftRight, int upDown, int inOut, int moveSpeed,
|
||||
int zoomSpeed) {
|
||||
try {
|
||||
String cmdStr= cmdString(leftRight, upDown, inOut, moveSpeed, zoomSpeed);
|
||||
StringBuffer ptzXml = new StringBuffer(200);
|
||||
ptzXml.append("<?xml version=\"1.0\" ?>");
|
||||
ptzXml.append("<Control>");
|
||||
ptzXml.append("<CmdType>DeviceControl</CmdType>");
|
||||
ptzXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>");
|
||||
ptzXml.append("<DeviceID>" + channelId + "</DeviceID>");
|
||||
ptzXml.append("<PTZCmd>" + "</PTZCmd>");
|
||||
ptzXml.append("<PTZCmd>" + cmdStr + "</PTZCmd>");
|
||||
ptzXml.append("<Info>");
|
||||
ptzXml.append("</Info>");
|
||||
ptzXml.append("</Control>");
|
||||
@ -123,7 +167,6 @@ public class SIPCommander implements ISIPCommander {
|
||||
Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
|
||||
|
||||
transmitRequest(device, request);
|
||||
|
||||
return true;
|
||||
} catch (SipException | ParseException | InvalidArgumentException e) {
|
||||
e.printStackTrace();
|
||||
|
@ -26,7 +26,8 @@ spring:
|
||||
server:
|
||||
port: 8080
|
||||
sip:
|
||||
ip: 10.200.64.63
|
||||
# ip: 10.200.64.63
|
||||
ip: 192.168.0.102
|
||||
port: 5060
|
||||
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
|
||||
# 后两位为行业编码,定义参照附录D.3
|
||||
@ -34,7 +35,8 @@ sip:
|
||||
domain: 3701020049
|
||||
id: 37010200492000000001
|
||||
# 默认设备认证密码,后续扩展使用设备单独密码
|
||||
password: admin
|
||||
password: admin123
|
||||
media:
|
||||
ip: 10.200.64.88
|
||||
# ip: 10.200.64.88
|
||||
ip: 192.168.0.102
|
||||
port: 10000
|
Binary file not shown.
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 169 KiB |
Loading…
Reference in New Issue
Block a user