Liberty 上的 SIP SipServletRequest 和 SipServletResponse 类

SipServletRequest 和 SipServletResponse 类与您开发 Web 应用程序时使用的 HttpServletRequest 和 HttpServletResponse 类相似。

每个类都提供了访问 SIP 消息中的头并对其进行操作的功能。由于请求和响应的异步性质,SipServletRequest 类还将为请求创建新响应。扩展 doInvite 方法时,只会将 SipServletRequest 类传递给该方法。要将响应发送给客户机,必须对 Request 对象调用 createResponse 方法以创建响应,如以下示例中所示:

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {
	
		//send back a provisional Trying response
		SipServletResponse resp = req.createResponse(100);
resp.send();

因为其异步性质,所以 SIP Servlet 可能看起来很复杂;但是,像以上代码样本一样简单的代码也能向客户机发送响应。

以下示例显示较复杂的 SIP Servlet。通过使用 SIP Servlet 中包含的以下方法,Servlet 将阻止所有来自 example.com 域之外的调用。

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {

//check to make sure that the URI is a SIP URI
	     	     if (req.getFrom().getURI().isSipURI()){
                 	   SipURI uri = (SipURI)req.getFrom.getURI();
                 if (!uri.getHost().equals("example.com")) {
                    //send forbidden response for calls outside domain
                    req.createResponse(SipServletResponse.SC_FORBIDDEN).send();
                    return;
                 }
              }
              //proxy all other requests on to their original destination
              req.getProxy().proxyTo(req.getRequestURI);
        }

有关这些类的更多信息,请参阅 SIP Servlet 规范 1.1,即 JSR 289


用于指示主题类型的图标 参考主题



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