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
消息通过一个事务被传到Sip
Provider,Sip
Listener用于监听到来的事件。此外,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: servlet
s将应用数据存储在容器管理的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更适合于服务器端应用的开发。
分享到:
相关推荐
《Jain Sip Presence Proxy:Java SIP 代理服务器解析》 在现代通信技术中,Session Initiation Protocol(SIP)是一种广泛使用的协议,用于建立、修改和终止多媒体通信会话,如语音通话、视频会议等。Jain Sip是...
### 基于JAIN SIP的SIP实现技术 #### 1. 引言 当前,在构建电话网络的过程中,存在两大主流信令体系:H.323与SIP(Session Initiation Protocol,会话启动协议)。H.323是由ITU-T(国际电信联盟电信标准化部门)...
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. **消息处理**...
标题“JAIN-SIP-Intellij_jainsip_”揭示了这是一个与JavaFX和JAIN SIP相关的项目,可能是一个使用IntelliJ IDEA开发的SIP(Session Initiation Protocol)通信应用。JAIN SIP是Java Advanced Intelligent Network ...
Java Jain SIP是一个强大的开源库,用于在Java平台上构建SIP(Session Initiation Protocol)应用程序。这个简单的JAVA-JAIN-SIP客户端示例展示了如何利用该库与SIP服务器进行交互,实现登录和发起呼叫的基本功能。...
JainSip,全称为Java API for Internet Protocol Multimedia Subsystem (IMS) Signaling,是Java中用于实现SIP(Session Initiation Protocol)应用的开放源代码库。SIP是一种网络协议,主要用于控制多媒体通信会话...
JAIN SIP,全称为Java API for Internet Telephony Session Initiation Protocol,是一个开源的Java库,用于实现SIP(Session Initiation Protocol)协议。SIP是一种应用层控制协议,广泛用于多媒体通信,如VoIP...
**JAIN SIP实例代码及文档**是一份涵盖了JAIN SIP协议栈相关知识的资源集合,主要包含协议栈的JAR文件、详细的协议栈文档以及基于message实现的实例代码。这份资源对于理解并应用SIP(Session Initiation Protocol)...
**JAIN-SIP简介** JAIN-SIP(Java API for Internet Multimedia Subsystems - Session Initiation Protocol)是Java平台上的一个开源API,它为开发者提供了一种处理和实现SIP(Session Initiation Protocol)协议的...
### jainsip 教程知识点概述 #### 一、jainsip简介 jainsip是Java Advanced Internet Networking Services (JAIN) SIP项目的一部分,它提供了一组Java API用于开发SIP(Session Initiation Protocol)应用。SIP是一...
2. **JAIN SIP API**:学习JAIN SIP提供的接口和类,如`SipFactory`用于创建SIP对象,`SipStack`代表SIP堆栈,`SipProvider`用于发送和接收SIP消息。 3. **SIP会话管理**:掌握如何使用JAIN SIP创建、修改和终止SIP...
### 使用JAIN SIP API在Android 6.0中构建SIP协议栈 #### 一、引言 在当今移动通信领域,特别是在Android平台上实现SIP(Session Initiation Protocol)协议栈变得越来越重要。SIP是一种广泛使用的信令协议,用于...
Java JAIN SIP教程 在Java世界中,JAIN (Java API for Integrated Networks) 是一个标准的应用程序编程接口,用于开发电话网络应用,如VoIP(Voice over IP)。SIP(Session Initiation Protocol)则是一种控制协议...
**基于JAIN SIP的聊天室系统详解** JAIN SIP(Java API for Integrated Networks Session Initiation Protocol)是Java语言中用于实现会话初始化协议(SIP)的应用编程接口。SIP是一种应用层控制协议,用于创建、...
JAIN SIP,全称为Java API for Integrated Networks Session Initiation Protocol,是Java平台上的一个开源库,专门用于实现Session Initiation Protocol(SIP)的应用。SIP是一种应用层控制协议,常用于多媒体通信...
在Java EE环境中,可以通过Servlet容器来部署SIP应用,利用容器提供的服务,如会话管理和事务处理。 **5. 实例分析** 一个简单的JAIN SIP应用可能涉及以下步骤: 1. 初始化SIP堆栈,创建`SipStack`实例。 2. 创建`...
**JAIN-SIP 例子详解** JAIN-SIP(Java API for Internet Multimedia Signaling)是一个开源的Java库,专门用于实现会话初始化协议(SIP)。SIP是一种应用层控制协议,广泛应用于VoIP、即时通讯和多媒体会议等场景...
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