From 221f99c764b51c3cd284c6e5a41492c26c5c7ffc Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 09 九月 2022 17:06:19 +0800 Subject: [PATCH] 优化sip消息 --- src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java | 38 ++++++++++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java index 3d817c3..b3fd82e 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java @@ -59,9 +59,25 @@ void response(EventResult eventResult); } + /** + * + */ + public enum EventResultType{ + // 瓒呮椂 + timeout, + // 鍥炲 + response, + // 浜嬪姟宸茬粨鏉� + transactionTerminated, + // 浼氳瘽宸茬粨鏉� + dialogTerminated, + // 璁惧鏈壘鍒� + deviceNotFoundEvent + } + public static class EventResult<EventObject>{ public int statusCode; - public String type; + public EventResultType type; public String msg; public String callId; public Dialog dialog; @@ -76,7 +92,7 @@ ResponseEvent responseEvent = (ResponseEvent)event; Response response = responseEvent.getResponse(); this.dialog = responseEvent.getDialog(); - this.type = "response"; + this.type = EventResultType.response; if (response != null) { this.msg = response.getReasonPhrase(); this.statusCode = response.getStatusCode(); @@ -85,32 +101,32 @@ }else if (event instanceof TimeoutEvent) { TimeoutEvent timeoutEvent = (TimeoutEvent)event; - this.type = "timeout"; + this.type = EventResultType.timeout; this.msg = "娑堟伅瓒呮椂鏈洖澶�"; this.statusCode = -1024; - this.callId = timeoutEvent.getClientTransaction().getDialog().getCallId().getCallId(); this.dialog = timeoutEvent.getClientTransaction().getDialog(); + this.callId = this.dialog != null?timeoutEvent.getClientTransaction().getDialog().getCallId().getCallId(): null; }else if (event instanceof TransactionTerminatedEvent) { TransactionTerminatedEvent transactionTerminatedEvent = (TransactionTerminatedEvent)event; - this.type = "transactionTerminated"; + this.type = EventResultType.transactionTerminated; this.msg = "浜嬪姟宸茬粨鏉�"; this.statusCode = -1024; this.callId = transactionTerminatedEvent.getClientTransaction().getDialog().getCallId().getCallId(); this.dialog = transactionTerminatedEvent.getClientTransaction().getDialog(); }else if (event instanceof DialogTerminatedEvent) { DialogTerminatedEvent dialogTerminatedEvent = (DialogTerminatedEvent)event; - this.type = "dialogTerminated"; + this.type = EventResultType.dialogTerminated; this.msg = "浼氳瘽宸茬粨鏉�"; this.statusCode = -1024; this.callId = dialogTerminatedEvent.getDialog().getCallId().getCallId(); this.dialog = dialogTerminatedEvent.getDialog(); }else if (event instanceof DeviceNotFoundEvent) { DeviceNotFoundEvent deviceNotFoundEvent = (DeviceNotFoundEvent)event; - this.type = "deviceNotFoundEvent"; + this.type = EventResultType.deviceNotFoundEvent; this.msg = "璁惧鏈壘鍒�"; this.statusCode = -1024; - this.callId = deviceNotFoundEvent.getDialog().getCallId().getCallId(); this.dialog = deviceNotFoundEvent.getDialog(); + this.callId = this.dialog != null ?deviceNotFoundEvent.getDialog().getCallId().getCallId() : null; } } } @@ -130,6 +146,9 @@ } public void removeErrorSubscribe(String key) { + if(key == null){ + return; + } errorSubscribes.remove(key); errorTimeSubscribes.remove(key); } @@ -139,6 +158,9 @@ } public void removeOkSubscribe(String key) { + if(key == null){ + return; + } okSubscribes.remove(key); okTimeSubscribes.remove(key); } -- Gitblit v1.8.0