SIP协议相关资料
- 格式:doc
- 大小:139.50 KB
- 文档页数:8
SIP协议一、SIP协议简介会话初始化协议(Session Initialization Protocol,SIP)是一个由IETF工作组开发的标准协议,广泛用于建立、修改和终止像Internet上的音视频呼叫等多媒体通信会话,SIP协议借鉴了HTTP、SMTP等协议,支持代理、重定向及登记定位用户等功能,支持用户移动。
通过与RTP/RTCP、SDP、RTSP等协议及DNS 配合,SIP支持语音、视频、数据、E-mail、状态、即时通信、在线游戏等。
SIP 协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。
SIP 与H.323一样,是用于V oIP最主要的信令协议之一。
SIP网络结构如下图:SIP会话使用四个主要组件:SIP用户代理、SIP注册服务器、SIP代理服务器和SIP重定向服务器。
这些系统通过传输包括了SDP 协议(用于定义消息的内容和特点)的消息来完成SIP会话。
SIP用户代理(UA)是终端用户设备,如用于创建和管理SIP会话的移动电话、多媒体手持设备、PC、PDA 等。
用户代理客户机(UAC)发出消息。
用户代理服务器(UAS)对消息进行响应。
SIP注册服务器是包含域中所有用户代理的位置的数据库。
在SIP通信中,这些服务器会检索参与方的IP地址和其他相关信息,并将其发送到SIP代理服务器。
SIP代理服务器接受SIP UA的会话请求并查询SIP注册服务器,获取收件方UA的地址信息。
然后,它将会话邀请信息直接转发给收件方UA(如果它位于同一域中)或代理服务器(如果UA位于另一域中)。
SIP代理服务器包括有状态代理服务器和无状态代理服务器两种,它们的区别是有状态代理服务器记住它接收的入请求,以及回送的响应和它转送的出请求。
无状态代理服务器一旦转送请求后就忘记所有的信息。
这允许有状态代理服务器生成请求以并行地尝试多个可能的用户位置并且送回最好的响应。
无状态代理服务器可能是最快的,并且是SIP结构的骨干。
SIP协议主要消息一、背景介绍SIP(Session Initiation Protocol)是一种用于建立、修改和终止会话的信令协议,广泛应用于VoIP(Voice over Internet Protocol)和实时通信系统中。
SIP协议主要消息是指在SIP通信过程中,各个参与方之间传递的消息,包括请求消息和响应消息。
本协议旨在规范SIP协议主要消息的格式和内容,以确保通信的可靠性和互操作性。
二、协议目的本协议的目的是定义SIP协议主要消息的标准格式,包括请求消息和响应消息的结构、字段和语义。
通过遵循本协议,各参与方能够准确理解和处理SIP协议主要消息,从而实现可靠的通信和互操作。
三、协议内容1. 请求消息格式:请求行:包括请求方法、请求URI和SIP协议版本。
头部字段:包括常用字段(如From、To、Call-ID、CSeq、Contact等)和可选字段(如Max-Forwards、User-Agent、Content-Type等)。
空行:用于分隔头部字段和消息体。
消息体:可选,用于传递附加数据。
2. 响应消息格式:状态行:包括SIP协议版本、状态码和原因短语。
头部字段:包括常用字段(如From、To、Call-ID、CSeq、Contact等)和可选字段(如Server、Content-Type等)。
空行:用于分隔头部字段和消息体。
消息体:可选,用于传递附加数据。
四、协议规范1. 请求方法:- INVITE:用于建立会话。
- ACK:用于确认接收到INVITE请求。
- OPTIONS:用于查询支持的功能和参数。
- BYE:用于终止会话。
- CANCEL:用于取消未被接受的请求。
- REGISTER:用于注册用户的位置信息。
- INFO:用于传递会话中的中间信息。
- PRACK:用于确认接收到可靠传输的请求。
2. 状态码:- 1xx:信息性响应,表示请求已被接收,但尚未完成。
- 2xx:成功响应,表示请求已成功处理。
SIP协议深入介绍网络事业部软交换开发部王笑蓉1.SIP简介SIP(Session Initiation Protocol)是应用层控制协议,可以创建,修改,以及终止一个多媒体会话。
它具有以下几个主要功能:Userlocation:确定通信中的终端位置availability:确定被叫方是否愿意进行通信Usercapabilities:确定用于通信的媒体类型及参数Usersetup:建立会话各方的会话参数Sessionmanagement:终止会话,修改会话参数SessionSIP协议需要和其他IETF协议一起来构成一个完整的多媒体通信构架。
这些协议有:RTP(Real Time Transport):传输实时数据,提供QoS反馈信息Streamingprotocol):控制流媒体的传送TimeRTSP(RealMEGACO(Media Gateway Control Protocol):控制媒体网关SDP(Session Description Protocol):描述多媒体会话1.1SIP协议结构SIP协议的行为模型可以用几个分层的相对独立处理阶段来描述:1.语法及编码层2.传输层定义了客户端如何通过网络发送请求及接收响应,以及服务器端如何接收请求并发送响应。
所有SIP逻辑实体都包含此层。
3.事务层事务层处理应用层请求或响应消息的重发,响应与请求的匹配以及应用层的超时。
一个SIP事务由一个请求和对该请求的所有响应构成,这些响应分临时响应(provisional response)和最终响应(final response)。
对于INVITE事务,对应于非2xx响应的ACK确认消息也属于该事物,而对应于2xx响应的ACK确认消息则不属于该INVITE事物。
UA以及stateful proxy均包含事务层,而stateless proxy 不包含事务层一个事物根据逻辑功能分为客户事务(client transaction)和服务器事务(server transaction)。
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协议相关资料(doc 9页)Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。
eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。
一、介绍Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。
但缺点也很明显,首先就是可用性差,没有很好的api封装,使得上层应用在调用协议栈时很破碎;其次,只做到了transaction 层次的协议过程解析,缺少call、session、1、Sip协议的语法分析:主要是osipparser2部分,目前支持RFC3261和RFC3265定义的sip协议消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SUBSCRIBE、NOTIFY、MESSAGE、REFER和INFO。
不支持RFC3262定义的PRACK。
遵循RFC3264关于SDP的offer/answer模式。
带有SDP的语法分析。
支持MD5加解密算法。
支持Authorization、www_authenticate和proxy_authenticate。
2、Sip协议的过程分析:主要是osip2部分,基于RFC3261、RFC3264和RFC3265的sip协议描述过程,围绕transaction 这一层来实现sip的解析。
Transaction是指一个发送方和接收方的交互过程,由请求和应答组成。
请求分为Invite类型和Non-Invite类型。
应答分为响应型的应答和确认型的应答。
响应型的应答是指这个应答仅代表对方收到请求。
请求经过处理后都必须返回确认型的应答。
响应型的应答有1xx,确认型的应答包括2xx、3xx、4xx、5xx和6xx。
一个transaction由一个请求和一个或多个响应型应答、一个确认型应答组成。
SIP协议详解1. 引言Session Initiation Protocol(SIP)是一种用于建立、修改和终止多媒体会话的通信协议。
它广泛应用于语音、视频和即时通讯等实时通信领域。
本文将对SIP协议进行详细解析,介绍其基本原理和主要特点。
2. SIP协议概述SIP协议是基于文本的应用层协议,使用可读的ASCII文本来进行消息交换。
它采用客户端/服务器(C/S)模型,其中用户代理作为客户端,SIP服务器作为服务器。
SIP消息的格式包括请求消息和响应消息两种类型。
3. SIP消息格式SIP消息由起始行、头部字段和消息体组成。
起始行包括请求行或状态行,用于表示消息的类型和状态。
头部字段包含了一系列的键值对,用于传递消息的各种参数和选项。
消息体用于传输实际的数据内容。
4. SIP会话的建立与终止SIP协议通过INVITE/200 OK消息实现会话的建立,通过BYE消息实现会话的终止。
当用户A希望与用户B建立一个通话时,用户A向SIP服务器发送INVITE 消息,SIP服务器将该消息转发给用户B。
用户B可以选择接受INVITE消息,然后发送200 OK消息给用户A,表示接受通话请求。
当通话结束时,任一用户可以发送BYE消息,通知对方终止通话。
5. SIP注册与鉴权SIP协议支持用户注册和鉴权机制,以实现用户身份验证和安全通信。
用户在注册时,将自己的身份信息发送给SIP服务器,服务器将该信息保存起来。
当用户发起通话请求时,服务器可以根据用户的身份进行鉴权,确定用户是否具有通话的权限。
6. SIP中继与路由SIP协议支持中继和路由机制,以实现跨网络的通信。
SIP中继允许SIP消息在不同的网络之间传输,保证了用户可以在不同的网络环境下进行通话。
SIP路由机制允许SIP消息根据特定的规则进行转发,以找到正确的接收者。
7. SIP扩展与应用SIP协议允许进行扩展,以满足不同应用场景的需求。
例如,SIP可以与其他协议结合使用,如SDP(Session Description Protocol)用于传输会话描述信息。
sip 协议讲解SIP协议讲解SIP(Session Initiation Protocol)是一种用于建立、维护和终止实时会话的通信协议。
它是互联网工程任务组(IETF)制定的一项标准协议,广泛应用于IP电话、视频会议和即时通讯等领域。
SIP协议是一个基于文本的协议,它使用类似于HTTP的请求-响应模式进行通信。
SIP协议以会话为中心,允许用户之间发起和结束实时通信。
它定义了一套规则和语法,用于建立、修改和终止会话。
以下是SIP协议的主要特点和工作流程。
1. SIP协议的特点:- 灵活性:SIP协议可以与其他协议(如HTTP、SMTP)结合使用,实现不同应用场景下的实时通信。
- 可扩展性:SIP协议使用基于文本的消息格式,可以通过添加新的请求和响应来扩展功能。
- 基于互联网:SIP协议基于互联网协议(IP),适用于互联网上的实时通信。
- 独立于传输层协议:SIP协议可以使用TCP、UDP、TLS等不同的传输层协议进行通信。
2. SIP协议的工作流程:- 注册:用户在使用SIP服务之前,需要通过注册将自己的通信地址(如IP地址)与用户名进行关联。
- 呼叫建立:一个用户向另一个用户发起呼叫时,需要发送一个INVITE请求。
该请求包含了通信地址和媒体类型等信息。
- 呼叫响应:被呼叫方收到INVITE请求后,可以接受或拒绝呼叫。
接受呼叫时,会返回一个200 OK的响应,表示呼叫可以建立。
- 呼叫结束:一旦通话结束,任何一方都可以发送BYE请求来终止呼叫。
收到BYE请求后,对方会发送一个200 OK的响应,表示呼叫已经结束。
3. SIP协议的消息格式:- 请求消息:SIP协议的请求消息包括请求行、首部字段和消息正文。
请求行包含请求方法(如INVITE、REGISTER)、URI地址和SIP协议版本。
- 响应消息:SIP协议的响应消息包括状态行、首部字段和消息正文。
状态行包含状态码(如200 OK、404 Not Found)和SIP协议版本。
1.简介SIP(Session Initiation Protocol)是一种用于实时通信的协议。
它被广泛应用于语音通话、视频会议、即时消息等领域。
SIP协议提供了一种机制,使得用户可以建立、修改和终止多媒体会话,同时允许参与者之间的媒体数据传输。
SIP协议的主要作用是在通信设备之间建立会话,包括语音通话、视频通话和多媒体会议等。
它定义了一套规则和消息格式,用于发起会话、管理会话状态以及传输媒体数据。
在实时通信中,SIP协议扮演着重要的角色。
它为用户提供了一种灵活且可扩展的方式来建立和管理通信会话。
通过SIP协议,用户可以轻松地与其他用户进行语音通话、视频通话或者发送即时消息。
SIP协议的重要性在于它的开放性和互操作性。
由于SIP是一个开放标准,各种通信设备和应用程序都可以通过实现SIP协议来实现互相之间的通信。
这种互操作性使得不同厂商和平台的设备可以无缝地进行通信,促进了实时通信的发展和普及。
总之,SIP协议在实时通信中发挥着关键的作用。
它通过定义会话的建立和管理方式,为用户提供了一种灵活、可扩展的通信方式,使得语音通话、视频通话和即时消息等应用成为可能。
其开放性和互操作性也为实时通信领域的发展做出了重要贡献。
2.SIP协议的基本原理SIP协议(Session Initiation Protocol)是一种基于文本的协议,用于建立和管理实时通信会话。
它采用了简单灵活的消息交换机制,允许参与者之间进行会话的发起、修改和终止。
SIP消息的格式SIP消息由文本行组成,每行以回车换行符(CRLF)结束。
常见的SIP消息有两种格式:请求消息和响应消息。
•请求消息:用于发起会话请求。
它包含请求行、头部字段和可选的消息体。
请求行指定了请求的方法(如INVITE、REGISTER、BYE等)和URI(统一资源标识符)。
•响应消息:用于回应请求消息。
它包含状态行、头部字段和可选的消息体。
状态行指定了响应的状态码(如200 OK、404Not Found等)和原因短语。
第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(Session Initiation Protocol)是一种应用层控制协议,用于建立、修改和终止多媒体会话,如VoIP电话、视频会议和即时消息。
它是一种基于文本的协议,采用类似HTTP的请求-响应模型。
SIP协议的设计目标是简单、灵活、可扩展和易于实现。
SIP协议的核心功能包括会话管理、用户定位、呼叫建立和终止。
它使用统一资源标识符(URI)来标识终端用户或终端设备,允许用户在不同网络之间进行无缝切换。
SIP还支持呼叫保持、呼叫转移、多方通话和媒体协商等高级功能。
SIP协议的消息格式包括请求消息和响应消息。
请求消息由方法、URI、协议版本和消息头组成,用于向服务器发起请求。
响应消息由协议版本、状态码、原因短语和消息头组成,用于对请求进行响应。
常见的SIP方法包括INVITE(邀请)、ACK(确认)、BYE(结束)、CANCEL(取消)和REGISTER(注册)等。
SIP协议的工作流程可以简单描述为,用户代理向代理服务器发送请求,代理服务器根据用户的请求进行路由选择,最终找到被叫用户的位置并向其发送请求,被叫用户接受请求后进行响应,双方建立会话并进行媒体传输,会话结束后发送BYE消息进行终止。
SIP协议的可扩展性是其设计的重要特点之一。
SIP允许通过扩展头字段和方法来支持新的功能和应用,因此可以满足不断变化的通信需求。
此外,SIP还与其他协议如SDP(Session Description Protocol)、RTP(Real-time Transport Protocol)和RTCP(Real-time Control Protocol)等配合使用,实现多媒体会话的建立和传输。
总的来说,SIP协议作为一种开放、灵活的多媒体会话控制协议,被广泛应用于VoIP、视频会议、即时消息等通信领域。
它的设计简单、功能丰富、可扩展性强,为多媒体通信提供了可靠的基础。
随着通信技术的不断发展,SIP协议将继续发挥重要作用,推动通信行业的进步和创新。
SIP协议的介绍与基本原理SIP(Session Initiation Protocol)是一种基于IP网络的通信协议,广泛用于设置、管理和终止多媒体会话,如语音通话、视频通话和即时消息。
SIP协议为呼叫控制、会话管理和媒体传输提供了标准化的框架。
SIP协议的基本原理如下:1.呼叫初始化:SIP协议通过发送INVITE消息来初始化会话呼叫。
INVITE消息包含了发起呼叫的源地址、目的地址、媒体格式和其他会话相关的信息。
2.呼叫信令:在会话开始后,SIP协议通过交换信令消息来协商媒体交换和会话的属性。
例如,通过发送和接收SDP(Session Description Protocol)消息,会话参与者可以协商音频和视频的编码格式、传输协议和传输端口等。
3.会话管理:SIP协议提供了一套机制来管理会话的生命周期。
例如,通过发送ACK(Acknowledgment)消息来确认双方之间交换的信令消息。
还可以使用BYE消息来终止会话。
4.重定向和代理:SIP协议支持通过重定向和代理来建立和终止会话。
重定向允许用户在呼叫过程中改变目标地址,而代理允许用户通过中间设备进行信令和媒体的转发。
5.注册和定位:SIP协议支持用户注册和位置定位服务。
用户可以通过发送REGISTER消息将其位置信息(如IP地址、用户名)注册到SIP服务器上,并由SIP服务器负责路由呼叫到目标用户。
SIP协议可以与其他协议(如RTP、RTCP、SDP等)结合使用,以实现多媒体会话的建立和传输。
它是一种开放标准协议,被广泛应用于IP电话、语音和视频会议、即时消息和在线多媒体通信等应用中。
总之,SIP协议是一种用于会话控制和管理的通信协议,为多媒体会话的建立和终止提供了标准化的框架,并通过信令和交换信息来协商会话的属性和属性。
SIP简介1.1 SIP介绍1.1.1 基本概念SIP(Session Initiation Protocol,会话发起协议)是由IETF (Interne工程任务组)提出的IP电话信令协议。
它的主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。
其结构图如下所示。
SIP是一种应用层控制协议,用于在IP网上建立、修改以及终止多媒体会话或呼叫,现由SIP工作组负责,参考规范RFC2543。
目前主要用于多媒体会议、远程学习、IP电话等等。
1.1.2 基本功能SIP的基本功能有以下五种:1. 用户定位(User location)-决定哪个终端系统参加通信2. 用户能力(User capabilities)-决定通信所采用的媒体和媒体参数3. 用户可用性(User availability)-决定被叫方是否愿意加入通信过程4. 呼叫建立(Call setup)-振铃、主叫方和被叫方的连接和参数的建立5. 呼叫处理(Call handing)-呼叫转移、终止呼叫等1.1.3 主要特征1. SIP可以发起会话,也可以邀请用户加入以其它方式(如SAP、LDAP 等)发布或建立的会话;通过SDP协议,SIP可以在呼叫发起和呼叫进行过程对会话参数进行协商,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。
SIP可以提供呼叫控制功能(如呼叫保持、呼叫路由、呼叫转移、媒体转换等)。
2. SIP可以支持单播会话,也可以支持多播会话;3. SIP与网络协议独立,即与底层协议无关(Lower-Layer-Protocol Neutral)。
SIP可以在不同的传输层协议上工作,如TCP或UDP。
当使用UDP的时候,SIP可以更好的支持多播会话;当使用TCP的时候,SIP可以更容易的通过防火墙。
sip 协议讲解SIP协议是一种用于建立、修改和终止实时通信会话的协议。
它是一种应用层协议,用于在互联网上传输多媒体通信数据。
SIP协议的全称是Session Initiation Protocol,它的设计目标是提供一种简单、灵活、可扩展的通信协议,以便在不同的网络环境下进行实时通信。
SIP协议的核心思想是基于客户端-服务器模型的,其中有两个重要的角色:用户代理(User Agent)和SIP服务器。
用户代理可以是一个软件应用或硬件设备,它负责与用户进行交互,并将用户的请求发送到SIP服务器。
SIP服务器则负责处理这些请求,并根据请求的内容来建立、修改或终止通信会话。
SIP协议定义了一系列消息格式,包括请求消息和响应消息。
请求消息用于向服务器发送请求,而响应消息则是服务器对请求的回应。
这些消息可以通过网络传输,以实现通信会话的建立和管理。
SIP 协议还定义了一些重要的功能,如呼叫转移、呼叫等待和呼叫会议等。
在建立通信会话时,SIP协议使用统一资源标识符(Uniform Resource Identifier,URI)来标识参与通信的各方。
URI是一种用于唯一标识资源的字符串,它可以是一个电话号码、一个电子邮件地址或一个网址等。
通过URI,SIP协议可以将不同的通信终端连接起来,实现实时通信。
SIP协议还支持会话描述协议(Session Description Protocol,SDP),用于描述通信会话的参数和能力。
SDP可以包含音频、视频和其他媒体的编码格式、传输协议和网络地址等信息,以便各方能够正确地进行媒体数据的传输和解码。
总的来说,SIP协议是一种强大而灵活的通信协议,它可以在不同的网络环境下实现实时的多媒体通信。
它的设计目标是简单易用、可扩展和高效可靠的。
通过SIP协议,我们可以实现语音通话、视频通话、实时消息和在线会议等多种实时通信应用。
SIP协议的发展和应用将进一步推动互联网通信的发展,为人们的生活和工作带来更多的便利和可能性。
SIP简介-------------------------------------------------------------------------------1.SIP定义:Session Initiation Protocol,即会话发起协议,是一套用于创建、修改、终止IP会话的信令协议,这些IP会话包括通过IP网络进行的多媒体会议、视频通信会议等。
主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。
2.SIP的功能:①名字翻译和用户定位(Name Translation and User Location)。
为了不管在哪儿都能定位指定的被叫方,SIP使用一套与Email地址类似的命名机制。
每一个用户由分级ULR元素共同决定,比如:SIP:user@,80000001@beijing,或者username@202.112.10.4。
甚至可以直接和Email地址关联起来。
②会话参数协商(Feature Negotiation)。
SIP允许一次呼叫(Call)中的所有参与者(Participant)对会话的参数特征进行协商。
比如,几个可视电话用户和一个移动电话用户进行会晤时就不能用可视电话功能,但当移动电话用户退出会话后他们就可以重新协商使用可视功能。
③呼叫参与者管理(Feature Negotiation)。
在一次会话过程中,与会者可以邀请其他用户加入或者转移、保持、取消联接3.SIP工作原理:SIP中有客户机和服务器之分。
客户机是指为了向服务器发送请求而与服务器建立连接的应用程序。
用户代理(User Agent)和代理(Proxy)中含有客户机。
服务器是用于向客户机发出的请求提供服务并回送应答的应用程序。
SIP客户机(用户代理服务器)向附近SIP代理服务器发出请求(1),请求被转向SIP重新定向服务器(2),响应被返回(3),请求再被送到应该去的SIP代理服务器(4),经过定位服务器定位(5,6),送到终点客户所在SIP代理服务器(7),最终送到终点SIP客户(8),响应经过路径9,10,11,12送回到起点SIP客户机。
sip协议详解
SIP(Session Initiation Protocol,会话发起协议),是一种应用层协议,是实现多媒体会话控制的标准协议之一。
SIP在语音、视频、即时通讯等领域得到了广泛应用。
SIP允许用户建立呼叫、终止呼叫、转移呼叫等功能,它的基本思想是利用互联网协议(IP)网络的优势,将业务处理和控制分离,使业务的处理和控制能够独立地进行。
SIP协议的核心控制信息都在一个称为SIP消息的文本数据块中进行交换。
消息分为请求消息和响应消息。
其中请求消息用于请求某种操作,响应消息用于回复某种操作的结果。
SIP消息中包含了所需的所有信息,包括被叫的地址、媒体类型等。
SIP协议最基本的功能是实现呼叫控制,呼叫过程主要包括建立、传输、终止三个方面。
在呼叫建立时,主叫向代理服务器发送一个INVITE请求,代理服务器在路由选择完毕后,向被叫用户的SIP地址发送INVITE请求,被叫方回复一个OK 消息,表示已准备好接受通话。
在通话过程中,SIP协议传输媒体流,这些媒体可以是语音、视频、文件等类型。
SIP协议的优势在于它是一个开放式标准,允许用户使用多种设备和应用程序来实现语音、视频等服务,而不仅限于特定设备或应用程序。
另外,SIP协议也支持跨网络进行连接,这使得用户可以通过互联网连接使用各种服务,而无需在同一网络中。
总结来说,SIP协议是一种通信协议,主要用于实现多媒
体会话控制。
它具有开放式标准、跨网络连接等优势,可以实现多种服务,包括语音、视频等类型。
对于实时通讯领域的开发者和用户来说,SIP协议已成为一种非常重要的标准。
什么是SIP协议SIP(Session Initiation Protocol)是一种用于建立、管理和终止实时会话的网络通信协议。
它被广泛应用于VoIP(Voice over Internet Protocol)和视频通信领域,用于在IP网络上进行语音、视频和多媒体通信。
SIP协议的功能非常丰富,它可以实现以下几个核心功能:1.会话管理:SIP协议允许用户在通信会话期间进行多种操作,如建立会话、邀请其他用户加入会话、挂断会话等。
它提供了灵活的会话控制功能,使用户能够自由地调整会话的参数和参与者。
3.媒体协商:在SIP会话中,通信双方需要协商和确定传输媒体格式、编解码器和网络参数等。
SIP协议允许通信双方协商和选择最佳的媒体传输方式,以提供最佳的通信质量。
4.会话适配:SIP协议支持不同类型的终端设备之间的通信。
它可以适应不同的网络环境和终端设备,并根据终端设备的能力自动适配通信需求。
这使得用户可以使用不同的设备进行通信,而无需担心兼容性问题。
除了以上核心功能1.简单性:SIP协议采用文本方式进行通信,易于理解和实现。
它使用简单的请求-应答模式,并使用类似于HTTP的语法和格式。
这使得SIP协议可以与其他网络协议(如HTTP、SMTP等)进行无缝集成。
2.可扩展性:SIP协议是一个灵活的协议,可以通过添加新的请求和响应方法来扩展其功能。
它支持多种扩展机制,如SIP头字段、参数和扩展标识符等。
这使得SIP协议可以适应不断变化的通信需求。
3.中立性:SIP协议是一种中立的协议,不依赖于任何特定的传输层协议或网络技术。
它可以在不同的网络环境中运行,如互联网、局域网和无线网络等。
这使得SIP协议具有广泛的适用性和互操作性。
总结起来,SIP协议是一种用于建立、管理和终止实时会话的网络通信协议。
它具有灵活的会话控制、用户定位、媒体协商和会话适配功能,可以适应不同的网络环境和终端设备。
同时,SIP协议还具有简单性、可扩展性和中立性等重要特点,使得它成为VoIP和视频通信领域的核心协议之一。
Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。
eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。
一、介绍
Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。
但缺点也很明显,首先就是可用性差,没有很好的api封装,使得上层应用在调用协议栈时很破碎;其次,只做到了transaction层次的协议过程解析,缺少call、session、dialog等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。
eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。
eXosip 增加了call、dialog、registration、subscription等过程的解析,使得实用性更强。
但是eXosip 局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。
另外,它并没有增加线程并发处理的机制。
而且只实现了音频支持,缺少对视频和其它数据格式的支持。
综合来说,Osip2加上eXosip协议栈仍然是个实现Sip协议不错的选择。
当然需要根据不同的需求来增加更多的内容。
二、Osip2协议栈的组成
Osip2协议栈大致可以分为三部分:sip协议的语法分析、sip协议的过程分析和协议栈框架。
1、Sip协议的语法分析:
主要是osipparser2部分,目前支持RFC3261和RFC3265定义的sip协议消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SUBSCRIBE、NOTIFY、MESSAGE、REFER和INFO。
不支持RFC3262定义的PRACK。
遵循RFC3264关于SDP的offer/answer模式。
带有SDP的语法分析。
支持MD5加解密算法。
支持Authorization、www_authenticate和proxy_authenticate。
2、Sip协议的过程分析:
主要是osip2部分,基于RFC3261、RFC3264和RFC3265的sip协议描述过程,围绕transaction 这一层来实现sip的解析。
Transaction是指一个发送方和接收方的交互过程,由请求和应答组成。
请求分为Invite类型和Non-Invite类型。
应答分为响应型的应答和确认型的应答。
响应型的应答是指这个应答仅代表对方收到请求。
请求经过处理后都必须返回确认型的应答。
响应型的应答有1xx,确认型的应答包括2xx、3xx、4xx、5xx和6xx。
一个transaction由一个请求和一个或多个响应型应答、一个确认型应答组成。
Transaction根据请求的不同和发送/接收的不同可以分为四类:ict、nict、ist和nist。
Ict是指Invite client transaction,就是会话邀请的发起方。
Nict是指Non-Invite client transaction,是指非邀请会话的发起方。
Ist是指Invite server tranaction,是指会话邀请的接收方。
Nist是指Non-Invite server transaction,是指非邀请会话的接收方。
每种类型的transaction都有自己相应的状态机,Osip2协议栈根据状态机来处理所有的sip 事件,所以这部分就是整个协议栈的核心。
但是因为Osip2只做到transaction这一层,所以它可以忽略掉call、registration等应用的复杂性,显得相当简单,这就使得需要使用它的应用必须要自己处理应用的逻辑。
必须注意的一点是,transaction的资源在Osip里是由协议栈负责释放的,但是在Osip2里改成由使用的应用负责释放。
3、协议栈框架:
框架并不是指代码的某一部分,而是指它的构成形式。
主要有三部分:底层套接字接收/发送,模块间通信管道,上层调用api接口。
Osip2并不实现底层套接字的接收/发送,由eXosip实现,现在只支持UDP的链路连接。
模块间的通信管道包括:transaction的消息管道、jevent的消息管道。
Transaction的消息管道是驱动其状态机的部件,通过不断的接收来自底层套接字的远端信令,或者来自上层调用的指令,根据上述的状态机制来驱动这个transaction的运转。
Jevent的消息管道是eXosip 实现的,用于汇报底层事件,使得调用程序能处理感兴趣的事件。
上层调用的api接口大致有两类:sip协议的调用接口和sdp协议的调用接口。
EXosip封装了大部分的sip协议调用接口,一般来说都不需要直接调用osip2的接口函数。
接口函数很多,在这里就不详述了,函数定义请参照源代码部分的注释。
三、eXosip协议栈的分析
eXosip是Osip2协议栈的封装和调用。
它实现了作为单个sip终端的大部分功能,如register、call、subscription等。
EXosip使用UDP socket套接字实现底层sip协议的接收/发送。
并且封装了sip消息的解释器。
EXosip使用定时轮循的方式调用Osip2的transaction处理函数,这部分是协议栈运转的核心。
透过添加/读取transaction消息管道的方式,驱动transaction的状态机,使得来自远端的sip 信令能汇报给调用程序,来自调用程序的反馈能通过sip信令回传给远端。
EXosip增加了对各个类型transaction的超时处理,确保所有资源都能循环使用,不会被耗用殆尽。
EXosip使用jevent消息管道来向上通知调用程序底层发生的事件,调用程序只要读取该消息管道,就能获得感兴趣的事件,进行相关的处理。
EXosip里比较重要的应用有j_calls、j_subscribes、j_notifies、j_reg、j_pub、osip_negotiation 和authinfos。
J_calls对应呼叫链表,记录所有当前活动的呼叫。
J_reg对应注册链表,记录所有当前活动的注册信息。
Osip_negotiation记录本地的能力集,用于能力交换。
Authinfos 记录需要的认证信息。
四、总结
本文是从使用的角度去阐述分析Osip2和eXosip协议栈,并不涉及很多的细节,需要进一步了解协议栈的结构和实现,可参考《osip》一文。
分析了开源SIP协议栈oSIP的运行机制。
在oSIP基础上,设计实现了一个基于S3C2410A微处理器平台,使用WinCE操作系统的嵌入式SIP 终端。
1、引言
目前,IETF的SIP协议(Session Initiate Protocol, 会话初始协议)已获得业界越来越多的关注和支持,正逐步成为下一代网络(NGN)中的核心协议
之一[1]。
SIP协议相对简单、易于实现、可扩展性强、更适合IP网络,被广泛的用于VoIP系统的组建[2]。
oSIP及其扩展eXosip作为开源的SIP协议栈,以其结构简单、功能丰富、易于移植等优点成为在嵌入式系统上构建VoIP应用的首选。
本文分析了oSIP协议栈的运行机制,设计实现了将oSIP协议栈移
植到嵌入式操作系统并以此为基础开发嵌入式SIP客户端的方案。
2、oSIP协议栈
2.1 SIP协议
SIP采用C/S模式的工作方式,包含两类元素:SIP用户代理(User Agent, UA)和SIP服务器。
根据用户代理在会话中扮演的角色不同又可分为用户代理客户机(User Agent Client, UAC)和用户代理服务器(User Agent Server, UAS),前者发起呼叫请求,后者响应呼叫请求。
2.2 oSIP协议栈
oSIP是遵循IETF标准,使用ANSI C编写,源代码开放的SIP协议栈。
oSIP主要有下列优点:
(1)结构小巧简单,只有400K左右,适合在嵌入式系统上应用;
(2)可移植性好,已被成功的应用于Solaris、HP Unix、VxWorks、Windows和GNU/Linux[3] (2.2.16和2.4.7)等系统中;
(3)工作稳定、兼容性强。
oSIP主要由解析模块、工具模块和状态机模块构成,其核心是状态机模块[4](如图1所示)。
图1 oSIP结构
解析模块完成对SIP请求和响应进行封装与解析处理。
解析模块又可分为SIP解析、SDP解析与URL解析。
工具模块主要提供一些处理工具用于对话管理和SDP协商。
状态机模块负责对某个事务(如注册过程、呼叫过程等)状态的维持及处理,并在特定的状态下触发响应的事件或回调函数。
根据RFC描述中关于SIP协议事务层的定义,oSIP协议栈有4种状态机:客户端邀请事务(ICT),客户端非邀请事务(NICT),服务器端邀请事务(IST),服务器端非邀请事务(NIST)。
前两种状态机是由客户端发起的,后两种状态机是由服务器发起的,这4种状态机涵盖了SIP的各种事务类型。
其中ICT(如图2所示)是SIP客户端中最常见的事务。