分享是一种生活态度,求知,求真,分享工作,分享生活!

协作拾遗-Sip协议

Cisco iqianyue 1924次浏览 0个评论 扫描二维码

SIP协议的概念

 

SIP:Session Initiation Protocol 会话初始协议:用于建立,控制和释放会话,是 IETF 为多媒体会话而开发制定的协议。这里的会话包括文本,视频,游戏和传统的语音

SIP是一种应用层协议,独立于下面的传输层协议,可以承载在不同的传输协议上,如UDP/TCP/TLS/SCTP,目前最常用UDP。

SIP地址形式:sip:1112223344@mycompany.com或sip:1112223344@10.1.1.1

SIP的四项基本功能:

  • 定位用户,将SIP地址解析为IP地址;
  • 协商Session的feature和capability;
  • 在进行呼叫时改变会话参数;
  • 负责会话的建立和中断。

优点

  • Session和Media间的处理彼此独立,因此SIP更加灵活。
  • SIP是开放、标准协议。
  • SIP messages是明文的,利于trouble shooting。
  • 拥有不同capability的用户一样可以通讯。例如:在一个video conference中,video用户和audio用户一样可以通讯,只不过是audio看不到视频而已。

缺点

  • 由于SIP messages是明文的,router必须将明文的message翻译为路由器语言,这就导致了router产生更高的负载。
  • 如果在同一个网络中同时有SIP Phone和SCCP Phone,必须在in-band DTMF和out-band DTMF间进行转换。
  • IP仍然是一个处于开发中的协议。

 

设计模型

 

SIP 客户端/服务器架构

100715_1053_Sip1

使用Client/Server模型

  • 客户端发送SIP请求
  • 服务器返回SIP响应
100715_1053_Sip2

结构化的层次关系

100715_1053_Sip3

SIP消息

消息(Message)是SIP协议的基本单位,客户端和服务器端的基本交互单元;

消息包括两类;

请求消息

响应消息

100715_1053_Sip4

SIP请求消息

100715_1053_Sip5

响应消息

响应消息

消息含义

1xx

信息响应

表示已经接收到请求消息,正在对其进行处理

2xx

成功响应

表示请求被接收、处理并成功接受

3xx

重定向响应

须采用进一步动作,以完成该请求

4xx

客户出错

表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理

5xx

服务器出错

表示SIP服务器故障不能完成对正确消息的处理

6xx

全局故障

表示请求不能在任何SIP服务器上实现

SIP消息格式

100715_1053_Sip6

 

起始行(Start-line)

SIP起始行分请求行(Request-Line)和状态行(Status-Line)两种,其中请求行是请求消息的起始行,状态行是响应消息的起始行。

例如:请求行:REGISTER sip:registrar.bplace.com SIP/2.0  状态行:SIP/2.0 200 OK

头域(SIP Header)

头域结构:头域值+头域参数(可选项)

重要的头域:(5个头域必须包含在每个SIP消息中)

Via : 用于表示请求经过的SIP实体和路由响应;例如:Via:SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKkjshdyff

From:用于标识请求的发起者;以呼叫为例,可能是主叫也可能是被叫;格式为:From:显示名 <sip-URL> ;tag=××××

To:用于表示请求的接收者;格式为:To:显示名 <sip-URL> ;tag=××××

Call-ID :用于唯一标识一次邀请或者一次注册; 格式为:Call-ID:本地标识@主机

CSeq :用于表示请求的顺序号;例如:CSeq:4711 INVITE

例如:

From: sip:28780808@server.com;tag=1234567890

To: sip:28780909@server.com;

Call-ID: 3235453457AWER@server.com

头域-单值与多值

单值:消息里面只能出现一次,如From,To等

多值:消息里面可以多次出现,如Via,Route等


头域-域值的顺序

顺序有关的: Via, Route,Record-Route

顺序无关的: Allow,Require


消息体(SIP Body)

MIME,多功能Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,例如声音audio、图象image等

消息体的属性通过Content头域来描述

Content-Type :消息体的类型,可以是SDP/Text或者其他

Content-Length :消息体的长度,对于UDP不是必须,对于TCP则是必须

Content-Language:消息体的语言类型

Content-Encoding:消息体的编码类型,如是否进行了zip压缩

Content-Disposition:对于消息体的处理方法

直接呼叫

100715_1053_Sip9

代理呼叫

100715_1053_Sip10

重定向呼叫

100715_1053_Sip11

SDP协议

SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议。

SDP是一个基于文本的协议,用于会话建立过程中的媒体类型、编码方案、地址的协商等。

在描述一个会话时,SIP消息正文是一个会话描述协议SDP消息,消息正文格式:

100715_1053_Sip12

early offer

在early offer中,主叫方首先在invite中携带SDP消息,协商双方使用的codec,cisco gateway中支持这两种方式,但默认使用early offer.

100715_1053_Sip13

delay offer

在delay offer中,主叫方在invite消息中不携带SDP消息,而是当对方接通电话后让被叫方发送SDP协商双方使用的codec等

2341


iqianyue , 版权所有丨如未注明 , 均为原创,转载请注明iqianyue
喜欢 (2)
[]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址