SIP协议结构及java实现

合集下载

SIP协议详解

SIP协议详解

第3章SIP协议3.1 概述3.1.1 基本概念会话启动协议SIP(Session Initiation Protocol)是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。

这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。

即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。

参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。

SIP协议是一个正在发展和不断研究中的协议。

一方面,它借鉴了其他Internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题。

另一方面,它也充分考虑了对传统公共电话网的各种业务,包括IN业务和ISDN业务的支持。

利用带有会话描述的SIP邀请消息来创建会话,以使参加者能够通过SIP交互进行媒体类型协商。

它通过代理和重定向请求用户当前位置,以支持用户的移动性。

用户也可以登记它们的当前位置。

SIP协议独立于其他会议控制协议,它在设计上独立于下面的传输层协议,因此可以灵活方便地扩展其他附加功能。

SIP作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议,会话本身可以通过基于组播协议的会话通告协议(SAP)、电子邮件、网页通告、以及轻量级号薄访问协议(LDAP)等方式预先通告各个可能的参加者。

SIP协议支持别名映射、重定向服务、ISDN和IN业务。

它支持个人移动(personal mobility),即终端用户能够在任何地方、任何时间请求和获得已订购的任何电信业务。

总的来说,会话启动协议能够支持下列五种多媒体通信的信令功能:●用户定位:确定参加通信的终端用户的位置;●用户通信能力协商:确定通信的媒体类型和参数;●用户意愿交互:确定被叫是否乐意参加某个通信;●建立呼叫:包括向被叫“振铃”,确定主叫和被叫的呼叫参数;●呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等等。

SIP协议

SIP协议

SIP协议简介SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话的协议。

它是互联网工程任务组(IETF)定义的一种应用层协议,被广泛应用于语音通话、视频通话、即时消息和多媒体会议等实时通信领域。

SIP协议的主要目标是提供一种灵活、可扩展的机制,用于建立和管理通信会话。

它采用文本格式的消息交换方式,基于请求‑应答模式进行通信。

SIP协议使用统一资源标识符(URI)来标识终端设备和用户,通过SIP消息的交换来实现会话的控制。

SIP协议的设计思想是简单、可扩展和松散耦合。

它允许在不同的网络环境中使用各种传输协议,如UDP、TCP和TLS等。

同时,SIP协议也提供了灵活的会话控制功能,包括呼叫的建立、会话参数的修改和会话的终止。

SIP协议在实时通信领域有着广泛的应用。

它被广泛用于VoIP(Voice over IP)系统,使得用户可以通过互联网进行语音通话。

此外,SIP协议还支持视频通话、实时消息传递和多媒体会议等功能。

它提供了一种开放的架构,允许不同厂商的设备和应用进行互操作。

然而,SIP协议也面临着一些安全性和挑战。

由于SIP协议的开放性和可扩展性,攻击者可能利用其中的漏洞进行恶意攻击。

因此,实施SIP协议时需要采取一些安全措施,如认证、加密和防火墙等,以保护通信的安全和隐私。

总之,SIP协议作为一种用于建立和管理多媒体会话的协议,为实时通信提供了一种灵活、可扩展的机制。

它在VoIP 和其他实时通信应用中发挥着重要的作用,并为用户提供了丰富的通信体验。

然而,为了确保通信的安全性,使用SIP 协议时需要注意相关的安全措施。

SIP协议的工作原理SIP(Session Initiation Protocol)协议是一种基于文本的协议,用于建立、修改和终止多媒体会话。

它采用了简单而灵活的工作原理,使得通信设备能够进行会话的控制和管理。

SIP协议的工作原理可以概括为以下几个步骤:1.定位和寻址:SIP协议使用统一资源标识符(URI)来标识终端设备和用户。

阐述:SIP协议是什么

阐述:SIP协议是什么

阐述:SIP协议是什么sip协议是什么?可能刚刚接触这个协议的朋友会掌握不好它的定义。

那么⾸先我们要了解⼀下,⽬前企业中⼤多数VoIP应⽤都使⽤H.323协议,但是,随着越来越多的企业研究SIP协议,不久的将来基于SIP协议的VoIP必将迅速发展.那么在了解sip协议是什么之前,我们先来看看H.323协议的定义。

H.323协议簇 1.1基本概念 H.323是ITU-T第16⼯作组的建议,H.323由⼀组协议构成,其中有负责⾳频与视频信号的编码、解码和包装,有负责呼叫信令收发和控制的信令,还有负责能⼒交换的信令.1999年7⽉前,多数系统是基于H.323第⼆版的,⽽在此之后,H.323第三版开始应⽤.H.323是个框架性的协议,由系列协议组成,包括:H.225、H.245、G.711、G.723.1、G.729等. 1.2基本功能 ⽬前我国⽹上使⽤的H.323协议基本上是第⼆版本的.针对信令⽅⾯主要为H.225、H.245. 1.2.1H.225协议的功能 (1)RAS信令功能:就是采⽤H.225中的消息在端点和⽹守之间实现注册、接⼊许可、带宽修改、状态和拆除程序. (2)呼叫信令功能:采⽤H.225呼叫信令在H.323端点之间建⽴连接,包括呼叫建⽴和拆除等流程. 1.2.2H.245协议的功能 (1)控制功能:H.245控制功能采⽤H.245控制通路交换端到端控制信息,从⽽保证H.323实体的运作,其中包括能⼒交换、打开/关闭逻辑通路模式选择、流控消息、⼀般命令和指⽰.H.245信令在两个端点和⼀个⽹守之间建⽴.端点必须为其参与的每个呼叫建⽴正确的H.245控制通路,这个通路必须使⽤H.245消息和流程. (2)H.245的能⼒交换:指提供独⽴的接收和传送功能. (3)逻辑通路信令.每个逻辑通路承载从⼀个发送⽅⾄另⼀个或多个接收⽅的信息. (4)模式选择.接收⽅可以使⽤requestMode消息请求发送⽅发送⼀个特定模式. (5)主从决定.主从决定主要是解决冲突问题. 好了,到这⾥,⼤家爱应该能够清楚H.323等⼀系列协议的内容了,那么这⾥我们就具体讲解⼀下sip协议是什么。

SIP简介

SIP简介

SIP简介,第1部分:SIP初探时间:2006-04-07作者:Emmanuel Proulx浏览次数:18851本文关键字:SIP, JAIN, RFC3261signaling, WebLogic Communications Platform, 会话发起协议, 信令文章工具推荐给朋友打印文章摘要会话发起协议(Session Initiation Protocol,SIP)是一种信令协议,它对于通信业有着重要的意义。

本文从技术上对SIP进行了一般性的介绍,并说明了SIP如何为通信解决方案提供重要支持。

简介我曾经构想过一种软件,它可以“浮于”应用程序之上,提供辅助作用。

这不是一个哑的“帮助”系统,而是一个活动的技术支持代理,可以在Internet上进行讨论。

那时曾有人告诉我,“现有的工具、库、协议或带宽实现不了这样的要求!”时代已经不同了!许多人家中已经拥有基于DSL、光纤和其他技术的宽带网络。

存在大量高质量的工具和库,无论是商业的还是开源的。

标准驱动应用。

现在是时候来实现上述创新思路了。

了解SIP首先,我将向您介绍SIP,也就是会话发起协议。

SIP是一种轻量级的可扩展请求/响应协议,用于在两个端点之间开始通信会话。

这听起来是不是很熟悉?SIP在概念上源自于HTTP和SMTP,但是它的目的却不同。

可以把SIP消息与CB(民用波段)隐语10-code和Q-signal进行比较。

图1.用于管理CB呼叫的隐语在这个例子中,真正的消息包含在专用的呼叫协商消息中。

SIP是IETF于1999年提出的,在2002年进行了修订。

RFC 3261对它进行了描述。

本文中有关SIP的信息就选自RFC。

对SIP存在很多扩展,这些扩展中的很多都能在SIP-related RFCs and drafts清单中找到。

SIP有哪些优点呢?通常情况下,两个端点使用它来协商一次“呼叫”。

这里的协商包括介质(文本、语音等)、传输(通常是RTP、Real Time Protocol)和编码(codec)。

SIP协议结构及java实现

SIP协议结构及java实现

SIP事件子层(SIP transaction sublayer)
SIP事件子层(SIP transaction sublayer)
• 作用:尽管提供了很多功能。最主要的功能是用 来可靠地传输UDP数据。此外他还可以被事件用 户使用,透明传输。 • 可靠: (1)请求与相应的相关性(branch) (2)传输机制
• 协议实现的所有对象不都是由SipFactory创建 的。一些其他对象是由以下工厂创建: the MessageFactory(创建对象表示SIP消息) the AddressFactory(创建对象表示SIP地址) the HeaderFactory(创建对象表示SIP头部) 这三者的实体可通过调用SipFactory的工厂创 建的方法得到。
SIP核心子层(SIP core sublayer)
SIP核心子层在SIP体系结构的顶端,在这个 子层,实现了每个SIP实体的特定服务逻辑。每个 SIP实体尽管在其他层会共用某种逻辑,但是在核 心子层,他们有各自不同的服务逻辑。这些服务 逻辑 就是SIP核心。这样每个实体的不同服务逻 辑就将他们区分开来。这些核心包括 UAC,UAS,REGISTRAR,STATEFUL PROXY&STATELESS PROXY 注意:这些SIP实体是逻辑元素,不是物理元素。
JAIN SIP概况
• 行业术语通常称一个协议的实现过程为协 议栈。 • SIP协议栈可以由Java代码编写,也可以由 其他编程语言编写。 • JAIN SIP比较底层,变成结构表现的都是 些底层概念:消息,头部,IP地址,端口 等等。用于创建用户代理,代理服务器等 SIP实体。有利于深刻理解SIP的工作机制。
创建消息(请求/响应)
实例
事件监听模式

SIP协议解析实现语音和视频通信的协议

SIP协议解析实现语音和视频通信的协议

SIP协议解析实现语音和视频通信的协议SIP(Session Initiation Protocol)是一种用于建立、管理和终止多媒体会话的通信协议。

它是一种基于IP网络的协议,可实现语音、视频以及其他多媒体应用程序之间的通信。

本文将对SIP协议进行解析,并讨论它如何实现语音和视频通信。

一、SIP协议的基本结构SIP协议采用了一种客户端/服务器架构,其中客户端被称为SIP用户代理(SIP User Agent),服务器被称为SIP服务器。

SIP协议主要包含以下几个组成部分:1. SIP消息格式:SIP消息由请求和响应组成。

请求消息用于发起会话、修改会话和终止会话等操作,响应消息用于回应请求消息。

2. SIP请求方法:SIP定义了一系列的请求方法,如INVITE(邀请对方参与会话)、ACK(确认请求消息已被接收)和BYE(终止会话)等。

3. SIP状态码:SIP状态码用于指示请求的处理状态,如200表示请求成功,404表示未找到资源等。

4. SIP头部字段:SIP头部字段包含了一些用于描述会话的元数据,如Call-ID(会话标识符)、From(发起方标识)和To(接收方标识)等。

5. SIP会话描述协议(SDP):SDP用于在SIP会话中协商媒体类型、编码方式和传输参数等。

6. SIP代理:SIP代理用于处理SIP消息的传输和路由。

它可以将消息转发给下一个代理或目标终端,并负责处理各种网络地址转换等。

二、SIP协议的工作流程SIP协议的工作流程通常包括以下几个步骤:1. 注册:SIP用户代理向SIP服务器发送注册请求,以告知服务器其可用性和位置信息。

2. 呼叫建立:SIP用户代理向服务器发送INVITE请求,请求建立通话。

服务器根据请求中的目标地址找到被叫用户代理,并向其发送INVITE请求。

3. 呼叫传输:被叫用户代理发送响应消息,表示接受或拒绝通话。

如果接受通话,双方开始通过SDP协商媒体类型和传输参数。

SIP协议在Java消息服务系统中的应用研究

SIP协议在Java消息服务系统中的应用研究

rsace , ada I sa e evc s m ae nSPsrl pt td t o ia o f c apoet ee h d n SPmesg rie y t b sdo I v e ie ai e hcmbn t no t l r c. r s s e e ts x a wi i au j
Ce tr S uh s Ja tn ies , Ch n d 0 C ia 3 De at n f o ue ce c , n e, o twet ioo gUnv ri y t e g u6 3 , hn ; . 1 0 1 pr me t mp tr in e oC S
s se wh c a ul p c mpiae it b td SP a piain s se S P me sg t cu ea dc mmu iain p o e sae y tm, ih c nb i u o l td dsr ue I p l t y tm. I sa e s u tr o d c i c b r n n c t rc s r o
摘 要 : 会话 发起协 i ssini t t npo clSP作 为一 种新 兴的 因特 网多媒体 通讯 协议 , 建立 多方 多媒体通 讯和 I  ̄(es iao rt o,I) o nii o 在 P多 媒 体 子 系统 等方 面有 着很 大的优越 性 , 同时作为 N N 中的重要 协议 , I G SP协议 也越 来越 受到 业界的 关注 。Jv aa为 SP应 用 系 I 统开发提 供 了强 大的 J I Jv AP fr t rtd e rs一I A N( a Io i e a n t k) P开发平 台, 于构 建复杂 的分 布式 SP应 用 系统 。对 SP消息结 a n g e wo S 用 I I 构和 通信过程 进行 了初 步研 究 , 结合 实际 项 目阐述 了如何使 用 SPSrl 来 建立基 于 SP的消 息服 务 系统 。 并 I eve t I 关键 词: I SP协议 ; 消息服 务 系统; 分布 式应 用 系统 ; 即 时消息传 递;SP应 用 I

自己动手写SIP协议栈

自己动手写SIP协议栈

自己动手写SIP协议栈首先,SIP协议栈需要实现SIP协议的各个功能,包括请求和响应的解析与生成、消息的路由和转发、状态维护、媒体的协商与传输等。

以下是一个简单的SIP协议栈的实现步骤:1.理解SIP协议:阅读SIP协议的官方文档和RFC标准,了解SIP协议的语法、语义以及各个消息的格式和含义。

2. 实现SIP消息的解析与生成:根据SIP协议的规范,实现对SIP请求和响应消息的解析和生成功能,包括解析消息头、解析和生成SIP URI、解析和生成SDP(Session Description Protocol)等。

3.实现SIP消息的路由与转发:根据SIP消息的目的地址,实现对SIP消息的路由功能,将消息转发到正确的目的地。

4.实现SIP会话的状态维护:根据SIP协议定义的各个状态和状态转换规则,实现SIP会话的状态维护功能,包括会话的建立、修改和终止。

5.实现媒体协商与传输:SIP协议通常用于建立多媒体会话,如音频或视频通话。

实现SIP协议栈的媒体协商与传输功能,包括与对方进行媒体协商、建立媒体通道、传输媒体数据等。

6.实现网络通信功能:SIP协议栈需要与网络进行通信,接收和发送SIP消息。

实现底层的网络通信功能,包括建立和维护TCP或UDP连接、接收和发送SIP消息等。

7.调试和测试:在实现完SIP协议栈的各个功能后,进行调试和测试,确保SIP协议栈的正确性和稳定性。

以上只是一个简单的实现步骤,实际的SIP协议栈实现可能更加复杂。

在实现过程中,还需要考虑对SIP协议的各种拓展和扩展,如支持SIP中的各种扩展头、支持SIP的安全性等。

总结起来,实现一个SIP协议栈是一个非常复杂的任务,需要对SIP协议有深入的理解,并具备底层网络通信的知识。

在实现过程中,需要遵循SIP协议的规范,并进行充分的调试和测试,以确保SIP协议栈的正确性和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SIP核心子层(SIP core sublayer)
SIP事件子层(SIP transaction sublayer)
• SIP事件子层是实现事件处理的层次。对于许多 SIP实体,这一层的服务逻辑是相同的。 • SIP事件的两个组成部分: (1)客户端事件(Client Transaction) (2)服务器事件(Server Transaction)
SIP事件子层(SIP transaction sublayer)
• 可靠传输机制:一个SIP事件包含请求,以及与请 求相关的临时相应和最终响应。
SIP传输子层( SIP Transport Sublayer )
• 作用:这一层负责SIP消息的实际传输与接收。 (1)确定为哪个将要被发送或接收的请求或响应 建立传输连接。 (2)命令传输层建立传输连接 (3)命令传输层监听过来的消息 (4)命令传输层发送或接受SIP消息 (5)将从传输层收到的响应交付给相应的传输用 户 (6)负责封装SIP消息 (7)处理传输层的错误
• 协议实现的所有对象不都是由SipFactory创建 的。一些其他对象是由以下工厂创建: the MessageFactory(创建对象表示SIP消息) the AddressFactory(创建对象表示SIP地址) the HeaderFactory(创建对象表示SIP头部) 这三者的实体可通过调用SipFactory的工厂创 建的方法得到。
SIP协议结构及java实现
不保证内容的准确性,指证请联系 QQ 403690072 欢迎交流
SIP实现的功能在协议内部是如何工作与实现的?
SIP核心子层(SIP core sublayer)
SIP核心子层在SIP体系结构的顶端,在这个 子层,实现了每个SIP实体的特定服务逻辑。每个 SIP实体尽管在其他层会共用某种逻辑,但是在核 心子层,他们有各自不同的服务逻辑。这些服务 逻辑 就是SIP核心。这样每个实体的不同服务逻 辑就将他们区分开来。这些核心包括 UAC,UAS,REGISTRAR,STATEFUL PROXY&STATELESS PROXY 注意:这些SI• JAIN(Java APIs for Integrated Networks) • JAIN SIP 是Java平台专为SIP提供的集成 网络接口。 • JAIN SIP主要为应用开发人员提供如下接 口:
(1)构建和解析SIP消息 (2)使用SIP事件子层 (3)使用SIP传输子层
创建消息(请求/响应)
实例
JAIN SIP概况
• 行业术语通常称一个协议的实现过程为协 议栈。 • SIP协议栈可以由Java代码编写,也可以由 其他编程语言编写。 • JAIN SIP比较底层,变成结构表现的都是 些底层概念:消息,头部,IP地址,端口 等等。用于创建用户代理,代理服务器等 SIP实体。有利于深刻理解SIP的工作机制。
JAIN SIP概况
JAIN SIP 体系结构
• JAIN SIP 体系结构基于三种模式:
提供者模式 工厂模式
事务监听模式
提供者模式(peer-provider pattern)
• 提供者允许应用接受和发送SIP消息,在JAIN SIP中这个提供者就是SipProvider接口 • 除了SipProvider之外还有两个接口用来实现 SIP的其他方面:SipStack接口和 ListeningPoint接口 • SipStack接口用于管理和配置底层的SIP协议 栈 • ListeningPoint接口是SP消息实体发送接收消 息的套接字的Java表示
SIP传输子层( SIP Transport Sublayer )
• 组成: (1)客户端传输: 负责从传输用户接收请求并将请求传送到网 络;从网络收到响应再交付给适当的传输用户 (2)服务器传输: 负责从网络接受请求,并将请求交付给适当 的传输用户;从传输用户接受响应再传送到网络。
SIP语法和编码功能
SIP核心子层(SIP core sublayer)
• 在这一层,SIP核心的实现可分为两种类型:
• 一个核心用到事件子层服务,即称他是事 件用户。 • UAS core, UAC core, STATEFUL PROXY core, REGISTRAR core
事件用户
传输用户
• 用到传输子层服务的实体,都是传输用户。 • 事件子层一定是传输用户。核心子层中只 有STATELESS PROXY core 是传输用户
SIP事件子层(SIP transaction sublayer)
SIP事件子层(SIP transaction sublayer)
• 作用:尽管提供了很多功能。最主要的功能是用 来可靠地传输UDP数据。此外他还可以被事件用 户使用,透明传输。 • 可靠: (1)请求与相应的相关性(branch) (2)传输机制
工厂模式
• 应用程序需要创建具有SIP功能的SIP对象。 这一动作需要通过工厂完成。 • 所谓工厂就是对访问实现SIP协议栈的方法 进行封装并允许应用获取其实现类实例的 中介。 • 工厂类在JAIN SIP中叫做SipFactory。 • 工厂是个单例类,整个系统中仅有他的唯 一一个实例。
工厂模式
事件监听模式
• 这种处理事务的机制被事件监听接口定义。 这个接口包含有适用于每种事件的 processEvent操作。当SIP协议栈从网络收 到SIP消息,SipProvider视之为一个事件, “告知”事件监听器 • 这个事件包括:请求事件和响应事件
如何使用这些类与接口
SIP监听器
• 一旦有事件触发(接收到网络上传递来的消息或 计时器超时)SipProvider负责将事件传递给SIP 监听器(SipListener)
• 这个功能是指在信道传输的SIP消息的具体 编码。 • 数据通过SIP传输子层交付到Socket API, 要用TCP/IP协议族传输数据必须遵循SIP 消息语法以及特定的编码规则。 • 编码规则指定要用Augmented BackusNaur Form(ABNF) grammar [RFC 4234].
相关文档
最新文档