Class AbstractSipListener
java.lang.Object
io.github.lunasaw.sip.common.transmit.AbstractSipListener
- All Implemented Interfaces:
EventListener
,javax.sip.SipListener
- Direct Known Subclasses:
AsyncSipListener
,CustomerSipListener
SIP监听器抽象基类
提供基础统一的SIP事件处理能力,支持自定义Processor的添加
- Author:
- luna
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Map<String,
List<SipRequestProcessor>> 对SIP事件进行处理protected static final Map<String,
List<SipResponseProcessor>> 处理接收SIP发来的SIP协议响应消息protected SipMetrics
SIP指标收集器protected static final Map<String,
List<ITimeoutProcessor>> 处理超时事件 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addRequestProcessor
(String method, SipRequestProcessor processor) 添加 request订阅void
addResponseProcessor
(String method, SipResponseProcessor processor) 添加 response订阅void
addTimeoutProcessor
(String method, ITimeoutProcessor processor) 添加 超时事件订阅获取处理器统计信息getRequestProcessors
(String method) 获取请求处理器列表getResponseProcessors
(String method) 获取响应处理器列表getTimeoutProcessors
(String method) 获取超时处理器列表protected void
handleIOException
(javax.sip.IOExceptionEvent exceptionEvent) 处理IO异常(子类可重写)protected void
handleRequestException
(javax.sip.RequestEvent requestEvent, Exception exception) 处理请求异常(子类可重写)protected void
handleResponseException
(javax.sip.ResponseEvent responseEvent, Exception exception) 处理响应异常(子类可重写)protected void
handleUnsupportedRequest
(javax.sip.RequestEvent requestEvent) 处理不支持的请求(子类可重写)void
processDialogTerminated
(javax.sip.DialogTerminatedEvent dialogTerminatedEvent) 会话结束 - 基础实现void
processIOException
(javax.sip.IOExceptionEvent exceptionEvent) void
processRequest
(javax.sip.RequestEvent requestEvent) 分发RequestEvent事件 - 基础实现void
processResponse
(javax.sip.ResponseEvent responseEvent) 分发ResponseEvent事件 - 基础实现void
processTimeout
(javax.sip.TimeoutEvent timeoutEvent) 向超时订阅发送消息 - 基础实现void
processTransactionTerminated
(javax.sip.TransactionTerminatedEvent timeoutEvent) 事物结束 - 基础实现void
removeRequestProcessor
(String method, SipRequestProcessor processor) 移除请求处理器void
removeResponseProcessor
(String method, SipResponseProcessor processor) 移除响应处理器void
removeTimeoutProcessor
(String method, ITimeoutProcessor processor) 移除超时处理器protected boolean
shouldCreateTransaction
(String method) 判断是否需要为特定方法创建服务器事务
-
Field Details
-
REQUEST_PROCESSOR_MAP
对SIP事件进行处理 -
RESPONSE_PROCESSOR_MAP
处理接收SIP发来的SIP协议响应消息 -
TIMEOUT_PROCESSOR_MAP
处理超时事件 -
sipMetrics
SIP指标收集器
-
-
Constructor Details
-
AbstractSipListener
public AbstractSipListener()
-
-
Method Details
-
addRequestProcessor
添加 request订阅- Parameters:
method
- 方法名processor
- 处理程序
-
addResponseProcessor
添加 response订阅- Parameters:
method
- 方法名processor
- 处理程序
-
addTimeoutProcessor
添加 超时事件订阅- Parameters:
method
- 方法名processor
- 处理程序
-
removeRequestProcessor
移除请求处理器- Parameters:
method
- 方法名processor
- 处理程序
-
removeResponseProcessor
移除响应处理器- Parameters:
method
- 方法名processor
- 处理程序
-
removeTimeoutProcessor
移除超时处理器- Parameters:
method
- 方法名processor
- 处理程序
-
getRequestProcessors
获取请求处理器列表- Parameters:
method
- 方法名- Returns:
- 处理器列表
-
getResponseProcessors
获取响应处理器列表- Parameters:
method
- 方法名- Returns:
- 处理器列表
-
getTimeoutProcessors
获取超时处理器列表- Parameters:
method
- 方法名- Returns:
- 处理器列表
-
processRequest
public void processRequest(javax.sip.RequestEvent requestEvent) 分发RequestEvent事件 - 基础实现- Specified by:
processRequest
in interfacejavax.sip.SipListener
- Parameters:
requestEvent
- RequestEvent事件
-
processResponse
public void processResponse(javax.sip.ResponseEvent responseEvent) 分发ResponseEvent事件 - 基础实现- Specified by:
processResponse
in interfacejavax.sip.SipListener
- Parameters:
responseEvent
- responseEvent事件
-
processTimeout
public void processTimeout(javax.sip.TimeoutEvent timeoutEvent) 向超时订阅发送消息 - 基础实现- Specified by:
processTimeout
in interfacejavax.sip.SipListener
- Parameters:
timeoutEvent
- timeoutEvent事件
-
processIOException
public void processIOException(javax.sip.IOExceptionEvent exceptionEvent) - Specified by:
processIOException
in interfacejavax.sip.SipListener
-
processTransactionTerminated
public void processTransactionTerminated(javax.sip.TransactionTerminatedEvent timeoutEvent) 事物结束 - 基础实现- Specified by:
processTransactionTerminated
in interfacejavax.sip.SipListener
- Parameters:
timeoutEvent
- -- an event that indicates that the transaction has transitioned into the terminated state.
-
processDialogTerminated
public void processDialogTerminated(javax.sip.DialogTerminatedEvent dialogTerminatedEvent) 会话结束 - 基础实现- Specified by:
processDialogTerminated
in interfacejavax.sip.SipListener
- Parameters:
dialogTerminatedEvent
- -- an event that indicates that the dialog has transitioned into the terminated state.
-
shouldCreateTransaction
判断是否需要为特定方法创建服务器事务- Parameters:
method
- SIP方法名- Returns:
- 是否需要创建事务
-
handleUnsupportedRequest
protected void handleUnsupportedRequest(javax.sip.RequestEvent requestEvent) 处理不支持的请求(子类可重写)- Parameters:
requestEvent
- 请求事件
-
handleRequestException
处理请求异常(子类可重写)- Parameters:
requestEvent
- 请求事件exception
- 异常
-
handleResponseException
处理响应异常(子类可重写)- Parameters:
responseEvent
- 响应事件exception
- 异常
-
handleIOException
protected void handleIOException(javax.sip.IOExceptionEvent exceptionEvent) 处理IO异常(子类可重写)- Parameters:
exceptionEvent
- IO异常事件
-
getProcessorStats
获取处理器统计信息- Returns:
- 统计信息
-