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 SipMetricsSIP指标收集器protected static final Map<String,List<ITimeoutProcessor>> 处理超时事件 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRequestProcessor(String method, SipRequestProcessor processor) 添加 request订阅voidaddResponseProcessor(String method, SipResponseProcessor processor) 添加 response订阅voidaddTimeoutProcessor(String method, ITimeoutProcessor processor) 添加 超时事件订阅获取处理器统计信息getRequestProcessors(String method) 获取请求处理器列表getResponseProcessors(String method) 获取响应处理器列表getTimeoutProcessors(String method) 获取超时处理器列表protected voidhandleIOException(javax.sip.IOExceptionEvent exceptionEvent) 处理IO异常(子类可重写)protected voidhandleRequestException(javax.sip.RequestEvent requestEvent, Exception exception) 处理请求异常(子类可重写)protected voidhandleResponseException(javax.sip.ResponseEvent responseEvent, Exception exception) 处理响应异常(子类可重写)protected voidhandleUnsupportedRequest(javax.sip.RequestEvent requestEvent) 处理不支持的请求(子类可重写)voidprocessDialogTerminated(javax.sip.DialogTerminatedEvent dialogTerminatedEvent) 会话结束 - 基础实现voidprocessIOException(javax.sip.IOExceptionEvent exceptionEvent) voidprocessRequest(javax.sip.RequestEvent requestEvent) 分发RequestEvent事件 - 基础实现voidprocessResponse(javax.sip.ResponseEvent responseEvent) 分发ResponseEvent事件 - 基础实现voidprocessTimeout(javax.sip.TimeoutEvent timeoutEvent) 向超时订阅发送消息 - 基础实现voidprocessTransactionTerminated(javax.sip.TransactionTerminatedEvent timeoutEvent) 事物结束 - 基础实现voidremoveRequestProcessor(String method, SipRequestProcessor processor) 移除请求处理器voidremoveResponseProcessor(String method, SipResponseProcessor processor) 移除响应处理器voidremoveTimeoutProcessor(String method, ITimeoutProcessor processor) 移除超时处理器protected booleanshouldCreateTransaction(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:
processRequestin interfacejavax.sip.SipListener- Parameters:
requestEvent- RequestEvent事件
-
processResponse
public void processResponse(javax.sip.ResponseEvent responseEvent) 分发ResponseEvent事件 - 基础实现- Specified by:
processResponsein interfacejavax.sip.SipListener- Parameters:
responseEvent- responseEvent事件
-
processTimeout
public void processTimeout(javax.sip.TimeoutEvent timeoutEvent) 向超时订阅发送消息 - 基础实现- Specified by:
processTimeoutin interfacejavax.sip.SipListener- Parameters:
timeoutEvent- timeoutEvent事件
-
processIOException
public void processIOException(javax.sip.IOExceptionEvent exceptionEvent) - Specified by:
processIOExceptionin interfacejavax.sip.SipListener
-
processTransactionTerminated
public void processTransactionTerminated(javax.sip.TransactionTerminatedEvent timeoutEvent) 事物结束 - 基础实现- Specified by:
processTransactionTerminatedin 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:
processDialogTerminatedin 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:
- 统计信息
-