H323与SIP协议的区别是什么?

H323与SIP协议的区别是什么?,第1张

SIP是由IETF提出来的一个应用控制(信令)协议。正如名字所隐含的--用于发起会话。它可用来创建、修改以及终结多个参与者参加的多媒体会话进程。参与会话的成员可以通过组播方式、单播连网或者两者结合的形式进行通信。

SIP中有客户机和服务器之分。客户机是指为了向服务器发送请求而与服务器建立连接的应用程序。用户代理(UserAgent)和代理(Proxy)中含有客户机。服务器是用于向客户机发出的请求提供服务并回送应答的应用程序。共有四类基本服务器:

·用户代理服务器:当接到SIP请求时它联系用户,并代表用户返回响应。

·代理服务器:代表其它客户机发起请求,既充当服务器又充当客户机的媒介程序。在转发请求之前,它可以改写原请求消息中的内容。

·重定向服务器:它接收SIP请求,并把请求中的原地址映射成零个或多个新地址,返回给客户机。

·注册服务器:它接收客户机的注册请求,完成用户地址的注册。用户终端程序往往需要包括用户代理客户机和用户代理服务器。代理服务器、重定向服务器和注册服务器可以看出是公众性的网络服务器。在SIP中还经常提到定位服务器的概念,但是定位服务器不属于SIP服务。

SIP在设计上充分考虑了对其它协议的扩展适应性。它支持许多种地址描述和寻址,包括用户名@主机地址:被叫号码@PSTN网关地址:Tel:010-62281234普通电话的描述等。这样,SIP主叫按照被叫地址就可以识别出被叫在传统电话网上的位置,然后通过一个与传统电话网相连的网关发起并建立呼叫。SIP最强大之处就是用户定位功能。SIP本身含有向注册服务器注册的功能,也可以利用其它定位服务器DNS、LDAP等提供的定位服务来增强其定位功能。

SIP共规定了六种信令:INVITE、ACK、CANCEL、OPTIONS、BYE、REGISTER。其中INVITE和ACK用于建立呼叫,完成三次握手,或者用于建立以后改变会话属性;BYE用以结束会话;OPTIONS用于查询服务器能力;CANCEL用于取消已经发出但未最终结束的请求;REGISTER用于客户出向注册服务器注册用户位置等消息。

SIP协议支持三种呼叫方式:由用户代理服务机(UAC)向用户代理服务器(UAS)直接呼叫,由UAC在重定向服务器的辅助下进行重定向呼叫和由代理服务器代表UAC向被叫发起呼叫。通过SIP代理建立呼叫的例子如图6-8所示。

H323和SIP协议的比较

H323和SIP分别是通信领域与因特网两大阵营推出的建议。H323企图把IP电话当作是众所周知的传统电话,只是传输方式发生了改变,由电路交换变成了分组交换。而SIP协议侧重于将IP电话作为因特网上的一个应用,较其实应用(如FTP,E-mail等)增加了信令和QoS的要求,它们支持的业务基本相同,也都利用RTP作为媒体传输的协议。但H323是一个相对复杂的协议。

H323采用基于ASN1和压缩编码规则的二进制方法表示其消息。ASN1通常需要特殊的代码生成器来进行词法和语法分析。而SIP的基于文本的协议,类似于>上级=sip+源设备

1sip代理或下级向sip服务器发送REGISTER请求+sip编号+IP+端口
2sip服务器回复401+unauthorized
3sip代理或下级向sip服务器发送REGISTER请求+sip编号+IP+端口
4sip服务器回复200

1以message的方法发送一段xml文本,主要通过Catalog命令和DeviceID发送,获取设备,
2设备收到后,马上回复200
3还会回复设备相关信息给服务器
4服务器收到后回复200,给设备

流程描述如下:
a) 1:媒体流接收者向 SIP 服务器发送 Invite 消息,消息头域中携带 Subject 字段,表明点播的视频源 ID、分辨率、媒体流接收者 ID、接收端媒体流序列号等参数,SDP 消息体中 s 字段为“Play”代表实时点播;
b) 2:SIP 服务器收到 Invite 请求后,通过三方呼叫控制建立媒体服务器和媒体流发送者之间的媒体连接。向媒体服务器发送 Invite 消息,此消息不携带 SDP 消息体;
c) 3:媒体服务器收到 SIP 服务器的 Invite 请求后,回复 200 OK 响应,携带 SDP 消息体,消息体中描述了媒体服务器接收媒体流的 IP、端口、媒体格式等内容;
d) 4:SIP 服务器收到媒体服务器返回的 200 OK 响应后,向媒体流发送者发送 Invite 请求,请求中携带消息 3 中媒体服务器回复的 200 OK 响应消息体,并且修改 s 字段为“Play”代表实时点播,增加 y 字段描述 SSRC 值,f 字段描述媒体参数;
e) 5:媒体流发送者收到 SIP 服务器的 Invite 请求后,回复 200 OK 响应,携带 SDP 消息体,消息体中描述了媒体流发送者发送媒体流的 IP、端口、媒体格式、SSRC 字段等内容;
f) 6:SIP 服务器收到媒体流发送者返回的 200 OK 响应后,向媒体服务器发送ACK 请求,请求中携带消息 5 中媒体流发送者回复的 200 OK 响应消息体,完成与媒体服务器的 Invite 会话建立过程;
g) 7:SIP 服务器收到媒体流发送者返回的 200 OK 响应后,向媒体流发送者发送 ACK 请求,请求中不携带消息体,完成与媒体流发送者的 Invite 会话建立过程;
h) 8:完成三方呼叫控制后,SIP 服务器通过 B2BUA 代理方式建立媒体流接收者和媒体服务器之间的媒体连接。在消息 1 中增加 SSRC 值,转发给媒体服务器;
i) 9:媒体服务器收到 Invite 请求,回复 200 OK 响应,携带 SDP 消息体,消息体中描述了媒体服务器发送媒体流的 IP、端口、媒体格式、SSRC 值等内容;
j) 10:SIP 服务器将消息 9 转发给媒体流接收者;
k) 11:媒体流接收者收到 200 OK 响应后,回复 ACK 消息,完成与 SIP 服务器的 Invite 会话建立过程;
l) 12:SIP 服务器将消息 11 转发给媒体服务器,完成与媒体服务器的 Invite 会话建立过程;
m) 13:媒体流接收者向 SIP 服务器发送 BYE 消息,断开消息 1、10、11 建立的同媒体流接收者的 Invite 会话;
n) 14:SIP 服务器收到 BYE 消息后回复 200 OK 响应,会话断开;
o) 15:SIP 服务器收到 BYE 消息后向媒体服务器发送 BYE 消息,断开消息 8、9、12 建立的同媒体服务器的 Invite 会话;
p) 16:媒体服务器收到 BYE 消息后回复 200 OK 响应,会话断开;
q) 17:SIP 服务器向媒体服务器发送 BYE 消息,断开消息 2、3、6 建立的同媒体服务器的 Invite会话;
r) 18:媒体服务器收到 BYE 消息后回复 200 OK 响应,会话断开;
s) 19:SIP 服务器向媒体流发送者发送 BYE 消息,断开消息 4、5、7 建立的同媒体流发送者的Invite 会话;
t) 20:媒体流发送者收到 BYE 消息后回复 200 OK 响应,会话断开。

message(recordinfo+deviceID+time)->200
设备端xml类型码流发给服务器,发完后以bye结束,服务器回复200

a) 1:源设备向 SIP 服务器发送设备控制命令,设备控制命令采用 MESSAGE 方法携带;
b) 2:SIP 服务器收到命令后返回 200 OK;
c) 3:SIP 服务器向目标设备转发设备控制命令,设备控制命令采用 MESSAGE 方法携带;
d) 4:目标设备收到命令后返回 200 OK;
e) 5:目标设备向 SIP 服务器发送设备控制响应命令,设备控制响应命令采用 MESSAGE 方法携带;
f) 6:SIP 服务器收到命令后返回 200 OK;
g) 7:SIP 服务器向源设备转发设备控制响应命令,设备控制响应命令采用 MESSAGE 方法携带;
h) 8:目标设备收到命令后返回 200 OK

SIP 出现于二十世纪九十年代中期,源于哥伦比亚大学计算机系副教授Henning Schulzrinne 及其研究小组的研究。Schulzrinne 教授除与人共同提出通过 Internet 传输实时数据的实时传输协议(RTP) 外,还与人合作编写了实时流传输协议 (RTSP) 标准提案,用于控制音频视频内容在 Web 上的流传输。
Schulzrinne 本来打算编写多方多媒体会话控制 (MMUSIC) 标准。1996 年,他向 IETF 提交了一个草案,其中包含了 SIP 的重要内容。1999 年,Shulzrinne 在提交的新标准中删除了有关媒体内容方面的无关内容。随后,IETF 发布了第一个 SIP 规范,即 RFC 2543。虽然一些供应商表示了担忧,认为 H323 和 MGCP 协议可能会大大危及他们在 SIP 服务方面的投资,IETF 继续进行这项工作,于 2001 年发布了 SIP 规范 RFC 3261。
RFC 3261 的发布标志着 SIP 的基础已经确立。从那时起,已发布了几个 RFC 增补版本,充实了安全性和身份验证等领域的内容。例如,RFC 3262 对临时响应的可靠性作了规定。RFC 3263 确立了 SIP代理服务器的定位规则。RFC 3264 提供了提议/应答模型,RFC 3265 确定了具体的事件通知。
早在 2001 年,供应商就已开始推出基于 SIP 的服务。今天,人们对该协议的热情不断高涨。Sun Microsystems 的 Java Community Process 等组织正在使用通用的 Java 编程语言定义应用编程接口 (API),以便开发商能够为服务提供商和企业构建 SIP 组件和应用程序。最重要的是,越来越多的竞争者正在借助前途光明的新服务进入 SIP 市场。SIP 正在成为自 >

Freeswitch
FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T38等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音 而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。
FreeSWITCH 是一个开源的电话交换平台,从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能。能原生地运行于Windows、Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台。可以用作一个简单的交换引擎、一个PBX,一个媒体网关或媒体支持IVR的服务器等。它支持SIP、H323、Skype、Google Talk等协议,并能很容易地与各种开源的PBX系统如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等通信。
视频编解码器(直通):
Theora的
H261
H263
H264
MP4
另见:编解码器
支持多种编解码器
CELT(32千赫 AHD 48千赫)
G7221(宽带)
G7221C(宽带32千赫)
G722协议(宽带)
G711
G726(16K,24K,32K,48K)AAL2和RFC 3551
G7231(直通)
G729AB(需要许可证,除非使用直通)
AMR(直通)
iLBC的
Speex语音(窄带和宽带)
LPC - 10
DVI4(ADPCM),8 kHz和16 kHz
主要是用于商业不会产生纠纷

一、SIP消息

     SIP消息是SIP客户终端和服务器之间通信的的基本信息单元。SIP消息基于文本,采用UTF-8编码(RFC 2279)中的ISO 10646字符集。SIP协议借鉴了>  这一节将通过一个简单的例子来介绍一些基本的 SIP *** 作。先让我们来诊视下图展示的两个用户代理之间的消息顺序。关于SIP协议详细流程,可以参考 RFC3261-SIP协议 ,当然如果不习惯的话可以参考中文翻译版 RFC3261-SIP协议中文版

  收到180响应时建立dialog叫做早期对话(early dialog),收到2XX的应答开始才是真正的dialog建立。

当然,这个代理可以有多个代理,其实也就就是多了代理服务器之间的转发过程,如下图:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12729558.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存