Apusic应用服务器对企业规范进行扩展,实现SIP协议和融合应用的快速开发和部署能力,完全兼容SIP Servlets1.1规范(JSR289)。
要在Apusic应用服务器中使用SIP,需要在apusic.conf中配置相应的服务,配置在应用部署服务(J2EEDeployer)之前,避免应用启动时找不到需要的服务。
首先配置SipService,如下所示:
... <SERVICE CLASS="com.apusic.web.sip.SipService" > <ATTRIBUTE NAME="DarConfigurationFileLocation" VALUE="config/sip/sip-dar.properties"/> <ATTRIBUTE NAME="SipStackPropertiesFileLocation" VALUE="config/sip/sip-stack.properties"/> </SERVICE> ...
SipService主要是路由文件和Sip协议栈文件的配置。容器根据路由文件配置把请求分发到相应的应用程序。如果路由配置不对,将导致请求不会进入到应用程序。
参数配置项:
参数名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
DarConfigurationFileLocation | 无 | String | 路由配置文件 |
SipStackPropertiesFileLocation | 无 | String | sip协议栈参数配置文件 |
SipApplicationDispatcherClassName | org.mobicents.servlet.sip.core.SipApplicationDispatcherImpl | String | 执行路由算法和应用选择过程 |
GatherStatistics | true | Boolean | 是否允许收集数据 |
CanceledTimerTasksPurgePeriod | 0 | Integer | 定期清理容器计时器资源 |
BaseTimerInterval | 500 | Integer | 单位毫秒重新传输INVITE请求的最小时间 |
T2Interval | 4000 | Integer | 单位毫秒,最大重新传输非INVITE请求和 INVITE回复 |
T4Interval | 5000 | Integer | 单位毫秒,消息在网络上最大时间 |
TimerDInterval | 32000 | 单位毫秒,针对UDP,等待重新传输的时间 | |
DispatcherThreadPoolSize | 15 | Integer | 处理sip消息的线程 |
AdditionalParameterableHeaders | 无 | String | 添加sip头消息 |
BypassResponseExecutor | true | Boolean | 是否允许在线程池下分发消息 |
DialogPendingRequestChecking | false | Boolean | 是否检测sip事务重叠 |
CallIdMaxLength | 0 | Integer | sip头部Call-Id最大长度 |
TagHashMaxLength | 0 | Integer | sip头部From和To的最大程度 |
HttpFollowsSip | false | Boolean | 是否sip粘滞 |
UsePrettyEncoding | true | Boolean | 是否允许sip消息拆分为多行 |
其次是配置SipConnectorService,如下:
... <SERVICE CLASS="com.apusic.web.sip.SipConnectorService" NAME="apusic:service=SipConnector,name=udp" > <ATTRIBUTE NAME="Port" VALUE="5080"/> <ATTRIBUTE NAME="SignalingTransport" VALUE="udp"/> </SERVICE> <SERVICE CLASS="com.apusic.web.sip.SipConnectorService" NAME="apusic:service=SipConnector,name=tcp"> <ATTRIBUTE NAME="Port" VALUE="5080"/> <ATTRIBUTE NAME="SignalingTransport" VALUE="tcp"/> </SERVICE> <SERVICE CLASS="com.apusic.web.sip.SipConnectorService" NAME="apusic:service=SipConnector,name=tls"> <ATTRIBUTE NAME="Port" VALUE="5081"/> <ATTRIBUTE NAME="SignalingTransport" VALUE="tls"/> </SERVICE> <SERVICE CLASS="com.apusic.web.sip.SipConnectorService" NAME="apusic:service=SipConnector,name=ws"> <ATTRIBUTE NAME="Port" VALUE="5082"/> <ATTRIBUTE NAME="SignalingTransport" VALUE="ws"/> </SERVICE> ...
SipConnectorService主要是配置监听的端口和使用的协议,SipConnectorService可以配置多个,其中udp和tcp使用的端口可以是同一个,ws(WebSocket)和tls的端口必须唯一。如果只是用了udp,只配置一个SipConnectorService即可,无需配置多个。
参数配置项:
参数名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
Port | 无 | Integer | 监听sip消息的端口 |
SignalingTransport | 无 | String | 可选值udp/tcp/ws/tls |
ProtocolHandler | org.mobicents.servlet.sip.apusic.SipProtocolHandler | String | 使用默认值即可,无需改变 |
IpAddress | 无 | String | ip地址,如果有多个可手动指定 |
UseStun | false | Boolean | 是否使用stun协议 |
StunServerAddress | 无 | String | 使用stun协议时的ip地址 |
StunServerPort | 0 | Integer | 使用stun协议时的端口 |
StaticServerAddress | 无 | String | Load-banlance端的地址 |
StaticServerPort | 0 | Integer | Load-banlance端的端口 |
UseStaticAddress | false | Boolean | 是否启用上面两项 |