软交换分组协议基础SIPWord文件下载.docx
《软交换分组协议基础SIPWord文件下载.docx》由会员分享,可在线阅读,更多相关《软交换分组协议基础SIPWord文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
4.43xx类消息12
4.54xx类消息12
4.65xx类消息14
4.76xx类消息15
第5章SIP协议主要流程16
5.1呼叫模型概述16
5.2基本呼叫建立流程17
5.3基本呼叫拆除流程18
5.4经过代理的呼叫建立流程19
5.5经过代理的呼叫拆除流程20
第6章SIP协议在软交换SoftX3000的实际应用举例22
6.1SIP用户局内互通组网说明22
6.2SIP协议在软交换SoftX3000流程图22
6.3对应主要消息说明24
6.3.1INVITE24
6.3.2100TRYING26
6.3.3407ProxyAuthentication27
6.3.4ACK28
6.3.5INVITE29
6.3.6100TRYING31
6.3.7INVITE32
6.3.8180RINGING34
6.3.9200OK35
6.3.10ACK36
6.3.11OPTION37
6.3.12BYE38
关键词:
SIP、SDP、IP电话/Internet电话、多媒体会议
摘要:
SIP协议是一个用于建立,更改和终止多媒体会话的应用层控制协议。
它是IETF多媒体数据和控制体系结构的一部分并大量借鉴了成熟的HTTP协议,具有易扩展、易实现等特点,因此非常适合用于实现基于因特网的多媒体会议、IP电话等系统。
本文对SIP协议的基本结构、功能、控制流程进行介绍。
缩略语清单:
SIP
SessionInitiationProtocol
初始会话协议
RSVP
ResourceReServationProtocol
资源预约协议
RTP
Real-timeTransmitProtocol
实时传输协议
RTSP
Real-TimeStreamProtocol
实时流协议
SDP
SessionDescriptionProtocol
会话描述协议
参考资料清单:
第1章SIP协议总体概述
1.1SIP协议定义
SIP(SessionInitiationProtocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。
用于建立、修改并终止多媒体会话。
SIP协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。
多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。
SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。
SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。
与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。
SIP协议在IETF多媒体数据及控制体系协议栈结构的位置,如图1-1所示。
图1-1IETF多媒体数据及控制体系协议栈结构图
1.2SIP协议支持多媒体通信的五个方面
用户定位:
确定用于通信的终端系统;
用户能力:
确定通信媒体和媒体的使用参数;
用户可达性:
确定被叫加入通信的意愿;
呼叫建立:
建立主叫和被叫的呼叫参数;
呼叫处理:
包括呼叫转移和呼叫终止;
1.3SIP协议优点
●最少状态
一个会议呼叫或电话呼叫可以包含一个或多个请求——响应事务(transaction),代理服务器可以采用无状态方式工作。
●低层协议无关性
低层协议可以为SIP协议层提供可靠或非可靠业务,也可以为分组或字节流业务。
Internet环境下SIP协议层可以使用UDP协议或TCP协议,它首选UDP协议,当不能使用UDP协议时,使用TCP协议。
●基于文本
SIP协议采用基于文本的UTF-8编码方式,采用字符集为ISO10646字符集,易于实现,易于调试、灵活和扩展性好。
●健壮性
SIP协议健壮性可以通过下述方面体现:
代理服务器可以不必保存呼叫状态;
后续请求与重传可以采用不同路由;
响应消息采用自寻路方式传送等。
●可扩展性
SIP协议的可扩展性主要体现在:
不可识别的头域可以忽略;
用户可以指示SIP服务器必须理解的消息内容;
新的头域容易引入;
状态码采用分层编码方式进行编码。
●易于支持IN业务
通过与终端系统的配合,SIP协议及其呼叫控制扩展能够支持绝大多数ITUT的CapabilitySet1中的业务及CapabilitySet2中的业务。
第2章
SIP协议主要概念模型
2.1实体模型概述
SIP协议模型定义了UserAgent和Server等两类主要实体。
SIP协议把UserAgent(即UA)分为两个部分:
UserAgentClient和UserAgentServer。
呼叫方(称UserAgentClient)发出邀请(或呼叫),被叫方(称UserAgentServer)接受或拒绝邀请(或呼叫)。
分组终端设备、媒体网关/媒体设备通常是包括UserAgentClient和UserAgentServer在内的UserAgent。
另外,下面所说的ProxyServer也要实现UserAgent功能。
SIP协议定义了ProxyServer、RedirectServer和RegisterServer等三类主要Server。
RegisterServer主要用于登记分组终端的当前位置和位置服务的原始数据;
ProxyServer作为UserAgentClient和UserAgentServer间的中间媒体,它转发UserAgentClient来的的邀请,在转发之前,根据被叫标识请求位置服务器获得被叫的可能位置,然后分别向它们发出邀请;
RedirectServer接受UserAgentClient来的邀请,根据被叫标识请求位置服务器获得被叫的可能位置,把这些信息返回给邀请的发起者(UserAgentClient),和ProxyServer的不同之处就在于它不转发邀请,邀请由主叫终端自己完成。
Sip协议基本网络模型,如图2-1所示:
图2-1Sip协议基本网络模型
2.2相关概念
呼叫(Call):
一个呼叫是由一个会议中被同一个发起者邀请加入的所有成员组成的。
一个SIP呼叫用全局唯一呼叫标识符(CALL_ID)来识别。
因此,如果一个用户被不同的人邀请参加同一个多点会议,每个邀请都有一个唯一的呼叫。
一个点对点因特网电话交谈也被认为是一个SIP呼叫。
在一个基于多点控制单元(MCU)的电话交谈节目中,每个参与者都用一个独立的呼叫与MCU相连。
呼叫支路(Callleg):
一个呼叫支路由Call-ID、To以及From之中的addr-spec和tag共同标识。
只有addr-spec中的user和hostport部分有意义。
在同一个Call-ID中,从A到B的请求与从B到A的请求都属于同一个呼叫支路。
呼叫支路也可以说是一次呼叫里消息经过的路径。
(注:
参数说明见第三章)
会议(Conference):
一个多媒体会话,由公共的会话描述来标识。
一个会议可由零个或多个成员组成,可以是多点会议,全互连会议,点对点会议,或者是它们的组合。
可以用任意数目的呼叫来建立一个会议。
发起者、主叫(Initiator,Caller):
发起会议邀请的一方。
注意,发起者不一定是会议的建立者。
被邀请者、被叫(Invitee,Callee):
被主叫方邀请参加会话的一方。
邀请(Invitation):
要求用户加入会话的请求。
一个成功的SIP邀请包括2个事务:
一个INVITE请求,后面跟一个ACK请求。
同构请求/响应(Isomorphicrequestorresponse):
两个含有相同Call-ID、To、From和CSeq头域的请求/响应。
此外,同构请求还必须含有相同的Rquest-URI。
并行查询(Parallelsearch):
在一个并行查询中,代理收到请求后向可能的被叫用户发出多个请求。
并行查询在发出请求时并不等待以前所发请求的响应。
最终响应(Finalresponse):
用于结束SIP事务的响应,与临时响应相对。
所有的2XX,3XX,4XX,5XX和6XX响应都是最终响应。
临时响应(Provisionalresponse):
服务器用来表示工作进展,并不结束SIP事务的一种响应。
编码为1XX的响应是临时响应,其他响应都是最终响应。
会话(Session):
根据SDP(会话描述协议)规范的定义:
“多媒体会话是由多媒体发送者,接收者以及从发送者到接收者的数据流组成的集合。
例如多媒体会议。
”根据定义,一个被叫可以被不同的呼叫多次邀请加入同一个会话。
如果用SDP来描述,一个会话可以由用户名、会话标识符、网络类型、地址类型和源地址共同定义。
SIP事务(SIPTransaction):
一个SIP事务是发生在客户和服务器之间的,包括从客户向服务器发出的第一个请求直到服务器发给客户一个最终响应这期间所有的消息。
事务是由一个呼叫支路(Callleg)中的Cseq顺序号来标识的。
一个ACK请求与对应的INVITE请求拥有相同的CSeq,构成自己的事务;
背靠背用户代理(B2BUA):
B2BUA是接收请求并作为用户代理服务器的一个逻辑实体。
为了确定应该如何响应请求,它作为一个用户代理客户(UAC)发出请求。
与代理服务器不同的是它维护对话状态并必须参与所有在已建立的对话上所发的请求。
由于它是一个串联UAC和UAS,对于它的行为无须作显式定义。
第3章
SIP协议主要消息
3.1SIP消息分类
SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。
SIP协议将Server和UserAgent之间的通讯的消息分为两类:
请求消息和响应消息。
请求消息:
客户端为了激活特定操作而发给服务器的SIP消息,包括INVITE、ACK、BYE、CANCEL、OPTION和UPDATE消息。
响应消息:
服务器向客户反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应
3.2SIP消息结构
请求消息和响应消息都包括SIP消息头字段和SIP消息体字段;
SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息;
SIP消息体主要用来描述本次会话具体实现方式;
3.3消息格式
3.3.1请求消息格式
SIP请求消息的格式,由SIP消息头和一组参数行组成,如图3-1所示。
通过换行符区分命令行和每一条参数行。
图3-1SIP请求消息结构
注意:
参数行的顺序不是固定的。
对应的参数解释见6.3。
SIP请求消息实例:
INVITEsip:
0109@127.0.0.1:
5060;
User=phoneSIP/2.0
Call-ID:
01E04633512400000@127.0.0.