首页>>>技术>>>交换机  交换/排队机产品

 

SIP:构筑下一代SoftSwitch的协议

黄伟峰 2001/02/06

 

一、SIP的提出和发起

SIPSession Initiation Protocol,会话发起协议)是由IETFInterne工程任务组) 提出的IP电话信令协议。它的主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。其结构图如下所示。

 

各功能模块说明如下:

使用SIP作为SoftSwitchApplication Server之间的接口,可以实现呼叫控制的所有功能。同时SIP已被SoftSwitch接受为通用的接口标准,从而可以实现SoftSwitch之间的互连。

二、SIP的功能和特点

正如其名字所隐含的,SIP用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。

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

三.SIP中服务器的分类和功能

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

共有4类基本服务器:

用户终端程序往往需要包括用户代理客户机和用户代理服务器。代理服务器、重定向服务器 和注册服务器可以看作是公众性的网络服务器。在SIP中还经常提到"定位服务器"的概念,但是定位服务器不属于SIP服务器。SIP服务器请求定位服务的方式也不在SIP的讨论范围之内。其在IP网络中的实现如下所示。

SIP独立于低层协议,一般使用UDP等无连接的协议,而采用自己的应用层可靠性机制来保证消息的可靠传输。

四、SIP的消息定义和格式

SIP的消息定义完全基于文本的格式。分为消息头和消息体,其主要有如下几个字段。

To

注册的目的地址。

From

注册的头地址。如果是第一次注册,则与目的地址相同。

Content-Type

消息的类型

Content-Length

消息的长度

Request-URI

注册请求的目的地址

Call-ID

所有的来自一个客户机的注册都是用相同的Call-ID

Cseq

以相同Call-Id的注册必须拥有递增的Cseq号。

五、SIP的方法

SIP主要用以下六个方法来实现对呼叫的控制。

1INVITE

INVITE方法说明一个用户或业务参加一个会话。消息体部分包含了被叫的信息说明。对于双方呼叫,主叫需说明他能接受和发送的媒质类型。示例如下:

INVITE A -> Proxy 1

INVITE sip:UserB@there.com SIP/2.0

Via: SIP/2.0/UDP here.com:5060

From: BigGuy

To: LittleGuy

Call-ID: 12345600@here.com

CSeq: 1 INVITE

Contact: BigGuy

Content-Type: application/sdp

Content-Length: 147

v=0

o=UserA 2890844526 2890844526 IN IP4 here.com

s=Session SDP

c=IN IP4 100.101.102.103

t=0 0

m=audio 49172 RTP/AVP 0

a=rtpmap:0 PCMU/8000

2ACK

ACK方法主要用于确认客户端对INVITE方法的请求已经响应。

示例如下:

ACK sip:UserB@there.com SIP/2.0

Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=2d4790.1

Via: SIP/2.0/UDP here.com:5060

Route:

From: BigGuy

To: LittleGuy ;tag=314159

Call-ID: 12345601@here.com

CSeq: 1 ACK

Content-Length: 0

 

3BYE

客户机用BYE方法向服务器发消息来结束该呼叫。

示例如下:

BYE sip: UserA@here.com SIP/2.0

Via: SIP/2.0/UDP there.com:5060

Route: .

From: LittleGuy ;tag=314159

To: BigGuy

Call-ID: 12345601@here.com

CSeq: 1 BYE

Content-Length: 0

4CANCEL

CANCEL方法用于取消一个挂起的呼叫。

示例如下:

CANCEL sip:UserB@there.com SIP/2.0

Via: SIP/2.0/UDP here.com:5060

From: BigGuy

To: LittleGuy

Call-ID: 12345600@here.com

CSeq: 1 CANCEL

Content-Length: 0

5REGISTER

用于向定位服务器注册客户机的相关信息。

6OPTIONS

用于查询服务器的相关信息和功能。

六、状态码的定义

SIP主要定义了如下的五种类型的响应状态。

1xx: 信息。表示请求已经收到,可以继续处理请求。

2xx: 正确。表示呼叫已经正确的被接受和处理。

3xx: 重定向。表示该呼叫需被重定向处理。

4xx: 客户机错误。表示该消息存在表达错误,不能被服务器处理。

5xx: 服务器错误。表示服务器不能处理该消息。

七. SIP的优越性

H.323SIP设计之初都是作为多媒体通信的应用层控制(信令)协议,目前一般用于IP电话。它们能实现的信令功能基本相同,也都利用RTP作为媒体传输的协议。但两者的设计风格截然不 同,这是由于其推出的两大阵营(电信领域与Internet领域)都想沿袭自己的传统。H.323是由 国际电联提出来的,它企图把IP电话当作是众所周知的传统电话,只是传输方式由电路交换变成了分组交换,就如同模拟传输变成数字传输、同轴电缆传输变成了光纤传输。而SIP侧重于将IP 电话作为Internet上的一个应用,较其他应用(如FTPE-mail等)增加了信令和QoS的要求。H.323推出较早,协议发展得比较成熟;由于其采用的是传统的实现电话信令的模式,便于与现 有的电话网互通,但相对复杂得多。SIP借鉴了其他Internet标准和协议的设计思想,有其突出的优点。

1、首先,它是基于文本的协议,而H.323采用基于ASN.1和压缩编码规则的二进制方法表示其消息,因此,SIP对以文本形式表示的消息的词法和语法分析就比较简单。

2、其次,SIP会话请求过程和媒体协商过程等是一起进行的,因此呼叫建立时间短,而在H.323中呼叫建立过程和进行媒体参数等协商的信令控制过程是分开进行的。

3、再次,H.323为实现补充业务定义了专门的协议,如 H.450.1H.450.2H.450.3等,而SIP只要充分利用已定义的头域,必要时对头域进行简单扩展就能很方便地支持补充业务或智能业务。

4、最后,H.323进行集中、层次式控制。尽管集中控制便于管理(如便于计费和带宽管理等),但是当用于控制大型会议电话时,H.323中执行会议控制 功能的多点控制单元很可能成为瓶颈。而SIP类似于其他的Internet协议,设计上就为分布式的呼叫模型服务的,具有分布式的组播功能。

在我国的IP电话领域,采用H.323协议已是定论。但我们也应看到SIP简单灵活、分布式控制等优点。并且随着SoftSwitch等技术的发展,SIP必将取代H.323,成为IP领域内运用最广泛的信令控制协议。

附录:一个完整的SIP运用

Basic Call Flow:

Messages 1 to 7 trace successful connected end-to-end call.

PSTN SS#1 SS#3 PSTN

|----IAM----->| | |

1| |-----INVITE----->| |

| | |----IAM----->|

2| |<---100 TRYING---| |

| | |<----ACM-----|

3| |<--180 RINGING---| |

|<----ACM-----| | |

| | |<----ANM-----|

4| |<----200 OK------| |

|<----ANM-----| | |

5| |------ACK------->| |

|=================Conversation================|

|-----REL---->| | |

|<----RLC-----| | |

6| |------BYE------->| |

7| |<----200 OK------| |

| | |-----REL---->|

| | |<----RLC-----|

1: INVITE sip:4081230003@everest SIP/2.0

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 1 INVITE.

Content-Type: Application/sdp.

Content-Length: 123..

v=0.

o=Level3 2580642516 2580642516 IN IP4 gibralter.

s=VoIP Call.

c=IN IP4 192.168.0.94.

t=2580642516 0.

m=audio 3400 RTP/AVP 0.

2: SIP/2.0 100 TRYING

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 1 INVITE.

Content-Type: Application/sdp.

Content-Length: 123..

v=0.

o=Level3 2580642516 2580642516 IN IP4 gibralter.

s=VoIP Call.

c=IN IP4 192.168.0.95.

t=2580642516 0.

m=audio 3400 RTP/AVP 0.

3: SIP/2.0 180 RINGING

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 1 INVITE.

Content-Type: Application/sdp.

Content-Length: 123..

v=0.

o=Level3 2580642516 2580642516 IN IP4 gibralter.

s=VoIP Call.

c=IN IP4 192.168.0.95.

t=2580642516 0.

m=audio 3400 RTP/AVP 0.

4: SIP/2.0 200 OK

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 1 INVITE..

5: ACK sip:4081230003@everest SIP/2.0

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 1 INVITE..

6: BYE sip:4081230003@everest SIP/2.0

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 2 BYE..

7: SIP/2.0 200 OK

Via: SIP/2.0/UDP fujiyama.

From: 4081230001@fujiyama.

To: 4081230003@everest.

Call-ID: LEV55519990720180211264011@fujiyama.

CSeq: 2 BYE..

 

《计算机世界》 2001/02/06

 



相关链接:
分析三种非接触式移动支付技术标准 2009-09-09
PTN技术的标准进展和展望 2009-08-28
M2M模块兼容构建统一技术标准规范 2009-08-24
移动支付的桎梏:技术标准不统一 2009-08-13
AVS需变推广模式 重点锁定数字电视应用 2009-07-21