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更适合于服务器端应用的开发。
分享到:
相关推荐
基于JAINsip的一个proxy源码,有对sip感兴趣的朋友,可以下载,作为sip的一个代理服务器,实现sip消息的接收和发送。
基于javafx与jainsip的聊天软件
基于JainSip的聊天室程序,其中包含sip包,对练习JainSip有帮助。
JAIN-SIP的例子,带界面。可以发送和接受sip报文, 解释了Jain-sip基本原理和功能 适合初学者
基于JAIN SIP的sip实现技术。sip 的java实现
JAIN-SIP代码全集 不容错过的详细范例
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的聊天室 完整版 服务器+客户端
包括Jain SIP协议栈的JAR文件和协议栈文档以及使用message实现的一份实例。
sip帮助文档,开发包在另外一个目录里面
基于JAINSIP的多媒体会议系统设计与实现 基于JAINSIP的多媒体会议系统设计与实现 基于JAINSIP的多媒体会议系统设计与实现
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是基于组件与容器...
jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档jain sip 入门文档
Java JAIN SIP tutorial
这个是一个比较详细的jainsip开发教程。