`
kyleliu
  • 浏览: 28592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SIP Servlet 示例之 Call Screen

阅读更多

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());
// ...
}

}

分享到:
评论

相关推荐

    sipservlet-1.0-fcs

    《SIPServlet-1.0-FCS:探索SIP服务的深度解析》 SIP(Session Initiation Protocol)是一种用于控制多媒体通信会话(如语音和视频通话)的应用层协议,广泛应用于VoIP(Voice over Internet Protocol)系统。在...

    SipServlet API

    SipServlet API是Java平台上的一个关键组件,用于构建基于SIP(Session Initiation Protocol)的应用程序。SIP是一种协议,常用于控制多媒体通信会话,如语音和视频通话、在线会议、即时消息等。SipServlet API为...

    sipservlet_demo_chatroom

    【sipservlet_demo_chatroom】是一个基于SIP(Session Initiation Protocol)协议的聊天室示例项目,它展示了如何使用SIP Servlets来构建实时通信应用,如多人聊天室。SIP是一种IETF定义的开放标准协议,主要用于...

    sipservlet 1.1

    sipservlet 1.1 sip sipservlet 1.1 sipsipservlet 1.1 sip

    SIPServlet0[1].5.rar_SIP java_sip_sip Servlet_sip server_sipserv

    标题中的"SIPServlet0[1].5.rar"表明这是一个关于SIP Servlets的资源包,版本号为0.1.5。SIP(Session Initiation Protocol)是一种用于控制多媒体通信会话(如语音和视频通话)的应用层协议,广泛应用于VoIP系统。...

    sip servlet api

    SIP Servlet API是一个重要的软件开发接口,用于构建和管理基于Session Initiation Protocol (SIP)的应用程序。SIP是一种互联网协议,主要用于控制多媒体通信会话,如语音和视频通话、即时消息以及在线会议等。SIP ...

    Understanding sip servlet 1.1

    ### SIP Servlet 1.1 知识点解析 #### 一、SIP Servlet 概念与背景 **SIP Servlet** 是一种基于 Java 的技术,它允许开发人员使用 **Session Initiation Protocol (SIP)** 来创建通信应用程序。SIP 是一种用于控制...

    SIp Servlet的jar包

    支持sip协议的sipServlet的jar包。

    sip servlet开发

    ### SIP Servlet 开发详解 #### 一、引言与背景 IP多媒体子系统(IMS,IP Multimedia Subsystem)是下一代网络的...虽然面临着一定的挑战,但在标准化的支持下,SIP Servlet仍然是开发IMS应用服务器的理想选择之一。

    sipservlet undersatnd

    英文版的sipservlet,对APi详解sipservlet undersatnd

    sip-servlet-jboss 1.2.0

    【标题】"sip-servlet-jboss 1.2.0" 涉及的主要知识点是SIP Servlets在JBoss应用服务器上的实现和部署。SIP(Session Initiation Protocol)是一种用于控制多媒体通信会话(如语音和视频通话)的协议,而Servlets则...

    IMS注册及CALL SIP信令分析

    1. IMS_SIP_INVITE/INFORMAL_RESPONSE:这是IMS MO CALL SIP信令的第一个消息,主要包含 Subscription ID、Version、Direction、SDP Presence、SIP Call ID Length、SIP Message Length、SIP Message Logged Bytes、...

    sip-api.jar

    注释@javax.servlet.sip.annotation.SipServlet,是Java Servlet API为SipServlet提供的注解,允许开发者声明一个Servlet类为SIP处理器,从而简化了SIP应用的配置和部署。通过这个注解,开发者可以在不修改web.xml...

    基于SIP 协议的WEB CALL设计与实现

    【基于SIP协议的WEB CALL设计与实现】 Web Call是一种技术,它允许用户通过Web浏览器进行语音通话,利用Session Initiation Protocol (SIP) 这一标准通信协议来建立和管理多媒体通信会话。SIP协议广泛应用于VoIP...

    Sip协议栈简介第2部分

    ChatRoomServer的示例展示了SIP在即时消息传递场景中的应用,同时也揭示了SIP Servlet API如何简化服务开发,为开发者提供了更高层次的抽象。理解并掌握这些知识,对于开发面向未来的通信应用至关重要。

    sip-servlets:常用的 SIP Servlet 应用程序集合

    总结来说,“sip-servlets”项目是Java开发者构建SIP应用的重要资源,结合JAIN SIP API和SIP Servlet容器,开发者可以轻松实现复杂、高效且可扩展的多媒体通信解决方案。这个项目的源代码和文档将帮助开发者深入理解...

    SIP.rar_Call Flow Examples_flow_sip

    **SIP呼叫流程(Call Flow)**是SIP通信过程中的关键概念,描述了从呼叫发起直到呼叫结束的各个阶段和交互步骤。理解SIP呼叫流程对于网络管理员、开发者以及 VoIP 服务提供商来说至关重要,因为这有助于诊断和解决...

    sip-call-flow

    **SIP呼叫流程详解** SIP(Session Initiation Protocol)是一种用于控制多媒体通信会话(如语音和视频通话)的信令协议。在IP电话网络中,SIP扮演着核心角色,负责建立、修改和终止通信会话。本文将深入探讨SIP...

Global site tag (gtag.js) - Google Analytics