分类: 系统运维
2010-11-12 23:35:49
SIP协议与多媒体会话
在多媒体通信协议中,SIP协议是一个相对简单的、但是很重要协议。SIP是一种应用级控制协议,用于在IP数据网络上建立、改变和结束多媒体会话。SIP可以实现多种业务服务,如IP电话、多媒体会议、注册和重定向服务,并可以简化对VPN的连接。
正如其名称的含意那样,SIP负责会话信令如语音、视频或多媒体信息初始化数据的交换。SIP的历史可追溯到多项Internet工程任务组(IETF)的建议,并与Web和电子邮件技术与标准有着密切的关系。
为保证性能,SIP需要使用用户数据报协议(UDP),TCP则是可选协议。因为UDP传输不能得到百分之百的保证,所以SIP中包含数据重新传输机制,其中还包括建立三方会话的交换机制。
在SIP邀请参与者加入一次会话时,会话描述协议(SDP)编码的SIP信息主体包含有关参与者可以使用和将使用哪种媒体类型的信息。这种信息一旦交换和确认后,所有参与者就知道其他各方的IP地址、可用带宽和媒体类型。然后,数据利用合适的传输协议开始传输。在整个会话过程中,参与者可以通过发送新的 SIP信息随时进行更新(指示新的媒体类型集合、添加新的参与者或其他变化)。
SIP中的目的地是用统一资源指标符(URI)表示的。URI具有与电子邮件地址相同的格式。这意味着URI可以延用DNS将主机和域名映射为IP地址的方法,将URI和其映射对象对应起来。
在IETF ENUM工作组的努力下,DNS电子编号系统支持国际电信联盟标准E.164;因此,这种SIP与DNS之间的互通性与电话系统和地址机制的互操作性之间的关系越来越紧密,这种紧密的联系可以使SIP服务器和客户机能够发送、收入和路由电话号码。
SIP一般分为两类: 用户端组件和网络组件。用户代理程序安装在参与者所选择的设备上(PC机上的软件、嵌入在手机操作系统或PDA/掌上机操作系统中的软件、IP电话的固件)。用户代理程序包括服务器部件和客户机部件。重定向服务器和代理服务器执行路由和搜索树功能。这两种服务器一般为网络服务器,第三种基于网络的资源服务器是注册服务器,它保存和接收参与者的位置数据。
SIP可以实现多种增强型通信,包括“寻找/跟踪(find me/follow me)”服务、即时消息、远程电话与视频会议、中央交换机类型服务(呼叫人ID、呼叫等待和呼叫保持)、多玩家游戏、实时集体创作和远程白板。使用SIP还可以使连接VPN更加容易。
利用SIP,人们还可以方便地将多媒体服务与其他类型的服务组合在一起,如目录信息、Web浏览、定位和列席服务。
由于SIP是应用层协议,因此它是相对独立的,IP网络上任何类型的参与者都可以被SIP连接起来。例如,SIP 可以提供固定和移动网络之间的无缝服务功能,这是实现固定与移动业务融合的关键要素,而且,这种功能将随着2.5G和3G移动网络在世界各地的部署而变得越来越重要。
SIP的基本工作过程
SIP IP电话系统定义了注册/注销、呼叫、重定向、能力查询四种工作过程。
注册/注销过程
SIP为用户定义了注册和注销过程,其目的是可以动态建立用户的逻辑地址和其当前联系地址之间的对应关系,以方实现呼叫路由和对用户移动性的支持。逻辑地址和联系地址的分离也方便了用户,它不论在何处、使用何种设备,都可以通过唯一的逻辑地址进行通信。
注册/注销过程是通过REGISTER消息和200成功响应来实现的。在注册/注销时,用户将其逻辑地址和当前联系地址通过REGISTER消息发送给其注册服务器,注册服务器对该请求消息进行处理,并以200成功响应消息通知用户注册/注销成功。
呼叫过程
SIP IP电话系统中的呼叫是通过INVITE邀请请求、成功响应和ACK确认请求的三次握手来实现的。即当主叫用户代理要发起呼叫时,它构造一个INVITE 消息,并发送给被叫。被叫收到邀请后决定接受该呼叫,就回送一个成功响应(状态码为200)。主叫方收到成功响应后,向对方发送ACK请求。被叫收到 ACK请求后,呼叫成功建立。
呼叫的终止通过BYE请求消息来实现。当参与呼叫的任一方要终止呼叫时,它就构造一个BYE请求消息,并发送给对方。对方收到BYE请求后,释放与此呼叫相关的资源,回送一个成功响应,表示呼叫已经终止。
当主被叫双方已建立呼叫,如果任一方想要修改当前的通信参数(通信类型、编码等),可以通过发送一个对话内的INVITE请求消息(称为re-INVITE)来实现。
重定向过程
当重定向服务器(其功能可包含在代理服务器和用户终端中)收到主叫用户代理的INVITE邀请消息,它通过查找定位服务器发现该呼叫应该被重新定向(重定向的原因有多种,如用户位置改变、实现负荷分担等等),就构造一个重定向响应消息(状态码为3xx),将新的目标地址回送给主叫用户代理。主叫用户代理收到重定向响应消息后,将逐一向新的目标地址发送INVITE邀请,直至收到成功响应并建立呼叫。如果尝试了所有的新目标而无法建立呼叫,则本次呼叫失败。
能力查询过程
SIP IP电话系统还提供了一种让用户在不打扰对方用户的情况下查询对方通信能力的手段。可查询的内容包括:对方支持的请求方法(methods)、支持的内容类型、支持的扩展项、支持的编码等等。
能力查询通过OPTION请求消息来实现。当用户代理想要查询对方的能力时,它构造一个OPTION请求消息,发送给对方。对方收到该请求消息后,将自己支持的能力通过响应消息回送给查询者。如果此时自己可以接收呼叫,就发送成功响应(状态码为200),如果此时自己忙,就发送自身忙响应(状态码为 486)。因此,能力查询过程也可以用于查询对方的忙闲状态,看是否能够接受呼叫。
· SIP实现号码移动
目前的通信方式要求人们在进行通信时要针对不同的通信服务记住一个特定的通信号码,如传真号码、移动电话号码、办公电话号码等等。那么,怎样才能从根本上改变这一特性真正实现理想的通信模式呢?即人们只需要记住一个号码,就可以与拥有该号码的个人进行通信,而不论通信服务的性质如何,也不管该用户位于世界上的哪个地方。目前科学家们正在致力于对该项工作的研究,SIP就是其中的一项研发课题。
会话初始化协议(SIP)(Session Initiation Protocol)是一个应用层控制协议,它能够建立、修改、终止多媒体会话或者呼叫。SIP主要有两种结构元素:用户代理UA和网络服务器。UA 驻留在SIP的终端站中,它包含两个部分:用户代理客户(UAC),该部分负责发布SIP请求;用户代理服务器(UAS),它负责响应SIP请求。其中用户代理服务器有三种不同的类型:重定向服务器,代理服务器和注册服务器(register)。基本SIP 呼叫不需要服务器,但是其他一些增强特性需要服务器的支持。
重定向服务器作为用户代理服务器的三种类型之一,它是通过发送被呼叫者可获得的SIP URL地址来处理INVITE消息的。代理服务器执行应用层的SIP请求和响应路由。代理服务器可以是记忆的或者无记忆的,有记忆的代理服务器拥有整个呼叫建立过程中的相关信息,而无记忆的代理服务器则在处理完一个呼叫后将完全忘记有关该呼叫的所有信息直到下一个消息的到达。另外,代理可以是有分支代理或者无分支代理,例如,有分支代理可以在同时让几个电话都振铃直到有人拿起其中的一个电话为止。注册服务器一般用于记录SIP地址(SIP URL)和相关的IP地址。注册服务器经常用作启动后的注册,由于在REGISTER消息中使用了SIP URL地址的缘故,因此,当INVITE请求到达时,代理服务器或者重定向服务器可以直接正确地转发请求信息。这一基于注册服务器的转发特性形成了网络对支持真正的号码移动性服务的基础。在此,我们需要注意的是,通常一个SIP网络服务器能够实现对不同种类服务器的组合。
SIP电话机
SIP电话机(硬件设备)是一种可以连接到以太网的电话装置。在大多数情况下,SIP电话机支持采用IP地址的IP协议,该IP地址可以是静态分配的或者是通过动态主机配置协议(DHCP)获得的。SIP电话机主要有两大类型:信令栈和媒体引擎(media engine)。目前,虽然存在两种不同的标准(SIP 和H.323),但是信令栈现在已经有了几种自己的存在方式,媒体几乎都通过实时传输协议(Real?Time Transfer Protocol)独自传送,媒体本身是在用户数据报UDP内携带的。
信令栈的目的是建立、管理并且断开呼叫连接。呼叫建立阶段需要查找端点的位置,需要交换诸如支持话音编码解码类型的通信能力。管理阶段建立话音信道,如果需要的话将邀请其他用户参与该通话过程。在连接断开阶段,呼叫就自然终止了。
SIP服务器
中心注册/代理服务器,我们通常称之为主SIP服务器,是所有SIP消息的主要目的地,它在管理域中生成并试图建立一个连接。它同时也是在 LAN之外代表在LAN上的所有SIP电话机客户通知SIP的唯一一个目的点。主SIP服务器将所有的SIP INVITE消息传递给最后的相关目的站点(或者其他的SIP代理),并且针对这些消息进行基于数据库的查找。它允许所有的移动客户用目前的位置信息进行注册,而将是否接收呼叫的决定留给客户自己决定。这一方法需要客户端的智能性,而客户端的智能性又符合IP电话设想。该方法的主要优点是它不需要将潜在的大文件(例如,PDA中存有的地址簿和约会信息),传输到服务器端。
基于SIP的号码移动性
在许多情况下,呼叫者在与被呼叫者通话前不想首先判断通过什么形式的通信方式可以找到被呼叫者(即连通哪个特定电话能与被呼叫者连通),而只是希望能够与被呼叫者进行通信而不论被呼叫者的号码是哪种形式(移动电话号码或者办公电话号码等等),实现这种形式的通信也就是我们通常意义上所说的用户号码具有移动性
随着设备的移动性,真正的号码移动性是基于SIP 请求的REGISTER信息。为了使用这一特性,人们通过用SIP电话机同步PDA来对自己进行认证。在信息同步后,SIP电话机就知道PDA的拥有者的身份。通过阅读使用者的地址簿目录,SIP电话机可以知道使用者的SIP URL。在这一阶段,SIP电话机通过主SIP 服务器注册用户,将该注册用户表示为可以访问的SIP电话机的SIP URL地址。由于每一个输入的SIP请求都需要通过主服务器,所以这些请求都发送到正确的SIP电话机上。如果用户在移动并且与另外一个SIP电话机进行了注册,则旧的注册信息将被删除并且按照新的位置写入新的注册信息。这些活动都是在主服务器中完成的。这种情况不仅在公司里适合,在酒店或者会议室或者其他的会议中心都是可用的。在此,我们需要注意的是,在SIP 以太电话与PDA取得同步后,系统操作不再需要两个设备之间的进一步通信。当用户之间的通话完毕后,该用户将拆线,那么此时主SIP服务器所需做的工作就是在该用户与另外一个电话取得同步前将所有对它的呼叫转发到话音邮件中。
除了以上提到的方法外,PSTN服务提供商们还能够通过另外的称之为Web站点的方法提供相同或者近似的服务,从而使得用户能够将呼叫转发到他们目前所在的位置。但是,这种用法对于用户来说不很方便,由于计算机需要访问Web 站点,所以对于用户而言,当用户所在的地理位置不确定时(即用户的位置可以在任何可能的地方时),对PDA进行同步是一件很困难的事情。即使用户位于一个固定的地点,要将用户连接到Web站点并且输入相关的转发信息也是一件耗时耗力的工作。但是如果能够使PDA 同步则将使得整个问题变得自动而且容易,因此,下一阶段人们所需要做的工作就是:怎样采取简单易行的方法来实现PDA同步。
随着通信的发展,人们对通信质量要求越来越高。人们不要求对于每一种通信服务都需要单独的一个通信号码,也不管该人现在是静止的还是移动的,就希望做到通过该号码与他进行通信。这就是我们通常意义上所说的号码移动性,也是将来个人通信的理想目标。在该目标实现之前,基于SIP的号码移动性无疑在很大程度上推动了该项通信的发展。
chinaunix网友2010-11-15 15:22:23
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com