Commit dd3b8c25e59395807f84161d0fb18c3d8a34f4ec
1 parent
c223d4e4
支持移动位置和GPS报警信息处理
Showing
1 changed file
with
125 additions
and
43 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
| @@ -10,19 +10,14 @@ import javax.sip.SipException; | @@ -10,19 +10,14 @@ import javax.sip.SipException; | ||
| 10 | import javax.sip.message.Request; | 10 | import javax.sip.message.Request; |
| 11 | import javax.sip.message.Response; | 11 | import javax.sip.message.Response; |
| 12 | 12 | ||
| 13 | -import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | ||
| 14 | -import org.dom4j.Document; | ||
| 15 | -import org.dom4j.DocumentException; | ||
| 16 | -import org.dom4j.Element; | ||
| 17 | -import org.dom4j.io.SAXReader; | ||
| 18 | -import org.slf4j.Logger; | ||
| 19 | -import org.slf4j.LoggerFactory; | ||
| 20 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 21 | - | 13 | +import com.genersoft.iot.vmp.common.StreamInfo; |
| 22 | import com.genersoft.iot.vmp.common.VideoManagerConstants; | 14 | import com.genersoft.iot.vmp.common.VideoManagerConstants; |
| 15 | +import com.genersoft.iot.vmp.conf.UserSetup; | ||
| 16 | +import com.genersoft.iot.vmp.gb28181.bean.BaiduPoint; | ||
| 23 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 17 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 24 | import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; | 18 | import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; |
| 25 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 19 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 20 | +import com.genersoft.iot.vmp.gb28181.bean.MobilePosition; | ||
| 26 | import com.genersoft.iot.vmp.gb28181.bean.RecordInfo; | 21 | import com.genersoft.iot.vmp.gb28181.bean.RecordInfo; |
| 27 | import com.genersoft.iot.vmp.gb28181.bean.RecordItem; | 22 | import com.genersoft.iot.vmp.gb28181.bean.RecordItem; |
| 28 | import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; | 23 | import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; |
| @@ -32,18 +27,31 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; | @@ -32,18 +27,31 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; | ||
| 32 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; | 27 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; |
| 33 | import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor; | 28 | import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor; |
| 34 | import com.genersoft.iot.vmp.gb28181.utils.DateUtil; | 29 | import com.genersoft.iot.vmp.gb28181.utils.DateUtil; |
| 30 | +import com.genersoft.iot.vmp.gb28181.utils.NumericUtil; | ||
| 35 | import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; | 31 | import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; |
| 32 | +import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | ||
| 36 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 33 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; |
| 34 | +import com.genersoft.iot.vmp.utils.GpsUtil; | ||
| 35 | +import com.genersoft.iot.vmp.utils.SpringBeanFactory; | ||
| 37 | import com.genersoft.iot.vmp.utils.redis.RedisUtil; | 36 | import com.genersoft.iot.vmp.utils.redis.RedisUtil; |
| 37 | + | ||
| 38 | +import org.dom4j.Document; | ||
| 39 | +import org.dom4j.DocumentException; | ||
| 40 | +import org.dom4j.Element; | ||
| 41 | +import org.dom4j.io.SAXReader; | ||
| 42 | +import org.slf4j.Logger; | ||
| 43 | +import org.slf4j.LoggerFactory; | ||
| 38 | import org.springframework.util.StringUtils; | 44 | import org.springframework.util.StringUtils; |
| 39 | -import com.genersoft.iot.vmp.common.StreamInfo; | ||
| 40 | /** | 45 | /** |
| 41 | * @Description:MESSAGE请求处理器 | 46 | * @Description:MESSAGE请求处理器 |
| 42 | * @author: swwheihei | 47 | * @author: swwheihei |
| 43 | * @date: 2020年5月3日 下午5:32:41 | 48 | * @date: 2020年5月3日 下午5:32:41 |
| 44 | */ | 49 | */ |
| 50 | + | ||
| 45 | public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | 51 | public class MessageRequestProcessor extends SIPRequestAbstractProcessor { |
| 46 | 52 | ||
| 53 | + private UserSetup userSetup = (UserSetup) SpringBeanFactory.getBean("userSetup"); | ||
| 54 | + | ||
| 47 | private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class); | 55 | private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class); |
| 48 | 56 | ||
| 49 | private SIPCommander cmder; | 57 | private SIPCommander cmder; |
| @@ -71,7 +79,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -71,7 +79,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 71 | private static final String MESSAGE_MEDIA_STATUS = "MediaStatus"; | 79 | private static final String MESSAGE_MEDIA_STATUS = "MediaStatus"; |
| 72 | // private static final String MESSAGE_BROADCAST = "Broadcast"; | 80 | // private static final String MESSAGE_BROADCAST = "Broadcast"; |
| 73 | // private static final String MESSAGE_DEVICE_STATUS = "DeviceStatus"; | 81 | // private static final String MESSAGE_DEVICE_STATUS = "DeviceStatus"; |
| 74 | - // private static final String MESSAGE_MOBILE_POSITION = "MobilePosition"; | 82 | + private static final String MESSAGE_MOBILE_POSITION = "MobilePosition"; |
| 75 | // private static final String MESSAGE_MOBILE_POSITION_INTERVAL = "Interval"; | 83 | // private static final String MESSAGE_MOBILE_POSITION_INTERVAL = "Interval"; |
| 76 | 84 | ||
| 77 | /** | 85 | /** |
| @@ -106,10 +114,74 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -106,10 +114,74 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 106 | }else if (MESSAGE_MEDIA_STATUS.equals(cmd)) { | 114 | }else if (MESSAGE_MEDIA_STATUS.equals(cmd)) { |
| 107 | logger.info("接收到MediaStatus消息"); | 115 | logger.info("接收到MediaStatus消息"); |
| 108 | processMessageMediaStatus(evt); | 116 | processMessageMediaStatus(evt); |
| 117 | + } else if (MESSAGE_MOBILE_POSITION.equals(cmd)) { | ||
| 118 | + logger.info("接收到MobilePosition消息"); | ||
| 119 | + processMessageMobilePosition(evt); | ||
| 109 | } else { | 120 | } else { |
| 110 | logger.info("接收到消息:" + cmd); | 121 | logger.info("接收到消息:" + cmd); |
| 122 | + responseAck(evt); | ||
| 111 | } | 123 | } |
| 112 | - } catch (DocumentException e) { | 124 | + } catch (DocumentException | SipException |InvalidArgumentException | ParseException e) { |
| 125 | + e.printStackTrace(); | ||
| 126 | + } | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + /** | ||
| 130 | + * 处理MobilePosition移动位置消息 | ||
| 131 | + * | ||
| 132 | + * @param evt | ||
| 133 | + */ | ||
| 134 | + private void processMessageMobilePosition(RequestEvent evt) { | ||
| 135 | + try { | ||
| 136 | + //回复 200 OK | ||
| 137 | + Element rootElement = getRootElement(evt); | ||
| 138 | + MobilePosition mobilePosition = new MobilePosition(); | ||
| 139 | + Element deviceIdElement = rootElement.element("DeviceID"); | ||
| 140 | + String deviceId = deviceIdElement.getTextTrim().toString(); | ||
| 141 | + Device device = storager.queryVideoDevice(deviceId); | ||
| 142 | + if (device != null) { | ||
| 143 | + if (!StringUtils.isEmpty(device.getName())) { | ||
| 144 | + mobilePosition.setDeviceName(device.getName()); | ||
| 145 | + } | ||
| 146 | + } | ||
| 147 | + mobilePosition.setDeviceId(XmlUtil.getText(rootElement, "DeviceID")); | ||
| 148 | + mobilePosition.setTime(XmlUtil.getText(rootElement, "Time")); | ||
| 149 | + mobilePosition.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude"))); | ||
| 150 | + mobilePosition.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude"))); | ||
| 151 | + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Speed"))) { | ||
| 152 | + mobilePosition.setSpeed(Double.parseDouble(XmlUtil.getText(rootElement, "Speed"))); | ||
| 153 | + } else { | ||
| 154 | + mobilePosition.setSpeed(0.0); | ||
| 155 | + } | ||
| 156 | + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Direction"))) { | ||
| 157 | + mobilePosition.setDirection(Double.parseDouble(XmlUtil.getText(rootElement, "Direction"))); | ||
| 158 | + } else { | ||
| 159 | + mobilePosition.setDirection(0.0); | ||
| 160 | + } | ||
| 161 | + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Altitude"))) { | ||
| 162 | + mobilePosition.setAltitude(Double.parseDouble(XmlUtil.getText(rootElement, "Altitude"))); | ||
| 163 | + } else { | ||
| 164 | + mobilePosition.setAltitude(0.0); | ||
| 165 | + } | ||
| 166 | + mobilePosition.setReportSource("Mobile Position"); | ||
| 167 | + BaiduPoint bp = new BaiduPoint(); | ||
| 168 | + bp = GpsUtil.Wgs84ToBd09(String.valueOf(mobilePosition.getLongitude()), String.valueOf(mobilePosition.getLatitude())); | ||
| 169 | + logger.info("百度坐标:" + bp.getBdLng() + ", " + bp.getBdLat()); | ||
| 170 | + mobilePosition.setGeodeticSystem("BD-09"); | ||
| 171 | + mobilePosition.setCnLng(bp.getBdLng()); | ||
| 172 | + mobilePosition.setCnLat(bp.getBdLat()); | ||
| 173 | + if (!userSetup.getSavePositionHistory()) { | ||
| 174 | + storager.clearMobilePositionsByDeviceId(deviceId); | ||
| 175 | + } | ||
| 176 | + storager.insertMobilePosition(mobilePosition); | ||
| 177 | + // List<MobilePosition> all= storager.queryMobilePositions(deviceId, "2021-01-23T00:00:00", "2021-02-28T23:59:59"); | ||
| 178 | + // all= storager.queryMobilePositions(deviceId, null, "2021-01-24T23:59:59"); | ||
| 179 | + // all= storager.queryMobilePositions(deviceId, "2021-01-24T00:00:00", null); | ||
| 180 | + // //logger.debug(all.toString()); | ||
| 181 | + // MobilePosition mp = storager.queryLatestPosition(deviceId); | ||
| 182 | + // logger.debug("最新位置:" + mp.getLongitude() + ", " + mp.getLatitude()); | ||
| 183 | + responseAck(evt); | ||
| 184 | + } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) { | ||
| 113 | e.printStackTrace(); | 185 | e.printStackTrace(); |
| 114 | } | 186 | } |
| 115 | } | 187 | } |
| @@ -123,7 +195,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -123,7 +195,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 123 | try { | 195 | try { |
| 124 | Element rootElement = getRootElement(evt); | 196 | Element rootElement = getRootElement(evt); |
| 125 | Element deviceIdElement = rootElement.element("DeviceID"); | 197 | Element deviceIdElement = rootElement.element("DeviceID"); |
| 126 | - String deviceId = deviceIdElement.getText().toString(); | 198 | + String deviceId = deviceIdElement.getTextTrim().toString(); |
| 127 | 199 | ||
| 128 | Device device = storager.queryVideoDevice(deviceId); | 200 | Device device = storager.queryVideoDevice(deviceId); |
| 129 | if (device == null) { | 201 | if (device == null) { |
| @@ -180,11 +252,11 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -180,11 +252,11 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 180 | if (channelDeviceElement == null) { | 252 | if (channelDeviceElement == null) { |
| 181 | continue; | 253 | continue; |
| 182 | } | 254 | } |
| 183 | - String channelDeviceId = channelDeviceElement.getText(); | 255 | + String channelDeviceId = channelDeviceElement.getTextTrim(); |
| 184 | Element channdelNameElement = itemDevice.element("Name"); | 256 | Element channdelNameElement = itemDevice.element("Name"); |
| 185 | String channelName = channdelNameElement != null ? channdelNameElement.getTextTrim().toString() : ""; | 257 | String channelName = channdelNameElement != null ? channdelNameElement.getTextTrim().toString() : ""; |
| 186 | Element statusElement = itemDevice.element("Status"); | 258 | Element statusElement = itemDevice.element("Status"); |
| 187 | - String status = statusElement != null ? statusElement.getText().toString() : "ON"; | 259 | + String status = statusElement != null ? statusElement.getTextTrim().toString() : "ON"; |
| 188 | DeviceChannel deviceChannel = new DeviceChannel(); | 260 | DeviceChannel deviceChannel = new DeviceChannel(); |
| 189 | deviceChannel.setName(channelName); | 261 | deviceChannel.setName(channelName); |
| 190 | deviceChannel.setChannelId(channelDeviceId); | 262 | deviceChannel.setChannelId(channelDeviceId); |
| @@ -238,15 +310,15 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -238,15 +310,15 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 238 | deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port"))); | 310 | deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port"))); |
| 239 | } | 311 | } |
| 240 | deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password")); | 312 | deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password")); |
| 241 | - if (XmlUtil.getText(itemDevice, "Longitude") == null || XmlUtil.getText(itemDevice, "Longitude") == "") { | ||
| 242 | - deviceChannel.setLongitude(0.00); | ||
| 243 | - } else { | 313 | + if (NumericUtil.isDouble(XmlUtil.getText(itemDevice, "Longitude"))) { |
| 244 | deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude"))); | 314 | deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude"))); |
| 245 | - } | ||
| 246 | - if (XmlUtil.getText(itemDevice, "Latitude") == null || XmlUtil.getText(itemDevice, "Latitude") =="") { | ||
| 247 | - deviceChannel.setLatitude(0.00); | ||
| 248 | } else { | 315 | } else { |
| 316 | + deviceChannel.setLongitude(0.00); | ||
| 317 | + } | ||
| 318 | + if (NumericUtil.isDouble(XmlUtil.getText(itemDevice, "Latitude"))) { | ||
| 249 | deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude"))); | 319 | deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude"))); |
| 320 | + } else { | ||
| 321 | + deviceChannel.setLatitude(0.00); | ||
| 250 | } | 322 | } |
| 251 | if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") { | 323 | if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") { |
| 252 | deviceChannel.setPTZType(0); | 324 | deviceChannel.setPTZType(0); |
| @@ -274,8 +346,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -274,8 +346,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 274 | } | 346 | } |
| 275 | 347 | ||
| 276 | /*** | 348 | /*** |
| 277 | - * 收到alarm设备报警信息 处理 | ||
| 278 | - * | 349 | + * alarm设备报警信息处理 |
| 279 | * @param evt | 350 | * @param evt |
| 280 | */ | 351 | */ |
| 281 | private void processMessageAlarm(RequestEvent evt) { | 352 | private void processMessageAlarm(RequestEvent evt) { |
| @@ -286,11 +357,8 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -286,11 +357,8 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 286 | 357 | ||
| 287 | Device device = storager.queryVideoDevice(deviceId); | 358 | Device device = storager.queryVideoDevice(deviceId); |
| 288 | if (device == null) { | 359 | if (device == null) { |
| 289 | - // TODO 也可能是通道 | ||
| 290 | - // storager.queryChannel(deviceId) | ||
| 291 | return; | 360 | return; |
| 292 | } | 361 | } |
| 293 | - | ||
| 294 | DeviceAlarm deviceAlarm = new DeviceAlarm(); | 362 | DeviceAlarm deviceAlarm = new DeviceAlarm(); |
| 295 | deviceAlarm.setDeviceId(deviceId); | 363 | deviceAlarm.setDeviceId(deviceId); |
| 296 | deviceAlarm.setAlarmPriority(XmlUtil.getText(rootElement, "AlarmPriority")); | 364 | deviceAlarm.setAlarmPriority(XmlUtil.getText(rootElement, "AlarmPriority")); |
| @@ -301,26 +369,37 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -301,26 +369,37 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 301 | } else { | 369 | } else { |
| 302 | deviceAlarm.setAlarmDescription(XmlUtil.getText(rootElement, "AlarmDescription")); | 370 | deviceAlarm.setAlarmDescription(XmlUtil.getText(rootElement, "AlarmDescription")); |
| 303 | } | 371 | } |
| 304 | - if (XmlUtil.getText(rootElement, "Longitude") == null || XmlUtil.getText(rootElement, "Longitude") == "") { | ||
| 305 | - deviceAlarm.setLongitude(0.00); | ||
| 306 | - } else { | 372 | + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Longitude"))) { |
| 307 | deviceAlarm.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude"))); | 373 | deviceAlarm.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude"))); |
| 308 | - } | ||
| 309 | - if (XmlUtil.getText(rootElement, "Latitude") == null || XmlUtil.getText(rootElement, "Latitude") =="") { | ||
| 310 | - deviceAlarm.setLatitude(0.00); | ||
| 311 | } else { | 374 | } else { |
| 375 | + deviceAlarm.setLongitude(0.00); | ||
| 376 | + } | ||
| 377 | + if (NumericUtil.isDouble(XmlUtil.getText(rootElement, "Latitude"))) { | ||
| 312 | deviceAlarm.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude"))); | 378 | deviceAlarm.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude"))); |
| 379 | + } else { | ||
| 380 | + deviceAlarm.setLatitude(0.00); | ||
| 381 | + } | ||
| 382 | + | ||
| 383 | + if ( deviceAlarm.getAlarmMethod().equals("4")) { | ||
| 384 | + MobilePosition mobilePosition = new MobilePosition(); | ||
| 385 | + mobilePosition.setDeviceId(deviceAlarm.getDeviceId()); | ||
| 386 | + mobilePosition.setTime(deviceAlarm.getAlarmTime()); | ||
| 387 | + mobilePosition.setLongitude(deviceAlarm.getLongitude()); | ||
| 388 | + mobilePosition.setLatitude(deviceAlarm.getLatitude()); | ||
| 389 | + mobilePosition.setReportSource("GPS Alarm"); | ||
| 390 | + BaiduPoint bp = new BaiduPoint(); | ||
| 391 | + bp = GpsUtil.Wgs84ToBd09(String.valueOf(mobilePosition.getLongitude()), String.valueOf(mobilePosition.getLatitude())); | ||
| 392 | + logger.info("百度坐标:" + bp.getBdLng() + ", " + bp.getBdLat()); | ||
| 393 | + mobilePosition.setGeodeticSystem("BD-09"); | ||
| 394 | + mobilePosition.setCnLng(bp.getBdLng()); | ||
| 395 | + mobilePosition.setCnLat(bp.getBdLat()); | ||
| 396 | + if (!userSetup.getSavePositionHistory()) { | ||
| 397 | + storager.clearMobilePositionsByDeviceId(deviceId); | ||
| 398 | + } | ||
| 399 | + storager.insertMobilePosition(mobilePosition); | ||
| 313 | } | 400 | } |
| 401 | + // TODO: 需要实现存储报警信息、报警分类 | ||
| 314 | 402 | ||
| 315 | - // device.setName(XmlUtil.getText(rootElement, "DeviceName")); | ||
| 316 | - // device.setManufacturer(XmlUtil.getText(rootElement, "Manufacturer")); | ||
| 317 | - // device.setModel(XmlUtil.getText(rootElement, "Model")); | ||
| 318 | - // device.setFirmware(XmlUtil.getText(rootElement, "Firmware")); | ||
| 319 | - // if (StringUtils.isEmpty(device.getStreamMode())) { | ||
| 320 | - // device.setStreamMode("UDP"); | ||
| 321 | - // } | ||
| 322 | - // storager.updateDevice(device); | ||
| 323 | - //cmder.catalogQuery(device, null); | ||
| 324 | // 回复200 OK | 403 | // 回复200 OK |
| 325 | responseAck(evt); | 404 | responseAck(evt); |
| 326 | if (offLineDetector.isOnline(deviceId)) { | 405 | if (offLineDetector.isOnline(deviceId)) { |
| @@ -350,7 +429,6 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -350,7 +429,6 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 350 | } else { | 429 | } else { |
| 351 | } | 430 | } |
| 352 | } | 431 | } |
| 353 | - | ||
| 354 | } catch (ParseException | SipException | InvalidArgumentException | DocumentException e) { | 432 | } catch (ParseException | SipException | InvalidArgumentException | DocumentException e) { |
| 355 | e.printStackTrace(); | 433 | e.printStackTrace(); |
| 356 | } | 434 | } |
| @@ -458,7 +536,11 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | @@ -458,7 +536,11 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 458 | } | 536 | } |
| 459 | } | 537 | } |
| 460 | 538 | ||
| 461 | - | 539 | + /** |
| 540 | + * 收到MediaStatus消息处理 | ||
| 541 | + * | ||
| 542 | + * @param evt | ||
| 543 | + */ | ||
| 462 | private void processMessageMediaStatus(RequestEvent evt){ | 544 | private void processMessageMediaStatus(RequestEvent evt){ |
| 463 | try { | 545 | try { |
| 464 | // 回复200 OK | 546 | // 回复200 OK |