用于呼叫控制的JAIN SIP

JAIN SIP API详解与GB28181服务器实现【保姆级源码教程】 这篇文章展示了基于Java SE如何创建客户端侧的SIP应用。JAIN SIP API是一个强大的“SIP协议栈”。本文将通过一个简单的即时通讯程序以及一个GB28181协议的简单应用程序,详细的分析该技术。 详细的代码说明,SIP学习一眼便会!玩转Java信令服务器的开发,玩转Java音视频,玩转融合通信! 阅读详情

用于呼叫控制的JAIN SIP

                孟  岿(广东省电信公司佛山市分公司      佛山 528000)
                周  文(南京市教育局中小学生卫生保健所  南京 210000)

摘  要  综合网络的Java 应用编程接口(JAIN,Java API for Integrated Networks)是一组基于Java技术的API,这些接口将业务可移植性、网络聚合以及安全的网络接入引进电话网和数据网络,使得在Java平台上快速开发下一代电信产品和服务成为可能。本文在简要介绍了JAIN之后,重点介绍了JAIN SIP API。
关键词  综合网络  呼叫控制  JAIN  会话发起协议

1  概述
    JAIN由两种API规范组成:
    · 协议API规范规定有线、无线和IP信令协议的接口;
    · 应用API规范涉及在跨越协议API规范包括的所有协议的Java框架内创建服务所需要的各种API。
     作为Java平台的一种共有扩展,通过为公共交换电话网(PSTN)、分组网(如IP或ATM)和无线网上的业务创建提供高层次的抽象能力及相关的Java接口,JAIN技术使得IP与IN(智能网)协议的集成(这就是所谓的综合网络)成为可能。此外,通过将网络向Java应用开放,使得Java应用程序能够对网络内部的资源进行安全的访问,这就为推出成千上万种可移植的综合服务(而不是目前可获得的数十种业务)创造了机遇。可以说,JAIN技术正将电信/Internet市场从许多专有的封闭系统改造成一种单一的开放环境,在这种开放的网络体系结构中,可以快速创建和部署新的业务,从而能够提供大量各种各样的新服务。
2  JAIN目标和活动范围
    JAIN的目标是创建一条从第三方服务提供商、基于软设备的服务供应商、电信供应商和网络设备供应商,到电信、消费者和计算机设备制造商的开放的价值链。
    就像图1所示的那样,JAIN将有线、无线和基于分组的网络综合成一个整体。协议API规范中包含了将特定网络协议用于JAIN模型的内容。另外,JAIN倡议将协议API规范所涉及的协议抽象成为一个单一的呼叫控制、协调和事务处理模型,以供愿意遵从它的服务使用。该工作由应用API规范中的工作组进行。
    JAIN的第一步目标定位是网络的三个主要层面:
    网络层:
    · 电信:(高级)智能网(AIN/IN)或中心集中在ISUP、INAP和TCAP方面的7号信令系统(SS7)。
    · 无线:带移动应用部分(MAP)层的SS7。
    · 互联网或分组:SIP、MGCP、Megaco和      H.323。
    信令层:
    · 电信:信令业务点(SSP)或交换机。
    · 无线:移动交换中心(MSC)。
    · 互联网:新兴的软交换机或呼叫代理,以及媒体网关控制器或H.323网守(gatekeepers)。
    业务层:
    · 电信:业务控制点(SCP)。
    · 无线:基站控制器(BSC)、归属位置寄存器(HLR)、拜访位置寄存器(VLR)和MSC的任何组合。
    · 互联网:应用服务器。
3  JAIN商业动力和工业目标
    JAIN倡议将业务可移植性、网络聚合以及安全的网络接入引进电话网和数据网。这将肯定会在下述几个方面改变目前这些网络的企业结构。
    · 业务可移植性:写一遍,可在任何地方运行。技术发展目前受到专有接口的限制。这种现象增加了开发成本,延长了推向市场的时间,并增添了维护要求。有了JAIN倡议,专有接口就被改造成统一的Java接口,从而实现真正的可移植应用。
    · 网络聚合:综合任何网络。JAIN技术通过提供必要的设施,使得应用和服务能够在PSTN、分组和无线网络上运行,从而加快网络聚合进程。随着对IP上业务需求的不断增长,更高效率的管理以及与IT更大的整合将可能形成新的规模效益。
    · 安全的网络接入:任何人都能进行接入。通过使得网络以外的应用能够直接访问网络资源和设备,执行特定的动作或功能,这样就可为开发者和用户创造一种新的环境。当电信网内的功能与智能可以在受控状态下访问时,新服务的市场机遇是巨大的。
    JAIN的工业目标是,将电信/Internet市场从许多专有的封闭系统改造成一种单一的开放环境,在这种开放的网络体系结构中,可以快速创建和部署新的业务,从而能够提供大量各种各样的新服务。通过将网络向Java应用开放,使得Java应用程序能够对网络内部的资源进行安全的访问,这就为推出成千上万种可移植的综合服务(而不是目前可获得的数十种业务)创造了机遇。通过使用Java和JAIN技术,使得通信公司能够扩展服务,从而使得这些服务更加富有特色;同时,使得下一代电信应用的开发更快、更简单且更经济。
    专有权障碍的消除将为开放的市场打好基础,网络设备提供商(NEP)、独立软件供应商(ISV)、协议栈供应商、服务提供商和通信公司都能够在该市场上交易各种各样的基于Java技术的构件。然后,参与共享者将能够依据功能和价值来选择他们的构件和供应商。该“开放的价值链”市场模型将刺激现有构件的重用和附加的或缺少的功能的开发——使得效率和创新都达到最大值。它也为有改革精神的新参与者打开了市场。
    JAIN技术所提供的下一代体系结构创建了一个部署新服务的水平的运动场。当所有网络层面(硬件公司、协议栈提供商、网络设备提供商、服务提供商和通信公司)都参与时,该模型会获得最佳服务。
    在竞争强烈的电信市场里,接受这些下一代能力的通信公司通过调整它们创建新服务的能力将会成功。
4  JAIN SIP API
    基于SIP的网络不仅重新定义了PSTN以包含所需的所有PSTN功能,而且为语音以外的媒体通信提供了成长和扩展的空间。采用SIP作为因特网上的语音和分组网络上的通信业务事实上的标准,重新定义网络元素,并将计算平台分解到业务创建工具、应用服务器、SIP电话、综合接入设备、网关及网关控制器、SIP服务器、基于SIP的业务、SIP计费解决方案、开发者工具箱、SIP测试工具、SIP用户代理以及SIP网络管理中。SIP还是未来的4G全IP移动网的指定基础协议。
    由于基于SIP的网络,配以位置和服务器代理,可使得多家供应商和多个网络能够进行互操作,所以,基于SIP的通信增长仅受它必须管理的媒体连接的限制。目前,已经有一大批开发者在编写基于SIP通信的应用、代理服务器、用户代理、工具、控制器等。
    SIP的优势在于,它在IP上实施基本呼叫控制。SIP是一种请求/响应协议,客户发送请求给服务器,服务器发送回对这些请求的响应。典型的应用一般由客户和服务器功能实体构成。用户代理(UA)是一个智能端点,它通过创建并发送INVITE请求来发起会话。请求可以直接发送给另一个UA或者发送给要经过的一个或多个代理。这(些)个代理基于本地策略和该SIP请求中所包含的信息对这些请求进行转发。
    图2示出了通过一个SIP代理服务器在两个UA(UAC主叫和UAS被叫)之间建立和拆除典型的SIP呼叫/会话的过程,其中1~8步代表呼叫建立,而9、10两步则代表呼叫拆除,下面简要解释一下在UAC和UAS之间传递的消息。正如图2所示的那样,一个端点希望建立一个语音连接,因此一个充当用户代理客户(UAC)的UA发起一个INVITE(邀请)请求,并且通过一个代理服务器(代理服务器回答一个100/TRYING(尝试))将该请求发送给充当用户代理服务器(UAS)的第二个UA。在解析地址后,服务器回答一个180/RING -
ING(振铃),然后在接收方接受该呼叫后即返回200/OK响应。当客户收到OK响应时,发送一个ACK(确认)请求来确认收到最终响应,并且在两个用户代理之间建立起通信,于是媒体数据流就建立起来了,从现在起会话就可以开始进行了。该ACK可以不经过代理,因为两个UA之间的网络路径已经建立好。挂机时,由其中的一方发出一个BYE,另一方则用200/OK进行响应。BYE请求表示一方想要终止该会话。
    在JAIN SIP API体系结构中,为所有SIP报头和报文定义了类,并借助提供者/监听者接口,将用于处理报文的JavaBeans体系结构的接口定义为事件。
    由于JAIN SIP API是对SIP标准的完整定义,所以,任何基于SIP的程序都可将JAIN SIP API作为Java标准接口,用到任何JAIN SIP认证的栈中。这意味着应用服务器、SIP电话、网关及网关控制器、SIP服务器、基于SIP的业务、SIP计费解决方案、开发者工具包、SIP测试工具、SIP用户代理以及SIP网络管理,均可利用JAIN SIP API来达到跨越SIP栈实现的可移植性。
    图3示出了典型的SIP网络情境中SIP相对于其他基于分组的协议(如MGCP等)的体系结构,其中JAIN SIP接口用于代理服务器、媒体网关和客户端。该图中没有示出所有可能类型的SIP端点,只示出了控制协议,至于边缘设备之间的媒体流都因为了简洁而省略了。
    由于JAIN SIP API涵盖的内容远比用户代理或基于客户的软件所需要的内容丰富,所以就又开发出了JAIN SIPLite API,作为JAIN SIP API和基本呼叫控制处理的一个功能子集。JAIN SIPLite API面向无需全套JAIN SIP API类定义的用户代理或复盖区较小的客户。
     SIP Servlets API使用与HTTP Servlet处理HTTP报文相同的方式,扩展了HTTP Servlet定义,以包含对SIP报文的处理。与HTTP Servlet相同,用于SIP Servlet的目标平台为代理服务器或应用服务器。SIP Servlet可以利用JAIN SIP API的结构。该API的结构与HTTP Servlet的结构相似。
5  SIP和ISUP的对照与比较
    会话发起协议(SIP)是一种应用层控制(信令)协议,用于创建、修改和终止一个或多个与会者参与的会话,如包括Internet电话呼叫、多媒体分发和多媒体会议。
    用来创建会话的SIP邀请可以携带会话描述,使得参与者能够协商同意使用一组兼容的媒体类型。SIP使用称为代理(proxy)服务器的部件来帮助将请求路由到用户的当前位置,认证和授权请求服务的用户,实现提供商呼叫路由选择策略,以及向用户提供功能特性。SIP还提供注册功能,使得用户能够上载他们的当前位置供代理服务器使用。SIP可以运行在几种不同传输协议的上面。
    ISUP为建立、测试、维护和拆除电路的SS7协议。JAIN ISUP如图4所示。
    对比ISUP与SIP,初始地址报文(IAM)如同INVITE, 地址完整报文(ACM)如同100/TRYING,而应答报文(ANM)则如同180/RINGING。SIP中的ACK在ISUP中没有等同的结构成分,只是为了提供与SIP网络的某种程度的协调。释放消息(REL)如同BYE,而释放完成消息(RLC)如同200/OK。
    两种协议都提供同样的功能,即建立连接。有人可能会说SIP超越了语音,但是,只要对ISUP进行简单的扩充和改良,只要所有运营商和国家都有改良的ISUP,即可将ISUP扩展至支持任何媒体。两种媒体均可扩展,即可在标准之外添加参数。
    ISUP经受了岁月的考验,如今在世界各地的很多网络上运行,它既健壮又可靠。与SIP不同,ISUP还承担媒体连接责任。ISUP的很大一部分原语处理电路管理。在SIP中媒体是网关的责任,而接口是MGCP或Megaco。ISUP乃至SS7的问题,在于供应商间和运营商间缺乏互操作性。这只会推动在IP上运行的开放式ISUP的发展。由于全球都在采用IP,SIP将取代ISUP作为一种信令协议,而ISUP将仅用于PSTN。
    由于SIP是HTTP的扩展,SIP立即得到IP派别的接受,并可在HTTP运行的任何地方运行。在必需互操作性的公共领域中,所有计算平台均可成为SIP信令平台。SIP解析地址的动态特性,也使多方互操作成为可能。
    在另一方面,ISUP是由数个标准组织为封闭而受保护的网络中的交换平台而定义出来的。从一开始就没有在基于ISUP的平台之间进行互操作的动力。ISUP依赖一个静态的点码配置;而SIP则依赖一个可在运行期间的任何时候进行更新的代理服务器。这使SIP对任何IP网络和任何供应商都是可扩展的。
    但无论差别多大,SIP和ISUP都确保建立和撤销一个语音/媒体电路的功能。它们都具备在端点有一个振铃装置,然后建立和撤销连接的内置概念。它们都是为网络信令设计的,都从协议的观点看待问题。依照这种观点,网络体系结构定义了网络元素、报文、协议以及互连规则。这种观点针对的是连接如何建立,而不一定考虑谁建立连接和为什么建立连接。
    SIP网络定义与INAP之间还有其他的一些相似之处,其中的协议更多的是建立在功能元素而不是纯粹的报文传送上。JAIN的倡议(initiative)在两者之间不作选择。JAIN倡议的驱动力在于为所有通信(无论是SIP、ISUP还是INAP)提供Java技术标准。
     

    孟岿,男,工程师,经理,1999年在南京邮电学院获计算机应用专业工学硕士学位,目前主要从事电信网络规划、建设,数字信息传输及计算机通信方面的工作。
    周文,女,工程师,1988年在南京师范大学获得计算机科学技术理学学士学位,目前的主要研究方向是计算机应用。

如何基于freeswitch用Java开发呼叫中心系统 FreeSWITCH是一个开源的电话软件交换解决方案,它提供了丰富的通信功能,如语音、视频通话、消息传递、会议等。FreeSWITCH支持多种协议,如SIP、H.323、Skype等,使其能够与广泛的通信设备和服务进行互操作。于FreeSWITCH用Java开发呼叫中心系统是一个复杂但可行的项目。通过仔细规划、配置和测试,你可以构建一个强大、灵活且可扩展的呼叫中心系统,以满足你的业务需求。 阅读详情

相关推荐

JAIN SIP协议栈实战与文档

JAIN SIP(Java API for Internet Networking - SIP),是SIP(Session Initiation Protocol)在Java环境下的应用程序接口,提供了一套标准的API来帮助开发者构建基于SIP的应用程序。JAIN SIP起源于电信行业,旨在为VoIP(Voice over IP)和其他实时通信服务提供一个统一的编程标准,它确保了不同厂商设备和服务之间的互操作性。

weixin_26854475的博客 931

JAIN SIP API 简介

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34221332的博客 1235

Java SIP通信开发实战源码解析

SIP(Session Initiation Protocol)是一种基于文本的应用层信令协议,由IETF在RFC 3261中定义,用于建立、修改和终止多媒体会话。其设计借鉴了HTTP的简洁性,采用请求-响应模型,支持可扩展头部字段与灵活的路由机制。(SDP body)该协议运行于UDP、TCP或TLS之上,具备良好的穿透NAT能力,并通过Via头实现路径保留,确保响应正确回传。⚠️ 生产环境中可根据网络质量调整Timer A/B值,高延迟网络可适当延长。

weixin_30598047的博客 1380

【亲测免费】 推荐开源项目: Jain-SIP

推荐开源项目: Jain-SIP Jain-SIP 是一个开放源代码 Java API for SIP (Session Initiation Protocol) 和相关协议, 支持构建基于 IP 的语音、视频、即时消息和数据应用程序。 什么是Jain-SIP? Jain-SIP 是一个用于开发 VoIP 应用程序的 Java 框架, 它提供了一组接口和类来处理 SIP 协议的消息和事务。该框架支...

gitblog_00060的博客 1699

Java入门SIP协议:构建和管理多媒体通信会话

会话初始协议(Session Initiation Protocol, SIP)是IETF(Internet Engineering Task Force)定义的一种应用层控制(信令)协议,用于创建、修改和终止包括互联网电话在内的多种类型的会话。SIP协议以其灵活、扩展性强、易于集成的特性,成为构建VoIP(Voice over IP)通信系统的重要标准。核心特性包括:文本基础:SIP消息使用文本格式,易于调试和阅读。状态无关性:SIP协议本身不保持任何状态信息,简化了网络元素的设计。

weixin_28872035的博客 1791

一个简单的JAVA-JAIN-SIP客户端,可以连接SIP服务端发起呼叫

包括登陆和发起呼叫流程

面向呼叫控制和无线网的JAIN API

面向呼叫控制和无线网的JAIN API面 向 综 合 网 络 的 JAIN API 将 业 务 便 捷 性、 网 络 汇 聚 以 及 安 全 的 网 络 接 入 带 给 电 话 和 数 据 网 络。JAIN 技 术 为 公 共 交 换 电 话 网 (PSTN)、IP 网 和 无 线 网 的 业 务 创 建 提 供 了 新 水 平 的 抽 象 能 力 及 相 关 的 Java 接 口, 使 IP

2302

SIP需要用到的四个包中的jain-sip-ri-1.2.295.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协议栈浅析~

应用编程接口使用应用编程接口(API)构建业务是实现开放式业务结构的关键技术,也是下一代网络区别于传统电信网的主要特点之一。目前,关于下一代网络的开放式业务API标准主要包括:由Parlay组织、3GPP和ETSI SPAN共同制定的Parlay/OSA API以及由SUN公司在Java平台上推出的JAIN API。  Parlay API是由Parlay组织定义的便于业务开发者快速创建电

3110

JAIN实现简单点对点聊天软件 sip聊天软件 JAIN-sip聊天软件

运行环境: 1.java 2.ant 运行方式: 1.在java和ant环境变量配置好之后通过命令行进入到本目录(打开Readme。txt的目录) 2.在执行命令: ant 出现类似下面的信息: build: [javac] E:\hello\java\eclipse\libs\TextClient\build.xml:13: warning: 'includ eantruntime' was not set, defaulting to build.sysclasspath=last; set to false fo r repeatable builds BUILD SUCCESSFUL Total time: 0 seconds 3.执行命令: java -jar textclient.jar 启动一个客户端 如:java -jar textclient.jar bob 9999 4.再次执行上面的命令启动另外的客户(可多个)端如:java -jar textclient.jar bob 9998 5.程序正常启动之后在Send Message文本域中输入需要发送的消息 6.在To文本域中输入消息接收者的信息,具体内容可参考对应From中的内容 7.点击send。发送方和接收方都会提示成功 具体的代码解释在上面的链接中已经给出,可以将project导入到eclipse中学习

【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(3):Agent请求和响应

CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。这篇文章剖析一下 CangjieMagic 框架中的 AgentRequest 和 AgentResponse。

九丘教育官方博客 1475

JAIN SLEE

研究JAIN SLEE也有一段时间了,整体感觉这个规范发展很慢,没有什么社区。SLEE是IT企业想向电信设备企业渗入的,一个关于业务逻辑执行环境的规范。你可以把SLEE理解一个EJB2.X的规范,目前的版本为1.1。1.1还是一个未正式发布的草稿。1.1对1.0进行了大幅的修证,新增了很多东西,但离一个成熟的,完善的业务逻辑执行环境的规范很远。目前基于SLEE规范开发的产品,主要公司有mobice

2029

遗传病变异注释预测工具安装系列之------Exomiser 安装及bug处理

Exomiser是一个Java程序,它从全外显子组或全基因组测序数据中发现潜在的致病变异。 Java 版本必须为1.8以上。 Exomiser 最新版本下载 wget -c https://github.com/exomiser/Exomiser/releases/download/11.0.0/exomiser-cli-11.0.0-distribution.zip unzip ...

qq_37329349的博客 1535

JAIN SIP

[url]http://www.oracle.com/technetwork/cn/articles/entarch/introduction-sip-part-1-085274-zhs.html[/url] [url]http://www.oracle.com/technetwork/cn/articles/oem/introduction-jain-sip-090386-zhs.html[/...

iteye_5517的博客 185

树莓派4B学习笔记一

树莓派4b烧录Ubuntu20.04&&配置Ubuntu桌面

m0_55202222的博客 3634

别再死磕Excel了!用Vensim PLE免费版,30分钟搞定你的第一个系统动力学模型

本文介绍如何使用Vensim PLE免费版在30分钟内构建第一个系统动力学模型,无需编程或数学基础。通过个人储蓄增长案例,详细讲解因果回路图绘制、存量流量图创建及方程编写,帮助读者掌握动态系统建模与仿真技巧,适用于理财、项目管理等多种场景。

weixin_29045001的博客 328

JAIN&Parlay笔记

JAIN 做了很多的地层协议映射包括:JAIN-SIPJAIN-ISUPJAIN-TCAPJAIN-INAPJAIN-H.323JAIN-MGCPJAIN-MEGACO/H.248 JAIN-MAPJAIN-3G-MAPJCP公司再通信业务中越来越关注了Parlay只关注业务接口,底层映射依靠JAIN或者设备厂商ParlayX对呼叫控制能力需要加强下次介绍对业务层面的接口

2778

从零开始:用AutoLisp为AutoCAD定制专属工具栏(2023最新版)

本文详细介绍了如何利用AutoLisp语言为AutoCAD定制专属工具栏,以提升绘图效率。内容涵盖从环境配置、AutoLisp基础语法到实战开发的全过程,指导用户编写自动化脚本、封装功能函数,并最终通过CUI编辑器创建和部署个性化工具栏按钮,是2023年CAD用户实现工作流自动化与个性化的实用指南。

4k5l6j7h8的博客 299

基于JAINSIP协议栈的一个简单SIP服务器实现流程

SIP服务器采用B2BUA,sip呼叫控制实现流程 TAG: SIP服务器采用B2BUA,sip呼叫控制实现流程:  INVITE的请求:  收到INVITE后,克隆INVITE消息。替换Request URI被叫注册的地址。  替换VIA头为服务器地址。通过该INVITE请求得到客户端事务并通过  该事务来发送INVITE请求。  180

gredn的专栏 1万+

tewa-707e光猫超级密码获取方法

这款光猫很魔性,没有WIFI,没有USB接口,没有Telnet,试了很多方法去获取超级密码都不行。解密时可能会报错,可能是文件后面部分不晓得是咋拼接过来的,用AES解密时分组数据有问题。3、这个文件是用AES加密了的,直接打开是乱码,所以得用AES解密,key为16个字节的 x00。打开解出来的文件,然后搜索 telecomadmin,就可以发现超级密码了。参考资料里面的光猫不是同一款,但解密的方法基本相同的。

shaowl111的专栏 1万+

YOLO11全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

本文改进:BinaryAttention 结合YOLO11的C3k2模块,全网首发创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 852

NGN学习笔记6——NGN的业务提供技术

1.NGN业务的基本概念 1)定义: 下一代网络的根本目标是提供业务,业务可以被定义为一种软件应用,能够向用户提供有用的、完善的功能。它通过分布在网络中的多个计算元素上的软件组件的交互来实现。业务的用户可以是人,也可以是机器实体。NGN 主要关注融合网络环境中增值业务的提供。 ...

599

PX4从放弃到精通(二十七):固定翼姿态控制

固件版本 PX4 1.13.2欢迎交流学习,可加左侧名片。

超维空间科技的博客 6885
上一篇: 一个基于exosip的软电话例子
下一篇: API接口浅析 应用程序接口(API) Parlay JAIN
老白
博客等级 码龄23年 59粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值