Closed tsingphone closed 1 month ago
环境信息:
问题:使用TCP主动模式播放出错,TCP主动连接对方的IP不是一个公网IP
这段代码:SIPCommander.java / playStreamCmd
` Request request = headerProvider.createInviteRequest(device, channel.getChannelId(), content.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, ssrcInfo.getSsrc(),sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()));
logger.info("-------request-------------"); logger.info(request.toString()); sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, (e -> { streamSession.remove(device.getDeviceId(), channel.getChannelId(), ssrcInfo.getStream()); mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); errorEvent.response(e); }), e -> { ResponseEvent responseEvent = (ResponseEvent) e.event; SIPResponse response = (SIPResponse) responseEvent.getResponse(); String callId = response.getCallIdHeader().getCallId(); streamSession.put(device.getDeviceId(), channel.getChannelId(), callId, stream, ssrcInfo.getSsrc(), mediaServerItem.getId(), response, InviteSessionType.PLAY); logger.info("-------response-------------"); logger.info(((ResponseEvent) e.event).getResponse().toString()); okEvent.response(e); });`
输出部分是我加上去的, (1)在request部分正确,IP是公网IP (2)但是在response部分,返回的IP是一个奇怪的内网地址 192.168.225.100. 摄像头我换移动和电信的4G卡都是这个地址。
这个是SIP协议栈根据设备连接使用的IP获取的,你服务有公网IP,但是如果不是直接落在网卡的话,设备或者服务并不会使用你的IP发起请求。
环境信息:
问题:使用TCP主动模式播放出错,TCP主动连接对方的IP不是一个公网IP
这段代码:SIPCommander.java / playStreamCmd
` Request request = headerProvider.createInviteRequest(device, channel.getChannelId(), content.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, ssrcInfo.getSsrc(),sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()));
输出部分是我加上去的, (1)在request部分正确,IP是公网IP (2)但是在response部分,返回的IP是一个奇怪的内网地址 192.168.225.100. 摄像头我换移动和电信的4G卡都是这个地址。