什么是SIP软交换,第1张

你好!

软交换是指用软件实现电话交换能力,区别传统程控交换,传统程控交换使用硬件电路实现硬交换,而软交换完全通过软件来实现电话的寻号/接续/呼叫流程处理,说白了软交换就是服务器+软件的形式。

当前VOIP常用的协议有SIP

H248

MGCP,一般大型软交换都能同时支持三协议比如运营商用的软交换,小型的软交换支持协议有限以支持SIP协议为主,所以常叫SIP软交换。

打字不易,采纳哦!

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的基于文本的协议,类似于HTTP。基于文本的编码意味着头域的含义是一目了然的,如From、To、Subject等域名。这种分布式、几乎不需要复杂的文档说明的标准规范夫风格,其优越性已在过去的实践中得到了充分的证明(现在广为流行的邮件协议SMTP就是这样的一个例子)。SIP的消息体部份采用SDP进行描述,SDP中的每一项格式为=,也比较简单。

在支持会议电话方面,H323由于由多点控制单元(MCU)集中执行会议控制功能,所有参加会议终端都向MCU发送控制消息,MCU可能会成为颈,特别是对于具有附加特性的大型会议;并且H323不支持信令的组播功能,其单功能限制了可扩展性,降低了可靠性。而SIP设计上就为分布式的呼叫模型,具有分布式的组播功能,其组播功能不仅便于会议控制,而且简化了用户定位、群组邀请等,并且能节约宽带。但是H323集是中控制便于计费,对宽带的管理也比较简单、有效。

H323中定义了专门的协议用于补充业务,如H4501、H4502和H4503等。SIP并未专门定义的协议用于此目的,但它很方便地支持补充业务或智能业务。只要充分利用SIP已定义的头域(如Contact头域),并对SIP进行简单的扩展(如增加几个域),就可以实现这些业务。例如对于呼叫转移,只要在BYE请求消息中添加Contact头域,加入意欲转至的第三方地址就可以实现此业务。对于通过扩展头域较难实现的一些智能业务,可在体系结构中增加业务代理,提供一些补充服务或与智能网设备的接口。

在H323中,呼叫建立过程涉及到第三条信令信致到:RAS信令信道、呼叫信令信到和H245控制信道。通过这三条信道的协调才使得H323的呼叫得以进行,呼叫建立时间很长。在SIP中,会话请求过程和媒体协商过程等一起进行。尽管H323v2已对呼叫建立过程作了改进,但较之SIP只需要15个回路时延来建立呼叫,仍是无法相比。H323的呼叫信令通道和H245控制信道需要可靠的传输协议。而SIP独立于低层协议,一般使用UDP等无法连接的协议,用自己信用层的可靠性机制来保证消息的可靠传输。

总之,H323沿用的是传统的实现电话信令模式,比较成熟,已经出现了不少H323产品。H323符合通信领域传统的设计思想,进行集中、层次控制,采用H323协议便于与传统的电话网相连。SIP协议借鉴了其它因特网的标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,比较简单,但推出时间不长,协议并不是很成熟。

invite发出会话请求,100临时回应通知对方我已经收到请求,180表示我正在处理左边的话机响铃,182表示正在排队处理请求(这个场景我没有见过),200就是完成能力协商相应invite请求,ACK表示已经接收到对端的能力打开通道发送码流,bye就是结束通话了,200是对bye的回应

根据asterisk的代码,推测出sip server的工作流程如下:

1 客户端A通过sip发INVITE时,带的是内网IP和端口

2 服务器收到后,转发给客户端B时,先创建两个音视频端口port1,port2,加到客户端A sdp中,然后发给B。

3 B收到后,肯定是同意了如果拒绝,以下就不走了。

4 B本地也创建两个端口,连接port1,port2,带stun协议,返回自己的公网IP和端口。(这一步可选)

5 B向服务器回复同时,sdp上带本地的IP和端口。(这一步必须)

6 服务器收到B同意的回复后,再创建两个端口port3,port4,同时加到sdp中,返回给客户端A。

7 客户端A收到sdp后,得到其中的两个端口,然后本地也创建两个端口,分别向服务器的两个端口发数据,(也可以直接向对方的IP和端口发,但对方是内网的,可能收到,也可能收不到,稍后再讨论怎么P2P)。

8 客户端B应该也要创建两个端口,向服务器的端口发数据。(如果执行过4,这一步直接发数据就行了)。

9 因为端口是一一对应关系,服务器端根据端口号可以知道是哪个用户发来的,并发往表现哪里的。

10 用户发bye,或掉线,服务器通知对方结束会话,同时close掉这4个端口。

以上,服务器创建rtp端口的同时,还要创建rtcp端口。

上面的流程是服务器直接在两点间中转,不包括经过多服务器间流转。

如果要做到两客户端之间直接点对点,AB双方的音视频端口,应该先连stun,取到自己的外网IP和端口后,再发INVITE,这时SDP中带的是自己的外网IP和端口,双方直接传很大可能是收的到的。

大致流程应该是这样的,可能还有些出入,毕竟是看代码得出的结论,不是看RFC协议。

只能说发明SIP和RTP的人,大脑复杂度远超普通人。当初以为HTTP已经够麻烦的了,不过人家也不过只用了一个端口就可以传所有数据。rtp的创始人应该是电信背景,可能认为每个端口号相当于电信中的每一路通话了。

按照SIP协议来讲,信令流式一定要流经服务器,但媒体流是可以不经过服务器的,而且一般情况下都不会,至少我没看到过媒体流也走服务器的,不知道楼上讲的是哪种服务器,这种需要终端支持的,媒体流是协商后的媒体连接信息(通常是SDP)控制的,除非服务器有强大的转发功能和性能或者需要特殊控制,而且能保证通话才行。

IETF里有关于sip终端控制的呼叫转移说明文档,已经出到第5稿(draft-ietf-sipping-cc-transfer-05)了。相信现在大部分的sip终端应该都是按照该文档的流程来做的。只是如果把它实现到ipbx的应用里去的时候,接线员作转接时要区分basic transfer和attended transfer,未免有些不符合习惯。

考虑可以通过引入服务器,按照basic transfer的流程,稍作修改就能统一basic transfer和attended transfer的操作。

流程描述如下:

Transferor FeatureServer Transferee Transfer

| | | Target

| INVITE F1 | |

Call-ID:1 |<------------------------------------------------| |

| 200 OK F2 | | |

Call-ID:1 |------------------------------------------------>| |

| ACK | | |

Call-ID:1 |<------------------------------------------------| |

| INVITE (hold) | | |

Call-ID:1 |------------------------------------------------>| |

| 200 OK | | |

Call-ID:1 |<------------------------------------------------| |

| ACK | | |

Call-ID:1 |------------------------------------------------>| |

| REFER F3 (Target-Dialog:1) | |

Call-ID:1 |-------------------> | | |

| 202 Accepted | | |

Call-ID:1 |<------------------- | | |

| NOTIFY (100 Trying) F4 | |

Call-ID:1 |<-------------------| | |

| 200 OK | | |

Call-ID:1 |------------------->| | |

| INVITE F5 | |

Call-ID:2 | |------------------------------------------------->|

| | 180 ALERTING/ 200 OK | |

Call-ID:2 | |<--------------------------------------------------|

| NOTIFY (180 ALERTING)/ INVITE F6 | |

Call-ID:1 |<-------------------| | |

| 200 OK | | |

Call-ID:1 |------------------->| | |

| BYE | | |

Call-ID:1 |------------------->| | |

服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。

它是网络上一种为客户端计算机提供各种服务的高可用性计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。

服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是SIP软交换

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情