SIP学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SIP学习笔记:
一SIP概述
1.SIP起源
2.SIP功能
3.SIP应用
4.SIP标准化
5.SIP结构
1.SIP起源:
1.1起源:
由IETF提起的一种信令协议,伴随着Internet的发展,最终,经过讨论,将SIPV1和SCIP进行合并,保留SIP协议。
1.2概述:
SIP称为会话发起协议,是一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。
SIP被称为是一种轻量级协议,只使用6个指令管理呼叫控制信息,SIP协议的简单易行是极低成本应用系统选择该协议的重要原因。
基于文本编码,基于UTF-8,基于TCP/UDP 5060端口。
SIP可以基于IPV4也可以基于IPV6,是一个信令协议。
SIP并未对媒体传输加以定义,因此该协议能用在媒体传输作为专用设备的应用系统,提高效率并降低成本,SIP也允许通过任意数据报协议传输呼叫控制信息,使其在非TCP/IP 环境中也能使用。
SIP是一种客户机/服务器协议,发起方为客户(UAC),响应方为服务器(UAS),UAC和UAS都是指某个特定事物而言。
1.3 SIP编址:
SIP使用统一资源定位符(URL)作为唯一标识。
由两部分组成:用户名和主机名(用户名@主机名)。
用户名指某个特定的应用程序,而主机名的解析有:DNS和注册服务器。
1.1起源:
由IETF提起的一种信令协议,伴随着Internet的发展,最终,经过讨论,将SIPV1和SCIP进行合并,保留SIP协议。
2.SIP功能;
SIP支持会话描述,允许参与者在一组兼容媒体类型上达成一致,SIP不与任何特定的会议控制协议捆绑,。
本质上,提供以下功能:
名字翻译和用户定位;
特征协商;
.呼叫参与者管理;
呼叫特征改变;
3.SIP特点;
SIP具有很强的包容性,它既可以用于建立各种会话,也可以被用来传送即时消息和文件,使运营商能通过统一的业务平台提供综合业务,实现网络的融合,SIP在灵活、方便地提供业务方面具有多方面优点;
1.协议的可扩展性;
SIP基于文本的方式,使各种扩充工作变得十分简便,消息类型、消息头、消息体都可以被扩充。
2.开放的业务生成环境;
SIP网络的业务提供主要由Proxy Server完成,基于强大的业务生成手段和灵活的消息格式,SIP既可以提供各种传统电话业务,又可以提供语音与Internet互联的业务。
3.对移动性的支持;
SIP的动态注册机制,使用户端移动变得十分方便。
SIP协议为实现固定和移动业务的无缝融合创造了条件,SIP作为移动通信多媒体域的信令协议,来实现基于IP的移动话音和多媒体通信。
第一;有状态SIP代理服务器具有分割入呼叫和复制入呼叫的能力,同时运行几个扩展分支。
第二;SIP独特的返回不同媒体类型的能力。
SIP缺点:单独应用范围较窄,SIP只是完整解决方案的一小部分,还需要许多其他的软件来构建完整的IP电话产品。
3.SIP典型应用;
SIP应用有IP电话、移动游戏、在场显示与即时通信、视频与协同等,
4.SIP标准化
SIP论坛
IETF
3GPP/3GPP2
ITU-T
5.SIP结构
SIP是一个分层结构的协议。
它的行为根据一组平等独立的处理阶段来描述,每一阶段只是松隅合。
SIP最低层是语法和编码,它的编码使用增强BNF形式语法来规定。
第二次是传输层,它定义了网络上一个客户机如何发送请求和接收相应,以及一个服务器如何接收请求和发送响应,所有的SIP元素都包含传输层。
第三层是事务层,一个事务是由客户机事务发送给服务器事务的请求,以及对应该请求的从服务器事务发送回客户机的所有响应组成。
事务层之上的层称为事务用户(TU)。
每个SIP实体,除了无状态代理,都是事务用户。
SIP提供它自己的可靠性机制从而独立与分组层,并且只需要不可靠的数据包服务即可,SIP可典型地用于UDP或TCP之上。
SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:
用户定位,用户能力,用户可用性,呼叫建立,呼叫处理,呼叫前转,呼叫号码传递,个人移动性,终端类型的协商选择,呼叫者和被呼叫者鉴权,不知情和指导式的呼叫转移,多播会议的邀请。
二.SIP协议基本介绍
1.SIP系统组成
2.SIP消息格式
3.SIP时钟
4.SIP消息头格式
5.SIP协议常见流程
1.SIP系统组成
SIP用户是通过类似e-mail地址的url标识,SIP系统由四种元素组成:用户代理,代理服务器,重定向服务器以及注册服务器。
用户代理:包括客户端—负责发起呼叫,用户代理服务器—负责接受呼叫并做出相应。
代理服务器:接收用户代理发来的请求。
重定向服务器:用户在需要时将用户新的位置返回呼叫给对方。
注册服务器:用于接收和处理用户端的注册请求。
2.SIP的消息格式
SIP消息分为两种:客户机到服务器的请求,服务器到客户机的请求。
SIP消息由一个起始行、消息头、标志消息头结束的空行以及作为可选项的消息体组成。
常用消息头如下:
通用消息头
1.To:标识目的接收者。
2.From:标识会话发起者。
3.Call-ID:标识正在建立的会话,同一会话中涉及的所有消息都必须有相同的Call-ID。
4.CSeq:用于表示同一会话中不同事务的序号。
5.Via:标识小弟的传输路径,请求和响应小弟必须有相同的路径,只是方向相反。
6.Contact:与消息类型有关,在REGISTER消息中,通常由To给出SIP的SIP网络标识符,而Contact给出IP地址或完全域名。
请求消息头
7.Record-Route和Route
8.请求消息头Max-Forward:用于限制SIP请求消息所经过的跳数,初始值为70,每经过一个节点转发,该数字减1,当减到0时,该转发节点就向源终端发出483响应消息。
9.Priority:指明消息的优先程度。
有四种程度:non-urgent;normal;urgent;emergency;
10.Subject:指明会话的性质,用于描述会话,给呼叫过滤器可以作为接受或拒绝的参考。
响应消息头
11.Retry-After:被叫当前不能接受一个请求,使用该消息头在拒绝理由里告诉主叫自己可以接受的时间。
实体消息头
12.Allow:列出UA所支持的请求消息类型。
13.Content-Type:指明消息体的类型。
14.Content-Length:指明消息头的长度,以字节为单位。
2.1会话描述协议SDP:
在SIP网络里,用SDP来描述将要交换的媒体流的编码格式、RTP传输地址和RTP净荷类型等。
SDP采用文本行传输会话描述信息。
常用字段有创建者字段、连接信息、媒体信息、属性字段、会话名字等。
2.2 SIP请求消息
INVITE:用于邀请用户或服务参加一个会话。
服务器可以自动地用200(OK)应响应会议邀请。
ACK:确认已收到对于INVITE请求的最终响应,ACK仅和INVITE请求一起使用。
对2XX最终响应的证实由客户机用户代理发出,对其他最终响应的证实由收到响应的第一个代理或第一个客户机用户代理发出。
OPTIONS:用于向服务器查询其能力。
BYE:用户代理客户机用BYE请求向服务器表明它想释放呼叫,结束会话。
CANCLE:取消尚未完成的请求,对于已完成的请求则没有影响。
REGISTER:客户机向服务器注册列在To字段中的地址信息。
扩展:INFO:对SIP协议的扩展,用于传递会话中产生的与会话相关的控制信息。
2.3SIP响应消息
SIP协议中用三位整数的状态码和原因码来表示对请求做出的回答。
状态码用于机器识别操纵,原因短语用于人工识别操作。
状态码范围是100到699,第一位指明响应消息类型,如下所示:
1xx 临时响应表示已经接收到请求消息,正在对其进行处理。
2xx 成功响应表示请求已经被成功接受、处理。
3xx 重定向响应表示需要采取进一步动作,以完成该请求。
4xx 客户端出错表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理。
5xx 服务器端出错表示SIP服务器故障不能完成对正确消息的处理。
6xx 全局错误表示请求不能在任何SIP服务器上实现
2.常见响应消息:
100 trying 消息已收到,正在处理,请等待。
180 ringing 最终用户已经收到消息,正在提示用户(振铃),请等待。
200 OK 最终用户已经接受消息(通话)
400 bad request 普通错误消息。
客户端不能识别消息
401&407 请使用证书重试
(401 unauthorized 407 proxy authentication)
404 not found 要呼叫的用户不存在或尚未注册
408 request timeout 另一方没有响应
3.SIP时钟;
4.SIP消息头字段
通用头字段适用于请求消息和响应消息。
实体头字段用于定义与消息体相关的信息。
请求头字段用于客户机上传附加信息到服务器,包括有关请求和客户机本身的信息。
响应头字段用于服务器向Request-URL指定的地址传送有关响应的附加信息。
5.SIP协议呼叫流程
INVITE
主叫方UserA 首先发起 INVITE 消息到被叫方User B。
INVITE 消息包含会话类型和一些呼叫所必须的参数。
会话类型可能是单纯的语音,也可能是网络会议所用的多媒体视频,还可能是游戏会话。
包括请求方法、请求地址,SIP 版本号,经过 SIP 服务器的跳跃次数,请求消息的发送方和目标方,呼叫ID等参数。
100 Ringing
当被叫方接收到 INVITE 请求消息后,消息已收到,正在处理,请等待。
180 Ringing
当被叫方接收到 INVITE 请求消息后,将回复 180 Ringing。
顾名思义,就是发回铃音,提示主叫方电话已连接上了,正等待被叫应答。
200 Ok
被叫响铃后,如果被叫用户 User B接起电话,则发出 200 OK 响应。
这个响应除了做为接通指示之外,还有一个功能是用来指定被叫允许的连接媒体格式,让主叫方确认是否可以接收该媒体。
ACK
通话前最后一步是主叫方确认 200 OK响应。
该项确认证明连接被允许,即将使用另一种协议开始媒体连接。
这另一种协议是上面在 SDP 消息段中所协商好的 RTP 格式。
RTP
网络传输协议,媒体会话过程中的传输方式。
BYE
通话完毕后,由被叫方 User B首先挂机,发送 BYE 请求命令。
200 OK
BYE 之后,要求被叫方发 200 Ok 确认,也就是让主叫知道被叫已经知道你挂断了。
注册注销过程:
注册注销过程是通过REGISTER消息和200成功响应来实现,在注册注销时,用户将其逻辑地址和当前联系地址通过REGISTER消息发送给其注册服务器,注册服务器对该请求消息进行处理,并以200成功响应消息通知用户注册注销成功。
重定向过程:
当重定向服务收到主叫用户代理的INVITE邀请消息,它通过查找定位服务器发现该呼叫应该被重新定向,就构造一个重定向响应消息(状态码为3xx),将新的目标地址回送给主叫用户代理。
主叫用户代理收到重定向响应消息后,将逐一向新的目标地址发送INVITE 邀请,直至收到成功响应并建立呼叫。
如果尝试了所有的新目标都无法建立呼叫,则本次呼叫失败。
能力查询过程:
让用户在不打扰对方用户的情况下查询对方通信能力的手段,可查询对方的请求方法,支持的内容类型,支持的扩展项,支持的编码等。
能力查询通过OPTION请求消息实现。
还有中断通信过程、会话操作过程、推迟呼叫、呼叫转移等。
3.SIP应用
1.SIP在软交换网络中的应用
基于SIP的智能网业务
基于SIP的软交换互通
基于SIP的软交换业务
2.SIP在移动领域中的应用
在IMS(IP多媒体子系统)中的应用
在OSA(开放业务平台)业务中的应用
3.SIP其他应用
SIP与ENUM(电话号码在URI的映射)结合的应用
SIP与IPV6结合的应用
SIP在设备控制中的应用。