当前位置: 首页 > 软件库 > 企业应用 > 开源SIP项目 >

JAIN-SIP

授权协议 NIST
开发语言 Java
所属分类 企业应用、 开源SIP项目
软件类型 开源软件
地区 不详
投 递 者 管和志
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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更适合于服务器端应用的开发。

  • 由于工作需求,本人无奈从android开发,临时调去研究sip服务器,后找到了一款sip服务器软件,经过不懈的努力,终于完成公司的sip业务需求! 后来意外发现了JAINSIP,便来了兴趣,就研究了一下,小有所感,编写成博客,以便参考! 其实sip服务器,就相当于一个socket服务器,但是有点差别。 首先创建一个监听对象,监听sip客服端的连接: Sip.kotlin import java.u

  • Java web服务器实现SIP通讯(或GB28181),一般有两种选择:SipServlet和JainSip 前者更适合服务器,后者较适合客户端 前者用类似web servlet的方式实现了sip通信,直接就实现了多线程的sip通信的并发 后者相对底层一点,不具有并发能力 但,前者需要Web容器的支持,目前好象能用的只有两三种,且与web servlet并存性好像也不好 故,考虑到要用tomca

  •  jain-sip 一些类的初步理解 1.javax.sip.ClientTransaction : ClientTransaction 应 用可以理解 为发 送 INVITE 信息到 UAS 。 ClientTransaction 也用从 SipListener 接收到的回 应进 行匹配。和 ServiceTransaction 相 对应 。 方法:     ClientTransaction

  • 公司需要开发一个Android端的GB28181客户端,网上有大神开发了电脑端的Java版本,使用jain-sip-ri来处理信令,使用ffmpeg来推流,推的是一个本地视频文件。项目地址如下: gitee地址:https://gitee.com/wydpp/gb28181-client github地址:https://github.com/apachefarmer/gb28181-client

  • import gov.nist.javax.sip.SipStackExt; import gov.nist.javax.sip.clientauthutils.AuthenticationHelper; import gov.nist.javax.sip.clientauthutils.UserCredentials; import gov.nist.javax.sip.stack.NioMes

  •   1. javax.sip.ClientTransaction : ClientTransaction 应 用可以理解 为发 送 INVITE 信息到 UAS 。 ClientTransaction 也用从 SipListener 接收到的回 应进 行匹配。和 ServiceTransaction 相 对应 。 方法: ClientTransaction 的方法: Request createA

  • http://java.net/projects/jain-sip/ http://www.oracle.com/technetwork/articles/entarch/introduction-jain-sip-090386.html

  • An Introduction to the JAIN SIP API ---- client-side application development http://www.oracle.com/technetwork/articles/entarch/introduction-jain-sip-090386.html 使用JAIN SIP开发基于SIP协议的应 http://blog.sina

 相关资料
  • 我试图使用JAIN SIP1.2和NIST实现构建一个简单的SIP应用程序。我使用JavaSE1.7和Eclipse作为我的IDE。问题是:在尝试构造SipStack对象时,我得到了javax.sip.PeerUnavailableException。 我的主要类: javax.sip.PeerUnavailableException有什么问题?

  • 我正在使用restcomm jain slee编写IDR sender java应用程序 Im使用下面的json解码来解码传入的http post请求json数据。 为此目的,我使用快速xml杰克逊。 我正在WildFly Docker容器中部署这个。当试图解码jason时,我发现了这个错误。Java语言lang.NoClassDefFoundError:com/fasterxml/jackson

  • 问题内容: 我正在使用Java开发SIP应用程序,并且想知道目前最常用的SIP库是什么。 MJSIP? 问题答案: 据我所知,它的JAIN- SIP 。顺便说一句,很高兴了解MjSip。您可能对JBoss Mobicent的 关注感兴趣,当前用户指南尚不完整。并且您不会在Mobicent上找到太多帮助。 或者,正如metadaddy说在这里,“你可能想看看SailFin -它是一个SIP Serv

  • 问题内容: 我想将.wav文件从我的Android传输(仅发送)到软电话(x-lite),以便x-lite上的被叫人可以听到.wav文件的声音。 情况如下:Android和x-lite都在同一WLAN中,并且都连接到FreeSwitch。我可以从Android手机拨打x-lite。如果在x- lite上接受了呼叫,则android将发送.wav文件,我可以在Wireshark中看到RTP包(G.7

  • 有人知道如何在Twilio语音请求中启用SIP元数据(按此留档:https://www.twilio.com/docs/api/twiml/twilio_request)吗? 我们通过弹性SIP中继向Twilio号码发送呼叫。我们希望在Twilio请求中使用SIP元数据来使用Twiml路由呼叫。最终,我们将与外部合作伙伴一起完成这项工作,但我们现在正在用自己在Twilio中的数字进行测试。 动机是

  • 如何在Android系统中编程解锁屏幕? 解锁Android锁屏 如何通过编程阻止Android设备进入Hibernate状态? 默认锁定屏幕上的Android活动 Android创建一个活动浮动在锁定屏幕上 以编程方式解锁Android手机? 锁屏时如何显示活动? 如何解除锁屏? KeyGuardManager出现问题 提前道谢。