本帖最后由 爱卫生 于 2011-3-12 16:20 编辑
当某个SIP网络终端希望和另一个SIP网络终端建立多媒体通信会话时,多媒体应用程序通过用户接口获取目的SIP网络终端的用户名@域名,并以此构成SIP请求消息。如果了解H.323协议的话,我们知道在建立多媒体通信会话时,必须协调双方处理多媒体信息流的能力(如编码格式及所需带宽等),因此,在SIP请求消息中,还必须给出会话描述信息。SIP网络终端构建完SIP请求消息后,通过检测目的SIP网络终端的域名,确定是域内转发还是域间转发。如果是域内转发,代理服务器必须查询注册服务器,在获得目的SIP网络终端的IP地址信息后,将SIP请求消息转发给它;如果是域间转发,通过对定位服务器请求定位服务,获取为目的SIP终端所在控制域服务的代理服务器的IP地址,将SIP请求消息转发给下一跳代理服务器,再由下一跳代理服务器将SIP请求消息转发给目的SIP网络终端。两个不同的转发过程分别如下图1.1(a)(b)所示。
图1.1 域内和域间转发过程 在SIP网络中,除了前面介绍的注册服务器、代理服务器和定位服务器外,可能还有重定位服务器。重定位服务器的功能只是根据目的SIP网络终端的用户名@域名,确定IP网络用于标识该目的SIP网络终端的地址信息(IP地址或完全限定域名),类似于DNS。在完成映射后,不是转发该SIP请求消息,而是通过响应消息将目的SIP网络终端的IP网络地址信息回送给源SIP网络终端。源SIP网络终端可以用目的SIP网络终端的IP网络地址信息构成SIP请求消息,直接将SIP请求消息发送给目的SIP网络终端1.2所示。 图1.2 SIP重定位操作 在实际的SIP网络中,注册服务器、代理服务器、定位服务器及重定位服务器可以安装在同一个物理服务器上,而且实际应用中,代理服务器可以直接访问到注册服务器中有关标识SIP网络终端的用户名@域名和该SIP网络终端在IP网络中的地址信息(IP地址或完全限定域名)的绑定,同时,代理服务器也可通过访问用户配置的静态转发路由表来确定下一跳代理服务器。当然,代理服务器也可通过用其他协议访问定位信息库(如DNS)来获取下一跳代理服务器。 从图1.1中可以看出,为目的SIP网络终端所在控制域服务的代理服务器发送给目的SIP网络终端的请求消息中给出的是标识SIP网络目的终端IP地址信息的URI(这里的pc2.work.com和pc.home.com均为完全限定域名),而不是用于标识SIP网络终端的SIP网络标识符。这里,需要弄清楚两个网络的概念:一个是SIP网络,用SIP进行相互作用,用SIP网络标识符标识SIP网络终端;另一个是作为承载网络的IP网络。由于SIP网络终端同时又是IP网络终端,因此,它具有双重标识符,即用于在SIP网络中唯一标识SIP网络终端的标识符和用于在IP网络中确定终端位置的IP地址信息,这两种标识符在SIP中均称为URI(统一资源标识符),需要仔细分辨。 如下图1.3所示为建立多媒体通信会话的操作过程。 源SIP网络终端发送给目的SIP网络终端的INVITE消息为请求消息,请求和目的SIP网络终端建立多媒体通信会话。在通常情况下,INVITE消息中需要包含会话描述信息,用于指出该会话所指定的多媒体信息流的编码格式及所需带宽。当目的SIP网络终端愿意和源SIP网络终端建立多媒体通信会话时,就回送一个OK响应。但为了避免源SIP网络终端重发定时器溢出,通常情况下,目的SIP网络终端在接收到INVITE消息后,立即回送一个临时响应消息,如图1.3中的Ringing消息。源SIP网络终端在接收到目的SIP网络终端发送给它的响应消息---OK响应消息后,获知目的SIP网络终端愿意接受多媒体通信会话的请求,发送ACK消息表示已经接收到目的SIP网络终端发送的OK响应消息,多媒体通信会话建立。在多媒体通信会话建立后,源和目的SIP网络终端可以开始相互传输多媒体信息流。在完成多媒体通信会话建立后,源和目的SIP网络终端可以开始相互传输多媒体信息流。在完成多媒体信息流传输后,任何一方可以发送BYE消息给对方,表示结束当前多媒体通信会话。对方接收到BYE消息后,回送OK响应消息作为对BYE消息的确认应答,多媒体通信会话结束。 |