SIP业务基本知识

1、SIP业务基本知识

1.1 业务介绍
会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP的业务模式是一个点对点协议,其中有两个要素——SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器协议来完成。下图是SIP业务的网络结构和各个参与者的关系。

SIP业务的核心特点集中在SIP的设计目标之一是提供类似公用交换电话网(PSTN)中呼叫处理功能的扩展集。在这个扩展集中,实现类似日常电话的操作:拨号,振铃,回铃音或者忙音,只是实现方式和术语有所不同。SIP也实现了许多信令系统7(SS7)中更高级的呼叫处理功能,尽管这两个协议相差很远。SS7是一个高度集中处理的协议,其特点表现为高复杂度的中心网络结构和无智能的哑终端(传统的电话机)。SIP则是一个点对点协议,所以它只需要一个相对简单的(因此也高度可扩展的)核心网络,而将处理工作下放给连接在网络边缘的智能端点(装有硬件或软件的终端设备)。SIP的许多功能在端点中实现,这与传统的SS7将其在网络核心设备实现的作法大异其趣。而协议的其他特点还有它是一个文本协议,所以易于调测,结构灵活;而且它是一个中性的底层传输协议,可用TCP或UDP(推荐UDP);同时呼叫和媒体信息同时传送:媒体信息的传送由SDP传送
SIP是互联网工程任务组(IETF)多媒体数据和控制体系结构的一个组成部分,因此它与IETF的许多其他协议都有联系,例如RTP(实时传输协议)和SDP协议。SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分(control message)。SIP报文内容传送会话描述协议(SDP),SDP协议描述了会话所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。SIP的一个典型用途是:SIP“会话”传输一些简单的经过封包的实时传输协议流。RTP本身才是语音或视频的载体。
1.2 业务过程和协议流程

Ø 注册流程:

(1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;
(2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌;
(3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器;
(4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。
Ø 注销流程:

(1)终端向代理服务器发送register消息注销,其头中expire字段设置为0。
(2)代理服务器在收到后送回200OK响应,并将数据库中的用户有关消息注销。
Ø 基本呼叫建立过程:

(1)用户摘机发起一路呼叫,终端代理A向该区域的代理服务器发起Invite请求;
(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;若没有问题,代理服务器在请求消息的Via头域插入自身地址,并向Invite消息的To域所指示的被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)终端代理B指示被叫用户振铃,用户振铃后向代理服务器发送180Ringing振铃信息。
(6)代理服务器向终端代理A转发被叫用户振铃信息。
(7)被叫用户摘机,终端代理B向代理服务器返回表示连接成功的应答(200OK)
(8)代理服务器向终端代理A转发该成功指示(200OK)
(9)终端代理A收到信息后,向代理服务器发ACK信息进行确认
(10)代理服务器将ACK确认消息转发给终端代理B。
(11)主被叫用户之间建立通信连接,开始通话。
Ø 正常呼叫释放过程:

(1) 正常呼叫
(2) 用户通话结束后,被叫用户挂机,终端代理B向代理服务器发送Bye消息。
(3) 代理服务器转发Bye消息至终端代理A,同时向认证、计费中心发送用户通话的详细信息,请求计费。
(4) 主叫用户挂机后,终端代理A向代理服务器发送确认挂断响应信息200OK。
(5) 代理服务器转发响应信息200OK。
Ø 会话更改流程:

(1)用户代理服务端和代理客户端正常通话。
(2)用户代理服务端向用户代理客户端发送Invite信息,带有新的SDP协商信息。
(3)用户处理客户端回复200OK,并将协商后的SDP信息带回。
(4)用户代理服务端发送ACK给用户代理客户端进行确认。
Ø 被叫忙呼叫释放:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;
(2)代理服务器向被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)呼叫请求送到被叫终端代理B后,被叫忙,终端代理B向代理服务器送486被叫忙响应。
(6)代理服务器向终端代理A转发该响应消息。
(7)终端代理A向代理服务器回送ACK确认消息。
(8)代理服务器向终端代理B送ACK确认信息。
Ø 被叫无应答流程一:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;
(2)代理服务器向被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。
(6)代理服务器向终端代理A转发该响应信息。
(7)被叫久振铃无应答,终端代理A判断超时后向代理服务器送Cancel消息放弃该呼叫。
(8)代理服务器收到Cancel消息后,向终端代理A回送200OK响应。
(9)代理服务器将Cancel消息转发给终端代理B。
(10)终端代理B向代理服务器回送200OK响应。
(11)终端代理B向代理服务器送487请求已撤销的响应信息。
(12)代理服务器收到后回送ACK确认。
(13)代理服务器向终端代理A送487请求已撤销消息。
(14)终端代理A向代理服务器回送ACK确认。
注:以上步骤中的(10)到(12)无严格顺序关系。
Ø 被叫无应答流程二:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;
(2)代理服务器向被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。
(6)代理服务器向终端代理A转发该响应信息。
(7)被叫久振铃无应答,终端代理B判断超时后向代理服务器送408Requesttimeout消息放弃该呼叫。
(8)代理服务器收到408Requesttimeout消息后,转发该消息给终端代理A。
(9)代理服务器回送ACK确认给终端代理B。
(10)终端代理A向代理服务器回送ACK确认。
注:以上步骤中的(9)到(10)无严格顺序关系。
Ø 遇忙呼叫前转:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;
(2)代理服务器向被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)终端代理B忙线中,B向代理服务器发送486Busy Here响应。
(6)代理服务器向终端代理B发送ACK确认消息。
(7)代理服务器对此呼叫进行前转,向代理服务器C发送Invite请求消息。
(8)代理终端C收到后指示用户振铃,同时向代理服务器发送180Ringing响应。
(9)代理服务器向A转发收到的180Ringing响应。
(10)被叫用户C摘机接听电话,终端代理C向代理服务器返回表示连接成功的应答(200OK)
(11)代理服务器向终端代理A转发该成功指示(200OK)
(12)终端代理A收到信息后,向代理服务器发ACK信息进行确认
(13)代理服务器将ACK确认消息转发给终端代理B。
建立通信连接,开始通话。
(14)主叫用户挂机,终端代理A向代理服务器发送Bye消息,请求挂机。
(15)代理服务器转发Bye消息至终端代理C,指示C挂机。
(16)终端代理C向代理服务器发送确认挂断响应信息200OK。
(17)代理服务器转发响应信息200OK至A。
Ø 无应答呼叫前转流程:

(1)用户A摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;
(2)代理服务器向被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。
(6)代理服务器向终端代理A转发该响应信息。
(7)被叫久振铃无应答,代理服务器判断超时后向代理终端B送Cancel消息放弃该呼叫。
(8)代理终端B收到Cancel消息后,向代理服务器回送200OK响应。
(9)终端代理B向代理服务器送487请求已撤销的响应信息。
(10)代理服务器向终端代理B回送200OK响应。
(11)代理服务器对此呼叫进行前转,向代理服务器C发送Invite请求消息。
(12)代理终端C收到后指示用户振铃,同时向代理服务器发送180Ringing响应。
(13)代理服务器向A转发收到的180Ringing响应。
(14)被叫用户C摘机接听电话,终端代理C向代理服务器返回表示连接成功的应答(200OK)
(15)代理服务器向终端代理A转发该成功指示(200OK)
(16)终端代理A收到信息后,向代理服务器发ACK信息进行确认
(17)代理服务器将ACK确认消息转发给终端代理C。
建立通信连接,开始通话。
(18)主叫用户挂机,终端代理A向代理服务器发送Bye消息,请求挂机。
(19)代理服务器转发Bye消息至终端代理C,指示C挂机。
(20)终端代理C向代理服务器发送确认挂断响应信息200OK。
(21)代理服务器转发响应信息200OK至A。

Ø 呼叫保持:

(1)用户摘机发起一路呼叫,终端代理A向该区域的代理服务器发起Invite请求;
(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;若没有问题,代理服务器在请求消息的Via头域插入自身地址,并向Invite消息的To域所指示的被叫终端代理B传送Invite请求。
(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。
(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。
(5)终端代理B指示被叫用户振铃,用户振铃后向代理服务器发送180Ringing振铃信息。
(6)代理服务器向终端代理A转发被叫用户振铃信息。
(7)被叫用户摘机,终端代理B向代理服务器返回表示连接成功的应答(200OK)
(8)代理服务器向终端代理A转发该成功指示(200OK)
(9)终端代理A收到信息后,向代理服务器发ACK信息进行确认
(10)代理服务器将ACK确认消息转发给终端代理B。
(11)主被叫用户之间建立通信连接,开始通话。
(12)代理终端B向代理服务器发送Reinvite消息,SDP的c域等于0,0,0,0。
(13)代理服务器转发此信息给代理终端A。
(14)代理终端A收到Reinvite后回应200OK响应。表示接受会话更改,同事根据协商结果修改会话方式。
(15)代理服务器转发200OK给代理终端B。
(16)代理终端B收到消息后向代理服务器发送ACK消息进行确认。
(17)代理服务器将ACK确认消息转发到代理终端A。
Ø 呼叫等待:

(1)AB正常通话。
(2)在AB通话的阶段,用户C向A发起呼叫,终端代理C发送Invite消息给代理服务器。
(3)代理服务器向终端C回送100Trying响应,表示呼叫已在处理中。
(4)代理服务器把Invite消息转发给A。
(5)用户A振铃,并且终端A向代理服务器发送180Ring响应。
(6)代理服务器向终端C转发该响应信息。
(7)用户A按下呼叫保持键,代理终端A向代理服务器发送Invite消息,请求与代理终端C呼叫保持。
(8)代理服务器转发此消息给终端代理B。
(9)代理服务器向终端A回送100Trying响应,表示呼叫已在处理中。
(10)终端B收到呼叫保持请求后,发送200OK给代理服务器,表示接受呼叫保持。
(11)代理服务器转发200OK响应给终端代理A。
(12)代理终端A收到消息后向代理服务器发送ACK消息进行确认。
(13)代理服务器将ACK确认消息转发到代理终端B。
(14)终端代理A发送200OK给代理服务器,表示接受C的呼叫。
(15)代理服务器转发200OK给终端代理C。
(16)终端代理C向代理服务器回送ACK确认。
(17)代理服务器向代理终端A转发收到的ACK确认。
A、C之间开始通话。
(18)用户A挂机,终端代理A向代理服务器发送Bye请求消息。
(19)代理服务器转发Bye消息给终端代理B。
(20)终端代理C发送200OK给代理服务器,表示接受请求。
(21)代理服务器转发200OK响应给终端代理A。
(22)终端代理C重新发送Invite请求给代理服务器,请求和终端代理B恢复通话。
(23)代理服务器向代理终端B转发收到的Invite请求。

2、SIP通信过程报文抓取实例分析

l 实验环境:Linux2.6+Asterisk1.4(开源IPPBX)
l 实验地点:北京邮电大学信息与通信工程学院创新实验室
l SIP代理服务器IP:59.64.135.22  SIP电话号码:825002(59.64.135.22)
l SIP代理终端IP:59.64.135.67
l 软终端:X-lite
l 抓包分析工具:WireShark
注:由于过程太多,以下仅仅抓取“成功注册”,“呼叫--通话” ,“挂断”“注销”四种情况做典型包的分析。
Ø 注册流程:

以上是REGISTER包。
我们可以看到在注册的时候,终端会向代理服务器59.64.135.22发送REGISTER请求注册。

以上是REGISTEROK包。服务器返回200 OK,表示注册成功。
Ø 基本呼叫建立过程:

以上是INVITE包。我们可以看到在发起呼叫初期,终端向825002发出Invite的呼叫请求。

以上是Trying包,说明终端825003正在试着连通服务器,进一步转接到825002.
由于设置了自动接听,所以此次通话没有振铃的包。

这是ACK包,代表确认信号。
Ø 正常呼叫释放过程:

以上是BYE包。这是825002挂断后服务器向825003发送的释放呼叫信号。
Ø 注销流程:

以上是825003注销的包,我们注意到expires=0这说明是注销。

3.总结

SIP协议凭借其简单、易于扩展、便于实现等诸多优点越来越得到业界的青睐,它正逐步成为NGN(下一代网络)和3G多媒体子系统域中的重要协议,并且市场上出现越来越多的支持SIP的客户端软件和智能多媒体终端,以及用SIP协议实现的服务器和软交换设备。

ref:http://www.cnblogs.com/gnuhpc/archive/2012/12/10/2812095.html

时间: 2024-08-29 14:36:30

SIP业务基本知识的相关文章

《SAP入门经典(第5版)》——第2章 SAP业务基础知识2.1 业务架构和业务线路图

第2章 SAP业务基础知识 在本章中您将学到: SAP业务线路图 业务架构和蓝图设计 将业务需求映射到SAP应用程序中 处理业务需求的4种视角 SAP技术如何为业务需求提供支持 SAP技术如何实现业务情景的样例 尽管SAP可以提供大量的应用程序和底层技术来满足公司的业务需求,但首先需要深入理解这些需求和业务要求,才能将其映射到软件应用程序中去.而揭示.定义和体现公司的经营目标,并将其转化为应用程序策略正是业务分析(或称"业务架构")的核心内容.创建线路图可以在这一过程中为企业指明方向.

《SAP入门经典(第4版•修订版)》——第2章 SAP业务基础知识 2.1 业务架构和业务线路图

第2章 SAP业务基础知识 尽管SAP可以提供大量的应用程序和底层技术来满足公司的业务需求,但首先需要深入理解这些需求和业务要求才能将其映射到软件应用程序中去.而揭示.定义和体现公司的经营目标,并将其转化为应用程序策略正是业务架构的核心内容.创建线路图可以在这一过程中为企业指明方向.在本章中,我们要了解业务架构的基本知识,并开发一份业务线路图.您将亲眼目睹业务需求是如何把机构的目标及其人员与业务应用程序联系起来的,他们最终将使用这些应用程序运行和改造业务. 2.1 业务架构和业务线路图 SAP入

《智能制造时代的研发智慧:知识工程2.0》一第3章 隐性知识的显性化

第3章 隐性知识的显性化 知识分为隐性知识和显性知识.通常,以书面文字.图表.公式.流程和模型等表述的知识称为显性知识:在行为中所蕴含的未被表述的知识称为隐性知识.隐性知识是高度个人化的知识,具有难以规范化的特点,因此不易传递给他人.它深深植根于行为本身和个体所处环境,包括个体的思维模式.信仰观点和心智模式等.隐性知识显性化是知识工程中的一项难题,也是绕不开的课题,因为它是知识工程的基础和起点.一.知识螺旋与显性化 1.知识转化螺旋 显性知识和隐性知识的相互转化有四种类型(也称知识螺旋),可实现

IT如何能够与企业讨论业务敏捷性

IT 能够为业务敏捷性设计提供什么 对于企业和 IT 来说,业务敏捷性是现代化的企业的关键是常识.显然,对于以 IT 为中心的产业来说,敏捷地交付高品质的 IT 解决方案是业务敏捷性的前提条件.但这是 IT 的所有作用吗?按时并根据规范交付解决方案?许多人可能会经常会回答 "是",并对其置之不理,但是我认为工程理念能够为希望获得更高的业务敏捷性的企业带来至少两个其他重要的价值主张.IT 能够: 普遍提高http://www.aliyun.com/zixun/aggregation/12

超越大数据,运用数据思维助力企业战略决策和业务运营

什么才是大数据? 大数据不是简单地等于大量的数据.大数据的概念也包括了在实际应用过程中,数据处理的难度和挑战性. 从业务线的角度来讲,大数据的发展史经历了这五步: 第一是金融财务公司,比如很多银行和信用卡公司,他们是最早开始使用数据的.从数据量来讲,他们是最少的. 第二是CRM数据,即你的客户管理的数据.他们的数据量比财务更一大些,因为这些公司成为你真正客户付钱之前已经产生很多数据,他们做的软件会存储下来,帮助这些公司做更好运营,比如SAP,Oracle等等. 第三是互联网时代,它会记录很多用户

云计算世界里 新型IT思维应围绕业务展开

对于IT界来说,技术技能将永远是重要的,但是在云世界里,真正起决定作用的并不是技术而是业务专业知识. 最近,我给来自于几个不同公司的IT团队做了一次讲座.讲座的题目是"云是魔术,"起这么个讲座题目部分是因为我的个人喜好,部分是因为我真的希望非技术人员也能够来听听我的讲座.此次讲座的内容涉及云和云迁移,但它主要是关于非技术问题,以及在这个时代中像我这样的人能够幸存下来所需做出的IT思维变革.我举办这个讲座的目的是将我从一些经验教训中得到的一些心得分享给我的听众们. 最近有友人指责我的讲座

莫言的网站运营系列讲座(二)

网站运营 回顾一做站之前,先做好自身调研自身分析.是否自己具备做站和运营站的综合能力 二,网站运营的关键点:网站制作和运营前的定位,确立后要把核心找准,仔细研究分析和策划并监督实施---也就是 网站赢利模式 三网站的盈利来源你的网站提供的内容和服务,如何做到将服务提升到用户必须接受的地步 今天由于时间关系,可能拖延了..今天会讲的晚点多点 总结站长,运营总监所必须具备的常识和能力 一具有一定电子商务运营的经验,能够给网站从搭建到发展指定各个时期的可行性计划并置身到下层学习相关的一些业务和知识.做

7年的创业历程最终我选择网络

创业就是这样,有过程.有艰辛.也有常人难以想像的付出和风险.阳光总在风雨后,我相信未来.相信明天会更好,我会不断勉力自己,坚持坚持再坚持... 时间过得真快,转眼间毕业出来就快五年了,与网站结缘也差不多五年了.这五年当中确实有很多感慨,其中有惊喜.有失落.有激情也有迷惘.有时不敢想象这时间为什么过得这么快,以至于想起都害怕,怕什么?怕自己一无所成,怕虚度年华,怕达不到自己的理想境地.五年了- 虽然感觉没有什么收获,可我仍然还在坚持,因为我相信会有那么一天,我会成功,我会实现自己的理想! 现在说说

IBM Workplace Designer V2.6应用程序开发简介

您已经听说过 IBM Workplace Designer,并想要知道它究竟是什么样的.本 文向您介绍 IBM Workplace Designer,描述谁应该使用它,以及何时使用它, 并带领您逐步构建一个示例应用程序,说明用 IBM Workplace Designer 开发定 制应用程序有多么容易. 什么是 IBM Workplace Designer? IBM Workplace Designer 是一个非常新的开发平台,用于快速构建 J2EE 应 用程序,并最终构建富客户机应用程序.它是