织梦CMS - 轻松建站从此开始!

罗索

SIP Servlet 示例之 Call Screen

罗索客 发布于 2008-05-13 22:27 点击:次 
Screening list: alice@server.test 呼叫流程: Servlet在doRequest方法中检查UA的URI是否在Screening列表中,如果在,返回603 DECLINE响应。 import java.io.IOException; import java.util.*; import javax.servlet.sip.*; import javax.servlet.*; public class Ca
TAG:

Screening list:
alice@server.test

呼叫流程:

Servlet在doRequest方法中检查UA的URI是否在Screening列表中,如果在,返回603 DECLINE响应。

import java.io.IOException;
import java.util.*;
import javax.servlet.sip.*;
import javax.servlet.*;
public class CallScreen extends SipServlet {
Collection m_screenings;
SipFactory m_sipFactory;
public void init() throws ServletException {
m_screenings = new Vector();
m_sipFactory = (SipFactory) getServletContext().getAttribute(
"javax.servlet.sip.SipFactory");
Enumeration names = getInitParameterNames();
if (names == null) {
return;
}
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
if (name.startsWith("screening-uri")) {
String screeningURI = (String) getInitParameter(name);
try {
SipURI uri = (SipURI) m_sipFactory.createURI(screeningURI);
m_screenings.add(uri);
}
catch (ServletException e) {
}
}
}
}
public void doRequest(SipServletRequest req)
throws IOException {
SipURI from = (SipURI) req.getFrom().getURI();
Iterator uris = m_screenings.iterator();
while (uris.hasNext()) {
SipURI uri = (SipURI) uris.next();
if (uri.getHost().equals(from.getHost())) {
SipServletResponse resp = req
.createResponse(SipServletResponse.SC_DECLINE);
try {
resp.send();
}
catch (java.io.IOException e) {
}
return;
}
}
log(req.toString());
// ...
}
public void doResponse(SipServletResponse resp) throws IOException {
log(resp.toString());
// ...
}
}

(ixmy)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200805/6961.html]
本文出处: 作者:ixmy
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容