SIP Servlet

会话启动协议 (SIP) Servlet 是由 SIP Servlet 容器管理的一个基于 Java 的应用程序组件,用于执行 SIP 信号发送。SIP Servlet 通过 Servlet 容器与客户机交换请求和响应消息,从而实现与客户机的交互。

SIP Servlet 1.0 规范 (JSR 116) 通过 Java™ 规范请求 (JSR) 116 进行了标准化。该规范的基本思想是,提供一个与 HTTP Servlet 类似的 Java 应用程序编程接口 (API),从而提供一个易于使用的 SIP 编程模型。与流行的 HTTP Servlet 编程模型类似,有些灵活性仅限于优化易用性和时间价值比。

但是,由于协议差别很大,因此 SIP Servlet API 在许多方面都与 HTTP Servlet 不同。虽然 SIP 是请求/响应协议,但每个请求并不一定只有一个响应。这种复杂性以及对高效解决方案的需求意味着更容易实现 SPI Servlet 本机异步执行。此外,由于很多应用程序都会充当其他服务器或代理的客户机或代理,因此 SIP Servlet 的编程模型力求能方便地随编写的其他逻辑一起创建客户机请求,这一点不同于 HTTP Servlet。

SipServlet 请求

SIP Servlet 与 HTTP Servlet 有相同点,就是每个 SIP Servlet 都扩展一个基本 javax.servlet.sip.SipServlet 类。所有消息都通过服务方法传入,您可以扩展该服务方法。但是,因为 SIP 中不存在请求与响应的一对一映射,所以建议的做法是改为扩展 doRequest 或 doResponse 方法。扩展 doRequest 或 doResponse 方法时,一定要调用经过扩展的方法才能完成处理。

规范必须支持的每个请求方法都有一个 doxxx 方法,这点类似于 HTTP。在 HTTP 中,GET 和 POST 请求具有类似于 doGet 和 doPost 的方法。在 SIP 中,每个 SIP 请求方法都具有 doInvite、doAck、doOptions、doBye、doCancel、doRegister、doSubscribe、doNotify、doMessage、doInfo 和 doPrack 方法。

与 HTTP Servlet 不同,SIP Servlet 对于支持的每种响应类型都有一些方法。因此,SIP Servlet 包括 doProvisionalResponse、doSuccessResponse、doRedirectResponse 和 doErrorResponse 响应。确切地说,临时响应(1xx 响应)用于指示状态,成功响应(2xx 响应)用于指示成功完成事务,重定向响应(3xx 响应)用于将客户机重定向至已移动的资源或实体,而错误响应(4xx、5xx 和 6xx 响应)用于指示故障或特定错误情况。这些响应消息类型与 HTTP 类似,但由于 SIP Servlet 编程模型包括客户机编程模型,所以还需要以编程方式处理响应。

JSR 116 的说明

JSR 289 已对 JSR 116 进行了一些说明,如下所示:
  • JSR 289 的 4.1.3 节:联系头字段
  • JSR 289 的 5.2 节:隐式事务状态
  • JSR 289 的 5.8 节:SIP Servlet 消息的辅助功能选项

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csip_servlet
文件名:csip_servlet.html