40.4. 配置Apusic SIP服务

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协议栈文件的配置。容器根据路由文件配置把请求分发到相应的应用程序。如果路由配置不对,将导致请求不会进入到应用程序。

参数配置项:

参数名称 默认值 类型 说明
DarConfigurationFileLocationString路由配置文件
SipStackPropertiesFileLocationStringsip协议栈参数配置文件
SipApplicationDispatcherClassNameorg.mobicents.servlet.sip.core.SipApplicationDispatcherImplString执行路由算法和应用选择过程
GatherStatisticstrueBoolean是否允许收集数据
CanceledTimerTasksPurgePeriod0Integer定期清理容器计时器资源
BaseTimerInterval500Integer单位毫秒重新传输INVITE请求的最小时间
T2Interval4000Integer单位毫秒,最大重新传输非INVITE请求和 INVITE回复
T4Interval5000Integer单位毫秒,消息在网络上最大时间
TimerDInterval32000 单位毫秒,针对UDP,等待重新传输的时间
DispatcherThreadPoolSize15Integer处理sip消息的线程
AdditionalParameterableHeadersString添加sip头消息
BypassResponseExecutortrueBoolean是否允许在线程池下分发消息
DialogPendingRequestCheckingfalseBoolean是否检测sip事务重叠
CallIdMaxLength0Integersip头部Call-Id最大长度
TagHashMaxLength0Integersip头部From和To的最大程度
HttpFollowsSipfalseBoolean是否sip粘滞
UsePrettyEncodingtrueBoolean是否允许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即可,无需配置多个。

参数配置项:

参数名称 默认值 类型 说明
PortInteger监听sip消息的端口
SignalingTransportString可选值udp/tcp/ws/tls
ProtocolHandlerorg.mobicents.servlet.sip.apusic.SipProtocolHandlerString使用默认值即可,无需改变
IpAddressStringip地址,如果有多个可手动指定
UseStunfalseBoolean是否使用stun协议
StunServerAddressString使用stun协议时的ip地址
StunServerPort0Integer使用stun协议时的端口
StaticServerAddressStringLoad-banlance端的地址
StaticServerPort0IntegerLoad-banlance端的端口
UseStaticAddressfalseBoolean是否启用上面两项