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

来源:互联网 发布:智能仓库管理系统 源码 编辑:程序博客网 时间:2024/06/05 15:07
最近在学习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:UAA@example.com就是sip:UserA@10.20.30.40的别名。然后,注册服务器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。所有重试都将被丢弃。这并不意味着电话响太长时间(电话可以永远响铃)。

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

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

原创粉丝点击