SIP协议学习DAY02

SIP操作除了INVITE以外,还有
1.登记服务(代理服务器获取用户当前地址的一个方法),可以在多台设备上登录,获取注册信息,这些信息在定位服务中进行保存,这样,代理服务器可以通过不同的手段查找到用户。
2.检查SIP服务器负载
3.使用客户端使用可选项
4.用CANCEL取消一个未决的请求

SIP是一个分层协议:(为了描述)
最底层:语法和编码:扩展BNF范式
传输层:客户端、服务器如何接受/发送 请求/应答
事务层:事务是指从客户发送的请求到服务器,服务器应答发送回客户的一整个过程
事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。
事务用户TU:除了无状态代理,其他的SIP尸体都是一个TU。
当一个TU发出一个请求,首先创建一个客户事务实例并且和请求一起发送(包括了目标IP地址、端口号以及发送请求的设备),TU可以创建和取消客户事务。

SIP要素:用户代理客户端(UAC)和服务端(UAS)、无状态和有状态代理服务器和注册服务器,一个可以互相区别的核心(Cores)

SIP消息:SIP协议使用UTF-8字符集
SIP消息(基本单元)格式:由一个起始行(Start-line)、一个或多个字段(header fields)组成的消息头、一个标志消息头结束的空行(CRLF)以及作为可选项的消息体(Message body)组成,其中描述的头称为实体头(Entityheader)。

generic-message =
start-line

*message-header

CRLF

[ message-body ]

**

1.起始行 start-line

start-line分请求行(Request-Line)和状态行(Status-Line)两种(SIP请求/应答的)
(SP表示空格 CRLF表示回车换行)

1.1 Request-Line
请求消息的起始行,由请求消息类型,请求目的发送地址Request-URI,SIP协议的版本号,之间用空格隔开
Request-Line=Method SP Request-URI SP SIP-VERSION CRLF
Method:规定6种方法
REGISTER:登记联系信息
INVITE/ACK/CANCEL:用于建立会话
BYE:用于结束会话
OPTIONS:用于查询服务器负载
Request-URI:该请求所用到的用户或者服务的地址
SIP-VERSION:当前使用的SIP版本
1.2 Status-Line
响应消息的起始行,SIP应答消息的Status-Line由SIP-Version开始,接着是一个数字编码的状态码Status-Code,最后是一个与状态码相关的描述性短语Reason-Phrase,然后由一个CRLF行结束符结束Status-Line。
Status-Line=SIP-VERSION SP STATUS-CODE SP Reasong-Phrase CLF
SIP-VERSION:当前使用的SIP版本
STATUS-CODE:3位数字(6类应答),标志处理请求的结果
1xx:临时消息:表示表示请求消息已经收到,后面将继续处理该请求。
2xx:成功消息:表示请求已经被成功的理解、接受或执行。
3xx:重定向消息:表示为了完成请求还需采取更进一步的动作。
4xx:客户机错误:表示该请求含有语法错误或在这个服务器上不能被满足。
5xx:服务器错误:表示该服务器不能处理一个明显有效的请求。
6xx:全局性故障:表示该请求在任何服务器上都不能被实现。
Reason-Phrase:简短的STATUS-CODE说明

2. 头域*message-header

2.1 格式
基本结构:field-name:field-value
多值的头域的表示方法
field-name:field-value1,field-value-2,…
或者
field-name:field-value1
field-name:field-value2

**五个多值头域:Authorization、Proxy-Authorization、Proxy-Authenticate、WWW-Authenticate、Authentication-info只能使用第二种方法将多个值分别在多个头域中列出,每个头域只能有一个值。

2.2 分类
部分头域只在请求或应答中有效。因此如果消息中的头域与这个消息的类型不匹配,那么这个头域必须被忽略。

3.包体 message-body

对于消息正文的解释依赖域请求的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值