SIP学习笔记(1)----消息集合

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习

RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txt

SIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下:

SIP消息的第一行包含消息的类型和所使用的SIP版本(2.0)。在请求中,这一行还包含一个叫做SIP URI的地址。这代表消息的目的地。 
这个例子说明了如何使用请求消息INVITE、ACK和BYE,以及200 OK响应消息。SIP中还存在许多其他消息。下面给出一些请求:

消息 用法
INVITE 呼叫一个用户代理,传送一次呼叫。
ACK 确认呼叫。
BYE 终止呼叫。
CANCEL 终止还未OK的呼叫。
REGISTER 提供一项注册服务,带有一个联系地址和可以用来代替的别名。例如,在前面的例子中,地址sip:[email protected]就是sip:[email protected]的别名。然后,注册服务器example.com就可以把呼叫转发给地址10.20.30.40。
OPTIONS 询问一个用户代理的“能力”(例如,该用户代理能够识别的消息和编码)。

  现在给出一些经常使用的响应消息:

消息 用法
100 Trying 消息已收到,但是最终用户代理尚未进行处理。请等待。
180 Ringing 最终用户代理已经收到消息,正在提示用户。请等待。
200 OK 最终用户已经接受消息。
301 Moved Permanently & 302 Moved Temporarily 用户代理的地址已经改变,新的永久或临时地址位于Contact字段中。
400 Bad Request 普通错误消息。客户端不能识别消息。
401 Unauthorized & 407 Proxy Authentication Required 请使用证书重试。
404 Not Found 要联系的用户不存在或尚未注册。
408 Request Timeout 另一方没有响应。这意味着SIP消息永远不会OK。所有重试都将被丢弃。这并不意味着电话响太长时间(电话可以永远响铃)。

消息使用类似的头字段类型。下面给出其中的一些:

头字段 用法
From SIP请求的发送者。
To SIP请求的接受者。这通常与SIP URI相同(可以是一个“别名”或一个实际地址)。
Contact 用户代理的实际地址。
Call-ID 这并不是呼叫者的电话号码。它惟一地代表两个用户代理之间的完整呼叫或对话。所有相关的SIP消息都使用同一个Call-ID。例如,当一个用户代理收到一条BYE消息,根据Call-ID,它就知道要挂断哪次呼叫。
CSeq 消息的顺序编号。这在一次对话或一个Call-ID中是惟一的。这用于区别新的消息和“重试消息”。当一条初始消息没有及时OK时,重试就会进行,并会定时发送。
Content-Type 消息内payload的MIME类型。
Content-Length payload的大小,以字节为单位。信封和payload之间由一空行隔开。

还有一些与消息路由选择功能相关的头字段,如:Via、Route和Record-Route。许多头字段提供像Accept、User-Agent和Supported这样的功能。其他头字段则提供像Authorization、Privacy和WWW-Authenticate这样的安全性功能。还有很多其他的头字段存在。此外,这些字段中许多都有缩写语法(比如,From = f,To = t,等等)。

 

http://blog.csdn.net/tomken_zhang/article/details/6906254

你可能感兴趣的:(SIP学习笔记(1)----消息集合)