JAIN SIP:
Java API for Integrated Networks SIP,JSR32定义了其规范。PSTN、Wireless、Internet使用的都是JSR32。
(1)用途:
JAIN SIP可被用于以下几个方面:①用于J2SE平台,开发独立的user agent、proxy和注册应用程序;②作为SIP Servlet容器的基础SIP实现;③作为EJB容器的基础SIP实现。
这是规范中的准确定义。
(2)对协议的支持:
JAIN SIP支持RFC3261定义的全部功能,并且支持以下SIP扩展:INFO方法(RFC2976)、临时响应的可靠性(RFC3262)、事件通知框架(RFC3265)、UPDATE方法(RFC3311)、Reason头(RFC3326)和为即时消息定义的Message方法(RFC3428)。
(3)编程模型:
JAIN SIP标准化了SIP协议定义的通用事务模型接口,提供了从事务接口访问dialogue功能的方法。它采用Listener/Provider事件驱动模型,定义了很多factory类,用于创建Request和Response消息和SIP头。它为每个支持的头定义了通用接口,可添加到Request和Response中。SIP消息通过一个事务被传到SipProvider,SipListener用于监听到来的事件。此外,JAIN SIP被设计为可扩展的,定义了通用的扩展头接口。
(4)其他:
JAIN SIP并不仅是一个客户端API,它还可以用于一些服务器扩展。比如,JAIN SLEE资源适配器采用JAIN SIP作为基础。此外,它同样可以与SIP Servlet一起使用,或者直接与EJB结合使用。
由于JAIN SIP API是对SIP标准的完整定义,任何基于SIP的程序可将JAIN SIP API用作Java标准接口,成为经JAIN SIP认证的栈。这意味着应用服务器、SIP电话、网关及网关控制器、SIP服务器、基于SIP的业务、SIP计费解决方案、开发者工具包、SIP测试工具、SIP用户代理、以及SIP网络管理,均可利用JAIN SIP API实现在SIP栈实施中的通用性。典型的SIP网络中,JAIN SIP接口用于代理服务器、媒体网关和客户端。JAIN SIP API涵盖比用户代理或客户端软件所需更多的内容。
SIP Servlet
规范JSR 116,即SIP Servlet API v1.0,提供下载.jar包;JSR289,即SIP Servlet API v1.1,最终发布于2006.12,.jar包尚未提供下载。
(1)概述
SIP Servlet定义了一个环境,执行基于网络的SIP应用。它用于开发应用服务器,可支持SIP、HTTP和J2EE平台。建立在HTTP Servlet API规范之上,定义了API和用于应用打包的文件格式。SIP Servlet的核心能力是作为UA或proxy处理SIP信令。API规范的目的是允许应用完全的控制SIP信令,同时隐藏SIP协议的复杂性。
(2)SIP Servlet API的重要特性:
• SIP signaling:允许应用表现比较完整的SIP信令行为,包括UAC、UAS和proxy。
• Simplicity:容器处理“非本质的”复杂问题,比如管理网络监听点、重传、CSeq、Call-ID和Via头、路由等。
• Converged applications:容器支持聚合应用,即跨越多种协议和媒体类型,比如web、电话和在线应用。
• Third party application development:servlet模型支持第三方应用开发。XML部署描述符用于应用开发者和部署者之间交流信息。
• Application composition:多个应用可能会执行同一个到来或发送的请求或响应。每个应用拥有自己的一系列规则,并且以定义好的有序的方式独立于其他应用执行。
• Carrier grade: servlets将应用数据存储在容器管理的session对象中。为实现高可达性,可能需要保持或复制这些数据。
(3)对协议的支持:
SIP Servlet支持RFC3261定义的基础SIP功能,同时还支持一些SIP扩展:事件通知框架(RFC3265)和为即时消息定义的Message方法(RFC3428)。
(4)几个特点:
FOCUS:enabling communication capabilities to non-telecom developers.
Converged Application:一个Servlet应用可能同时包含SIP servlet和HTTP servlet。聚合的容器用来部署SIP和HTTP servlet,并且允许状态在他们之间共享。通过应用session将多个协议session绑定在一起。
Application Composition:SIP Servlet允许一个请求触发多个应用。应用组合功能的选择和多条匹配规则的选择交由应用来管理。但是,如果实现了应用的组合,那么规范要求cascaded业务模型,即应用之间是互相独立的,每一个都必须遵守标准的SIP规则。
(5)编程模式——容器 SIP Servlet的另一个特点
SIP servlet最核心的概念是容器。SIP Servlet容器既可以控制下层的SIP事务,也可以管理已经建立的对话。SIP Servlet容器负责管理监听点、线程、事务、对话、会话状态和应用组件等资源,提供了可供应用程序使用的许多服务,比如自动重试、消息调度和排队、分流和归并,以及状态管理。应用程序中只需包含高级的消息处理和业务逻辑。这使SIP服务的开发成为一件轻而易举的事情。业务开发优势之一
基于SIP Servlet和基于HTTP Servlet进行应用开发的模式很相似,这对于熟悉HTTP Servlet编程的开发人员来说,使用SIP Servlet开发变得非常容易。此外,SIP Servlet API与J2EE Servlet API的关系密切,并且它具有较强的可扩展性。业务开发优势之二
JAIN SIP与SIP Servlet比较
(1)适用平台不同:JAIN SIP适用于J2SE平台;SIP Servlet适用于J2EE平台。
(2)SIP Servlet旨在enabling communication capabilities to non-telecom developers,这使得它更适合于各种业务的开发,包括企业级应用;而JAIN SIP没有这一特点。个人认为,这是决定SIP Servlet广泛用于聚合业务开发的很重要的因素。
(3)JAIN SIP在使用和开发应用时比SIP Servlet API更友好;SIP Servlet运行在Java EE容器上,因此使用环境更加强健。这种说法不太理解,是指JAIN SIP编程模式更简单吗?
(4)JAIN SIP API典型应用是用于客户端应用的开发;SIP Servlet API更适合于服务器端应用的开发。
分享到:
相关推荐
2. **JAIN SIP组件**:介绍JAIN SIP API中的主要类和接口,如`SipFactory`、`SipStack`、`SipProvider`、`MessageFactory`、`HeaderFactory`等,它们在SIP应用程序中的角色和用法。 3. **会话管理**:讲解如何使用...
1. **SIP实体**: JAIN SIP API定义了几个核心的实体,包括`SipProvider`(提供SIP服务)、`SipStack`(管理SIP堆栈)和`SipFactory`(创建SIP对象)。开发者可以使用这些实体来创建和管理SIP会话。 2. **消息处理**...
基于JAINsip的一个proxy源码,有对sip感兴趣的朋友,可以下载,作为sip的一个代理服务器,实现sip消息的接收和发送。
**JAIN SIP实例代码及文档**是一份涵盖了JAIN SIP协议栈相关知识的资源集合,主要包含协议栈的JAR文件、详细的协议栈文档以及基于message实现的实例代码。这份资源对于理解并应用SIP(Session Initiation Protocol)...
基于javafx与jainsip的聊天软件
**基于JAIN SIP的聊天室系统详解** JAIN SIP(Java API for Integrated Networks Session Initiation Protocol)是Java语言中用于实现会话初始化协议(SIP)的应用编程接口。SIP是一种应用层控制协议,用于创建、...
基于JainSip的聊天室程序,其中包含sip包,对练习JainSip有帮助。
JAIN-SIP的例子,带界面。可以发送和接受sip报文, 解释了Jain-sip基本原理和功能 适合初学者
在Java EE环境中,可以通过Servlet容器来部署SIP应用,利用容器提供的服务,如会话管理和事务处理。 **5. 实例分析** 一个简单的JAIN SIP应用可能涉及以下步骤: 1. 初始化SIP堆栈,创建`SipStack`实例。 2. 创建`...
基于JAIN SIP的sip实现技术。sip 的java实现
SIP需要用到的四个包:concurrent-1.3.4.jar,jain-sip-api-1.2.1.4.jar,jain-sip-ri-1.2.295.jar,log4j-1.2.8.jar
包括登陆和发起呼叫流程
SIP需要用到的四个包:concurrent-1.3.4.jar,jain-sip-api-1.2.1.4.jar,jain-sip-ri-1.2.295.jar,log4j-1.2.8.jar
**基于JAIN SIP的聊天室系统详解** JAIN SIP(Java API for IP Multimedia Subsystems)是一种Java编程接口,专门用于构建VoIP(Voice over IP)和多媒体通信应用。在这个基于JAIN SIP的聊天室系统中,我们探讨的是...
jain sip 源码
基于JAINSIP的多媒体会议系统设计与实现 基于JAINSIP的多媒体会议系统设计与实现 基于JAINSIP的多媒体会议系统设计与实现
**JAIN-SIP 例子详解** JAIN-SIP(Java API for Internet Multimedia Signaling)是一个开源的Java库,专门用于实现会话初始化协议(SIP)。SIP是一种应用层控制协议,广泛应用于VoIP、即时通讯和多媒体会议等场景...
jain-sip is a protocol to comunicate between cliens throught service.
用于呼叫控制的JAIN SIP 用于呼叫控制的JAIN SIP 用于呼叫控制的JAIN SIP 用于呼叫控制的JAIN SIP
SIP Servlet是Java标准化机构JCP制定的一个SIP应用及其运行容器的开放化的标准应用程序接口,它基于目前流行的J2EE中的Java Servlct架构,将互联网应用的开发模式移植到SIP应用开发中。 SIP Servlet是基于组件与容器...